anzhi2710gmailcom commited on
Commit
4b5b766
·
verified ·
1 Parent(s): 62312f9

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +23 -10
  2. .gitignore +3 -0
  3. LICENCE.md +21 -0
  4. README.md +314 -0
  5. config.json +14 -0
  6. environment_CPU.yml +73 -0
  7. environment_GPU.yml +268 -0
  8. model/MLP.py +41 -0
  9. model/data/README.md +19 -0
  10. model/data/SupplementaryFileC2EPsPredictions.tsv +3 -0
  11. model/data/SupplementaryMeltingTemperatureSourceData.xlsx +3 -0
  12. model/data/SupplementaryTableCharacterizedC2EPs.xlsx +0 -0
  13. model/model_flow.py +151 -0
  14. model/prottrans_models.py +212 -0
  15. scripts/data_process.py +134 -0
  16. scripts/makefile +39 -0
  17. scripts/results.py +244 -0
  18. scripts/temstapro +308 -0
  19. scripts/temstapro_launcher.py +7 -0
  20. scripts/tests/cases/temstapro_001.sh +9 -0
  21. scripts/tests/cases/temstapro_002.sh +11 -0
  22. scripts/tests/cases/temstapro_003.sh +5 -0
  23. scripts/tests/cases/temstapro_004.sh +11 -0
  24. scripts/tests/cases/temstapro_005.sh +9 -0
  25. scripts/tests/cases/temstapro_006.sh +14 -0
  26. scripts/tests/cases/temstapro_007.sh +12 -0
  27. scripts/tests/cases/temstapro_008.sh +5 -0
  28. scripts/tests/cases/temstapro_009.sh +6 -0
  29. scripts/tests/cases/temstapro_010.sh +18 -0
  30. scripts/tests/cases/temstapro_011.sh +12 -0
  31. scripts/tests/cases/temstapro_012.sh +14 -0
  32. scripts/tests/cases/temstapro_013.sh +15 -0
  33. scripts/tests/cases/temstapro_014.sh +9 -0
  34. scripts/tests/data/extra_long_sequence.fasta +1457 -0
  35. scripts/tests/data/long_sequence.fasta +19 -0
  36. scripts/tests/data/long_sequence_2.fasta +62 -0
  37. scripts/tests/data/multiple_sequences.fasta +9 -0
  38. scripts/tests/data/multiple_short_sequences.fasta +9 -0
  39. scripts/tests/data/replaced_symbol_sequence.fasta +3 -0
  40. scripts/tests/outputs/mean_5d817ae8188e00eca8913c80312e2669d6551777fbed0d1764e1c09386638c0a.pt +3 -0
  41. scripts/tests/outputs/mean_adc7fcd839ba2802998088a0c7b2310d3abdef0229cc020c55fcb82a492c2d8d.pt +3 -0
  42. scripts/tests/outputs/mean_b6f8b4d2f6602ee040278b1d64ab7cf588baa33d74a126030e252fd91ac00601.pt +3 -0
  43. scripts/tests/outputs/mean_c425721d82cb786570760210076eaa21403b210aa6566882a41c4ac70df2defd.pt +3 -0
  44. scripts/tests/outputs/multiple.tsv +4 -0
  45. scripts/tests/outputs/per_res_b6f8b4d2f6602ee040278b1d64ab7cf588baa33d74a126030e252fd91ac00601.pt +3 -0
  46. scripts/tests/outputs/temstapro_001.out +12 -0
  47. scripts/tests/outputs/temstapro_002.out +10 -0
  48. scripts/tests/outputs/temstapro_003.out +1 -0
  49. scripts/tests/outputs/temstapro_004.out +10 -0
  50. scripts/tests/outputs/temstapro_005.out +14 -0
.gitattributes CHANGED
@@ -1,35 +1,48 @@
1
  *.7z filter=lfs diff=lfs merge=lfs -text
2
  *.arrow filter=lfs diff=lfs merge=lfs -text
3
  *.bin filter=lfs diff=lfs merge=lfs -text
 
4
  *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
  *.ftz filter=lfs diff=lfs merge=lfs -text
7
  *.gz filter=lfs diff=lfs merge=lfs -text
8
  *.h5 filter=lfs diff=lfs merge=lfs -text
9
  *.joblib filter=lfs diff=lfs merge=lfs -text
10
  *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
  *.model filter=lfs diff=lfs merge=lfs -text
13
  *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
  *.onnx filter=lfs diff=lfs merge=lfs -text
17
  *.ot filter=lfs diff=lfs merge=lfs -text
18
  *.parquet filter=lfs diff=lfs merge=lfs -text
19
  *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
  *.pt filter=lfs diff=lfs merge=lfs -text
23
  *.pth filter=lfs diff=lfs merge=lfs -text
24
  *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
  *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
  *.tflite filter=lfs diff=lfs merge=lfs -text
30
  *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
  *.xz filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
1
  *.7z filter=lfs diff=lfs merge=lfs -text
2
  *.arrow filter=lfs diff=lfs merge=lfs -text
3
  *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bin.* filter=lfs diff=lfs merge=lfs -text
5
  *.bz2 filter=lfs diff=lfs merge=lfs -text
 
6
  *.ftz filter=lfs diff=lfs merge=lfs -text
7
  *.gz filter=lfs diff=lfs merge=lfs -text
8
  *.h5 filter=lfs diff=lfs merge=lfs -text
9
  *.joblib filter=lfs diff=lfs merge=lfs -text
10
  *.lfs.* filter=lfs diff=lfs merge=lfs -text
 
11
  *.model filter=lfs diff=lfs merge=lfs -text
12
  *.msgpack filter=lfs diff=lfs merge=lfs -text
 
 
13
  *.onnx filter=lfs diff=lfs merge=lfs -text
14
  *.ot filter=lfs diff=lfs merge=lfs -text
15
  *.parquet filter=lfs diff=lfs merge=lfs -text
16
  *.pb filter=lfs diff=lfs merge=lfs -text
 
 
17
  *.pt filter=lfs diff=lfs merge=lfs -text
18
  *.pth filter=lfs diff=lfs merge=lfs -text
19
  *.rar filter=lfs diff=lfs merge=lfs -text
 
20
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
21
  *.tar.* filter=lfs diff=lfs merge=lfs -text
 
22
  *.tflite filter=lfs diff=lfs merge=lfs -text
23
  *.tgz filter=lfs diff=lfs merge=lfs -text
 
24
  *.xz filter=lfs diff=lfs merge=lfs -text
25
  *.zip filter=lfs diff=lfs merge=lfs -text
26
+ *.zstandard filter=lfs diff=lfs merge=lfs -text
27
+ *.tfevents* filter=lfs diff=lfs merge=lfs -text
28
+ *.db* filter=lfs diff=lfs merge=lfs -text
29
+ *.ark* filter=lfs diff=lfs merge=lfs -text
30
+ **/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
31
+ **/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
32
+ **/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
33
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
34
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
35
+ *.gguf* filter=lfs diff=lfs merge=lfs -text
36
+ *.ggml filter=lfs diff=lfs merge=lfs -text
37
+ *.llamafile* filter=lfs diff=lfs merge=lfs -text
38
+ *.pt2 filter=lfs diff=lfs merge=lfs -text
39
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
40
+ *.npy filter=lfs diff=lfs merge=lfs -text
41
+ *.npz filter=lfs diff=lfs merge=lfs -text
42
+ *.pickle filter=lfs diff=lfs merge=lfs -text
43
+ *.pkl filter=lfs diff=lfs merge=lfs -text
44
+ *.tar filter=lfs diff=lfs merge=lfs -text
45
+ *.wasm filter=lfs diff=lfs merge=lfs -text
46
  *.zst filter=lfs diff=lfs merge=lfs -text
47
+ *tfevents* filter=lfs diff=lfs merge=lfs -textmodel/data/SupplementaryFileC2EPsPredictions.tsv filter=lfs diff=lfs merge=lfs -text
48
+ model/data/SupplementaryMeltingTemperatureSourceData.xlsx filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ ProtTrans/
2
+ __pycache__/
3
+ update_tests.sh
LICENCE.md ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Ieva Pudžiuvelytė
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md ADDED
@@ -0,0 +1,314 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ language:
4
+ - en
5
+ - zh
6
+ tags:
7
+ - OneScience
8
+ - life-science
9
+ - protein
10
+ - thermostability
11
+ - ProtTrans
12
+ - TemStaPro
13
+ frameworks: PyTorch
14
+ ---
15
+
16
+ <p align="center">
17
+ <strong>
18
+ <span style="font-size: 30px;">TemStaPro</span>
19
+ </strong>
20
+ </p>
21
+
22
+ # Model Introduction
23
+
24
+ TemStaPro (Temperatures of Stability for Proteins) is a protein thermostability prediction tool based on protein language model representations. It takes protein FASTA sequences as input, uses ProtTrans/ProtT5 to generate sequence representations, and applies classifiers for multiple temperature thresholds to predict stability across different temperature ranges.
25
+
26
+ Paper:
27
+
28
+ > **TemStaPro: protein thermostability prediction using sequence representations from protein language models**
29
+ > https://doi.org/10.1093/bioinformatics/btae157
30
+
31
+ # Model Description
32
+
33
+ TemStaPro uses ProtT5-XL-Half-UniRef50 to encode protein sequences and predicts thermostability from the resulting mean or per-residue embeddings. The default mode uses binary classifiers to independently assess stability at thresholds of 40, 45, 50, 55, 60, and 65 °C, then combines the classification results to produce a predicted temperature range.
34
+
35
+ # Use Cases
36
+
37
+ | Use case | Description |
38
+ | --- | --- |
39
+ | Protein thermostability prediction | Predict the stable temperature range from a protein sequence |
40
+ | Multi-temperature threshold classification | Assess protein stability independently at thresholds such as 40–65 °C |
41
+ | Per-residue stability analysis | Output local prediction results for each amino acid position |
42
+ | Local segment stability analysis | Predict thermostability in different protein regions using a sliding window |
43
+ | Protein engineering and screening | Help screen potential thermostable proteins or candidate mutants |
44
+
45
+ # Usage
46
+
47
+ ## 1. Using OneCode
48
+
49
+ Experience intelligent one-click AI4S programming in the OneCode online environment:
50
+
51
+ [Try intelligent one-click AI4S programming](https://web-2069360198568017922-iaaj.ksai.scnet.cn:58043/home)
52
+
53
+ ## 2. Manual Installation and Usage
54
+
55
+ **Hardware Requirements**
56
+
57
+ - TemStaPro supports execution on CPUs and GPUs.
58
+ - Most of the computational cost comes from generating ProtT5 embeddings, so a GPU/DCU is recommended for acceleration.
59
+ - In the official tests, 1,000 protein sequences with an average length of approximately 1,137 aa took about 10 hours on a standard laptop CPU and about 10 minutes on an RTX 2080 Ti GPU system. An accelerator is therefore recommended for batch prediction.
60
+
61
+ ### Set Up the Runtime Environment
62
+
63
+ #### DCU Environment
64
+
65
+ ```bash
66
+ # Activate DTK and CONDA first
67
+ conda create -n onescience311 python=3.11 -y
68
+ conda activate onescience311
69
+
70
+ # Install with uv support
71
+ pip install onescience[bio] \
72
+ -i http://mirrors.onescience.ai:3141/pypi/simple/ \
73
+ --trusted-host mirrors.onescience.ai
74
+ ```
75
+
76
+ #### Environment Notes
77
+
78
+ - If you encounter missing dependencies or version incompatibilities during execution, refer to the dependency versions specified in `environment_CPU.yml` or `environment_GPU.yml` and install or adjust the relevant dependencies as needed.
79
+ ### Prepare Weights and Models
80
+
81
+ - TemStaPro inference requires two model resources:
82
+
83
+ (1) TemStaPro classifier weights.
84
+ (2) The ProtT5-XL-Half-UniRef50 pretrained model.
85
+
86
+ - TemStaPro inference does not require additional dataset downloads; the standard workflow takes the user's own FASTA file as input.
87
+
88
+ #### 1) TemStaPro Classifier Weights
89
+
90
+ The current repository provides trained classifier weights in the `weight/` directory, for example:
91
+
92
+ ```text
93
+ weight/
94
+ ├── mean_major_imbal-40_s1.pt
95
+ ├── mean_major_imbal-40_s2.pt
96
+ ├── ...
97
+ ├── mean_major_imbal-45_s1.pt
98
+ ├── ...
99
+ ├── mean_major_imbal-50_s1.pt
100
+ └── ...
101
+ ```
102
+
103
+ Different files correspond to different temperature thresholds and random seeds. TemStaPro automatically loads the corresponding classifiers from `weight/`, so after downloading the complete Hugging Face model package, separate classifier weight downloads are normally unnecessary.
104
+
105
+ #### 2) ProtT5-XL-Half-UniRef50
106
+
107
+ TemStaPro uses ProtT5-XL-Half-UniRef50 to generate protein sequence representations. This model is not included in the current repository and must be prepared separately.
108
+
109
+ ```text
110
+ Rostlab/prot_t5_xl_half_uniref50-enc
111
+ ```
112
+
113
+ It is recommended to save the ProtTrans model under `ProtTrans/` in the repository root and specify this directory at runtime with `-d/--PT-directory`:
114
+
115
+ ```bash
116
+ python scripts/temstapro \
117
+ -f ./scripts/tests/data/long_sequence.fasta \
118
+ -d ./ProtTrans/ \
119
+ --mean-output ./long_sequence_predictions.tsv
120
+ ```
121
+
122
+ If `./ProtTrans/` already contains the following model files, the program loads them locally:
123
+
124
+ ```text
125
+ pytorch_model.bin
126
+ config.json
127
+ tokenizer_config.json
128
+ special_tokens_map.json
129
+ spiece.model
130
+ ```
131
+
132
+ If the specified directory does not contain the complete model files, the program attempts to download them automatically from Hugging Face and save them there. For network-restricted or offline environments, download them in advance with the Hugging Face CLI:
133
+
134
+ ```bash
135
+ huggingface-cli download \
136
+ Rostlab/prot_t5_xl_half_uniref50-enc \
137
+ --local-dir ./ProtTrans
138
+ ```
139
+
140
+ The model page is shown below; you can also download the required files manually:
141
+
142
+ ```text
143
+ https://huggingface.co/Rostlab/prot_t5_xl_half_uniref50-enc/tree/main
144
+ ```
145
+
146
+ ## 3. Quick Start
147
+
148
+ ### Download the Model Package
149
+
150
+ ```bash
151
+ hf download OneScience-Group/TemStaPro --local-dir ./TemStaPro
152
+ cd TemStaPro
153
+ ```
154
+
155
+ - Complete TemStaPro inference additionally depends on **ProtT5-XL-Half-UniRef50**. Follow "Prepare Weights and Models" to make sure the ProtTrans model is ready first.
156
+ - Training, validation, and test datasets from Zenodo are not required for inference-only use.
157
+
158
+ ### Quick Verification
159
+
160
+ First, view the command-line options:
161
+
162
+ ```bash
163
+ python scripts/temstapro --help
164
+ ```
165
+
166
+ Run the official test files retained in the repository:
167
+
168
+ ```bash
169
+ make -f scripts/makefile all
170
+ ```
171
+
172
+ The first test run may fail while the ProtTrans model is being downloaded. Clean the outputs and run the tests again:
173
+
174
+ ```bash
175
+ make -f scripts/makefile clean
176
+ make -f scripts/makefile all
177
+ ```
178
+
179
+ In offline environments, prepare the ProtTrans model before running the tests.
180
+
181
+ # Example Data
182
+
183
+ The official test data is located in `scripts/tests/data/`, primarily using:
184
+
185
+ ```text
186
+ scripts/tests/data/long_sequence.fasta
187
+ ```
188
+
189
+ as the example input.
190
+
191
+ TemStaPro inputs use the standard FASTA format:
192
+
193
+ ```text
194
+ >protein_id
195
+ MSEQUENCE...
196
+ ```
197
+
198
+ For your own prediction tasks, prepare a FASTA file containing one or more protein sequences. No protein structure is required.
199
+
200
+ # Inference Examples
201
+
202
+ ## Protein-Level Thermostability Prediction
203
+
204
+ Mean-embedding prediction is recommended by default:
205
+
206
+ ```bash
207
+ python scripts/temstapro \
208
+ -f ./scripts/tests/data/long_sequence.fasta \
209
+ -d ./ProtTrans/ \
210
+ -e ./scripts/tests/outputs/ \
211
+ --mean-output ./long_sequence_predictions.tsv
212
+ ```
213
+
214
+ Where:
215
+
216
+ | Parameter | Description |
217
+ | --- | --- |
218
+ | `-f` | Input FASTA file |
219
+ | `-d` | ProtTrans/ProtT5 model directory |
220
+ | `-e` | Embedding cache directory |
221
+ | `--mean-output` | Protein-level prediction results in TSV format |
222
+
223
+ `-e` is optional, but enabling embedding caching is recommended when running the same sequences multiple times.
224
+
225
+ ## Per-Residue Prediction
226
+
227
+ ```bash
228
+ python scripts/temstapro \
229
+ -f ./scripts/tests/data/long_sequence.fasta \
230
+ -e ./scripts/tests/outputs/ \
231
+ -d ./ProtTrans/ \
232
+ -p ./ \
233
+ --per-res-output ./long_sequence_predictions_per_res.tsv
234
+ ```
235
+
236
+ `-p` specifies the output directory for prediction plots.
237
+
238
+ ## Local Segment Prediction
239
+
240
+ TemStaPro uses a window size of 41 for per-segment prediction by default:
241
+
242
+ ```bash
243
+ python scripts/temstapro \
244
+ -f ./scripts/tests/data/long_sequence.fasta \
245
+ -e ./scripts/tests/outputs/ \
246
+ -d ./ProtTrans/ \
247
+ --curve-smoothening \
248
+ -p ./ \
249
+ --per-segment-output ./long_sequence_predictions_k41.tsv
250
+ ```
251
+
252
+ ## Additional Temperature Thresholds
253
+
254
+ To enable additional thresholds such as 70, 75, and 80 °C, together with the thermophilicity label, add:
255
+
256
+ ```bash
257
+ --more-thresholds
258
+ ```
259
+
260
+ # Output Description
261
+
262
+ The default protein-level output is a TSV table containing the binary and raw predictions from classifiers at each temperature threshold. It also generates a predicted temperature label from the combined threshold results.
263
+
264
+ The default temperature thresholds are:
265
+
266
+ ```text
267
+ 40
268
+ 45
269
+ 50
270
+ 55
271
+ 60
272
+ 65 °C
273
+ ```
274
+
275
+ The results also contain the:
276
+
277
+ ```text
278
+ clash
279
+ ```
280
+
281
+ field, which indicates whether the threshold classifiers disagree:
282
+
283
+ ```text
284
+ - No obvious conflict
285
+ * Inconsistent classification results
286
+ ```
287
+
288
+ When per-residue or local-segment prediction is enabled, additional TSV files can be generated. Specifying `-p` also generates SVG prediction plots.
289
+
290
+ With `-e`, ProtTrans embedding cache files are saved in the specified directory and can be reused in later runs, reducing repeated ProtT5 feature extraction overhead.
291
+
292
+ Typical runtime/intermediate files include:
293
+
294
+ ```text
295
+ *.tsv Final prediction results
296
+ *.pt ProtTrans embedding cache
297
+ *.svg Per-residue or local-segment prediction plots
298
+ ```
299
+
300
+ # Official OneScience Information
301
+
302
+ | Platform | Main OneScience repository | Skills repository |
303
+ | --- | --- | --- |
304
+ | Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills |
305
+ | GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills |
306
+
307
+
308
+ # Citation and License
309
+
310
+ - Original TemStaPro paper: [TemStaPro: protein thermostability prediction using sequence representations from protein language models](https://doi.org/10.1093/bioinformatics/btae157).
311
+ - The official TemStaPro source code is released under the MIT License; see `LICENCE.md` in the repository root.
312
+ - TemStaPro uses ProtTrans/ProtT5 to generate protein representations. Use or redistribution of the corresponding model weights must also comply with the license requirements of ProtTrans, the relevant Hugging Face model page, and the associated pretraining data.
313
+ - The official training, validation, and test data are published on Zenodo. If you use these data for reproduction, training, or evaluation, cite them as required by the data page.
314
+ - If you use this repository in research, cite the original TemStaPro paper and the relevant OneScience project information.
config.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "directories": {
3
+ "conf": "Environment and configuration files",
4
+ "model": "Model definitions and bundled reference data",
5
+ "scripts": "Executable and workflow scripts",
6
+ "weight": "Pretrained classifier weights"
7
+ },
8
+ "entrypoint": "temstapro",
9
+ "weights": "weight",
10
+ "source": {
11
+ "scripts": "scripts",
12
+ "model": "model"
13
+ }
14
+ }
environment_CPU.yml ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: temstapro_env_CPU
2
+ channels:
3
+ - pytorch
4
+ - conda-forge
5
+ - defaults
6
+ dependencies:
7
+ - _libgcc_mutex=0.1=main
8
+ - _openmp_mutex=5.1=1_gnu
9
+ - blas=1.0=mkl
10
+ - brotlipy=0.7.0=py37h540881e_1004
11
+ - ca-certificates=2022.9.24=ha878542_0
12
+ - certifi=2022.9.24=pyhd8ed1ab_0
13
+ - cffi=1.15.1=py37h5eee18b_2
14
+ - charset-normalizer=2.1.1=pyhd8ed1ab_0
15
+ - colorama=0.4.6=pyhd8ed1ab_0
16
+ - cryptography=3.4.8=py37hf1a17b8_1
17
+ - cycler=0.11.0=pyhd8ed1ab_0
18
+ - filelock=3.8.0=pyhd8ed1ab_0
19
+ - freetype=2.10.4=h0708190_1
20
+ - huggingface_hub=0.11.0=pyhd8ed1ab_0
21
+ - icu=67.1=he1b5a44_0
22
+ - idna=3.4=pyhd8ed1ab_0
23
+ - importlib-metadata=4.11.4=py37h89c1867_0
24
+ - importlib_metadata=4.11.4=hd8ed1ab_0
25
+ - intel-openmp=2022.1.0=h9e868ea_3769
26
+ - kiwisolver=1.4.2=py37h295c915_0
27
+ - ld_impl_linux-64=2.38=h1181459_1
28
+ - libblas=3.9.0=16_linux64_mkl
29
+ - libcblas=3.9.0=16_linux64_mkl
30
+ - libffi=3.4.2=h6a678d5_6
31
+ - libgcc-ng=11.2.0=h1234567_1
32
+ - libgomp=11.2.0=h1234567_1
33
+ - liblapack=3.9.0=16_linux64_mkl
34
+ - libpng=1.6.37=hbc83047_0
35
+ - libstdcxx-ng=11.2.0=h1234567_1
36
+ - matplotlib=3.2.2=1
37
+ - matplotlib-base=3.2.2=py37h1d35a4c_1
38
+ - mkl=2022.1.0=hc2b9512_224
39
+ - ncurses=6.3=h5eee18b_3
40
+ - numpy=1.21.6=py37h976b520_0
41
+ - openssl=1.1.1s=h7f8727e_0
42
+ - packaging=21.3=pyhd8ed1ab_0
43
+ - pip=22.2.2=py37h06a4308_0
44
+ - pycparser=2.21=pyhd8ed1ab_0
45
+ - pyopenssl=20.0.1=pyhd8ed1ab_0
46
+ - pyparsing=3.0.9=pyhd8ed1ab_0
47
+ - pysocks=1.7.1=py37h89c1867_5
48
+ - python=3.7.15=h7a1cb2a_1
49
+ - python-dateutil=2.8.2=pyhd8ed1ab_0
50
+ - python_abi=3.7=2_cp37m
51
+ - pytorch=1.13.0=py3.7_cpu_0
52
+ - pytorch-mutex=1.0=cpu
53
+ - pyyaml=6.0=py37h540881e_4
54
+ - readline=8.2=h5eee18b_0
55
+ - regex=2022.7.9=py37h5eee18b_0
56
+ - requests=2.28.1=pyhd8ed1ab_1
57
+ - sentencepiece=0.1.96=py37h7cecad7_1
58
+ - setuptools=65.5.0=py37h06a4308_0
59
+ - six=1.16.0=pyh6c4a22f_0
60
+ - sqlite=3.40.0=h5082296_0
61
+ - tk=8.6.12=h1ccaba5_0
62
+ - tokenizers=0.11.4=py37h3dcd8bd_1
63
+ - tornado=6.1=py37h540881e_3
64
+ - tqdm=4.64.1=pyhd8ed1ab_0
65
+ - transformers=4.24.0=py37h06a4308_0
66
+ - typing-extensions=4.3.0=py37h06a4308_0
67
+ - typing_extensions=4.3.0=py37h06a4308_0
68
+ - urllib3=1.26.13=pyhd8ed1ab_0
69
+ - wheel=0.37.1=pyhd3eb1b0_0
70
+ - xz=5.2.6=h5eee18b_0
71
+ - yaml=0.2.5=h7f98852_2
72
+ - zipp=3.10.0=pyhd8ed1ab_0
73
+ - zlib=1.2.13=h5eee18b_0
environment_GPU.yml ADDED
@@ -0,0 +1,268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name: temstapro_env
2
+ channels:
3
+ - pytorch
4
+ - nvidia
5
+ - conda-forge
6
+ - defaults
7
+ dependencies:
8
+ - _libgcc_mutex=0.1=conda_forge
9
+ - _openmp_mutex=4.5=2_kmp_llvm
10
+ - abseil-cpp=20211102.0=h27087fc_1
11
+ - aiohttp=3.8.1=py37h540881e_1
12
+ - aiosignal=1.3.1=pyhd8ed1ab_0
13
+ - alsa-lib=1.2.7.2=h166bdaf_0
14
+ - arrow-cpp=8.0.0=py37h60b952e_0
15
+ - async-timeout=4.0.2=pyhd8ed1ab_0
16
+ - asynctest=0.13.0=py_0
17
+ - attr=2.5.1=h166bdaf_1
18
+ - attrs=22.1.0=pyh71513ae_1
19
+ - aws-c-common=0.4.57=he6710b0_1
20
+ - aws-c-event-stream=0.1.6=h2531618_5
21
+ - aws-checksums=0.1.9=he6710b0_0
22
+ - aws-sdk-cpp=1.8.185=hce553d0_0
23
+ - blas=1.0=mkl
24
+ - boost-cpp=1.78.0=he72f1d9_0
25
+ - bottleneck=1.3.5=py37h7deecbd_0
26
+ - brotli=1.0.9=h166bdaf_7
27
+ - brotli-bin=1.0.9=h166bdaf_7
28
+ - brotlipy=0.7.0=py37h27cfd23_1003
29
+ - bzip2=1.0.8=h7b6447c_0
30
+ - c-ares=1.18.1=h7f98852_0
31
+ - ca-certificates=2022.9.24=ha878542_0
32
+ - certifi=2022.9.24=pyhd8ed1ab_0
33
+ - cffi=1.15.1=py37h5eee18b_2
34
+ - charset-normalizer=2.0.4=pyhd3eb1b0_0
35
+ - click=8.1.3=py37h89c1867_0
36
+ - colorama=0.4.6=pyhd8ed1ab_0
37
+ - cryptography=38.0.1=py37h9ce1e76_0
38
+ - cuda=11.7.1=0
39
+ - cuda-cccl=11.7.91=0
40
+ - cuda-command-line-tools=11.7.1=0
41
+ - cuda-compiler=11.7.1=0
42
+ - cuda-cudart=11.7.99=0
43
+ - cuda-cudart-dev=11.7.99=0
44
+ - cuda-cuobjdump=11.7.91=0
45
+ - cuda-cupti=11.7.101=0
46
+ - cuda-cuxxfilt=11.7.91=0
47
+ - cuda-demo-suite=11.8.86=0
48
+ - cuda-documentation=11.8.86=0
49
+ - cuda-driver-dev=11.7.99=0
50
+ - cuda-gdb=11.8.86=0
51
+ - cuda-libraries=11.7.1=0
52
+ - cuda-libraries-dev=11.7.1=0
53
+ - cuda-memcheck=11.8.86=0
54
+ - cuda-nsight=11.8.86=0
55
+ - cuda-nsight-compute=11.8.0=0
56
+ - cuda-nvcc=11.7.99=0
57
+ - cuda-nvdisasm=11.8.86=0
58
+ - cuda-nvml-dev=11.7.91=0
59
+ - cuda-nvprof=11.8.87=0
60
+ - cuda-nvprune=11.7.91=0
61
+ - cuda-nvrtc=11.7.99=0
62
+ - cuda-nvrtc-dev=11.7.99=0
63
+ - cuda-nvtx=11.7.91=0
64
+ - cuda-nvvp=11.8.87=0
65
+ - cuda-runtime=11.7.1=0
66
+ - cuda-sanitizer-api=11.8.86=0
67
+ - cuda-toolkit=11.7.1=0
68
+ - cuda-tools=11.7.1=0
69
+ - cuda-visual-tools=11.7.1=0
70
+ - cycler=0.11.0=pyhd8ed1ab_0
71
+ - dataclasses=0.8=pyhc8e2a94_3
72
+ - datasets=2.7.1=pyhd8ed1ab_0
73
+ - dbus=1.13.6=h5008d03_3
74
+ - dill=0.3.6=pyhd8ed1ab_1
75
+ - expat=2.5.0=h27087fc_0
76
+ - ffmpeg=4.3=hf484d3e_0
77
+ - fftw=3.3.10=nompi_hf0379b8_105
78
+ - filelock=3.8.0=pyhd8ed1ab_0
79
+ - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
80
+ - font-ttf-inconsolata=3.000=h77eed37_0
81
+ - font-ttf-source-code-pro=2.038=h77eed37_0
82
+ - font-ttf-ubuntu=0.83=hab24e00_0
83
+ - fontconfig=2.14.1=hc2a2eb6_0
84
+ - fonts-conda-ecosystem=1=0
85
+ - fonts-conda-forge=1=0
86
+ - fonttools=4.25.0=pyhd3eb1b0_0
87
+ - freetype=2.12.1=h4a9f257_0
88
+ - frozenlist=1.2.0=py37h7f8727e_0
89
+ - fsspec=2022.11.0=pyhd8ed1ab_0
90
+ - gds-tools=1.4.0.31=0
91
+ - gettext=0.21.1=h27087fc_0
92
+ - gflags=2.2.2=he1b5a44_1004
93
+ - giflib=5.2.1=h7b6447c_0
94
+ - glib=2.74.1=h6239696_1
95
+ - glib-tools=2.74.1=h6239696_1
96
+ - glog=0.6.0=h6f12383_0
97
+ - gmp=6.2.1=h295c915_3
98
+ - gnutls=3.6.15=he1e5248_0
99
+ - grpc-cpp=1.46.1=h33aed49_0
100
+ - gst-plugins-base=1.20.3=h57caac4_1
101
+ - gstreamer=1.20.3=hd4edc92_1
102
+ - huggingface_hub=0.11.0=pyhd8ed1ab_0
103
+ - icu=70.1=h27087fc_0
104
+ - idna=3.4=py37h06a4308_0
105
+ - importlib-metadata=4.11.4=py37h89c1867_0
106
+ - importlib_metadata=4.11.4=hd8ed1ab_0
107
+ - intel-openmp=2021.4.0=h06a4308_3561
108
+ - jack=1.9.21=h2a1e645_0
109
+ - joblib=1.2.0=pyhd8ed1ab_0
110
+ - jpeg=9e=h7f8727e_0
111
+ - keyutils=1.6.1=h166bdaf_0
112
+ - kiwisolver=1.4.4=py37h7cecad7_0
113
+ - krb5=1.19.3=h3790be6_0
114
+ - lame=3.100=h7b6447c_0
115
+ - lcms2=2.12=h3be6417_0
116
+ - ld_impl_linux-64=2.38=h1181459_1
117
+ - lerc=3.0=h295c915_0
118
+ - libbrotlicommon=1.0.9=h166bdaf_7
119
+ - libbrotlidec=1.0.9=h166bdaf_7
120
+ - libbrotlienc=1.0.9=h166bdaf_7
121
+ - libcap=2.66=ha37c62d_0
122
+ - libclang=14.0.6=default_hc1a23ef_0
123
+ - libclang13=14.0.6=default_h31cde19_0
124
+ - libcublas=11.11.3.6=0
125
+ - libcublas-dev=11.11.3.6=0
126
+ - libcufft=10.9.0.58=0
127
+ - libcufft-dev=10.9.0.58=0
128
+ - libcufile=1.4.0.31=0
129
+ - libcufile-dev=1.4.0.31=0
130
+ - libcups=2.3.3=h3e49a29_2
131
+ - libcurand=10.3.0.86=0
132
+ - libcurand-dev=10.3.0.86=0
133
+ - libcurl=7.85.0=h91b91d3_0
134
+ - libcusolver=11.4.1.48=0
135
+ - libcusolver-dev=11.4.1.48=0
136
+ - libcusparse=11.7.5.86=0
137
+ - libcusparse-dev=11.7.5.86=0
138
+ - libdb=6.2.32=h9c3ff4c_0
139
+ - libdeflate=1.8=h7f8727e_5
140
+ - libedit=3.1.20191231=he28a2e2_2
141
+ - libev=4.33=h516909a_1
142
+ - libevent=2.1.10=h9b69904_4
143
+ - libffi=3.4.2=h6a678d5_6
144
+ - libflac=1.4.2=h27087fc_0
145
+ - libgcc-ng=12.2.0=h65d4601_19
146
+ - libgfortran-ng=12.2.0=h69a702a_19
147
+ - libgfortran5=12.2.0=h337968e_19
148
+ - libglib=2.74.1=h606061b_1
149
+ - libiconv=1.17=h166bdaf_0
150
+ - libidn2=2.3.2=h7f8727e_0
151
+ - libllvm14=14.0.6=he0ac6c6_1
152
+ - libnghttp2=1.46.0=hce63b2e_0
153
+ - libnpp=11.8.0.86=0
154
+ - libnpp-dev=11.8.0.86=0
155
+ - libnvjpeg=11.9.0.86=0
156
+ - libnvjpeg-dev=11.9.0.86=0
157
+ - libogg=1.3.4=h7f98852_1
158
+ - libopus=1.3.1=h7f98852_1
159
+ - libpng=1.6.37=hbc83047_0
160
+ - libpq=14.5=hd77ab85_1
161
+ - libprotobuf=3.20.1=h4ff587b_0
162
+ - libsndfile=1.1.0=h27087fc_0
163
+ - libsqlite=3.40.0=h753d276_0
164
+ - libssh2=1.10.0=ha56f1ee_2
165
+ - libstdcxx-ng=12.2.0=h46fd767_19
166
+ - libtasn1=4.16.0=h27cfd23_0
167
+ - libthrift=0.15.0=he6d91bd_0
168
+ - libtiff=4.4.0=hecacb30_2
169
+ - libtool=2.4.6=h9c3ff4c_1008
170
+ - libudev1=252=h166bdaf_0
171
+ - libunistring=0.9.10=h27cfd23_0
172
+ - libuuid=2.32.1=h7f98852_1000
173
+ - libvorbis=1.3.7=h9c3ff4c_0
174
+ - libwebp=1.2.4=h11a3e52_0
175
+ - libwebp-base=1.2.4=h5eee18b_0
176
+ - libxcb=1.13=h7f98852_1004
177
+ - libxkbcommon=1.0.3=he3ba5ed_0
178
+ - libxml2=2.10.3=h7463322_0
179
+ - libzlib=1.2.13=h166bdaf_4
180
+ - llvm-openmp=15.0.5=he0ac6c6_0
181
+ - lz4-c=1.9.3=h295c915_1
182
+ - matplotlib=3.5.3=py37h89c1867_2
183
+ - matplotlib-base=3.5.3=py37hf395dca_2
184
+ - mkl=2021.4.0=h06a4308_640
185
+ - mkl-service=2.4.0=py37h7f8727e_0
186
+ - mkl_fft=1.3.1=py37hd3c417c_0
187
+ - mkl_random=1.2.2=py37h51133e4_0
188
+ - mpg123=1.30.2=h27087fc_1
189
+ - multidict=6.0.2=py37h540881e_1
190
+ - multiprocess=0.70.12.2=py37h540881e_2
191
+ - munkres=1.1.4=pyh9f0ad1d_0
192
+ - mysql-common=8.0.31=haf5c9bc_0
193
+ - mysql-libs=8.0.31=h28c427c_0
194
+ - ncurses=6.3=h5eee18b_3
195
+ - nettle=3.7.3=hbbd107a_1
196
+ - nsight-compute=2022.3.0.22=0
197
+ - nspr=4.32=h9c3ff4c_1
198
+ - nss=3.78=h2350873_0
199
+ - numexpr=2.8.4=py37he184ba9_0
200
+ - numpy=1.21.5=py37h6c91a56_3
201
+ - numpy-base=1.21.5=py37ha15fc14_3
202
+ - openh264=2.1.1=h4ff587b_0
203
+ - openssl=1.1.1s=h166bdaf_0
204
+ - orc=1.7.4=h07ed6aa_0
205
+ - packaging=21.3=pyhd8ed1ab_0
206
+ - pandas=1.3.5=py37h8c16a72_0
207
+ - pcre2=10.40=hc3806b6_0
208
+ - pillow=9.2.0=py37hace64e9_1
209
+ - pip=22.2.2=py37h06a4308_0
210
+ - ply=3.11=py_1
211
+ - pthread-stubs=0.4=h36c2ea0_1001
212
+ - pulseaudio=14.0=habe0971_10
213
+ - pyarrow=8.0.0=py37h992f0b0_0
214
+ - pycparser=2.21=pyhd3eb1b0_0
215
+ - pyopenssl=22.0.0=pyhd3eb1b0_0
216
+ - pyparsing=3.0.9=pyhd8ed1ab_0
217
+ - pyqt=5.15.7=py37hf30b843_0
218
+ - pyqt5-sip=12.11.0=py37hd23a5d3_0
219
+ - pysocks=1.7.1=py37_1
220
+ - python=3.7.15=h7a1cb2a_1
221
+ - python-dateutil=2.8.2=pyhd8ed1ab_0
222
+ - python-xxhash=3.0.0=py37h540881e_1
223
+ - python_abi=3.7=2_cp37m
224
+ - pytorch=1.13.0=py3.7_cuda11.7_cudnn8.5.0_0
225
+ - pytorch-cuda=11.7=h67b0de4_0
226
+ - pytorch-mutex=1.0=cuda
227
+ - pytz=2022.6=pyhd8ed1ab_0
228
+ - pyyaml=6.0=py37h540881e_4
229
+ - qt-main=5.15.6=hc525480_0
230
+ - re2=2022.04.01=h27087fc_0
231
+ - readline=8.2=h5eee18b_0
232
+ - regex=2022.7.9=py37h5eee18b_0
233
+ - requests=2.28.1=py37h06a4308_0
234
+ - responses=0.18.0=pyhd8ed1ab_0
235
+ - sacremoses=0.0.53=pyhd8ed1ab_0
236
+ - sentencepiece=0.1.96=py37h7cecad7_1
237
+ - setuptools=65.5.0=py37h06a4308_0
238
+ - sip=6.6.2=py37hd23a5d3_0
239
+ - six=1.16.0=pyhd3eb1b0_1
240
+ - snappy=1.1.9=hbd366e4_1
241
+ - sqlite=3.40.0=h5082296_0
242
+ - tk=8.6.12=h1ccaba5_0
243
+ - tokenizers=0.11.4=py37h3dcd8bd_1
244
+ - toml=0.10.2=pyhd8ed1ab_0
245
+ - torchaudio=0.13.0=py37_cu117
246
+ - torchvision=0.14.0=py37_cu117
247
+ - tornado=6.2=py37h540881e_0
248
+ - tqdm=4.64.1=pyhd8ed1ab_0
249
+ - transformers=4.24.0=pyhd8ed1ab_0
250
+ - typing-extensions=4.3.0=py37h06a4308_0
251
+ - typing_extensions=4.3.0=py37h06a4308_0
252
+ - urllib3=1.26.12=py37h06a4308_0
253
+ - utf8proc=2.6.1=h27cfd23_0
254
+ - wheel=0.37.1=pyhd3eb1b0_0
255
+ - xcb-util=0.4.0=h166bdaf_0
256
+ - xcb-util-image=0.4.0=h166bdaf_0
257
+ - xcb-util-keysyms=0.4.0=h166bdaf_0
258
+ - xcb-util-renderutil=0.3.9=h166bdaf_0
259
+ - xcb-util-wm=0.4.1=h166bdaf_0
260
+ - xorg-libxau=1.0.9=h7f98852_0
261
+ - xorg-libxdmcp=1.1.3=h7f98852_0
262
+ - xxhash=0.8.0=h7f98852_3
263
+ - xz=5.2.6=h5eee18b_0
264
+ - yaml=0.2.5=h7f98852_2
265
+ - yarl=1.7.2=py37h540881e_2
266
+ - zipp=3.10.0=pyhd8ed1ab_0
267
+ - zlib=1.2.13=h166bdaf_4
268
+ - zstd=1.5.2=ha4553b6_0
model/MLP.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Definition of the class of models with 2 hidden layers.
3
+ """
4
+ import torch
5
+ from torch import nn
6
+
7
+ class MLP_C2H2(nn.Module):
8
+ def __init__(self,
9
+ input_size=1024,
10
+ hidden_size_1=512,
11
+ hidden_size_2=256
12
+ ):
13
+ super().__init__()
14
+ self.input_size = input_size
15
+ self.hidden_size_1 = hidden_size_1
16
+ self.hidden_size_2 = hidden_size_2
17
+
18
+ self.model = torch.nn.ModuleList(
19
+ [
20
+ nn.Linear(self.input_size, self.hidden_size_1),
21
+ nn.ReLU(),
22
+ ]
23
+ + [
24
+ nn.Linear(self.hidden_size_1, self.hidden_size_2),
25
+ nn.ReLU(),
26
+ ]
27
+ + [
28
+ nn.Linear(self.hidden_size_2, 1),
29
+ nn.Sigmoid()
30
+ ]
31
+ )
32
+ self.loss_function = nn.BCELoss()
33
+
34
+ def forward(self, point):
35
+ for layer in self.model:
36
+ point = layer(point)
37
+ return point
38
+
39
+ def calculate_loss(self, point, label):
40
+ return self.loss_function(point, label)
41
+
model/data/README.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TemStaPro data
2
+
3
+ This directory contains data related to TemStaPro development.
4
+
5
+ `SupplementaryFileC2EPsPredictions.tsv` file contains global
6
+ thermostability predictions made by TemStaPro using mean embeddings
7
+ for Class II effector proteins(C2EP), which is a collection of
8
+ proteins from Cas9, Cas12, Cas13, and TnpB groups.
9
+
10
+ `SupplementaryTableCharacterizedC2EPs.xlsx` file contains the
11
+ full table experimentally characterized and predicted temperatures
12
+ of C2EP proteins.
13
+
14
+ `SupplementaryMeltingTemperatureSourceData.xlsx` file contains
15
+ raw traces of nanoDSF assays.
16
+
17
+ Datasets that were used to train, validate, and test TemStaPro are
18
+ available in [Zenodo.](https://doi.org/10.5281/zenodo.7743637)
19
+
model/data/SupplementaryFileC2EPsPredictions.tsv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fbd799c81c7045f4cef6056856167425035abf1c9a0592718a0d13f8dea258c5
3
+ size 14642598
model/data/SupplementaryMeltingTemperatureSourceData.xlsx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:46c799629826e3f03b5257fe721dd06131a56a7effdf5a6229b0a6d992722b41
3
+ size 764484
model/data/SupplementaryTableCharacterizedC2EPs.xlsx ADDED
Binary file (39.2 kB). View file
 
model/model_flow.py ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Workflow regarding the inference making process.
3
+ """
4
+
5
+ from torch.utils.data import DataLoader
6
+ from torch.utils.data import TensorDataset
7
+ import numpy
8
+ from MLP import MLP_C2H2
9
+ import torch
10
+
11
+ def prepare_data_loaders(datasets, keyword):
12
+ """
13
+ Preparing and returning DataLoader objects.
14
+
15
+ datasets - LIST of dictionaries that hold data sets
16
+ keyword - STRING the suffix of keywords of the dictionary
17
+ run_mode - STRING that determines the running mode of the program
18
+
19
+ returns (DataLoader, DataLoader)
20
+ """
21
+ test_dataset = TensorDataset(datasets[0]['x_'+keyword],
22
+ datasets[0]['y_'+keyword])
23
+ test_loader = DataLoader(test_dataset, shuffle=False)
24
+
25
+ per_res_test_loader = None
26
+ if(datasets[1]):
27
+ per_res_test_dataset = TensorDataset(datasets[1]['x_'+keyword],
28
+ datasets[1]['y_'+keyword])
29
+ per_res_test_loader = DataLoader(per_res_test_dataset, shuffle=False)
30
+
31
+ return (test_loader, per_res_test_loader)
32
+
33
+ def prepare_inference_dictionaries(sequences_list, is_npz=False):
34
+ """
35
+ Initialising dictionaries to save inferences.
36
+
37
+ sequences_lists - LIST of dictionaries with information about sequences
38
+ is_npz - BOOLEAN that indicates whether an NPZ file or a FASTA file is
39
+ processed
40
+
41
+ returns (LIST, LIST, LIST, LIST)
42
+ """
43
+ averaged_inferences = []
44
+ binary_inferences = []
45
+ labels = []
46
+ clashes = []
47
+
48
+ if(is_npz):
49
+ averaged_inferences.append({})
50
+ binary_inferences.append({})
51
+ labels.append({})
52
+ clashes.append({})
53
+ for seq in sequences_list[0]:
54
+ averaged_inferences[0][seq[0].split("|")[1]] = []
55
+ binary_inferences[0][seq[0].split("|")[1]] = []
56
+ labels[0][seq[0].split("|")[1]] = []
57
+ clashes[0][seq[0].split("|")[1]] = []
58
+ else:
59
+ for i, seq_dict in enumerate(sequences_list):
60
+ if(seq_dict is None): break
61
+ averaged_inferences.append({})
62
+ binary_inferences.append({})
63
+ labels.append({})
64
+ clashes.append({})
65
+ for seq in seq_dict.keys():
66
+ averaged_inferences[i][seq] = []
67
+ binary_inferences[i][seq] = []
68
+ labels[i][seq] = []
69
+ clashes[i][seq] = []
70
+
71
+ return (averaged_inferences, binary_inferences, labels, clashes)
72
+
73
+ def inference_epoch(model, test_loader, identifiers=[], device="cpu"):
74
+ """
75
+ Making inferences for each given protein sequence.
76
+
77
+ model - torch.nn.Module with a defined architecture
78
+ test_loader - DataLoader with a dataset loaded for inferences
79
+ identifiers - LIST with sequence identifiers used as keys in inferences DICT
80
+ device - STRING that determines the processor used
81
+
82
+ returns DICT with inferences
83
+ """
84
+ inferences = {}
85
+ for i, data in enumerate(test_loader, 0):
86
+ inputs, targets = data
87
+ inputs, targets = inputs.to(device), targets.to(device)
88
+ outputs = model(inputs.float())
89
+ outputs = outputs.detach().cpu().numpy()
90
+
91
+ seq_id = identifiers[i]
92
+
93
+ for output in outputs:
94
+ inferences[seq_id] = output[0]
95
+
96
+ return inferences
97
+
98
+ def make_inferences(sequences, per_res_sequences, mean_loader, per_res_loader,
99
+ parameters, thresholds_range):
100
+ """
101
+ Making inferences.
102
+
103
+ sequences - DICT with the sequences' ids as keys and amino acid sequences as values
104
+ per_res_sequences - DICT with the sequences' ids as keys and amino acid sequences as values
105
+ mean_loader - DataLoader to load mean embeddings data
106
+ per_res_loader - DataLoader to load per-reside embeddings data
107
+ hidden_layer_sizes - LIST with sizes (INT) of the hidden layers of classifiers
108
+ parameters - DICT with values of keys: THRESHOLDS, SEEDS, HIDDEN_LAYER_SIZES, CLASSIFIERS_DIR, EMB_TYPE, DATASET, CLASSIFIER_TYPE
109
+ thresholds_range - STRING to determine, which thresholds to choose
110
+
111
+ returns (DICT, DICT, DICT, DICT)
112
+ """
113
+ averaged_inferences, binary_inferences, labels, clashes = prepare_inference_dictionaries(
114
+ [sequences, per_res_sequences])
115
+
116
+ for j, loader in enumerate([mean_loader, per_res_loader]):
117
+ if(loader is None): break
118
+ for threshold in parameters["THRESHOLDS"][thresholds_range]:
119
+ threshold_inferences = {}
120
+ for seed in parameters["SEEDS"]:
121
+ classifier = MLP_C2H2(parameters["INPUT_SIZE"],
122
+ parameters["HIDDEN_LAYER_SIZES"][0],
123
+ parameters["HIDDEN_LAYER_SIZES"][1])
124
+ model_path = "%s/%s_%s_%s-%s_s%s.pt" % (
125
+ parameters["CLASSIFIERS_DIR"], parameters["EMB_TYPE"],
126
+ parameters["DATASET"], parameters["CLASSIFIER_TYPE"],
127
+ threshold, seed)
128
+
129
+ # Adjustment to load state_dict from ckpt generated by PyTorch-Lightning
130
+ state_dict = torch.load(model_path, map_location=torch.device(parameters['DEVICE']))['state_dict']
131
+
132
+ for key in list(state_dict.keys()):
133
+ state_dict[key.replace('model.model.', 'model.')] = state_dict.pop(key)
134
+
135
+ classifier.load_state_dict(state_dict)
136
+ classifier.eval()
137
+
138
+ classifier.to(parameters["DEVICE"])
139
+
140
+ threshold_inferences[seed] = inference_epoch(classifier,
141
+ loader,
142
+ identifiers=list(averaged_inferences[j].keys()), device=parameters["DEVICE"])
143
+ # Taking average of the predictions
144
+ for seq in threshold_inferences["1"].keys():
145
+ mean_prediction = 0
146
+ for seed in parameters["SEEDS"]:
147
+ mean_prediction += threshold_inferences[seed][seq]
148
+ mean_prediction /= len(parameters["SEEDS"])
149
+ averaged_inferences[j][seq].append(mean_prediction)
150
+ binary_inferences[j][seq].append(round(mean_prediction))
151
+ return (averaged_inferences, binary_inferences, labels, clashes)
model/prottrans_models.py ADDED
@@ -0,0 +1,212 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ A module that works with ProtTrans models. Functions were
3
+ adapted from ProtTrans authors' Google Colab notebook
4
+ """
5
+
6
+ from transformers import T5EncoderModel, T5Tokenizer
7
+ import torch
8
+ import os
9
+ import sys
10
+ from hashlib import sha256
11
+ from transformers import logging as hf_logging
12
+
13
+ hf_logging.set_verbosity_error()
14
+ hf_logging.disable_progress_bar()
15
+
16
+ def get_pretrained_model(model_path):
17
+ """
18
+ Fetches the model accordingly to the model_path
19
+ model_path - STRING that identifies the model to fetch
20
+ Returns model.
21
+ """
22
+
23
+ device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
24
+ if(os.path.exists(model_path+'/pytorch_model.bin') and
25
+ os.path.exists(model_path+'/config.json')):
26
+ model = T5EncoderModel.from_pretrained(model_path+'/pytorch_model.bin',
27
+ config=model_path+'/config.json')
28
+ else:
29
+ model = T5EncoderModel.from_pretrained(model_path)
30
+ model = model.to(device)
31
+ model = model.eval()
32
+
33
+ return model
34
+
35
+ def get_tokenizer(model_path):
36
+ """
37
+ Fetches the tokenizer accordingly to the model_path
38
+ model_path - STRING that identifies the model whose tokenizer
39
+ should be fetched
40
+ returns tokenizer
41
+ """
42
+
43
+ tokenizer = T5Tokenizer.from_pretrained(model_path, do_lower_case=False)
44
+ return tokenizer
45
+
46
+ def load_model_and_tokenizer(pt_dir, pt_server_path):
47
+ """
48
+ Load ProtTrans model and tokenizer.
49
+
50
+ pt_dir - STRING to determine the path to the directory with ProtTrans
51
+ "pytorch_model.bin" file
52
+ pt_server_path - STRING of the path to ProtTrans model in its server
53
+
54
+ returns (ProtT5-XL model, tokenizer)
55
+ """
56
+ if(not os.path.exists(f"{pt_dir}/")):
57
+ os.system(f"mkdir -p {pt_dir}/")
58
+
59
+ if(os.path.isfile(f"{pt_dir}/pytorch_model.bin")):
60
+ # Only loading the model
61
+ model = get_pretrained_model(pt_dir)
62
+ else:
63
+ # Downloading and saving the model
64
+ model = get_pretrained_model(pt_server_path)
65
+ model.save_pretrained(pt_dir)
66
+
67
+ if(os.path.isfile(f"{pt_dir}/tokenizer_config.json")):
68
+ # Only loading the tokenizer
69
+ tokenizer = get_tokenizer(pt_dir)
70
+ else:
71
+ # Downloading and saving the tokenizer
72
+ tokenizer = get_tokenizer(pt_server_path)
73
+ tokenizer.save_pretrained(pt_dir)
74
+
75
+ return (model, tokenizer)
76
+
77
+ def process_FASTA(fasta_path, split_char="!", id_field=0):
78
+ """
79
+ Reads in fasta file containing multiple sequences.
80
+ Split_char and id_field allow to control identifier extraction from header.
81
+ E.g.: set split_char="|" and id_field=1 for SwissProt/UniProt Headers.
82
+ Returns dictionary holding multiple sequences or only single
83
+ sequence, depending on input file.
84
+ """
85
+
86
+ seqs = dict()
87
+ orig_seq_headers = dict()
88
+ orig_seqs = dict()
89
+ with open(fasta_path, 'r') as fasta_f:
90
+ for line in fasta_f:
91
+ if line.startswith('>'):
92
+ uniprot_id = line.replace('>', '').strip().split(split_char)[id_field]
93
+ uniprot_id = uniprot_id.replace("/", "_").replace(".", "_")
94
+ seqs[uniprot_id] = ''
95
+ orig_seq_headers[uniprot_id] = line.replace('>', '').strip()
96
+ orig_seqs[uniprot_id] = ''
97
+ else:
98
+ orig_seqs[uniprot_id] += line.strip()
99
+ seq = ''.join(line.split()).upper().replace("-", "")
100
+ seq = seq.replace('U','X').replace('Z', 'X').replace('O', 'X')
101
+ seqs[uniprot_id] += seq
102
+ example_id = next(iter(seqs))
103
+
104
+ return (seqs, orig_seq_headers, orig_seqs)
105
+
106
+ def get_embeddings(model, tokenizer, seqs, per_residue, per_protein,
107
+ max_residues=4000, # number of cumulative residues per batch
108
+ max_seq_len=2000, # max length after which we switch to single-sequence processing to avoid OOM
109
+ max_batch=100 # max number of sequences per single batch
110
+ ):
111
+ """
112
+ Generation of embeddings via batch-processing.
113
+ per_residue indicates that embeddings for each residue in a protein
114
+ should be returned.
115
+ per_protein indicates that embeddings for a whole protein should be
116
+ returned (average-pooling).
117
+
118
+ returns results depending on the option in the input.
119
+ """
120
+
121
+ device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
122
+
123
+ results = {'per_res_representations': dict(),
124
+ 'mean_representations': dict()}
125
+ seq_dict = sorted(seqs.items(), key=lambda kv: len(seqs[kv[0]]),
126
+ reverse=True)
127
+ batch = list()
128
+
129
+ for seq_idx, (pdb_id, seq) in enumerate(seq_dict, 1):
130
+ seq_len = len(seq)
131
+ seq = ' '.join(list(seq))
132
+ batch.append((pdb_id, seq, seq_len))
133
+
134
+ n_res_batch = sum([s_len for _, _, s_len in batch]) + seq_len
135
+
136
+ if (len(batch) >= max_batch) or (n_res_batch >= max_residues) or (seq_idx == len(seq_dict)) or (seq_len > max_seq_len):
137
+ pdb_ids, seqs, seq_lens = zip(*batch)
138
+ batch = list()
139
+
140
+ token_encoding = tokenizer(seqs,
141
+ add_special_tokens=True, padding='longest')
142
+ input_ids = torch.tensor(token_encoding['input_ids']).to(device)
143
+ attention_mask = torch.tensor(
144
+ token_encoding['attention_mask']).to(device)
145
+
146
+ try:
147
+ with torch.no_grad():
148
+ embedding_repr = model(input_ids,
149
+ attention_mask=attention_mask)
150
+ except RuntimeError:
151
+ print(f"{sys.argv[0]}: runtime error generating embedding for {pdb_id} (L={seq_len}). "+\
152
+ f"Try lowering batch size. If single sequence processing does not work, you need "+\
153
+ f"more vRAM to process your protein.", file=sys.stderr)
154
+ continue
155
+
156
+ for batch_idx, identifier in enumerate(pdb_ids):
157
+ s_len = seq_lens[batch_idx]
158
+ emb = embedding_repr.last_hidden_state[batch_idx,:s_len]
159
+ if per_residue:
160
+ results["per_res_representations"][identifier] = \
161
+ emb.detach().cpu().numpy().squeeze()
162
+ if per_protein:
163
+ protein_emb = emb.mean(dim=0)
164
+ results["mean_representations"][identifier] = \
165
+ protein_emb.detach().cpu().numpy().squeeze()
166
+
167
+ return results
168
+
169
+ def save_embeddings(sequences, embeddings, embeddings_directory, embedding_type="mean"):
170
+ """
171
+ Saving embeddings to PT files for later use.
172
+
173
+ sequences - DICT with sequence ids as keys and sequences themselves
174
+ as values
175
+ embeddings - DICT with generated embeddings for each sequence
176
+ embeddings_directory - STRING that determines the path to directory for embeddings
177
+ embedding_type - STRING that determines, which type of embeddings to save
178
+ """
179
+ embedding_type_key = embedding_type+"_representations"
180
+ for seq_id in list(sequences.keys()):
181
+ seq_data = {"label": seq_id}
182
+ if(seq_id in embeddings[embedding_type_key].keys()):
183
+ seq_data["sequence"] = sequences[seq_id]
184
+ seq_data[embedding_type_key] = torch.from_numpy(
185
+ embeddings[embedding_type_key][seq_id])
186
+ seq_code = sha256(sequences[seq_id].encode('utf-8')).hexdigest()
187
+ torch.save(seq_data, f"{embeddings_directory}/{embedding_type}_{seq_code}.pt")
188
+
189
+ def print_embeddings_generation_stats(iteration, portion_size, embeddings,
190
+ seqs_wo_emb, start_time, end_time):
191
+ """
192
+ Printing embeddings generation statistics.
193
+
194
+ iteration - INT index of the iteration (indexing from zero)
195
+ portion_size - INT size of the processed portion
196
+ embeddings - DICT with keys 'mean_representations' and 'per_res_representations'
197
+ seqs_wo_emb - DICT with a portion of sequence ids as keys and amino acid sequences as values
198
+ start_time - datetime object of the beginning of embeddings' generation
199
+ end_time - datetime object of the end of embeddings' generation
200
+ """
201
+ print(f"Portion {int(iteration/portion_size)+1}.", file=sys.stderr)
202
+ print(f"{len(embeddings['mean_representations'].keys())}/{len(list(seqs_wo_emb.keys()))}: "+\
203
+ "sequences with generated mean embeddings",
204
+ file=sys.stderr)
205
+ print(f"{len(embeddings['per_res_representations'].keys())}/{len(list(seqs_wo_emb.keys()))}: "+\
206
+ "sequences with generated per-residue embeddings",
207
+ file=sys.stderr)
208
+ print("%s: time to generate embeddings" % (end_time - start_time),
209
+ file=sys.stderr)
210
+ print("%s: time to generate embeddings per protein" % ((end_time - \
211
+ start_time)/len(embeddings["mean_representations"])),
212
+ file=sys.stderr)
scripts/data_process.py ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Process the data set before the inference process.
3
+ """
4
+
5
+ import numpy
6
+ import torch
7
+ from hashlib import sha256
8
+ from os import path
9
+
10
+ def get_sequences_without_embeddings(sequences, emb_dir, per_res=False):
11
+ """
12
+ Collecting sequences that do not have generated embeddings.
13
+
14
+ sequences - DICT of all sequences in the input (keys are sequence ids,
15
+ values are protein sequences
16
+ emb_dir - STRING that defines the directory where embeddings are saved
17
+ per_res - BOOL that determines whether per-residue embeddings are needed
18
+
19
+ returns DICT with sequences that lack embeddings
20
+ """
21
+ seqs_wo_emb = {}
22
+ for seq_id in list(sequences.keys()):
23
+ seq_code = sha256(sequences[seq_id].encode('utf-8')).hexdigest()
24
+ if(not path.exists(f"{emb_dir}/mean_{seq_code}.pt")):
25
+ seqs_wo_emb[seq_id] = sequences[seq_id]
26
+ if(per_res and not path.exists(f"{emb_dir}/per_res_{seq_code}.pt")):
27
+ seqs_wo_emb[seq_id] = sequences[seq_id]
28
+ return seqs_wo_emb
29
+
30
+ def collect_mean_embeddings(sequences, embeddings, emb_dir, input_size=1024):
31
+ """
32
+ Collecting mean embeddings into a dictionary.
33
+
34
+ sequences - DICT of all sequences in the input (keys are sequence ids,
35
+ values are protein sequences
36
+ embeddings - DICT with generated embeddings. Keys are "mean_representations"
37
+ and "per_res_representations", which have [DICT] values, which keys are
38
+ sequence ids and values are embeddings torch tensor
39
+ emb_dir - STRING that determines the path to the embeddings 'cache'
40
+ directory
41
+ input_size - INT that notes the dimension of each embeddings vector
42
+
43
+ returns DICT with keys "x_test" (values are embeddings tensors) and
44
+ "y_test" (values are (irrelevant) temperature labels)
45
+ """
46
+ dataset = {}
47
+ dataset['y_test'] = torch.tensor((), dtype=torch.int32)
48
+ for i, seq_id in enumerate(sequences):
49
+ if(emb_dir and path.exists(emb_dir)):
50
+ # Loading sequences from cache
51
+ embedding = torch.load("%s/mean_%s.pt" % (emb_dir,
52
+ sha256(sequences[seq_id].encode('utf-8')).hexdigest()))["mean_representations"]
53
+ else:
54
+ # Taking freshly-generated embeddings
55
+ embedding = torch.from_numpy(embeddings["mean_representations"][seq_id])
56
+ if(i):
57
+ dataset["x_test"] = torch.vstack((dataset["x_test"], torch.flatten(embedding)))
58
+ else:
59
+ dataset["x_test"] = torch.reshape(embedding, (1, input_size))
60
+ dataset["y_test"] = torch.cat((dataset["y_test"], torch.tensor([999]).int()), 0)
61
+ return dataset
62
+
63
+ def collect_per_res_embeddings(sequences, original_sequences, embeddings, emb_dir,
64
+ input_size=1024, smoothen=False, window_size=21):
65
+ """
66
+ Collecting per-residue embeddings into a dictionary.
67
+
68
+ sequences - DICT of all sequences in the input (keys are sequence ids,
69
+ values are protein sequences
70
+ embeddings - DICT with generated embeddings. Keys are "mean_representations"
71
+ and "per_res_representations", which have [DICT] values, which keys are
72
+ sequence ids and values are embeddings torch tensor
73
+ emb_dir - STRING that determines the path to the embeddings 'cache'
74
+ directory
75
+ input_size - INT that notes the dimension of each embeddings vector
76
+ smoothen - BOOL indicates whether to make average smoothing of embeddings
77
+
78
+ returns DICT with keys "x_test" (values are embeddings tensors) and
79
+ "y_test" (values are fake temperature labels)
80
+ """
81
+ dataset = {}
82
+ dataset['y_test'] = torch.tensor((), dtype=torch.int32)
83
+ dataset['z_test'] = {}
84
+
85
+ for i, seq_id in enumerate(sequences):
86
+
87
+ iterations_for_seq = len(sequences[seq_id])
88
+
89
+ if(emb_dir and path.exists(emb_dir)):
90
+ embedding = torch.load("%s/per_res_%s.pt" % (emb_dir,
91
+ sha256(sequences[seq_id].encode('utf-8')).hexdigest()))["per_res_representations"]
92
+ else:
93
+ # Taking freshly-generated embeddings
94
+ embedding = torch.from_numpy(embeddings["per_res_representations"][seq_id])
95
+
96
+ for j in range(iterations_for_seq):
97
+ if(i == 0 and j == 0):
98
+ dataset["x_test"] = torch.reshape(embedding[j], (1, input_size))
99
+ else:
100
+ dataset["x_test"] = torch.vstack((dataset["x_test"], torch.flatten(embedding[j])))
101
+ if(not smoothen): dataset["y_test"] = torch.cat((dataset["y_test"], torch.tensor([999]).int()), 0)
102
+ if(not smoothen): dataset["z_test"]['%s_%d' % (seq_id, j)] = original_sequences[seq_id][j]
103
+
104
+ if(smoothen):
105
+ WINDOW_SIZE = window_size
106
+ smoothened_seqs = {}
107
+ j = 0
108
+ while(j < iterations_for_seq-WINDOW_SIZE+1):
109
+ smoothened_embedding = dataset["x_test"][range(j, j+WINDOW_SIZE)].mean(dim=0)
110
+ if(not j and not i):
111
+ smoothened_embeddings = smoothened_embedding
112
+ else:
113
+ smoothened_embeddings = torch.vstack((smoothened_embeddings, smoothened_embedding))
114
+ dataset['z_test']['%s_%d-%d' % (seq_id, j, j+WINDOW_SIZE)] = ''.join(original_sequences[seq_id][j:j+WINDOW_SIZE])
115
+ dataset["y_test"] = torch.cat((dataset["y_test"], torch.tensor([999]).int()), 0)
116
+ j += 1
117
+
118
+ if(smoothen): dataset["x_test"] = smoothened_embeddings
119
+ return dataset
120
+
121
+ def load_tensor_from_NPZ(NPZ_file, keywords):
122
+ """
123
+ Loading embeddings from file to dictionary.
124
+
125
+ NPZ_file - STRING path to the NPZ file
126
+ keywords - LIST with keywords to identify which subset of file to load
127
+
128
+ returns DICT with keys as given keywords, values in tensors
129
+ """
130
+ dataset = {}
131
+ with numpy.load(NPZ_file, allow_pickle=True) as data_loaded:
132
+ for i in range(len(keywords)):
133
+ dataset[keywords[i]] = torch.from_numpy(data_loaded[keywords[i]])
134
+ return dataset
scripts/makefile ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Makefile to test TemStaPro program.
2
+
3
+ MAKEFILE_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
4
+
5
+ TEST_DIR = $(MAKEFILE_DIR)tests
6
+
7
+ INPUT_TEST_DIR = ${TEST_DIR}/cases
8
+
9
+ OUTPUT_TEST_DIR = ${TEST_DIR}/outputs
10
+
11
+ TEST_CASE_SCRIPTS = $(sort $(wildcard ${INPUT_TEST_DIR}/*.sh))
12
+ TEST_CASE_OUTPUTS = ${TEST_CASE_SCRIPTS:${INPUT_TEST_DIR}/%.sh=${OUTPUT_TEST_DIR}/%.out}
13
+ TEST_CASE_DIFFS = ${TEST_CASE_SCRIPTS:${INPUT_TEST_DIR}/%.sh=${OUTPUT_TEST_DIR}/%.diff}
14
+
15
+ PT_FILES = $(wildcard ${OUTPUT_TEST_DIR}/*.pt)
16
+ SVG_FILES = $(wildcard ${OUTPUT_TEST_DIR}/*.svg)
17
+
18
+ .PHONY: all test check tests checks clean distclean mostlyclean cleanAll
19
+
20
+ all: tests
21
+
22
+ .PHONY: display
23
+
24
+ display:
25
+ @echo ${TEST_CASE_DIFFS}
26
+
27
+ test tests: ${TEST_CASE_DIFFS}
28
+
29
+ ${OUTPUT_TEST_DIR}/%.diff: ${INPUT_TEST_DIR}/%.sh ${OUTPUT_TEST_DIR}/%.out
30
+ @$< 2>&1 | sed 's/at \(.*\) line [0-9][0-9]*\./at \1 line 999\./' | \
31
+ sed 's/\(.*\): beginning/2000-01-01: beginning/' | \
32
+ sed 's/\(.*\): finished/2000-01-01: finished/' | \
33
+ sed 's/\(.*\): time to/0:00:00.0001: time to/' | diff - $(word 2,$^) | tee $@
34
+ @if [ -s $@ ]; then echo "Test $< did not pass:"; cat $@; else echo "Test $< passed."; fi
35
+
36
+ clean:
37
+ rm -f ${TEST_CASE_DIFFS}
38
+ rm ${PT_FILES}
39
+ rm ${SVG_FILES}
scripts/results.py ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Representing the output of the program.
3
+ """
4
+
5
+ import numpy
6
+ import matplotlib.pyplot as plt
7
+
8
+ def get_temperature_label(predictions, temperature_ranges, left_hand=True):
9
+ """
10
+ Process the raw output of the inference model to get temperature range
11
+ labels.
12
+
13
+ predictions - LIST that contains predictions for each temperature range
14
+ temperature_ranges - LIST with temperature ranges' labels
15
+ left_hand - BOOLEAN that indicates to find the left-hand
16
+ (True) or right-hand (False) limit
17
+
18
+ returns STRING that is the label of the limiting temperature range
19
+ """
20
+ if(left_hand):
21
+ for j, pred in enumerate(predictions):
22
+ if(float(pred) < 0.5):
23
+ return temperature_ranges[j]
24
+ elif(float(pred) >= 0.5 and j != len(predictions)-1):
25
+ continue
26
+ else:
27
+ return temperature_ranges[-1]
28
+ else:
29
+ for j, pred in enumerate(predictions[::-1]):
30
+ if(float(pred) >= 0.5):
31
+ return temperature_ranges[len(predictions)-j]
32
+ elif(float(pred) < 0.5 and j != len(predictions)-1):
33
+ continue
34
+ else:
35
+ return temperature_ranges[0]
36
+
37
+ def detect_clash(predictions, left_hand=True):
38
+ """
39
+ Detecting the conflicting predictions of the ensemble.
40
+
41
+ predictions - LIST that contains predictions for each temperature range
42
+ left_hand - BOOLEAN that indicates to find the clash from left-hand
43
+ (True) or right-hand (False)
44
+
45
+ returns STRING '-' if clash was not detected, '*' if it was
46
+ """
47
+ if(left_hand):
48
+ for j, pred in enumerate(predictions):
49
+ if(j and round(float(predictions[j-1])) <
50
+ round(float(predictions[j]))):
51
+ return "*"
52
+ elif(j and round(float(predictions[j-1])) >=
53
+ round(float(predictions[j])) and j != len(predictions)-1):
54
+ continue
55
+ elif(j and round(float(predictions[j-1])) >=
56
+ round(float(predictions[j])) and j == len(predictions)-1):
57
+ return "-"
58
+ elif(len(predictions) == 1):
59
+ return "-"
60
+
61
+ else:
62
+ for j, pred in enumerate(predictions[::-1]):
63
+ if(j != len(predictions)-1 and round(float(predictions[j-1])) <
64
+ round(float(predictions[j]))):
65
+ return "*"
66
+ elif(j != len(predictions)-1 and round(float(predictions[j-1])) >=
67
+ round(float(predictions[j])) and j != len(predictions)-2):
68
+ continue
69
+ elif(j != len(predictions)-1 and round(float(predictions[j-1])) >=
70
+ round(float(predictions[j])) and j == len(predictions)-2):
71
+ return "-"
72
+ elif(len(predictions) == 1):
73
+ return "-"
74
+
75
+ def print_inferences_header(file_handle, thresholds,
76
+ print_thermophilicity=False):
77
+ """
78
+ Print inferences table header.
79
+
80
+ file_handle - FILE to which the results will be printed
81
+ thresholds - LIST of thresholds that are used
82
+ print_thermophilicity - BOOLEAN that determines whether to print the
83
+ thermophilicity column
84
+ """
85
+
86
+ predictions_columns_names = ""
87
+ for threshold in thresholds:
88
+ predictions_columns_names += f"t{threshold}_binary\tt{threshold}_raw\t"
89
+
90
+ header = f"protein_id\tposition\tsequence\tlength\t{predictions_columns_names}"+\
91
+ f"left_hand_label\tright_hand_label\tclash"
92
+ if(print_thermophilicity): header += "\tthermophilicity"
93
+
94
+ print(header, file=file_handle)
95
+
96
+ def print_inferences(averaged_inferences, binary_inferences, original_headers,
97
+ labels, clashes, thermophilicity_labels, file_handle, sequences=None,
98
+ run_mode='mean', print_thermophilicity=False):
99
+ """
100
+ Print results.
101
+
102
+ averaged_inferences - LIST of DICT that keeps each sequence's mean inferences
103
+ binary_inferences - LIST of DICT that keeps each sequence's binary inferences
104
+ original_headers - DICT of original sequences' headers for printing
105
+ labels - LIST of DICT that keeps each sequence's left-hand and right-hand
106
+ temperature prediction labels
107
+ clashes - LIST of DICT that keeps each sequence's clash labels
108
+ thermophilicity_labels - DICT with possible thermophilicity labels
109
+ sequences - LIST of DICT that keeps sequence ids as keys and sequences as values
110
+ file_handle - FILE to which the results will be printed
111
+ run_mode - STRING that determines which run mode is executed:
112
+ 'mean', 'per-res', 'per-segment'
113
+ print_thermophilicity - BOOLEAN that determines to print the
114
+ thermophilicity column
115
+ """
116
+
117
+ if(sequences is None): return
118
+
119
+ for proc_header in averaged_inferences.keys():
120
+ merged_inferences = []
121
+ for i, inf in enumerate(binary_inferences[proc_header]):
122
+ merged_inferences.append("%d" % binary_inferences[proc_header][i])
123
+ merged_inferences.append("%.3e" % averaged_inferences[proc_header][i])
124
+
125
+ # Setting the default values for run_mode 'mean'
126
+ if(run_mode == "mean"):
127
+ out_header = original_headers[proc_header]
128
+ position = '-'
129
+ elif(run_mode == "per-segment"):
130
+ out_header = original_headers["_".join(proc_header.split("_")[0:-1])]
131
+ pos_range = proc_header.split("_")[-1].split("-")
132
+ range_length = int(pos_range[1])-int(pos_range[0])
133
+
134
+ # Calculating the position (numerated from 1)
135
+ position = str(int(pos_range[0])+int(range_length/2)+1)
136
+ elif(run_mode == "per-res"):
137
+ out_header = original_headers["_".join(proc_header.split("_")[0:-1])]
138
+ position = str(int(proc_header.split("_")[-1])+1)
139
+
140
+ output_line = "%s\t%s\t%s\t%d\t%s\t%s\t%s" % (out_header, position,
141
+ sequences[proc_header],
142
+ len(sequences[proc_header]), "\t".join(merged_inferences),
143
+ "\t".join(labels[proc_header]), clashes[proc_header][0])
144
+
145
+ # Choosing the thermophilicity label
146
+ if(print_thermophilicity):
147
+ thermophilicity = "undetermined"
148
+ if(labels[proc_header][0] == labels[proc_header][1]):
149
+ for t in list(thermophilicity_labels.keys()):
150
+ if(labels[proc_header][0] in thermophilicity_labels[t]):
151
+ thermophilicity = t
152
+ break
153
+ output_line += f"\t{thermophilicity}"
154
+
155
+ print(output_line, file=file_handle)
156
+
157
+ def plot_per_res_inferences(averaged_inferences, thresholds, plot_dir,
158
+ smoothen=True, window_size=21, x_label="residue index",
159
+ title="Per-residue predictions"):
160
+ """
161
+ Plotting per-residue inferences.
162
+
163
+ averaged_inferences - DICT that keeps each sequence's inferences
164
+ (averaged of all threshold models))
165
+ thresholds - LIST with binary models' temperature thresholds
166
+ plot_dir - STRING that determines the directory where plots should
167
+ be saved
168
+ smoothen - BOOL indicates to plot smoothened curve
169
+ """
170
+ WINDOW_SIZE = window_size
171
+
172
+ original_seq_ids = set()
173
+ for seq_id in averaged_inferences.keys():
174
+ original_seq_ids.add("_".join(seq_id.split("_")[0:-1]))
175
+ original_seq_ids = list(original_seq_ids)
176
+
177
+ offset = 0
178
+ for or_seq_id in sorted(original_seq_ids):
179
+ x_values = []
180
+ y_values = []
181
+
182
+ # Python3.7+: DICT has the keys sorted by the insertion order
183
+ for i, seq_id in enumerate(list(averaged_inferences.keys())):
184
+ if(or_seq_id == "_".join(seq_id.split("_")[0:-1])):
185
+ x_values.append(i-offset)
186
+ y_values.append(averaged_inferences[seq_id])
187
+
188
+ y_values = numpy.array(y_values).T
189
+
190
+ for i, threshold in enumerate(thresholds):
191
+ plt.figure(f"t{threshold} models' per-residue inferences for {seq_id}")
192
+ color = "lightgrey" if(smoothen) else "navy"
193
+ plt.plot(x_values, y_values[i], linewidth=1, color=color)
194
+ plt.xlabel(x_label)
195
+ plt.ylabel("prediction")
196
+ plt.title(f"{title} of {or_seq_id} using threshold {threshold}", wrap=True)
197
+ plt.ylim(bottom=0, top=1)
198
+ j = 0
199
+ y_smoothened_values = []
200
+
201
+ if(smoothen):
202
+ while j < len(y_values[i])-WINDOW_SIZE+1:
203
+ window_average = round(numpy.sum(
204
+ y_values[i][j:j+WINDOW_SIZE])/WINDOW_SIZE, 2)
205
+
206
+ y_smoothened_values.append(window_average)
207
+ j += 1
208
+
209
+ plt.plot(x_values[int(WINDOW_SIZE/2):-int(WINDOW_SIZE/2)],
210
+ y_smoothened_values, linewidth=1, color="navy")
211
+
212
+ plt.savefig(f"{plot_dir}/{or_seq_id}_per_residue_plot_t{threshold}.svg", format="svg")
213
+
214
+ offset += len(x_values)
215
+
216
+ def plot_inferences(per_res_out, per_segment_out, averaged_inferences, thresholds, plot_dir,
217
+ window_size, segment_size, smoothen):
218
+ """
219
+ Deciding and calling, which inferences to plot.
220
+
221
+ per_res_out - STRING or None to determine whether per-residue predictions
222
+ are required
223
+ per_segment_out - STRING or None to determine whether per-segment
224
+ predictions are required
225
+ averaged_inferences - DICT that keeps each sequence's inferences
226
+ (averaged of all threshold models))
227
+ thresholds - LIST with binary models' temperature thresholds
228
+ plot_dir - STRING that determines the directory where plots should
229
+ be saved
230
+ window_size - INT of the window size for curve smoothening
231
+ segment_size - INT of the segment size of combined residues
232
+ smoothen - BOOL indicates to plot smoothened curve
233
+ """
234
+ if(plot_dir is None): return
235
+ if(per_res_out):
236
+ plot_per_res_inferences(averaged_inferences, thresholds,
237
+ plot_dir, window_size=window_size)
238
+
239
+ if(per_segment_out):
240
+ plot_per_res_inferences(averaged_inferences, thresholds,
241
+ plot_dir, smoothen=smoothen,
242
+ window_size=window_size,
243
+ x_label=f"segment (k={segment_size}) index",
244
+ title="Per-segment predictions")
scripts/temstapro ADDED
@@ -0,0 +1,308 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+
3
+ # Program that makes thermostability predictions
4
+
5
+ from optparse import OptionParser
6
+ from datetime import datetime
7
+ import sys
8
+ import os
9
+ import numpy
10
+ from torch.utils.data import DataLoader
11
+ from torch.utils.data import TensorDataset
12
+ import torch
13
+
14
+ PARAMETERS = {
15
+ "PT_MODEL_PATH": "Rostlab/prot_t5_xl_half_uniref50-enc",
16
+ "DATASET": "major",
17
+ "EMB_TYPE": "mean",
18
+ "CLASSIFIER_TYPE": "imbal",
19
+ "THRESHOLDS": {
20
+ ":(40-65]:": ["40", "45", "50", "55", "60", "65"],
21
+ ":(40-80]:": ["40", "45", "50", "55", "60", "65", "70", "75", "80"],
22
+ },
23
+ "SEEDS": ["1", "2", "3", "4", "5"],
24
+ "INPUT_SIZE": 1024,
25
+ "HIDDEN_LAYER_SIZES": [256, 128],
26
+ "DEVICE": torch.device("cuda:0" if torch.cuda.is_available() else "cpu"),
27
+ "THRESHOLDS_RANGE": ":(40-65]:",
28
+ "TEMPERATURE_RANGES": {
29
+ ":(40-65]:": ["<40", "[40-45)", "[45-50)", "[50-55)", "[55-60)",
30
+ "[60-65)", "65<="],
31
+ ":(40-80]:": ["<40", "[40-45)", "[45-50)", "[50-55)", "[55-60)",
32
+ "[60-65)", "[65-70)", "[70-75)", "[75-80)", "80<="],
33
+ },
34
+ "THERMOPHILICITY_LABELS": {
35
+ "mesophilic": ["<40", "[40-45)", "<45"],
36
+ "thermophilic": ["[45-50)", "[50-55)", "[55-60)", "[60-65)",
37
+ "65<=", "[65-70)", "[70-75)", "<75"],
38
+ "hyperthermophilic": ["[75-80)", "80<="]
39
+ },
40
+ "PRINT_THERMOPHILICITY": {
41
+ ":(40-65]:": False,
42
+ ":(40-80]:": True
43
+ }
44
+ }
45
+
46
+ SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
47
+ PROJECT_DIR = os.path.dirname(SCRIPT_DIR)
48
+
49
+ parser = OptionParser()
50
+
51
+ parser.add_option("--input-fasta", "-f", dest="fasta",
52
+ default=None, help="path to the input FASTA file.")
53
+
54
+ parser.add_option("--embeddings-dir", "-e", dest="emb_dir",
55
+ default=None, help="path to the directory to which embeddings "+\
56
+ "files will be saved (cache).")
57
+
58
+ parser.add_option("--PT-directory", "-d", dest="pt_dir",
59
+ default=None, help="path to the directory of ProtTrans model.")
60
+
61
+ parser.add_option("--temstapro-directory", "-t", dest="tsp_dir",
62
+ default=PROJECT_DIR, help="path to the directory of TemStaPro program "+\
63
+ "with its dependencies.")
64
+
65
+ parser.add_option("--more-thresholds", dest="more_thresholds",
66
+ action="store_true", help="option for the mode that outputs "+\
67
+ "additional predictions for upper temperature thresholds and the "+\
68
+ "thremophilicity label")
69
+
70
+ parser.add_option("--mean-output", dest="mean_out",
71
+ default=None, help="path to the output TSV file with mean predictions. "+\
72
+ "Predictions made from the mean embeddings are always printed to STDOUT."+\
73
+ " If this option is given, the output is directed to the given file")
74
+
75
+ parser.add_option("--per-res-output", dest="per_res_out",
76
+ default=None, help="path to the output TSV file with per-residue "+\
77
+ "predictions.")
78
+
79
+ parser.add_option("--per-segment-output", dest="per_segment_out",
80
+ default=None, help="path to the output TSV file with per-residue "+\
81
+ "predictions made for each segment of the sequence.")
82
+
83
+ parser.add_option("--segment-size", dest="segment_size",
84
+ default=41, help="option to set the window size for average smoothening "+\
85
+ "of per residue embeddings ('per-segment-output' option). Default: 41.")
86
+
87
+ parser.add_option("--window-size-predictions", "-w",
88
+ dest="window_size_predictions",
89
+ default=81, help="option to set the window size for average smoothening "+\
90
+ "of per residue predictions for plotting (option for 'per-res-output' "+\
91
+ "and 'per-segment-output'). Default: 81.")
92
+
93
+ parser.add_option("--per-residue-plot-dir", "-p", dest="plot_dir",
94
+ default=None, help="path to the directory to which inferences "+\
95
+ "plots will be saved (option for 'per-res-output' and "+\
96
+ "'per-res-segment-output' modes. Default: './'.")
97
+
98
+ parser.add_option("--curve-smoothening", "-c", dest="curve_smoothening",
99
+ default=False, action="store_true",
100
+ help="option for 'per-segment-output' run mode, which adjusts the "+\
101
+ "plot by making an additional smoothening of the curve.")
102
+
103
+ parser.add_option("--portion-size", dest="portion_size",
104
+ default=1000,
105
+ help="option to set the portions', into which to divide the input "+\
106
+ "of sequences, maximum size. If no division is needed, set the "+\
107
+ "option to 0. Default: 1000.")
108
+
109
+ parser.add_option("--version", "-v", dest="version",
110
+ default=False, action="store_true",
111
+ help="print version of the program and exit.")
112
+
113
+ (options, args) = parser.parse_args()
114
+
115
+ if(options.version):
116
+ print(f"TemStaPro 0.2.{int(os.popen('git rev-list --count HEAD').read().strip())-61}")
117
+ exit()
118
+
119
+ options.window_size_predictions = int(options.window_size_predictions)
120
+ options.segment_size = int(options.segment_size)
121
+ if(options.more_thresholds): PARAMETERS['THRESHOLDS_RANGE'] = ":(40-80]:"
122
+
123
+ try:
124
+ assert (options.fasta != None), f"{sys.argv[0]}: a FASTA file is required."
125
+ except AssertionError as message:
126
+ print(message, file=sys.stderr)
127
+ exit()
128
+
129
+ try:
130
+ assert (options.pt_dir != None), (
131
+ f"{sys.argv[0]}: a path to the ProtTrans model location is required."
132
+ )
133
+ except AssertionError as message:
134
+ print(message, file=sys.stderr)
135
+ exit()
136
+
137
+ temstapro_dir = os.path.abspath(options.tsp_dir)
138
+ PARAMETERS["CLASSIFIERS_DIR"] = os.path.join(temstapro_dir, "weight")
139
+
140
+ # Importing local modules
141
+
142
+ sys.path.append(os.path.join(temstapro_dir, "scripts"))
143
+ sys.path.append(os.path.join(temstapro_dir, "model"))
144
+
145
+ import prottrans_models
146
+ import data_process
147
+ import model_flow
148
+ import results
149
+
150
+ # Standardization of the FASTA file
151
+ (sequences, orig_headers, orig_seqs) = prottrans_models.process_FASTA(options.fasta)
152
+
153
+ # Loading the ProtTrans model
154
+ print("%s: beginning to load the model " % datetime.now(), file=sys.stderr)
155
+
156
+ pt_model, tokenizer = prottrans_models.load_model_and_tokenizer(options.pt_dir,
157
+ PARAMETERS["PT_MODEL_PATH"])
158
+
159
+ print("%s: finished loading the model" % datetime.now(), file=sys.stderr)
160
+
161
+ # Dividing sequences into portions
162
+ options.portion_size = int(options.portion_size)
163
+ if(options.portion_size == 0): options.portion_size = len(sequences)
164
+
165
+ per_res_mode = (options.per_res_out or options.per_segment_out)
166
+
167
+ for i in range(0, len(list(sequences.keys())), options.portion_size):
168
+ portion_keys = list(sequences.keys())[i:i+options.portion_size]
169
+
170
+ sequences_portion = {}
171
+ for key in portion_keys:
172
+ sequences_portion[key] = sequences[key]
173
+
174
+ # Check which sequences do not have embeddings generated
175
+ if(options.emb_dir and os.path.exists(options.emb_dir)):
176
+ seqs_wo_emb_portion = data_process.get_sequences_without_embeddings(
177
+ sequences_portion, options.emb_dir, per_res=per_res_mode)
178
+ else:
179
+ seqs_wo_emb_portion = sequences_portion
180
+
181
+ embeddings = {}
182
+ per_res_dataset = {}
183
+ per_res_sequences_portion = {}
184
+
185
+ if(len(seqs_wo_emb_portion)):
186
+ gen_emb_start = datetime.now()
187
+ print(f"{datetime.now()}: beginning to generate embeddings", file=sys.stderr)
188
+
189
+ # Generating embeddings
190
+ embeddings = prottrans_models.get_embeddings(pt_model, tokenizer,
191
+ seqs_wo_emb_portion,
192
+ per_residue=per_res_mode,
193
+ per_protein=True)
194
+
195
+ gen_emb_end = datetime.now()
196
+
197
+ # If cache given, save embeddings
198
+ if(options.emb_dir and os.path.exists(options.emb_dir)):
199
+ if(per_res_mode):
200
+ prottrans_models.save_embeddings(seqs_wo_emb_portion, embeddings,
201
+ options.emb_dir, "per_res")
202
+ prottrans_models.save_embeddings(seqs_wo_emb_portion, embeddings,
203
+ options.emb_dir, "mean")
204
+ elif(options.emb_dir and not os.path.exists(options.emb_dir)):
205
+ print("The given directory (option -e) does not exist, "+\
206
+ "embeddings' PT files will not be saved.", file=sys.stderr)
207
+
208
+ try:
209
+ prottrans_models.print_embeddings_generation_stats(i,
210
+ options.portion_size, embeddings, seqs_wo_emb_portion,
211
+ gen_emb_start, gen_emb_end)
212
+ except ZeroDivisionError:
213
+ print(f"{sys.argv[0]}: no embeddings were generated.", file=sys.stderr)
214
+ sys.exit(1)
215
+
216
+ # Collecting the required type of embeddings
217
+ dataset = data_process.collect_mean_embeddings(sequences_portion,
218
+ embeddings=embeddings, emb_dir=options.emb_dir,
219
+ input_size=PARAMETERS["INPUT_SIZE"])
220
+
221
+ if(options.per_res_out):
222
+ per_res_dataset = data_process.collect_per_res_embeddings(sequences_portion,
223
+ orig_seqs, embeddings=embeddings, emb_dir=options.emb_dir,
224
+ input_size=PARAMETERS["INPUT_SIZE"])
225
+ per_res_sequences_portion = per_res_dataset["z_test"]
226
+ elif(options.per_segment_out):
227
+ per_res_dataset = data_process.collect_per_res_embeddings(sequences_portion,
228
+ orig_seqs, embeddings=embeddings,
229
+ emb_dir=options.emb_dir, input_size=PARAMETERS["INPUT_SIZE"], smoothen=True,
230
+ window_size=options.segment_size)
231
+ per_res_sequences_portion = per_res_dataset["z_test"]
232
+
233
+ test_loader, per_res_test_loader = model_flow.prepare_data_loaders([
234
+ dataset, per_res_dataset], 'test')
235
+
236
+ print("%s: beginning to make inferences" % datetime.now(),
237
+ file=sys.stderr)
238
+
239
+ averaged_inferences, binary_inferences, labels, clashes = model_flow.make_inferences(
240
+ sequences_portion, per_res_sequences_portion, test_loader,
241
+ per_res_test_loader, PARAMETERS, PARAMETERS["THRESHOLDS_RANGE"])
242
+
243
+ print("%s: finished making inferences" % datetime.now(), file=sys.stderr)
244
+
245
+ # Processing results
246
+ for j, loader in enumerate([test_loader, per_res_test_loader]):
247
+ if(loader is None): break
248
+ for seq in averaged_inferences[j].keys():
249
+ labels[j][seq].append(results.get_temperature_label(
250
+ averaged_inferences[j][seq],
251
+ PARAMETERS["TEMPERATURE_RANGES"][PARAMETERS["THRESHOLDS_RANGE"]], left_hand=True))
252
+ labels[j][seq].append(results.get_temperature_label(
253
+ averaged_inferences[j][seq],
254
+ PARAMETERS["TEMPERATURE_RANGES"][PARAMETERS["THRESHOLDS_RANGE"]], left_hand=False))
255
+ clashes[j][seq].append(results.detect_clash(averaged_inferences[j][seq],
256
+ left_hand=True))
257
+
258
+ # Processing printing of mean predictions
259
+ if(options.mean_out):
260
+ os.system(f"mkdir -p {os.path.dirname(options.mean_out)}")
261
+ f_mean = open(options.mean_out, "w") if i == 0 else open(options.mean_out, "a")
262
+ else:
263
+ f_mean = sys.stdout
264
+
265
+ if(i == 0): results.print_inferences_header(f_mean,
266
+ PARAMETERS["THRESHOLDS"][PARAMETERS["THRESHOLDS_RANGE"]],
267
+ PARAMETERS["PRINT_THERMOPHILICITY"][PARAMETERS["THRESHOLDS_RANGE"]])
268
+
269
+ results.print_inferences(averaged_inferences[0], binary_inferences[0],
270
+ orig_headers, labels[0], clashes[0],
271
+ PARAMETERS["THERMOPHILICITY_LABELS"], f_mean, orig_seqs,
272
+ "mean", PARAMETERS["PRINT_THERMOPHILICITY"][PARAMETERS["THRESHOLDS_RANGE"]])
273
+
274
+ # Printing per-residue inferences
275
+ if(options.per_res_out):
276
+ os.system(f"mkdir -p {os.path.dirname(options.per_res_out)}")
277
+ f_per_res = open(options.per_res_out, "w") if i == 0 else open(options.per_res_out, "a")
278
+ if(i == 0): results.print_inferences_header(f_per_res,
279
+ PARAMETERS["THRESHOLDS"][PARAMETERS["THRESHOLDS_RANGE"]],
280
+ PARAMETERS["PRINT_THERMOPHILICITY"][PARAMETERS["THRESHOLDS_RANGE"]])
281
+
282
+ results.print_inferences(averaged_inferences[1], binary_inferences[1],
283
+ orig_headers, labels[1],
284
+ clashes[1], PARAMETERS["THERMOPHILICITY_LABELS"],
285
+ f_per_res, per_res_sequences_portion, "per-res",
286
+ PARAMETERS["PRINT_THERMOPHILICITY"][PARAMETERS["THRESHOLDS_RANGE"]])
287
+ elif(options.per_segment_out):
288
+ os.system(f"mkdir -p {os.path.dirname(options.per_segment_out)}")
289
+ f_per_res = open(options.per_segment_out, "w") if i == 0 else open(options.per_segment_out, "a")
290
+ if(i == 0): results.print_inferences_header(f_per_res,
291
+ PARAMETERS["THRESHOLDS"][PARAMETERS["THRESHOLDS_RANGE"]],
292
+ PARAMETERS["PRINT_THERMOPHILICITY"][PARAMETERS["THRESHOLDS_RANGE"]])
293
+
294
+ results.print_inferences(averaged_inferences[1], binary_inferences[1],
295
+ orig_headers, labels[1],
296
+ clashes[1], PARAMETERS["THERMOPHILICITY_LABELS"], f_per_res,
297
+ per_res_sequences_portion, "per-segment",
298
+ PARAMETERS["PRINT_THERMOPHILICITY"][PARAMETERS["THRESHOLDS_RANGE"]])
299
+
300
+ # Plotting inferences
301
+ if(options.plot_dir):
302
+ os.system(f"mkdir -p {options.plot_dir}")
303
+ results.plot_inferences(
304
+ options.per_res_out, options.per_segment_out,
305
+ averaged_inferences[1],
306
+ PARAMETERS["THRESHOLDS"][PARAMETERS["THRESHOLDS_RANGE"]], options.plot_dir,
307
+ options.window_size_predictions, options.segment_size,
308
+ options.curve_smoothening)
scripts/temstapro_launcher.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+
3
+ import os
4
+ import runpy
5
+
6
+ SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
7
+ runpy.run_path(os.path.join(SCRIPT_DIR, "temstapro"), run_name="__main__")
scripts/tests/cases/temstapro_001.sh ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing case with replaced symbols of the sequence
4
+
5
+ python scripts/temstapro -f scripts/tests/data/replaced_symbol_sequence.fasta -e './scripts/tests/outputs/' \
6
+ -d './ProtTrans/' --per-res-output ./scripts/tests/outputs/001_mean.tmp
7
+
8
+ rm -f ./scripts/tests/outputs/001_mean.tmp
9
+
scripts/tests/cases/temstapro_002.sh ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing passing FASTA sequence as '-f' option and embeddings generation with
4
+ # cache
5
+
6
+ python scripts/temstapro -f ./scripts/tests/data/long_sequence_2.fasta -e 'scripts/tests/outputs/' -d './ProtTrans/' \
7
+ --mean-out scripts/tests/outputs/002.tmp
8
+
9
+ rm -f scripts/tests/outputs/mean_52ae55d4fc194abf0e65abc9d740ffc7f84972ddacefb62e931131655083857e.pt
10
+
11
+ rm -f scripts/tests/outputs/002.tmp
scripts/tests/cases/temstapro_003.sh ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing handling of an empty input
4
+
5
+ python scripts/temstapro -d './ProtTrans/'
scripts/tests/cases/temstapro_004.sh ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing downloading of the ProtTrans model
4
+
5
+ rm -f ./ProtTrans/*
6
+
7
+ python scripts/temstapro -f ./scripts/tests/data/long_sequence_2.fasta \
8
+ -e 'scripts/tests/outputs' -d './ProtTrans/' --mean-out scripts/tests/outputs/004.tmp
9
+
10
+ rm -f scripts/tests/outputs/mean_52ae55d4fc194abf0e65abc9d740ffc7f84972ddacefb62e931131655083857e.pt
11
+ rm -f scripts/tests/outputs/004.tmp
scripts/tests/cases/temstapro_005.sh ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing passing multiple FASTA sequences
4
+
5
+ rm -f scripts/tests/outputs/mean_5d817ae8188e00eca8913c80312e2669d6551777fbed0d1764e1c09386638c0a.pt
6
+ rm -f scripts/tests/outputs/mean_adc7fcd839ba2802998088a0c7b2310d3abdef0229cc020c55fcb82a492c2d8d.pt
7
+ rm -f scripts/tests/outputs/mean_c425721d82cb786570760210076eaa21403b210aa6566882a41c4ac70df2defd.pt
8
+
9
+ python scripts/temstapro -f ./scripts/tests/data/multiple_sequences.fasta -e scripts/tests/outputs/ -d './ProtTrans/'
scripts/tests/cases/temstapro_006.sh ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing making per-residue inferences
4
+
5
+ rm -f scripts/tests/outputs/mean_b6f8b4d2f6602ee040278b1d64ab7cf588baa33d74a126030e252fd91ac00601.pt
6
+ rm -f scripts/tests/outputs/per_res_b6f8b4d2f6602ee040278b1d64ab7cf588baa33d74a126030e252fd91ac00601.pt
7
+
8
+ python scripts/temstapro -f scripts/tests/data/long_sequence.fasta -e './scripts/tests/outputs/' \
9
+ -d './ProtTrans/' --mean-output ./scripts/tests/outputs/006_mean.tmp \
10
+ --per-segment-output ./scripts/tests/outputs/006_per_res_smooth.tmp \
11
+ -c --segment-size 41 --window-size-predictions 81 -p './scripts/tests/outputs/'
12
+
13
+ rm -f ./scripts/tests/outputs/006_mean.tmp
14
+ rm -f ./scripts/tests/outputs/006_per_res_smooth.tmp
scripts/tests/cases/temstapro_007.sh ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing passing loading sequences' embeddings from cache
4
+
5
+ rm -f scripts/tests/outputs/mean_5d817ae8188e00eca8913c80312e2669d6551777fbed0d1764e1c09386638c0a.pt
6
+ rm -f scripts/tests/outputs/mean_adc7fcd839ba2802998088a0c7b2310d3abdef0229cc020c55fcb82a492c2d8d.pt
7
+ rm -f scripts/tests/outputs/mean_c425721d82cb786570760210076eaa21403b210aa6566882a41c4ac70df2defd.pt
8
+
9
+ python scripts/temstapro -f ./scripts/tests/data/multiple_sequences.fasta -e scripts/tests/outputs/ -d './ProtTrans/'
10
+
11
+ python scripts/temstapro -f ./scripts/tests/data/multiple_sequences.fasta -e scripts/tests/outputs/ -d './ProtTrans/'
12
+
scripts/tests/cases/temstapro_008.sh ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing passing multiple FASTA sequences and not saving to cache
4
+
5
+ python scripts/temstapro -f ./scripts/tests/data/multiple_sequences.fasta -d './ProtTrans/'
scripts/tests/cases/temstapro_009.sh ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing passing FASTA sequence as '-f' option and embeddings generation with no cache used
4
+
5
+ python scripts/temstapro -f ./scripts/tests/data/long_sequence.fasta -d './ProtTrans/'
6
+
scripts/tests/cases/temstapro_010.sh ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing making per-residue inferences and plotting
4
+
5
+ rm -f scripts/tests/outputs/mean_519c2e9a42194ade71c697d64ed3bced3175a6324803a940ebdf69bb65f301ec.pt
6
+ rm -f scripts/tests/outputs/per_res_519c2e9a42194ade71c697d64ed3bced3175a6324803a940ebdf69bb65f301ec.pt
7
+ rm -f scripts/tests/outputs/mean_7bdb2d9587a23bb7f744bcffba509cc7adf8c69667a9d954c3be1a4aa09f7c0a.pt
8
+ rm -f scripts/tests/outputs/per_res_7bdb2d9587a23bb7f744bcffba509cc7adf8c69667a9d954c3be1a4aa09f7c0a.pt
9
+ rm -f scripts/tests/outputs/mean_d2a3c93ce60d9c7ed923bda5def8fa46267df336f7310cc3e951a20f092df979.pt
10
+ rm -f scripts/tests/outputs/per_res_d2a3c93ce60d9c7ed923bda5def8fa46267df336f7310cc3e951a20f092df979.pt
11
+
12
+ python scripts/temstapro -f scripts/tests/data/multiple_short_sequences.fasta \
13
+ -e './scripts/tests/outputs/' -d './ProtTrans/' \
14
+ -p './scripts/tests/outputs/' --mean-output ./scripts/tests/outputs/010_mean.tmp \
15
+ --per-res-output ./scripts/tests/outputs/010_per_res.tmp
16
+
17
+ rm -f ./scripts/tests/outputs/short_seq_?_per_residue_plot_?.svg
18
+ rm -f ./scripts/tests/outputs/010_mean.tmp ./scripts/tests/outputs/010_per_res.tmp
scripts/tests/cases/temstapro_011.sh ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing making per-residue inferences
4
+
5
+ rm -f scripts/tests/outputs/mean_b6f8b4d2f6602ee040278b1d64ab7cf588baa33d74a126030e252fd91ac00601.pt
6
+ rm -f scripts/tests/outputs/per_res_b6f8b4d2f6602ee040278b1d64ab7cf588baa33d74a126030e252fd91ac00601.pt
7
+
8
+ python scripts/temstapro -f scripts/tests/data/long_sequence.fasta -e './scripts/tests/outputs/' \
9
+ -d './ProtTrans/' --mean-output scripts/tests/outputs/011_mean.tmp \
10
+ --per-res-output scripts/tests/outputs/011_per_res.tmp
11
+
12
+ rm -f ./scripts/tests/outputs/011_mean.tmp scripts/tests/outputs/011_per_res.tmp
scripts/tests/cases/temstapro_012.sh ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing making per-residue inferences
4
+
5
+ rm -f scripts/tests/outputs/5d817ae8188e00eca8913c80312e2669d6551777fbed0d1764e1c09386638c0a.pt
6
+ rm -f scripts/tests/outputs/adc7fcd839ba2802998088a0c7b2310d3abdef0229cc020c55fcb82a492c2d8d.pt
7
+ rm -f scripts/tests/outputs/c425721d82cb786570760210076eaa21403b210aa6566882a41c4ac70df2defd.pt
8
+
9
+ python scripts/temstapro -f scripts/tests/data/multiple_sequences.fasta -e './scripts/tests/outputs/' \
10
+ -d './ProtTrans/' --mean-output scripts/tests/outputs/012_mean.tmp \
11
+ --per-res-output scripts/tests/outputs/012_per_res.tmp
12
+
13
+ rm -f ./scripts/tests/outputs/012_mean.tmp
14
+ rm -f ./scripts/tests/outputs/012_per_res.tmp
scripts/tests/cases/temstapro_013.sh ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing passing loading some sequences' embeddings from cache and some generating on the spot
4
+
5
+ rm -f scripts/tests/outputs/mean_5d817ae8188e00eca8913c80312e2669d6551777fbed0d1764e1c09386638c0a.pt
6
+ rm -f scripts/tests/outputs/mean_adc7fcd839ba2802998088a0c7b2310d3abdef0229cc020c55fcb82a492c2d8d.pt
7
+ rm -f scripts/tests/outputs/mean_c425721d82cb786570760210076eaa21403b210aa6566882a41c4ac70df2defd.pt
8
+
9
+ python scripts/temstapro -f ./scripts/tests/data/multiple_sequences.fasta -e scripts/tests/outputs/ -d './ProtTrans/'
10
+
11
+ rm -f scripts/tests/outputs/mean_5d817ae8188e00eca8913c80312e2669d6551777fbed0d1764e1c09386638c0a.pt
12
+ rm -f scripts/tests/outputs/mean_adc7fcd839ba2802998088a0c7b2310d3abdef0229cc020c55fcb82a492c2d8d.pt
13
+
14
+ python scripts/temstapro -f ./scripts/tests/data/multiple_sequences.fasta -e scripts/tests/outputs/ -d './ProtTrans/'
15
+
scripts/tests/cases/temstapro_014.sh ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+
3
+ # Testing passing FASTA sequence as '-f' option and getting predictions of t20
4
+ # classifier
5
+
6
+ python scripts/temstapro -f ./scripts/tests/data/long_sequence_2.fasta -e 'scripts/tests/outputs/' -d './ProtTrans/' \
7
+ --more-thresholds
8
+
9
+ rm -f scripts/tests/outputs/mean_52ae55d4fc194abf0e65abc9d740ffc7f84972ddacefb62e931131655083857e.pt
scripts/tests/data/extra_long_sequence.fasta ADDED
@@ -0,0 +1,1457 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ >MGYP003385177403__Cas9-C3M5__1.6e-51 FL=0
2
+ MRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
3
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
4
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
5
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
6
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
7
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
8
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
9
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
10
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
11
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
12
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
13
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
14
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
15
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
16
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
17
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
18
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
19
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
20
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
21
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
22
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
23
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
24
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
25
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
26
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
27
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
28
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
29
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
30
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
31
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
32
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
33
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
34
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
35
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
36
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
37
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
38
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
39
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
40
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
41
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
42
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
43
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
44
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
45
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
46
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
47
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
48
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
49
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
50
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
51
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
52
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
53
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
54
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
55
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
56
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
57
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
58
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
59
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
60
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
61
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
62
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
63
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
64
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
65
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
66
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
67
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
68
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
69
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
70
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
71
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
72
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
73
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
74
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
75
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
76
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
77
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
78
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
79
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
80
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
81
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
82
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
83
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
84
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
85
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
86
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
87
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
88
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
89
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
90
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
91
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
92
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
93
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
94
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
95
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
96
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
97
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
98
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
99
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
100
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
101
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
102
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
103
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
104
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
105
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
106
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
107
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
108
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
109
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
110
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
111
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
112
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
113
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
114
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
115
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
116
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
117
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
118
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
119
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
120
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
121
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
122
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
123
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
124
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
125
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
126
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
127
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
128
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
129
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
130
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
131
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
132
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
133
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
134
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
135
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
136
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
137
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
138
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
139
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
140
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
141
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
142
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
143
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
144
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
145
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
146
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
147
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
148
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
149
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
150
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
151
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
152
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
153
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
154
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
155
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
156
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
157
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
158
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
159
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
160
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
161
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
162
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
163
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
164
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
165
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
166
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
167
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
168
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
169
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
170
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
171
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
172
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
173
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
174
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
175
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
176
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
177
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
178
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
179
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
180
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
181
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
182
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
183
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
184
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
185
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
186
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
187
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
188
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
189
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
190
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
191
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
192
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
193
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
194
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
195
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
196
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
197
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
198
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
199
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
200
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
201
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
202
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
203
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
204
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
205
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
206
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
207
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
208
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
209
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
210
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
211
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
212
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
213
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
214
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
215
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
216
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
217
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
218
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
219
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
220
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
221
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
222
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
223
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
224
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
225
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
226
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
227
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
228
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
229
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
230
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
231
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
232
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
233
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
234
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
235
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
236
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
237
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
238
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
239
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
240
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
241
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
242
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
243
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
244
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
245
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
246
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
247
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
248
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
249
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
250
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
251
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
252
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
253
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
254
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
255
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
256
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
257
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
258
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
259
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
260
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
261
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
262
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
263
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
264
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
265
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
266
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
267
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
268
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
269
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
270
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
271
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
272
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
273
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
274
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
275
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
276
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
277
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
278
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
279
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
280
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
281
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
282
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
283
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
284
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
285
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
286
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
287
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
288
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
289
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
290
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
291
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
292
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
293
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
294
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
295
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
296
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
297
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
298
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
299
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
300
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
301
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
302
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
303
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
304
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
305
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
306
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
307
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
308
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
309
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
310
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
311
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
312
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
313
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
314
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
315
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
316
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
317
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
318
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
319
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
320
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
321
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
322
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
323
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
324
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
325
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
326
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
327
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
328
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
329
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
330
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
331
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
332
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
333
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
334
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
335
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
336
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
337
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
338
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
339
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
340
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
341
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
342
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
343
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
344
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
345
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
346
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
347
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
348
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
349
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
350
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
351
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
352
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
353
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
354
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
355
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
356
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
357
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
358
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
359
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
360
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
361
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
362
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
363
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
364
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
365
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
366
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
367
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
368
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
369
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
370
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
371
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
372
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
373
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
374
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
375
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
376
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
377
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
378
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
379
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
380
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
381
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
382
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
383
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
384
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
385
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
386
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
387
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
388
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
389
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
390
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
391
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
392
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
393
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
394
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
395
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
396
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
397
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
398
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
399
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
400
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
401
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
402
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
403
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
404
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
405
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
406
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
407
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
408
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
409
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
410
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
411
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
412
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
413
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
414
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
415
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
416
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
417
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
418
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
419
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
420
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
421
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
422
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
423
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
424
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
425
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
426
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
427
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
428
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
429
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
430
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
431
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
432
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
433
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
434
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
435
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
436
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
437
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
438
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
439
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
440
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
441
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
442
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
443
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
444
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
445
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
446
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
447
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
448
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
449
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
450
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
451
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
452
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
453
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
454
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
455
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
456
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
457
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
458
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
459
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
460
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
461
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
462
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
463
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
464
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
465
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
466
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
467
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
468
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
469
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
470
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
471
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
472
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
473
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
474
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
475
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
476
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
477
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
478
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
479
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
480
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
481
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
482
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
483
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
484
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
485
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
486
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
487
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
488
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
489
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
490
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
491
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
492
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
493
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
494
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
495
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
496
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
497
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
498
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
499
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
500
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
501
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
502
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
503
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
504
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
505
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
506
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
507
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
508
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
509
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
510
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
511
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
512
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
513
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
514
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
515
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
516
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
517
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
518
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
519
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
520
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
521
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
522
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
523
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
524
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
525
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
526
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
527
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
528
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
529
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
530
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
531
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
532
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
533
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
534
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
535
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
536
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
537
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
538
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
539
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
540
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
541
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
542
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
543
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
544
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
545
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
546
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
547
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
548
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
549
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
550
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
551
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
552
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
553
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
554
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
555
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
556
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
557
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
558
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
559
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
560
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
561
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
562
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
563
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
564
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
565
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
566
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
567
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
568
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
569
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
570
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
571
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
572
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
573
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
574
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
575
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
576
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
577
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
578
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
579
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
580
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
581
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
582
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
583
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
584
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
585
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
586
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
587
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
588
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
589
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
590
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
591
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
592
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
593
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
594
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
595
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
596
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
597
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
598
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
599
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
600
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
601
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
602
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
603
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
604
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
605
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
606
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
607
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
608
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
609
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
610
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
611
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
612
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
613
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
614
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
615
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
616
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
617
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
618
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
619
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
620
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
621
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
622
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
623
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
624
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
625
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
626
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
627
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
628
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
629
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
630
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
631
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
632
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
633
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
634
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
635
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
636
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
637
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
638
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
639
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
640
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
641
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
642
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
643
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
644
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
645
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
646
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
647
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
648
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
649
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
650
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
651
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
652
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
653
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
654
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
655
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
656
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
657
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
658
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
659
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
660
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
661
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
662
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
663
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
664
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
665
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
666
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
667
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
668
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
669
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
670
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
671
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
672
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
673
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
674
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
675
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
676
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
677
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
678
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
679
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
680
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
681
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
682
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
683
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
684
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
685
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
686
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
687
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
688
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
689
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
690
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
691
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
692
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
693
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
694
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
695
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
696
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
697
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
698
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
699
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
700
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
701
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
702
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
703
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
704
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
705
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
706
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
707
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
708
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
709
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
710
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
711
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
712
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
713
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
714
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
715
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
716
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
717
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
718
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
719
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
720
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
721
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
722
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
723
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
724
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
725
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
726
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
727
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
728
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
729
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
730
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
731
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
732
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
733
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
734
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
735
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
736
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
737
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
738
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
739
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
740
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
741
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
742
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
743
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
744
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
745
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
746
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
747
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
748
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
749
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
750
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
751
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
752
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
753
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
754
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
755
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
756
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
757
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
758
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
759
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
760
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
761
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
762
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
763
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
764
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
765
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
766
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
767
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
768
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
769
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
770
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
771
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
772
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
773
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
774
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
775
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
776
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
777
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
778
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
779
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
780
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
781
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
782
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
783
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
784
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
785
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
786
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
787
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
788
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
789
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
790
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
791
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
792
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
793
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
794
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
795
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
796
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
797
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
798
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
799
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
800
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
801
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
802
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
803
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
804
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
805
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
806
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
807
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
808
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
809
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
810
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
811
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
812
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
813
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
814
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
815
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
816
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
817
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
818
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
819
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
820
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
821
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
822
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
823
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
824
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
825
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
826
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
827
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
828
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
829
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
830
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
831
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
832
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
833
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
834
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
835
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
836
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
837
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
838
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
839
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
840
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
841
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
842
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
843
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
844
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
845
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
846
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
847
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
848
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
849
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
850
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
851
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
852
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
853
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
854
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
855
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
856
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
857
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
858
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
859
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
860
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
861
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
862
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
863
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
864
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
865
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
866
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
867
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
868
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
869
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
870
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
871
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
872
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
873
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
874
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
875
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
876
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
877
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
878
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
879
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
880
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
881
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
882
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
883
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
884
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
885
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
886
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
887
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
888
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
889
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
890
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
891
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
892
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
893
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
894
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
895
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
896
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
897
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
898
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
899
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
900
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
901
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
902
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
903
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
904
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
905
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
906
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
907
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
908
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
909
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
910
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
911
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
912
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
913
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
914
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
915
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
916
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
917
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
918
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
919
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
920
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
921
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
922
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
923
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
924
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
925
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
926
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
927
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
928
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
929
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
930
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
931
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
932
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
933
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
934
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
935
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
936
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
937
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
938
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
939
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
940
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
941
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
942
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
943
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
944
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
945
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
946
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
947
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
948
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
949
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
950
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
951
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
952
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
953
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
954
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
955
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
956
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
957
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
958
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
959
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
960
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
961
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
962
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
963
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
964
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
965
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
966
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
967
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
968
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
969
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
970
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
971
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
972
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
973
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
974
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
975
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
976
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
977
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
978
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
979
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
980
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
981
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
982
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
983
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
984
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
985
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
986
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
987
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
988
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
989
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
990
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
991
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
992
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
993
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
994
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
995
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
996
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
997
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
998
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
999
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
1000
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
1001
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
1002
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
1003
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
1004
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
1005
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
1006
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
1007
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
1008
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
1009
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
1010
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
1011
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
1012
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
1013
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
1014
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
1015
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
1016
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
1017
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
1018
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
1019
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
1020
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
1021
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
1022
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
1023
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
1024
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
1025
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
1026
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
1027
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
1028
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
1029
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
1030
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
1031
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
1032
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
1033
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
1034
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
1035
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
1036
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
1037
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
1038
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
1039
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
1040
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
1041
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
1042
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
1043
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
1044
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
1045
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
1046
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
1047
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
1048
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
1049
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
1050
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
1051
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
1052
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
1053
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
1054
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
1055
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
1056
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
1057
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
1058
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
1059
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
1060
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
1061
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
1062
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
1063
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
1064
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
1065
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
1066
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
1067
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
1068
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
1069
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
1070
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
1071
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
1072
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
1073
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
1074
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
1075
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
1076
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
1077
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
1078
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
1079
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
1080
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
1081
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
1082
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
1083
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
1084
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
1085
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
1086
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
1087
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
1088
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
1089
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
1090
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
1091
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
1092
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
1093
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
1094
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
1095
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
1096
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
1097
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
1098
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
1099
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
1100
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
1101
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
1102
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
1103
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
1104
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
1105
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
1106
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
1107
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
1108
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
1109
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
1110
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
1111
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
1112
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
1113
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
1114
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
1115
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
1116
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
1117
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
1118
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
1119
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
1120
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
1121
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
1122
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
1123
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
1124
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
1125
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
1126
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
1127
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
1128
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
1129
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
1130
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
1131
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
1132
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
1133
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
1134
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
1135
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
1136
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
1137
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
1138
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
1139
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
1140
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
1141
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
1142
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
1143
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
1144
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
1145
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
1146
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
1147
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
1148
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
1149
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
1150
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
1151
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
1152
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
1153
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
1154
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
1155
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
1156
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
1157
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
1158
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
1159
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
1160
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
1161
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
1162
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
1163
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
1164
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
1165
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
1166
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
1167
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
1168
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
1169
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
1170
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
1171
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
1172
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
1173
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
1174
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
1175
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
1176
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
1177
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
1178
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
1179
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
1180
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
1181
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
1182
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
1183
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
1184
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
1185
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
1186
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
1187
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
1188
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
1189
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
1190
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
1191
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
1192
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
1193
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
1194
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
1195
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
1196
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
1197
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
1198
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
1199
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
1200
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
1201
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
1202
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
1203
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
1204
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
1205
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
1206
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
1207
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
1208
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
1209
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
1210
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
1211
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
1212
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
1213
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
1214
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
1215
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
1216
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
1217
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
1218
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
1219
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
1220
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
1221
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
1222
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
1223
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
1224
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
1225
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
1226
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
1227
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
1228
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
1229
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
1230
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
1231
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
1232
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
1233
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
1234
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
1235
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
1236
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
1237
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
1238
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
1239
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
1240
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
1241
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
1242
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
1243
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
1244
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
1245
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
1246
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
1247
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
1248
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
1249
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
1250
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
1251
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
1252
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
1253
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
1254
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
1255
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
1256
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
1257
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
1258
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
1259
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
1260
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
1261
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
1262
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
1263
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
1264
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
1265
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
1266
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
1267
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
1268
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
1269
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
1270
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
1271
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
1272
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
1273
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
1274
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
1275
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
1276
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
1277
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
1278
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
1279
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
1280
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
1281
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
1282
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
1283
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
1284
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
1285
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
1286
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
1287
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
1288
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
1289
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
1290
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
1291
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
1292
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
1293
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
1294
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
1295
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
1296
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
1297
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
1298
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
1299
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
1300
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
1301
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
1302
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
1303
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
1304
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
1305
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
1306
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
1307
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
1308
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
1309
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
1310
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
1311
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
1312
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
1313
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
1314
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
1315
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
1316
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
1317
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
1318
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
1319
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
1320
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
1321
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
1322
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
1323
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
1324
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
1325
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
1326
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
1327
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
1328
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
1329
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
1330
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
1331
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
1332
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
1333
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
1334
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
1335
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
1336
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
1337
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
1338
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
1339
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
1340
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
1341
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
1342
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
1343
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
1344
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
1345
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
1346
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
1347
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
1348
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
1349
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
1350
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
1351
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
1352
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
1353
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
1354
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
1355
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
1356
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
1357
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
1358
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
1359
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
1360
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIFMRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
1361
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
1362
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
1363
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
1364
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
1365
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
1366
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
1367
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
1368
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
1369
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
1370
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
1371
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
1372
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
1373
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
1374
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
1375
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
1376
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
1377
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
1378
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
1379
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
1380
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
1381
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
1382
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
1383
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
1384
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
1385
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
1386
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
1387
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
1388
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
1389
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
1390
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
1391
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
1392
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
1393
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
1394
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
1395
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
1396
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
1397
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
1398
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
1399
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
1400
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
1401
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
1402
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
1403
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
1404
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
1405
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
1406
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
1407
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
1408
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
1409
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
1410
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
1411
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
1412
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
1413
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
1414
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
1415
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
1416
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
1417
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
1418
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
1419
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
1420
+ XGTGSQYPELXEKEXRYRTFLSRKPQYGRIAKEKRNIXSYCVSPRESKVFILTRHWXMPL
1421
+ AIKPIWYLPGQCSVQVWNYXKVRKWNDVISHICVRQRXITSLRTNGVSAVMRLKRQQRVF
1422
+ CTDGAAKLSRRRQMSVPXXGTLRELQTAGTAKVMSCXKRLMIMQKEVDENVRGISXFLXP
1423
+ LXKTAKAVRXTYXFCREKEDTAFLXIGDSAFFXGKGRKKKDGSKPVKREXKPRKKRCKAX
1424
+ KQEMSGIGSWQRLEIAEELYRQLDKEFSEQENKIFWSXTGRYRRISAKCLTQRIKRLNXH
1425
+ RSMRFRCFTVRSRDTGKRKSVRRRENSKELCVYCNDHGFQQKKETGKDRAXDSRQXHPSD
1426
+ RIGRTVFXAGRXKYRIDRKGAATGFGTGHYLYVEKKTGSIQSXILTLEADITLIKNRKNH
1427
+ LQRSNRQGGDSLMENYKFFNDPYKFSGKHARMVSELWSLNDYEHSYFKRLIDIYIVAAIL
1428
+ GFRIDRKAKRDYAPVEQRTVFGEQMRQASEDLEFILQMMLLLEPAGQGIHEECIRRAFKG
1429
+ VETEEEFKRYNELFESYMLGGVEELYERLVLQKEEIDTDYSDDKTANLMMLFERFAPKKT
1430
+ SXNFYKISELLKNQFTKYGKNGIIKNELYYTKKXSVIAVWXAKPKLXSHSSEWDYLLYGF
1431
+ YRNSKKTNFXYTKCSAQAVLGGEKFMGEMSKTNMDRHRSYRIGLDIGIASVGWAVLENNS
1432
+ QDEPIRILDLGVRIFEAAEVPKTGAALAAERRDARTARRSDPQKTSSFRKDXVAVXKRRT
1433
+ DPNRFFYGAVSFTKSAGCLXTSLXRFRTEAEQXGICTGTVTYCKTSWFPLDKKGGVKRRG
1434
+ QWKSLKSNRREPQTYGRAWLPYRWRNDIXRCLFSYXVCVGRQWISVNTXKXSRXLFPHNA
1435
+ PGAVRRGGSHPFXMSEKVWKXKGDXKIRSRNIXKLCCHSVLLIWDRDSRQTERRALMQWR
1436
+ DLEIRSDIVHXKENPANVVRQKQPIRQSYLLHCRRSHIXNWYIWMAHPDFFRKRSGTFYX
1437
+ KCFRPKKEIKYAAVRKKLNLPLEEKFNTLNYNMKRKGKDNKEEEVDEAAIIAATEKATLS
1438
+ VCPIVMNTAKESENIXRPCRKKNNRICXMKLERFXPVIRTMTAVXTVXRRQVCRRNWRIL
1439
+ CXSXHLRSSSTFLXKQXKKSCLIXKKVWYMIKHVKQRAMILKMIIMERKXSCXKAKILQK
1440
+ PLMRLRTRLXKRSVSQTVKVINAIILKYGSPQAVSIELAREMSKNFEERRKAEKQMEENR
1441
+ KKNEMAKKGNSGTGQTFAERSGYFEIPFMAXSTGNMPLYRXKDTVRRTVSAGIXYXPHSS
1442
+ LQYHFXXQLPEQGACYFTGKPXERKPHPIXVFWSGXGPLECLXSKSXSFYQGLXEASQFV
1443
+ KTGIYKRRPQGIQRAXFKXYKVYYTRDLXYDPSEFRDGAFESGRQEETGLCCQWFHNSLF
1444
+ KKKMGTDAKRPFYRHSSCNGCCSSSLLYRWYDSKNFQKYTVSXGLIQRTESPGLXDCGCG
1445
+ DRRNHFFRRPFKRRVGRALRSTGTAAMGAFXRRVRSPYGKXSEEXSGHTSGYVPVVPLSG
1446
+ RCVXQYPANLCVKDAKSQGDRCSTCRYNTKSGDITKTVERYLRMVAMYYHEPILKIXNWI
1447
+ RMERLKITTIRTVTDYYMKHXGHDWQNMMVMEKRHLPKSFISQKQMVHRVLLXKKXKPIK
1448
+ KMSLGVEINKDEAGVGRGIAENANGGMIRVDVFRENGKYYFVPIYIADALKKRLPNKAAM
1449
+ QNKPYSEWKEMKDENFLFSLYSRDLIGFKNQKGKKVHCTDGTEIVLTNEIVYYIGANIRT
1450
+ ASISCKAHDNQYEFGSFGIQSLQELKKYQVDVLGNVTEVRQEKRRGFQXMGYRNIKIETS
1451
+ QQLNIKNSQLLIGSSGEVQIPLEDINSILIESQAVTLSSYLLQKMAEMGIAVYVCDEKHL
1452
+ PNAVLLPMVRHSRHFKLLKCQMNLGKPKQKGFGSRLXSGKLKINQPVLDSXIXRVPKSFX
1453
+ KCQNRYNPVIKQMLKQRQQLFIFAGYMVWDFPEVMIISLTQRXITDMQLCVEXLRVLSFV
1454
+ MDXSLLWDYFIVANXIVITXQMILLRYFVRLXICMFPVVLTYQRLIGHXRLKXKENYMEX
1455
+ XIMTCWXEERSIYXVIALTKQLQVIAVHCRETVKNWNFRFXWSYRYIVMSKFMRMIVFFD
1456
+ LPVGTARERKAATKFRNFLIKDGYHMVQYSVYSRICNGNDAVEMHETRLKQHLPSRGSIR
1457
+ LLTITEKQYESIHILLGEAVFDDTSEATELINIF
scripts/tests/data/long_sequence.fasta ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ >WP_117970347_1
2
+ MESNNKIFTETIGTSSIAKTMRNSLVPTESTKRNIEKNGIIIDDQLRAEKRQQLKEIMDEYYRTYIDNKL
3
+ SNVALTRTIDWKELFQAIEDNYKQNTTKTKNELEKKQKEKRTEIYKILSDDEKFKQLFNAKLLTNVLPEF
4
+ IKNQNIDNEEKQEKISTVELFQRFTSSFTDFFKNRKNVFSKDEISTSICYRVVQENAWIFYQNLLAFEEI
5
+ KKTAEQEIEKIEAENRDSISDYSLKEIFDFDFYGLLLNQGGIRFYNDVCGKINYHMNLYGQKHNIKSNKF
6
+ KMKRMHKQILSIDESTFEVPTMFENDKEVYQVLNEFLSDLASKKILERVEKIGENVSEYEINKIYIQSKN
7
+ FEKFSSFMCGNWQIINDSLKTYYNEKIKSKGKAKEEKVKKAIKAIEYKSLADINQLVERYNNDELNRKAE
8
+ EYISAINEKIKDLDVNEIEYDEKINLIENETKSEEIKSKLDSIMEIMHWTKMFIIEEEIEKDVNFYNEIE
9
+ EIYDELQPLVTIYNRIRNYVTQKPYSEEKIKLNFGIPTLANGWSKTKEYDNNAIIMIRDGKYYLGIFNAK
10
+ NKPDKKIMEGHQSEENGDYKKMIYRLLPGPNKMLPKVFMSKTGIAEYKPSQYILECYEQNKHIKSDKNFD
11
+ IKFCRDLIDFFKTSINRHPEWSKFNFKFSETSEYEDISTFYREVEKQGYKIEWTYISEKEIKELDENGQL
12
+ YLFQIYNKDFSEKSKGKENLHTMYLKNLFSEENLKNIVLKLNGEAEVFFRKSSIKKPIIHKKGSVLVNKT
13
+ YNENGERKSIPEEQYTEIYKYLNSIGTNELSEKSKKLMEEGKVEYYKANYDIVKDYRYSVDKFFIHLPMT
14
+ INFKAAGFSPINNIALKNIALKDDMHIIGIDRGERNLIYVSVIDTKGNIVEQRNFNIVNGIDYKEKLKQK
15
+ ELDRDNARKNWKEIGKIKDLKEGYLSLVVHEIAKLVVKYNAIITMEDLNQGFKRGRFKVERQVYQKFETM
16
+ LINKLNYLVDKDLAVDQEGGLLRGYQLTYIPESLKVLGRQCGYIFYVPAAYTSKIDPTTGFVAIFNYKGM
17
+ TDKDFVTSFDSIKYDDERGLFAFEFDYENFVTHKVEMARNKWTVYTYGERIKRKFKNGSWDTAEKVDLTY
18
+ QMRSILEKYEIEYNKGQDILEQIEELDEKAQNGICKEIKYLVKDIVQMRNSLPDNAAEDYDAIISPVINN
19
+ NGEFFDSTRGDEDKPLDADANGAYCIALKGLYEVMQIKKNWNEETEFPRKELKIRHQDWFDFIQNKRYL
scripts/tests/data/long_sequence_2.fasta ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ >MGYP003385177403__Cas9-C3M5__1.6e-51 FL=0 (part)
2
+ MRNEATLWLAKYMEDHGISTEKISRELHIPKKKLIPGTKESLDADEFLALCSYLQINPQT
3
+ IPIGQGEKXLHIYAYNKDIKTGEDLPCTNTVCKTSICPSCGQRADAGSQIYWCKSCKTLY
4
+ MRKSALSVIRKERSWQRICVRSFRKRGCCXSSFWGHPMHFXRSLCGMVQEITIMXMGREF
5
+ LFPXRIXNNXILIKCGKNIRNIRKKIQTGILKNRWRYSYRQTESVMRHWWKRQMSISAEW
6
+ QQIITLWKCLFRSAVEKTLPLFLIWSCGHSEIRKCSTFLVIRHWNFHLPMNMXNVLSRSI
7
+ RRHQSLPLATKRRILRNSVVXSVSSRVMRWCCTVFKTGSIQKTIKSLFRNKKEILTFYGI
8
+ RRSESASRSKYDRDSDSPKITKQRIISPIIDWMDFDIWLYLLTTGIDFNRAYRLGYARVG
9
+ CWCCPNNSGWSEFLSKIHMKEQSTHFREMLLEFAREIGKEDAEVYVDEGYWKARQGGNGV
10
+ AYAQKSVIAFEPCATQENTYNYELQKPIETELYELFRPFGYLNYELGNERLGEVYILGKN
11
+ GVPQLKLQGRIGTKKLKVTLLGSEDYGRXDKVSDYQIPDVYGMSCMXERMQAXCDFHKRR
12
+ RRWEHPLSDFGXKMCKVQGMCQSFFCRMLYEKGTGNXKEINRXRNHDKDKIPFXRAXKLY
13
+ FAGGLAQXRHEGSEKXSVCFFAELWSRCARGGSEHGKGDPLLDANLRVIRRAGKTGCIPF
14
+ KARRAIWEYDKYLEETFSLWIIHCNIVKKSXAGNRVESFLMNMMKWNLPKTNWXRSXXTK
15
+ QKIWTDLKNFRKNPXKQTERHCFVCMXESRSGEAIRRKRTSARLASLNWXNKRAVFTGKA
16
+ SRRCICFRQRSSGIFXKTARPKKELSVSMIFXQERIRRAGSXIXRGPVWXKNLKSXNKKI
17
+ IYKXTGQQAWTWYIXTSLXQEKKLLKNTSDHREEGEKRQMKNFVNVDTRFQKSINLTLDT
18
+ GDMALVNRYIPTRSSVSILKQYLTNIVRGQGEHATILIGPYGKGKSHLLLVLLALLCKSK
19
+ DETAEIQKKIIEADNSTKLLFMELAEVGRPFLPVIVSSFQGDLNESFIFALQEALKRPVS
20
+ EICRPSEYSEAVRTMESWKEFYPDTYQRFEKMLEERGCTASLFKERLKNKKKLHSXNSKN
21
+ FTRYXHPEVFSIQWCKKKHFGSMKRSTVCFVQSTDMPAFISSLMNSVSIXKDMKQKNFCK
22
+ GYEDFAGYVRIGRQPERRADVSDLCGAXEYPXVCQKYXFGNDPGIPWGRRAAERDPVCSF
23
+ FPEXLXTDRACTAXERGILYLGNTGKGRSVLSACLFFTSFEKEDFNQIVAKGCYPLTPVC
24
+ AYALLNISEKIGQNERTVFTFLAGNEPGSLNRIMEGRNRENLIGVEYVYDYFKNLFRETV
25
+ DETYIHNEWLKAEYALTKADTEIEKRIIKAMAIIRMIHPWKSXRYXISRSVWRXISKKEE
26
+ CDKAMRELMKKSDLFSAQVLVPMHLRTISVLISRRRLKKNPAAASXHQYLXSVKRDFRTD
27
+ LCRSKTVQSGPCNDKIFPIXIHXIXRLPFHWQCKGLFRAPFFRWIYLSDRDSRQGRKGKS
28
+ AASSAGIRGXTYYRVTAXRRIFIGMGAFCVLRQSEALQRMSILLKRIKRSVRNXTSMKRT
29
+ SAMRXMRDXREILCRKTAAVMYFIQAEKSRISGPEWNLTGIXARSVKTTIRXHRGSTMSF
30
+ XISRMCRDSTXRQEMMWXEPFXMEKIXRNMSRAAVLRQWCIVRHFFGQDLPEKISRXTRL
31
+ SKDHGGDRRLFCESKWKAGIFSDALXTLAGQRLWGAKRCASAVSCVEILSARRHAGAVPW
32
+ KXGTADHGRSAEQYQPVSGKLXSLYRKERYGKRALFTGNGGYLLXCADGKDHTFQPTFRH
33
+ YGKYAEMVPFPAAVYAGQXTLSAGNALCGQKFPKVIKADGVKSERIFVXAASECHGFFXK
34
+ SYDRALSQGNEAEHGYAFXKCDRRYGKGDQKNIWCKKKATVSRHVCRTGMADSKTVPNAM
35
+ YXTKRSRVLWNMWENXIPTTSRRLLPYYPNVWKISILRTGMTDYRKNFCVTLQRYAKRQR
36
+ RQRKMPVXRTDKKRFSXRRRMERRSTNIMMRMXKTAPVNFXKIXSKRHWITLETAXRQIR
37
+ KWLFXRRHXKNYYSRGNIMEEYIYLDNAATTFPKPEAVYRALDRANRNAAVNAGRGSYAL
38
+ AEQAKQLIEDSRGLLLTLTKAKPAAEVVFTPSATFACNQIFGGLPWKREDIVYVSPYEHN
39
+ AVMRTLHFLQQRYGFAIEELSVDAGTLELDLEKNPLSVYPKPSNGSCHDTYQQCHRVYSS
40
+ GXRSGSFDRYGKRRRXSWMVRRHWDXSLSVWNKAALITIYLRVIRHFTDRLESAVISHNL
41
+ QEMQKNXDLXSQEEPEAIHXIXRCRSFFPTVMNREVRTYRRSRDXKRRXKHLEVIMKKCV
42
+ RPXRSIIKKNGNXRNCXRQSFKKYRESILIFHRIRKKGAASVPLRSKDILRMMXECCSMK
43
+ IIISQSGAAITVHRXSINTXRINHTGGRCVWASDSLIQKKTSGNSYTQWKKSQGVTKVND
44
+ DLKRVNLRDIVDRISENTIVLPDFQRGFTWKENNRQKALLASVLTKLPIGTVLFLNVKTE
45
+ DYGYKKIGKNEKKHXQFRGKAGSKGAVRRSAEDHGLNGIPFHETSKRKYXRSRITDTGAA
46
+ VFLESSKFSKCDRXQKEDLFGGTILSFPNSFRGNYPEISSEEMKERITFVHDRKKAFLYE
47
+ KAETKDTREIREYCRNIDNSEDGDAYLLPLFYLLDACEPGSSGAVILEDVVKEIGAEYEK
48
+ SIGSWLQAEEYPIEEKEQYLEKFGLEDAQREAVLEEIKTGTLFYQKKKEKIIFLTVXRNG
49
+ KCSGECTFVNIXENVLRISGFMRLQFPSMIKSAPLISMKTXTWEENPXVSLIRSXQRHPD
50
+ IRRRREISLHRSXMTXSVTTGRNIPHLXKNAQRVRRTVIKITLQTATNHIRQWDGSAAGI
51
+ NLKKSFLLPTXRHXXTFWVSLTIFQKEIRDLVCVMLRRSKTXTXKSQKRISAADSIRKNI
52
+ RLCGGGMSGLRPRSLIFTDAVWNPKAWXNTLQSDVGYLRYGIFRXSMVXGQXSLRLYGSL
53
+ VLECDFIGRVQDRAEPGIYPESSECFIXDPKHQRIXXEIHKSPLQXRTDRXKICRPXHCF
54
+ NEKSIRISGGGNWEYHLSILFIRDIFGYFKTASGEKRLSATNTECIEQFREAAKTSHYAD
55
+ RKSXRKVXGMPIKRQKAGEKTTAVRIIHRXISCXYRKKRMGXSKIVHXRNTLNFAIRPHX
56
+ IMXTSKTIHLPICRSGNRIPDRXRSIAAFSRKKIXRFXEPYYVEVSEFIELSRHLLRRGR
57
+ KLIWKRIGTAXCRHXSLKFCIWKRRICEARQRQISACQRNCRKSSRNMQEDNGIGGQVYE
58
+ IXKYYHGKFHAVXGQESYRIQLXXCKKCNSSIRRQYGWKNDDSAGIPLGTVWCVNGKRDK
59
+ KCRRFSAFKYGYLRNDGCQQSCXGKSRDCSSXRGKTLYHHKRDNLYQSISKVREPGVSEE
60
+ MCDADYRVRGHGKLCRGRQQRDRDIDQXTVSKELVPLFFVXWRTVEXCQCRRCPGKYQRI
61
+ GTYFNGIICISRGEEPFKRYGKQFRYQKFRSEIEDRVQSMIIXKQNEKIRAXYRKAPGXD
62
+
scripts/tests/data/multiple_sequences.fasta ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ >AaCas12b
2
+ MAVKSMKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKAELLERLRARQVENGHCGPAGSDDELLQLARQLYELLVPQAIGAKGDAQQIARKFLSPLADKDAVGGLGIAKAGNKPRWVRMREAGEPGWEEEKAKAEARKSTDRTADVLRALADFGLKPLMRVYTDSDMSSVQWKPLRKGQAVRTWDRDMFQQAIERMMSWESWNQRVGEAYAKLVEQKSRFEQKNFVGQEHLVQLVNQLQQDMKEASHGLESKEQTAHYLTGRALRGSDKVFEKWEKLDPDAPFDLYDTEIKNVQRRNTRRFGSHDLFAKLAEPKYQALWREDASFLTRYAVYNSIVRKLNHAKMFATFTLPDATAHPIWTRFDKLGGNLHQYTFLFNEFGEGRHAIRFQKLLTVEDGVAKEVDDVTVPISMSAQLDDLLPRDPHELVALYFQDYGAEQHLAGEFGGAKIQYRRDQLNHLHARRGARDVYLNLSVRVQSQSEARGERRPPYAAVFRLVGDNHRAFVHFDKLSDYLAEHPDDGKLGSEGLLSGLRVMSVDLGLRTSASISVFRVARKDELKPNSEGRVPFCFPIEGNENLVAVHERSQLLKLPGETESKDLRAIREERQRTLRQLRTQLAYLRLLVRCGSEDVGRRERSWAKLIEQPMDANQMTPDWREAFEDELQKLKSLYGICGDREWTEAVYESVRRVWRHMGKQVRDWRKDVRSGERPKIRGYQKDVVGGNSIEQIEYLERQYKFLKSWSFFGKVSGQVIRAEKGSRFAITLREHIDHAKEDRLKKLADRIIMEALGYVYALDDERGKGKWVAKYPPCQLILLEELSEYQFNNDRPPSENNQLMQWSHRGVFQELLNQAQVHDLLVGTMYAAFSSRFDARTGAPGIRCRRVPARCAREQNPEPFPWWLNKFVAEHKLDGCPLRADDLIPTGEGEFFVSPFSAEEGDFHQIHADLNAAQNLQRRLWSDFDISQIRLRCDWGEVDGEPVLIPRTTGKRTADSYGNKVFYTKTGVTYYERERGKKRRKVFAQEELSEEEAELLVEADEAREKSVVLMRDPSGIINRGDWTRQKEFWSMVNQRIEGYLVKQIRSRVRLQESACENTGDI
3
+
4
+ >WP_206918966_1
5
+ MTVKSIKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKAELLERLRARQVENGHRGPAGSDDELLQLARQLYELLVPQAIGAKGDAQQIARKFLSPLADKDAVGGLGIAKAGNKPRWVRMRDAGEPGWEEEKAKAEARKSTDRTADVLRALADFGLKPLMRVYTDSDMSSVQWKPLRKGQAVRTWDRDMFQQAIERMMSWESWNQRVGEAYAKLVEQKSRFEQKNFVGQEHLVQLVNQLQQDMKEASHGLESKEQTAHYLTGRALRGSDKVFEKWEKLDPDAPFDLYDTEIKNVQRRNMRRFGSHDLFAKLAEPKYQALWREDASFLTRYAAYNSILRKLNHAKMFATFTLPDATAHPIWTRFDKLGGNLHQYTFLFNEFGEGRHAIRFQKLLTIEHGVAKEVDDVTVPISMSAQLDDLLPGESNEPTELSFRDHGTDQHFTGEFGGAKIQYRRDQLDHVHRRRGARDVYLNLSVRVQSQSEARGERRPPYAAVFRLVGDTHRAFAHFDKLSNYLAEHPDDGKLGSEGLLSGLRVMSVDLGLRTSASISVFRVARKDELKPNSEGRVPFFFPIKGNDNLVAVHERSQLLKLPGETESKDLRAIREERQRILRQLRTQLAYLRLLVRCGSEDVGRRERSWAKLIEQSVDAANHMTPDWREAFEGELQKLKSLYGICGDREWTEAVYESVRRVWRHMGKQVRDWRKDVRSGERPKIRGYQKDVVGGNSIEQIEYLERQYKFLKSWSFFGKVSGQVIRAEKGSRFATTLREHIDHAKEDRLKKLADRIIMEALGYVYALDAERGKGTWVAKYPPCQLILLEELSEYRFNNDRPPSENNQLMQWSHRGVFQELLNQAQVHDLLVGTMYAAFSSRFDARTGAPGIRCRRVPARCAREQNPEPFPWWLNKFVAEHKLDGCPLRADDLIPTGEGEFFVSPFSAEEGDFHQIHADLNAAQNLQRRLWSDFDISQIRLRCDWGEVDGEPVLIPRLTGKRTADSYGNKVFYTNTGVTYYERERGKKRRKAFAQEELSEEEAELLVEADEAREKSVVLMRDPSGIINRGDWTRQKEFWSMVNQRIEGYLVKQIRSRVRLPESACENTGDI
6
+
7
+ >WP_206922773_1
8
+ MTVKSIKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKVELLERLRARQVENGHRDPAGSDDELLQLARQLYELLVPQAIGAKGDAQQIARKFLSPLADKDAVGGLGIAKAGNKPRWVRMRDAGEPGWEEEKAKAEARKSTDRTADVLRALADFGLKPLMRVYTDSDMSSVQWKPLRKGQAVRTWDRDMFQQAIERMMSWESWNQRVGEAYAKLVEQKSRFEQKNFVGQEHLVQLVNQLQQDMKEASHGLESKEQTAHYLTGRALRGSDKVFEKWEKLDPDAPFDLYDTEIKNVQRRNTRRFGSHDLFAKLAEPKYQALWREDASFLTRYAAYNSILRKLNHAKMFATFTLPDATAHPIWTRFDKLGGNLHQYTFLFNEFGEGRHAIRFQKLLTIEHGVAKEVDDVTVPISMSAQLDDLLPGESNEPTELSFRDHGTDQHFTGEFGGAKIQYRRDQLDHVHRRRGARDVYLNLSVRVQSQSEARGERRPPYAAVFRLVGDTHRAFAHFDKLSNYLAEHPDDGKLGSEGLLSGLRVMSVDLGLRTSASISVFRVARKDELKPNSEGRVPFFFPIKGNDNLVAVHERSQLLKLPGETESKDLRAIREERQRILRQLRTQLAYLRLLVRCGSEDVGRRERSWAKLIEQSVDAANHMTPDWREAFEGELQKLKSLYGICGDREWTEAVYESVRRVWRHMGKQVRDWRKDVRSGERPKIRGYQKDVVGGNSIEQIEYLERQYKFLKSWSFFGKVSGQVIRAEKGSRFATTLREHIDHAKEDRLKKLADRIIMEALGYVYALDAERGKGTWVAKYPPCQLILLEELSEYRFNNDRPPSENNQLMQWSHRGVFQELLNQAQVHDLLVGTMYAAFSSRFDARTGAPGIRCRRVPARCAREQNPEPFPWWLNKFVAEHKLDGCPLRADDLIPTGEGEFFVSPFSAEEGDFHQIHADLNAAQNLQRRLWSDFDISQIRLRCDWGEVDGEPVLIPRLTGKRTADSYGNKVFYTNTGVTYYERERGKKRRKAFAQEELSEEEAELLVEADEAREKSVVLMRDPSGIINRGDWTRQKEFWSMVNQRIEGYLVKQIRSRVCLPESACENTGDI
9
+
scripts/tests/data/multiple_short_sequences.fasta ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ >short_seq_1
2
+ MAVKSMKVKLRLDNMPEIR
3
+
4
+ >short_seq_2
5
+ MTVKSIKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQEN
6
+
7
+ >short_seq_3
8
+ MTVKSIKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKVELLERLRARQVENGHRD
9
+
scripts/tests/data/replaced_symbol_sequence.fasta ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ >artificial_sequence
2
+ UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
3
+ OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
scripts/tests/outputs/mean_5d817ae8188e00eca8913c80312e2669d6551777fbed0d1764e1c09386638c0a.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f701549f9f8945f3a1d7f3d269fd985c9d7f14e0a66ebcdb2c7774fb7114769f
3
+ size 7058
scripts/tests/outputs/mean_adc7fcd839ba2802998088a0c7b2310d3abdef0229cc020c55fcb82a492c2d8d.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f8ace46e292c8c1b9f5de6ba71f42e3489104a477421dfd1c5d60ea1990dd09f
3
+ size 7058
scripts/tests/outputs/mean_b6f8b4d2f6602ee040278b1d64ab7cf588baa33d74a126030e252fd91ac00601.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4552bed4e01d1e4d47c0cb8106d6a2390de545ea4e27683c3376d4f18984cb1b
3
+ size 7186
scripts/tests/outputs/mean_c425721d82cb786570760210076eaa21403b210aa6566882a41c4ac70df2defd.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f7f90b869cbeaddd6e8e8ba5e73cf5f1b64e9cf4ff9ad673b668d59eb4baa60f
3
+ size 7058
scripts/tests/outputs/multiple.tsv ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ protein_id position sequence length t40_binary t40_raw t45_binary t45_raw t50_binary t50_raw t55_binary t55_raw t60_binary t60_raw t65_binary t65_raw left_hand_label right_hand_label clash
2
+ AaCas12b - MAVKSMKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKAELLERLRARQVENGHCGPAGSDDELLQLARQLYELLVPQAIGAKGDAQQIARKFLSPLADKDAVGGLGIAKAGNKPRWVRMREAGEPGWEEEKAKAEARKSTDRTADVLRALADFGLKPLMRVYTDSDMSSVQWKPLRKGQAVRTWDRDMFQQAIERMMSWESWNQRVGEAYAKLVEQKSRFEQKNFVGQEHLVQLVNQLQQDMKEASHGLESKEQTAHYLTGRALRGSDKVFEKWEKLDPDAPFDLYDTEIKNVQRRNTRRFGSHDLFAKLAEPKYQALWREDASFLTRYAVYNSIVRKLNHAKMFATFTLPDATAHPIWTRFDKLGGNLHQYTFLFNEFGEGRHAIRFQKLLTVEDGVAKEVDDVTVPISMSAQLDDLLPRDPHELVALYFQDYGAEQHLAGEFGGAKIQYRRDQLNHLHARRGARDVYLNLSVRVQSQSEARGERRPPYAAVFRLVGDNHRAFVHFDKLSDYLAEHPDDGKLGSEGLLSGLRVMSVDLGLRTSASISVFRVARKDELKPNSEGRVPFCFPIEGNENLVAVHERSQLLKLPGETESKDLRAIREERQRTLRQLRTQLAYLRLLVRCGSEDVGRRERSWAKLIEQPMDANQMTPDWREAFEDELQKLKSLYGICGDREWTEAVYESVRRVWRHMGKQVRDWRKDVRSGERPKIRGYQKDVVGGNSIEQIEYLERQYKFLKSWSFFGKVSGQVIRAEKGSRFAITLREHIDHAKEDRLKKLADRIIMEALGYVYALDDERGKGKWVAKYPPCQLILLEELSEYQFNNDRPPSENNQLMQWSHRGVFQELLNQAQVHDLLVGTMYAAFSSRFDARTGAPGIRCRRVPARCAREQNPEPFPWWLNKFVAEHKLDGCPLRADDLIPTGEGEFFVSPFSAEEGDFHQIHADLNAAQNLQRRLWSDFDISQIRLRCDWGEVDGEPVLIPRTTGKRTADSYGNKVFYTKTGVTYYERERGKKRRKVFAQEELSEEEAELLVEADEAREKSVVLMRDPSGIINRGDWTRQKEFWSMVNQRIEGYLVKQIRSRVRLQESACENTGDI 1129 1 8.508e-01 1 8.293e-01 0 4.436e-01 0 3.482e-01 0 6.153e-02 0 1.086e-03 [45-50) [45-50) -
3
+ WP_206918966_1 - MTVKSIKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKAELLERLRARQVENGHRGPAGSDDELLQLARQLYELLVPQAIGAKGDAQQIARKFLSPLADKDAVGGLGIAKAGNKPRWVRMRDAGEPGWEEEKAKAEARKSTDRTADVLRALADFGLKPLMRVYTDSDMSSVQWKPLRKGQAVRTWDRDMFQQAIERMMSWESWNQRVGEAYAKLVEQKSRFEQKNFVGQEHLVQLVNQLQQDMKEASHGLESKEQTAHYLTGRALRGSDKVFEKWEKLDPDAPFDLYDTEIKNVQRRNMRRFGSHDLFAKLAEPKYQALWREDASFLTRYAAYNSILRKLNHAKMFATFTLPDATAHPIWTRFDKLGGNLHQYTFLFNEFGEGRHAIRFQKLLTIEHGVAKEVDDVTVPISMSAQLDDLLPGESNEPTELSFRDHGTDQHFTGEFGGAKIQYRRDQLDHVHRRRGARDVYLNLSVRVQSQSEARGERRPPYAAVFRLVGDTHRAFAHFDKLSNYLAEHPDDGKLGSEGLLSGLRVMSVDLGLRTSASISVFRVARKDELKPNSEGRVPFFFPIKGNDNLVAVHERSQLLKLPGETESKDLRAIREERQRILRQLRTQLAYLRLLVRCGSEDVGRRERSWAKLIEQSVDAANHMTPDWREAFEGELQKLKSLYGICGDREWTEAVYESVRRVWRHMGKQVRDWRKDVRSGERPKIRGYQKDVVGGNSIEQIEYLERQYKFLKSWSFFGKVSGQVIRAEKGSRFATTLREHIDHAKEDRLKKLADRIIMEALGYVYALDAERGKGTWVAKYPPCQLILLEELSEYRFNNDRPPSENNQLMQWSHRGVFQELLNQAQVHDLLVGTMYAAFSSRFDARTGAPGIRCRRVPARCAREQNPEPFPWWLNKFVAEHKLDGCPLRADDLIPTGEGEFFVSPFSAEEGDFHQIHADLNAAQNLQRRLWSDFDISQIRLRCDWGEVDGEPVLIPRLTGKRTADSYGNKVFYTNTGVTYYERERGKKRRKAFAQEELSEEEAELLVEADEAREKSVVLMRDPSGIINRGDWTRQKEFWSMVNQRIEGYLVKQIRSRVRLPESACENTGDI 1130 1 8.075e-01 1 7.639e-01 0 3.578e-01 0 2.891e-01 0 4.220e-02 0 7.351e-04 [45-50) [45-50) -
4
+ WP_206922773_1 - MTVKSIKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKVELLERLRARQVENGHRDPAGSDDELLQLARQLYELLVPQAIGAKGDAQQIARKFLSPLADKDAVGGLGIAKAGNKPRWVRMRDAGEPGWEEEKAKAEARKSTDRTADVLRALADFGLKPLMRVYTDSDMSSVQWKPLRKGQAVRTWDRDMFQQAIERMMSWESWNQRVGEAYAKLVEQKSRFEQKNFVGQEHLVQLVNQLQQDMKEASHGLESKEQTAHYLTGRALRGSDKVFEKWEKLDPDAPFDLYDTEIKNVQRRNTRRFGSHDLFAKLAEPKYQALWREDASFLTRYAAYNSILRKLNHAKMFATFTLPDATAHPIWTRFDKLGGNLHQYTFLFNEFGEGRHAIRFQKLLTIEHGVAKEVDDVTVPISMSAQLDDLLPGESNEPTELSFRDHGTDQHFTGEFGGAKIQYRRDQLDHVHRRRGARDVYLNLSVRVQSQSEARGERRPPYAAVFRLVGDTHRAFAHFDKLSNYLAEHPDDGKLGSEGLLSGLRVMSVDLGLRTSASISVFRVARKDELKPNSEGRVPFFFPIKGNDNLVAVHERSQLLKLPGETESKDLRAIREERQRILRQLRTQLAYLRLLVRCGSEDVGRRERSWAKLIEQSVDAANHMTPDWREAFEGELQKLKSLYGICGDREWTEAVYESVRRVWRHMGKQVRDWRKDVRSGERPKIRGYQKDVVGGNSIEQIEYLERQYKFLKSWSFFGKVSGQVIRAEKGSRFATTLREHIDHAKEDRLKKLADRIIMEALGYVYALDAERGKGTWVAKYPPCQLILLEELSEYRFNNDRPPSENNQLMQWSHRGVFQELLNQAQVHDLLVGTMYAAFSSRFDARTGAPGIRCRRVPARCAREQNPEPFPWWLNKFVAEHKLDGCPLRADDLIPTGEGEFFVSPFSAEEGDFHQIHADLNAAQNLQRRLWSDFDISQIRLRCDWGEVDGEPVLIPRLTGKRTADSYGNKVFYTNTGVTYYERERGKKRRKAFAQEELSEEEAELLVEADEAREKSVVLMRDPSGIINRGDWTRQKEFWSMVNQRIEGYLVKQIRSRVCLPESACENTGDI 1130 1 7.686e-01 1 7.065e-01 0 2.926e-01 0 2.502e-01 0 3.175e-02 0 6.099e-04 [45-50) [45-50) -
scripts/tests/outputs/per_res_b6f8b4d2f6602ee040278b1d64ab7cf588baa33d74a126030e252fd91ac00601.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9e635a6f2cb9002811f3ce70e834bf87ce4461715336fcf3415f98e5745aa904
3
+ size 5160033
scripts/tests/outputs/temstapro_001.out ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2000-01-01: beginning to load the model
2
+ 2000-01-01: finished loading the model
3
+ 2000-01-01: beginning to generate embeddings
4
+ Portion 1.
5
+ 1/1: sequences with generated mean embeddings
6
+ 1/1: sequences with generated per-residue embeddings
7
+ 0:00:00.0001: time to generate embeddings
8
+ 0:00:00.0001: time to generate embeddings per protein
9
+ 2000-01-01: beginning to make inferences
10
+ 2000-01-01: finished making inferences
11
+ protein_id position sequence length t40_binary t40_raw t45_binary t45_raw t50_binary t50_raw t55_binary t55_raw t60_binary t60_raw t65_binary t65_raw left_hand_label right_hand_label clash
12
+ artificial_sequence - UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 158 1 9.803e-01 1 6.874e-01 1 6.388e-01 1 7.543e-01 0 3.063e-01 0 1.685e-03 [55-60) [55-60) -
scripts/tests/outputs/temstapro_002.out ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ 2000-01-01: beginning to load the model
2
+ 2000-01-01: finished loading the model
3
+ 2000-01-01: beginning to generate embeddings
4
+ Portion 1.
5
+ 1/1: sequences with generated mean embeddings
6
+ 0/1: sequences with generated per-residue embeddings
7
+ 0:00:00.0001: time to generate embeddings
8
+ 0:00:00.0001: time to generate embeddings per protein
9
+ 2000-01-01: beginning to make inferences
10
+ 2000-01-01: finished making inferences
scripts/tests/outputs/temstapro_003.out ADDED
@@ -0,0 +1 @@
 
 
1
+ scripts/temstapro: a FASTA file is required.
scripts/tests/outputs/temstapro_004.out ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ 2000-01-01: beginning to load the model
2
+ 2000-01-01: finished loading the model
3
+ 2000-01-01: beginning to generate embeddings
4
+ Portion 1.
5
+ 1/1: sequences with generated mean embeddings
6
+ 0/1: sequences with generated per-residue embeddings
7
+ 0:00:00.0001: time to generate embeddings
8
+ 0:00:00.0001: time to generate embeddings per protein
9
+ 2000-01-01: beginning to make inferences
10
+ 2000-01-01: finished making inferences
scripts/tests/outputs/temstapro_005.out ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2000-01-01: beginning to load the model
2
+ 2000-01-01: finished loading the model
3
+ 2000-01-01: beginning to generate embeddings
4
+ Portion 1.
5
+ 3/3: sequences with generated mean embeddings
6
+ 0/3: sequences with generated per-residue embeddings
7
+ 0:00:00.0001: time to generate embeddings
8
+ 0:00:00.0001: time to generate embeddings per protein
9
+ 2000-01-01: beginning to make inferences
10
+ 2000-01-01: finished making inferences
11
+ protein_id position sequence length t40_binary t40_raw t45_binary t45_raw t50_binary t50_raw t55_binary t55_raw t60_binary t60_raw t65_binary t65_raw left_hand_label right_hand_label clash
12
+ AaCas12b - MAVKSMKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKAELLERLRARQVENGHCGPAGSDDELLQLARQLYELLVPQAIGAKGDAQQIARKFLSPLADKDAVGGLGIAKAGNKPRWVRMREAGEPGWEEEKAKAEARKSTDRTADVLRALADFGLKPLMRVYTDSDMSSVQWKPLRKGQAVRTWDRDMFQQAIERMMSWESWNQRVGEAYAKLVEQKSRFEQKNFVGQEHLVQLVNQLQQDMKEASHGLESKEQTAHYLTGRALRGSDKVFEKWEKLDPDAPFDLYDTEIKNVQRRNTRRFGSHDLFAKLAEPKYQALWREDASFLTRYAVYNSIVRKLNHAKMFATFTLPDATAHPIWTRFDKLGGNLHQYTFLFNEFGEGRHAIRFQKLLTVEDGVAKEVDDVTVPISMSAQLDDLLPRDPHELVALYFQDYGAEQHLAGEFGGAKIQYRRDQLNHLHARRGARDVYLNLSVRVQSQSEARGERRPPYAAVFRLVGDNHRAFVHFDKLSDYLAEHPDDGKLGSEGLLSGLRVMSVDLGLRTSASISVFRVARKDELKPNSEGRVPFCFPIEGNENLVAVHERSQLLKLPGETESKDLRAIREERQRTLRQLRTQLAYLRLLVRCGSEDVGRRERSWAKLIEQPMDANQMTPDWREAFEDELQKLKSLYGICGDREWTEAVYESVRRVWRHMGKQVRDWRKDVRSGERPKIRGYQKDVVGGNSIEQIEYLERQYKFLKSWSFFGKVSGQVIRAEKGSRFAITLREHIDHAKEDRLKKLADRIIMEALGYVYALDDERGKGKWVAKYPPCQLILLEELSEYQFNNDRPPSENNQLMQWSHRGVFQELLNQAQVHDLLVGTMYAAFSSRFDARTGAPGIRCRRVPARCAREQNPEPFPWWLNKFVAEHKLDGCPLRADDLIPTGEGEFFVSPFSAEEGDFHQIHADLNAAQNLQRRLWSDFDISQIRLRCDWGEVDGEPVLIPRTTGKRTADSYGNKVFYTKTGVTYYERERGKKRRKVFAQEELSEEEAELLVEADEAREKSVVLMRDPSGIINRGDWTRQKEFWSMVNQRIEGYLVKQIRSRVRLQESACENTGDI 1129 1 8.508e-01 1 8.293e-01 0 4.436e-01 0 3.482e-01 0 6.153e-02 0 1.086e-03 [45-50) [45-50) -
13
+ WP_206918966_1 - MTVKSIKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKAELLERLRARQVENGHRGPAGSDDELLQLARQLYELLVPQAIGAKGDAQQIARKFLSPLADKDAVGGLGIAKAGNKPRWVRMRDAGEPGWEEEKAKAEARKSTDRTADVLRALADFGLKPLMRVYTDSDMSSVQWKPLRKGQAVRTWDRDMFQQAIERMMSWESWNQRVGEAYAKLVEQKSRFEQKNFVGQEHLVQLVNQLQQDMKEASHGLESKEQTAHYLTGRALRGSDKVFEKWEKLDPDAPFDLYDTEIKNVQRRNMRRFGSHDLFAKLAEPKYQALWREDASFLTRYAAYNSILRKLNHAKMFATFTLPDATAHPIWTRFDKLGGNLHQYTFLFNEFGEGRHAIRFQKLLTIEHGVAKEVDDVTVPISMSAQLDDLLPGESNEPTELSFRDHGTDQHFTGEFGGAKIQYRRDQLDHVHRRRGARDVYLNLSVRVQSQSEARGERRPPYAAVFRLVGDTHRAFAHFDKLSNYLAEHPDDGKLGSEGLLSGLRVMSVDLGLRTSASISVFRVARKDELKPNSEGRVPFFFPIKGNDNLVAVHERSQLLKLPGETESKDLRAIREERQRILRQLRTQLAYLRLLVRCGSEDVGRRERSWAKLIEQSVDAANHMTPDWREAFEGELQKLKSLYGICGDREWTEAVYESVRRVWRHMGKQVRDWRKDVRSGERPKIRGYQKDVVGGNSIEQIEYLERQYKFLKSWSFFGKVSGQVIRAEKGSRFATTLREHIDHAKEDRLKKLADRIIMEALGYVYALDAERGKGTWVAKYPPCQLILLEELSEYRFNNDRPPSENNQLMQWSHRGVFQELLNQAQVHDLLVGTMYAAFSSRFDARTGAPGIRCRRVPARCAREQNPEPFPWWLNKFVAEHKLDGCPLRADDLIPTGEGEFFVSPFSAEEGDFHQIHADLNAAQNLQRRLWSDFDISQIRLRCDWGEVDGEPVLIPRLTGKRTADSYGNKVFYTNTGVTYYERERGKKRRKAFAQEELSEEEAELLVEADEAREKSVVLMRDPSGIINRGDWTRQKEFWSMVNQRIEGYLVKQIRSRVRLPESACENTGDI 1130 1 8.075e-01 1 7.639e-01 0 3.578e-01 0 2.891e-01 0 4.220e-02 0 7.351e-04 [45-50) [45-50) -
14
+ WP_206922773_1 - MTVKSIKVKLRLDNMPEIRAGLWKLHTEVNAGVRYYTEWLSLLRQENLYRRSPNGDGEQECYKTAEECKVELLERLRARQVENGHRDPAGSDDELLQLARQLYELLVPQAIGAKGDAQQIARKFLSPLADKDAVGGLGIAKAGNKPRWVRMRDAGEPGWEEEKAKAEARKSTDRTADVLRALADFGLKPLMRVYTDSDMSSVQWKPLRKGQAVRTWDRDMFQQAIERMMSWESWNQRVGEAYAKLVEQKSRFEQKNFVGQEHLVQLVNQLQQDMKEASHGLESKEQTAHYLTGRALRGSDKVFEKWEKLDPDAPFDLYDTEIKNVQRRNTRRFGSHDLFAKLAEPKYQALWREDASFLTRYAAYNSILRKLNHAKMFATFTLPDATAHPIWTRFDKLGGNLHQYTFLFNEFGEGRHAIRFQKLLTIEHGVAKEVDDVTVPISMSAQLDDLLPGESNEPTELSFRDHGTDQHFTGEFGGAKIQYRRDQLDHVHRRRGARDVYLNLSVRVQSQSEARGERRPPYAAVFRLVGDTHRAFAHFDKLSNYLAEHPDDGKLGSEGLLSGLRVMSVDLGLRTSASISVFRVARKDELKPNSEGRVPFFFPIKGNDNLVAVHERSQLLKLPGETESKDLRAIREERQRILRQLRTQLAYLRLLVRCGSEDVGRRERSWAKLIEQSVDAANHMTPDWREAFEGELQKLKSLYGICGDREWTEAVYESVRRVWRHMGKQVRDWRKDVRSGERPKIRGYQKDVVGGNSIEQIEYLERQYKFLKSWSFFGKVSGQVIRAEKGSRFATTLREHIDHAKEDRLKKLADRIIMEALGYVYALDAERGKGTWVAKYPPCQLILLEELSEYRFNNDRPPSENNQLMQWSHRGVFQELLNQAQVHDLLVGTMYAAFSSRFDARTGAPGIRCRRVPARCAREQNPEPFPWWLNKFVAEHKLDGCPLRADDLIPTGEGEFFVSPFSAEEGDFHQIHADLNAAQNLQRRLWSDFDISQIRLRCDWGEVDGEPVLIPRLTGKRTADSYGNKVFYTNTGVTYYERERGKKRRKAFAQEELSEEEAELLVEADEAREKSVVLMRDPSGIINRGDWTRQKEFWSMVNQRIEGYLVKQIRSRVCLPESACENTGDI 1130 1 7.686e-01 1 7.065e-01 0 2.926e-01 0 2.502e-01 0 3.175e-02 0 6.099e-04 [45-50) [45-50) -