Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- weight/esm-main/examples/README.md +11 -0
- weight/esm-main/examples/contact_prediction.ipynb +0 -0
- weight/esm-main/examples/data/1a3a_1_A.a3m +0 -0
- weight/esm-main/examples/data/P62593.fasta +0 -0
- weight/esm-main/examples/data/UniRef50_UPI0003108055.a3m +0 -0
- weight/esm-main/examples/data/UniRef50_UPI0003674933.a3m +0 -0
- weight/esm-main/examples/data/hhblits_uniclust_2017_10_5ahw_1_A.a3m +0 -0
- weight/esm-main/examples/data/some_proteins.fasta +30 -0
- weight/esm-main/examples/esm2_infer_fairscale_fsdp_cpu_offloading.py +56 -0
- weight/esm-main/examples/esm_structural_dataset.ipynb +0 -0
- weight/esm-main/examples/inverse_folding/README.md +258 -0
- weight/esm-main/examples/inverse_folding/data/4uv3.cif +0 -0
- weight/esm-main/examples/inverse_folding/data/4uv3.pdb +0 -0
- weight/esm-main/examples/inverse_folding/data/5YH2.cif +0 -0
- weight/esm-main/examples/inverse_folding/data/5YH2.pdb +0 -0
- weight/esm-main/examples/inverse_folding/data/5YH2_mutated_seqs.fasta +8 -0
- weight/esm-main/examples/inverse_folding/notebook.ipynb +0 -0
- weight/esm-main/examples/inverse_folding/notebook_multichain.ipynb +0 -0
- weight/esm-main/examples/inverse_folding/output/5YH2_mutated_seqs_scores.csv +5 -0
- weight/esm-main/examples/inverse_folding/output/sampled_sequences.fasta +6 -0
- weight/esm-main/examples/inverse_folding/sample_sequences.py +124 -0
- weight/esm-main/examples/inverse_folding/score_log_likelihoods.py +131 -0
- weight/esm-main/examples/lm-design/__init__.py +0 -0
- weight/esm-main/examples/lm-design/conf/__init__.py +0 -0
- weight/esm-main/examples/lm-design/conf/config.yaml +62 -0
- weight/esm-main/examples/lm-design/paper-data/README.md +74 -0
- weight/esm-main/examples/lm-design/paper-data/artificial_sequence_purge_ids.txt +1027 -0
- weight/esm-main/examples/lm-design/paper-data/data.csv +277 -0
- weight/esm-main/examples/lm-design/paper-data/uniref90_jackhmmer_purge_ids.txt +0 -0
- weight/esm-main/examples/lm-design/utils/__init__.py +0 -0
- weight/esm-main/examples/lm-design/utils/constants.py +13 -0
- weight/esm-main/examples/lm-design/utils/linear_projection.py +138 -0
- weight/esm-main/examples/lm-design/utils/lm.py +102 -0
- weight/esm-main/examples/lm-design/utils/loss.py +29 -0
- weight/esm-main/examples/lm-design/utils/ngram_stats/bigram_seg.p +0 -0
- weight/esm-main/examples/lm-design/utils/ngram_stats/monogram_seg.p +0 -0
- weight/esm-main/examples/protein-programming-language/language/__init__.py +22 -0
- weight/esm-main/examples/protein-programming-language/language/energy.py +317 -0
- weight/esm-main/examples/protein-programming-language/language/folding_callbacks.py +78 -0
- weight/esm-main/examples/protein-programming-language/language/optimize.py +158 -0
- weight/esm-main/examples/protein-programming-language/language/program.py +127 -0
- weight/esm-main/examples/protein-programming-language/language/sequence.py +221 -0
- weight/esm-main/examples/protein-programming-language/programs/__init__.py +1 -0
- weight/esm-main/examples/sup_variant_prediction.ipynb +0 -0
- weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.40_.50_plddt_.50_.60.txt +1 -0
- weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_.50_.60.txt +1 -0
- weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_.70_.80.txt +1 -0
- weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.50_.60.txt +1 -0
- weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.60_.70.txt +1 -0
- weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.70_.80.txt +1 -0
weight/esm-main/examples/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# What's in this directory
|
| 2 |
+
|
| 3 |
+
* The notebooks are introduced and summarized in `../README.md`
|
| 4 |
+
* `data/some_proteins.fasta` and its smaller version, `data/few_proteins.fasta` are a random selection of UniRef50 sequences used in the second example of `../README.md`
|
| 5 |
+
* `data/1a3a_1_A.a3m`, `data/1xcr_1_A.a3m`, `data/5ahw_1_A.a3m` are MSAs distributed with trRosetta, used in `contact_prediction.ipynb`
|
| 6 |
+
* `data/P62593.fasta` is introduced and used in `sup_variant_prediction.ipynb`
|
| 7 |
+
* Example MSAs genereated in the same way as the MSAs used for MSA Transformer pre-training:
|
| 8 |
+
- `data/UniRef50_E9K9Y4.a3m`, `data/UniRef50_UPI0003108055.a3m`, `data/UniRef50_UPI0003674933.a3m`, from the same sequences as trRosetta:
|
| 9 |
+
`data/hhblits_uniclust_2017_10_1a3a_1_A.a3m`, `data/hhblits_uniclust_2017_10_1xcr_1_A.a3m`, `data/hhblits_uniclust_2017_10_5ahw_1_A.a3m`.
|
| 10 |
+
- Generated with: `hhblits -i UniRef50_$id.fas -oa3m UniRef50_$id.a3m -n 3 -d /uniclust30_2017_10/uniclust30_2017_10`.
|
| 11 |
+
* `esm2_infer_fairscale_fsdp_cpu_offloading.py` shows how to load the ESM-2 15B model with Fairscale's FSDP's CPU offloading capability on a single GPU
|
weight/esm-main/examples/contact_prediction.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/data/1a3a_1_A.a3m
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/data/P62593.fasta
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/data/UniRef50_UPI0003108055.a3m
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/data/UniRef50_UPI0003674933.a3m
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/data/hhblits_uniclust_2017_10_5ahw_1_A.a3m
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/data/some_proteins.fasta
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
>UniRef50_A0A1E3NP16
|
| 2 |
+
AVIYYRFRSQKPDHIATIKFDGTGLTVFELKRDIILANNLLHSTDVDIVLYSTEDIQDTKSWGYQNGGSSSAGERELDDDNEVVPRSTTVLVRRTMTPKKNKGNVQRYVAGKPRLQVSGTNSVNKSISLGNNVGGTMNFGDAATNGDEDDMIKKMFSVQDEQWSQQQDVMATATRVDNFRTNVNEPVPEYYICYKCGEKGKHHIKNCPKNNDPNWEGVRVRKTTGIPKSHLKAIENPEDTIRDSNSSGNTTYMVNDEGKYVVAVADTKAWEKYQKTKKGESGGYLNGDVDVDDGELKDPETGKLWKSPVRIPCCNKIFSRKIIEDKLIDSDFTCPSCGKEQIYLDTLVADEELQAKVDEYVKNLSENKNNDGNSPKRRQVNPAGATANTSQLPQIPMMPMPPINMQMPPMNIGMPPFMPFMPMPGMNP
|
| 3 |
+
>UniRef50_UPI000836A30F
|
| 4 |
+
MTLRTLLALSILALAAAATVQARPGAPPCSPLGLKYQPGACEKWKREHPDVNPDGVVQTVTIVNNSSSVLGGYVTFWHANNEHTDVDLPGVKPGETWTANGSWTVGQAPYYLLYSSFQDSYGDPVTFYAVPISKYPALAKKLPPEPDNCQSNHFRMVFGDGPQYVYEQHSGAVVTGGQTDKNTLCQILGCPTGGSTAGGLNTQNRTTSRSAPQPVYFRSCDP
|
| 5 |
+
>UniRef50_A0A2G8L8Y3
|
| 6 |
+
MAQKRYEENLSPYAELFRSKLIEDFHLLESFDEHGKSDAPKYYSKDFEDPARQDKMMLENPHGLVKFQVYSRKEPGEHFMLVLILSNSIALGLQAEVSESDDPKFAGLKLALDIFDYCSLFLFMVEIILKWIDNFWSFWSDNWNIFDFAVTVGSFVPEIINFFAGDIGGSMVRVIVRNLRVFRILRSLKMVSRFRQVRLIALAIGKAFSAITFIMLLLFTFLYIFAITGIIFFDTYTRSERQDLKYKDSFRSLPRAMITLFQLFTLDQWYKLLNDMWKVMDSMIPLGYIILWICIGSFIFRNVFVGIMVNNFQSIRNDLFEEVKEQEAARQIIQDTEKFNEELSRQEKKLNANRRGTLYQSPTVQPPKPNQPQPSQLAGLDNSETDEQSVSQEDESNTDGQTSLSGTDSYDLLGESSDSLFRRSSDGMIDKDKLSTNWEKTVHDNLTLLTSTPSETLWPRDTLFRYFQLMESLMENLQERQDLQDLAYHSLLQIFDSFDTSA
|
| 7 |
+
>UniRef50_A0A1D5ZRM3
|
| 8 |
+
MPCVAHECHPRLPAANHCRSLSCLGTPAAGWSSGDDDREEDELDTKQVILNEMRNREMRKRSSRCSVDSPTLSGAFAWSFTPLHPRSSIEKVSCTEEEKEAASDSDNESEAFFSVKSFFTRSTSRAATVASSTDMDPPATWEGLRGCEGWPFGLCP
|
| 9 |
+
>UniRef50_UPI0003108055
|
| 10 |
+
MPADAREYLESKHATRRFDRPAEVAGVVAFLLSDDTSFVIGAGYLVDGGYTALRAARGRLGPRRQAAPAVKLLPNTDSPR
|
| 11 |
+
>UniRef50_A0A223SCH7
|
| 12 |
+
MGPPRWWKGITGLAAVVHRADPEDKADLYAKMGLYLEYHPETRIVEARIKPRLHDVCESKVSEGGLEPPCP
|
| 13 |
+
>UniRef50_A0A090SUK6
|
| 14 |
+
MKTPEDRVFRATDEYSDFVMACRYKGNEREFVIASHDKLNEAQVETLTSYLSGEWFKKTYITGIMNDSDGVLSQHEEYGDEVFCQPLDELRVDRYIMMV
|
| 15 |
+
>UniRef50_V4AGU2
|
| 16 |
+
MHLGSIYLMVVLLIYFAYTDDRKERENVDVINPEENLVQDDEQYVGDSTENIEKSGSEEEEEDKEAIEEEEDEEEELNYRYIPEPAQDIVDNGKKYIQVHCSFKQDESLIRHPSNCSRYFVCSYGVVEEMPVCDDGEVFSIQVSECVKKGSENDDCDKLPFDSPPEITRGTQPSLIWHPRHKSPRSQFRQPTTLQMKVPHIELESFTCSATGKVLSHHSENCAWYYNCSAHPDAVMQTFYSGFIMECPYPQLFSTETKQCEDFEDVKCGDRYEPKSPCDYRANHCHETSHCIPCWVRYASCLELPDGLNPWSELEWKPFFVECYKERTVFQGVCDKSAVFSPLTRACETPYSIPRQHGGWRPVCDGRRDGIYADEYGRCDIYYVCKGYIFTGFFRCEKGEMFNPVISICQKPEAVPYPCGDLEMPNICESSLNGYHLDMFGRCTHYFECKDQQLEGISMCPSGIFNPELQICESSRDQPKPCGNLTNLCTHKNDGFHSDENDCTKVFQCERGLTMTSYDCSGSVRTECDVCNTPTECNDKPNGLYPNLKEGVGYYYDCVRSQIQNHYKCDKEKGGPIFNPVKQRCFYPEDLCKEVFSLKIAW
|
| 17 |
+
>UniRef50_R5PKX9
|
| 18 |
+
MQGGEQDVFEHRQVREKVIALKNHADAAAQGAAEFERLSFEQDVAALDGFETDQAAQKRGFAAARRPENHRDFFVVKREVDAVENHSVAELLYETARFQNNVIGHFYAFHFFSRALAASDTGQHARK
|
| 19 |
+
>UniRef50_UPI0003674933
|
| 20 |
+
MKKKEDILNLEHTLLPWMGRTMKVLDYFIGDFLNLKGIELTKVQWILLKKLNEQNGQPQQNLAFLTNRDKASLARLITTMEKKKLVERIPSKIDGRINHIFITKHGCEILQKSAPVIEKVVGCIQEGISPEEIETVIKVMQKVNNNINRASN
|
| 21 |
+
>UniRef50_E9K9Y4
|
| 22 |
+
MADNVLMAYHIVHDPDERAKHVLNTKKLYKWRITEKTKGTPVVGNVALVQTQFAKRTPVMIYATKEVANDLSDLQPVKVFTNNRDQETVNQTFDDLMR
|
| 23 |
+
>UniRef50_A0A2C9LWN7
|
| 24 |
+
MGKITGLLFFLFTSVRVTPSMKNTVNDIYRVRKDVLTKYRNTEEYDLGQRKGPLKQMDTRETRTPYGHFNSDTAFISPKNILKATRPLAFHLGNLKNQTSPCSTWNLTVDCSYKSLDHIESSWFPSNTTVLLLNNNKLVTLHNETFAQLTNLTRLDLSSNDIRRIDAGAFQGLHNLQELNLHMHCCNFTDHYSLESVFAPLRNLRILNAMHNSDVGVLTYSYTFLTRLPLLQSLSIDFDLDTLYCGPEFNDLKNLTFLQFSGQVMYIDDRSFQNVAQLKNLSMDHLSNINNISHNAFKPLSNLKVLTMYHVLLYVQEILSLLEPFQGRNMTEITLDTTTRTLTQVNPTRNGILTNHDTKYLMNICLESFTLIDNRIFYIKPDAVQNIYTWKKCLMHLYIASNPIQGNNFALIRLFTLDNLKSFTFINMFRACHEFQPFPQSSPPATRNVASSSISSQNNHYQKDTTSNQQQMIRHSPFSPYLDMIDENPYQLNIPNYIFISPSLQYMNFQRLVMSQSFEYHFILVGAQNVTSLDISDSGFYRFNGLMEGVSAIKTLIISGNDVSVLSVSFFDTFVSLENFAISSCKLDRDFISLNSRRIFQNHTRLQELDISSNSLNYLSQNTFSYNNRLMWLNMSGNQFKDIPFDLTNTPELQFLDIRFNSLTTIDETTAQQMDHLVTKSGKLEILLEGNVLSCSCSDLSFMRWMRMTLVTFDQNGNFTCMNTDGERKYTLDYSNLDSLWRECWGSFFLYFALIMLCLYCIGVFAVFITMRNKNFIVSFFLQLFGGFKLHSRRDYPVGVYIGYSDKDYQFPCKELRSFIESSLKLKTFLIDRDLIASVDKASGIIEALNASWRILLVCSKSFLKEDDWSMFTMRSAIYTQTPANPARVVVLVHKDCLPLLPPALLSSVNDENICAVSEWAMNYEMMQMLTTRLH
|
| 25 |
+
>UniRef50_Q9REE6
|
| 26 |
+
MSLRGRELLTSEERLELVRIPEDISEQELGRNFTLSNFDLELIKNRRRDYNRLGFAVQLCVLRFPGWSLNDAEPIPKKVLQHLARQLHVDPDCFSLYSSREA
|
| 27 |
+
>UniRef50_A0A226D4M8
|
| 28 |
+
MQKVINFPIWRRYYFSECGNCNDFRPDGVKKVHPPQEKSRTMDDEILAAPEVTIPFEPSDPSEVVVNLISSEEEDDDDVIQIVEEKSVDKAERQRRRQKKKDLWAARKLQRNKGQNVPLQTAWQRGPRPQETSSFPTPPQQSGGAQQKPLSPILISTAGSPNTSGAPTPANVSQQPTPTPSFVHTTASTSTHPEISLNINSDLALLIRLGPDGRPILTRVENVEQNNTSTSTPTTTRKLPPAPPPPKISFDTQTGESLLNGELITRPIIDITTDSPPSITHAATVSPQTSRTSGPPTLSPISPPPRTTQSNPAHPPPRYEPRKSRHPPRDPLASSSSSSSSSPSPPPTSRARHTSSANIPPPLEPLFLNTTQLIHLIKTCRKCEKSFPTRCDGVIHQKKEHNRKHCPVCFLTLSRHGNTYKDHLNMYHALEGDKEMVVCPFCAVEHSFDGLYNHIGRSHLIPVESKGESEHEVIFSVAPSPQSNGHQTRSVTQGNTPPKNDTNSPPNLEKRRPGPASKTRKTTNDPVPSTSRTGLICHKYVPDVETPPSKAGRNFESRAGRNFESRNVYPPATNRLNPPRNKSPPRNKNLPRNKSPPRNKSLPRNKTPPPSSSRSSSSRSVSNNLRRKNPTPPPPTQPPPKKVAKPDEAGINEKIQAAIKAVNARVHIERSVHHPNNRSDREIPSTSRTVTSRHKVPTSKTSGNTSVRKDPSPPPPLQTPPKTTNLELSKVQKARIVEDVRSIVRDVRITRVLDDGEVPSTSRAVEEEKKKEEKKNETRARLPRSSRVGERSSGYFQMAEGIDFSPENPTPRSKDLKAIHISKLNLIYQQLKCYPDTSVIANVAKECGVEIPVVAKWFTKKHMEYCQKTQQRKRKRKPPELR
|
| 29 |
+
>UniRef50_UPI000B82D8F0
|
| 30 |
+
MGGLHLIELRNVNIEFDKKLIEDGTIKIYDGKITAIIGESGSGKTSLLYLLGLISSNHRYLYSFDDVTLDLSNDFEMSRIRKQKIGYIFQDNNLVENLTIFENIRLSATIAGINITDKEIKSYLEFVELGYIDSNHYPRKLSGGERQRVAIACALAKQPELILADEPTSALDTVNSEIIMGIFKKIAHKDKKKIVIATHNDRIYNEADVIYEIKNNKIQLVKGESSNESSKKEPEDYDNNVKLTPRFYFDYAIKTSRKGRFAKNLMIVLSAIAIAFSSVMYNFGDTFVKEQEKLMDAISDKEIFVVNMTAPLNTILDIDENLSIQDKDAELLRNISYVDTIYPYFEFRSIGYPLINETEASEGYIVVSKGQKEEKYTFAESKDNPYDKYVIIPYYPEQNLERRLKEKLSDESSDKVYISSQLAQLLGIENLKESVSLRVLTYVPIAQHETQMTVRPEGIVYEIDIDLSKVVELDLKIEGILDESVRNRYSNSGNNAIYVPYHKMQMILTQTQNSATIDTNLEYIEWRPSAFVVFAKSYNDVGLVIERVSSINPNFRAVSEYQDIESMNAIVKNTREIGLVIVIVILIIIFLLMSIIHMNHILDRKYEISLLKANGLTKIELTKLVSVESLRHVFLVSLISSVISLVVTKVMNLLFEEIA
|
weight/esm-main/examples/esm2_infer_fairscale_fsdp_cpu_offloading.py
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
|
| 6 |
+
import torch
|
| 7 |
+
from fairscale.nn.data_parallel import FullyShardedDataParallel as FSDP
|
| 8 |
+
from fairscale.nn.wrap import enable_wrap, wrap
|
| 9 |
+
|
| 10 |
+
import esm
|
| 11 |
+
|
| 12 |
+
# init the distributed world with world_size 1
|
| 13 |
+
url = "tcp://localhost:23456"
|
| 14 |
+
torch.distributed.init_process_group(backend="nccl", init_method=url, world_size=1, rank=0)
|
| 15 |
+
|
| 16 |
+
# download model data from the hub
|
| 17 |
+
model_name = "esm2_t48_15B_UR50D"
|
| 18 |
+
model_data, regression_data = esm.pretrained._download_model_and_regression_data(model_name)
|
| 19 |
+
|
| 20 |
+
# initialize the model with FSDP wrapper
|
| 21 |
+
fsdp_params = dict(
|
| 22 |
+
mixed_precision=True,
|
| 23 |
+
flatten_parameters=True,
|
| 24 |
+
state_dict_device=torch.device("cpu"), # reduce GPU mem usage
|
| 25 |
+
cpu_offload=True, # enable cpu offloading
|
| 26 |
+
)
|
| 27 |
+
with enable_wrap(wrapper_cls=FSDP, **fsdp_params):
|
| 28 |
+
model, vocab = esm.pretrained.load_model_and_alphabet_core(
|
| 29 |
+
model_name, model_data, regression_data
|
| 30 |
+
)
|
| 31 |
+
batch_converter = vocab.get_batch_converter()
|
| 32 |
+
model.eval()
|
| 33 |
+
|
| 34 |
+
# Wrap each layer in FSDP separately
|
| 35 |
+
for name, child in model.named_children():
|
| 36 |
+
if name == "layers":
|
| 37 |
+
for layer_name, layer in child.named_children():
|
| 38 |
+
wrapped_layer = wrap(layer)
|
| 39 |
+
setattr(child, layer_name, wrapped_layer)
|
| 40 |
+
model = wrap(model)
|
| 41 |
+
|
| 42 |
+
data = [
|
| 43 |
+
("protein1", "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG"),
|
| 44 |
+
("protein2", "KALTARQQEVFDLIRDHISQTGMPPTRAEIAQRLGFRSPNAAEEHLKALARKGVIEIVSGASRGIRLLQEE"),
|
| 45 |
+
(
|
| 46 |
+
"protein2 with mask",
|
| 47 |
+
"KALTARQQEVFDLIRD<mask>ISQTGMPPTRAEIAQRLGFRSPNAAEEHLKALARKGVIEIVSGASRGIRLLQEE",
|
| 48 |
+
),
|
| 49 |
+
("protein3", "K A <mask> I S Q"),
|
| 50 |
+
]
|
| 51 |
+
|
| 52 |
+
batch_labels, batch_strs, batch_tokens = batch_converter(data)
|
| 53 |
+
batch_tokens = batch_tokens.cuda()
|
| 54 |
+
with torch.no_grad():
|
| 55 |
+
results = model(batch_tokens, repr_layers=[48], return_contacts=True)
|
| 56 |
+
print(results)
|
weight/esm-main/examples/esm_structural_dataset.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/inverse_folding/README.md
ADDED
|
@@ -0,0 +1,258 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Inverse folding with ESM-IF1
|
| 2 |
+
|
| 3 |
+
The ESM-IF1 inverse folding model is built for predicting protein sequences
|
| 4 |
+
from their backbone atom coordinates. We provide scripts here 1) to sample sequence
|
| 5 |
+
designs for a given structure and 2) to score sequences for a given structure.
|
| 6 |
+
|
| 7 |
+
Trained with 12M protein structures predicted by AlphaFold2, the ESM-IF1
|
| 8 |
+
model consists of invariant geometric input processing layers followed by a
|
| 9 |
+
sequence-to-sequence transformer, and achieves 51% native sequence recovery on
|
| 10 |
+
structurally held-out backbones with 72% recovery for buried residues.
|
| 11 |
+
The model is also trained with span masking to tolerate missing backbone
|
| 12 |
+
coordinates and therefore can predict sequences for partially masked structures.
|
| 13 |
+
|
| 14 |
+
More details in our bioRxiv [pre-print](https://doi.org/10.1101/2022.04.10.487779).
|
| 15 |
+
|
| 16 |
+

|
| 17 |
+
|
| 18 |
+
## Recommended environment
|
| 19 |
+
It is highly recommended to start a new conda environment from scratch due to
|
| 20 |
+
potential CUDA compatability issues between pytorch and the pytorch-geometric
|
| 21 |
+
package required for the inverse folding model.
|
| 22 |
+
|
| 23 |
+
To set up a new conda environment with required packages,
|
| 24 |
+
|
| 25 |
+
```
|
| 26 |
+
conda create -n inverse python=3.9
|
| 27 |
+
conda activate inverse
|
| 28 |
+
conda install pytorch cudatoolkit=11.3 -c pytorch
|
| 29 |
+
conda install pyg -c pyg -c conda-forge
|
| 30 |
+
conda install pip
|
| 31 |
+
pip install biotite
|
| 32 |
+
pip install git+https://github.com/facebookresearch/esm.git
|
| 33 |
+
```
|
| 34 |
+
|
| 35 |
+
## Quickstart
|
| 36 |
+
|
| 37 |
+
### Sample sequence designs for a given structure
|
| 38 |
+
To sample sequences for a given structure in PDB or mmCIF format, use the
|
| 39 |
+
`sample_sequences.py` script. The input file can have either `.pdb` or
|
| 40 |
+
`.cif` as suffix.
|
| 41 |
+
|
| 42 |
+
For example, to sample 3 sequence designs for the golgi casein kinase structure
|
| 43 |
+
(PDB [5YH2](https://www.rcsb.org/structure/5yh2); [PDB Molecule of the Month
|
| 44 |
+
from January 2022](https://pdb101.rcsb.org/motm/265)), we can run the following
|
| 45 |
+
command from the `examples/inverse_folding` directory:
|
| 46 |
+
```
|
| 47 |
+
python sample_sequences.py data/5YH2.pdb \
|
| 48 |
+
--chain C --temperature 1 --num-samples 3 \
|
| 49 |
+
--outpath output/sampled_sequences.fasta
|
| 50 |
+
```
|
| 51 |
+
|
| 52 |
+
The sampled sequences will be saved in a fasta format to the specified output file.
|
| 53 |
+
|
| 54 |
+
**By default, the script only loads the backbone of the specified target chain
|
| 55 |
+
as model input.** To instead use the entire complex backbone as model input for
|
| 56 |
+
conditioning, use the `--multichain-backbone` flag to load all chains. (In the
|
| 57 |
+
example below, the encoder loads the backbone of all chains as input to the
|
| 58 |
+
encoder, and the decoder samples sequences for chain C.)
|
| 59 |
+
```
|
| 60 |
+
python sample_sequences.py data/5YH2.pdb \
|
| 61 |
+
--chain C --temperature 1 --num-samples 3 \
|
| 62 |
+
--outpath output/sampled_sequences_multichain.fasta \
|
| 63 |
+
--multichain-backbone
|
| 64 |
+
```
|
| 65 |
+
|
| 66 |
+
The temperature parameter controls the sharpness of the probability
|
| 67 |
+
distribution for sequence sampling. Higher sampling temperatures yield more
|
| 68 |
+
diverse sequences but likely with lower native sequence recovery.
|
| 69 |
+
The default sampling temperature is 1. To optimize for native sequence
|
| 70 |
+
recovery, we recommend sampling with low temperature such as 1e-6.
|
| 71 |
+
|
| 72 |
+
**We recommend trying both the single-chain and multi-chain design modes.** While in
|
| 73 |
+
our paper we showed that conditioning on the entire multi-chain backbone often
|
| 74 |
+
reduces perplexity and increases sequence recovery, on some proteins the
|
| 75 |
+
single-chain performance is better.
|
| 76 |
+
|
| 77 |
+
Sometimes, one failure mode in sampled sequences is a high number of repeated
|
| 78 |
+
amino acids, e.g. `EEEEEEEE`. We recommend checking for that and filtering out
|
| 79 |
+
sampled sequences with long repeats.
|
| 80 |
+
|
| 81 |
+
### Scoring sequences
|
| 82 |
+
To score the conditional log-likelihoods for sequences conditioned on a given
|
| 83 |
+
structure, use the `score_log_likelihoods.py` script.
|
| 84 |
+
|
| 85 |
+
For example, to score the sequences in `data/5YH2_mutated_seqs.fasta`
|
| 86 |
+
according to the structure in `data/5YH2.pdb`, we can run
|
| 87 |
+
the following command from the `examples/inverse_folding` directory:
|
| 88 |
+
```
|
| 89 |
+
python score_log_likelihoods.py data/5YH2.pdb \
|
| 90 |
+
data/5YH2_mutated_seqs.fasta --chain C \
|
| 91 |
+
--outpath output/5YH2_mutated_seqs_scores.csv
|
| 92 |
+
```
|
| 93 |
+
|
| 94 |
+
The conditional log-likelihoods are saved in a csv format in the specified output path.
|
| 95 |
+
The output values are the average log-likelihoods averaged over all amino acids in a sequence.
|
| 96 |
+
|
| 97 |
+
**By default, the script only loads the backbone of the specified target chain
|
| 98 |
+
as model input.** To instead use the entire complex backbone as model input for
|
| 99 |
+
conditioning, use the `--multichain-backbone` flag to load all chains. (In the
|
| 100 |
+
example below, the encoder loads the backbone of all chains as input to the
|
| 101 |
+
encoder, and the decoder scores sequences for chain C.)
|
| 102 |
+
```
|
| 103 |
+
python score_log_likelihoods.py data/5YH2.pdb \
|
| 104 |
+
data/5YH2_mutated_seqs.fasta --chain C \
|
| 105 |
+
--outpath output/5YH2_mutated_seqs_scores.csv \
|
| 106 |
+
--multichain-backbone
|
| 107 |
+
```
|
| 108 |
+
|
| 109 |
+
We recommend trying both the single-chain and multi-chain design modes. While in
|
| 110 |
+
our paper we showed that conditioning on the entire multi-chain backbone often
|
| 111 |
+
reduces perplexity and increases sequence recovery, on some proteins the
|
| 112 |
+
single-chain performance is better.
|
| 113 |
+
|
| 114 |
+
## General usage
|
| 115 |
+
|
| 116 |
+
### Load model
|
| 117 |
+
The `esm_if1_gvp4_t16_142M_UR50` function loads the pretrained model and its
|
| 118 |
+
corresponding alphabet. The alphabet represents the amino acids and the special
|
| 119 |
+
tokens encoded by the model.
|
| 120 |
+
|
| 121 |
+
**Update**: It is important to set the model in eval mode to avoid random
|
| 122 |
+
dropout from training mode for best performance.
|
| 123 |
+
|
| 124 |
+
```
|
| 125 |
+
import esm.inverse_folding
|
| 126 |
+
model, alphabet = esm.pretrained.esm_if1_gvp4_t16_142M_UR50()
|
| 127 |
+
model = model.eval()
|
| 128 |
+
```
|
| 129 |
+
|
| 130 |
+
### Input format
|
| 131 |
+
The input to the model is a list of backbone atom coordinates for the N, CA, C
|
| 132 |
+
atoms in each amino acid. For each structure, the coordinate list `coords` would
|
| 133 |
+
be of shape L x 3 x 3, where L is the number of amino acids in the structure.
|
| 134 |
+
`coords[i][0]` is the 3D coordinate for the N atom in amino acid `i`,
|
| 135 |
+
`coords[i][1]` is the 3D coordinate for the CA atom in amino acid `i`, and
|
| 136 |
+
`coords[i][2]` is the 3D coordinate for the C atom in amino acid `i`.
|
| 137 |
+
|
| 138 |
+
### Load input data from PDB and mmCIF file formats
|
| 139 |
+
To load a single chain from PDB and mmCIF file formats and extract the backbone
|
| 140 |
+
coordinates of the N, CA, C atoms as model input,
|
| 141 |
+
```
|
| 142 |
+
import esm.inverse_folding
|
| 143 |
+
structure = esm.inverse_folding.util.load_structure(fpath, chain_id)
|
| 144 |
+
coords, seq = esm.inverse_folding.util.extract_coords_from_structure(structure)
|
| 145 |
+
```
|
| 146 |
+
Note this only loads the specified chain.
|
| 147 |
+
|
| 148 |
+
To load multiple chains for the multichain complex use cases, list all chain ids
|
| 149 |
+
when loading the structure, e.g. `chain_ids = ['A', 'B', 'C']`:
|
| 150 |
+
```
|
| 151 |
+
structure = esm.inverse_folding.util.load_structure(fpath, chain_ids)
|
| 152 |
+
coords, native_seqs = esm.inverse_folding.multichain_util.extract_coords_from_complex(structure)
|
| 153 |
+
```
|
| 154 |
+
|
| 155 |
+
### Example Jupyter notebook
|
| 156 |
+
See `examples/inverse_folding/notebook.ipynb` for examples of sampling sequences,
|
| 157 |
+
calculating conditional log-likelihoods, and extracting encoder output as
|
| 158 |
+
structure representation (on a single chain).
|
| 159 |
+
|
| 160 |
+
This notebook is also available on colab:
|
| 161 |
+
|
| 162 |
+
[<img src="https://colab.research.google.com/assets/colab-badge.svg">](https://colab.research.google.com/github/facebookresearch/esm/blob/master/examples/inverse_folding/notebook.ipynb)
|
| 163 |
+
|
| 164 |
+
For multichain complexes, ESM-IF1 can design sequences for a specific chain in the complex,
|
| 165 |
+
conditioned on the backbone structure of the entire multichain complex.
|
| 166 |
+
|
| 167 |
+
See `examples/inverse_folding/notebook_multichain.ipynb` for sequence design and sequence scoring in multichain complexes, or find the notebook on colab:
|
| 168 |
+
|
| 169 |
+
[<img src="https://colab.research.google.com/assets/colab-badge.svg">](https://colab.research.google.com/github/facebookresearch/esm/blob/master/examples/inverse_folding/notebook_multichain.ipynb)
|
| 170 |
+
|
| 171 |
+
### Sample sequence designs
|
| 172 |
+
To sample sequences for a given set of backbone coordinates for a single chain,
|
| 173 |
+
```
|
| 174 |
+
sampled_seq = model.sample(coords, temperature=T)
|
| 175 |
+
```
|
| 176 |
+
where `coords` is an array as described in the above section on input format.
|
| 177 |
+
|
| 178 |
+
To sample sequences for a given chain in a multichain complex,
|
| 179 |
+
```
|
| 180 |
+
import esm.inverse_folding
|
| 181 |
+
sampled_seq = esm.inverse_folding.multichain_util.sample_sequence_in_complex(
|
| 182 |
+
model, coords, target_chain_id, temperature=T
|
| 183 |
+
)
|
| 184 |
+
```
|
| 185 |
+
where `coords` is a dictionary mapping chain ids to backbone coordinate arrays.
|
| 186 |
+
|
| 187 |
+
The temperature parameter controls the ``sharpness`` of the probability
|
| 188 |
+
distribution for sequence sampling. Higher sampling temperatures yield more
|
| 189 |
+
diverse sequences but likely with lower native sequence recovery.
|
| 190 |
+
The default sampling temperature is `T=1`. To optimize for native sequence
|
| 191 |
+
recovery, we recommend sampling with low temperature such as `T=1e-6`.
|
| 192 |
+
|
| 193 |
+
### Scoring sequences
|
| 194 |
+
To score the conditional log-likelihoods for sequences conditioned on a given
|
| 195 |
+
set of backbone coordinates for a single chain, use the `score_sequence` function,
|
| 196 |
+
```
|
| 197 |
+
ll_fullseq, ll_withcoord = esm.inverse_folding.util.score_sequence(model, alphabet, coords, seq)
|
| 198 |
+
```
|
| 199 |
+
|
| 200 |
+
The first returned value ``ll_fullseq`` is the average log-likelihood averaged
|
| 201 |
+
over all amino acids in a sequence.
|
| 202 |
+
The second return value ``ll_withcoord`` is averaged only over those amino acids
|
| 203 |
+
with associated backbone coordinates in the input, i.e., excluding those with
|
| 204 |
+
missing backbone coordinates.
|
| 205 |
+
|
| 206 |
+
For multichain complexes,
|
| 207 |
+
```
|
| 208 |
+
ll_fullseq, ll_withcoord = esm.inverse_folding.multichain_util.score_sequence_in_complex(
|
| 209 |
+
model, alphabet, coords, target_chain_id, target_seq
|
| 210 |
+
)
|
| 211 |
+
```
|
| 212 |
+
where `coords` is a dictionary mapping chain ids to backbone coordinate arrays.
|
| 213 |
+
|
| 214 |
+
### Partially masking backbone coordinates
|
| 215 |
+
To mask a parts of the input backbone coordinates, simply set those coordinate
|
| 216 |
+
values to `np.inf`. For example, to mask the backbone coordinates for the first
|
| 217 |
+
ten amino acid in the structure,
|
| 218 |
+
```
|
| 219 |
+
coords[:10, :] = float('inf')
|
| 220 |
+
```
|
| 221 |
+
|
| 222 |
+
### Encoder output as structure representation
|
| 223 |
+
To extract the encoder output as structure representation,
|
| 224 |
+
```
|
| 225 |
+
rep = esm.inverse_folding.util.get_encoder_output(model, alphabet, coords)
|
| 226 |
+
```
|
| 227 |
+
For a set of input coordinates with L amino acids, the encoder output will have
|
| 228 |
+
shape L x 512.
|
| 229 |
+
|
| 230 |
+
Or, for multichain complex,
|
| 231 |
+
```
|
| 232 |
+
rep = esm.inverse_folding.multichain_util.get_encoder_output_for_complex(
|
| 233 |
+
model, alphabet, coords, target_chain_id
|
| 234 |
+
)
|
| 235 |
+
```
|
| 236 |
+
|
| 237 |
+
## Data split
|
| 238 |
+
|
| 239 |
+
The CATH v4.3 data are available at the following links:
|
| 240 |
+
- [Backbone coordinates and sequences](https://dl.fbaipublicfiles.com/fair-esm/data/cath4.3_topologysplit_202206/chain_set.jsonl)
|
| 241 |
+
- [Split](https://dl.fbaipublicfiles.com/fair-esm/data/cath4.3_topologysplit_202206/splits.json)
|
| 242 |
+
|
| 243 |
+
That's it for now, have fun!
|
| 244 |
+
|
| 245 |
+
## Acknowledgements
|
| 246 |
+
The invariant geometric input processing layers are from the [Geometric Vector
|
| 247 |
+
Perceptron PyTorch repo](https://github.com/drorlab/gvp-pytorch) by Bowen Jing,
|
| 248 |
+
Stephan Eismann, Pratham Soni, Patricia Suriana, Raphael Townshend, and Ron
|
| 249 |
+
Dror.
|
| 250 |
+
|
| 251 |
+
The input data pipeline is adapted from the [Geometric Vector Perceptron PyTorch
|
| 252 |
+
repo](https://github.com/drorlab/gvp-pytorch) and the [Generative Models for
|
| 253 |
+
Graph-Based Protein Design
|
| 254 |
+
repo](https://github.com/jingraham/neurips19-graph-protein-design) by John
|
| 255 |
+
Ingraham, Vikas Garg, Regina Barzilay, and Tommi Jaakkola.
|
| 256 |
+
|
| 257 |
+
The Transformer implementation is adapted from
|
| 258 |
+
[fairseq](https://github.com/pytorch/fairseq).
|
weight/esm-main/examples/inverse_folding/data/4uv3.cif
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/inverse_folding/data/4uv3.pdb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/inverse_folding/data/5YH2.cif
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/inverse_folding/data/5YH2.pdb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/inverse_folding/data/5YH2_mutated_seqs.fasta
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
>mut_1
|
| 2 |
+
SVLQSLFEHPLYRTVLPDLTEEDTLFNLNAEIRLYPKAASESYPNWLRFHIGINRYELYSRHNPVIAALLRDLLSQKISSVGMKSGGTQLKLIMSFQNYGQALFKPMKQTREQETPPDFFYFSDFERHNAEIAAFHLDRILDFRRVPPVAGRLVNMTREIRDVTRDKKLWRTFFVSPANNICFYGECSYYCSTEHALCGKPDQIEGSLAAFLPDLALAKRKTWRNPWRRSYHKRKKAEWEVDPDYCDEVKQTPPYDRGTRLLDIMDMTIFDFLMGNMDRHHYETFEKFGNDTFIIHLDNGRGFGKHSHDEMSILVPLTQCCRVKRSTYLRLQLLAKEEYKLSSLMEESLLQDRLVPVLIKPHLEALDRRLRLVLKVLSDCVEKDGFSAVVENDLD
|
| 3 |
+
>mut_2
|
| 4 |
+
DVLQSLFEHPLYRTVLPDLTEEDTLFNLNAEIRLYPKAASESYPNWLRFHIGINRYELYSRHNPVIAALLRDLLSQKISSVGMKSGGTQLKLIMSFQNYGQALFKPMKQTREQETPPDFFYFSDFERHNAEIAAFHLDRILDFRRVPPVAGRLVNMTREIRDVTRDKKLWRTFFVSPANNICFYGECSYYCSTEHALCGKPDQIEGSLAAFLPDLALAKRKTWRNPWRRSYHKRKKAEWEVDPDYCDEVKQTPPYDRGTRLLDIMDMTIFDFLMGNMDRHHYETFEKFGNDTFIIHLDNGRGFGKHSHDEMSILVPLTQCCRVKRSTYLRLQLLAKEEYKLSSLMEESLLQDRLVPVLIKPHLEALDRRLRLVLKVLSDCVEKDGFSAVVENDLD
|
| 5 |
+
>mut_3
|
| 6 |
+
EVLQSLFEHPLYRTVLPDLTEEDTLFNLNAEIRLYPKAASESYPNWLRFHIGINRYELYSRHNPVIAALLRDLLSQKISSVGMKSGGTQLKLIMSFQNYGQALFKPMKQTREQETPPDFFYFSDFERHNAEIAAFHLDRILDFRRVPPVAGRLVNMTREIRDVTRDKKLWRTFFVSPANNICFYGECSYYCSTEHALCGKPDQIEGSLAAFLPDLALAKRKTWRNPWRRSYHKRKKAEWEVDPDYCDEVKQTPPYDRGTRLLDIMDMTIFDFLMGNMDRHHYETFEKFGNDTFIIHLDNGRGFGKHSHDEMSILVPLTQCCRVKRSTYLRLQLLAKEEYKLSSLMEESLLQDRLVPVLIKPHLEALDRRLRLVLKVLSDCVEKDGFSAVVENDLD
|
| 7 |
+
>mut_4
|
| 8 |
+
VVLQSLFEHPLYRTVLPDLTEEDTLFNLNAEIRLYPKAASESYPNWLRFHIGINRYELYSRHNPVIAALLRDLLSQKISSVGMKSGGTQLKLIMSFQNYGQALFKPMKQTREQETPPDFFYFSDFERHNAEIAAFHLDRILDFRRVPPVAGRLVNMTREIRDVTRDKKLWRTFFVSPANNICFYGECSYYCSTEHALCGKPDQIEGSLAAFLPDLALAKRKTWRNPWRRSYHKRKKAEWEVDPDYCDEVKQTPPYDRGTRLLDIMDMTIFDFLMGNMDRHHYETFEKFGNDTFIIHLDNGRGFGKHSHDEMSILVPLTQCCRVKRSTYLRLQLLAKEEYKLSSLMEESLLQDRLVPVLIKPHLEALDRRLRLVLKVLSDCVEKDGFSAVVENDLD
|
weight/esm-main/examples/inverse_folding/notebook.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/inverse_folding/notebook_multichain.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/inverse_folding/output/5YH2_mutated_seqs_scores.csv
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
seqid,log_likelihood
|
| 2 |
+
mut_1,-1.611882209777832
|
| 3 |
+
mut_2,-1.615426778793335
|
| 4 |
+
mut_3,-1.614095687866211
|
| 5 |
+
mut_4,-1.6152666807174683
|
weight/esm-main/examples/inverse_folding/output/sampled_sequences.fasta
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
>sampled_seq_1
|
| 2 |
+
AAVTRWWSTPVTSVQDPGRNNDDLLFDKNEMLKLLPSTDSSGYPNHIAFWEQINRYKLYDEVSPTIQNLDLEMRNLQVRTVSQLSNGRTLKLHFSFSDNGKALFKPMVSLTEDENPIDDATWEYFETSRAVIAAYKLDKLLNLRNVPPAAGRSVHIISQIRDVSKDQNLDNTFHETEDNKLCFWGKCHDRCDEASAICGNPNSVDGVIVAQLPDSIFAEQENHNSPWAHSCKTDVTTWQAVNPAFCNDIFKTKPLRHGDFKLALADNYLFAFLQGNCDDHSYMEFRSFGTDTRILMLDNGYGFGRYSYNNKDILQPLQQCAQVRQSSKVKLDLLNETIFDLRVLMEEVLSHDLSFPILYSPYLKRLNRNLQIVVEEFELSRQRVGVNNTYKMNHE
|
| 3 |
+
>sampled_seq_2
|
| 4 |
+
VKFDAWLSNPITTGKVPGLTETDFLFKPQEMEALYPTLEGEPLPDHIRFHVQINRYFMYDKDSPVIKRLLRRLEKAAIKSVGQLKGGDQLVLEFRFEDFGRALFKPKLNSLEEEVPPQFDWFERHDTCQAEVASYELDQILDLHNCPPTQARPIDFQKDLWNVSDDKELLSTANVTPWNQLCFYGKNKFQSSHETAICGTYDVIDGAVQAQLPHQIIAPRSDNHNPWARTKHQYIDSSWQTNPTYYDYIRTQPYHQTKYIVGTMTNEYCHYFLEGNADRHHYKTWTKFGEDQNLIALDTGRGFGRKNFMDLDILKPLSQGKWMSEQAYQRKKKLMSRDYSLAELMNESLSESALYPVLSEPYLIQLDTRLQIILQAMEFTIKEKGIDLFLRKEFD
|
| 5 |
+
>sampled_seq_3
|
| 6 |
+
CVARRWWAHPTTGEADPPQSAADLLFKTVDAYTMLPREARQELPHHLKFHRQIEKTRLYATKSPTVTALLQDLQSTKILRVSQFSGGRSLRLRFVFDDGGSSAFKPLVSELHAEVPPHWYNFQRSDVAQSLIASYHLNRVLDLRMTPPCAARLVDLVKELRDVSDDAELLSTFFVTPEHELAFFGTSYYRSGLETALVGRPRTVAGSHIAELPDETLSPRGSFDCPWAYSEKDRVSTYWSFDPKASARSDKSPQYRFGTILLNLANTHVFNFLMGNKDAHNFDTFTAFGKDQFAVQIDNGCGFGRYSHMDRDVLVPLTQSVVVRRRLYDRLRSLAQEEYGMRDLLAEVLAQDKCYPVLVQPFLDRLDETLNLVLDVMDQNRKLRGDDRVLLMESS
|
weight/esm-main/examples/inverse_folding/sample_sequences.py
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
#
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
#
|
| 6 |
+
# Sample sequences based on a given structure (multinomial sampling, no beam search).
|
| 7 |
+
#
|
| 8 |
+
# usage: sample_sequences.py [-h] [--chain CHAIN] [--temperature TEMPERATURE]
|
| 9 |
+
# [--outpath OUTPATH] [--num-samples NUM_SAMPLES] pdbfile
|
| 10 |
+
|
| 11 |
+
import argparse
|
| 12 |
+
import numpy as np
|
| 13 |
+
from pathlib import Path
|
| 14 |
+
import torch
|
| 15 |
+
|
| 16 |
+
import esm
|
| 17 |
+
import esm.inverse_folding
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
def sample_seq_singlechain(model, alphabet, args):
|
| 21 |
+
if torch.cuda.is_available() and not args.nogpu:
|
| 22 |
+
model = model.cuda()
|
| 23 |
+
print("Transferred model to GPU")
|
| 24 |
+
coords, native_seq = esm.inverse_folding.util.load_coords(args.pdbfile, args.chain)
|
| 25 |
+
print('Native sequence loaded from structure file:')
|
| 26 |
+
print(native_seq)
|
| 27 |
+
|
| 28 |
+
print(f'Saving sampled sequences to {args.outpath}.')
|
| 29 |
+
|
| 30 |
+
Path(args.outpath).parent.mkdir(parents=True, exist_ok=True)
|
| 31 |
+
with open(args.outpath, 'w') as f:
|
| 32 |
+
for i in range(args.num_samples):
|
| 33 |
+
print(f'\nSampling.. ({i+1} of {args.num_samples})')
|
| 34 |
+
sampled_seq = model.sample(coords, temperature=args.temperature, device=torch.device('cuda'))
|
| 35 |
+
print('Sampled sequence:')
|
| 36 |
+
print(sampled_seq)
|
| 37 |
+
f.write(f'>sampled_seq_{i+1}\n')
|
| 38 |
+
f.write(sampled_seq + '\n')
|
| 39 |
+
|
| 40 |
+
recovery = np.mean([(a==b) for a, b in zip(native_seq, sampled_seq)])
|
| 41 |
+
print('Sequence recovery:', recovery)
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
def sample_seq_multichain(model, alphabet, args):
|
| 45 |
+
if torch.cuda.is_available() and not args.nogpu:
|
| 46 |
+
model = model.cuda()
|
| 47 |
+
print("Transferred model to GPU")
|
| 48 |
+
structure = esm.inverse_folding.util.load_structure(args.pdbfile)
|
| 49 |
+
coords, native_seqs = esm.inverse_folding.multichain_util.extract_coords_from_complex(structure)
|
| 50 |
+
target_chain_id = args.chain
|
| 51 |
+
native_seq = native_seqs[target_chain_id]
|
| 52 |
+
print('Native sequence loaded from structure file:')
|
| 53 |
+
print(native_seq)
|
| 54 |
+
print('\n')
|
| 55 |
+
|
| 56 |
+
print(f'Saving sampled sequences to {args.outpath}.')
|
| 57 |
+
|
| 58 |
+
Path(args.outpath).parent.mkdir(parents=True, exist_ok=True)
|
| 59 |
+
with open(args.outpath, 'w') as f:
|
| 60 |
+
for i in range(args.num_samples):
|
| 61 |
+
print(f'\nSampling.. ({i+1} of {args.num_samples})')
|
| 62 |
+
sampled_seq = esm.inverse_folding.multichain_util.sample_sequence_in_complex(
|
| 63 |
+
model, coords, target_chain_id, temperature=args.temperature)
|
| 64 |
+
print('Sampled sequence:')
|
| 65 |
+
print(sampled_seq)
|
| 66 |
+
f.write(f'>sampled_seq_{i+1}\n')
|
| 67 |
+
f.write(sampled_seq + '\n')
|
| 68 |
+
|
| 69 |
+
recovery = np.mean([(a==b) for a, b in zip(native_seq, sampled_seq)])
|
| 70 |
+
print('Sequence recovery:', recovery)
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
def main():
|
| 74 |
+
parser = argparse.ArgumentParser(
|
| 75 |
+
description='Sample sequences based on a given structure.'
|
| 76 |
+
)
|
| 77 |
+
parser.add_argument(
|
| 78 |
+
'pdbfile', type=str,
|
| 79 |
+
help='input filepath, either .pdb or .cif',
|
| 80 |
+
)
|
| 81 |
+
parser.add_argument(
|
| 82 |
+
'--chain', type=str,
|
| 83 |
+
help='chain id for the chain of interest', default=None,
|
| 84 |
+
)
|
| 85 |
+
parser.add_argument(
|
| 86 |
+
'--temperature', type=float,
|
| 87 |
+
help='temperature for sampling, higher for more diversity',
|
| 88 |
+
default=1.,
|
| 89 |
+
)
|
| 90 |
+
parser.add_argument(
|
| 91 |
+
'--outpath', type=str,
|
| 92 |
+
help='output filepath for saving sampled sequences',
|
| 93 |
+
default='output/sampled_seqs.fasta',
|
| 94 |
+
)
|
| 95 |
+
parser.add_argument(
|
| 96 |
+
'--num-samples', type=int,
|
| 97 |
+
help='number of sequences to sample',
|
| 98 |
+
default=1,
|
| 99 |
+
)
|
| 100 |
+
parser.set_defaults(multichain_backbone=False)
|
| 101 |
+
parser.add_argument(
|
| 102 |
+
'--multichain-backbone', action='store_true',
|
| 103 |
+
help='use the backbones of all chains in the input for conditioning'
|
| 104 |
+
)
|
| 105 |
+
parser.add_argument(
|
| 106 |
+
'--singlechain-backbone', dest='multichain_backbone',
|
| 107 |
+
action='store_false',
|
| 108 |
+
help='use the backbone of only target chain in the input for conditioning'
|
| 109 |
+
)
|
| 110 |
+
parser.add_argument("--nogpu", action="store_true", help="Do not use GPU even if available")
|
| 111 |
+
|
| 112 |
+
args = parser.parse_args()
|
| 113 |
+
|
| 114 |
+
model, alphabet = esm.pretrained.esm_if1_gvp4_t16_142M_UR50()
|
| 115 |
+
model = model.eval()
|
| 116 |
+
|
| 117 |
+
if args.multichain_backbone:
|
| 118 |
+
sample_seq_multichain(model, alphabet, args)
|
| 119 |
+
else:
|
| 120 |
+
sample_seq_singlechain(model, alphabet, args)
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
if __name__ == '__main__':
|
| 124 |
+
main()
|
weight/esm-main/examples/inverse_folding/score_log_likelihoods.py
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
#
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
#
|
| 6 |
+
# Scores sequences based on a given structure.
|
| 7 |
+
#
|
| 8 |
+
# usage:
|
| 9 |
+
# score_log_likelihoods.py [-h] [--outpath OUTPATH] [--chain CHAIN] pdbfile seqfile
|
| 10 |
+
|
| 11 |
+
import argparse
|
| 12 |
+
from biotite.sequence.io.fasta import FastaFile, get_sequences
|
| 13 |
+
import numpy as np
|
| 14 |
+
from pathlib import Path
|
| 15 |
+
import torch
|
| 16 |
+
import torch.nn.functional as F
|
| 17 |
+
from tqdm import tqdm
|
| 18 |
+
|
| 19 |
+
import esm
|
| 20 |
+
import esm.inverse_folding
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def score_singlechain_backbone(model, alphabet, args):
|
| 24 |
+
if torch.cuda.is_available() and not args.nogpu:
|
| 25 |
+
model = model.cuda()
|
| 26 |
+
print("Transferred model to GPU")
|
| 27 |
+
coords, native_seq = esm.inverse_folding.util.load_coords(args.pdbfile, args.chain)
|
| 28 |
+
print('Native sequence loaded from structure file:')
|
| 29 |
+
print(native_seq)
|
| 30 |
+
print('\n')
|
| 31 |
+
|
| 32 |
+
ll, _ = esm.inverse_folding.util.score_sequence(
|
| 33 |
+
model, alphabet, coords, native_seq)
|
| 34 |
+
print('Native sequence')
|
| 35 |
+
print(f'Log likelihood: {ll:.2f}')
|
| 36 |
+
print(f'Perplexity: {np.exp(-ll):.2f}')
|
| 37 |
+
|
| 38 |
+
print('\nScoring variant sequences from sequence file..\n')
|
| 39 |
+
infile = FastaFile()
|
| 40 |
+
infile.read(args.seqfile)
|
| 41 |
+
seqs = get_sequences(infile)
|
| 42 |
+
Path(args.outpath).parent.mkdir(parents=True, exist_ok=True)
|
| 43 |
+
with open(args.outpath, 'w') as fout:
|
| 44 |
+
fout.write('seqid,log_likelihood\n')
|
| 45 |
+
for header, seq in tqdm(seqs.items()):
|
| 46 |
+
ll, _ = esm.inverse_folding.util.score_sequence(
|
| 47 |
+
model, alphabet, coords, str(seq))
|
| 48 |
+
fout.write(header + ',' + str(ll) + '\n')
|
| 49 |
+
print(f'Results saved to {args.outpath}')
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
def score_multichain_backbone(model, alphabet, args):
|
| 53 |
+
if torch.cuda.is_available() and not args.nogpu:
|
| 54 |
+
model = model.cuda()
|
| 55 |
+
print("Transferred model to GPU")
|
| 56 |
+
structure = esm.inverse_folding.util.load_structure(args.pdbfile)
|
| 57 |
+
coords, native_seqs = esm.inverse_folding.multichain_util.extract_coords_from_complex(structure)
|
| 58 |
+
target_chain_id = args.chain
|
| 59 |
+
native_seq = native_seqs[target_chain_id]
|
| 60 |
+
print('Native sequence loaded from structure file:')
|
| 61 |
+
print(native_seq)
|
| 62 |
+
print('\n')
|
| 63 |
+
|
| 64 |
+
ll, _ = esm.inverse_folding.multichain_util.score_sequence_in_complex(
|
| 65 |
+
model, alphabet, coords, target_chain_id, native_seq)
|
| 66 |
+
print('Native sequence')
|
| 67 |
+
print(f'Log likelihood: {ll:.2f}')
|
| 68 |
+
print(f'Perplexity: {np.exp(-ll):.2f}')
|
| 69 |
+
|
| 70 |
+
print('\nScoring variant sequences from sequence file..\n')
|
| 71 |
+
infile = FastaFile()
|
| 72 |
+
infile.read(args.seqfile)
|
| 73 |
+
seqs = get_sequences(infile)
|
| 74 |
+
Path(args.outpath).parent.mkdir(parents=True, exist_ok=True)
|
| 75 |
+
with open(args.outpath, 'w') as fout:
|
| 76 |
+
fout.write('seqid,log_likelihood\n')
|
| 77 |
+
for header, seq in tqdm(seqs.items()):
|
| 78 |
+
ll, _ = esm.inverse_folding.multichain_util.score_sequence_in_complex(
|
| 79 |
+
model, alphabet, coords, target_chain_id, str(seq))
|
| 80 |
+
fout.write(header + ',' + str(ll) + '\n')
|
| 81 |
+
print(f'Results saved to {args.outpath}')
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
def main():
|
| 85 |
+
parser = argparse.ArgumentParser(
|
| 86 |
+
description='Score sequences based on a given structure.'
|
| 87 |
+
)
|
| 88 |
+
parser.add_argument(
|
| 89 |
+
'pdbfile', type=str,
|
| 90 |
+
help='input filepath, either .pdb or .cif',
|
| 91 |
+
)
|
| 92 |
+
parser.add_argument(
|
| 93 |
+
'seqfile', type=str,
|
| 94 |
+
help='input filepath for variant sequences in a .fasta file',
|
| 95 |
+
)
|
| 96 |
+
parser.add_argument(
|
| 97 |
+
'--outpath', type=str,
|
| 98 |
+
help='output filepath for scores of variant sequences',
|
| 99 |
+
default='output/sequence_scores.csv',
|
| 100 |
+
)
|
| 101 |
+
parser.add_argument(
|
| 102 |
+
'--chain', type=str,
|
| 103 |
+
help='chain id for the chain of interest', default='A',
|
| 104 |
+
)
|
| 105 |
+
parser.set_defaults(multichain_backbone=False)
|
| 106 |
+
parser.add_argument(
|
| 107 |
+
'--multichain-backbone', action='store_true',
|
| 108 |
+
help='use the backbones of all chains in the input for conditioning'
|
| 109 |
+
)
|
| 110 |
+
parser.add_argument(
|
| 111 |
+
'--singlechain-backbone', dest='multichain_backbone',
|
| 112 |
+
action='store_false',
|
| 113 |
+
help='use the backbone of only target chain in the input for conditioning'
|
| 114 |
+
)
|
| 115 |
+
|
| 116 |
+
parser.add_argument("--nogpu", action="store_true", help="Do not use GPU even if available")
|
| 117 |
+
|
| 118 |
+
args = parser.parse_args()
|
| 119 |
+
|
| 120 |
+
model, alphabet = esm.pretrained.esm_if1_gvp4_t16_142M_UR50()
|
| 121 |
+
model = model.eval()
|
| 122 |
+
|
| 123 |
+
if args.multichain_backbone:
|
| 124 |
+
score_multichain_backbone(model, alphabet, args)
|
| 125 |
+
else:
|
| 126 |
+
score_singlechain_backbone(model, alphabet, args)
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
if __name__ == '__main__':
|
| 131 |
+
main()
|
weight/esm-main/examples/lm-design/__init__.py
ADDED
|
File without changes
|
weight/esm-main/examples/lm-design/conf/__init__.py
ADDED
|
File without changes
|
weight/esm-main/examples/lm-design/conf/config.yaml
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
#
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
#
|
| 6 |
+
seed: 0
|
| 7 |
+
num_seqs: 1
|
| 8 |
+
test_mode: False
|
| 9 |
+
allow_missing_residue_coords: True
|
| 10 |
+
suppress_AA: 'C'
|
| 11 |
+
disable_cuda: False
|
| 12 |
+
cuda_device_idx: # Set to numberic value to override default GPU device used.
|
| 13 |
+
task: free_generation # fixedbb or free_generation
|
| 14 |
+
pdb_fn: # set as empty string when using free_generation
|
| 15 |
+
free_generation_length: 100
|
| 16 |
+
|
| 17 |
+
tasks:
|
| 18 |
+
free_generation:
|
| 19 |
+
num_iter: 170000
|
| 20 |
+
resample_y_every: 3
|
| 21 |
+
resample_y_temp: 1
|
| 22 |
+
stage_fixedbb_args: ${tasks.fixedbb}
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
fixedbb:
|
| 26 |
+
num_iter: 170000
|
| 27 |
+
|
| 28 |
+
# Accept/Reject
|
| 29 |
+
accept_reject:
|
| 30 |
+
energy_cfg:
|
| 31 |
+
struct_w: 3
|
| 32 |
+
LM_w: 2
|
| 33 |
+
ngram_w: 1
|
| 34 |
+
ngram_orders: [1,2,3]
|
| 35 |
+
temperature:
|
| 36 |
+
scheduler: StepLR
|
| 37 |
+
step_size: 10000
|
| 38 |
+
gamma: 0.5
|
| 39 |
+
initial: 8
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
# Hydra config
|
| 44 |
+
hydra:
|
| 45 |
+
job_logging:
|
| 46 |
+
formatters:
|
| 47 |
+
colorlog:
|
| 48 |
+
datefmt: "%m-%d %H:%M:%S"
|
| 49 |
+
handlers:
|
| 50 |
+
file:
|
| 51 |
+
class: logging.FileHandler
|
| 52 |
+
mode: w
|
| 53 |
+
filename: logging.l
|
| 54 |
+
console:
|
| 55 |
+
class: logging.StreamHandler
|
| 56 |
+
stream: ext://sys.stdout
|
| 57 |
+
|
| 58 |
+
hydra_logging:
|
| 59 |
+
handlers:
|
| 60 |
+
console:
|
| 61 |
+
class: logging.StreamHandler
|
| 62 |
+
stream: ext://sys.stdout
|
weight/esm-main/examples/lm-design/paper-data/README.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Here we provide the data associated with the paper
|
| 2 |
+
["Language models generalize beyond natural proteins" (2022)](https://doi.org/10.1101/2022.12.21.521521) by
|
| 3 |
+
Robert Verkuil\*, Ori Kabeli\*, Yilun Du, Basile I. M. Wicky, Lukas F. Milles, Justas Dauparas, David Baker, Sergey Ovchinnikov, Tom Sercu, and Alexander Rives.
|
| 4 |
+
|
| 5 |
+
## Free Generations (Section 3)
|
| 6 |
+
Designs from the Free Generations section of the paper (Section 3) along with their statistics and pdb files can be found at [free_generations_full.db](https://dl.fbaipublicfiles.com/fair-esm/examples/lm_design/free_generations_full.db) and can be loaded using:
|
| 7 |
+
```
|
| 8 |
+
import pandas as pd; pd.read_sql('free_generations_full', 'sqlite:///free_generations_full.db')
|
| 9 |
+
```
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
## Designs with wetlab validation (Section 2 and 3)
|
| 13 |
+
* [data.csv](./data.csv) - Load scalar data in `data.csv` with `pd.read_csv`.
|
| 14 |
+
* [data.hdf5](https://dl.fbaipublicfiles.com/fair-esm/examples/lm_design/design_lm_data_2022_v1.hdf5)
|
| 15 |
+
For long-form data, download `data.hdf5` from [this link](https://dl.fbaipublicfiles.com/fair-esm/examples/lm_design/design_lm_data_2022_v1.hdf5) and load with `pd.read_hdf`.
|
| 16 |
+
```
|
| 17 |
+
# Design information
|
| 18 |
+
Design ID - {F,G}{0-267} unique identifier for each (LM or AlphaFold) design evaluated. 8 Nan values correspond to 8 ground truth sequences tested.
|
| 19 |
+
Experiment Name - Label for the testing pool to which the design / ground-truth sequence belongs. See Supplement; Section 1.6 for a full description of submitted sequences. These pools (minus ground-truth sequences) have experimental results shown in fig. S11.
|
| 20 |
+
Design Model - 228x LM, 20x AlphaFold, 20x AF+ngram, 8x Ground Truth.
|
| 21 |
+
Target ID - PDB ID of de novo target for all fixed backbone designs, 'Generation' for all free generations.
|
| 22 |
+
Sequence - Designed sequence
|
| 23 |
+
|
| 24 |
+
# In Silico Evaluation
|
| 25 |
+
*AlphaFold predicted PDB file - Structure prediction from AlphaFold (5x pTM models, select best by pLDDT -> Amber Relax).
|
| 26 |
+
AlphaFold RMSD - (AlphaFold-predicted) RMSD to target backbone for fixed backbone designs, Nan for free generations
|
| 27 |
+
AlphaFold pLDDT - (AlphaFold-predicted) Avg pLDDT for the predicted structure
|
| 28 |
+
|
| 29 |
+
# Experimental Evaluation
|
| 30 |
+
# Results from experimental testing. Final classifications are in the booleans: {Soluble, Success, Success+Monodisperse}.
|
| 31 |
+
Total Yield - Actual total soluble yield (in mg) from the 4x1mL prep. (Actual yield is closer to ~2x, we can only inject 1/2 of the total product onto the column.)
|
| 32 |
+
yield_per_Leq - Total Yield, adjusted to 1 L of culture equivalent
|
| 33 |
+
*Elution Volume (mL) - Array of x-values for plotting of the SEC trace.
|
| 34 |
+
*Chromatographic Absorbance at 280nm - Array of y-values for plotting of the SEC trace.
|
| 35 |
+
*Elution Volume (mL) (raw) - Raw version, data is not truncated, lengths may differ between rows.
|
| 36 |
+
*Chromatographic Absorbance at 280nm (raw) - Raw version, data is not truncated, lengths may differ between rows.
|
| 37 |
+
Soluble - Total Yield > 0.05 mg.
|
| 38 |
+
Success - Soluble and SEC peak at the expected elution volume.
|
| 39 |
+
Success+Monodisperse - SEC peak *only* at the expected elution volume.
|
| 40 |
+
|
| 41 |
+
# Jackhmmer results
|
| 42 |
+
# See Supplement, Section 1.5 for verbose details.
|
| 43 |
+
# In short: Summary statistics of Jackhmmer searches (-n 1 --seed 0) of the designed sequence against UniRef90. Hits that were removed from ESM2's train set were removed from consideration here. See `.txt` files for ID's of these omitted sequences.
|
| 44 |
+
min Jackhmmer E-value - Minimum (best-domain) E-value
|
| 45 |
+
max Jackhmmer Seq-id (significant hits only) - Maximum Sequence identity over all significant (best domain E-value < 1) hits.
|
| 46 |
+
max Jackhmmer TM-score (top-10 hits only) - Maximum TM-score of the ≈top-10 (by best-domain E-value) hits. (Purging was applied after top-10, so the number considered may be slightly lower, counts were rarely reduced below 7).
|
| 47 |
+
|
| 48 |
+
(* denotes long-form data only available in data.hdf5)
|
| 49 |
+
```
|
| 50 |
+
|
| 51 |
+
## `artificial_sequence_purge_ids.txt`
|
| 52 |
+
ID's of sequences removed due to being annotateed "artificial sequence" by the UniProt website when `2021_04` was the latest release.
|
| 53 |
+
|
| 54 |
+
## `uniref90_jackhmmer_purge_ids.txt`
|
| 55 |
+
ID's of sequences removed by Jackhmmer search (`-n 1 --seed 0`) of UniRef90 when given the de novo target set as queries.
|
| 56 |
+
|
| 57 |
+
## Minimal structure projection
|
| 58 |
+
A small new model head was constructed on top of ESM2, which is [this linear projection layer](https://dl.fbaipublicfiles.com/fair-esm/examples/lm_design/linear_projection_model.pt).
|
| 59 |
+
For a given sequence the projection measures the compatibility of the internal representations of the language model with a structure.
|
| 60 |
+
The linear projection layer is automatically downloaded when running the `lm_design` code.
|
| 61 |
+
|
| 62 |
+
## Reference
|
| 63 |
+
|
| 64 |
+
If using this work, please cite:
|
| 65 |
+
```bibtex
|
| 66 |
+
@article{verkuil2022language,
|
| 67 |
+
author={Robert Verkuil\*, Ori Kabeli\*, Yilun Du, Basile I. M. Wicky, Lukas F. Milles, Justas Dauparas, David Baker, Sergey Ovchinnikov, Tom Sercu, and Alexander Rives},
|
| 68 |
+
title={Language models generalize beyond natural proteins},
|
| 69 |
+
year={2022},
|
| 70 |
+
journal={bioRxiv},
|
| 71 |
+
note={bioRxiv 2022.12.21.521521},
|
| 72 |
+
url={https://doi.org/10.1101/2022.12.21.521521},
|
| 73 |
+
}
|
| 74 |
+
```
|
weight/esm-main/examples/lm-design/paper-data/artificial_sequence_purge_ids.txt
ADDED
|
@@ -0,0 +1,1027 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
F4ZNF8
|
| 2 |
+
A0A2J8RBA3
|
| 3 |
+
P62593
|
| 4 |
+
G9F9U8
|
| 5 |
+
P0A0C4
|
| 6 |
+
A0A1D5R6J9
|
| 7 |
+
Q8NFU1
|
| 8 |
+
O35638
|
| 9 |
+
P97793
|
| 10 |
+
P03023
|
| 11 |
+
P35125
|
| 12 |
+
P08588
|
| 13 |
+
A0A1Z1CGU0
|
| 14 |
+
A3DJ78
|
| 15 |
+
P03051
|
| 16 |
+
C3TTS2
|
| 17 |
+
A0A7S7YQ80
|
| 18 |
+
A0A8A1QP70
|
| 19 |
+
P00552
|
| 20 |
+
C0IR82
|
| 21 |
+
A0A6G8MV33
|
| 22 |
+
A0A7G3QPU0
|
| 23 |
+
C1IW73
|
| 24 |
+
O21999
|
| 25 |
+
A0A7S7YQ81
|
| 26 |
+
B6ZLM4
|
| 27 |
+
E9QNN1
|
| 28 |
+
C3TTS5
|
| 29 |
+
A0A8A1QPY2
|
| 30 |
+
A0A6G8MVA3
|
| 31 |
+
UPI000B4966E4
|
| 32 |
+
UPI000CFA7FCD
|
| 33 |
+
UPI000219022D
|
| 34 |
+
UPI00027FCE9C
|
| 35 |
+
UPI00025EFAFD
|
| 36 |
+
UPI0012FE7F08
|
| 37 |
+
UPI00080A7F37
|
| 38 |
+
UPI0004F13E6B
|
| 39 |
+
UPI0012F47792
|
| 40 |
+
UPI00034F235D
|
| 41 |
+
UPI0002B8CEC9
|
| 42 |
+
UPI0002B7BDD8
|
| 43 |
+
UPI00053CEE40
|
| 44 |
+
UPI00142F3CED
|
| 45 |
+
UPI00001103FE
|
| 46 |
+
UPI0018E1D9AC
|
| 47 |
+
UPI00021472E1
|
| 48 |
+
UPI0008F7E60A
|
| 49 |
+
UPI00097159CA
|
| 50 |
+
UPI000C173B10
|
| 51 |
+
UPI0008FBBFA1
|
| 52 |
+
UPI0012494AED
|
| 53 |
+
UPI0013EEE969
|
| 54 |
+
UPI00192FB675
|
| 55 |
+
UPI0010C7614F
|
| 56 |
+
UPI0012B50480
|
| 57 |
+
UPI0012B504DE
|
| 58 |
+
UPI0007D70F8E
|
| 59 |
+
UPI000299CE42
|
| 60 |
+
UPI00029B854D
|
| 61 |
+
UPI00052238A4
|
| 62 |
+
UPI0002B7BE16
|
| 63 |
+
UPI0002B63CCF
|
| 64 |
+
UPI000290CF2E
|
| 65 |
+
UPI00143F05A9
|
| 66 |
+
UPI001461716A
|
| 67 |
+
UPI000F45EF0D
|
| 68 |
+
UPI0002B8CC90
|
| 69 |
+
UPI0015D65FC5
|
| 70 |
+
UPI000F62C1E1
|
| 71 |
+
UPI000F735192
|
| 72 |
+
UPI000BACEC18
|
| 73 |
+
R0N8F4
|
| 74 |
+
UPI000B8BB31F
|
| 75 |
+
UPI001643FAA5
|
| 76 |
+
UPI0001E070E1
|
| 77 |
+
UPI00017620F1
|
| 78 |
+
UPI000219FD3F
|
| 79 |
+
UPI000A1C7A35
|
| 80 |
+
UPI00021472EB
|
| 81 |
+
A0A376TUA3
|
| 82 |
+
UPI0002003CE9
|
| 83 |
+
UPI00192FB686
|
| 84 |
+
UPI001038633B
|
| 85 |
+
UPI00071E9FEF
|
| 86 |
+
UPI000776ADB4
|
| 87 |
+
UPI0007A93631
|
| 88 |
+
UPI0007D70F84
|
| 89 |
+
UPI0002662B13
|
| 90 |
+
UPI00027FCDD0
|
| 91 |
+
UPI000D53C302
|
| 92 |
+
UPI0004DB217F
|
| 93 |
+
UPI000F735167
|
| 94 |
+
UPI000E6E5C27
|
| 95 |
+
UPI000F7D07A0
|
| 96 |
+
UPI0003C0DDA4
|
| 97 |
+
UPI000B8BB313
|
| 98 |
+
UPI0005448304
|
| 99 |
+
UPI000E3F8B1C
|
| 100 |
+
UPI000579AB0E
|
| 101 |
+
UPI001606F496
|
| 102 |
+
UPI0018E1DA16
|
| 103 |
+
UPI0014260322
|
| 104 |
+
UPI000F517987
|
| 105 |
+
UPI0009E0E2FD
|
| 106 |
+
UPI00196A1D51
|
| 107 |
+
UPI0013AE8757
|
| 108 |
+
UPI00071E9FDB
|
| 109 |
+
UPI00071E9FE4
|
| 110 |
+
UPI00071E9FEB
|
| 111 |
+
UPI0010C76155
|
| 112 |
+
UPI0006AD09A0
|
| 113 |
+
UPI0006AD09CA
|
| 114 |
+
UPI0007446E25
|
| 115 |
+
UPI0006B87F02
|
| 116 |
+
UPI00077DEFCA
|
| 117 |
+
UPI0002521384
|
| 118 |
+
UPI0007B176CF
|
| 119 |
+
UPI00025EFAFC
|
| 120 |
+
UPI0007A93677
|
| 121 |
+
UPI0004E98162
|
| 122 |
+
UPI0012F47798
|
| 123 |
+
UPI00144A4C39
|
| 124 |
+
UPI00038A5F74
|
| 125 |
+
UPI0003E1259B
|
| 126 |
+
UPI00038A5F50
|
| 127 |
+
UPI001AA00D14
|
| 128 |
+
UPI0001F84832
|
| 129 |
+
UPI00098DD6BE
|
| 130 |
+
UPI000C2F816A
|
| 131 |
+
UPI000B423637
|
| 132 |
+
UPI0010C934C4
|
| 133 |
+
UPI00144A4CA1
|
| 134 |
+
UPI00038A5F63
|
| 135 |
+
UPI000E5A0F66
|
| 136 |
+
UPI000FC43C46
|
| 137 |
+
UPI000F62C1EA
|
| 138 |
+
UPI000B8BB316
|
| 139 |
+
UPI0015F35251
|
| 140 |
+
UPI000B8BB331
|
| 141 |
+
UPI0001ED0481
|
| 142 |
+
UPI00021B6592
|
| 143 |
+
UPI001AA00CDC
|
| 144 |
+
UPI00097BA51B
|
| 145 |
+
K4EPC2
|
| 146 |
+
UPI0004AC2185
|
| 147 |
+
UPI0004A9B32D
|
| 148 |
+
UPI00052238F1
|
| 149 |
+
UPI000F45EF34
|
| 150 |
+
UPI00084A2F67
|
| 151 |
+
UPI000957C7BE
|
| 152 |
+
UPI0009083375
|
| 153 |
+
UPI00110D2544
|
| 154 |
+
UPI00167C4595
|
| 155 |
+
UPI000268A618
|
| 156 |
+
UPI0003847919
|
| 157 |
+
UPI0006CE488A
|
| 158 |
+
UPI0003D405CB
|
| 159 |
+
UPI000776ADA8
|
| 160 |
+
UPI00077DEFAD
|
| 161 |
+
UPI0002662A69
|
| 162 |
+
UPI0007D70FA4
|
| 163 |
+
UPI000290CF1E
|
| 164 |
+
UPI000D5032AD
|
| 165 |
+
UPI0002C39267
|
| 166 |
+
UPI000DAB3A3D
|
| 167 |
+
UPI000533FF1B
|
| 168 |
+
UPI00034F232F
|
| 169 |
+
UPI00143F05E0
|
| 170 |
+
UPI00142602E4
|
| 171 |
+
UPI000F45EF92
|
| 172 |
+
UPI0001CC46FF
|
| 173 |
+
UPI00106D2764
|
| 174 |
+
UPI0018AF53FD
|
| 175 |
+
UPI0018963E48
|
| 176 |
+
UPI000C173B08
|
| 177 |
+
UPI000E20C8A6
|
| 178 |
+
UPI000046F60F
|
| 179 |
+
UPI0001C5920B
|
| 180 |
+
UPI000B8BB356
|
| 181 |
+
UPI00032D6819
|
| 182 |
+
UPI0005AECF50
|
| 183 |
+
UPI0018E1DA0C
|
| 184 |
+
UPI000E2E4198
|
| 185 |
+
UPI000588E8B2
|
| 186 |
+
UPI001606F4BC
|
| 187 |
+
UPI0015F3523F
|
| 188 |
+
UPI0005D4846E
|
| 189 |
+
UPI000B8BB325
|
| 190 |
+
UPI00194ADAD6
|
| 191 |
+
UPI00084A2E3B
|
| 192 |
+
UPI00098DD694
|
| 193 |
+
UPI0009E0E325
|
| 194 |
+
UPI000864917F
|
| 195 |
+
UPI00020CB75C
|
| 196 |
+
UPI00090286F3
|
| 197 |
+
UPI0001CC46F5
|
| 198 |
+
UPI0002B7BDE7
|
| 199 |
+
UPI00052E4972
|
| 200 |
+
UPI000776AD7E
|
| 201 |
+
UPI0008FBBF64
|
| 202 |
+
UPI0007CA7963
|
| 203 |
+
UPI001111865D
|
| 204 |
+
UPI00104284F3
|
| 205 |
+
UPI0010052749
|
| 206 |
+
UPI000023423A
|
| 207 |
+
UPI00144A4CC0
|
| 208 |
+
UPI000BBB67AF
|
| 209 |
+
UPI000B80303C
|
| 210 |
+
UPI000332091E
|
| 211 |
+
UPI0006149A97
|
| 212 |
+
UPI000D097F2E
|
| 213 |
+
UPI00017EE951
|
| 214 |
+
UPI0001ED0480
|
| 215 |
+
UPI0000112ED3
|
| 216 |
+
UPI000231BBE3
|
| 217 |
+
UPI00029DD2AC
|
| 218 |
+
UPI0002416BA1
|
| 219 |
+
UPI00110D255B
|
| 220 |
+
UPI0013BE8AA3
|
| 221 |
+
UPI00022F840A
|
| 222 |
+
UPI00118EA44B
|
| 223 |
+
UPI0012B50508
|
| 224 |
+
UPI00078AF2F8
|
| 225 |
+
UPI0007D70FD4
|
| 226 |
+
UPI0008029526
|
| 227 |
+
UPI0004437F73
|
| 228 |
+
UPI0013F59633
|
| 229 |
+
UPI0013F595CF
|
| 230 |
+
UPI00144A4C2B
|
| 231 |
+
UPI000F45EF85
|
| 232 |
+
UPI00142602D1
|
| 233 |
+
UPI0005CDCEA1
|
| 234 |
+
UPI00001104EF
|
| 235 |
+
UPI0015ECD840
|
| 236 |
+
UPI000B8BB307
|
| 237 |
+
UPI0003E5C6BA
|
| 238 |
+
UPI0001D34122
|
| 239 |
+
UPI00097159E7
|
| 240 |
+
UPI0001ED047E
|
| 241 |
+
UPI00084A2F43
|
| 242 |
+
UPI0000111971
|
| 243 |
+
UPI0008235806
|
| 244 |
+
UPI001AD95113
|
| 245 |
+
UPI00026E0F9C
|
| 246 |
+
UPI0007F04B51
|
| 247 |
+
UPI000C1B5F82
|
| 248 |
+
UPI000C6C88DC
|
| 249 |
+
UPI000B4E83A1
|
| 250 |
+
UPI000B4966A5
|
| 251 |
+
UPI00110D252D
|
| 252 |
+
UPI00110D2541
|
| 253 |
+
UPI00194ADA30
|
| 254 |
+
UPI0013F5966A
|
| 255 |
+
UPI0002236A77
|
| 256 |
+
UPI00045EDE80
|
| 257 |
+
UPI00148AE2D9
|
| 258 |
+
UPI00038A5F38
|
| 259 |
+
UPI000F7351EF
|
| 260 |
+
UPI0015516330
|
| 261 |
+
UPI0019203BA8
|
| 262 |
+
UPI0003D405D0
|
| 263 |
+
UPI000BACEBD1
|
| 264 |
+
UPI000859AD75
|
| 265 |
+
UPI001AA00CF9
|
| 266 |
+
UPI00098DD6B8
|
| 267 |
+
UPI00110D2501
|
| 268 |
+
UPI0010052797
|
| 269 |
+
UPI000DBECE81
|
| 270 |
+
UPI001AEC72A7
|
| 271 |
+
UPI00167C4544
|
| 272 |
+
UPI000225A889
|
| 273 |
+
UPI00071E9FCC
|
| 274 |
+
UPI00071EA030
|
| 275 |
+
UPI00071EA03A
|
| 276 |
+
UPI0000034D67
|
| 277 |
+
UPI0006B2AA55
|
| 278 |
+
UPI0006B2AA61
|
| 279 |
+
UPI00067E6504
|
| 280 |
+
UPI000745F1EF
|
| 281 |
+
UPI00111186BC
|
| 282 |
+
UPI000718AB87
|
| 283 |
+
UPI00111186A3
|
| 284 |
+
UPI0007CA79BD
|
| 285 |
+
UPI0007D70F7B
|
| 286 |
+
UPI000252CB85
|
| 287 |
+
UPI000274A896
|
| 288 |
+
UPI0004E98176
|
| 289 |
+
UPI0002775471
|
| 290 |
+
UPI000DF720F5
|
| 291 |
+
UPI0002C39268
|
| 292 |
+
UPI00038478F5
|
| 293 |
+
UPI00058401AE
|
| 294 |
+
UPI00144A4CB8
|
| 295 |
+
UPI000F45EF86
|
| 296 |
+
UPI000F62C0F8
|
| 297 |
+
UPI0001D2820D
|
| 298 |
+
UPI0003E9D159
|
| 299 |
+
UPI0001E3065A
|
| 300 |
+
UPI0001BEF2D0
|
| 301 |
+
UPI000B802FEC
|
| 302 |
+
UPI0009715987
|
| 303 |
+
UPI0007E529ED
|
| 304 |
+
UPI000789C1E3
|
| 305 |
+
UPI000C1B5FF1
|
| 306 |
+
UPI000B5ABD1D
|
| 307 |
+
UPI00119C9006
|
| 308 |
+
UPI0011EA5FDF
|
| 309 |
+
UPI001493DE5C
|
| 310 |
+
UPI0013893A35
|
| 311 |
+
UPI0015882A8C
|
| 312 |
+
UPI0001D107C7
|
| 313 |
+
UPI000C1B5FEC
|
| 314 |
+
UPI0010A1F82C
|
| 315 |
+
UPI0019D71E58
|
| 316 |
+
B6ID89
|
| 317 |
+
UPI0001E30657
|
| 318 |
+
UPI0004540D7C
|
| 319 |
+
UPI0001BE62D1
|
| 320 |
+
UPI0013019C43
|
| 321 |
+
UPI0001CC46F4
|
| 322 |
+
UPI00032D6797
|
| 323 |
+
UPI00038A5F2A
|
| 324 |
+
UPI00080A7FC3
|
| 325 |
+
UPI000B4E8365
|
| 326 |
+
UPI0011DC71C4
|
| 327 |
+
UPI0019203C21
|
| 328 |
+
UPI00023EABAA
|
| 329 |
+
UPI0005CDCECB
|
| 330 |
+
UPI0008FBBF78
|
| 331 |
+
UPI00110D24F9
|
| 332 |
+
UPI000332EA7C
|
| 333 |
+
UPI0008521C9F
|
| 334 |
+
UPI00194ADA71
|
| 335 |
+
UPI0000110392
|
| 336 |
+
UPI0000112B0E
|
| 337 |
+
UPI000579AB12
|
| 338 |
+
UPI00051FF421
|
| 339 |
+
UPI000579AB1D
|
| 340 |
+
UPI0013F595D9
|
| 341 |
+
UPI00032D679A
|
| 342 |
+
UPI0013F595DD
|
| 343 |
+
UPI00144A4CA9
|
| 344 |
+
UPI0018A7E253
|
| 345 |
+
UPI0018EA31D7
|
| 346 |
+
UPI001AA00D30
|
| 347 |
+
UPI0001CC46FD
|
| 348 |
+
UPI0001E3065B
|
| 349 |
+
UPI00020B9EEB
|
| 350 |
+
UPI0001EA5A36
|
| 351 |
+
UPI0003994F59
|
| 352 |
+
A0A5B0FWU5
|
| 353 |
+
UPI0004F13E89
|
| 354 |
+
UPI000E32D3B2
|
| 355 |
+
UPI000C810904
|
| 356 |
+
UPI0018FE0336
|
| 357 |
+
UPI0002380B49
|
| 358 |
+
UPI000A276D2E
|
| 359 |
+
Q61743
|
| 360 |
+
UPI000B4E835E
|
| 361 |
+
UPI000C6F4481
|
| 362 |
+
UPI000DC66368
|
| 363 |
+
UPI000CFA801F
|
| 364 |
+
UPI0013AE86E9
|
| 365 |
+
UPI000F51797A
|
| 366 |
+
UPI000387ACE9
|
| 367 |
+
UPI00174F7D1F
|
| 368 |
+
UPI001A9A2BF3
|
| 369 |
+
UPI00084A2E95
|
| 370 |
+
UPI001AA00CC5
|
| 371 |
+
UPI001AEC7298
|
| 372 |
+
UPI0018963E05
|
| 373 |
+
UPI0001B04C41
|
| 374 |
+
UPI0000233EB9
|
| 375 |
+
UPI0000F58EF4
|
| 376 |
+
UPI0013AE86E8
|
| 377 |
+
UPI000BA9F930
|
| 378 |
+
UPI00035AC9B2
|
| 379 |
+
UPI0015F35239
|
| 380 |
+
UPI000F7351AB
|
| 381 |
+
UPI0004400482
|
| 382 |
+
UPI00097159F7
|
| 383 |
+
UPI0002147307
|
| 384 |
+
UPI000453B3F9
|
| 385 |
+
UPI00077DEFF3
|
| 386 |
+
UPI000A276D2D
|
| 387 |
+
UPI00119C9082
|
| 388 |
+
UPI0015882A88
|
| 389 |
+
UPI00192FB67C
|
| 390 |
+
UPI00022B80E9
|
| 391 |
+
UPI0002380B67
|
| 392 |
+
UPI000763547B
|
| 393 |
+
UPI0007635488
|
| 394 |
+
UPI00071EA042
|
| 395 |
+
UPI00071EA047
|
| 396 |
+
UPI00071EA04C
|
| 397 |
+
UPI0010F4323F
|
| 398 |
+
UPI00110D253B
|
| 399 |
+
UPI000716C80D
|
| 400 |
+
UPI0002521386
|
| 401 |
+
UPI00078AF330
|
| 402 |
+
UPI0011118674
|
| 403 |
+
UPI0011118679
|
| 404 |
+
UPI00080A7F7A
|
| 405 |
+
UPI00086491AB
|
| 406 |
+
UPI0012F47784
|
| 407 |
+
UPI0004F2371B
|
| 408 |
+
UPI00027B2C55
|
| 409 |
+
UPI00135F185E
|
| 410 |
+
UPI0007D70FC5
|
| 411 |
+
UPI0002D2576C
|
| 412 |
+
UPI00052238B8
|
| 413 |
+
UPI0012FE7EFE
|
| 414 |
+
UPI00142F3C8F
|
| 415 |
+
UPI00053CEE55
|
| 416 |
+
UPI000F517942
|
| 417 |
+
UPI000BBB680B
|
| 418 |
+
UPI00054CD398
|
| 419 |
+
UPI001AA00CD5
|
| 420 |
+
UPI0009468C99
|
| 421 |
+
UPI000D097F84
|
| 422 |
+
UPI0001754106
|
| 423 |
+
UPI00026BAC65
|
| 424 |
+
UPI000C173B21
|
| 425 |
+
UPI001005273B
|
| 426 |
+
UPI000035158F
|
| 427 |
+
UPI000225A888
|
| 428 |
+
UPI00065F26A0
|
| 429 |
+
UPI00022F840B
|
| 430 |
+
UPI00118EA415
|
| 431 |
+
UPI00118EA429
|
| 432 |
+
UPI00071E9FCF
|
| 433 |
+
UPI00071E9FD4
|
| 434 |
+
A0A376UCZ8
|
| 435 |
+
UPI0002348162
|
| 436 |
+
UPI0002416BA9
|
| 437 |
+
UPI000745F231
|
| 438 |
+
UPI000763546F
|
| 439 |
+
UPI001111864E
|
| 440 |
+
UPI00077DEF8E
|
| 441 |
+
UPI00025C0751
|
| 442 |
+
UPI0012B67DD8
|
| 443 |
+
UPI0002638C92
|
| 444 |
+
UPI0012B50510
|
| 445 |
+
UPI0012B50506
|
| 446 |
+
UPI0002662B12
|
| 447 |
+
UPI00026B6FAC
|
| 448 |
+
UPI0002AB7FB9
|
| 449 |
+
UPI00054482BB
|
| 450 |
+
UPI000E2E41C5
|
| 451 |
+
UPI0004F13E92
|
| 452 |
+
UPI00144A4C9C
|
| 453 |
+
UPI00058401AC
|
| 454 |
+
UPI00051AABBC
|
| 455 |
+
UPI0002B7BE02
|
| 456 |
+
UPI000E32D3AD
|
| 457 |
+
UPI000E115742
|
| 458 |
+
UPI00143F05B7
|
| 459 |
+
UPI000B8BB319
|
| 460 |
+
UPI00143F0604
|
| 461 |
+
UPI0015516331
|
| 462 |
+
UPI000440048D
|
| 463 |
+
UPI000BACEBD5
|
| 464 |
+
UPI00084CE66D
|
| 465 |
+
UPI0001E0709E
|
| 466 |
+
UPI0001AB295F
|
| 467 |
+
UPI00077DEFCB
|
| 468 |
+
UPI0003D79336
|
| 469 |
+
UPI000C1B5F96
|
| 470 |
+
UPI0002A54BFD
|
| 471 |
+
UPI0006B2AA7F
|
| 472 |
+
UPI000C122A66
|
| 473 |
+
UPI000C2F818D
|
| 474 |
+
UPI00194ADA9E
|
| 475 |
+
G8HJ64
|
| 476 |
+
UPI0012D7074B
|
| 477 |
+
UPI000BBB67C1
|
| 478 |
+
UPI0003E5C658
|
| 479 |
+
UPI0015F35205
|
| 480 |
+
UPI000F517992
|
| 481 |
+
UPI0015F35252
|
| 482 |
+
UPI0015ECD82F
|
| 483 |
+
UPI00021472CB
|
| 484 |
+
UPI0008521C70
|
| 485 |
+
P14647
|
| 486 |
+
UPI0009E0E337
|
| 487 |
+
UPI000BACEBD2
|
| 488 |
+
UPI00110D2559
|
| 489 |
+
UPI00084A2DDE
|
| 490 |
+
UPI0018D5A8E2
|
| 491 |
+
UPI001AD9513A
|
| 492 |
+
UPI000A1C7A2F
|
| 493 |
+
UPI0008FBBF53
|
| 494 |
+
UPI0009E0E348
|
| 495 |
+
B7SY86
|
| 496 |
+
UPI00026E0F9D
|
| 497 |
+
A0A3B3IU25
|
| 498 |
+
UPI0019203C1F
|
| 499 |
+
UPI00006AB776
|
| 500 |
+
UPI000175425C
|
| 501 |
+
UPI000268A617
|
| 502 |
+
UPI00045EDE62
|
| 503 |
+
UPI0003D405D4
|
| 504 |
+
UPI0008FBBF81
|
| 505 |
+
UPI0011118693
|
| 506 |
+
UPI00077DEFC6
|
| 507 |
+
UPI00143F058B
|
| 508 |
+
UPI0015D65F8D
|
| 509 |
+
UPI0018658999
|
| 510 |
+
UPI000150D089
|
| 511 |
+
UPI000B8BB367
|
| 512 |
+
UPI001606F444
|
| 513 |
+
UPI00168D9BFD
|
| 514 |
+
UPI00022F8419
|
| 515 |
+
UPI0010A1F87B
|
| 516 |
+
UPI00071E9FF6
|
| 517 |
+
UPI00071E9FF7
|
| 518 |
+
UPI00071E9FFF
|
| 519 |
+
UPI00071EA00D
|
| 520 |
+
UPI00071EA01B
|
| 521 |
+
UPI00071EA01E
|
| 522 |
+
UPI00071EA029
|
| 523 |
+
UPI0006AB76EC
|
| 524 |
+
UPI0007414E74
|
| 525 |
+
UPI0007414E8B
|
| 526 |
+
UPI0006DBD7D5
|
| 527 |
+
UPI00077B27C7
|
| 528 |
+
UPI0012F4777C
|
| 529 |
+
UPI0007F04AEB
|
| 530 |
+
UPI0002643244
|
| 531 |
+
UPI000E5A0F5A
|
| 532 |
+
UPI0005C1213E
|
| 533 |
+
UPI001374709C
|
| 534 |
+
UPI0005B2EBCD
|
| 535 |
+
UPI0002B7BE04
|
| 536 |
+
UPI000387ACA3
|
| 537 |
+
UPI000E5A0FB3
|
| 538 |
+
UPI000E6E5C37
|
| 539 |
+
UPI000E115713
|
| 540 |
+
UPI0006149ABC
|
| 541 |
+
UPI00144A4C42
|
| 542 |
+
UPI0005CDCEC1
|
| 543 |
+
UPI000579AB11
|
| 544 |
+
UPI0001D2820C
|
| 545 |
+
UPI000CF5DA49
|
| 546 |
+
UPI00084A2EDB
|
| 547 |
+
UPI000058E1C0
|
| 548 |
+
UPI001889C3AD
|
| 549 |
+
UPI00023EABAE
|
| 550 |
+
UPI0013EEE97A
|
| 551 |
+
UPI00026BAC66
|
| 552 |
+
A0A1X8XLE9
|
| 553 |
+
UPI00077DEFBE
|
| 554 |
+
UPI0003B7E04E
|
| 555 |
+
UPI000FE182D8
|
| 556 |
+
UPI001262AC70
|
| 557 |
+
UPI00196A1DEB
|
| 558 |
+
UPI001889C37B
|
| 559 |
+
UPI0012F4777A
|
| 560 |
+
UPI0011329F79
|
| 561 |
+
UPI0012FE7ED2
|
| 562 |
+
UPI0013AE8713
|
| 563 |
+
UPI0002AB7FAB
|
| 564 |
+
UPI00054482F2
|
| 565 |
+
UPI000EAB1302
|
| 566 |
+
UPI00052238D4
|
| 567 |
+
UPI001652B72F
|
| 568 |
+
UPI0005B2EBAB
|
| 569 |
+
UPI000533FF23
|
| 570 |
+
UPI000F735194
|
| 571 |
+
UPI001A9A2BC5
|
| 572 |
+
UPI000B8BB30A
|
| 573 |
+
UPI0018963DDB
|
| 574 |
+
UPI0015516341
|
| 575 |
+
UPI001AA00CFE
|
| 576 |
+
UPI000436DEFD
|
| 577 |
+
UPI0001E3065D
|
| 578 |
+
UPI0002B8CEB0
|
| 579 |
+
UPI000453B3C4
|
| 580 |
+
UPI0003C63EB6
|
| 581 |
+
UPI000E32D368
|
| 582 |
+
UPI00073339B0
|
| 583 |
+
UPI000C6C889C
|
| 584 |
+
UPI000C255BC9
|
| 585 |
+
UPI00110D2506
|
| 586 |
+
UPI0007E90EED
|
| 587 |
+
UPI0011146D56
|
| 588 |
+
UPI001111868A
|
| 589 |
+
UPI0015882A27
|
| 590 |
+
UPI001606F4C2
|
| 591 |
+
UPI001606F4BE
|
| 592 |
+
UPI0014260323
|
| 593 |
+
UPI00174F7CD7
|
| 594 |
+
UPI000D5032F0
|
| 595 |
+
UPI000579AB14
|
| 596 |
+
UPI000E32D3A1
|
| 597 |
+
UPI0012FE7E70
|
| 598 |
+
UPI0002B8CE7D
|
| 599 |
+
UPI0005B2EBED
|
| 600 |
+
UPI000BBB67D1
|
| 601 |
+
UPI0001CF7379
|
| 602 |
+
UPI00186BC337
|
| 603 |
+
UPI000D097F52
|
| 604 |
+
UPI00097BA547
|
| 605 |
+
UPI000B3D7BAA
|
| 606 |
+
UPI000035E43E
|
| 607 |
+
UPI000A1C7A22
|
| 608 |
+
UPI0001BE64E6
|
| 609 |
+
UPI0003B7E073
|
| 610 |
+
UPI0003847965
|
| 611 |
+
UPI00193116FB
|
| 612 |
+
UPI000225A887
|
| 613 |
+
UPI0014612D4C
|
| 614 |
+
UPI000BDFB0A9
|
| 615 |
+
UPI000F51796B
|
| 616 |
+
UPI001A9A2BE6
|
| 617 |
+
UPI001AD95101
|
| 618 |
+
UPI000B5ABD9C
|
| 619 |
+
UPI00020B9EC4
|
| 620 |
+
UPI0003AFF92C
|
| 621 |
+
UPI0002438AF8
|
| 622 |
+
UPI000437CCCE
|
| 623 |
+
UPI0012B67DE8
|
| 624 |
+
UPI0015882A7E
|
| 625 |
+
UPI0007D70FB5
|
| 626 |
+
UPI0004EF76C7
|
| 627 |
+
UPI0002B8CC1F
|
| 628 |
+
UPI00054482FA
|
| 629 |
+
UPI0001C5920C
|
| 630 |
+
UPI000F62C19A
|
| 631 |
+
UPI000F517949
|
| 632 |
+
UPI000387ACAC
|
| 633 |
+
UPI0003E5C6F9
|
| 634 |
+
UPI000BACEC0C
|
| 635 |
+
UPI0001E7A932
|
| 636 |
+
UPI0009468CC9
|
| 637 |
+
UPI00098DD6AE
|
| 638 |
+
UPI00003B0943
|
| 639 |
+
UPI0001EB69A1
|
| 640 |
+
UPI0005D2D2E6
|
| 641 |
+
UPI00077DEF97
|
| 642 |
+
UPI0003D79315
|
| 643 |
+
UPI0006AD09E4
|
| 644 |
+
UPI0007414E50
|
| 645 |
+
UPI000745F249
|
| 646 |
+
UPI000745F255
|
| 647 |
+
UPI00026B6FAD
|
| 648 |
+
UPI0007B176D2
|
| 649 |
+
UPI0012B50516
|
| 650 |
+
UPI0012B504C3
|
| 651 |
+
UPI000D503327
|
| 652 |
+
UPI00052E48F9
|
| 653 |
+
UPI000E6E5BF6
|
| 654 |
+
UPI000E6E5C53
|
| 655 |
+
UPI0005448306
|
| 656 |
+
UPI0015D65FF2
|
| 657 |
+
UPI000F7D075E
|
| 658 |
+
UPI000BACEC1D
|
| 659 |
+
A0A5C2GH33
|
| 660 |
+
UPI0018A7E2E9
|
| 661 |
+
UPI0018E1D9DC
|
| 662 |
+
UPI000A32B212
|
| 663 |
+
UPI00017EE952
|
| 664 |
+
UPI000A1C7A0E
|
| 665 |
+
UPI000CDFF54B
|
| 666 |
+
UPI0001BE6396
|
| 667 |
+
UPI00038A5F00
|
| 668 |
+
UPI0000111872
|
| 669 |
+
UPI00017BDADC
|
| 670 |
+
UPI0003F479CF
|
| 671 |
+
UPI000A1C7A5C
|
| 672 |
+
UPI0013893A64
|
| 673 |
+
UPI0001EA5A37
|
| 674 |
+
UPI0009BC73C4
|
| 675 |
+
UPI000D097F69
|
| 676 |
+
A0A5N3W491
|
| 677 |
+
UPI001AEC72A5
|
| 678 |
+
UPI0009E0E2FE
|
| 679 |
+
D2CTG3
|
| 680 |
+
UPI000268A622
|
| 681 |
+
UPI0003AFF9F2
|
| 682 |
+
UPI000B4E83C1
|
| 683 |
+
UPI0012494AE6
|
| 684 |
+
UPI00104284C5
|
| 685 |
+
UPI000CE6821A
|
| 686 |
+
UPI001493DE8E
|
| 687 |
+
UPI0015D65F84
|
| 688 |
+
UPI0008521C77
|
| 689 |
+
UPI0001ED047D
|
| 690 |
+
UPI0008DB4210
|
| 691 |
+
UPI0001E0709F
|
| 692 |
+
UPI00142602D8
|
| 693 |
+
UPI000652643C
|
| 694 |
+
UPI000789C1AA
|
| 695 |
+
UPI00071AFAB7
|
| 696 |
+
UPI0010FFCD78
|
| 697 |
+
UPI0002521385
|
| 698 |
+
UPI0007D70F79
|
| 699 |
+
UPI0007D70FDA
|
| 700 |
+
UPI0012F4776F
|
| 701 |
+
UPI0007D70FA8
|
| 702 |
+
UPI000268A605
|
| 703 |
+
UPI0012F477B9
|
| 704 |
+
UPI0007E2A98B
|
| 705 |
+
UPI00142602C6
|
| 706 |
+
UPI00051FF433
|
| 707 |
+
UPI000493B590
|
| 708 |
+
UPI0003E5C6CA
|
| 709 |
+
UPI000F41F37B
|
| 710 |
+
UPI0003E5C6E0
|
| 711 |
+
UPI00144A4C68
|
| 712 |
+
UPI000622D02B
|
| 713 |
+
UPI0018FE032E
|
| 714 |
+
UPI0018A7E250
|
| 715 |
+
UPI0001E070E2
|
| 716 |
+
UPI0018D5A8B2
|
| 717 |
+
UPI00174F7C9A
|
| 718 |
+
UPI00021B6593
|
| 719 |
+
UPI001A9A2C15
|
| 720 |
+
UPI0009388698
|
| 721 |
+
UPI0001A48A3B
|
| 722 |
+
UPI00026E0F9B
|
| 723 |
+
UPI0003D79339
|
| 724 |
+
UPI000776AD53
|
| 725 |
+
UPI000C173B19
|
| 726 |
+
UPI00080A7F9F
|
| 727 |
+
A0A220QSF7
|
| 728 |
+
UPI0000111ADE
|
| 729 |
+
UPI000B5ABD96
|
| 730 |
+
UPI0001BE637B
|
| 731 |
+
Q9X2I8
|
| 732 |
+
UPI000BBD49F0
|
| 733 |
+
UPI000C6F444C
|
| 734 |
+
UPI000B8BB345
|
| 735 |
+
UPI00110D2517
|
| 736 |
+
UPI00020CB75B
|
| 737 |
+
UPI000C122A57
|
| 738 |
+
UPI0010FFCD33
|
| 739 |
+
UPI0010A1F896
|
| 740 |
+
UPI0011DC71E8
|
| 741 |
+
UPI0011EA5FE3
|
| 742 |
+
UPI00042C2E51
|
| 743 |
+
UPI000BBD49A5
|
| 744 |
+
UPI000F7351AD
|
| 745 |
+
UPI0003F47997
|
| 746 |
+
UPI0001E5ECAE
|
| 747 |
+
UPI0001ED047F
|
| 748 |
+
UPI001AD9519D
|
| 749 |
+
UPI000B4235EF
|
| 750 |
+
UPI0010052771
|
| 751 |
+
UPI001298EA9B
|
| 752 |
+
UPI000181D306
|
| 753 |
+
UPI000BBD49D3
|
| 754 |
+
UPI0015882A90
|
| 755 |
+
UPI0006526429
|
| 756 |
+
UPI0006AB76D3
|
| 757 |
+
UPI0007414E9C
|
| 758 |
+
UPI000745F236
|
| 759 |
+
UPI0002501C96
|
| 760 |
+
UPI001262AC5D
|
| 761 |
+
UPI0002521383
|
| 762 |
+
UPI000789C1EF
|
| 763 |
+
UPI001111866C
|
| 764 |
+
UPI000256004B
|
| 765 |
+
UPI00028BC862
|
| 766 |
+
UPI00025C06DC
|
| 767 |
+
UPI0004E0AF2D
|
| 768 |
+
UPI0013747037
|
| 769 |
+
UPI000DF0CE78
|
| 770 |
+
UPI0002AA2D18
|
| 771 |
+
UPI00054CD39B
|
| 772 |
+
UPI0006149A6E
|
| 773 |
+
UPI000E3F8ACD
|
| 774 |
+
UPI0014617174
|
| 775 |
+
UPI00142602EC
|
| 776 |
+
UPI0015F35254
|
| 777 |
+
UPI00084A2F6E
|
| 778 |
+
UPI00097159B8
|
| 779 |
+
UPI000035E440
|
| 780 |
+
UPI0009E0E2ED
|
| 781 |
+
UPI00018F447B
|
| 782 |
+
UPI0002074EBB
|
| 783 |
+
UPI000789C1DF
|
| 784 |
+
UPI000B496691
|
| 785 |
+
UPI0008A09DC7
|
| 786 |
+
UPI000737D842
|
| 787 |
+
UPI00111186BA
|
| 788 |
+
UPI000DC663A6
|
| 789 |
+
UPI0007414E0D
|
| 790 |
+
UPI0006AB76F2
|
| 791 |
+
UPI0006B2AAA7
|
| 792 |
+
UPI00024A088A
|
| 793 |
+
UPI000745F1EA
|
| 794 |
+
UPI00024ED262
|
| 795 |
+
UPI00025EFAFA
|
| 796 |
+
UPI00025EFAFB
|
| 797 |
+
UPI0004EF7694
|
| 798 |
+
UPI000D50332D
|
| 799 |
+
UPI00142F3C7C
|
| 800 |
+
UPI00054482BE
|
| 801 |
+
UPI000E32D355
|
| 802 |
+
UPI0013AE873E
|
| 803 |
+
UPI00038A5F66
|
| 804 |
+
UPI0005B2EBD1
|
| 805 |
+
UPI000F044F53
|
| 806 |
+
UPI00052238E5
|
| 807 |
+
UPI0015F3522E
|
| 808 |
+
UPI0002B8CE84
|
| 809 |
+
UPI0014260303
|
| 810 |
+
UPI0015F35223
|
| 811 |
+
UPI001ABD48E5
|
| 812 |
+
UPI0001F2FE46
|
| 813 |
+
UPI0009468CF7
|
| 814 |
+
UPI00001106D9
|
| 815 |
+
A0A7U9B809
|
| 816 |
+
UPI0002662B0F
|
| 817 |
+
UPI00051FF3F6
|
| 818 |
+
UPI00143F05A7
|
| 819 |
+
UPI000E5A0F5F
|
| 820 |
+
UPI00038A5F68
|
| 821 |
+
UPI0006149A75
|
| 822 |
+
UPI00051FF3E3
|
| 823 |
+
UPI000F45EF14
|
| 824 |
+
UPI000F7351E4
|
| 825 |
+
UPI000F45EF17
|
| 826 |
+
UPI001606F475
|
| 827 |
+
UPI0019203BF1
|
| 828 |
+
UPI0004437F29
|
| 829 |
+
UPI00194ADAC6
|
| 830 |
+
UPI000CFA7FC4
|
| 831 |
+
UPI0001E0709D
|
| 832 |
+
UPI000A1C7A41
|
| 833 |
+
UPI0001D63C41
|
| 834 |
+
UPI0006AD09BC
|
| 835 |
+
UPI0005D2D2BF
|
| 836 |
+
UPI0004E0AF74
|
| 837 |
+
UPI000A276D21
|
| 838 |
+
UPI00143F060A
|
| 839 |
+
UPI0013AE874C
|
| 840 |
+
UPI000579AB20
|
| 841 |
+
UPI0003E5C6DE
|
| 842 |
+
UPI0003C63F44
|
| 843 |
+
UPI000629DD5B
|
| 844 |
+
UPI00143F05EC
|
| 845 |
+
UPI0001C2FA1D
|
| 846 |
+
UPI000CFA7FD3
|
| 847 |
+
UPI001AD9519E
|
| 848 |
+
UPI0001E3065C
|
| 849 |
+
UPI0001E5ECAD
|
| 850 |
+
UPI000A1C7A20
|
| 851 |
+
UPI0019D71E55
|
| 852 |
+
UPI0001BE6560
|
| 853 |
+
UPI000A1C7A4B
|
| 854 |
+
UPI00058401D1
|
| 855 |
+
UPI000CCBD6E9
|
| 856 |
+
UPI00194ADA1B
|
| 857 |
+
UPI00196A1E01
|
| 858 |
+
UPI0018C8D4B3
|
| 859 |
+
UPI001AD95187
|
| 860 |
+
UPI0001B325BF
|
| 861 |
+
UPI000718ABA0
|
| 862 |
+
UPI000C2F8173
|
| 863 |
+
UPI0008A09D9F
|
| 864 |
+
UPI000B5DBA56
|
| 865 |
+
O21998
|
| 866 |
+
Q1PJ51
|
| 867 |
+
A0A7G3QKL7
|
| 868 |
+
D4PBN1
|
| 869 |
+
B6IDB9
|
| 870 |
+
A0A8A1QQ63
|
| 871 |
+
D3YU56
|
| 872 |
+
O32306
|
| 873 |
+
Q4FAI7
|
| 874 |
+
A0A6P7QK90
|
| 875 |
+
E3TBL3
|
| 876 |
+
D2JM82
|
| 877 |
+
B6ID68
|
| 878 |
+
P13249
|
| 879 |
+
B6IDC8
|
| 880 |
+
UPI00144A4C78
|
| 881 |
+
UPI000E32D35D
|
| 882 |
+
UPI001606F499
|
| 883 |
+
UPI0001ED049B
|
| 884 |
+
UPI0009468CAF
|
| 885 |
+
UPI0009948E07
|
| 886 |
+
UPI00017545C0
|
| 887 |
+
UPI00029722E5
|
| 888 |
+
UPI000011F76E
|
| 889 |
+
UPI0014612D59
|
| 890 |
+
UPI000EAB130B
|
| 891 |
+
UPI000F735174
|
| 892 |
+
UPI00143F05E3
|
| 893 |
+
UPI0005223907
|
| 894 |
+
UPI0015F35236
|
| 895 |
+
UPI000E6E5C5E
|
| 896 |
+
UPI000BA9F95E
|
| 897 |
+
UPI001AA00D4F
|
| 898 |
+
UPI001AA00D1D
|
| 899 |
+
UPI0009715993
|
| 900 |
+
UPI00084A2F05
|
| 901 |
+
UPI0001753C1D
|
| 902 |
+
UPI00098DD6CC
|
| 903 |
+
UPI0006891DC8
|
| 904 |
+
UPI00061A8BF7
|
| 905 |
+
UPI000B8BB31D
|
| 906 |
+
UPI001643FB20
|
| 907 |
+
UPI001606F4C0
|
| 908 |
+
UPI0001E30658
|
| 909 |
+
UPI0018D5A8A0
|
| 910 |
+
UPI0018A7E28D
|
| 911 |
+
UPI0001EA5A05
|
| 912 |
+
UPI0006B2AAA2
|
| 913 |
+
UPI000E32D363
|
| 914 |
+
UPI0011E8A1FC
|
| 915 |
+
UPI0018FE02FE
|
| 916 |
+
UPI0001D107C6
|
| 917 |
+
UPI00026BAC67
|
| 918 |
+
UPI0006891DEF
|
| 919 |
+
UPI0001D63C42
|
| 920 |
+
UPI00077DEFC1
|
| 921 |
+
UPI0003994ECA
|
| 922 |
+
UPI000F517958
|
| 923 |
+
UPI0018FE032A
|
| 924 |
+
UPI000E5A0F44
|
| 925 |
+
UPI0003E125CB
|
| 926 |
+
UPI000BBB67C9
|
| 927 |
+
UPI0003ED1A77
|
| 928 |
+
UPI000F45EF82
|
| 929 |
+
UPI000B3D7B51
|
| 930 |
+
A0A1W2P7C7
|
| 931 |
+
B6ID16
|
| 932 |
+
Q99MV7
|
| 933 |
+
Q9WU40-2
|
| 934 |
+
Q5T6F2
|
| 935 |
+
P17535
|
| 936 |
+
Q8R554
|
| 937 |
+
Q9C0J8
|
| 938 |
+
A7MBM2
|
| 939 |
+
Q9H330
|
| 940 |
+
Q8TF61
|
| 941 |
+
P04386
|
| 942 |
+
Q96QS3
|
| 943 |
+
P23116
|
| 944 |
+
Q3BBV0
|
| 945 |
+
A6NKL6
|
| 946 |
+
Q92750
|
| 947 |
+
A0A6P7PWU2
|
| 948 |
+
P04483
|
| 949 |
+
A0A5E4CA51
|
| 950 |
+
A0A6G8MVD7
|
| 951 |
+
A0A6G8MV94
|
| 952 |
+
Q8VHQ2
|
| 953 |
+
E1AFZ1
|
| 954 |
+
A0A5E4BH46
|
| 955 |
+
E9QM38
|
| 956 |
+
E3TBL2
|
| 957 |
+
A0A6P5P090
|
| 958 |
+
Q2WG74
|
| 959 |
+
B6ID61
|
| 960 |
+
B6ECZ5
|
| 961 |
+
C3TTS7
|
| 962 |
+
B6IDB8
|
| 963 |
+
Q4W275
|
| 964 |
+
A0A087WPL5
|
| 965 |
+
E9QP19
|
| 966 |
+
A0A7T1WWW5
|
| 967 |
+
E9QLQ3
|
| 968 |
+
E9QAP7
|
| 969 |
+
A0A2J8V1A8
|
| 970 |
+
A0A2J8RY77
|
| 971 |
+
Q9UJ96
|
| 972 |
+
H2R2W6
|
| 973 |
+
B6ID48
|
| 974 |
+
B6ID47
|
| 975 |
+
B6ID46
|
| 976 |
+
F7C8M9
|
| 977 |
+
P00485
|
| 978 |
+
A0A2J8RCY9
|
| 979 |
+
B6ID37
|
| 980 |
+
P01112
|
| 981 |
+
B6IDB0
|
| 982 |
+
B6ID28
|
| 983 |
+
Q5DTU2
|
| 984 |
+
B6ID86
|
| 985 |
+
B6ID67
|
| 986 |
+
B6ID56
|
| 987 |
+
J3KTH2
|
| 988 |
+
Q7RTR2
|
| 989 |
+
Q79DX9
|
| 990 |
+
Q79DR3
|
| 991 |
+
Q96NY7-2
|
| 992 |
+
Q1PSW8
|
| 993 |
+
A0A2K5UXE1
|
| 994 |
+
A0A2U4B2H6
|
| 995 |
+
A3DDL8
|
| 996 |
+
A3DE06
|
| 997 |
+
Q6V0L0
|
| 998 |
+
Q99PP7
|
| 999 |
+
Q8NHH0
|
| 1000 |
+
Q01167
|
| 1001 |
+
Q8NHH1
|
| 1002 |
+
Q5GH67
|
| 1003 |
+
G5E829
|
| 1004 |
+
O95382
|
| 1005 |
+
Q57146
|
| 1006 |
+
Q6UXK2
|
| 1007 |
+
Q45585
|
| 1008 |
+
Q12948
|
| 1009 |
+
Q9UGP5
|
| 1010 |
+
P85037
|
| 1011 |
+
P11274
|
| 1012 |
+
Q9WU40
|
| 1013 |
+
Q6R891
|
| 1014 |
+
D3Z7P3
|
| 1015 |
+
O94819
|
| 1016 |
+
P08575
|
| 1017 |
+
Q8K449
|
| 1018 |
+
Q9JMC2
|
| 1019 |
+
A6NDN3
|
| 1020 |
+
Q9NXH8
|
| 1021 |
+
A0A6M3U8F9
|
| 1022 |
+
Q61409
|
| 1023 |
+
O60548
|
| 1024 |
+
P97347
|
| 1025 |
+
Q9JIX8
|
| 1026 |
+
Q9BTV7
|
| 1027 |
+
Q7TQ40
|
weight/esm-main/examples/lm-design/paper-data/data.csv
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
,Design ID,Experiment Name,Design Model,Target ID,Sequence,Total Yield,yield_per_Leq,Soluble,Success,Success+Monodisperse,AlphaFold RMSD,AlphaFold pLDDT,min Jackhmmer E-value,max Jackhmmer Seq-id (significant hits only),max Jackhmmer TM-score (top-10 hits only)
|
| 2 |
+
0,F000,Fixed_Rd1_48,LM,1QYS,MVKVTLTYTKDGKPVTETVEVSSLEELEPKVKEIVEKLKKEGATSASITVTAESEDEAKRAENVAKAVLDAAGVTGYSTSVSGKTVTITATF,0.4957277507294888,123.93193768237221,True,True,True,1.8563631772994995,89.5325332981491,0.95,0.2717391304347826,0.5336
|
| 3 |
+
1,F001,Fixed_Rd2_Distant_24,LM,6MRS,MSEAARAVAEEIEKRVKAAGGSATVKETSSGLEVTVTGVPEPVLKIVENIAKDVGSKYGKTVSVSREGDTLKVTITW,0.3176838320219042,79.42095800547605,True,True,True,1.2924525737762451,87.73543773267119,1.8,,0.79568
|
| 4 |
+
2,F002,Fixed_Rd2_Distant_24,LM,6MRS,MDPRVRAALEEIEKAVKEAGGSVERKVEGNKVTLTVTGLSPEVASKISSKASEVGSKYGVPVSAELKDGKLVITFTV,0.4228188625945215,105.70471564863038,True,True,False,1.1545886993408203,90.09167939406858,2.7,,0.79038
|
| 5 |
+
3,F003,Fixed_Rd2_Distant_24,LM,6MRS,MSKAAEEIVSRLEKELKDAGVTFTKSLSGDTLTITAENVPPSAVERVKSVIESVASEYGKKPEVKVEGNKVTATVKL,0.20452150131449953,51.130375328624886,True,True,True,1.9942351579666135,89.64661571494226,1.6,,0.76915
|
| 6 |
+
4,F004,Fixed_Rd2_Distant_24,LM,6MRS,MSEAVNKIVERLKEEASKLGKTVSVREEGGKVVVEITGLTPSDAPKVKELVEKVAGEYGVKAEVSLEGSTLRVTITA,0.4075973400219396,101.8993350054849,True,True,False,1.2864220142364502,88.70031155357758,0.69,0.2597402597402597,0.48702
|
| 7 |
+
5,F005,Fixed_Rd2_Distant_24,LM,6MRS,MSDAARAVASEISSRVSSLGGSATVREEGGKLVVTITGLPPSVLEEVKKAAEEAGRKAGKPVKVTLSGSTLTVEVSW,0.22237320363197127,55.59330090799282,True,True,True,1.1808888912200928,89.63327697501046,0.78,0.23376623376623376,0.8134
|
| 8 |
+
6,F006,Fixed_Rd2_Distant_24,LM,6MRS,MDPRVSAAVNKVLEELRKLGKTPSISESGGSVTVTITGLSSDEASKVKEIAEKAGREAGVPVEVSLSGSTLTVRFRV,0.037857109780889554,9.464277445222388,False,False,False,1.01856791973114,90.08561428560375,1.8,,0.7999
|
| 9 |
+
7,F007,Fixed_Rd2_Distant_24,LM,6MRS,MPPEVEKAVEEIKKLVSEAGGSAEVSVSGKTVTVKVTGLSSDVASKIEAKAREVGEKYGVPVNVELKDGTLTITFRV,0.24805508578155241,62.0137714453881,True,True,False,1.0749236345291138,90.28870944917344,0.87,0.24675324675324675,0.61168
|
| 10 |
+
8,F008,Fixed_Rd2_compare_LM_24,LM,6NUK,MPTYTLTGTITVPSEEAAKKLVEDLKKAGEEISKETGAKVSVSAELKDGKVTVTATVENAPPEVIEKIKERVKPIVEKYGGSLEVKG,0.28329050639414466,70.82262659853616,True,True,True,2.563059091567993,81.73945005931526,0.39,0.3103448275862069,0.56181
|
| 11 |
+
9,F009,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,5L33,DEKKEVAYRILRALELGSPEAMKEAITDDTHMHVGGMHFQGDEVVKFVEWIAENGMRWRLEHMELIGDHYVAWVHVERGGQEQNVIISINVVDGKVHHIHIYGR,0.277442302966893,69.36057574172325,True,False,False,0.4343377649784088,95.76276113248424,1.0,,0.85007
|
| 12 |
+
10,F010,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,5L33,DEEHQVALRFIEALQTGDPELAAAIVPEDTRMYVGGKRYHGPGIVEFVKELAEAEIKVQLLEYKWVGDKWHFLIRQTHDGQEKRMVVSIRVENGKLGRIYIFGP,0.07283634440694234,18.209086101735586,True,True,False,0.4950173199176788,96.55776679074548,0.14,0.22115384615384615,0.83396
|
| 13 |
+
11,F011,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,5L33,NERYELAHRFIEALELGSPELLARIVSPSTTLWVGGLHFRGEGIYLFVLFIAIFGIKVKYQEHEQVGDMYVYNVEVSHGGQIWDVHIWIHVKDGELSHVYIFGP,0.03633134604045652,9.08283651011413,False,False,False,0.4901691079139709,93.3927575683868,0.085,0.20192307692307693,0.81263
|
| 14 |
+
12,F012,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,5L33,SERLERALAFVEALQTGSVEEARNVISDDTRMWNNGRHYHGEGIVDFVKGMAQGGIKTELIEHELVGDHYVFHIKVSHGGREWPVHMQIRVVDGELRDIWIWGR,0.013853445263341107,3.4633613158352765,False,False,False,0.5045303702354431,96.67489866328364,1.5,,0.8514
|
| 15 |
+
13,F013,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,5L33,NERFMRAWLFVQALQYGDPEMFRNVITPSTRMVVDGHHYEGEGIVDFVRHIAETGMRVQPLSHHLEGDQWVFHMQVTHNGHEKLVTIKIKVVGGEIVHVTISGR,0.026416916364346666,6.604229091086666,False,False,False,0.5356542468070984,93.92580078353362,2.1,,0.84179
|
| 16 |
+
14,F014,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6D0T,AIDLAEYLPGHWEMLLVSETGKHFTGTMHMKPVDPTVIQMDFWGHDNDGTPFWGYGYFMDTGEDEVHFGMVMSNGYQFEGAYEVVDDDTIVIVADSNKGERYVGVLRRLDP,0.03608557123999195,9.021392809997987,False,False,False,1.2565512657165527,92.54382781055942,1.6,,0.49717
|
| 17 |
+
15,F015,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6D0T,RPDLKDHVPGHYTVILVSQGGHYITGTVTMETVSDKKVLIEHTGTTGDGTPVTGWGYIDDRSGSPYHFALFLSNGWYFHGNIRFVSDNHILIQMTSSHGLNWVGVLYKTPA,0.013190157779185595,3.297539444796399,False,False,False,0.7335907220840454,93.8959715867114,0.01,0.17117117117117117,0.89692
|
| 18 |
+
16,F016,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6D0T,DWDLTETLPGYYHFVFVSNDGFAIYGTVHMEVVNPDVVRMTYVGWDSNGVPGSGWGYFHRDPDDKVHFYFEFSNGIKMDGWVKQLDDDTIAITALTSDGRFMHGYLYKMDP,0.008445903520939553,2.111475880234888,False,False,False,0.8426432013511658,93.4402470645872,0.25,0.1981981981981982,0.89593
|
| 19 |
+
17,F017,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6D0T,APDLDEHFAGKWTWVFVSQDGVSYTGTSTMRAVDGNVIQIDYTGHDSDGTPVTGGGYIHNNHPGRLHFVMAFSNGLVLEGWLTVVGDDTILVHMTSNTGRTYVGVFTRTDA,0.015506616586872708,3.876654146718177,False,False,False,0.9828828573226928,91.99622006352418,0.094,0.21621621621621623,0.90737
|
| 20 |
+
18,F018,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6D0T,RPDLSTHLPGHYEWHFVSNDGYAFTGTVTMEVVDPNVIWMHYTGWDNNGTPLSGWGYFRDHHPEYYEFGMWMSNGYKFHGWVEFVDDNRIEVVARSNKDRIYSAVFTKHDP,0.004148435344812339,1.0371088362030847,False,False,False,0.6710172891616821,93.87439772382255,0.43,0.16216216216216217,0.44506
|
| 21 |
+
19,F019,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6MRS,NSPAVMKVIEAVIQAVEGWPSTIHIIRWPHYHLIHIPGLTREQQAELLAVVAWASEAYGVPTWVHLHGNTVSILIFD,0.0067303889674713464,1.6825972418678365,False,False,False,0.4508427381515503,96.6509884001364,4.6,,0.58873
|
| 22 |
+
20,F020,Fixed_Rd2_Distant_24,LM,6MRS,MSEKVLKALEEAENAVKEAGGSLSRSVSGDKVTLTITGLPSDVASKIEGKLREVGEKYGVPVEVSISGSTVTATFRV,0.20536458406256974,51.34114601564244,True,True,True,1.2931123971939087,90.93261409285294,0.58,0.3246753246753247,0.74641
|
| 23 |
+
21,F021,Fixed_Rd2_Distant_24,LM,6D0T,MAKLSELLVGEYEITGKNAAGEPVTGTLKIEAVSDTEVKVSGTIKTKDGKEVPQSGSATVAADGTVTAERKLEDGRVVKSTSKPEGDKTLTTTSVLDDGSEIVEKGVRKAS,0.24740261117966605,61.85065279491651,True,False,False,2.7274112701416016,82.86246046516828,0.61,0.22522522522522523,0.78995
|
| 24 |
+
22,F022,Fixed_Rd2_Distant_24,LM,6D0T,MSSVLDKVAGEYTVEGKDPQGNPITGSLKIEKKDEKTASISGKLKTPEGKEVPVSGEATVTSENKVEVKVKAEDGSEITLTGTLESDDTIKLSGTTKDGKPVELTAKRPKS,0.34486560568121266,86.21640142030317,True,True,False,2.518651247024536,86.09766403439173,0.24,0.35135135135135137,0.90266
|
| 25 |
+
23,F023,Fixed_Rd2_Distant_24,LM,6CZJ,MTFVERLAGKYEGEAKNAAGEPVKVVLEITKEGDNKASVKLTITTKDGKTEELSGSATLESETKATVSLKTSDGQTVTLTVEKPSDSEIKVTGTAPDGSKIEGTLKKKS,0.2537102178201451,63.42755445503627,True,True,True,1.669878602027893,86.19851952337629,0.94,0.2018348623853211,0.38273
|
| 26 |
+
24,F024,Fixed_Rd2_Motif_11,LM,6W3W,AGDEAAVKDVVTKLIEAENKRDAAGLKALVAPGAKIVEEGKTITGVDAFVKELEKEPKPTYTLGEVKVSGDTATVPVTETEDGKSEKGTVTLKKDGGKWVISEIKEE,0.28501657145748693,71.25414286437173,True,False,False,2.4170925617218018,89.54169269821487,2.3e-06,0.37383177570093457,0.7676
|
| 27 |
+
25,F025,Fixed_Rd2_Motif_11,LM,6CZJ,MTLEEALAGTYKIEGKDAAGNPISGTSTITKEGEGKYSVVSEIKTPDGKVIKSSGSATVEKDGTVKAELTAENGQKLTVTLKVNADGSRDVTVTTSDGKTFTGKETRVK,0.24468233970059516,61.17058492514879,True,True,False,1.6262468099594116,87.99247793965945,0.002,0.28440366972477066,0.84723
|
| 28 |
+
26,F026,Fixed_Rd2_Motif_11,LM,6CZJ,MTLEEKLVGEYSVSGKTPEGAEYTGKAKIEKAGENKYKVTWTTKNAEGKEVTSSGEATLKDDKTVELTITNPDGSKSTGTAVVKDADTREITFKGSDGQEIKETWKRVK,0.3977466139210023,99.43665348025057,True,True,False,1.337502360343933,88.70211181997347,0.0016,0.25688073394495414,0.84406
|
| 29 |
+
27,F027,Fixed_Rd2_Motif_11,LM,6CZJ,MTVLDKLAGKYTLSGTGPDGKPVSGELTITKEGENKVSVERKITSPEGKETTEKGTATLKSDTEADVTLTAEDGSTVSATVKLESDSEISFTGKTKDGQEVKVTAKKAS,0.40438764010168293,101.09691002542073,True,True,False,1.4750990867614746,88.14754882966898,0.9,0.21100917431192662,0.81634
|
| 30 |
+
28,F028,Fixed_Rd2_Motif_11,LM,6CZJ,MSLADKLVGEYTVSGKDAEGNEYSGTAKISKAGENKYTIEWTSTDKEGKPITLKGEATVKDDSTVEIKVTTEDGKEITGVQKVVSDTEREVTLTLPDGSVAVEKWTKKS,0.3733776066897868,93.34440167244671,True,True,True,1.5804373025894165,89.3412295564101,0.0025,0.23853211009174313,0.84063
|
| 31 |
+
29,F029,Fixed_Rd2_Motif_11,LM,6CZJ,MSVLDALAGKYTVKGKNPDGSEYTGTAEITKKDDTTAAVSLTVTGADGKPVTLSGEAKLEGENKISSTLKTSDGREVKVVEELVSATERKVTITPPGGSPIVETWTKAS,0.2803780751152961,70.09451877882402,True,True,False,1.886478304862976,85.56625102495296,0.00015,0.29357798165137616,0.79837
|
| 32 |
+
30,F030,Fixed_Rd2_Motif_11,LM,6D0T,MSSVLDKVAGEYEVSGKTPDGKPYKGTATITRVSDTEAKISWTSTPPEGKEIKLEGTAKESEPGKVTVTLKGEDGQEVTGTYTVNADGSLSATLTTKDGVKAEETWKKKAS,0.3798131326932491,94.95328317331229,True,True,False,2.5999600887298584,87.12063850277771,0.0004,0.3063063063063063,0.83537
|
| 33 |
+
31,F031,Fixed_Rd2_Distant_24,LM,1QYS,MFRVKVTGTKDGKPVTEEYTASKPEDVVKAVGEVIKKLKEKGVTSATVEIEAESEKDLENAKRIVEGLLRAAGAKNVSVSLSGRKLTITATL,0.3427875797108305,85.69689492770763,True,True,True,1.807220816612244,89.89167015658074,2.2,,0.53858
|
| 34 |
+
32,F032,Fixed_Rd2_Distant_24,LM,1QYS,MVKVVIKGTKDGKPVEKTLEASSLRDVGKLVRETVKELKDAGVSSVTVEVTAPSEKAAKIAENVAVNALKKAGAKDVTSKVEGNKVTITATL,0.9202675931650974,230.06689829127436,True,True,False,2.0360801219940186,92.28481875444518,5.9,,0.52215
|
| 35 |
+
33,F033,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6MRS,RSPQVMRVIEEIAQAVQGWPVELHMIWGPDRVIVIIPHLTWPQQMELLAVVARASWELGVPTKVYIGGSTVIIIVDD,0.006731173414179127,1.6827933535447817,False,False,False,0.4216504096984863,97.22116813959614,1.7,,0.94281
|
| 36 |
+
34,F034,Fixed_Rd2_Distant_24,LM,1QYS,MVRVKVTGTKDGKPVTIEGEASKPEDLKDVVAKAVEKLKEAGVTSATVEITAENEAQLSEVKKIVEEELRKAGAKNVSVSLEGKTLKVSGSF,0.33944966291032735,84.86241572758183,True,True,True,1.9140664339065552,89.98501265829073,0.9,0.22826086956521738,0.4941
|
| 37 |
+
35,F035,Fixed_Rd2_Distant_24,LM,1QYS,MVKVTLTYTKDGKTVTETIEESDPSKAGEVIKKVVEKLKELKPTSVTVEITASSEDEAKNAENIVKAVLTGLGAKDVSVSREGSTVKISATF,0.4037276032258898,100.93190080647246,True,True,False,2.09683895111084,90.84441433223994,2.0,,0.6046
|
| 38 |
+
36,F036,Fixed_Rd2_Distant_24,LM,1QYS,MVKLTITGTKDGKPVTKTVEVSSLEGLPSEIEKAVKELKDAGVTSVTAEVEAPDSATANVVARVLEATLRAAGAKDVQVSVSGSKVTVKASF,0.395968365097821,98.99209127445525,True,True,True,1.81305992603302,90.34497043231632,0.96,0.22826086956521738,0.48044
|
| 39 |
+
37,F037,Fixed_Rd2_Distant_24,LM,1QYS,MVKLTLTYTTPEGTKTETVEVSSLEEAKEKIKAKVEELKSKGVTSVTVVIEAPSEDAVRVAENVARLVLSAAGAKDVKVSREGNKVTITATF,0.052453902269729735,13.113475567432435,True,False,False,1.5934504270553589,90.3361436031438,2.4,,0.55363
|
| 40 |
+
38,F038,Fixed_Rd2_Distant_24,LM,1QYS,MVKYTLTATKDGKTVTKSGEASSLSEVPSEISKLLEELKKEGVTSATVVIEAPDEKTAENAKRVAEAVLKAAGAKDVSVKVEGNKVTITGTF,0.3282799016302957,82.06997540757392,True,True,True,1.724876880645752,90.52690170049704,0.78,0.2717391304347826,0.8638
|
| 41 |
+
39,F039,Fixed_Rd2_Distant_24,LM,6CZJ,MTVLEKLAGKYEISGKSPEGEPVTGTSEITKEGDNKAKIVSTIKTKDGKEVKLSGTATVESDTKVSAPLTLEDGRKVTAEYTFVDADTVKVVITLDDGSKIEGTEKRVK,0.36725811471625625,91.81452867906407,True,True,True,1.2565298080444336,88.28953625778355,0.84,0.22935779816513763,0.76003
|
| 42 |
+
40,F040,Fixed_Rd2_Distant_24,LM,6CZJ,MTVAEKLAGEYTVTGKNAAGQAVSGSSKITKVDATNYKVESTLTTPEGKPVTLSGTAKLESDTSAPIELKTEDGKTVKGTIKFEGADKRVVEVPGPDGGVLKETWTRKK,0.2979780984488259,74.49452461220648,True,True,True,1.509373664855957,86.41524649023813,0.81,0.1834862385321101,0.55789
|
| 43 |
+
41,F041,Fixed_Rd2_Distant_24,LM,6CZJ,MSLEEKIAGKYEVSAPGPPGVTVTGTLEIKKEGENKYSVKGELVTPEGQKVPVEGSATLESETKATVKLKTSDGREITLTIEFKSDDEAVVSGTTPDGKPISGTAKRVK,0.07818634822978235,19.54658705744559,True,True,False,1.5739067792892456,86.4768208724314,0.0099,0.3211009174311927,0.74571
|
| 44 |
+
42,F042,Fixed_Rd2_Distant_24,LM,6CZJ,MSDLDKIAGEYEVSGKSPEGEEIKGTLKVTKKDDKTVAVELELPGPDGKPVKASGTGTYDGGSKATVTVKDEEGNEVTLTITFKDADTAEIEGKDSEGQPIKLTAKRKK,0.43600475224699825,109.00118806174956,True,True,False,1.936157822608948,86.32997514021847,0.4,0.21100917431192662,0.82276
|
| 45 |
+
43,F043,Fixed_Rd2_Distant_24,LM,6CZJ,MSFVEKLAGKYKVEVPGPPGLTISGTWEIKAEGENKASITSTTKDPTGKEVKVSGVLEKKSDTEAVGKITLPDGSSADVTVKLEGDDKLSVTAKNAAGQELKGTATRVK,0.1588073964687471,39.70184911718677,True,True,True,2.2209596633911133,85.67952096772032,0.83,0.25688073394495414,0.74244
|
| 46 |
+
44,F044,Fixed_Rd2_Distant_24,LM,1QYS,MPTVKITGTKDGKPVTEEYTTSDPSEIKSIVEKKAKELKDSGVSSVTVEVTASSEGELREAQRVAENALRDAGLKNVSTRLEGNKLVISGSA,0.0994513461543207,24.862836538580176,True,True,False,2.0107052326202397,91.17856337372622,2.0,,0.82719
|
| 47 |
+
45,F045,Fixed_Rd2_Motif_11,LM,6D0T,MKSLSEKLAGEYTLEGEAPGGAKITGKTVIKAVGENKFEVTSSVTDPSGKPVESKGTAELKGDKEIVATLTASDGSTATVTETVVSADERKVTITTKDGQKIEVVEKRVKK,0.13598994945441087,33.997487363602716,True,True,False,3.051065683364868,88.52513366461596,0.36,0.24324324324324326,0.8139
|
| 48 |
+
46,F046,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6MRS,GSPKVWQVIWAILQATQGMGVTVHIIAHPHHYLIIIPGLTAEQQWILLHVVAQAAQLFGVPTWVHLEGGTVSILVFD,0.0055851279719760704,1.3962819929940176,False,False,False,0.3663604259490967,97.1495514547789,0.0045,0.2727272727272727,0.48785
|
| 49 |
+
47,F047,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6MRS,VNPKVWKMIYSVIQATKGMGHHIHIHWYPHFFIIHIPGLTDAQYERIRQAVAQSAEQNGVETWLYWSGNTVTIIIFE,0.003687218919149328,0.9218047297873321,False,False,False,0.4571395814418793,95.11999800945894,2.7,,0.55457
|
| 50 |
+
48,F048,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6NUK,SYEFRVSVSVTVSDVPGILAWLEGLSATLKELEAGTPARIRETVRIDGGKVDLTIVAENAEPAVVSEIIGLLLPFVERYGGSLIIEY,0.397509175990901,99.37729399772526,True,False,False,0.6839452385902405,93.80271215881568,5.0,,0.49771
|
| 51 |
+
49,F049,Fixed_Rd2_compare_LM_24,LM,5L33,MKPEEVVKKYIEALNKGDANAVKELLSSDVELTDVGQTLKGEKAAEFVAGLAKSGAKAEIKDLKVEGDKVTATVTITAGGKTTTSKDTFTVKDGKITKLEVSAS,0.39212291496487056,98.03072874121764,True,True,False,2.490266799926758,91.68561308298789,5.8e-08,0.40384615384615385,0.83014
|
| 52 |
+
50,F050,Fixed_Rd2_compare_LM_24,LM,5L33,MSAKEVVEKYVAALNSGKPEDLKPLLADDVTLTDVGQELKGSDAVKFVEGLSKAGAKIELGEVSESGDTVTAPVTITAGGKTTKATDTFTVKDGKITKLEIKAS,0.06935968584639321,17.3399214615983,True,True,False,2.330277919769287,89.5547881916068,3.8e-06,0.3942307692307692,0.84532
|
| 53 |
+
51,F051,Fixed_Rd2_compare_LM_24,LM,5L33,MSAKDVVNKYVEALNSGDPEKAASLYAENATVTDAGKTLTGKEIGEYLKGVAAGGAKLEVGEVKEEGDKVTAPVTITLPGQTIKAVDTFTVKDGKIVSSEFKAE,0.38402089919353116,96.00522479838278,True,True,False,1.8524878025054927,89.30061218432351,9.4e-10,0.40384615384615385,0.92595
|
| 54 |
+
52,F052,Fixed_Rd2_compare_LM_24,LM,5L33,MSAKEVVEAYVKALNEGKPEDLKKVLADDVELTDVGQTLKGSDAVKFAEGLSKAGAKLEIKDISESGDTVTATVTITAGGKTTEAKDTFTVKDGKITKLVIEPK,0.6398325282794153,159.95813206985383,True,True,False,2.2361340522766118,90.44281855923052,2.4e-05,0.38461538461538464,
|
| 55 |
+
53,F053,Fixed_Rd2_compare_LM_24,LM,5L33,MSAKEVVTKYIEALNKGDAKAAGELLSPEVELTDVGQTLKGSDAVKFVEGLAKSGAKAELVSLEEKDGKVVATIKVTAGGKTVTSTDTFTVKDGKITKLEISSK,0.35495440722572474,88.73860180643119,True,True,False,1.9567445516586304,91.38719989078253,4.7e-06,0.36538461538461536,0.85161
|
| 56 |
+
54,F054,Fixed_Rd2_compare_LM_24,LM,6D0T,MLKPEDLAGKTFEGKLTTKDGKEITGTVTIEKKGENEYSVKISGKDAEGKPVEVSGTAKLESETKAVVTLKDDKGNEVTATVERPEPGKIKVTVKASDGSEASGELTEKKS,0.3765251534916582,94.13128837291455,True,True,False,2.6787517070770264,84.5044350504976,0.064,0.32432432432432434,0.70066
|
| 57 |
+
55,F055,Fixed_Rd2_compare_LM_24,LM,6D0T,MASLLEKIAGEYEISGKTPEGEEVSGTVTIKAKDDKTAEIEGKLKTKDGKEVPVKGSATVESENKVKVTLTTEDGQKVELEGEVKDENTIVLKGKTSDGKPVEATLKKKSS,0.5348707582648717,133.71768956621793,True,True,False,2.441730260848999,87.08570465817874,0.17,0.1891891891891892,0.9073
|
| 58 |
+
56,F056,Fixed_Rd2_compare_LM_24,LM,6D0T,MASLAEKLVGEYTLSGQTPEGKPVSGTLTIKAAGDGKYEISGSAKDSEGKEVPVTGTAELKSDTEAVVTLTTKDGKTVTATVKVVDENKIEITGKDDAGNEVKLTGERKKS,0.1467424148581473,36.685603714536825,True,True,False,2.2758829593658447,85.9973229866832,0.01,0.3063063063063063,0.64224
|
| 59 |
+
57,F057,Fixed_Rd2_compare_LM_24,LM,6D0T,MASLLDSVAGKYTFKVTTPEGVEITGELTITKKDDTTADVTGTAKTPDGKEVPVKGTVKLESETKATVELTLEDGSKITATIEKVDENTLKVSGKDAEGNEISGEAKRVSS,0.3781642452545014,94.54106131362535,True,True,False,2.1835381984710693,87.53634282677913,0.34,0.2882882882882883,0.73003
|
| 60 |
+
58,F058,Fixed_Rd2_compare_LM_24,LM,6D0T,MASVLDKVAGEYTVKGKDPQGNEISGTVTIKKESDSKATVSAKLKTPEGKEIEAEGTAEDAGSGKYKVTLTTKDGQKITGEVEVTSENKAVFKGTTPDGKPVELTLEKKSS,0.2722799409457035,68.06998523642588,True,False,False,2.5545766353607178,86.77399146550304,0.043,0.25225225225225223,0.83274
|
| 61 |
+
59,F059,Fixed_Rd2_compare_LM_24,LM,6MRS,MSEAVNKALEEIEKRVKELGGSISKSVSGDTVTLTITGLSPSDAEKLKPIVEEVGKKYGVPVTVKVEGNSVTATFRV,0.4146882077613797,103.67205194034493,True,True,True,1.2394684553146362,90.22297520345086,0.5,0.36363636363636365,0.56873
|
| 62 |
+
60,F060,Fixed_Rd2_compare_LM_24,LM,6MRS,MDPRVQKVLDAVRAEVSKLGGSLSESVSGDTVTLTITGLSPSDVEKVKEAAKKAGEEAGVPVEVTVEGSTVKVTFRV,0.42795601432893304,106.98900358223327,True,True,True,1.0627379417419434,88.78233635603895,0.0086,0.33766233766233766,0.94273
|
| 63 |
+
61,F061,Fixed_Rd2_compare_LM_24,LM,6MRS,MDPRVKAVLDAVRAEVEKLGGSLSESVSGDKVTLTITGLTEENAKKLKEILEAKGKELGVPVEVKVEGTTVTATFTV,0.06768315402819766,16.920788507049416,True,True,False,1.1077884435653689,88.68789417835325,1.4,,0.65477
|
| 64 |
+
62,F062,Fixed_Rd2_compare_LM_24,LM,6MRS,MSEAVNKALEEIEKRVRELGGSLSRSVSGDKVTLTVTGLPPSAAEKLKDVVKEVGEKYGVPVEVSISGTTITATFRV,0.32934146863803615,82.33536715950903,True,True,True,1.1360328197479248,89.26651574507316,0.36,0.2597402597402597,0.78406
|
| 65 |
+
63,F063,Fixed_Rd2_compare_LM_24,LM,6MRS,MSEAVNKALEEIEKRVKELGGSLSRSVSGDTVTLTITGLTPEVAEKLKPIVEEVGKKYGVPVTVKVEGNSITATFRV,0.34711303125744997,86.77825781436249,True,True,True,1.2481086254119873,89.66695531546407,0.38,0.33766233766233766,0.5774
|
| 66 |
+
64,F064,Fixed_Rd2_compare_LM_24,LM,6NUK,MPTYTITVTGKPPSREAAEKLKAELEKRLEEIKKETGGSASLSISVSGDTVTATLTVSDPKPEVVNKVKEIVERVAGEYGLKVEVKG,0.38448925298207326,96.12231324551831,True,True,True,1.672995924949646,85.72934394680213,0.95,0.2413793103448276,0.38076
|
| 67 |
+
65,F065,Fixed_Rd2_compare_LM_24,LM,6NUK,MPTYTITGTIKVPSREAAEKAVSEISSKLEELKKEAGGEVSVSASLSGDTLTVTATVKDAPPEVVNKVKEILKPIVEKYGGSFTVSG,0.27670878440403274,69.17719610100818,True,True,True,1.4940338134765625,86.68075073787664,1.1,,0.45283
|
| 68 |
+
66,F066,Fixed_Rd2_compare_LM_24,LM,6NUK,MPTVTLKGTVKVPSREAAEKLVSELKSKAEEIAKETGGRVSVSASLSGDTLTITATVTDAPPEVVEKIKNAVKPIVEKYGGSLEVSG,0.3782618229632644,94.56545574081609,True,True,True,1.965891003608704,87.01459559497974,1.5,,0.69193
|
| 69 |
+
67,F067,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6NUK,SNEVTITLRFVTKEPAALDKRISGLIFGLRNLAAVTGPPIRVRVIKDGGRYEITVTVSDAPEYVVETILSWLRPLVEDEGGELTVNR,0.025522988182149688,6.380747045537422,False,False,False,0.6856326460838318,93.01342464445024,3.4,,0.72334
|
| 70 |
+
68,F068,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6NUK,SPTTTISVSFRVSAPDAVLRRLAWLKAELARIAAEGEYTIRLIIVYDGGRVRLTVTVSDPPGEVVEEIIGLLLPLVETSGGSLEIRP,0.014717887286131444,3.679471821532861,False,False,False,0.617400586605072,93.0615892190848,0.51,0.28735632183908044,0.59931
|
| 71 |
+
69,F069,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6NUK,SPKVTISGSFRSTEGEALDLQLERLKENLKEIEKGTGVRITTKIVKDGGRYGITITAVNSEPPVVAEILAMLRPLKETQGGSLRVSA,0.05544771673805695,13.861929184514237,True,False,False,0.7212327718734741,89.46671457519403,1.0,,0.717
|
| 72 |
+
70,F070,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6NUK,SPKTTIRISWKTSDLAATIGRLKNILKVLAELEASTDVKITGYVTINGGNVRFRVTVENPPESVVEYIIEILRPIVDSDGGSLEIEK,0.029373659480558863,7.343414870139716,False,False,False,0.6144019365310669,93.7152693065673,2.6,,0.72923
|
| 73 |
+
71,F071,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6NUK,SRSFIIGVHVRTSELEGMKRWIQNLQANLQYLEAHSGHKIHMHVTMEDNDLSIIIIIHDWDAELVHRVIDMLVPLVQHHGGLLVIIP,0.0028960967350633005,0.7240241837658251,False,False,False,0.468681275844574,96.12428272083872,3.8,,0.58877
|
| 74 |
+
72,F072,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6NUK,ENVVAIYIKYKTTHPMETLMRLQWLKGHLAWLAAHSDAPIYMYVHIKGNEVEILVIVRNWTPWLVMEIIWHLLPWVEEEGGELYIFL,0.0028035211157925325,0.7008802789481331,False,False,False,0.5145629644393921,95.31983353633112,3.0,,0.51107
|
| 75 |
+
73,F073,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6NUK,SPKFIIVMSFKTDRPEETKLRLAWLKGWLKWLEAKTPAKINMYVKINDGNVFIMVTLINPQPEMIERVIWMLLPWKEEYGGSLYIFP,0.0015853388134483997,0.3963347033620999,False,False,False,0.4841421246528625,95.45712654746409,3.2,,0.50826
|
| 76 |
+
74,F074,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6NUK,VPVVKISVAFWAEEPDAIRAWLRQFYNNLRALEANTDSTIHMYVVERRGWYAIWVEVYGYDEKLKEQIISMLLPIVERYGGSMQIED,0.006123649016661879,1.5309122541654696,False,False,False,0.4769626557826996,97.1155665975422,1.6,,0.50591
|
| 77 |
+
75,F075,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6NUK,SKQVQISLAIRTTEPAPMARRIANFRADLERLKANSPMEAHLTVITNGGNIAMTVVLVDWDEEIVQRVIGMLLPWVNHYGGYMEYRP,0.012608951268734995,3.1522378171837486,False,False,False,0.4407394826412201,95.49964385694892,0.041,0.21839080459770116,0.52575
|
| 78 |
+
76,F076,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,5L33,SEKLEVAYKFVRALEEGSPEELREVVPPKTTLVVGGKRYTGDGIGEYVENLARSGVEIKAESVREDGGPYVFDLRVSAGGNEFRVTLQITVKDGKLDTVVITGR,0.03433580815522718,8.583952038806796,False,False,False,0.6159579753875732,92.56226007687252,0.66,0.22115384615384615,0.50001
|
| 79 |
+
77,F077,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,5L33,GKPLEIAEAFVKVLQAGDAEELKNVVSAPARMTVGGRKYEGKEIVSFVERLAENKVTVQKLSARREGGKYVVGLRVTKDGSTGLVLVTISVKNGELSEVIIETS,0.0195163450991353,4.879086274783825,False,False,False,0.6291195750236511,89.29584350313368,1.3,,0.82768
|
| 80 |
+
78,F078,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,5L33,SPPEPKARAFVRALETGSPEEMKSILSPSTTLVVGGETYTGDQGVGLVERLKEARIKVKLLSWTKEGGAPIFRVRVSAGGSEIDYTISVEVTDGKVVNVVITGP,0.045617220559802565,11.404305139950642,False,False,False,1.501671552658081,93.55763168023591,0.13,0.18269230769230768,0.75454
|
| 81 |
+
79,F079,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,5L33,SPEGEVAGRFVEALERGDPELLENVVSEGTTLVDGGRQYTGSSIVEYVKEIRESGTKVTRLSSYREGGAYVVPLKWTKDGAEFRVKATITVTDGKLTNVVIERP,0.01781002567547135,4.452506418867837,False,False,False,0.7932162880897522,94.82330797515212,0.034,0.28846153846153844,0.79219
|
| 82 |
+
80,F080,Fixed_Rd2_compare_AlphaFold_20,AlphaFold,6MRS,SSPAKHKVIEAIAQAVQGMNVRLQIYEAPGYSIIYIPGLTFEQQLRLLAVVAQASHAFGVPTSVHLWGNTVMITVLD,0.01253226726272454,3.133066815681135,False,False,False,0.5121968984603882,95.97648053702224,1.4,,0.46478
|
| 83 |
+
81,F081,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,5L33,SPKEAVVEDFVKALETGDASSLAGVVSEPVTGTVDGRTFKGKEWVRFAEELERRKITVQKLSWYKDGGSYVVPLRVTAEGKTIEATLRVNVIGGKLKEVTISGK,0.018462287127385252,4.615571781846313,False,False,False,0.6195029616355896,91.81086284819986,0.5,0.2403846153846154,0.81175
|
| 84 |
+
82,F082,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6D0T,VPDLKKVLPGKYSYTLEAAGPPVITGDATFKPVDDGVVRVTSEGTKSGGEPISGEYTITRADGGALEYRETLSDGYEFRGTPTFVSEDLIEITAENSEGLTVTGSLTRLPD,0.0400671570350624,10.0167892587656,False,False,False,1.0885957479476929,89.13234307107493,0.0022,0.25225225225225223,0.88272
|
| 85 |
+
83,F083,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6D0T,SLDLTKELQGRVSFTLTAPGPPTITGVANIRPVDGEKVLIEHKAVNSAGEPISGIGYIEKDGGSKPKVSLVFSDGQVLTGYYTFVSEDEILIKGRYSDGDIVEGTWTRLPD,0.07543364116939073,18.858410292347685,True,False,False,1.1696112155914309,89.83817957215413,5.7,,0.49535
|
| 86 |
+
84,F084,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6D0T,SLDLASDLKGEYSFYLENAAGRSITGYITVRPVDPSVVEIRTKAVNSDGVPVYGTGYVTRDGGSKPKVTLVLGPPLIIEGSLRKESEGEFRVKATLSAGEEVTGRFTKIPD,0.030757727520846254,7.689431880211563,False,False,False,0.856549084186554,91.328890772023,2.6,,0.9077
|
| 87 |
+
85,F085,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6D0T,RPPLEEAYVGWYRVTLTSREGLTITGLVTVTPVSPEVLNIEVTAVNSAGTPLKGIGYISEGPPGPPVFSLVLDGGYEFRGDITVVGEDEIRVSATSSDGLDVTGTFTKLPE,0.029582706827141456,7.395676706785364,False,False,False,0.8497048616409302,92.4071064287583,0.29,0.25225225225225223,0.376
|
| 88 |
+
86,F086,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6MRS,LDPAVFRVIEAIIRAVEGIGSPVYIFLSPDSVLIEITGLTEPEIARLTKVVAESAERYGVPTSLRIDGGTVSILVQA,0.04638047838827145,11.595119597067864,False,False,False,0.4881626069545746,95.27932442103456,15.0,,0.51141
|
| 89 |
+
87,F087,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6MRS,SPPKVNALIEAILEATRDSGFRVTIRESDGGSTIRITGLTPPDIARLLRVVAEASAELGVPSTVLVAGRTLIVTVSW,0.038991302018317235,9.747825504579309,False,False,False,0.9341968297958374,93.33669438860584,2.4,,0.70646
|
| 90 |
+
88,F088,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6MRS,FSEKTLKVIAEIVEAVKGLGSPLYLFVTPDKVTGYIAGLTPPEIERILEVVARASAEYGIETTTTVDGGSLRVTITD,0.08912437224937385,22.281093062343462,True,False,False,0.5166324973106384,94.78244900295392,0.34,0.3116883116883117,0.57541
|
| 91 |
+
89,F089,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6MRS,RDEGTYELINAILKAVEGSPARPRIYEGGGSAVIVITGLTPPEIERLDRVVKEAGRKTGVPFSLRVKDGTLTVTVSW,0.0237274715701571,5.931867892539275,False,False,False,0.7228794693946838,92.31426257702373,2.2,,0.55537
|
| 92 |
+
90,F090,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6MRS,SNAAAEYLLNVIREAVKGLPSPITERRDGGSTLVEIENLTPEDIARLKAVVKTAGEETGVPYRVFVGGPTVTILISW,0.018787930568922893,4.696982642230723,False,False,False,0.9679087996482848,94.93896683420776,5.1,,0.94399
|
| 93 |
+
91,F091,Fixed_Rd2_compare_AF_ngram_20,AlphaFold+ngram,6D0T,SLNLKEDVVGKYRFLLVSEEGASIEGIATVKAVNPEVVEIEYTGRTSAGKPISGQGYISRDPPGQLKLTLLFDIGLVLEGTITKVSENEFRVNATSDGGSKITGYFVKVPD,0.19157571455457184,47.89392863864296,True,False,False,0.8795504570007324,94.01044187538032,5.9,,0.60468
|
| 94 |
+
92,F092,Fixed_Rd2_Motif_11,LM,6D0T,MASLADVLAGTYTVTGKSPAGQEYKGEVVIEKVSDTKLKVKRTITTPDGKPVTDEGEATVSAENVVTFTAKNKDGVEISGKYTLEGKDKIKAELTAADGSKASEEWTKKTS,0.4294321330847011,107.35803327117527,True,True,False,2.5218183994293213,87.65193392239404,0.18,0.27927927927927926,0.83247
|
| 95 |
+
93,F093,Fixed_Rd2_compare_LM_24,LM,6NUK,MPTVTLSAEIPVKDRETAEKIAKELEAKASEISSKTGGSVRVSTSVSGDTVKVTATITDAPPEVVKAVEEVLKPIVEKYGGKLTVSR,0.342255516940417,85.56387923510425,True,True,True,1.4239349365234375,86.81879193111219,0.33,0.27586206896551724,0.5938
|
| 96 |
+
94,F094,Fixed_Rd2_Motif_11,LM,1QYS,MVKVTYTITKDGKTFKGEREVSDPSEIKPVVEKLIEDAKNAGATSVSVEVTAESKEKAEEVKKAVEEALKSAGLTNVTVTLEGTTLKVSGSL,0.4990069812474674,124.75174531186686,True,True,True,2.132812976837158,89.96011297143937,0.077,0.2608695652173913,0.49928
|
| 97 |
+
95,F095,Fixed_Rd1_48,LM,6W3W,ADDKAAITDVVNKLIKAVNEKNAEALKELTAPGVEIVIEGQTVSKPEDLVKGLSEAKIDSATVGEVKVEGDKASVPATLKAGEETTPGTFELEKKDGKWLVTKVTLQ,0.4305501431758556,107.6375357939639,True,True,False,1.870003581047058,86.81428747758584,1e-05,0.308411214953271,0.85199
|
| 98 |
+
96,F096,Fixed_Rd1_48,LM,6W3W,AGDEAAVRAVVKSLVDAENAKDTTKLKALLSSSATVEEDGKTVSGRDAVLAEIAKEKVTGYTLGEVTVKGSEASVPVTITADGKPEPATFTLKKEGGKWVISKIVEK,0.34157332772079496,85.39333193019874,True,False,False,1.675412893295288,89.52935934106502,8e-05,0.3644859813084112,0.78333
|
| 99 |
+
97,F097,Fixed_Rd1_48,LM,6W3W,SPEEAAVKDVVNKFVELIKAGKYDEAKNLLSSSATIVVDGKTVTGRDAVLEKLKSEPPTSVEITKVSVSGDTATAEGTVTKDGEKKPVKVTLVKEGGSWKISKIEVQ,0.19536385993824054,48.84096498456014,True,True,False,1.7062160968780518,95.06005609985051,9.2e-05,0.34579439252336447,0.89644
|
| 100 |
+
98,F098,Fixed_Rd1_48,LM,6W3W,MSAENKIKEVLEKLKSAAGSPSESDLSSVVASNVTLTIDGKTVSGKDELVKALKEAKVTDVKVDSVEEKNGEYTATGTVTKDGQSKPVKFTVKEEGGKYVITSIEVK,0.23774272150668382,59.43568037667096,True,True,True,2.2278475761413574,86.84431080836934,0.06,0.2803738317757009,0.8568
|
| 101 |
+
99,F099,Fixed_Rd1_48,LM,6W3W,MSAEDKVKEVLTSLVNAAKEKKSSDVEKLLAENVTLEIEGKTVTGKDAVVKALSEAGVTDLKVDSVTEKDGEYTVSGTATKDGKPTPVSATVKDDGGSFKITKLTIK,0.23592128304088208,58.98032076022052,True,True,False,1.926544189453125,90.262273711329,0.15,0.19626168224299065,0.83195
|
| 102 |
+
100,F100,Fixed_Rd1_48,LM,6W3W,MSAEAKVREVLDKVVAAVNKKDEAGLKALLAPGAKIVEDGQTVTGVDAVVKELKDSGITKLEVGEVKAEGGKYTVPATLTDGGSTSKVTFTVEEKDGKPVITEIKSE,0.4043727545699978,101.09318864249946,True,True,True,1.897280216217041,87.15427816645891,0.00077,0.3177570093457944,0.75264
|
| 103 |
+
101,F101,Fixed_Rd1_48,LM,6W3W,AGDEAAVRAVVQSVIDAENAKDSAKLKPLLSSTVTLEEEGKKVTGLDAVLAEVAKEPVTKAEITDVKVSGDKASATVKETEDGKTETATFELVKEGGSWKISKIVEK,0.37507375671603954,93.76843917900989,True,False,False,2.0780415534973145,88.30627886885424,2.9e-06,0.3925233644859813,0.74489
|
| 104 |
+
102,F102,Fixed_Rd1_48,LM,6W3W,MSDEAAVRDVVNKYVAALEKKDSATLKTLTASNVTIVEEGKKVTGLDAFVKEAEKEKPSKITVGEVSVSGDKATVPVTEVEDGKTTKSTFKLVKDGGKWLISEITEQ,0.27505544121764547,68.76386030441137,True,False,False,1.9738805294036863,87.71122586251461,1.3e-06,0.38317757009345793,0.80058
|
| 105 |
+
103,F103,Fixed_Rd1_48,LM,6W3W,AGDEAAVKEVVNKLIEASKAKNAEGLKPLVAENVKIVSGGQTVTGRDALLKSLSDSGVTEYKVGEVKVEGDKATVPVTATKDGKTSTTTFTLEKKDGKWVITEIKSE,0.32059223185798696,80.14805796449674,True,True,False,1.9781895875930784,87.12275126881077,1.7e-06,0.3364485981308411,0.87358
|
| 106 |
+
104,F104,Fixed_Rd1_48,LM,6WVS,MEYIVEVDTPERVSEIVKTLKESGASNIALVSSKPDLVIEAAKAGIEKVILTPGSLEDARETVKKLKEVGVKDIGLITSEPSLVLEGLRAGVGEYVVELDSAENAAEVVKRLKDGGAKNVAFVTTKPELAVEAVKAGVEKVVLSPATLEEAKETVRKLREAGAKDVAIISTEPPLILEALKS,0.3807309294882399,95.18273237205997,True,False,False,1.6833454370498655,83.07913801333038,0.036,0.3076923076923077,0.58145
|
| 107 |
+
105,F105,Fixed_Rd1_48,LM,6WVS,MIISVRAENKDELTSTVKELKDKGIENILVVTKDLDSAVAASKGGSEYVVVEVSEPGKAGETVERLRKEGVKRVAVISSDPKVIEKALEEGTPIVSVKAKNKEELSSTIKKLKEKGVENVLAVTEDLESAITASEGGAEYIVVKVSKPEEAGKTVEKLREKDVKRIAVVSSDPEVIKKVLEK,0.06826551071176487,17.06637767794122,True,False,False,1.4189119338989258,85.69943641442232,0.044,0.18681318681318682,0.42681
|
| 108 |
+
106,F106,Fixed_Rd1_48,LM,6WVS,MITVIEGKDPATIKDSVTKLRAENVSEIAFTSTKPGLIVEAAKAGVSLAVLDVKDGTAVNESVKKLKEEGVEKVAVVSDKPEYIVDAARAGASLTVVEGRDSATVKESVTRLKAENVGEISFVSSKPELIIEAAEAGVPLAILEVKDETTVRESIKTLKEKGVKRVALLSDRPDLVLEALKS,0.04873738323755056,12.18434580938764,False,False,False,1.4892292022705078,86.73085885026522,0.0056,0.2087912087912088,0.41517
|
| 109 |
+
107,F107,Fixed_Rd1_48,LM,6WVS,MLPLIRVNSLDRAVEIVKEFRDKGVEYIGVVSSRPDVVEKALEAGTTLTIVEAENLEDAIKTVKELREKGAKYTGLVTSDPKVAEEGLKAGVTLVLIEADDLSTATETVERLRKEGAEYVGVISSKPEVVKKSLESGATLALVEAKDLDSAVKTVRELKDGGSKYVGIITSEPEILEKVLKL,0.08324956966583831,20.812392416459577,True,False,False,1.1505229473114014,89.9793096191984,0.099,0.2802197802197802,0.73144
|
| 110 |
+
108,F108,Fixed_Rd1_48,LM,6WVS,MLPLIVSKDPSSVTETLRELKNAGVEKFGVVTSEPRVLIEAVRAGLDLAIVVAEDENSLTKTLEELRKEGVGKYGVLTDRPEVLVKAVKSGVDVAFVTARDGGSVSETVKKLKDAGASKIGVISDKPEILVEAAKAGIDLAVVIAKDGESLSATLKRLKEEGVERYGIITNEPKVLLEALKG,0.11101001510221765,27.752503775554413,True,False,False,1.3169331550598145,88.29019890735734,0.0047,0.25824175824175827,0.76291
|
| 111 |
+
109,F109,Fixed_Rd1_48,LM,6WVS,MIPTLTSKDEGKILETVKRLKELGVPRVSVVTKNLDVAVRAGEVGAEIATVVADSEDELIENAKKLKDAGIERISFVTDKPETAVKAAEAGSEIVTITSSDPSKLVENVKALKEKGVSRVSAVTKDLDTAIKAGEAGADIATIVAESEEELLENVRKLREAGVERVSIVSDRPEVIEKVLSL,0.062017321415891655,15.504330353972914,True,False,False,1.0949746370315552,90.00291529801315,0.11,0.23626373626373626,0.75715
|
| 112 |
+
110,F110,Fixed_Rd1_48,LM,6WVS,MKPVIISSSLEEAVKSVRVLKEKGVKDIVGISDSPEVASRLAEEGTEYVLVSAKDEREAGETIEKLKKAGVENVTGLTDKPETAVELSKRDVEKVVITSSTLEDAVNSIKILKENKVKNIVAISGSPEIASELAKEGAEYVVVSAENEKEARETVKELRKAGVENITGLTDDPKTALKLLEG,0.0769709084937476,19.2427271234369,True,False,False,1.5414249897003174,80.88010187607468,0.045,0.25274725274725274,0.43877
|
| 113 |
+
111,F111,Fixed_Rd1_48,LM,6WVS,MKVLIEVSEPSKAVETIRKLKEAGVENIAVVTSKPDLAISSASEGAEYVVLEVKDGETATKTIKALRDSGLKRVGVLTDKPEVAKESAKAGAEYVILKVSDEDTAVKTVRELKDAGLSRVAVITNKPELAKKSAEGGAEFVVLDVKDEETAVNTVKELRAAGLERIGIVTDRPEIVEKLLKG,0.1740522297376026,43.51305743440065,True,True,False,1.2983237504959106,88.48472686298933,0.043,0.23076923076923078,0.85539
|
| 114 |
+
112,F112,Fixed_Rd1_48,LM,6WVS,MRVLLTVEDEETGKRILEKLKERGVDKVGLITSSPDVALKASDAGTDLVIVTAKDGGSAAETIRKLKEKGIKEVSVVSSEPKVVVEASKAGANLAIVTVKDEDSGKKTLEELKKEGVNKIGLVTSTPEVAVKASEAGADLAVVTAENEESATKTVRELREKGVKEISIVSSKPEIIEKVLSL,0.18326693405062214,45.81673351265553,True,False,False,1.3447251319885254,86.39240099374861,0.015,0.2692307692307692,0.86934
|
| 115 |
+
113,F113,Fixed_Rd1_48,LM,6WVS,MRLLIEASNEKEALDIVEKLKKEGIERISAVTDKPEVARKLADGGVGEVVVRAEDEGTAVNVIKELRDAGLTRVAAVTTKPDVAKRLAEAGASRVLVEAPDEETATKTVKDLKDSGLQRVSAITSKPEIAKNLAKAGVSEVIVKAENKEEAVKVVKELKSTGLEKISSVTSDPSVALEILKG,0.30177932691580905,75.44483172895227,True,False,False,1.3554872274398804,84.05546735970879,0.023,0.25824175824175827,0.71213
|
| 116 |
+
114,F114,Fixed_Rd1_48,LM,6W3W,PAGEAAVKDVVTKLVDAVNKKDSAALEPLLADSVKIVEDGKTTTGKAEVLKELKDGGAKDLKVSKVEKSGSKYTVTGTATIEGETSPITFVVEEKGGKPVISEITEK,0.2547350336464487,63.68375841161218,True,True,True,1.8296480178833008,88.3476609536108,0.0055,0.35514018691588783,0.8636
|
| 117 |
+
115,F115,Fixed_Rd1_48,LM,6W3W,MSDADAVKAVVEKVNAAAEKKDEAGLKELLAENVKITVAGKTIEGKDKVLEALKSAPPSKREVGEVSVKDGTATVPVTVTAGGSTTKLTYTLTKSGDKWLISEIKAQ,0.4039984347925847,100.99960869814618,True,True,False,2.014538526535034,88.72275449950267,0.0077,0.32710280373831774,0.81728
|
| 118 |
+
116,F116,Fixed_Rd1_48,LM,6WVS,MRVLVSAKDENSAVETVRQLKNAGIEKVGAVTSKPSVALRLASEGLDYVIVEARDVNEAAEVVKKLKESGVSKVGSISSDPSTAVSLAKAGLEYVVVDAPDLETATKTVKELKDAGVEKIGAITSRPEVAVKLAKEGLSYVLVEVKDVEEGKKTIKELREAGVERIGTVTDKPEIALEILKG,0.20136769663932136,50.34192415983034,True,False,False,1.80736780166626,85.90858703824641,0.018,0.21428571428571427,0.89501
|
| 119 |
+
117,F117,Fixed_Rd1_48,LM,6CZJ,MTVAEKLAGKYTGTAKDDKGNEVTITLEIKKESDTEYTVSSTSKTKDGKEVKASGKAVLKDATTADVTLTGEDGKPVVGTYKIEGENKVSVTFKSPEGVELKGDLTRVK,0.40187536250134254,100.46884062533563,True,True,True,1.0732301473617554,90.77154708387503,0.33,0.22018348623853212,0.87436
|
| 120 |
+
118,F118,Fixed_Rd1_48,LM,6CZJ,MSVLDKVAGTYVVEGKTPDGKPISGELKIEKKGENAVKVSGKLTSPEGKEEPLEGEATVKSETEVSATLKTKDGQEIKVTIKFKDADTAEYTVTLSDGSTITGTAKRKK,0.3269384803644804,81.7346200911201,True,True,False,1.342326283454895,86.96862546869347,1.7,,0.8631
|
| 121 |
+
119,F119,Fixed_Rd1_48,LM,1QYS,MVKVTVTGTKDGKPVTKTFEVSSLDELEKKVKEEVEKLKSEGVTSVTLTVEAPDASTASKAKEIAENALRKAGYTGLSISVSGNKITITATR,0.23823675466455083,59.55918866613771,True,True,False,1.480959415435791,92.34708158697816,0.73,0.21739130434782608,0.8881
|
| 122 |
+
120,F120,Fixed_Rd1_48,LM,1QYS,MVKVTITFTKDGKPVTKTEEVSDPSKLEDVVKKAVEEAKSAGATSVTVEITADTPEKASEAENVARKVLESLGYTGLTVKREGNKITVTATL,0.29713331758258826,74.28332939564707,True,True,False,1.650942087173462,92.96180670085404,0.82,0.30434782608695654,0.86817
|
| 123 |
+
121,F121,Fixed_Rd1_48,LM,1QYS,MPKVTITGTKDGKPVTKEIEVSSRAELESKIKEEVEKLKSEGVTSVTVEVTAPDEASKKEAENIARDVLTKAGAKNVQVSVEGSTVKVSATF,0.283977524363175,70.99438109079375,True,True,True,1.661885142326355,90.57610364778702,0.79,0.2717391304347826,0.51044
|
| 124 |
+
122,F122,Fixed_Rd1_48,LM,1QYS,MPKITITGTKDGKPVTKEVEVSDPSKLEEAVRAELEKLKSEGVTSATVTVKAPDESTASKVKEIVEKVLKELGAKDVSVSGSGGEYTIKATF,0.4962038371617647,124.05095929044117,True,True,True,1.7360239028930664,89.62163197601475,0.085,0.2391304347826087,0.59121
|
| 125 |
+
123,F123,Fixed_Rd1_48,LM,1QYS,MVTVKITGTKDGKPVEKTLEVSKPSEIPGAISKLTEELKSAGVTSVTIEVTASSKEDAENAARVAEAVLKGLGYTDVSVKVEGNKATITAKK,0.2742051074536023,68.55127686340059,True,True,True,1.7395225763320925,89.79718220084987,1.5,,0.46493
|
| 126 |
+
124,F124,Fixed_Rd1_48,LM,1QYS,MVEITVTGTKDGKPVTKTFTVEKPEDVPKVIEKVLEELKKEGVSEVKVTVKASSKDEAENVARVVEATLKAAGAKEVSVSGSGGEYTITAKL,0.35067152355882203,87.6678808897055,True,True,False,1.992031574249268,91.4011528958854,0.72,0.2608695652173913,0.79074
|
| 127 |
+
125,F125,Fixed_Rd1_48,LM,1QYS,MVEIKITGTKDGKPVTETLTVSSPSDIDSAVNKVLEKLKSEGVTSATVTVKASSKEEAENVAKEVEKRLKDAGFKDVKVSGSGGEYTITATR,0.454025108550495,113.50627713762375,True,True,True,1.5798276662826538,89.53139849225488,3.0,,0.54812
|
| 128 |
+
126,F126,Fixed_Rd1_48,LM,1QYS,MPKITITGTKDGKPVTETVEVSSVDEAVKKLEEKIKELKDAGVTSVTLTIEAPDESTAKDLASKAENALKSAGFKDVKVSVEGNKVTVTATL,0.3255327815620091,81.38319539050228,True,True,True,1.53373122215271,89.86168090861035,0.11,0.2608695652173913,0.85828
|
| 129 |
+
127,F127,Fixed_Rd1_48,LM,1QYS,MVKLTITGTKDGKPVTKTVEVSSPEDAVNKVKEILEELKKEGVTSATVVIEAPDEKTAENAKRVAEALLKAAGAKDVKVSVEGSKITVTATL,0.47971685757209886,119.92921439302472,True,True,True,1.7418758869171145,88.89922296487072,1.5,,0.83836
|
| 130 |
+
128,F128,Fixed_Rd2_Motif_11,LM,6CZJ,MTVLDKLAGEYEVSGKDAAGNEYKGTVKIEKEGENKAKVTRVITGADGKPVTSSGTATLESDTKLSVELTTEDGQKVSAVETIKSDDEREIVVTLPDGSKLTETWKRKK,0.42573097655642544,106.43274413910636,True,True,False,1.3811442852020264,89.96638561423804,0.061,0.22935779816513763,0.85718
|
| 131 |
+
129,F129,Fixed_Rd1_48,LM,6CZJ,MTVLEKLAGKYTITGKTPEGEEISGTVEYKKEGDDKVSVTRVIKTKDGKEVKQTGTATLKSDTELSIELTAEDGSKVTGVETLVSENERKVVLTTADGQKIEAVEKRAS,0.1969993130688227,49.24982826720568,True,True,True,1.1307755708694458,92.23752939601708,0.16,0.21100917431192662,0.87003
|
| 132 |
+
130,F130,Fixed_Rd1_48,LM,6CZJ,MSLAEKLAGKYTVSGKTPEGQEISGEYEFTKAGENEYKVVAKITGPDGKPVELSGTATLKSDTEAVVTAKDPSGREVTVTLTVKDADTIEGVGKAPDGSEIKVTGKRVK,0.400563139199727,100.14078479993175,True,True,True,1.1647963523864746,88.77604506515777,0.019,0.30275229357798167,0.89158
|
| 133 |
+
131,F131,Fixed_Rd1_48,LM,6CZJ,MTVLDKLAGKYTIEGKTPEGEPISGTTEVTKKSDSEVALKSVIKTKDGKEITLEGVGKPVSDTSVKVELKAADGSTATAEYTFKGDDAVDVKVTLSDGTVITGTEKRAK,0.305597507227619,76.39937680690475,True,True,True,1.219199776649475,87.58026920980092,0.91,0.23853211009174313,0.80478
|
| 134 |
+
132,F132,Fixed_Rd1_48,LM,6CZJ,MSVLDKLAGTYEGTAKSPEGKELKVTVTITKDGENKAKVVIEAPGPDGKPIKAEGEATLESDTSASFKVKTEDGQEVTGTVKLVSENEIDVEYTLSDGSKISGKLTRKK,0.4585908282289566,114.64770705723915,True,True,False,1.7507332563400269,88.66633659573229,0.047,0.27522935779816515,0.74559
|
| 135 |
+
133,F133,Fixed_Rd1_48,LM,6CZJ,MSLADKIAGEYTVTGQTPDGKPISGKLTITKEGENKYSVKGTLKDPEGKEEPVEGTATLESETSAKVSLKTKDGKELSGTVEVVSDTEIKVTLTDAEGNKIEVTAKKAS,0.386734824659598,96.6837061648995,True,True,False,1.0890276432037354,87.8132647979346,0.19,0.26605504587155965,0.94502
|
| 136 |
+
134,F134,Fixed_Rd1_48,LM,6CZJ,MSVLDKLAGKYEISGKDAAGNPVTGTSEVTKVSDTKASIKSTVTTADGKTIELSGEATEVKPGVVSAELTTPEGKKAKVEITVKDENTRDVVITLEDGSKITAVEKRVK,0.29136398284163545,72.84099571040886,True,True,True,1.4823777675628662,87.96171146295072,1.3,,0.88796
|
| 137 |
+
135,F135,Fixed_Rd1_48,LM,6CZJ,MSVLDKIAGTYEGEAKDKEGKPVKAKLVITKDGGSKVNVELTVTTPDGKEKKLSGTGEPVSETSVKVTLKDEEGNEVTATIEFKDADTAVVSGKTPEGVEIKGTVKRVK,0.356295626261776,89.073906565444,True,True,True,1.7677292823791504,86.80593495491695,1.8,,0.83906
|
| 138 |
+
136,F136,Fixed_Rd1_48,LM,6CZJ,MSPLDAFVGEYTGTLKTKDGKEVPVTVKIEKAGENEVKVSVSGKTPEGKEIKASGTAKLESETSAKVTLTLEDGSTVEATITKPSDDKLTVTGKNAEGQEISGELTRKK,0.43271550606435516,108.17887651608879,True,True,False,1.358462929725647,89.08745904116874,0.3,0.21100917431192662,0.68446
|
| 139 |
+
137,F137,Fixed_Rd1_48,LM,6CZJ,MSVLDKLAGEYDVELKSADGKPIKGSLKIEKTSETEGKVTGTITTPDGKEEPVEGTVKASSDTEATVTAKTKDGQEVTLTVKVVDENKLEVSGKDAEGNEISGTATRKK,0.4135837874338196,103.3959468584549,True,True,True,1.2818390130996704,89.9499049610178,0.49,0.29357798165137616,0.69754
|
| 140 |
+
138,F138,Fixed_Rd1_48,LM,1QYS,MVKVTVTYKVGDKEISETKEVSKPEDVPKIVEELVKKLKEKGVSSVTLTIEAPDKTSAENAARVAKAVLEGLGAKNVEVKVEGNKATITATF,0.1913173988144506,47.82934970361265,True,True,False,1.7961807250976562,91.92466852220964,1.3,,0.83248
|
| 141 |
+
139,G139,Generation_Rd2_Distant_57,LM,N/A,MKAGAEEIKTSATSLKDSVSSGTVDPIVTEAGKVLDAAKAVKEKVSEADKPKVEPVVTKLETAATDLKTKGEAKDVTGLTTAVNEVITASDELVKLLPAS,0.20507356097996407,51.26839024499102,True,False,False,,90.45868949690686,0.076,0.28,0.39181
|
| 142 |
+
140,G140,Generation_Rd2_Distant_57,LM,N/A,MAADVPPEVKAGLDSVNKAVEVSGSDATVEQVTGPLKEALEKYKVAAEKVTKPDGKTKLEGVIKDIEGAITAGEAKDLPKVKELAGKAKTSSEEIVKLLS,0.3328677079393693,83.21692698484233,True,True,True,,84.99285539872803,0.22,0.32,0.83491
|
| 143 |
+
141,G141,Generation_Rd2_Distant_57,LM,N/A,MSPAARAELTETRNDVTKLIKTVKDGGSKSTIAKEASEISGDLDKAITLTAGKPKAVAELRETSADLKKLVATVKAGGSKSVIVKEAGEVSSDIDKVLAL,0.1551972832114287,38.799320802857174,True,False,False,,93.5872682057466,3.8,,0.49823
|
| 144 |
+
142,G142,Generation_Rd2_Distant_57,LM,N/A,MSEIETVITGLTTARDSVVAGSKDGGKSLVEVGKTLVELAKAEGVSDDVKASIKDAGKPIVEAGKLLKEGEPPEDKVTEAVTKIDEAITALNAALESAQG,0.2756433114334177,68.91082785835442,True,False,False,,86.87348946971616,0.82,0.31,0.48043
|
| 145 |
+
143,G143,Generation_Rd2_Distant_57,LM,N/A,MARVISKTITVSATGESDPIEVPEDEGKYIVAVNVTSLSGSPSVTVEILKDGDSTPEYTLTASAGETKSEPVKIKAKKLKVKVTAAGGSSGTATVTLVLE,0.027529949935088758,6.88248748377219,False,False,False,,83.71902057521575,0.5,0.23,0.48523
|
| 146 |
+
144,G144,Generation_Rd2_Distant_57,LM,N/A,MVSEEDIKKAVENKAKEKLQEELSKYGVSATLTVTDVKVTEPPKITKDGKVIVVAEGSGTATIEAGPLKGKTASFRVRAEVDPSTGEVKSVEILEVTVSS,0.38875352995405293,97.18838248851323,True,True,True,,88.74604251379841,9.5,,0.44431
|
| 147 |
+
145,G145,Generation_Rd2_Distant_57,LM,N/A,MATKDDVTKLVSSVTGLLDKVGSASTVPEIQAVAKELEGTIEPLEKKAKDGGAESEVEAVEKPAEALEDAAKAGSDKSAIDTAVTNLKTSLTTLAGKLSG,0.222212473773112,55.553118443278,True,False,False,,88.46027073589488,0.18,0.29,0.3727
|
| 148 |
+
146,G146,Generation_Rd2_Distant_57,LM,N/A,MTVEEIKKASDTLVSSGTELKTAADAGNLDKVKELSATIVTSGETLQKGLEGKPEVLEAVNAVVTAGKDLKAAAEAKDVEKIKALTPVIVEAGTKLKSLL,0.41143414845372267,102.85853711343067,True,True,True,,90.46682388380894,0.75,0.19,0.78525
|
| 149 |
+
147,G147,Generation_Rd2_Distant_57,LM,N/A,MNAALEKAKTATDVPSAVTAVKEAITVAGSKPEDAEPVVKAGVELVKVLKDGGSLDAAENVAKEVTTISGTPGVSDSVKTSASEGLTEITKLIEEKKSGK,0.091279198227127,22.81979955678175,True,False,False,,86.53972629608363,3.3,,0.60999
|
| 150 |
+
148,G148,Generation_Rd2_Distant_57,LM,N/A,MSSLSDIKSTVASITDVSELEPVVEPLTEIIEGGGSDADKVEAVNVIGEVGKKLGEAGEYDVLESVLPPLEELAEDSSVSAEVKEAATKASETISAVTAE,0.18933746095612405,47.334365239031015,True,False,False,,88.14748754664437,1.5,,0.50912
|
| 151 |
+
149,G149,Generation_Rd2_Distant_57,LM,N/A,MKALENAADEIKKSDSRITDVTASVSGTTVSARVTLAEGVTEDQAKPVLEEVVPKISEAATKGLKDAGEPSTLTIVAVSSKDGKELVRATSLGGSVKVEK,0.3332914704062595,83.32286760156488,True,False,False,,88.37161919753758,0.79,0.18,0.41947
|
| 152 |
+
150,G150,Generation_Rd2_Distant_57,LM,N/A,MKITLTVPPGKTVKSDPIKAAGRVSASVKVTAKDSSKPAKVRVLAVPEGGSEPVTVVEKEVKAGETATLEPLDTTGYTEYIVEAENVGDEEATVTIELSG,0.336444292189329,84.11107304733224,True,True,True,,87.98001209003614,1.6,,0.53459
|
| 153 |
+
151,G151,Generation_Rd2_Distant_57,LM,N/A,MAELDTIKSGLTDLKTKVDGVVADPSSVTPETVTGLSDSAKTLGESLEGSPVQEVKDAGKELSEASKAAGEETEPAKIVEKLTTVSTAVGKVITAAENAA,0.26587976795727936,66.46994198931984,True,False,False,,89.96433851537665,1.6,,0.41494
|
| 154 |
+
152,G152,Generation_Rd2_Distant_57,LM,N/A,MATVKEVLTEISTKVTAAGEAKDVPTLTTLSGEITGLIEKLKPLVEGKPELTPVVDGLTAVSEASKKVGEDGSAENVAAFTKAVTDLKTSLDAGIKALEG,0.4991924215797286,124.79810539493215,True,False,False,,87.48442474556842,1.5,,0.47016
|
| 155 |
+
153,G153,Generation_Rd2_Distant_57,LM,N/A,MPKYTVTLTVKLSGKPEPSKISEIENAAKSAAESVAGEGVSVKVTKVEVKDDGTATITLEVTASGSEDEAKKKAEELKNKIKEAVEKAGGSVVDVTVSTS,0.42333046694985677,105.83261673746419,True,True,True,,88.78546222717601,0.14,0.26,0.46378
|
| 156 |
+
154,G154,Generation_Rd2_Distant_57,LM,N/A,MTEKITADVTKALEEAGVTPGKVEVSGSTVKVTLTVPEGTDEATAKTTAENAVNAAVKGLKDAGESVSSVRVIVVGKDGKELASATSLGGSITIKPAPSE,0.4531835261231916,113.29588153079791,True,False,False,,87.75473846202736,0.1,0.27,0.55879
|
| 157 |
+
155,G155,Generation_Rd2_Distant_57,LM,N/A,MSDVKITKNEDGTVTATGTAVLTPEDIKAAGGSEEKAKELAEKRAKDSARESLRLLVKAENPDLKDEEIDKLIENIKVVSSKPVEGGVEVTVEASVKVGK,0.37388402065682946,93.47100516420737,True,False,False,,88.89236488239041,0.43,0.23,0.54614
|
| 158 |
+
156,G156,Generation_Rd2_Distant_57,LM,N/A,MSDISATVTGLSESVTALGTAVSSGDVEGVKTAGEDLKAKLKELETSAEEAGAKDLVKEIKDAGKAVVKVGKDGGSPEEVTPPLTTLQEKLTELSTKLAG,0.33130961826060645,82.82740456515161,True,False,False,,87.8328885327107,0.068,0.31,0.87952
|
| 159 |
+
157,G157,Generation_Rd2_Distant_57,LM,N/A,MKDVSDKAEAELKKIDGVEDASVSLQVTPPSFSGSITVKEGTDEATAKEIAKNAGKVAARVLEEEKLTEYTLTISVTGEPADGGSSKPVGSATFTKDDLK,0.3887420302984773,97.18550757461932,True,False,False,,85.66335758481124,3.3,,0.48156
|
| 160 |
+
158,G158,Generation_Rd2_Distant_57,LM,N/A,MSEISTAATEVETAVNKLVSDIEGGSEPSFDSVSADLTKAGENLEKASAEAGSDEKVTSAVTTIKEGITLAKDGVSGKDVAKVKEGAEKIKTGLDGLKAL,0.24084138782798684,60.21034695699671,True,True,True,,88.22556618126865,0.58,0.2,0.46527
|
| 161 |
+
159,G159,Generation_Rd2_Distant_57,LM,N/A,MPKITVENKSGVDATITLEAGSFKDSKTVAKDGGTAEFEVKEKPSEPLEIKAKADVPGKGSAESDPVKVELKEGETAKVTVTLTVGEDGKLSVSSTTTKE,0.2227111388280504,55.677784707012606,True,True,False,,84.9238082614045,0.67,0.33,0.49835
|
| 162 |
+
160,G160,Generation_Rd2_Distant_57,LM,N/A,MEFRIKTSKPPEEVLKAVKEALSSDPKYKDVQIVSESPSEIVAKGRAGTATVRVSVKDGEVTISGSAEGGLITKSLVEKKLRELAENAARKVPGAEVVTG,0.24038289936562846,60.09572484140711,True,True,False,,88.59548342136148,1.5,,0.48746
|
| 163 |
+
161,G161,Generation_Rd2_Distant_57,LM,N/A,MSDEVKSVVADLKAAVTSLKDAGSSAENLKPVGEKLKEIGTKLSGLTVPEDKKAKVTELAGKIKDGGEALVKAGESGKPDDVKTAITTIETAVSELEGLL,0.42792015185193416,106.98003796298354,True,True,True,,89.05788763849755,1.2,,0.7236
|
| 164 |
+
162,G162,Generation_Rd1_48,LM,N/A,MSSEEITKATEDLTTAKDSGDTDKIVSAVETLVSVTGSPSDVPPEVQLASIEALGYVVENAEGGVADKVKEAGAKERLEELKDAGEPVGEAAGKVLEKLS,0.21005651574537504,52.51412893634376,True,False,False,,85.10657686493096,2.4,,0.43952
|
| 165 |
+
163,G163,Generation_Rd1_48,LM,N/A,MAEVEISVEKKGENEYVVSVKVSGKPGTPPSEPVTATSLDDAVNKAKEKIKEALEKAGVTELKDSDTITIKVTVKEGEEGGSKTVTKTLTVGELRKLLEG,0.1357011772016441,33.925294300411025,True,True,False,,85.69054945839417,0.77,0.18,0.42333
|
| 166 |
+
164,G164,Generation_Rd1_48,LM,N/A,MKTTVTLTADKPSEPVAVNAAENKASKITVKVTKAPEGGSATLKVVGKKDGKDVTVLEAKEVKAGESVTSDPIEGLTEYTVSLSGVPAGSTAEAEITVEK,0.364473906674991,91.11847666874776,True,True,False,,86.88541224847904,1.2,,0.52102
|
| 167 |
+
165,G165,Generation_Rd1_48,LM,N/A,MSELENKIKEALSSIEGVEVKVGEPKVEEKDGKKVVTSVPVTITKDGKTYTLTVSKPEGSDKFRATVTAPDGTVVASAEGDTPEDAVNKAVEKLKEILGG,0.323444357381488,80.86108934537201,True,True,True,,86.51952648831619,0.52,0.23,0.54128
|
| 168 |
+
166,G166,Generation_Rd1_48,LM,N/A,MATAKDVKAVVEKVEKGEPVTAEDLKPLIEGTKDSSFTVRVNSITGIGKLVEAGKVTPEVAKEALPVLEELRKDKTSVSGGQTVGGAAGSAISKIKKASK,0.07451008573836172,18.62752143459043,True,False,False,,83.85604869710298,1.2,,0.50281
|
| 169 |
+
167,G167,Generation_Rd1_48,LM,N/A,MAGKLTVKVTGLSASDVAKVRVTATVTPSGGSPVELKPEEKEIKAGETSVTFEVSDIKEGDKVSVKAEALKADGTVEYTGSKDNVVPGTNEVTITLEKKS,0.2552751535613065,63.81878839032662,True,True,True,,85.82734665883672,0.21,0.22,0.76777
|
| 170 |
+
168,G168,Generation_Rd1_48,LM,N/A,MSAKEVAEAFVKAVNAKDAAGVEKLSDGGSLTAENVQKVLDLIEKAGEYTVTDVGEPEKRETSSGTITVVPVTLKGSKDGKPLEFRVSVKDDKVTGLYIK,0.22973311193269697,57.43327798317424,True,True,True,,83.80963016732258,0.12,0.35,0.76997
|
| 171 |
+
169,G169,Generation_Rd2_Distant_57,LM,N/A,MSVQEEITAKTTEISEALSSGDADKVVTGLTDLVTLIEKAGEPPGPVLENAATVLGTIAENKDVVKGKPEVVEKLKELAGKVEGGSDEVKEAVGRVSASL,0.3692888793736263,92.32221984340657,True,False,False,,83.33180243087995,1.7,,0.48083
|
| 172 |
+
170,G170,Generation_Rd1_48,LM,N/A,MSPEDQKKLEELKPKIEKAAKDSASSSGADVKAEVKVEGKTAVVTLTVTVPDGGSKDDAKSTAENVAGSAVSEIKKEAPEITSVRVQVKSGDTTLVDKTS,0.07272598231771801,18.1814955794295,True,False,False,,86.38503262080307,0.62,0.2,0.54976
|
| 173 |
+
171,G171,Generation_Rd1_48,LM,N/A,GKLEFTVKFSEPVDPSTIKAENIVVKVGDKEITLKPEDVTKVSDDGKEYKVTVTLTEEQLKAIKEAGGKVSVSIPEGAVKDAAGNENKASEIKDNTVEVK,0.353917321190868,88.479330297717,True,False,False,,88.99491429469761,0.11,0.3,0.64077
|
| 174 |
+
172,G172,Generation_Rd1_48,LM,N/A,MAEYTATLTTSLPPSKVLEVTKSTLESEGLTITSSSDKEIKASGKGVSATVKVEAKDGGSVVTVTAKAGGLIGKKRAEELLNKIVEKLKSAPEVKDVKTS,0.08443556471481162,21.108891178702905,True,True,False,,85.9582238766821,0.16,0.2,0.69889
|
| 175 |
+
173,G173,Generation_Rd1_48,LM,N/A,MSVSEEVTKASDAVNAAVTATDGSKSADEISTAVGEAKTTLEGLKDKVTGDAKTLVEEAITSLGEVETKVKDGGSPEDIKAALTPVAEKLKEAAGKLPSS,0.35514819735560493,88.78704933890123,True,True,True,,90.5134869098054,0.34,0.25,0.63993
|
| 176 |
+
174,G174,Generation_Rd1_48,LM,N/A,KVTLDKAEIDPKDGSAKITGKVENVKEGEVSVVIKDSEGKEVAKGTATVKDGKIETTIEGLKLEKAGKYTVEASFKPTEGQEPVTSEKKELTVPVKVTLD,0.49288849535230767,123.22212383807691,True,False,False,,85.49357017737616,0.014,0.41,0.54795
|
| 177 |
+
175,G175,Generation_Rd1_48,LM,N/A,MSDEVKAKIEEAIKSSGLPVTDVKVEGTTATVTVSDPSLVPAVLTIVAGAVKGVEGVSEITVKVVGSDGKELASATLKDGEYTVNGQKVTKPEDLEKLLK,0.43620360927076324,109.05090231769081,True,True,True,,87.11474597462664,0.99,0.18,0.5706
|
| 178 |
+
176,G176,Generation_Rd2_Distant_57,LM,N/A,MKASEILAKLSGTYKDDEAGLTVEIKDGKVTVSAEGESAVLENVTSVDEKAGTATVKGKDEEGADVTLKITFSDAKNPSKVSVVEVTEDGETSEPVELTK,0.3844477984588167,96.11194961470417,True,False,False,,86.20851780777167,0.034,0.2,0.66728
|
| 179 |
+
177,G177,Generation_Rd2_Distant_57,LM,N/A,MAVNKEETSEPITVPEGKKVKSVSGVATNKAGDGGSATLTVTIEGAGEPVTKTVELKDADTPFEVTGLDVPAGSTVKVTAKLSSDKPGTAEIKDLRVVLE,0.2654726003622822,66.36815009057055,True,False,False,,86.41534731482963,1.2,,0.58678
|
| 180 |
+
178,G178,Generation_Rd2_Distant_57,LM,N/A,MATVQEIKDAVNAVLDSVEKKDLEGAKTSAETLKTKAEELAGSSDIPADVKEKVTTAATDAGTAAENLVTAVEGGSGDVSEPVTKLKEALTGLLSVIEGK,0.425398676935431,106.34966923385775,True,False,False,,87.68901877999998,1.3,,0.64483
|
| 181 |
+
179,G179,Generation_Rd1_48,LM,N/A,MSEELRKAVENAAKEAAEKRVKEYLEKNPDLKDVTISDVKVVSVEEVPGEPPKKYKVTLTVSGTKDGKPVTATVTDIVEITEGGSPPTVKLLESKIETSS,0.29900936277246376,74.75234069311594,True,True,False,,86.02743373232883,1.3,,0.57502
|
| 182 |
+
180,G180,Generation_Rd1_48,LM,N/A,MKDGEIKEVVKVLVEKLREGAENGSVTTISNAATGLGKVAERLEDDEIRDTVKEAVRVLIEKLKEGVENSSVSTITNTATSLSKVAGRLKDSEIKDAVKE,0.3213427087290815,80.33567718227037,True,False,False,,86.20820028410907,0.23,0.23,0.66443
|
| 183 |
+
181,G181,Generation_Rd2_Distant_57,LM,N/A,MPKYRVVATVSVSAGSKEEAEKKASELVEKIKAKLEEKGLKDVKVTGTSLTEVSGGYTLTVTITAESDKPPSEIENAVREALKEAGVGEPVISSVTKVEG,0.25384446588434895,63.46111647108724,True,True,True,,88.54541706281088,2.7,,0.50116
|
| 184 |
+
182,G182,Generation_Rd2_Distant_57,LM,N/A,MATLQEGVTTITGLVERLGSATSFDEVKTVAGEISDALKPIVEKAKESGEPSEEIKGPVTDLENAVKELKDGAEAEDSSKVTAAVGTVSTKLTELAGKLS,0.3724929920808958,93.12324802022395,True,True,False,,87.92727221288574,0.045,0.28,0.59423
|
| 185 |
+
183,G183,Generation_Rd1_48,LM,N/A,MKVTRAENALRVVSSAVGQYTLEKGEPPKSLDDLVKAGYLKEDEAKELIEEVKVEGADAGTATITGKVKEGDKPVTVTLTVAKDGGSVTKTTTVDGKPAS,0.3468407943058762,86.71019857646905,True,False,False,,85.3267939260983,0.00012,0.26,0.54095
|
| 186 |
+
184,G184,Generation_Rd1_48,LM,N/A,MAEITSGSKTVSGSETKLTVKAGETATVTLSADVTEIVVEKDATLTIEAAEGVKVGDKPITVEAGGKLVNNGTVTGNVTVKDGGSLEGKEVKGEAKIEKK,0.023438156178967277,5.859539044741819,False,False,False,,86.76730231087329,0.47,0.25,0.7231
|
| 187 |
+
185,G185,Generation_Rd1_48,LM,N/A,MPVKVTITAPPGTKPSDVKAKIESEVIPKVLEEVGKPELAEKLKSATLTVTENPDGSVTAVLDVSGLSKEEAEKVAEITRKKLVEAGVPEDAIKVEVVEG,0.20753040061384626,51.88260015346157,True,True,True,,87.18989491808568,0.35,0.34,0.57824
|
| 188 |
+
186,G186,Generation_Rd1_48,LM,N/A,MLVEITTSSGTKLVNAENVVSVTENSDGSATISFVGGSTLTVTGETVADVKAKLKPVIEGKIKEAEDKVAQLEKDGGAGSPEVTAAKAELERLKAVLASL,0.4051587468926507,101.28968672316267,True,False,False,,91.88900529299924,0.36,0.24,0.53372
|
| 189 |
+
187,G187,Generation_Rd1_48,LM,N/A,MDLSEIKALVAAGKYEWDEGNVEKIAKHGVSPEEVEQVLENKPLIEPVPSKVKGETRFRVTGLTDGGRLLTVVFTVRGDDVIRIISARDATKKERKEYEG,0.16448825393008118,41.122063482520296,True,False,False,,86.01142421786548,9e-20,0.51,0.845
|
| 190 |
+
188,G188,Generation_Rd1_48,LM,N/A,MSDSAVKEGKELLEKAKSTSDPLDKVSLLTDAATKLKDGGAPESEIKPVLVEAGKTGLSIVEKGGSSVPPSEKREILEDVAENLETAGEPDLAKEVRSKI,0.28479652189612137,71.19913047403034,True,False,False,,87.2741586468708,0.89,0.36,0.51479
|
| 191 |
+
189,G189,Generation_Rd1_48,LM,N/A,MATFTKTVTLEAGKPSEPITGLSGRVKKITASISGGSAENVSAKLVVEKEDGTTETIELKAGESSVTKDLDPPVDVKSVKVEVTGAKEGEKATLTVTVEE,0.13369887066922734,33.42471766730684,True,True,False,,87.77665895300834,1.4,,0.49889
|
| 192 |
+
190,G190,Generation_Rd1_48,LM,N/A,MKLVLTSSADVEYTISVNGGEPVTGTLKAGETKEIEVPAPEEGKPITVTVKVTAKNVKDGGSVSAKLIKVDKDGKETVVAEDSKSGSEATVELSKTFTVQ,0.14553392066270446,36.38348016567611,True,True,False,,85.23398740416752,0.49,0.22,0.55118
|
| 193 |
+
191,G191,Generation_Rd1_48,LM,N/A,MARFRVTLTVTVKDADPSKVEEAKNAVKEALSSIEGVKVLDVRAGPVGGSYTITAIVEVPEGQEDKAKELAEKAKSEAENKLKEKGLEVTSVSASATPLG,0.07282996354878321,18.207490887195803,True,True,False,,87.53061091129207,0.91,0.2,0.60413
|
| 194 |
+
192,G192,Generation_Rd1_48,LM,N/A,MSEITSLTTATLSSPSKTPVIVTASGSDITVRVLKDGKLEEAGKYSTGLVGKINSVSAKETGKDSFTVVAAGDGGAVELKVTVKEGEDGKPEVEKAEVVK,0.26659004459356195,66.64751114839049,True,False,False,,89.59009024552489,0.25,0.29,0.40602
|
| 195 |
+
193,G193,Generation_Rd2_Manual_24,LM,N/A,MAVSSDVTVKAGKTLTLEKDSEVTGTITVEDGGSLILEEGAKVTATSITVKSGGSVTLKKDAELTAPSADIVVEAGGKLVLESGSKVSGKITNAGEIIKE,0.22727875498455913,56.81968874613978,True,True,True,,92.68699567297864,0.00042,0.31,0.8495
|
| 196 |
+
194,G194,Generation_Rd2_Manual_24,LM,N/A,MAEFRVTGTATIDGESVPVVATVSDSEVSLAPEDGGDLPEITVPLSSISGLEKDGSTVTLTVLDEEGEPTEYTVELESADDAGEFVKAVRKALVEAKNAA,0.13058535749075587,32.64633937268896,True,False,False,,89.80239142712125,1.4,,0.72477
|
| 197 |
+
195,G195,Generation_Rd2_Manual_24,LM,N/A,MKSLEGKKVLIVGGLDRLRPEYEKKLKELGAEVTSFSGRESRKTVEKITKEIKDGKYDLVIVLTNYVSHKVTTAVNKAAKEAGVPVVKGSPKRILEEISK,0.2438046900032924,60.951172500823105,True,False,False,,84.283443401976,3.6e-07,0.37,0.73891
|
| 198 |
+
196,G196,Generation_Rd2_Manual_24,LM,N/A,MADISGKYEGKVSGEEEGDAVLDLKQDGSKVTGTITVPSENIKADVKGSVDGDKLTLEIEVPEAGETAKAELTVKDGKLSGTVTAEGESAPVELEKKTSS,0.03521260291153069,8.803150727882672,False,False,False,,88.46053178719052,1.8e-07,0.39,0.88997
|
| 199 |
+
197,G197,Generation_Rd2_Manual_24,LM,N/A,MTKEELAAKLKGKTFVGEAEGVKVTLEFKDDGTAVITVDVPGQEPETGTYEVSEDGSTVTVKAGDEVVATGKVNDAGEIELTVEVEGEPVTIKLTEKPAS,0.31272403972533674,78.18100993133419,True,False,False,,90.26839772316754,0.01,0.28,0.70725
|
| 200 |
+
198,G198,Generation_Rd2_Manual_24,LM,N/A,MATLEEVIAKAESDGKVSLAGEGLTDADVPKVVELLKSGKITSLDLSENKLTEASVDAIVAAVKEGGSKVTEVNLKGNEIKDSAPIEKLKAAGVTVTGVE,0.33709740965070456,84.27435241267614,True,False,False,,86.36919238098604,0.00021,0.35,0.85039
|
| 201 |
+
199,G199,Generation_Rd1_48,LM,N/A,MAEYTSEPISLEGKKIKAVKVTLKEAPSSGTVTVELLDENDNVLATFTGLSVSAGETKTLTPPSPPTIPAGTKKVKVRVTASGSDGGAKDVVVEVIVEEE,0.10049578289951612,25.12394572487903,True,True,False,,86.52507613680642,0.39,0.29,0.64192
|
| 202 |
+
200,G200,Generation_Rd1_48,LM,N/A,MSPEEILKELESKVSSGEISADEALSLAEKAVEGGSVDVLVKAAEVSAKAGKPEVTVKIVEKLIEKGVKDKRVIEAAINAARDAGDTETASKLEELLKTL,0.40972010352290444,102.4300258807261,True,True,True,,88.52770732744686,0.077,0.35,0.61949
|
| 203 |
+
201,G201,Generation_Rd1_48,LM,N/A,MSEEVNKIKELVEKASGQYKDGKFDEGKTTLGEASTAVTGLEEKVKAAGGSAEITGPVTELKTSIETATKDVEAKSADAGTKLEDVSKKLTDLAGKLPAA,0.30720398423712897,76.80099605928224,True,False,False,,90.41036662944973,0.13,0.27,0.65927
|
| 204 |
+
202,G202,Generation_Rd1_48,LM,N/A,MKLKDGAKLVIPPEIVEKIKEKHGVSEGEVLEALKNAAENSVTIEPSKTKPGRFRVTGLSGSRILTVVVEELDDGTVKVITARDASKKERREYEKAVGKK,0.0940098747249764,23.5024686812441,True,False,False,,82.49738499306618,4.1e-08,0.36,0.79272
|
| 205 |
+
203,G203,Generation_Rd1_48,LM,N/A,MTIVRVFDSREKAENAVNELKSAGISSDAINLVSGEEGAKKLTEAGVPEDEARVYAEGVKRGGTVVTADVPDDKVSEVESILEKYGGSKPEPPSETPPAS,0.17221999174676836,43.05499793669209,True,False,False,,84.4356925716466,1.7e-09,0.37,0.81654
|
| 206 |
+
204,G204,Generation_Rd1_48,LM,N/A,MEITISGKDLSAENAAKLKEAVTTAVNDGGSVKVTLTVSVPEGESDPKAAGQKLADALEAELKTVAGDKASSITKGEPVVDTSKPAGTPGVTATVEVTKS,0.12751274187278755,31.878185468196886,True,False,False,,87.70044338976987,1.0,,0.43692
|
| 207 |
+
205,G205,Generation_Rd1_48,LM,N/A,MTPEEALERIRAAVAAGRVTVTKHVEKRLKERGLTTRDAVVSAVLAKAGTAELIEDDGGSKKYKVTGEVPGKDGKPVKLVVIVSLSDPSEPPRVITAYPA,0.20831051512177579,52.077628780443945,True,True,False,,84.10098394565233,0.071,0.32,0.77711
|
| 208 |
+
206,G206,Generation_Rd1_48,LM,N/A,MTLTTATVDDAGKVTEISVTGLPGGSDPKAAGEKTAENVAALLEAVGAPEDGRKEVLDKLKEGSASLSEPVKVTKDGVEYTVTSSTVSGTPSFTITAKPA,0.32079452603050557,80.19863150762639,True,False,False,,84.62503673562736,1.4,,0.59321
|
| 209 |
+
207,G207,Generation_Rd1_48,LM,N/A,MTIKSATLTATVTPPADAPEGSEITVSAQLVPVGEDGKPGDPIATSDSVTVKAGEEPKEVTLKLEGKDVDVTKGRVAVVITASGTEPVEVKVSNVKLTVE,0.32624960566135874,81.56240141533969,True,False,False,,87.13537223500181,1.2,,0.482
|
| 210 |
+
208,G208,Generation_Rd1_48,LM,N/A,MLTEEQKTAIENAAKEAAEAKIKEELEKAGYTVSNVAVNKDSIVVKEITDTSATVEVLVDADVTKDGETKTLKGVKVSVPVTISEDGKTVTVGTPTVTEG,0.41753954616702316,104.38488654175579,True,False,False,,86.20522534717749,0.18,0.31,0.33752
|
| 211 |
+
209,G209,Generation_Rd1_48,LM,N/A,MKSLAENVAKEIEKRLKDKGYTVTSVSAGETSATITASKPGKPDLKIIVEVSGSTVKVRVEEGGKVVGEGTATVPPGTPPSEAVNKAVDEAIKKAEEKLK,0.31402878229989095,78.50719557497274,True,True,True,,87.296913956626,0.9,0.2,0.52248
|
| 212 |
+
210,G210,Generation_Rd1_48,LM,N/A,MAELSASVSGKTLTATAKVTSTEDLKGAVLVITFVKADGSLAGVGGSEPVDIKAGESKDVTVTAENVPEGTTKVVAAVGQVTDLENLKPISDPVEVTITG,0.10715110741757516,26.78777685439379,True,False,False,,86.36463523027102,0.68,0.25,0.75625
|
| 213 |
+
211,G211,Generation_Rd1_48,LM,N/A,MRISEAVRVATLKVLAENPEGLTVKELVEKVPKIVEEITGKPIKDVTSLRNSVSAALSRLSSKPPSPVVKAGEVTKDGRKYTVYKLTEEGKKLLEELEKR,0.15429707413853394,38.57426853463348,True,True,False,,88.44467056034608,0.9,0.22,0.71473
|
| 214 |
+
212,G212,Generation_Rd2_Manual_24,LM,N/A,MAVAGTYKITSDIPGVGEATLTLKEDGSSVTGTLEVPAAGGSAEIKDGKVEGDKVSFTYTVNVPGQEPIEVKAELTVKDGKLSGTASTPFGDAPVSGEKA,0.13229364622976908,33.07341155744227,True,True,True,,86.99826238600645,3.2e-11,0.43,0.86711
|
| 215 |
+
213,G213,Generation_Rd1_48,LM,N/A,METATEFVEAVIAGDYEKALELSAEQLQEGLTVEKLEEAKASLDAAGEYDSVGEPTTREDGGYTIVDVPVTLKDGSEVVLTVSIENESGKVAGLFVKPKE,0.27084891141880163,67.7122278547004,True,False,False,,86.5225409631302,7.2e-07,0.36,0.6981
|
| 216 |
+
214,G214,Generation_Rd1_48,LM,N/A,MKVEISNVTVSGEGLDRNAVVSAVNSKKSSIEKAAKDAGVTSGTATVKLVIGSDGKVKSATASASGVSSSVASKIASEVKGLSFPSTGKETTVTIPFTLK,0.03139902999505464,7.849757498763659,False,False,False,,88.22988155893422,2.8e-05,0.34,0.88246
|
| 217 |
+
215,G215,Generation_Rd1_48,LM,N/A,MTVAEKTLKNAAGQKVKAVLEASEDGSTGYVVITKAKDGKELDRVEISGEGLTDPEVSVSDADGGPVVTVTGTTAEGEPATFTVDLSKGKKPKVTETSAE,0.32056675575624544,80.14168893906135,True,False,False,,82.37853019011793,0.53,0.28,0.64831
|
| 218 |
+
216,G216,Generation_Rd1_48,LM,N/A,MTLQEYIDKLKPSLEEGAKNAGSPIEKVEVKASDDGKSITATVTVKDGTPEDVIKGLVEGIGGSVLDSAKEAVPDAENVTLTVVGVSSSGKELARVTKTF,0.41491778749891783,103.72944687472946,True,True,True,,86.08404559468715,0.89,0.21,0.54895
|
| 219 |
+
217,G217,Generation_Rd1_48,LM,N/A,MSITEEITKAVNEATSLSGSDPSKALEILKPVVEKAEKEGAPPLTVTRVKFVYATVASSVDKELAGKVLDEVIEDGKKLGESEPEVKDLVSAAENLKSTL,0.3071582954114238,76.78957385285595,True,True,True,,91.0878333852068,0.83,0.24,0.82118
|
| 220 |
+
218,G218,Generation_Rd1_48,LM,N/A,MTQEELDRIEKELPPKVKAVPEVEDASVSLSISGGSTSLYTTVTAKEGLEGEALEKLAENVAGVVKDEITKSDIKDKYDSVTVSATTKDGKSGSKTIDLK,0.3570257326165188,89.25643315412971,True,False,False,,83.7127830370605,3.1,,0.57739
|
| 221 |
+
219,G219,Generation_Rd1_48,LM,N/A,MSEETVKELTEISEGLSSGEEDVTATLEKLLPVIEDSSASDEAKVKALEITGDILENSADDVPPEVVSKIKSVVEPLKDGGSDAVKNAAGEVLDTIAEYQ,0.2836327323448656,70.9081830862164,True,False,False,,84.70923580434633,0.18,0.29,0.43856
|
| 222 |
+
220,G220,Generation_Rd1_48,LM,N/A,MEITKEQLKEIIREAVKEVLEENKDIKAPEVSAKVEGDKVVVTVKPPSDADSVTLTVTPDGGSPITGEKKSDGTYEFTLSEPLKDGQKVTATATKDGKTS,0.3061561526382395,76.53903815955987,True,False,False,,86.83595052652292,0.17,0.33,0.50191
|
| 223 |
+
221,G221,Generation_Rd1_48,LM,N/A,MATITKTATVTLDSPIKAGETVEKDVEVTGLPENAAGVSAVVASLSEDLKGKLTVSVLEAEISGTTAKFRVRITNVSGSDITPPAGSTSVTVKVTAIVEE,0.28516372438257664,71.29093109564415,True,True,True,,87.93084613994105,1.7,,0.55774
|
| 224 |
+
222,G222,Generation_Rd1_48,LM,N/A,MPEFRVKLPPEKAAEIVERVLKEKYKDVTITSKSVSGGKAVIEGTKKGLLSSTTVKVTVEVSSDGTATVRAEPVGSLVSASKILEDIKNALREAGAEEVK,0.06549880772623917,16.374701931559795,True,True,False,,85.3883913690933,3.1,,0.77698
|
| 225 |
+
223,G223,Generation_Rd2_Manual_24,LM,N/A,TPPAPPKASDFAGTYVGTDEEGEKVTVTLTVDAAGNVSGTAKDTEDSSEPVPLKGKVNADGKLEIVEDGEVVATGTLSADKKTLVIEAEGESEKITLTKQ,0.09947732072583444,24.86933018145861,True,False,False,,87.09331399353077,0.05,0.28,0.73171
|
| 226 |
+
224,G224,Generation_Rd2_Manual_24,LM,N/A,KPEIKVSLDKDSVEIEAGKSAEVTVKVENVPEGTKVTLSVSGEGVSASLEPSEITPPGEAKLTITAGDKEGEYTVTVTATSSDGKTTGSKELKITVKKAE,0.28115350681597817,70.28837670399454,True,True,True,,90.74575985194588,8.2e-08,0.44,0.87605
|
| 227 |
+
225,G225,Generation_Rd2_Manual_24,LM,N/A,MATVVRAEGEIDLDTAPELSEALEKAAGGSDGRPVVLDVSGVTFADSSFLNVLLRTHERVGKLVLAGTPPQVARLLEITGADKVLTVKDSVEEAVAAVSA,0.13122382806108723,32.80595701527181,True,True,False,,76.47276497468523,1.1e-19,0.55,0.83766
|
| 228 |
+
226,G226,Generation_Rd2_Distant_57,LM,N/A,MVTATITVSASDPSKAEEVAKNVVTTKLTEKGYTVKDVRVSGDGKVTAVIEVTGGSEDEIKKAAENAAREAGEEAKKELEKEGLTVTSVEVKVEPPKPSS,0.18208726366160208,45.521815915400516,True,True,True,,87.55560444750809,10.0,,0.54279
|
| 229 |
+
227,G227,Generation_Rd2_Distant_57,LM,N/A,MTPEEITKAVNDGLTEGLKGSPITDVKAEVTGEPPSFTVTATLTVSDSVSADEAKTILEGVAGGAAQALKDAGVTSGTVKVVGVRASDGKELASVEKPLS,0.20885437685969077,52.21359421492269,True,False,False,,85.7801244236998,0.21,0.23,0.44718
|
| 230 |
+
228,G228,Generation_Rd2_Distant_57,LM,N/A,MSELLEKLKASLGSTVSVKVTREAKNAAGEPVKEVTEYTGKLSAVNEADGTITLTDVTVTKTTPPGPDGKPVVEKKETVEIPISSIESVTFTKDGQTVTA,0.3398507202768766,84.96268006921915,True,True,False,,86.87667869887674,1.0,,0.4184
|
| 231 |
+
229,G229,Generation_Rd2_Distant_57,LM,N/A,MEKKTVTVSAAGESDPIVVPPGRPARVRATLTSSGTADVTLVSVPVKDGKPDDSKVLATITGLKAGETKELEIEAPEEGVAVKAKVTGGSASLTVEVEYE,0.25227839975840133,63.06959993960033,True,True,False,,87.79723699857843,0.067,0.23,0.46773
|
| 232 |
+
230,G230,Generation_Rd2_Distant_57,LM,N/A,MVKDSATTLSTSVTDLTTAVGEGKSLEELKPLAETIKTSADTIVEKSKEIEGSEPVVEAANKLVEVSKVIADGGSLDDVKAKAGEVKTASDALVTAAGGK,0.2338792115122648,58.4698028780662,True,True,False,,90.34305763417996,0.39,0.25,0.70741
|
| 233 |
+
231,G231,Generation_Rd2_Distant_57,LM,N/A,MDKKEFGAKVGEYGKLTVPVVKEPSAENVTKAGESVTGLVEAVNAADVSEEVKTSITTAAETLKSTIEGGGSKDEIKTAVIALRDATVAAGKELGVELPK,0.25967684498058474,64.91921124514619,True,True,False,,86.18377510050942,1.1,,0.52956
|
| 234 |
+
232,G232,Generation_Rd2_Distant_57,LM,N/A,MAKIKVKVTGLPKGTKEVTVTAEYTPVDDEGNEGEPEVVAEAEKKNVKAGKSATFTLKDVPDGGSVTITASAVLADGTELSDSEEVEVSGKTVKLTLEEA,0.16627183065390522,41.56795766347631,True,False,False,,87.07187992662959,0.76,0.22,0.60576
|
| 235 |
+
233,G233,Generation_Rd2_Distant_57,LM,N/A,MTKIEITGPITAENVQAVKDAIAKASGDVEVVISGTELDDGGADAVGEAIVEALEKGSKPVKVTVAAGSEPATILKEVLEEELKDLEGKKLSDRVSVSAA,0.22449890530402983,56.124726326007455,True,True,False,,85.88362975688092,0.87,0.22,0.64094
|
| 236 |
+
234,G234,Generation_Rd2_Distant_57,LM,N/A,MSEISSKITELEGKDLSSAENVKAVGEYVSGTVVPKLEELAGKAPEGEVKTLVEKVASDAKALGEAGSAGDTAKVTEIVTKLKEDVTSLTTKVNELKPAA,0.31250271876593766,78.12567969148442,True,True,False,,85.75613746041445,0.13,0.21,0.69023
|
| 237 |
+
235,G235,Generation_Rd2_Distant_57,LM,N/A,MSDPVKDAVSKIETAVTDLGTAIESGDKEKITSAGTTLTEASTSLKEAAGKLEGEKKTVVEGLSEKVTKAGELAKAEPVNVAELKPVFDEIKADIAKLKG,0.37075495020892035,92.6887375522301,True,True,True,,89.51803412698082,0.088,0.25,0.44611
|
| 238 |
+
236,G236,Generation_Rd2_Distant_57,LM,N/A,MPEYIVTVDVAGGSREAVNKAAEKAKEIVEKVLSSKPGASLKDFRVSEPVEVSGVKVPSATLELVVEGEDAGKLAEEIKKTIESETGLTVISVTARPLKG,0.24397498074815135,60.99374518703784,True,True,True,,85.51463768596741,5.6,,0.62557
|
| 239 |
+
237,G237,Generation_Rd2_Distant_57,LM,N/A,MATVSEIKTLLETAENKVEEAITAAGTDGGSDSGVKPILTEAKDAVTKAEGEATSPEVKELLEKAESKIEEAISAAGSDGGAKPVLTEAKDLVTQAEGKL,0.27265198104308813,68.16299526077204,True,True,False,,87.58504732555899,1.3,,0.49624
|
| 240 |
+
238,G238,Generation_Rd2_Distant_57,LM,N/A,MEAENAKLTELEKKLPPEVKAVSADVTDVRVTATLKDGKYTGLIVTTTVKEGSDGGALGERIAGEITKVVKDSGVASEVGTPSVQVLDAAGKPLGSKTFG,0.1961497751760811,49.03744379402027,True,True,False,,86.26746860832306,0.79,0.23,0.45217
|
| 241 |
+
239,G239,Generation_Rd2_Distant_57,LM,N/A,KAEEERKAKEAEEKRLAEIKKITDSVKSSVSGVTVGTPTEKDGKLVVPVTVSSASNAESTAKTVLTKLKDAGYTGEVIVEYKGSKVATSTLSGGSFTISK,0.15768906005559827,39.42226501389957,True,True,True,,85.66091734445378,0.75,0.26,0.44084
|
| 242 |
+
240,G240,Generation_Rd2_Distant_57,LM,N/A,MSSSEITGLVTTLTESVKSLDGGSDLETATNAADTIKIIAETPENVGPLKDAGAVEAVKAVVTKLEELSGKEGVSDEDKTSAGEVLTVAKEALEVIEKAS,0.2445097638285768,61.1274409571442,True,True,False,,88.87406036196427,1.5,,0.46387
|
| 243 |
+
241,G241,Generation_Rd2_Distant_57,LM,N/A,MSDDEIVEKLTAELKKSAENAAKDGGSPISGLITDVKVDRAGKTVTATVSESVPPEVSTAVGEVLAGVAGPVIKASDPSLEGYRVVVTGADGKELGSKDL,0.2825679200185735,70.64198000464337,True,True,True,,84.74036519803893,0.7,0.29,0.57643
|
| 244 |
+
242,G242,Generation_Rd2_Distant_57,LM,N/A,MSESEIISSITSATSTLKSSSPSDADLVTALTTLEDTLVIAVNSGKPEFVKAAKDGGAVEAVKGVKERAEKAGEEGGSKEVVDRAGKVLELLEPPPAPSA,0.2989346108710877,74.73365271777192,True,True,True,,87.48056595556326,0.56,0.29,0.41786
|
| 245 |
+
243,G243,Generation_Rd2_Distant_57,LM,N/A,MSITVTVKDGKVVISGDGGSKEVEGLDKLTETLKSEIEKAVKEGKPVKVTIEADSSVSEDDVNKIKTAAENAIKELKDKGELPSDAKVPENVEVKVEKKS,0.3876533576037763,96.91333940094407,True,True,True,,88.55976311534685,0.27,0.24,0.37726
|
| 246 |
+
244,G244,Generation_Rd2_Distant_57,LM,N/A,MATVKEGVTSARDAVNKTLESLKAEPVDVEKVKADLTTAKDSVAKAKETAEKDGKPEVVTGLTELDASITKAGEAKTVEELRAALEPVSKSLSDLAGKLG,0.35559134729502334,88.89783682375584,True,True,True,,90.20816445050598,0.14,0.22,0.53916
|
| 247 |
+
245,G245,Generation_Rd2_Distant_57,LM,N/A,MSIKSDIEAIVTKLNAATTPEEKKTVAGELSTKAGELKTSLEGKEVPENVKPVVTDLVEKVTALRDAAVKAKDGGADVSAEITAVQTSVTEISGKLEPLK,0.10007647042899974,25.019117607249935,True,False,False,,85.16136920836401,3.2,,0.76591
|
| 248 |
+
246,G246,Generation_Rd2_Distant_57,LM,N/A,MSISEQVTEIKGLVTAIEGATSAEEVKTKAGELSTKIKELKDSVKDKVDGDLLTAVSDAGKALKEAGSKPDASLDDVKAAVTTATEKLNEVVAKLEPPAA,0.3820963191385863,95.52407978464659,True,True,True,,87.18511383337285,0.11,0.28,0.4967
|
| 249 |
+
247,G247,Generation_Rd2_Distant_57,LM,N/A,MSEVISDLEKGKTLVTEAVNAGSPEEIKSKATEGLSVVESAIEKAKDVPGKETAVSLLEDGKKLITDAVAAGEAGNVDEVKRLASEGLTKVEEGIAALKG,0.3756393555782181,93.90983889455453,True,True,True,,93.67002727367768,2.5,,0.84527
|
| 250 |
+
248,G248,Generation_Rd2_Manual_24,LM,N/A,MSEEIKKTITDLTEKVSGEPSAENVKAALPALKEGLENEDAGVRYRSVTAVGNIAEKAKDVPEVVEAVKELKPVLEKLSESDPDSTVRLRAKWALGKIEG,0.36140554984456064,90.35138746114016,True,True,True,,89.57056780347637,0.0084,0.37,0.77568
|
| 251 |
+
249,G249,Generation_Rd2_Manual_24,LM,N/A,MEREVLRILKEAGFRVRRAAGSKGYDIVAEKDGKKYLIQVTSGKSPIKPEKVKELVEKAKAENAVPVIVTKTGRVSLPSEIEGVKVLTLEDLKKLLEESS,0.03994438270154638,9.986095675386593,False,False,False,,81.39408555233771,1e-05,0.35,0.73786
|
| 252 |
+
250,G250,Generation_Rd2_Manual_24,LM,N/A,KVEASADKTTLKAGESTKLTVKVTPEGGKKVTITGLTAEGVKIEPSSVELPEVEPGKPVEVTFTVSAENATEGTKEITVTAKAEDGSEGSAKVSVTVEKK,0.2885688997753328,72.1422249438332,True,True,False,,89.35600792244621,0.02,0.33,0.85551
|
| 253 |
+
251,G251,Generation_Rd2_Manual_24,LM,N/A,MANILVIGRVETITSTVKGLLEKEGYTVTTAVTDEEGIAKFKEAGKQDLVLISAGVSDPAEVERLTGEIKKVSSVPVVVHYDGGSKPEDIVADVKAALAK,0.3280431605407768,82.0107901351942,True,True,True,,84.67222933604307,1.2e-07,0.41,0.86648
|
| 254 |
+
252,G252,Generation_Rd2_Manual_24,LM,N/A,MTVNSADDVKAAIEKAKSEGKTELVIGEGVTDEVLEEIAKETTITKVTLPSTVSVAGVEKLAENATGLTSITVPSSLSDEDKQKIKDAVTAKNGGSVTVG,0.2631119641538814,65.77799103847035,True,True,False,,88.24861387282598,0.025,0.27,0.58312
|
| 255 |
+
253,G253,Generation_Rd2_Manual_24,LM,N/A,PDFELSAPPEVTVEKGKSAETTITVTAKDGFSDTVKLEASVSPSSGLTATLEPSEVKPGGSSKLTISTSSSTPVGEYTVTVTGTSGSLTKTKEIKVKVTE,0.339728702528489,84.93217563212225,True,True,True,,87.97385013811632,6.8e-14,0.53,0.86313
|
| 256 |
+
254,G254,Generation_Rd2_Manual_24,LM,N/A,MTVTEKLSSDSVSERREAAEELAETAESDPESVTPEDVPGLIEALDDGSPVVRANAASALGEIGEPAKDAGAVERLTELKENDENSLVRVKAGKALEKIE,0.19252380707578953,48.130951768947384,True,False,False,,88.1057325229771,1.5e-06,0.4,0.7204
|
| 257 |
+
255,G255,Generation_Rd2_Manual_24,LM,N/A,MSYTATVTITLSGVPSDKAGEAANKAKEIAENVAREKGLSASVRVSSISGGSVTVTLTVSAPSKEEAVKTAEEKVKPEIEKKLKDELGVEVTSVSVSEPS,0.2160377889856688,54.0094472464172,True,True,False,,88.04311436876847,0.043,0.25,0.74055
|
| 258 |
+
256,G256,Generation_Rd2_Distant_57,LM,N/A,MPKFRVTVTLEVSAPEGTTPPSPSEIRDKVVEKLREAGASDVSVSTGYVGGKYTITATLTVEGSKEDAEKKAKETAENAVKEAVPGAEVKDVKVTKVEEL,0.3583463973557906,89.58659933894765,True,True,False,,88.59396840807321,1.3,,0.65086
|
| 259 |
+
257,G257,Generation_Rd2_Manual_24,LM,N/A,MVKDGVTGLKEGVAKLKSEADSGGSVDTIKTTATDLKGKWDEIEPKVKEKSPEEYTKVETSIDELVKAAEAKDAATVKTKAGEVSTSLDAVITKLESASK,0.2574744851283073,64.36862128207682,True,False,False,,91.88966367944136,0.0001,0.34,0.92678
|
| 260 |
+
258,G258,Generation_Rd2_Manual_24,LM,N/A,MKVAVEEGLTSVKKALEEAGFEVVSLDEVGEDVDAVVVRAGSAPPERVKEIIEKYKGKPVIVNASGRLAEIAKEYGVTAITGGSPSETVEKIKELLEKLK,0.27630556250521865,69.07639062630466,True,True,False,,86.07982206494033,0.00066,0.33,0.63824
|
| 261 |
+
259,G259,Generation_Rd2_Manual_24,LM,N/A,MEELIKELESSDVEKRIEAVTKLSEIGPPAKDAVPSLVKLLKDEDSGVRAGTATVLGEIAETSPEVVKSAIPDLEKVSKTDENEYVRVAAENALKKITGK,0.36805364210366004,92.013410525915,True,True,True,,93.45533278402938,6e-09,0.47,0.89765
|
| 262 |
+
260,G260,Generation_Rd2_Manual_24,LM,N/A,MKVKVTASGSVSSAKLRVTITPEDGGSPIVKEEEVSLSAGQTVEKEITLSEDDAKKLEGKKAKIKVEALDKDGNVVATGESDPVELKPGETKEVTVTLTK,0.4037847386394065,100.94618465985162,True,True,False,,90.01503428912336,1.8,,0.62789
|
| 263 |
+
261,G261,Generation_Rd2_Distant_57,LM,N/A,MRIEEVVKLPLDEAFRVAKEAAENAGLKDVKVTSSTPTTITATGKSLVGSASVTVTLERVSDSETKVIVEGKPSGGLIGEKKARDAVNKVLEEIKRRAGG,0.14921872002077485,37.30468000519372,True,True,True,,87.86129988150013,0.44,0.22,0.73807
|
| 264 |
+
262,G262,Generation_Rd2_Distant_57,LM,N/A,MAGVEAIKADVEKLKTAKPEEIVPLATSLKEKVDALVKEVEGLTVSAENKAKVTEAVTLIKSGADLVIEGTTSKDSAKISEGVTKVLEGITKILEVVAGK,0.4043522690967771,101.08806727419427,True,True,False,,91.76721563412217,0.048,0.26,0.77123
|
| 265 |
+
263,G263,Generation_Rd2_Distant_57,LM,N/A,MSIKENIVKASESVSTAVTEAGKEPVNVETAKTSLTDAVTVLEGLVPELKADGKDDVATKLEEGVTKAKEGIEKVGSKDEVSAGLTTLSEAITAAGEALK,0.1432357725590353,35.808943139758824,True,False,False,,88.44608194385249,0.33,0.26,0.46556
|
| 266 |
+
264,G264,Generation_Rd2_Distant_57,LM,N/A,MSEVETVKASIQEGIDAANKVSADGGSVAEIKTSLEPVVTKLTEAKGKSSDPKVTTLLDEAITAVNAVKPEEGADVATIKAGLTPVIEKLKEALALVPAA,0.35828339273400983,89.57084818350246,True,True,True,,86.91840993536144,0.33,0.3,0.74084
|
| 267 |
+
265,G265,Generation_Rd2_Distant_57,LM,N/A,MSEIAGKVKEVVTKVEGVLSDSSKTPEEIKAAAGEVSTLVGEAVTAVSGKPGAESVATDLKNAADALKSAAEGGSKDGLTTAKTSLETAITKLTELANSL,0.32759017206237123,81.8975430155928,True,True,True,,92.24300254982056,2.9,,0.71623
|
| 268 |
+
266,G266,Generation_Rd2_Manual_24,LM,N/A,PKIEEVSVSPSELKPGEKTTITAKISDPEGGSGIDTSSIKVEINGEDVTSKAKVEKVDENSATLTVEYTPPEPPLPPGKYTVTIRVKDKAGNEATETKEF,0.35890439604736646,89.72609901184161,True,True,True,,88.44787984007462,2.7e-05,0.41,0.75919
|
| 269 |
+
267,G267,Generation_Rd2_Manual_24,LM,N/A,MTGAKVEPATAKPGDEVKVTATVNAAEEGEYTVSASLSGEGIGGSKSEPVKLEKGENEVTITLTVPEDAEAGKADVTSVSVTDKDGKRVASDSAPSFTVE,0.24711120672212794,61.77780168053199,True,False,False,,89.24986482953167,0.0055,0.38,0.70965
|
| 270 |
+
268,,Fixed_Rd1_48,ground truth,1QYS,DIQVQVNIDDNGKNFDYTYTVTTESELQKVLNELMDYIKKQGAKRVRISITARTKKEAEKFAAILIKVFAELGYNDINVTFDGDTVTVEGQL,0.41197595017913285,102.99398754478321,True,False,False,0.8288429379463196,89.17377945545974,14.0,,
|
| 271 |
+
269,,Fixed_Rd1_48,ground truth,6CZJ,SALAQQLPGTWKMDVTSEDGVRTTGQMHIQPKTPTTMDVTLTGTHADGKPFTGQGKITVKTPTTVDITVTYEDGSTATGQLTVDSPTQFKFDMTASDGTRFTGTVQRQS,0.39017888440813564,97.5447211020339,True,True,True,1.0148541927337646,91.31992370254028,7.1,,
|
| 272 |
+
270,,Fixed_Rd1_48,ground truth,6W3W,DEDREWIERFNRILIESLTTGDEHTLKELIDPNARLVINGRDIHGREEFVRLLSEMGVKHFHVHDVKVVGNKAVTRGILYFNGREYDVDVFTRKIDGRWLYESLEVK,0.04445695864286616,11.11423966071654,False,False,False,1.4773865938186646,85.96058814924257,8.2,,
|
| 273 |
+
271,,Fixed_Rd1_48,ground truth,6WVS,DILIVNATDVDEMLKQVEILRRLGAKQIAVVSDDWRILQEALKKGGDILIVNATDVDEMLKQVEILRRLGAKQIAVVSDDWRILQEALKKGGDILIVNATDVDEMLKQVEILRRLGAKQIAVVSDDWRILQEALKKGGDILIVNATDVDEMLKQVEILRRLGAKQIAVVSDDWRILQEALKK,0.28575451397545437,71.43862849386359,True,True,True,0.8460836410522461,90.9020930370598,,,
|
| 274 |
+
272,,Fixed_Rd2_compare_LM_24,ground truth,5L33,PEEEKAARLFIEALEKGDPELMRKVISPDTRMEDNGREFTGDEVVEYVKEIQKRGEQWHLRRYTKEGNSWRFEVQVDNNGQTEQWEVQIEVRNGRIKRVTITHV,0.4303842742590548,107.5960685647637,True,True,True,,92.43271477764092,4.8,,
|
| 275 |
+
273,,Fixed_Rd2_compare_LM_24,ground truth,6D0T,MVDAAQYFPGTWEFRFRSSDGKEYRGTVEMQPRTPTEIEIRFKGQSSDGRPVEGRGSIEVRSPYEYRFEMQSSDGARWEGTLQVRSPDSVEVRFKSSDGREYSGEFRRQEG,0.401660220780138,100.41505519503451,True,False,False,,89.34978999176117,13.0,,
|
| 276 |
+
274,,Fixed_Rd2_compare_LM_24,ground truth,6MRS,GSGRQEKVLKSIEETVRKMGVTMETHRSGNEVKVVIKGLHESQQEQLKKDVEETSKKQGVETRIEFHGDTVTIVVRE,0.19924157322399905,49.81039330599976,True,False,False,,92.79344239462696,43.0,,
|
| 277 |
+
275,,Fixed_Rd2_compare_LM_24,ground truth,6NUK,GSTVRIEIRFTNMRREEVQKELEKFKERLKELEKRTGSEIRIEIEERDGEVRVEVEIRNSHEEEVRQIIEEIERWVRKMGGELRVEK,0.4075636222846284,101.89090557115709,True,True,True,,89.86144181933138,4.7,,0.38491
|
weight/esm-main/examples/lm-design/paper-data/uniref90_jackhmmer_purge_ids.txt
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/examples/lm-design/utils/__init__.py
ADDED
|
File without changes
|
weight/esm-main/examples/lm-design/utils/constants.py
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
#
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
|
| 6 |
+
from typing import Optional, NamedTuple
|
| 7 |
+
from enum import Enum
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
# Note ordering is important, correlates with Designer.py::coords[:, angle-index]
|
| 11 |
+
COORDS_ANGLE_NAMES = ['omega', 'theta', 'phi']
|
| 12 |
+
COORDS4D_NAMES = ['dist'] + COORDS_ANGLE_NAMES
|
| 13 |
+
COORDS6D_NAMES = COORDS4D_NAMES + ['torsion_phi', 'torsion_psi']
|
weight/esm-main/examples/lm-design/utils/linear_projection.py
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
#
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
#
|
| 6 |
+
import logging
|
| 7 |
+
from collections import defaultdict
|
| 8 |
+
from functools import partial
|
| 9 |
+
from pathlib import Path
|
| 10 |
+
import torch
|
| 11 |
+
import torch.nn.functional as F
|
| 12 |
+
import torch.nn as nn
|
| 13 |
+
from collections import namedtuple
|
| 14 |
+
|
| 15 |
+
import os
|
| 16 |
+
import sys
|
| 17 |
+
import torch
|
| 18 |
+
from pathlib import Path
|
| 19 |
+
from argparse import Namespace
|
| 20 |
+
from omegaconf import DictConfig, OmegaConf
|
| 21 |
+
from typing import Dict, Optional, List, Callable, Union
|
| 22 |
+
import math
|
| 23 |
+
|
| 24 |
+
BinningScheme = namedtuple(
|
| 25 |
+
'BinningScheme',
|
| 26 |
+
[
|
| 27 |
+
'N_BINS',
|
| 28 |
+
'CUTOFF_BIN',
|
| 29 |
+
'MIN_DIST',
|
| 30 |
+
'MAX_DIST',
|
| 31 |
+
'CONTACT_DIST',
|
| 32 |
+
'THETA_BINS',
|
| 33 |
+
'PHI_BINS',
|
| 34 |
+
'OMEGA_BINS',
|
| 35 |
+
'TORSION_BINS',
|
| 36 |
+
],
|
| 37 |
+
)
|
| 38 |
+
LinearProjectionDist_1A = BinningScheme(
|
| 39 |
+
N_BINS=18,
|
| 40 |
+
CUTOFF_BIN=5, # conservative cutoff for 8 angstroms exact ((20-2.5)/16*5 + 2.5 = ~7.9)
|
| 41 |
+
MIN_DIST=2.5,
|
| 42 |
+
MAX_DIST=20,
|
| 43 |
+
CONTACT_DIST=8,
|
| 44 |
+
THETA_BINS=18,
|
| 45 |
+
PHI_BINS=8,
|
| 46 |
+
OMEGA_BINS=18,
|
| 47 |
+
TORSION_BINS=50,
|
| 48 |
+
)
|
| 49 |
+
BIN_FLAG_TO_ENUM = {
|
| 50 |
+
'LinearProjectionDist_1A': LinearProjectionDist_1A,
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
logger = logging.getLogger(__name__)
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
def extract_features(
|
| 57 |
+
model,
|
| 58 |
+
inp: torch.Tensor,
|
| 59 |
+
has_cls: bool = True,
|
| 60 |
+
has_eos: bool = True,
|
| 61 |
+
need_head_weights: Union[bool, Dict] = False,
|
| 62 |
+
):
|
| 63 |
+
"""
|
| 64 |
+
Inflexible way of dealing with the mess of inputs with cls tokens,
|
| 65 |
+
need embedding without, and LSTM doesnt want cls token in the first place.
|
| 66 |
+
"""
|
| 67 |
+
|
| 68 |
+
out_start_idx = 1 if has_cls else 0
|
| 69 |
+
out_end_idx = -1 if has_eos else None
|
| 70 |
+
inp = inp.argmax(dim=-1) # output [B, T]
|
| 71 |
+
result = model(inp, need_head_weights=need_head_weights)
|
| 72 |
+
attentions = result["attentions"]
|
| 73 |
+
|
| 74 |
+
batch, layer, head, seqlen, seqlen2 = attentions.size()
|
| 75 |
+
assert seqlen == seqlen2
|
| 76 |
+
attentions = attentions.reshape(
|
| 77 |
+
batch, layer * head, seqlen, seqlen
|
| 78 |
+
)
|
| 79 |
+
emb = result["logits"]
|
| 80 |
+
|
| 81 |
+
return emb[:, out_start_idx:out_end_idx], \
|
| 82 |
+
attentions[:, :, out_start_idx:out_end_idx, out_start_idx:out_end_idx]
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
class LinearProjectionDistogramModel(nn.Module):
|
| 86 |
+
"""
|
| 87 |
+
This model regresses angles and distances from the attention maps of the LM
|
| 88 |
+
"""
|
| 89 |
+
|
| 90 |
+
def __init__(self):
|
| 91 |
+
super().__init__()
|
| 92 |
+
self.base_model = None # To be initialized later
|
| 93 |
+
self.num_heads = 20 * 33
|
| 94 |
+
self.bin_enum = BIN_FLAG_TO_ENUM['LinearProjectionDist_1A']
|
| 95 |
+
self._s1 = self.bin_enum.N_BINS
|
| 96 |
+
self._s2 = self._s1 + self.bin_enum.THETA_BINS
|
| 97 |
+
self._s3 = self._s2 + self.bin_enum.PHI_BINS
|
| 98 |
+
self._s4 = self._s3 + self.bin_enum.OMEGA_BINS
|
| 99 |
+
|
| 100 |
+
conv_in_channels = self.num_heads
|
| 101 |
+
|
| 102 |
+
self.conv1 = torch.nn.Conv2d(
|
| 103 |
+
in_channels=conv_in_channels,
|
| 104 |
+
out_channels=self.bin_enum.N_BINS + self.bin_enum.OMEGA_BINS,
|
| 105 |
+
kernel_size=1,
|
| 106 |
+
stride=1,
|
| 107 |
+
padding=0,
|
| 108 |
+
)
|
| 109 |
+
|
| 110 |
+
self.conv2 = torch.nn.Conv2d(
|
| 111 |
+
in_channels=conv_in_channels,
|
| 112 |
+
out_channels=self.bin_enum.THETA_BINS + self.bin_enum.PHI_BINS,
|
| 113 |
+
kernel_size=1,
|
| 114 |
+
stride=1,
|
| 115 |
+
padding=0,
|
| 116 |
+
)
|
| 117 |
+
|
| 118 |
+
|
| 119 |
+
def forward(self, src_tokens, **kwargs):
|
| 120 |
+
_, attentions_asym = extract_features(self.base_model, src_tokens, need_head_weights=True)
|
| 121 |
+
|
| 122 |
+
def symmetrize(contacts, scale=1.0):
|
| 123 |
+
return scale * (contacts + contacts.transpose(-1, -2))
|
| 124 |
+
|
| 125 |
+
attentions_sym = symmetrize(attentions_asym)
|
| 126 |
+
|
| 127 |
+
# [B, C, N, N] -> [B, output_channels, N, N]
|
| 128 |
+
out1 = self.conv1(attentions_sym)
|
| 129 |
+
out2 = self.conv2(attentions_asym)
|
| 130 |
+
return {
|
| 131 |
+
'logits': out1[:, :self.bin_enum.N_BINS:, :, :],
|
| 132 |
+
'omega_logits': out1[:, self.bin_enum.N_BINS:, :, :],
|
| 133 |
+
'theta_logits': out2[:, :self.bin_enum.THETA_BINS, :, :],
|
| 134 |
+
'phi_logits': out2[:, self.bin_enum.THETA_BINS:, :, :],
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
|
| 138 |
+
|
weight/esm-main/examples/lm-design/utils/lm.py
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
#
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
|
| 6 |
+
import logging
|
| 7 |
+
import math
|
| 8 |
+
logger = logging.getLogger(__name__)
|
| 9 |
+
from typing import Optional, Dict, List, Any, Union
|
| 10 |
+
|
| 11 |
+
import torch
|
| 12 |
+
from torch import nn
|
| 13 |
+
import torch.nn.functional as F
|
| 14 |
+
from abc import ABC, abstractmethod
|
| 15 |
+
|
| 16 |
+
from .tensor import is_1hot_tensor, add_eos_bos
|
| 17 |
+
from .masking import apply_mask, assert_valid_mask
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
def lm_marginal(mlm, x, mask):
|
| 21 |
+
"""
|
| 22 |
+
Utility to extract logprobs from an MLM, given an input tensor and a mask.
|
| 23 |
+
NOTE:
|
| 24 |
+
- **Mask each set bit in mask's L-dim separately.** - (as opposed to all at once.)
|
| 25 |
+
- Therefore, performs B*n forward passes.
|
| 26 |
+
- In the future, we might try just using a single forward pass per sequence = B passes.
|
| 27 |
+
- We had some success with something akin to this in the ESM-1V paper.
|
| 28 |
+
Args:
|
| 29 |
+
x: [B, L, K]
|
| 30 |
+
mask: [B, L, 1] # n masks in L dim
|
| 31 |
+
if None, use a mask of all ones.
|
| 32 |
+
Returns:
|
| 33 |
+
logits: [B, n, K]
|
| 34 |
+
"""
|
| 35 |
+
B, L, K = x.shape
|
| 36 |
+
if mask is None:
|
| 37 |
+
mask = torch.ones(B, L, 1, dtype=torch.bool, device=x.device)
|
| 38 |
+
n = assert_valid_mask(mask, x=x) # this is gross.
|
| 39 |
+
|
| 40 |
+
# Get coords of set bits. [B*n]
|
| 41 |
+
b_coords, l_coords, _ = mask.nonzero(as_tuple=True) # [B*n], [B*n]
|
| 42 |
+
# Double-check of mask assumptions.
|
| 43 |
+
assert torch.equal(b_coords, torch.repeat_interleave(torch.arange(B).to(x.device), n).to(x.device))
|
| 44 |
+
|
| 45 |
+
# naming: _m1 = mask1. (B*n leading dim.)
|
| 46 |
+
x_m1 = x[b_coords] # [B*n, L, K]
|
| 47 |
+
mask_m1 = F.one_hot(l_coords, L).unsqueeze(-1).bool() # [B*n, L, 1]
|
| 48 |
+
|
| 49 |
+
# Apply mask, mlm forward, select logits.
|
| 50 |
+
x_masked_m1 = apply_mask(x_m1, mask_m1, mlm.vocab.mask_idx) # [B*n, L, K]
|
| 51 |
+
lm_logits_m1 = mlm(x_masked_m1)['logits']
|
| 52 |
+
lm_logits_select = lm_logits_m1.masked_select(mask_m1).reshape(B, n, K) # [B, n, K]
|
| 53 |
+
|
| 54 |
+
# Mlm outputs 'logits' = not logprobabilities, but pre-softmax values.
|
| 55 |
+
# We must log-softmax here to convert from pre-softmax logits -> logprobs.
|
| 56 |
+
lm_logprobs_select = torch.log_softmax(lm_logits_select, axis=-1)
|
| 57 |
+
|
| 58 |
+
return lm_logprobs_select # [B, n, K]
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
class WrapLM(nn.Module, ABC):
|
| 62 |
+
def __init__(self, LM, vocab):
|
| 63 |
+
super().__init__()
|
| 64 |
+
self.model = LM
|
| 65 |
+
self.vocab = vocab
|
| 66 |
+
|
| 67 |
+
@abstractmethod
|
| 68 |
+
def forward(self, seq1h, **kwargs):
|
| 69 |
+
raise NotImplementedError
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
class WrapLmEsm(WrapLM):
|
| 73 |
+
def forward(self, seq1h):
|
| 74 |
+
B, L, K = seq1h.shape
|
| 75 |
+
seq1h, seq_start_idx, seq_end_idx = self._prepare_seq(seq1h)
|
| 76 |
+
seq = seq1h.argmax(-1)
|
| 77 |
+
|
| 78 |
+
out = self.model(seq)
|
| 79 |
+
|
| 80 |
+
return {
|
| 81 |
+
'logits': out['logits'][:, seq_start_idx:seq_end_idx, :K],
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
def _prepare_seq(self, seq1h):
|
| 85 |
+
assert is_1hot_tensor(seq1h)
|
| 86 |
+
B, L, K = seq1h.shape
|
| 87 |
+
# Prepend bos/cls and append eos.
|
| 88 |
+
seq1h = add_eos_bos(seq1h, bos_idx=self.vocab.cls_idx, eos_idx=self.vocab.eos_idx)
|
| 89 |
+
seq_start_idx = 1
|
| 90 |
+
seq_end_idx = L + 1
|
| 91 |
+
|
| 92 |
+
# In some cases, a vocab padded to 64 positions
|
| 93 |
+
# with dummy character was used.
|
| 94 |
+
# As a workaround, pad K dimension, then remove this portion after
|
| 95 |
+
embed_dim = self.model.embed_tokens.weight.size(0)
|
| 96 |
+
if embed_dim != K:
|
| 97 |
+
seq1h = torch.cat([
|
| 98 |
+
seq1h,
|
| 99 |
+
torch.zeros(B, L+2, embed_dim - K).to(seq1h)
|
| 100 |
+
], -1)
|
| 101 |
+
|
| 102 |
+
return seq1h, seq_start_idx, seq_end_idx
|
weight/esm-main/examples/lm-design/utils/loss.py
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
#
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
|
| 6 |
+
import torch
|
| 7 |
+
import torch.nn.functional as F
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
def get_cce_loss(probs, labels, mask=None, eps=1e-8,):
|
| 11 |
+
"""
|
| 12 |
+
Calculates the categorical cross entropy and averages result.
|
| 13 |
+
Using optional mask to control which labels are included in the loss.
|
| 14 |
+
Args:
|
| 15 |
+
probs (torch.float32): [B, L, L, num_categories]
|
| 16 |
+
labels (torch.int32): [B, L, L]
|
| 17 |
+
mask (torch.float32): [B, L, L]
|
| 18 |
+
Returns:
|
| 19 |
+
average_cce (torch.float32): [B]
|
| 20 |
+
"""
|
| 21 |
+
if mask is None:
|
| 22 |
+
B, L = probs.shape[:2]
|
| 23 |
+
mask = torch.ones(B, L, L).to(probs.device)
|
| 24 |
+
|
| 25 |
+
num_categories = probs.shape[-1]
|
| 26 |
+
labels_onehot = F.one_hot(labels, num_categories)
|
| 27 |
+
cce_ij = -torch.sum(labels_onehot * torch.log(probs+eps), axis=-1)
|
| 28 |
+
average_cce = torch.sum(mask * cce_ij, axis=(1, 2)) / torch.sum(mask, axis=(1, 2))
|
| 29 |
+
return average_cce
|
weight/esm-main/examples/lm-design/utils/ngram_stats/bigram_seg.p
ADDED
|
Binary file (8.86 kB). View file
|
|
|
weight/esm-main/examples/lm-design/utils/ngram_stats/monogram_seg.p
ADDED
|
Binary file (382 Bytes). View file
|
|
|
weight/esm-main/examples/protein-programming-language/language/__init__.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from language.energy import (
|
| 2 |
+
MaximizeGlobularity,
|
| 3 |
+
MaximizePLDDT,
|
| 4 |
+
MaximizePTM,
|
| 5 |
+
MaximizeSurfaceExposure,
|
| 6 |
+
MinimizeCRmsd,
|
| 7 |
+
MinimizeDRmsd,
|
| 8 |
+
MatchSecondaryStructure,
|
| 9 |
+
MinimizeSurfaceExposure,
|
| 10 |
+
MinimizeSurfaceHydrophobics,
|
| 11 |
+
SymmetryRing,
|
| 12 |
+
)
|
| 13 |
+
from language.folding_callbacks import EsmFoldv1, FoldingCallback, FoldingResult
|
| 14 |
+
from language.optimize import run_simulated_annealing
|
| 15 |
+
from language.program import ProgramNode
|
| 16 |
+
from language.sequence import (
|
| 17 |
+
ConstantSequenceSegment,
|
| 18 |
+
FixedLengthSequenceSegment,
|
| 19 |
+
VariableLengthSequenceSegment,
|
| 20 |
+
sequence_from_atomarray,
|
| 21 |
+
)
|
| 22 |
+
from language.utilities import get_atomarray_in_residue_range, pdb_file_to_atomarray
|
weight/esm-main/examples/protein-programming-language/language/energy.py
ADDED
|
@@ -0,0 +1,317 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
|
| 6 |
+
from abc import ABC, abstractmethod
|
| 7 |
+
from typing import List, Optional
|
| 8 |
+
|
| 9 |
+
import numpy as np
|
| 10 |
+
from biotite.structure import annotate_sse, AtomArray, rmsd, sasa, superimpose
|
| 11 |
+
|
| 12 |
+
from language.folding_callbacks import FoldingResult
|
| 13 |
+
from language.utilities import get_atomarray_in_residue_range
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
class EnergyTerm(ABC):
|
| 17 |
+
def __init__(self) -> None:
|
| 18 |
+
pass
|
| 19 |
+
|
| 20 |
+
@abstractmethod
|
| 21 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 22 |
+
pass
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
class MaximizePTM(EnergyTerm):
|
| 26 |
+
def __init__(self) -> None:
|
| 27 |
+
super().__init__()
|
| 28 |
+
|
| 29 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 30 |
+
del node
|
| 31 |
+
return 1.0 - folding_result.ptm
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
class MaximizePLDDT(EnergyTerm):
|
| 35 |
+
def __init__(self) -> None:
|
| 36 |
+
super().__init__()
|
| 37 |
+
|
| 38 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 39 |
+
del node
|
| 40 |
+
return 1.0 - folding_result.plddt
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
class SymmetryRing(EnergyTerm):
|
| 44 |
+
def __init__(self, all_to_all_protomer_symmetry: bool = False) -> None:
|
| 45 |
+
super().__init__()
|
| 46 |
+
self.all_to_all_protomer_symmetry: bool = all_to_all_protomer_symmetry
|
| 47 |
+
|
| 48 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 49 |
+
protomer_nodes = node.get_children()
|
| 50 |
+
protomer_residue_ranges = [
|
| 51 |
+
protomer_node.get_residue_index_range() for protomer_node in protomer_nodes
|
| 52 |
+
]
|
| 53 |
+
|
| 54 |
+
centers_of_mass = []
|
| 55 |
+
for start, end in protomer_residue_ranges:
|
| 56 |
+
backbone_coordinates = get_backbone_atoms(
|
| 57 |
+
folding_result.atoms[
|
| 58 |
+
np.logical_and(
|
| 59 |
+
folding_result.atoms.res_id >= start,
|
| 60 |
+
folding_result.atoms.res_id < end,
|
| 61 |
+
)
|
| 62 |
+
]
|
| 63 |
+
).coord
|
| 64 |
+
centers_of_mass.append(get_center_of_mass(backbone_coordinates))
|
| 65 |
+
centers_of_mass = np.vstack(centers_of_mass)
|
| 66 |
+
|
| 67 |
+
return (
|
| 68 |
+
float(np.std(pairwise_distances(centers_of_mass)))
|
| 69 |
+
if self.all_to_all_protomer_symmetry
|
| 70 |
+
else float(np.std(adjacent_distances(centers_of_mass)))
|
| 71 |
+
)
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
def get_backbone_atoms(atoms: AtomArray) -> AtomArray:
|
| 75 |
+
return atoms[
|
| 76 |
+
(atoms.atom_name == "CA") | (atoms.atom_name == "N") | (atoms.atom_name == "C")
|
| 77 |
+
]
|
| 78 |
+
|
| 79 |
+
|
| 80 |
+
def _is_Nx3(array: np.ndarray) -> bool:
|
| 81 |
+
return len(array.shape) == 2 and array.shape[1] == 3
|
| 82 |
+
|
| 83 |
+
|
| 84 |
+
def get_center_of_mass(coordinates: np.ndarray) -> np.ndarray:
|
| 85 |
+
assert _is_Nx3(coordinates), "Coordinates must be Nx3."
|
| 86 |
+
return coordinates.mean(axis=0).reshape(1, 3)
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
def pairwise_distances(coordinates: np.ndarray) -> np.ndarray:
|
| 90 |
+
assert _is_Nx3(coordinates), "Coordinates must be Nx3."
|
| 91 |
+
m = coordinates[:, np.newaxis, :] - coordinates[np.newaxis, :, :]
|
| 92 |
+
distance_matrix = np.linalg.norm(m, axis=-1)
|
| 93 |
+
return distance_matrix[np.triu_indices(distance_matrix.shape[0], k=1)]
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
def adjacent_distances(coordinates: np.ndarray) -> np.ndarray:
|
| 97 |
+
assert _is_Nx3(coordinates), "Coordinates must be Nx3."
|
| 98 |
+
m = coordinates - np.roll(coordinates, shift=1, axis=0)
|
| 99 |
+
return np.linalg.norm(m, axis=-1)
|
| 100 |
+
|
| 101 |
+
|
| 102 |
+
class MinimizeSurfaceHydrophobics(EnergyTerm):
|
| 103 |
+
def __init__(self) -> None:
|
| 104 |
+
super().__init__()
|
| 105 |
+
|
| 106 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 107 |
+
start, end = node.get_residue_index_range()
|
| 108 |
+
|
| 109 |
+
return hydrophobic_score(folding_result.atoms, start, end)
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
_HYDROPHOBICS = {"VAL", "ILE", "LEU", "PHE", "MET", "TRP"}
|
| 113 |
+
|
| 114 |
+
|
| 115 |
+
def hydrophobic_score(
|
| 116 |
+
atom_array: AtomArray,
|
| 117 |
+
start_residue_index: Optional[int] = None,
|
| 118 |
+
end_residue_index: Optional[int] = None,
|
| 119 |
+
) -> float:
|
| 120 |
+
"""
|
| 121 |
+
Computes ratio of hydrophobic atoms in a biotite AtomArray that are also surface
|
| 122 |
+
exposed. Typically, lower is better.
|
| 123 |
+
"""
|
| 124 |
+
|
| 125 |
+
hydrophobic_mask = np.array([aa in _HYDROPHOBICS for aa in atom_array.res_name])
|
| 126 |
+
|
| 127 |
+
if start_residue_index is None and end_residue_index is None:
|
| 128 |
+
selection_mask = np.ones_like(hydrophobic_mask)
|
| 129 |
+
else:
|
| 130 |
+
start_residue_index = 0 if start_residue_index is None else start_residue_index
|
| 131 |
+
end_residue_index = (
|
| 132 |
+
len(hydrophobic_mask) if end_residue_index is None else end_residue_index
|
| 133 |
+
)
|
| 134 |
+
selection_mask = np.array(
|
| 135 |
+
[
|
| 136 |
+
i >= start_residue_index and i < end_residue_index
|
| 137 |
+
for i in range(len(hydrophobic_mask))
|
| 138 |
+
]
|
| 139 |
+
)
|
| 140 |
+
|
| 141 |
+
# TODO(scandido): Resolve the float/bool thing going on here.
|
| 142 |
+
hydrophobic_surf = np.logical_and(
|
| 143 |
+
selection_mask * hydrophobic_mask, sasa(atom_array)
|
| 144 |
+
)
|
| 145 |
+
# TODO(brianhie): Figure out how to handle divide-by-zero.
|
| 146 |
+
return sum(hydrophobic_surf) / sum(selection_mask * hydrophobic_mask)
|
| 147 |
+
|
| 148 |
+
|
| 149 |
+
class MinimizeSurfaceExposure(EnergyTerm):
|
| 150 |
+
def __init__(self) -> None:
|
| 151 |
+
super().__init__()
|
| 152 |
+
|
| 153 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 154 |
+
start, end = node.get_residue_index_range()
|
| 155 |
+
|
| 156 |
+
return surface_ratio(folding_result.atoms, list(range(start, end)))
|
| 157 |
+
|
| 158 |
+
|
| 159 |
+
class MaximizeSurfaceExposure(EnergyTerm):
|
| 160 |
+
def __init__(self) -> None:
|
| 161 |
+
super().__init__()
|
| 162 |
+
|
| 163 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 164 |
+
start, end = node.get_residue_index_range()
|
| 165 |
+
|
| 166 |
+
return 1.0 - surface_ratio(folding_result.atoms, list(range(start, end)))
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
def surface_ratio(atom_array: AtomArray, residue_indices: List[int]) -> float:
|
| 170 |
+
"""Computes ratio of atoms in specified ratios which are on the protein surface."""
|
| 171 |
+
|
| 172 |
+
residue_mask = np.array([res_id in residue_indices for res_id in atom_array.res_id])
|
| 173 |
+
surface = np.logical_and(residue_mask, sasa(atom_array))
|
| 174 |
+
return sum(surface) / sum(residue_mask)
|
| 175 |
+
|
| 176 |
+
|
| 177 |
+
class MinimizeSurfaceExposure(EnergyTerm):
|
| 178 |
+
def __init__(self) -> None:
|
| 179 |
+
super().__init__()
|
| 180 |
+
|
| 181 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 182 |
+
start, end = node.get_residue_index_range()
|
| 183 |
+
|
| 184 |
+
return surface_ratio(folding_result.atoms, list(range(start, end)))
|
| 185 |
+
|
| 186 |
+
|
| 187 |
+
class MaximizeSurfaceExposure(EnergyTerm):
|
| 188 |
+
def __init__(self) -> None:
|
| 189 |
+
super().__init__()
|
| 190 |
+
|
| 191 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 192 |
+
start, end = node.get_residue_index_range()
|
| 193 |
+
|
| 194 |
+
return 1.0 - surface_ratio(folding_result.atoms, list(range(start, end)))
|
| 195 |
+
|
| 196 |
+
|
| 197 |
+
def surface_ratio(atom_array: AtomArray, residue_indices: List[int]) -> float:
|
| 198 |
+
"""Computes ratio of atoms in specified ratios which are on the protein surface."""
|
| 199 |
+
|
| 200 |
+
residue_mask = np.array([res_id in residue_indices for res_id in atom_array.res_id])
|
| 201 |
+
surface = np.logical_and(residue_mask, sasa(atom_array))
|
| 202 |
+
return sum(surface) / sum(residue_mask)
|
| 203 |
+
|
| 204 |
+
|
| 205 |
+
class MaximizeGlobularity(EnergyTerm):
|
| 206 |
+
def __init__(self) -> None:
|
| 207 |
+
super().__init__()
|
| 208 |
+
|
| 209 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 210 |
+
start, end = node.get_residue_index_range()
|
| 211 |
+
|
| 212 |
+
backbone = get_backbone_atoms(
|
| 213 |
+
folding_result.atoms[
|
| 214 |
+
np.logical_and(
|
| 215 |
+
folding_result.atoms.res_id >= start,
|
| 216 |
+
folding_result.atoms.res_id < end,
|
| 217 |
+
)
|
| 218 |
+
]
|
| 219 |
+
).coord
|
| 220 |
+
|
| 221 |
+
return float(np.std(distances_to_centroid(backbone)))
|
| 222 |
+
|
| 223 |
+
|
| 224 |
+
def distances_to_centroid(coordinates: np.ndarray) -> np.ndarray:
|
| 225 |
+
"""
|
| 226 |
+
Computes the distances from each of the coordinates to the
|
| 227 |
+
centroid of all coordinates.
|
| 228 |
+
"""
|
| 229 |
+
assert _is_Nx3(coordinates), "Coordinates must be Nx3."
|
| 230 |
+
center_of_mass = get_center_of_mass(coordinates)
|
| 231 |
+
m = coordinates - center_of_mass
|
| 232 |
+
return np.linalg.norm(m, axis=-1)
|
| 233 |
+
|
| 234 |
+
|
| 235 |
+
class MinimizeCRmsd(EnergyTerm):
|
| 236 |
+
def __init__(self, template: AtomArray, backbone_only: bool = False) -> None:
|
| 237 |
+
super().__init__()
|
| 238 |
+
|
| 239 |
+
self.template: AtomArray = template
|
| 240 |
+
self.backbone_only: bool = backbone_only
|
| 241 |
+
if self.backbone_only:
|
| 242 |
+
self.template = get_backbone_atoms(template)
|
| 243 |
+
|
| 244 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 245 |
+
start, end = node.get_residue_index_range()
|
| 246 |
+
|
| 247 |
+
atoms = get_atomarray_in_residue_range(folding_result.atoms, start, end)
|
| 248 |
+
|
| 249 |
+
if self.backbone_only:
|
| 250 |
+
atoms = get_backbone_atoms(atoms)
|
| 251 |
+
|
| 252 |
+
return crmsd(self.template, atoms)
|
| 253 |
+
|
| 254 |
+
|
| 255 |
+
def crmsd(atom_array_a: AtomArray, atom_array_b: AtomArray) -> float:
|
| 256 |
+
# TODO(scandido): Add this back.
|
| 257 |
+
# atom_array_a = canonicalize_within_residue_atom_order(atom_array_a)
|
| 258 |
+
# atom_array_b = canonicalize_within_residue_atom_order(atom_array_b)
|
| 259 |
+
superimposed_atom_array_b_onto_a, _ = superimpose(atom_array_a, atom_array_b)
|
| 260 |
+
return float(rmsd(atom_array_a, superimposed_atom_array_b_onto_a).mean())
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
class MinimizeDRmsd(EnergyTerm):
|
| 264 |
+
def __init__(self, template: AtomArray, backbone_only: bool = False) -> None:
|
| 265 |
+
super().__init__()
|
| 266 |
+
|
| 267 |
+
self.template: AtomArray = template
|
| 268 |
+
self.backbone_only: bool = backbone_only
|
| 269 |
+
if self.backbone_only:
|
| 270 |
+
self.template = get_backbone_atoms(template)
|
| 271 |
+
|
| 272 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 273 |
+
start, end = node.get_residue_index_range()
|
| 274 |
+
|
| 275 |
+
atoms = get_atomarray_in_residue_range(folding_result.atoms, start, end)
|
| 276 |
+
|
| 277 |
+
if self.backbone_only:
|
| 278 |
+
atoms = get_backbone_atoms(atoms)
|
| 279 |
+
|
| 280 |
+
return drmsd(self.template, atoms)
|
| 281 |
+
|
| 282 |
+
|
| 283 |
+
def drmsd(atom_array_a: AtomArray, atom_array_b: AtomArray) -> float:
|
| 284 |
+
# TODO(scandido): Add this back.
|
| 285 |
+
# atom_array_a = canonicalize_within_residue_atom_order(atom_array_a)
|
| 286 |
+
# atom_array_b = canonicalize_within_residue_atom_order(atom_array_b)
|
| 287 |
+
|
| 288 |
+
dp = pairwise_distances(atom_array_a.coord)
|
| 289 |
+
dq = pairwise_distances(atom_array_b.coord)
|
| 290 |
+
|
| 291 |
+
return float(np.sqrt(((dp - dq) ** 2).mean()))
|
| 292 |
+
|
| 293 |
+
|
| 294 |
+
def pairwise_distances(coordinates: np.ndarray) -> np.ndarray:
|
| 295 |
+
assert _is_Nx3(coordinates), "Coordinates must be Nx3."
|
| 296 |
+
m = coordinates[:, np.newaxis, :] - coordinates[np.newaxis, :, :]
|
| 297 |
+
distance_matrix = np.linalg.norm(m, axis=-1)
|
| 298 |
+
return distance_matrix[np.triu_indices(distance_matrix.shape[0], k=1)]
|
| 299 |
+
|
| 300 |
+
|
| 301 |
+
class MatchSecondaryStructure(EnergyTerm):
|
| 302 |
+
def __init__(self, secondary_structure_element: str) -> None:
|
| 303 |
+
super().__init__()
|
| 304 |
+
self.secondary_structure_element = secondary_structure_element
|
| 305 |
+
|
| 306 |
+
def compute(self, node, folding_result: FoldingResult) -> float:
|
| 307 |
+
start, end = node.get_residue_index_range()
|
| 308 |
+
|
| 309 |
+
subprotein = folding_result.atoms[
|
| 310 |
+
np.logical_and(
|
| 311 |
+
folding_result.atoms.res_id >= start,
|
| 312 |
+
folding_result.atoms.res_id < end,
|
| 313 |
+
)
|
| 314 |
+
]
|
| 315 |
+
sse = annotate_sse(subprotein)
|
| 316 |
+
|
| 317 |
+
return np.mean(sse != self.secondary_structure_element)
|
weight/esm-main/examples/protein-programming-language/language/folding_callbacks.py
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
|
| 6 |
+
from abc import ABC, abstractmethod
|
| 7 |
+
from dataclasses import dataclass
|
| 8 |
+
from io import StringIO
|
| 9 |
+
from typing import List
|
| 10 |
+
|
| 11 |
+
import esm
|
| 12 |
+
import torch
|
| 13 |
+
from biotite.structure import AtomArray
|
| 14 |
+
import numpy as np
|
| 15 |
+
from openfold.np.residue_constants import atom_order
|
| 16 |
+
from torch.utils._pytree import tree_map
|
| 17 |
+
|
| 18 |
+
from language.utilities import pdb_file_to_atomarray
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
@dataclass
|
| 22 |
+
class FoldingResult:
|
| 23 |
+
atoms: AtomArray
|
| 24 |
+
ptm: float
|
| 25 |
+
plddt: float
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
class FoldingCallback(ABC):
|
| 29 |
+
"Interface for running ESMFold and other folding methods."
|
| 30 |
+
|
| 31 |
+
def __init__(self) -> None:
|
| 32 |
+
pass
|
| 33 |
+
|
| 34 |
+
@abstractmethod
|
| 35 |
+
def load(self, device: str) -> None:
|
| 36 |
+
pass
|
| 37 |
+
|
| 38 |
+
@abstractmethod
|
| 39 |
+
def fold(self, sequence: str, residue_indices: List[int]) -> FoldingResult:
|
| 40 |
+
pass
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
class EsmFoldv1(FoldingCallback):
|
| 44 |
+
"Runs ESMFold v1.0."
|
| 45 |
+
|
| 46 |
+
def __init__(self) -> None:
|
| 47 |
+
super().__init__()
|
| 48 |
+
|
| 49 |
+
self.model = None
|
| 50 |
+
|
| 51 |
+
def load(self, device: str) -> None:
|
| 52 |
+
self.model = esm.pretrained.esmfold_v1().eval()
|
| 53 |
+
self.model = self.model.to(device)
|
| 54 |
+
|
| 55 |
+
def fold(self, sequence: str, residue_indices: List[int]) -> FoldingResult:
|
| 56 |
+
assert self.model is not None, "Must call load() before fold()."
|
| 57 |
+
|
| 58 |
+
# TODO: Current `esm.esmfold.v1.misc.output_to_pdb()` adds 1 to the `residx`
|
| 59 |
+
# mistakenly, just subtract 1 for now but fix in a later version.
|
| 60 |
+
residue_indices = np.array(residue_indices) - 1
|
| 61 |
+
|
| 62 |
+
raw_output = self.model.infer(
|
| 63 |
+
sequence, residx=torch.Tensor(residue_indices).long().reshape(1, -1),
|
| 64 |
+
)
|
| 65 |
+
raw_output = tree_map(lambda x: x.to("cpu"), raw_output)
|
| 66 |
+
|
| 67 |
+
pdb_string = esm.esmfold.v1.misc.output_to_pdb(raw_output)[0]
|
| 68 |
+
atoms: AtomArray = pdb_file_to_atomarray(StringIO(pdb_string))
|
| 69 |
+
|
| 70 |
+
plddt = raw_output["plddt"]
|
| 71 |
+
plddt = plddt[0, ...].numpy()
|
| 72 |
+
plddt = plddt.transpose()
|
| 73 |
+
plddt = plddt[atom_order["CA"], :]
|
| 74 |
+
plddt = float(plddt.mean()) / 100.0
|
| 75 |
+
|
| 76 |
+
ptm = float(raw_output["ptm"])
|
| 77 |
+
|
| 78 |
+
return FoldingResult(atoms=atoms, ptm=ptm, plddt=plddt)
|
weight/esm-main/examples/protein-programming-language/language/optimize.py
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
|
| 6 |
+
from copy import deepcopy
|
| 7 |
+
from dataclasses import dataclass
|
| 8 |
+
|
| 9 |
+
import numpy as np
|
| 10 |
+
from rich.live import Live
|
| 11 |
+
from rich.table import Table
|
| 12 |
+
|
| 13 |
+
from language.folding_callbacks import FoldingCallback
|
| 14 |
+
from language.program import ProgramNode
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
@dataclass
|
| 18 |
+
class MetropolisHastingsState:
|
| 19 |
+
program: ProgramNode
|
| 20 |
+
temperature: float
|
| 21 |
+
annealing_rate: float
|
| 22 |
+
num_steps: int
|
| 23 |
+
candidate_energy: float
|
| 24 |
+
candidate_energy_term_fn_values: list
|
| 25 |
+
current_energy: float
|
| 26 |
+
current_energy_term_fn_values: list
|
| 27 |
+
best_energy: float
|
| 28 |
+
best_energy_term_fn_values: list
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
def metropolis_hastings_step(
|
| 32 |
+
state: MetropolisHastingsState,
|
| 33 |
+
folding_callback: FoldingCallback,
|
| 34 |
+
verbose: bool = False,
|
| 35 |
+
) -> MetropolisHastingsState:
|
| 36 |
+
temperature = state.temperature * state.annealing_rate
|
| 37 |
+
|
| 38 |
+
candidate: ProgramNode = deepcopy(state.program)
|
| 39 |
+
candidate.mutate()
|
| 40 |
+
|
| 41 |
+
sequence, residue_indices = candidate.get_sequence_and_set_residue_index_ranges()
|
| 42 |
+
folding_output = folding_callback.fold(sequence, residue_indices)
|
| 43 |
+
|
| 44 |
+
energy_term_fns = candidate.get_energy_term_functions()
|
| 45 |
+
candidate_energy_term_fn_values = [
|
| 46 |
+
(name, weight, energy_fn(folding_output)) for name, weight, energy_fn in energy_term_fns
|
| 47 |
+
]
|
| 48 |
+
# TODO(scandido): Log these.
|
| 49 |
+
candidate_energy: float = sum(
|
| 50 |
+
[weight * value for _, weight, value in candidate_energy_term_fn_values]
|
| 51 |
+
)
|
| 52 |
+
|
| 53 |
+
accept_candidate = False
|
| 54 |
+
if state.current_energy is None:
|
| 55 |
+
accept_candidate = True
|
| 56 |
+
else:
|
| 57 |
+
# NOTE(scandido): We are minimizing the function here so instead of
|
| 58 |
+
# candidate - current we do -1 * (candidate - current) = -candidate + current.
|
| 59 |
+
energy_differential: float = -candidate_energy + state.current_energy
|
| 60 |
+
accept_probability: float = np.clip(
|
| 61 |
+
# NOTE(scandido): We approximate the ratio of transition probabilities from
|
| 62 |
+
# current to candidate vs. candidate to current to be equal, which is
|
| 63 |
+
# approximately correct.
|
| 64 |
+
np.exp(energy_differential / temperature),
|
| 65 |
+
a_min=None,
|
| 66 |
+
a_max=1.0,
|
| 67 |
+
)
|
| 68 |
+
accept_candidate: bool = np.random.uniform() < accept_probability
|
| 69 |
+
|
| 70 |
+
if accept_candidate and verbose:
|
| 71 |
+
print(f"Accepted {sequence} with energy {candidate_energy:.2f}.")
|
| 72 |
+
|
| 73 |
+
best = (state.best_energy is None) or candidate_energy < state.best_energy
|
| 74 |
+
|
| 75 |
+
return MetropolisHastingsState(
|
| 76 |
+
program=candidate if accept_candidate else state.program,
|
| 77 |
+
temperature=temperature,
|
| 78 |
+
annealing_rate=state.annealing_rate,
|
| 79 |
+
num_steps=state.num_steps + 1,
|
| 80 |
+
candidate_energy=candidate_energy,
|
| 81 |
+
candidate_energy_term_fn_values=candidate_energy_term_fn_values,
|
| 82 |
+
current_energy=candidate_energy if accept_candidate else state.current_energy,
|
| 83 |
+
current_energy_term_fn_values=candidate_energy_term_fn_values
|
| 84 |
+
if accept_candidate
|
| 85 |
+
else state.current_energy_term_fn_values,
|
| 86 |
+
best_energy=candidate_energy if best else state.best_energy,
|
| 87 |
+
best_energy_term_fn_values=candidate_energy_term_fn_values
|
| 88 |
+
if best
|
| 89 |
+
else state.best_energy_term_fn_values,
|
| 90 |
+
)
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
def run_simulated_annealing(
|
| 94 |
+
program: ProgramNode,
|
| 95 |
+
initial_temperature: float,
|
| 96 |
+
annealing_rate: float,
|
| 97 |
+
total_num_steps: int,
|
| 98 |
+
folding_callback: FoldingCallback,
|
| 99 |
+
display_progress: bool = True,
|
| 100 |
+
progress_verbose_print: bool = False,
|
| 101 |
+
) -> ProgramNode:
|
| 102 |
+
# TODO(scandido): Track accept rate.
|
| 103 |
+
|
| 104 |
+
state = MetropolisHastingsState(
|
| 105 |
+
program=program,
|
| 106 |
+
temperature=initial_temperature,
|
| 107 |
+
annealing_rate=annealing_rate,
|
| 108 |
+
num_steps=0,
|
| 109 |
+
candidate_energy=None,
|
| 110 |
+
candidate_energy_term_fn_values=None,
|
| 111 |
+
current_energy=None,
|
| 112 |
+
current_energy_term_fn_values=None,
|
| 113 |
+
best_energy=None,
|
| 114 |
+
best_energy_term_fn_values=None,
|
| 115 |
+
)
|
| 116 |
+
|
| 117 |
+
def _generate_table(state):
|
| 118 |
+
table = Table()
|
| 119 |
+
table.add_column("Energy name")
|
| 120 |
+
table.add_column("Weight")
|
| 121 |
+
table.add_column("Candidate Value")
|
| 122 |
+
table.add_column("Current Value")
|
| 123 |
+
table.add_column("Best Value")
|
| 124 |
+
if state.current_energy_term_fn_values is None:
|
| 125 |
+
return table
|
| 126 |
+
for (name, weight, candidate_value), (_, _, current_value), (_, _, best_value) in zip(
|
| 127 |
+
state.candidate_energy_term_fn_values,
|
| 128 |
+
state.current_energy_term_fn_values,
|
| 129 |
+
state.best_energy_term_fn_values,
|
| 130 |
+
):
|
| 131 |
+
table.add_row(
|
| 132 |
+
name,
|
| 133 |
+
f"{weight:.2f}",
|
| 134 |
+
f"{candidate_value:.2f}",
|
| 135 |
+
f"{current_value:.2f}",
|
| 136 |
+
f"{best_value:.2f}",
|
| 137 |
+
)
|
| 138 |
+
table.add_row(
|
| 139 |
+
"Energy",
|
| 140 |
+
"",
|
| 141 |
+
f"{state.candidate_energy:.2f}",
|
| 142 |
+
f"{state.current_energy:.2f}",
|
| 143 |
+
f"{state.best_energy:.2f}",
|
| 144 |
+
)
|
| 145 |
+
table.add_row("Iterations", "", f"{state.num_steps} / {total_num_steps}")
|
| 146 |
+
return table
|
| 147 |
+
|
| 148 |
+
with Live() as live:
|
| 149 |
+
for _ in range(1, total_num_steps + 1):
|
| 150 |
+
state = metropolis_hastings_step(
|
| 151 |
+
state,
|
| 152 |
+
folding_callback,
|
| 153 |
+
verbose=progress_verbose_print,
|
| 154 |
+
)
|
| 155 |
+
if display_progress:
|
| 156 |
+
live.update(_generate_table(state))
|
| 157 |
+
|
| 158 |
+
return state.program
|
weight/esm-main/examples/protein-programming-language/language/program.py
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
|
| 6 |
+
from functools import partial
|
| 7 |
+
from typing import Callable, List, Optional, Tuple
|
| 8 |
+
|
| 9 |
+
import numpy as np
|
| 10 |
+
|
| 11 |
+
from language.energy import EnergyTerm
|
| 12 |
+
from language.folding_callbacks import FoldingResult
|
| 13 |
+
from language.sequence import SequenceSegmentFactory
|
| 14 |
+
|
| 15 |
+
MULTIMER_RESIDUE_INDEX_SKIP_LENGTH: int = 1000
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
class ProgramNode:
|
| 19 |
+
def __init__(
|
| 20 |
+
self,
|
| 21 |
+
children: List["ProgramNode"] = None,
|
| 22 |
+
sequence_segment: SequenceSegmentFactory = None,
|
| 23 |
+
children_are_different_chains: bool = False,
|
| 24 |
+
energy_function_terms: List[EnergyTerm] = [],
|
| 25 |
+
energy_function_weights: Optional[List[float]] = None,
|
| 26 |
+
) -> None:
|
| 27 |
+
self.children: Optional[List["ProgramNode"]] = children
|
| 28 |
+
self.sequence_segment: SequenceSegmentFactory = sequence_segment
|
| 29 |
+
self.children_are_different_chains: bool = children_are_different_chains
|
| 30 |
+
self.energy_function_terms: List[energy_function_terms] = energy_function_terms
|
| 31 |
+
self.energy_function_weights: List[
|
| 32 |
+
float
|
| 33 |
+
] = energy_function_weights if energy_function_weights else [
|
| 34 |
+
1.0 for _ in self.energy_function_terms
|
| 35 |
+
]
|
| 36 |
+
if self.energy_function_weights:
|
| 37 |
+
assert len(self.energy_function_terms) == len(
|
| 38 |
+
self.energy_function_weights
|
| 39 |
+
), "One must have the same number of energy function terms and weights on a node."
|
| 40 |
+
|
| 41 |
+
self.residue_index_range: Optional[Tuple[int, int]] = None
|
| 42 |
+
|
| 43 |
+
def get_sequence_and_set_residue_index_ranges(
|
| 44 |
+
self, residue_index_offset: int = 1
|
| 45 |
+
) -> Tuple[str, List[int]]:
|
| 46 |
+
if self.is_leaf_node():
|
| 47 |
+
sequence = self.sequence_segment.get()
|
| 48 |
+
self.residue_index_range = (
|
| 49 |
+
residue_index_offset,
|
| 50 |
+
residue_index_offset + len(sequence),
|
| 51 |
+
)
|
| 52 |
+
return sequence, list(range(*self.residue_index_range))
|
| 53 |
+
|
| 54 |
+
offset: int = residue_index_offset
|
| 55 |
+
sequence = ""
|
| 56 |
+
residue_indices = []
|
| 57 |
+
for child in self.children:
|
| 58 |
+
(
|
| 59 |
+
sequence_segment,
|
| 60 |
+
residue_indices_segment,
|
| 61 |
+
) = child.get_sequence_and_set_residue_index_ranges(
|
| 62 |
+
residue_index_offset=offset
|
| 63 |
+
)
|
| 64 |
+
sequence += sequence_segment
|
| 65 |
+
residue_indices += residue_indices_segment
|
| 66 |
+
offset = residue_indices[-1] + 1
|
| 67 |
+
if self.children_are_different_chains:
|
| 68 |
+
offset += MULTIMER_RESIDUE_INDEX_SKIP_LENGTH
|
| 69 |
+
self.residue_index_range = (residue_indices[0], residue_indices[-1] + 1)
|
| 70 |
+
return sequence, residue_indices
|
| 71 |
+
|
| 72 |
+
def get_residue_index_range(self) -> Tuple[int, int]:
|
| 73 |
+
assert (
|
| 74 |
+
self.residue_index_range
|
| 75 |
+
), "Must call get_sequence_and_set_residue_index_ranges() first."
|
| 76 |
+
return self.residue_index_range
|
| 77 |
+
|
| 78 |
+
def get_children(self) -> List["ProgramNode"]:
|
| 79 |
+
return self.children
|
| 80 |
+
|
| 81 |
+
def is_leaf_node(self) -> bool:
|
| 82 |
+
return self.children is None
|
| 83 |
+
|
| 84 |
+
def get_energy_term_functions(
|
| 85 |
+
self, name_prefix: str = ""
|
| 86 |
+
) -> List[Tuple[str, float, Callable[[FoldingResult], float]]]:
|
| 87 |
+
name_prefix = name_prefix if name_prefix else "root"
|
| 88 |
+
|
| 89 |
+
terms = [
|
| 90 |
+
(
|
| 91 |
+
f"{name_prefix}:{type(term).__name__}",
|
| 92 |
+
weight,
|
| 93 |
+
partial(term.compute, self),
|
| 94 |
+
)
|
| 95 |
+
for weight, term in zip(
|
| 96 |
+
self.energy_function_weights, self.energy_function_terms
|
| 97 |
+
)
|
| 98 |
+
]
|
| 99 |
+
|
| 100 |
+
if self.is_leaf_node():
|
| 101 |
+
return terms
|
| 102 |
+
|
| 103 |
+
for i, child in enumerate(self.children):
|
| 104 |
+
terms += child.get_energy_term_functions(
|
| 105 |
+
name_prefix=name_prefix + f".n{i+1}"
|
| 106 |
+
)
|
| 107 |
+
|
| 108 |
+
return terms
|
| 109 |
+
|
| 110 |
+
def mutate(self) -> None:
|
| 111 |
+
if self.is_leaf_node():
|
| 112 |
+
return self.sequence_segment.mutate()
|
| 113 |
+
|
| 114 |
+
weights = np.array(
|
| 115 |
+
[float(child.num_mutation_candidates()) for child in self.children]
|
| 116 |
+
)
|
| 117 |
+
assert (
|
| 118 |
+
weights.sum() > 0
|
| 119 |
+
), "Some mutations should be possible if mutate() was called."
|
| 120 |
+
child_to_mutate = np.random.choice(self.children, p=weights / weights.sum())
|
| 121 |
+
child_to_mutate.mutate()
|
| 122 |
+
|
| 123 |
+
def num_mutation_candidates(self) -> int:
|
| 124 |
+
if self.is_leaf_node():
|
| 125 |
+
return self.sequence_segment.num_mutation_candidates()
|
| 126 |
+
|
| 127 |
+
return sum([child.num_mutation_candidates() for child in self.children])
|
weight/esm-main/examples/protein-programming-language/language/sequence.py
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
| 2 |
+
|
| 3 |
+
# This source code is licensed under the MIT license found in the
|
| 4 |
+
# LICENSE file in the root directory of this source tree.
|
| 5 |
+
|
| 6 |
+
from abc import ABC, abstractmethod
|
| 7 |
+
from copy import deepcopy
|
| 8 |
+
from typing import List, Union
|
| 9 |
+
|
| 10 |
+
import numpy as np
|
| 11 |
+
from biotite.structure import AtomArray
|
| 12 |
+
|
| 13 |
+
ALL_RESIDUE_TYPES = [
|
| 14 |
+
"A",
|
| 15 |
+
"R",
|
| 16 |
+
"N",
|
| 17 |
+
"D",
|
| 18 |
+
"C",
|
| 19 |
+
"Q",
|
| 20 |
+
"E",
|
| 21 |
+
"G",
|
| 22 |
+
"H",
|
| 23 |
+
"I",
|
| 24 |
+
"L",
|
| 25 |
+
"K",
|
| 26 |
+
"M",
|
| 27 |
+
"F",
|
| 28 |
+
"P",
|
| 29 |
+
"S",
|
| 30 |
+
"T",
|
| 31 |
+
"W",
|
| 32 |
+
"Y",
|
| 33 |
+
"V",
|
| 34 |
+
]
|
| 35 |
+
|
| 36 |
+
RESIDUE_TYPES_WITHOUT_CYSTEINE = deepcopy(ALL_RESIDUE_TYPES)
|
| 37 |
+
RESIDUE_TYPES_WITHOUT_CYSTEINE.remove("C")
|
| 38 |
+
|
| 39 |
+
RESIDUE_TYPES_1to3 = {
|
| 40 |
+
"A": "ALA",
|
| 41 |
+
"R": "ARG",
|
| 42 |
+
"N": "ASN",
|
| 43 |
+
"D": "ASP",
|
| 44 |
+
"C": "CYS",
|
| 45 |
+
"Q": "GLN",
|
| 46 |
+
"E": "GLU",
|
| 47 |
+
"G": "GLY",
|
| 48 |
+
"H": "HIS",
|
| 49 |
+
"I": "ILE",
|
| 50 |
+
"L": "LEU",
|
| 51 |
+
"K": "LYS",
|
| 52 |
+
"M": "MET",
|
| 53 |
+
"F": "PHE",
|
| 54 |
+
"P": "PRO",
|
| 55 |
+
"S": "SER",
|
| 56 |
+
"T": "THR",
|
| 57 |
+
"W": "TRP",
|
| 58 |
+
"Y": "TYR",
|
| 59 |
+
"V": "VAL",
|
| 60 |
+
}
|
| 61 |
+
RESIDUE_TYPES_3to1 = {v: k for k, v in RESIDUE_TYPES_1to3.items()}
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
class SequenceSegmentFactory(ABC):
|
| 65 |
+
def __init__(self) -> None:
|
| 66 |
+
pass
|
| 67 |
+
|
| 68 |
+
@abstractmethod
|
| 69 |
+
def get(self) -> str:
|
| 70 |
+
pass
|
| 71 |
+
|
| 72 |
+
@abstractmethod
|
| 73 |
+
def mutate(self) -> None:
|
| 74 |
+
pass
|
| 75 |
+
|
| 76 |
+
@abstractmethod
|
| 77 |
+
def num_mutation_candidates(self) -> int:
|
| 78 |
+
pass
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
class ConstantSequenceSegment(SequenceSegmentFactory):
|
| 82 |
+
def __init__(self, sequence: str) -> None:
|
| 83 |
+
super().__init__()
|
| 84 |
+
self.sequence = sequence
|
| 85 |
+
|
| 86 |
+
def get(self) -> str:
|
| 87 |
+
return self.sequence
|
| 88 |
+
|
| 89 |
+
def mutate(self) -> None:
|
| 90 |
+
pass
|
| 91 |
+
|
| 92 |
+
def num_mutation_candidates(self) -> int:
|
| 93 |
+
return 0
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
class FixedLengthSequenceSegment(SequenceSegmentFactory):
|
| 97 |
+
def __init__(
|
| 98 |
+
self, initial_sequence: Union[str, int], disallow_mutations_to_cysteine=True,
|
| 99 |
+
) -> None:
|
| 100 |
+
super().__init__()
|
| 101 |
+
self.mutation_residue_types = (
|
| 102 |
+
RESIDUE_TYPES_WITHOUT_CYSTEINE
|
| 103 |
+
if disallow_mutations_to_cysteine
|
| 104 |
+
else ALL_RESIDUE_TYPES
|
| 105 |
+
)
|
| 106 |
+
|
| 107 |
+
self.sequence = (
|
| 108 |
+
initial_sequence
|
| 109 |
+
if type(initial_sequence) == str
|
| 110 |
+
else random_sequence(
|
| 111 |
+
length=initial_sequence, corpus=self.mutation_residue_types
|
| 112 |
+
)
|
| 113 |
+
)
|
| 114 |
+
|
| 115 |
+
def get(self) -> str:
|
| 116 |
+
return self.sequence
|
| 117 |
+
|
| 118 |
+
def mutate(self) -> None:
|
| 119 |
+
self.sequence = substitute_one_amino_acid(
|
| 120 |
+
self.sequence, self.mutation_residue_types
|
| 121 |
+
)
|
| 122 |
+
|
| 123 |
+
def num_mutation_candidates(self) -> int:
|
| 124 |
+
return len(self.sequence)
|
| 125 |
+
|
| 126 |
+
|
| 127 |
+
def substitute_one_amino_acid(sequence: str, corpus: List[str]) -> str:
|
| 128 |
+
sequence = list(sequence)
|
| 129 |
+
index = np.random.choice(len(sequence))
|
| 130 |
+
sequence[index] = np.random.choice(corpus)
|
| 131 |
+
return "".join(sequence)
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
def random_sequence(length: int, corpus: List[str]) -> str:
|
| 135 |
+
"Generate a random sequence using amino acids in corpus."
|
| 136 |
+
|
| 137 |
+
return "".join([np.random.choice(corpus) for _ in range(length)])
|
| 138 |
+
|
| 139 |
+
|
| 140 |
+
def sequence_from_atomarray(atoms: AtomArray) -> str:
|
| 141 |
+
return "".join(
|
| 142 |
+
[RESIDUE_TYPES_3to1[aa] for aa in atoms[atoms.atom_name == "CA"].res_name]
|
| 143 |
+
)
|
| 144 |
+
|
| 145 |
+
|
| 146 |
+
class VariableLengthSequenceSegment(SequenceSegmentFactory):
|
| 147 |
+
def __init__(
|
| 148 |
+
self,
|
| 149 |
+
initial_sequence: Union[str, int],
|
| 150 |
+
disallow_mutations_to_cysteine=True,
|
| 151 |
+
mutation_operation_probabilities: List[float] = [
|
| 152 |
+
3., # Substitution weight.
|
| 153 |
+
1., # Deletion weight.
|
| 154 |
+
1., # Insertion weight.
|
| 155 |
+
],
|
| 156 |
+
) -> None:
|
| 157 |
+
super().__init__()
|
| 158 |
+
self.mutation_residue_types = (
|
| 159 |
+
RESIDUE_TYPES_WITHOUT_CYSTEINE
|
| 160 |
+
if disallow_mutations_to_cysteine
|
| 161 |
+
else ALL_RESIDUE_TYPES
|
| 162 |
+
)
|
| 163 |
+
|
| 164 |
+
self.sequence = (
|
| 165 |
+
initial_sequence
|
| 166 |
+
if type(initial_sequence) == str
|
| 167 |
+
else random_sequence(
|
| 168 |
+
length=initial_sequence, corpus=self.mutation_residue_types
|
| 169 |
+
)
|
| 170 |
+
)
|
| 171 |
+
|
| 172 |
+
self.mutation_operation_probabilities = np.array(mutation_operation_probabilities)
|
| 173 |
+
self.mutation_operation_probabilities /= self.mutation_operation_probabilities.sum()
|
| 174 |
+
|
| 175 |
+
def get(self) -> str:
|
| 176 |
+
return self.sequence
|
| 177 |
+
|
| 178 |
+
def mutate(self) -> None:
|
| 179 |
+
mutation_operation = np.random.choice(
|
| 180 |
+
[
|
| 181 |
+
self._mutate_substitution,
|
| 182 |
+
self._mutate_deletion,
|
| 183 |
+
self._mutate_insertion,
|
| 184 |
+
],
|
| 185 |
+
p=self.mutation_operation_probabilities,
|
| 186 |
+
)
|
| 187 |
+
mutation_operation()
|
| 188 |
+
|
| 189 |
+
def _mutate_substitution(self) -> str:
|
| 190 |
+
self.sequence = substitute_one_amino_acid(
|
| 191 |
+
self.sequence, self.mutation_residue_types
|
| 192 |
+
)
|
| 193 |
+
|
| 194 |
+
def _mutate_deletion(self) -> str:
|
| 195 |
+
self.sequence = delete_one_amino_acid(self.sequence)
|
| 196 |
+
|
| 197 |
+
def _mutate_insertion(self) -> str:
|
| 198 |
+
self.sequence = insert_one_amino_acid(
|
| 199 |
+
self.sequence, self.mutation_residue_types
|
| 200 |
+
)
|
| 201 |
+
|
| 202 |
+
def num_mutation_candidates(self) -> int:
|
| 203 |
+
# NOTE(brianhie): This should be `3*len(self.sequence) + 1`,
|
| 204 |
+
# since there are `len(self.sequence)` substitutions and
|
| 205 |
+
# deletions, and `len(self.sequence) + 1` insertions.
|
| 206 |
+
# However, as this is used to weight sequence segments for
|
| 207 |
+
# mutations when combined into a multi-segment program, we
|
| 208 |
+
# just weight by `len(self.sequence)` for now.
|
| 209 |
+
return len(self.sequence)
|
| 210 |
+
|
| 211 |
+
|
| 212 |
+
def delete_one_amino_acid(sequence: str) -> str:
|
| 213 |
+
index = np.random.choice(len(sequence))
|
| 214 |
+
return sequence[:index] + sequence[index + 1 :]
|
| 215 |
+
|
| 216 |
+
|
| 217 |
+
def insert_one_amino_acid(sequence: str, corpus: List[str]) -> str:
|
| 218 |
+
n = len(sequence)
|
| 219 |
+
index = np.random.randint(0, n) if n > 0 else 0
|
| 220 |
+
insertion = np.random.choice(corpus)
|
| 221 |
+
return sequence[:index] + insertion + sequence[index:]
|
weight/esm-main/examples/protein-programming-language/programs/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
from programs.symmetric_binding import symmetric_binding_il10
|
weight/esm-main/examples/sup_variant_prediction.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.40_.50_plddt_.50_.60.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.40_.50_plddt_.50_.60.npz
|
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_.50_.60.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_.50_.60.npz
|
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_.70_.80.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_.70_.80.npz
|
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.50_.60.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.50_.60.npz
|
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.60_.70.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.60_.70.npz
|
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.70_.80.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.70_.80.npz
|