2023 年 4 月更新:タンパク質設計に関する 2 つの同時プレプリントのコードがリリースされました。 「言語モデルは天然タンパク質を超えて一般化する」のコードは、examples/lm-design/ にあります。 「生成タンパク質設計のための高レベル プログラミング言語」のコードは、examples/protein-programming- language/ にあります。
このリポジトリには、最先端のESM-2およびESMFoldに加え、 MSA Transformer 、 ESM-1vを含む、Meta Fundamental AI Research Protein Team (FAIR) のTransformer タンパク質言語モデルのコードと事前トレーニングされた重みが含まれています。バリアント効果の予測には ESM-IF1、逆折りたたみにはESM-IF1 。トランスフォーマータンパク質言語モデルは、論文「生物学的構造と機能は教師なし学習を 2 億 5,000 万個のタンパク質配列に拡張することから現れる」の 2019 年のプレプリントで導入されました。 ESM-2 は、さまざまな構造予測タスクにわたって、テストされたすべての単一配列タンパク質言語モデルよりも優れた性能を発揮します。 ESMFold は ESM-2 言語モデルを利用して、タンパク質の配列から直接端から端まで正確な構造予測を生成します。
2022 年 11 月に、6 億 1,700 万の予測メタゲノムタンパク質構造を収録したオープン アトラスである ESM Metagenomic Atlas v0
リリースしました。アトラスは、EBI と協力して 2023 年 3 月に更新されました。新しいv2023_02
さらに 1 億 5,000 万個の予測構造と、事前に計算された ESM2 埋め込みがアトラスに追加されます。一括ダウンロード、ブログ投稿、Atlas Web サイトで提供されるリソースについては、この README に記載されています。
2022 年 12 月に、タンパク質設計に関する 2 つのプレプリントを同時にリリースしました。
トランスフォーマータンパク質言語モデルの場合:
@article { rives2021biological ,
title = { Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences } ,
author = { Rives, Alexander and Meier, Joshua and Sercu, Tom and Goyal, Siddharth and Lin, Zeming and Liu, Jason and Guo, Demi and Ott, Myle and Zitnick, C Lawrence and Ma, Jerry and others } ,
journal = { Proceedings of the National Academy of Sciences } ,
volume = { 118 } ,
number = { 15 } ,
pages = { e2016239118 } ,
year = { 2021 } ,
publisher = { National Acad Sciences } ,
note = { bioRxiv 10.1101/622803 } ,
doi = { 10.1073/pnas.2016239118 } ,
url = { https://www.pnas.org/doi/full/10.1073/pnas.2016239118 } ,
}
v2023_02
をリリースします。 Web サイトと一括ダウンロードの詳細を参照してください。
など) を連続して使用できるようになりました。ESM-MSA-1b
)。速記法 | esm.pretrained. | データセット | 説明 |
---|---|---|---|
ESM-2 | esm2_t36_3B_UR50D() esm2_t48_15B_UR50D() | UR50(サンプルUR90) | SOTA 汎用プロテイン言語モデル。構造、機能、その他のタンパク質の特性を個々の配列から直接予測するために使用できます。リンらと共同でリリース。 2022 (2022 年 8 月更新)。 |
ESMフォールド | esmfold_v1() | PDB+UR50 | エンドツーエンドの単一シーケンス 3D 構造予測子 (2022 年 11 月更新)。 |
ESM-MSA-1b | esm_msa1b_t12_100M_UR50S() | UR50+MSA | MSA Transformer 言語モデル。 MSA からエンベディングを抽出するために使用できます。構造の SOTA 推論を有効にします。ラオらと共同でリリース。 2021 (ICML'21 バージョン、2021 年 6 月)。 |
ESM-1v | esm1v_t33_650M_UR90S_1() ... esm1v_t33_650M_UR90S_5() | UR90 | バリアント効果の予測に特化した言語モデル。シーケンス変動の機能的影響の SOTA ゼロショット予測を可能にします。 ESM-1b と同じアーキテクチャですが、UniRef90 でトレーニングされています。 Meierらと共同でリリース。 2021年。 |
ESM-IF1 | esm_if1_gvp4_t16_142M_UR50() | キャス+UR50 | 逆折りモデル。特定の構造の配列を設計したり、特定の構造の配列変動の機能的影響を予測したりするために使用できます。 SOTA 固定バックボーン シーケンス設計を有効にします。 Hsuらと共同でリリース。 2022年。 |
利用可能なモデルの完全なリストと詳細およびリリース ノートについては、「事前トレーニングされたモデル」を参照してください。
簡単に始める方法は、HuggingFace トランスフォーマー ライブラリを通じて ESM または ESMFold をロードすることです。これにより、ESMFold の依存関係が簡素化され、最先端の事前トレーニング済みモデルを操作するための標準化された API とツールが提供されます。
また、ColabFold には ESMFold が統合されているため、Google Colab インスタンス上のブラウザで直接簡単に実行できます。
また、curl または ESM Metagenomic Atlas Web ページからアクセスできる API も提供しています。
curl -X POST --data "KVFGRCELAAAMKRHGLDNYRGYSLGNWVCAAKFESNFNTQATNRNTDGSTDYGILQINSRWWCNDGRTPGSRNLCNIPCSALLSSDITASVNCAKKIVSDGNGMNAWVAWRNRCKGTDVQAWIRGCRL" https://api.esmatlas.com/foldSequence/v1/pdb/
ESM-MSA-1b、ESM-IF1、またはその他のモデルの場合は、以下の手順に従って、リポジトリのオリジナルの実装を直接使用できます。
前提条件として、このリポジトリを使用するには PyTorch がインストールされている必要があります。
esm の最新リリースを使用して、次のワンライナーをインストールに使用できます。
pip install fair-esm # latest release, OR:
pip install git+https://github.com/facebookresearch/esm.git # bleeding edge, current repo main branch
ESMFold モデルを使用するには、必ず Python <= 3.9 と pytorch がインストールされた環境から開始してください。次に、pip インストールに[esmfold]
オプションを追加します。これにより、OpenFold の依存関係が自動的にインストールされます。 Openfold のインストールにはnvcc
が必要です。
pip install " fair-esm[esmfold] "
# OpenFold and its remaining dependency
pip install ' dllogger @ git+https://github.com/NVIDIA/dllogger.git '
pip install ' openfold @ git+https://github.com/aqlaboratory/openfold.git@4b41059694619831a7db195b7e0988fc4ff3a307 '
注: openfold のインストールが失敗した場合は、 nvcc
が利用可能であること、および cuda 互換バージョンの PyTorch がインストールされていることを再確認してください。
あるいは、 esmfold
conda 環境も提供されており、 conda env create -f environment.yml
で構築できます。
また、PyTorch Hub もサポートしています。これにより、このリポジトリを自分で複製したりインストールしたりする必要がなくなります。
import torch
model , alphabet = torch . hub . load ( "facebookresearch/esm:main" , "esm2_t33_650M_UR50D" )
pip のインストール後、次のように事前トレーニングされたモデルをロードして使用できます。
import torch import esm # Load ESM-2 model model , alphabet = esm . pretrained . esm2_t33_650M_UR50D () batch_converter = alphabet . get_batch_converter () model . eval () # disables dropout for deterministic results # Prepare data (first 2 sequences from ESMStructuralSplitDataset superfamily / 4) data = [ ( "protein1" , "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG" ), ( "protein2" , "KALTARQQEVFDLIRDHISQTGMPPTRAEIAQRLGFRSPNAAEEHLKALARKGVIEIVSGASRGIRLLQEE" ), ( "protein2 with mask" , "KALTARQQEVFDLIRDISQTGMPPTRAEIAQRLGFRSPNAAEEHLKALARKGVIEIVSGASRGIRLLQEE" ), ( "protein3" , "K AI S Q" ), ] batch_labels , batch_strs , batch_tokens = batch_converter ( data ) batch_lens = ( batch_tokens != alphabet . padding_idx ). sum ( 1 ) # Extract per-residue representations (on CPU) with torch . no_grad (): results = model ( batch_tokens , repr_layers = [ 33 ], return_contacts = True ) token_representations = results [ "representations" ][ 33 ] # Generate per-sequence representations via averaging # NOTE: token 0 is always a beginning-of-sequence token, so the first residue is token 1. sequence_representations = [] for i , tokens_len in enumerate ( batch_lens ): sequence_representations . append ( token_representations [ i , 1 : tokens_len - 1 ]. mean ( 0 )) # Look at the unsupervised self-attention map contact predictions import matplotlib . pyplot as plt for ( _ , seq ), tokens_len , attention_contacts in zip ( data , batch_lens , results [ "contacts" ]): plt . matshow ( attention_contacts [: tokens_len , : tokens_len ]) plt . title ( seq ) plt . show ()
[esmfold]
オプションを指定してインストールすると、次のように ESMFold 構造予測モデルを使用できるようになります。
import torch
import esm
model = esm . pretrained . esmfold_v1 ()
model = model . eval (). cuda ()
# Optionally, uncomment to set a chunk size for axial attention. This can help reduce memory.
# Lower sizes will have lower memory requirements at the cost of increased speed.
# model.set_chunk_size(128)
sequence = "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG"
# Multimer prediction can be done with chains separated by ':'
with torch . no_grad ():
output = model . infer_pdb ( sequence )
with open ( "result.pdb" , "w" ) as f :
f . write ( output )
import biotite . structure . io as bsio
struct = bsio . load_structure ( "result.pdb" , extra_fields = [ "b_factor" ])
print ( struct . b_factor . mean ()) # this will be the pLDDT
# 88.3
使用を推奨する最高のパフォーマンスのモデルであるesm.pretrained.esmfold_v1()
に加えて、Lin らの実験に使用されたesm.pretrained.esmfold_v0()
も提供します。 2022年。
また、ESMFold を使用して FASTA ファイルから構造を一括で効率的に予測するコマンド ライン インターフェイス ( esm-fold
) も提供します。
usage: esm-fold [-h] -i FASTA -o PDB [--num-recycles NUM_RECYCLES]
[--max-tokens-per-batch MAX_TOKENS_PER_BATCH]
[--chunk-size CHUNK_SIZE] [--cpu-only] [--cpu-offload]
optional arguments:
-h, --help show this help message and exit
-i FASTA, --fasta FASTA
Path to input FASTA file
-o PDB, --pdb PDB Path to output PDB directory
--num-recycles NUM_RECYCLES
Number of recycles to run. Defaults to number used in
training (4).
--max-tokens-per-batch MAX_TOKENS_PER_BATCH
Maximum number of tokens per gpu forward-pass. This
will group shorter sequences together for batched
prediction. Lowering this can help with out of memory
issues, if these occur on short sequences.
--chunk-size CHUNK_SIZE
Chunks axial attention computation to reduce memory
usage from O(L^2) to O(L). Equivalent to running a for
loop over chunks of of each dimension. Lower values
will result in lower memory usage at the cost of
speed. Recommended values: 128, 64, 32. Default: None.
--cpu-only CPU only
--cpu-offload Enable CPU offloading
このコマンドは、fasta ファイル内のすべてのシーケンスに対して 1 つの予測を作成します。マルチマーは予測可能であり、連鎖を「:」文字で区切った単一のシーケンスとして fasta ファイルに入力する必要があります。
デフォルトでは、短いシーケンスが同時に予測されるように、予測はまとめてバッチ処理されます。これは--max-tokens-per-batch=0
設定することで無効にできます。バッチ処理により、短いシーケンスの予測速度が大幅に向上します。
--cpu-offload
フラグは、より長いシーケンスの予測を行うのに役立ちます。一部のパラメータを GPU に保存するのではなく、CPU RAM にオフロードしようとします。
最後に、Lin らは、さまざまなサイズの LM に対するアブレーション実験を行います。 2022 テーブル S1 はesm.pretrained.esmfold_structure_module_only_*()
としてリリースされます。これらのモデルを構造予測に使用することはお勧めしません。
ESM から FASTA ファイルの埋め込みを一括で効率的に抽出するコマンド ライン インターフェイス ( esm-extract
) が提供されています。
usage: esm-extract [-h] [--toks_per_batch TOKS_PER_BATCH]
[--repr_layers REPR_LAYERS [REPR_LAYERS ...]] --include
{mean,per_tok,bos,contacts}
[{mean,per_tok,bos,contacts} ...]
[--truncation_seq_length TRUNCATION_SEQ_LENGTH]
model_location fasta_file output_dir
Extract per-token representations and model outputs for sequences in a FASTA
file
positional arguments:
model_location PyTorch model file OR name of pretrained model to
download (see README for models)
fasta_file FASTA file on which to extract representations
output_dir output directory for extracted representations
optional arguments:
-h, --help show this help message and exit
--toks_per_batch TOKS_PER_BATCH
maximum batch size
--repr_layers REPR_LAYERS [REPR_LAYERS ...]
layers indices from which to extract representations
(0 to num_layers, inclusive)
--include {mean,per_tok,bos,contacts} [{mean,per_tok,bos,contacts} ...]
specify which representations to return
--truncation_seq_length TRUNCATION_SEQ_LENGTH
truncate sequences longer than the given value
次のコマンドを使用すると、ESM-2 モデルから FASTA ファイルの最終層埋め込みを抽出できます。
esm-extract esm2_t33_650M_UR50D examples/data/some_proteins.fasta
examples/data/some_proteins_emb_esm2 --repr_layers 0 32 33 --include
python scripts/extract.py esm2_t33_650M_UR50D examples/data/some_proteins.fasta
examples/data/some_proteins_emb_esm2 --repr_layers 0 32 33 --include mean per_tok
cuda デバイスはオプションであり、自動検出されます。
ディレクトリsome_proteins_emb_esm2/
は、FASTA シーケンスごとに 1 つの.pt
ファイルが含まれるようになりました。 torch.load()
使用してそれらをロードします。 scripts/extract.py
.pt
ファイルに何が含まれるかを決定するフラグがあります。
--repr-layers
(デフォルト: Final のみ) は、埋め込みを含めるレイヤーを選択します。--include
保存する埋め込みを指定します。次のものが使用できます。per_tok
、アミノ酸ごとの埋め込み (seq_len x hidden_dim) を含む完全なシーケンスが含まれます。mean
には、レイヤーごとにシーケンス全体にわたって平均化されたエンベディングが含まれます。bos
は、シーケンス開始トークンからの埋め込みが含まれます。 (注: 事前トレーニングされたモデルでは使用しないでください - 私たちは bos-token の監視なしでトレーニングしました)15B などの非常に大規模なモデルをロードしたり、マシン上で長いシーケンスの推論を実行したりする場合、通常の GPU 推論では OOM エラーが発生する可能性があります。 Fairscale の Fully Sharded Data Parallel (FSDP) を使用してモデルをロードし、その CPU オフロード機能を使用する方法を示します。これにより、単一の GPU で大規模なモデルの推論を実行できるようになります。詳細については、 examples/esm2_infer_fairscale_fsdp_cpu_offloading.py
を確認してください。
言語モデルで説明されている ESM-1v モデルのコードと事前トレーニングされた重みについては、「examples/variant-prediction/」を参照してください。タンパク質機能に対する変異の影響のゼロショット予測が可能になります。 (マイヤー他、2021)。
ESM-2 はバリアント予測にも使用でき、ESM-1v と同様のパフォーマンスが期待されることに注意してください。
詳細なユーザーガイドについては、「examples/inverse_folding/」を参照してください。 ESM-IF1 モデルは、「数百万の予測構造からの逆折りたたみの学習」でGVPTransformer
として説明されています。 (Hsu et al. 2022)。
また、シーケンス設計およびシーケンス スコアリング機能用の colab ノートブックも提供します。
ESM-IF1 逆折り畳みモデルは、バックボーン原子座標からタンパク質配列を予測するために構築されています。ここでは、1) 特定の構造の配列設計をサンプルするため、および 2) 特定の構造の配列をスコアリングするためのスクリプトを提供します。
AlphaFold2 によって予測された 1,200 万のタンパク質構造を使用してトレーニングされた ESM-IF1 モデルは、不変の幾何学的入力処理層とそれに続く配列間変換器で構成され、構造的に保持されたバックボーンでは 51% のネイティブ配列の回復、埋もれたバックボーンでは 72% の回復を達成します。残留物。このモデルは、バックボーン座標の欠落を許容するためにスパン マスキングでもトレーニングされているため、部分的にマスクされた構造のシーケンスを予測できます。
環境セットアップについては、examples/inverse_folding のこのサブセクションで説明されています。
PDB または mmCIF 形式で特定の構造のシーケンスをサンプリングするには、 sample_sequences.py
スクリプトを使用します。入力ファイルには、接尾辞として.pdb
または.cif
を付けることができます。
たとえば、ゴルジ カゼイン キナーゼ構造 (PDB 5YH2; 2022 年 1 月の今月の PDB 分子) の 3 つの配列デザインをサンプルするには、esm ルート ディレクトリから次のコマンドを実行できます。
python examples/inverse_folding/sample_sequences.py examples/inverse_folding/data/5YH2.pdb
--chain C --temperature 1 --num-samples 3 --outpath examples/inverse_folding/output/sampled_sequences.fasta
サンプリングされたシーケンスは、指定された出力ファイルに fasta 形式で保存されます。
温度パラメータは、シーケンス サンプリングの確率分布の鮮明さを制御します。サンプリング温度が高いほど、より多様な配列が得られますが、ネイティブ配列の回収率は低くなる可能性があります。デフォルトのサンプリング温度は 1 です。ネイティブ シーケンスの回復を最適化するには、1e-6 などの低温でサンプリングすることをお勧めします。
特定の構造に基づいて条件付けされたシーケンスの条件付き対数尤度をスコアリングするには、 score_log_likelihoods.py
スクリプトを使用します。
たとえば、 examples/inverse_folding/data/5YH2_mutated_seqs.fasta
の構造に従ってexamples/inverse_folding/data/5YH2.pdb
5YH2_mutated_seqs.fasta のシーケンスをスコアリングするには、esm ルート ディレクトリから次のコマンドを実行できます。
python examples/inverse_folding/score_log_likelihoods.py examples/inverse_folding/data/5YH2.pdb
examples/inverse_folding/data/5YH2_mutated_seqs.fasta --chain C
--outpath examples/inverse_folding/output/5YH2_mutated_seqs_scores.csv
条件付き対数尤度は、指定された出力パスに csv 形式で保存されます。出力値は、配列内のすべてのアミノ酸の平均をとった平均対数尤度です。
詳細については、「./examples/inverse_folding/」の詳細なユーザー ガイドを参照してください。
詳細については、ESM Metagenomic Atlas Web サイトにアクセスし、ブログ投稿を参照してください。
一括ダウンロードの手順については、こちらの別の README をご覧ください。
アトラス リソースには、ESMFold を使用してシーケンスを折りたたむためのページ、構造またはシーケンスによって ESM アトラスのサブセットを検索するページ、およびこれらのリソースにプログラムでアクセスするための API が含まれています。
Foldseek は、長さの制限なしで Atlas に対する検索を提供します。
ESM-IF1 逆フォールディング モデルは、AlphaFold2 によって予測された 1,200 万個のタンパク質構造を使用してトレーニングされた、バックボーン原子座標からタンパク質配列を予測します。このノートでは、シーケンスのサンプリング、条件付き対数尤度の計算、エンコーダー出力を構造表現として抽出する例について説明します。
エンベディングの使用を開始できるように、この jupyter ノートブック チュートリアルでは、ESM-1 のエンベディングを使用して教師ありバリアント予測子をトレーニングする方法を示します。データが限られている場合でも、同様のプロトコルを採用して、ダウンストリーム タスクのモデルをトレーニングできます。まず、ノートブックの指示に従って事前計算された埋め込みをダウンロードするか、次のコマンドを実行することで、 examples/data/P62593.fasta
の埋め込みを取得できます。
# Obtain the embeddings
python scripts/extract.py esm1v_t33_650M_UR90S_1 examples/data/P62593.fasta
examples/data/P62593_emb_esm1v --repr_layers 33 --include mean
次に、チュートリアルの残りの指示に従います。 colab ノートブックでチュートリアルを実行することもできます。
代わりに、教師付きトレーニングなしで突然変異の影響を予測する、ゼロショットバリアント予測の新しい命令を使用することに注意してください。
この jupyter ノートブック チュートリアルでは、ESM-2 モデルと MSA Transformer (ESM-MSA-1) モデルの両方を使用した接触予測を示します。接触予測は、モデルのアテンション マップに対するロジスティック回帰に基づいています。この方法論は、ICLR 2021 論文「Transformer タンパク質言語モデルは教師なし構造学習器」に基づいています。 (Rao et al. 2020) MSA Transformer (ESM-MSA-1) は、マルチ シーケンス アライメント (MSA) を入力として受け取り、同じ方法で結合された行セルフ アテンション マップを使用します。 「MSA トランスフォーマー」を参照してください。 (Rao et al. 2021)。
監視されていないアテンションベースの連絡先を取得するには、 model.predict_contacts(tokens)
またはmodel(tokens, return_contacts=True)
を呼び出します。
そして、この jupyter ノートブック チュートリアルでは、 ESMStructuralSplitDataset
ロードしてインデックスを作成する方法と、ESM-2 を使用してセルフ アテンション マップの教師なし接触予測を計算する方法を示します。
速記法 | esm.pretrained. | #レイヤー | #params | データセット | 薄暗い埋め込み | モデル URL ( ~/.cache/torch/hub/checkpoints に自動的にダウンロードされます) |
---|---|---|---|---|---|---|
ESM-2 | esm2_t48_15B_UR50D | 48 | 15B | UR50/D 2021_04 | 5120 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t48_15B_UR50D.pt |
esm2_t36_3B_UR50D | 36 | 3B | UR50/D 2021_04 | 2560 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t36_3B_UR50D.pt | |
esm2_t33_650M_UR50D | 33 | 650M | UR50/D 2021_04 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t33_650M_UR50D.pt | |
esm2_t30_150M_UR50D | 30 | 150M | UR50/D 2021_04 | 640 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t30_150M_UR50D.pt | |
esm2_t12_35M_UR50D | 12 | 35M | UR50/D 2021_04 | 480 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t12_35M_UR50D.pt | |
esm2_t6_8M_UR50D | 6 | 8M | UR50/D 2021_04 | 320 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t6_8M_UR50D.pt | |
ESMフォールド | esmfold_v1 | 48 (+36) | 690M (+3B) | UR50/D 2021_04 | - | https://dl.fbaipublicfiles.com/fair-esm/models/esmfold_3B_v1.pt |
esmfold_v0 | 48 (+36) | 690M (+3B) | UR50/D 2021_04 | - | https://dl.fbaipublicfiles.com/fair-esm/models/esmfold_3B_v0.pt | |
esmfold_structure_module_only_* | 0(+各種) | 様々な | UR50/D 2021_04 | - | https://dl.fbaipublicfiles.com/fair-esm/models/esmfold_ Structure_module_only_* | |
ESM-IF1 | esm_if1_gvp4_t16_142M_UR50 | 20 | 124M | CATH 4.3 + UR50 の予測構造 | 512 | https://dl.fbaipublicfiles.com/fair-esm/models/esm_if1_gvp4_t16_142M_UR50.pt |
ESM-1v | esm1v_t33_650M_UR90S_[1-5] | 33 | 650M | UR90/S 2020_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1v_t33_650M_UR90S_1.pt |
ESM-MSA-1b | esm_msa1b_t12_100M_UR50S | 12 | 100M | UR50/S + MSA 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm_msa1b_t12_100M_UR50S.pt |
ESM-MSA-1 | esm_msa1_t12_100M_UR50S | 12 | 100M | UR50/S + MSA 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm_msa1_t12_100M_UR50S.pt |
ESM-1b | esm1b_t33_650M_UR50S | 33 | 650M | UR50/S 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1b_t33_650M_UR50S.pt |
ESM-1 | esm1_t34_670M_UR50S | 34 | 670M | UR50/S 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t34_670M_UR50S.pt |
esm1_t34_670M_UR50D | 34 | 670M | UR50/D 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t34_670M_UR50D.pt | |
esm1_t34_670M_UR100 | 34 | 670M | UR100 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t34_670M_UR100.pt | |
esm1_t12_85M_UR50S | 12 | 85M | UR50/S 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t12_85M_UR50S.pt | |
esm1_t6_43M_UR50S | 6 | 43M | UR50/S 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t6_43M_UR50S.pt |
以下は、リリースされたモデルとそれらが紹介された論文の時系列リストです。
速記法 | リリースノート |
---|---|
ESM-1 | Rivesらと共同でリリース。 2019年(2020年8月更新)。 |
ESM-1b | Rivesらと共同でリリース。 2019年(2020年12月更新)。付録 B を参照してください。 |
ESM-MSA-1 | ラオらと共同でリリース。 2021 (プレプリント v1)。 |
ESM-MSA-1b | ラオらと共同でリリース。 2021 (ICML'21 バージョン、2021 年 6 月)。 |
ESM-1v | Meierらと共同でリリース。 2021年。 |
ESM-IF1 | Hsuらと共同でリリース。 2022年。 |
ESM-2 | リンらと共同でリリース。 2022年。 |
これは、タンパク質ドメイン構造の 5 重交差検証データセットであり、さまざまなレベルの構造的相違点にわたる表現の一般化を測定するために使用できます。データセットは、ファミリー、スーパーファミリー、およびフォールド レベルで構造的ホールドアウトを実装します。 SCOPE データベースはドメインを分類するために使用されます。構造的ホールドアウトのレベルごとに独立して、ドメインは 5 つの等しいセット、つまり 5 つのフォールド、スーパーファミリー、またはファミリーのセットに分割されます。これにより、5 つのパーティションのそれぞれについて、同じ分類を持つ構造がトレイン セットとテスト セットの両方に出現しないことが保証されます。特定の分類レベルでは、各構造がテスト セットに 1 回出現するため、相互検証実験では各構造が 1 回だけ評価されます。
このデータセットは、3D 座標、距離マップ、二次構造ラベルを提供します。データセットの構築の詳細については、Rives et al. を参照してください。 2019 年付録 A.10。
この jupyter ノートブック チュートリアルでは、 ESMStructuralSplitDataset
ロードしてインデックスを付ける方法を示します。
ESMStructuralSplitDataset
、初期化時にsplits
とpkl
ダウンロードします。各ドメインのmsas
も提供します。データは以下から直接ダウンロードできます。
名前 | 説明 | URL |
---|---|---|
分割 | トレイン/有効な分割 | https://dl.fbaipublicfiles.com/fair-esm/structural-data/splits.tar.gz |
パックル | シーケンス、SSP ラベル、距離マップ、および 3D 座標を含む pkl オブジェクト | https://dl.fbaipublicfiles.com/fair-esm/structural-data/pkl.tar.gz |
msas | 各ドメインの MSA を含む a3m ファイル | https://dl.fbaipublicfiles.com/fair-esm/structural-data/msas.tar.gz |
どの UniRef50 クラスターが Rives らの事前トレーニング用のホールドアウト評価セットとして使用されたかを確立する分割ファイル。 2019 と Rao et al. 2021 年はこちらからご覧いただけます:
これらのファイルには、クリエイティブ コモンズ表示 (CC BY 4.0) ライセンスに基づいて UniProt コンソーシアムによってリリースされた UniRef データベース 2018-03 リリースに対応する UniRef50 ID と UniRef100 ID のみが含まれています。
タスク | 教師なし接触予測 | 構造予測 | |||
---|---|---|---|---|---|
テストセット | 大有効 | CASP14 | カメオ出演 (2022 年 4 月~6 月) | CASP14 | カメオ出演 (2022 年 4 月~6 月) |
グレムリン(ポッツ) | 39.3 | ||||
テープ | 11.2 | ||||
プロットバート-BFD | 34.1 | ||||
プロット-T5-XL-BFD | 35.6 | 46.1 | 62.6 | ||
プロット-T5-XL-Ur50 (3B) | 47.9 | 49.8 | 69.4 | ||
ESM-1 | 33.7 | ||||
ESM-1b | 41.1 | 24.4 | 39 | 41.6 | 64.5 |
ESM-1v | 35.3 | ||||
ESM-MSA-1b | 57.4 | ||||
ESM-2(8M) | 15.9 | 9.8 | 15.7 | 36.7 | 48.1 |
ESM-2 (35M) | 28.8 | 16.4 | 28.4 | 41.4 | 56.4 |
ESM-2 (150M) | 42.2 | 26.8 | 40.1 | 49.0 | 64.9 |
ESM-2 (700M) | 50.1 | 32.5 | 47.6 | 51.3 | 70.1 |
ESM-2(3B) | 52.7 | 34.0 | 49.9 | 52.5 | 71.8 |
ESM-2(15B) | 54.5 | 37.0 | 51.7 | 55.4 | 72.1 |
構造予測タスクに関する関連タンパク質言語モデルとの比較。
ご自身の研究に役立つモデルを見つけた場合は、関連する論文を引用するようお願いします。
@article { rives2019biological ,
author = { Rives, Alexander and Meier, Joshua and Sercu, Tom and Goyal, Siddharth and Lin, Zeming and Liu, Jason and Guo, Demi and Ott, Myle and Zitnick, C. Lawrence and Ma, Jerry and Fergus, Rob } ,
title = { Biological Structure and Function Emerge from Scaling Unsupervised Learning to 250 Million Protein Sequences } ,
year = { 2019 } ,
doi = { 10.1101/622803 } ,
url = { https://www.biorxiv.org/content/10.1101/622803v4 } ,
journal = { PNAS }
}
自注意接触予測の場合:
@article { rao2020transformer ,
author = { Rao, Roshan M and Meier, Joshua and Sercu, Tom and Ovchinnikov, Sergey and Rives, Alexander } ,
title = { Transformer protein language models are unsupervised structure learners } ,
year = { 2020 } ,
doi = { 10.1101/2020.12.15.422761 } ,
url = { https://www.biorxiv.org/content/10.1101/2020.12.15.422761v1 } ,
journal = { bioRxiv }
}
MSA トランスの場合:
@article { rao2021msa ,
author = { Rao, Roshan and Liu, Jason and Verkuil, Robert and Meier, Joshua and Canny, John F. and Abbeel, Pieter and Sercu, Tom and Rives, Alexander } ,
title = { MSA Transformer } ,
year = { 2021 } ,
doi = { 10.1101/2021.02.12.430858 } ,
url = { https://www.biorxiv.org/content/10.1101/2021.02.12.430858v1 } ,
journal = { bioRxiv }
}
ESM-1v を使用したバリアント予測の場合:
@article { meier2021language ,
author = { Meier, Joshua and Rao, Roshan and Verkuil, Robert and Liu, Jason and Sercu, Tom and Rives, Alexander } ,
title = { Language models enable zero-shot prediction of the effects of mutations on protein function } ,
year = { 2021 } ,
doi = { 10.1101/2021.07.09.450648 } ,
url = { https://www.biorxiv.org/content/10.1101/2021.07.09.450648v1 } ,
journal = { bioRxiv }
}
ESM-IF1 を使用した逆折りたたみの場合:
@article { hsu2022learning ,
author = { Hsu, Chloe and Verkuil, Robert and Liu, Jason and Lin, Zeming and Hie, Brian and Sercu, Tom and Lerer, Adam and Rives, Alexander } ,
title = { Learning inverse folding from millions of predicted structures } ,
year = { 2022 } ,
doi = { 10.1101/2022.04.10.487779 } ,
url = { https://www.biorxiv.org/content/early/2022/04/10/2022.04.10.487779 } ,
journal = { ICML }
}
ESM-2 言語モデルと ESMFold の場合:
@article { lin2022language ,
title = { Language models of protein sequences at the scale of evolution enable accurate structure prediction } ,
author = { Lin, Zeming and Akin, Halil and Rao, Roshan and Hie, Brian and Zhu, Zhongkai and Lu, Wenting and Smetanin, Nikita and dos Santos Costa, Allan and Fazel-Zarandi, Maryam and Sercu, Tom and Candido, Sal and others } ,
journal = { bioRxiv } ,
year = { 2022 } ,
publisher = { Cold Spring Harbor Laboratory }
}
このコードの多くは、fairseq シーケンス モデリング フレームワークに基づいて構築されています。私たちはタンパク質言語モデリングの研究のために社内で Fairseq を使用しています。プロテイン言語モデルを最初から事前トレーニングしたい場合は、これを試してみることを強くお勧めします。
さらに、Meier らのバリアント予測ベンチマークを使用したい場合は、 (2021) では、すべてのデータの引用を含む bibtex ファイルを ./examples/variant-prediction/mutation_data.bib で提供します。各論文を個別に引用することも、LaTeX コマンドを使用してすべての引用を一括で追加することもできます。
nocite { wrenbeck2017deep , klesmith2015comprehensive , haddox2018mapping , romero2015dissecting , firnberg2014comprehensive , deng2012deep , stiffler2015evolvability , jacquier2013capturing , findlay2018comprehensive , mclaughlin2012spatial , kitzman2015massively , doud2016accurate , pokusaeva2019experimental , mishra2016systematic , kelsic2016rna , melnikov2014comprehensive , brenan2016phenotypic , rockah2015systematic , wu2015functional , aakre2015evolving , qi2014quantitative , matreyek2018multiplex , bandaru2017deconstruction , roscoe2013analyses , roscoe2014systematic , mavor2016determination , chan2017correlation , melamed2013deep , starita2013activity , araya2012fundamental }
このソース コードは、このソース ツリーのルート ディレクトリにあるLICENSE
ファイルにある MIT ライセンスに基づいてライセンスされています。
ESM Metagenomic Atlas (「ESM Metagenomic Structure Atlas」または「ESM Atlas」とも呼ばれます) データは、CC BY 4.0 ライセンスに基づいて学術目的および商用目的で利用できます。 Copyright (c) Meta Platforms, Inc. All Rights Reserved. ESM Metagenomic Atlas データの使用には、メタ オープンソースの利用規約およびプライバシー ポリシーが適用されます。