تحديث أبريل 2023: تم الآن إصدار الكود الخاص بالطبعتين الأوليتين المتزامنتين لتصميم البروتين! كود "تعميم نماذج اللغة خارج البروتينات الطبيعية" موجود تحت الأمثلة/lm-design/. كود "لغة برمجة عالية المستوى لتصميم البروتين التوليدي" موجود ضمن الأمثلة/protein-programming-language/.
يحتوي هذا المستودع على تعليمات برمجية وأوزان مدربة مسبقًا لنماذج لغة بروتين المحولات من فريق Meta Fundamental AI Research Protein Team (FAIR)، بما في ذلك ESM-2 و ESMFold المتطور، بالإضافة إلى MSA Transformer و ESM-1v للتنبؤ بالتأثيرات المتغيرة و ESM-IF1 للطي العكسي. تم تقديم نماذج لغة بروتين المحولات في النسخة التمهيدية لعام 2019 من الورقة "البنية البيولوجية والوظيفة تنشأ من توسيع نطاق التعلم غير الخاضع للرقابة إلى 250 مليون تسلسل بروتين". يتفوق ESM-2 على جميع نماذج لغة البروتين أحادية التسلسل التي تم اختبارها عبر مجموعة من مهام التنبؤ بالبنية. يستخدم ESMFold نموذج اللغة ESM-2 لإنشاء تنبؤات دقيقة للبنية من البداية إلى النهاية مباشرة من تسلسل البروتين.
في نوفمبر 2022، أصدرنا الإصدار v0
من ESM Metagenomic Atlas، وهو أطلس مفتوح يضم 617 مليون بنية بروتينية ميتاجينومية متوقعة. تم تحديث الأطلس في مارس 2023 بالتعاون مع EBI. يضيف الإصدار v2023_02
الجديد 150 مليون بنية متوقعة أخرى إلى الأطلس، بالإضافة إلى تضمينات ESM2 المحسوبة مسبقًا. تم توثيق التنزيل المجمع ومنشور المدونة والموارد المتوفرة على موقع Atlas الإلكتروني في هذا الملف التمهيدي.
في ديسمبر 2022، أصدرنا نسختين متزامنتين حول تصميم البروتين.
لنماذج لغة بروتين المحولات:
@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
. راجع موقع الويب وتفاصيل التنزيل المجمع.
) بالتسلسل.ESM-MSA-1b
).الاختزال | esm.pretrained. | مجموعة البيانات | وصف |
---|---|---|---|
ESM-2 | esm2_t36_3B_UR50D() esm2_t48_15B_UR50D() | UR50 (عينة UR90) | نموذج لغة البروتين للأغراض العامة SOTA. يمكن استخدامها للتنبؤ بالبنية والوظيفة وخصائص البروتين الأخرى مباشرةً من التسلسلات الفردية. صدر مع لين وآخرون. 2022 (تحديث أغسطس 2022). |
ESMFold | esmfold_v1() | بي دي بي + UR50 | أداة توقع البنية ثلاثية الأبعاد لتسلسل فردي من طرف إلى طرف (تحديث نوفمبر 2022). |
ESM-MSA-1b | esm_msa1b_t12_100M_UR50S() | UR50 + MSA | نموذج لغة محول MSA. يمكن استخدامها لاستخراج التضمينات من MSA. لتمكين استنتاج SOTA للهيكل. صدر مع راو وآخرون. 2021 (إصدار ICML'21، يونيو 2021). |
ESM-1v | esm1v_t33_650M_UR90S_1() ... esm1v_t33_650M_UR90S_5() | UR90 | نموذج لغة متخصص للتنبؤ بالتأثيرات المتغيرة. يتيح التنبؤ الصفري لـ SOTA بالتأثيرات الوظيفية لتغيرات التسلسل. نفس بنية ESM-1b، لكن تم تدريبها على UniRef90. صدر مع ماير وآخرون. 2021. |
ESM-IF1 | esm_if1_gvp4_t16_142M_UR50() | كاث + UR50 | نموذج للطي العكسي. يمكن استخدامها لتصميم تسلسلات لهياكل معينة، أو للتنبؤ بالتأثيرات الوظيفية لتغير التسلسل لهياكل معينة. تمكين تصميم تسلسل العمود الفقري الثابت لـ SOTA. صدر مع هسو وآخرون. 2022. |
للحصول على قائمة كاملة بالنماذج المتاحة، مع التفاصيل وملاحظات الإصدار، راجع النماذج المدربة مسبقًا.
إحدى الطرق السهلة للبدء هي تحميل ESM أو ESMFold من خلال مكتبة محولات HuggingFace، التي قامت بتبسيط تبعيات ESMFold وتوفر واجهة برمجة تطبيقات وأدوات موحدة للعمل مع أحدث النماذج المدربة مسبقًا.
وبدلاً من ذلك، قام ColabFold بدمج ESMFold بحيث يمكنك تشغيله بسهولة مباشرة في المتصفح على مثيل Google Colab.
نوفر أيضًا واجهة برمجة التطبيقات (API) التي يمكنك الوصول إليها من خلال Curl أو على صفحة الويب ESM Metagenomic Atlas.
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. ثم أضف خيار [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
ومن تثبيت إصدار PyTorch متوافق مع cuda.
وبدلاً من ذلك، نوفر بيئة esmfold
conda، والتي يمكن بناؤها عبر conda env create -f environment.yml
.
نحن ندعم أيضًا PyTorch Hub، مما يلغي الحاجة إلى استنساخ و/أو تثبيت هذا المستودع بنفسك:
import torch
model , alphabet = torch . hub . load ( "facebookresearch/esm:main" , "esm2_t33_650M_UR50D" )
بعد تثبيت النقطة، يمكنك تحميل واستخدام نموذج مُدرب مسبقًا كما يلي:
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()
وهو النموذج الأفضل أداءً الذي نوصي باستخدامه، فإننا نقدم أيضًا esm.pretrained.esmfold_v0()
الذي تم استخدامه للتجارب في Lin et al. 2022.
نوفر أيضًا واجهة سطر الأوامر ( esm-fold
) التي تتنبأ بفعالية بالهياكل المجمعة من ملف FASTA باستخدام ESMFold:
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. يمكن التنبؤ بالمتعددات ويجب إدخالها في ملف fasta كتسلسل واحد، مع فصل السلاسل بحرف ":".
افتراضيًا، سيتم تجميع التنبؤات معًا بحيث يتم توقع التسلسلات الأقصر في وقت واحد. يمكن تعطيل هذا عن طريق الإعداد --max-tokens-per-batch=0
. يمكن أن يؤدي التجميع إلى تحسين سرعة التنبؤ بشكل كبير في التسلسلات الأقصر.
يمكن أن تكون علامة --cpu-offload
مفيدة في عمل تنبؤات على تسلسلات أطول. سيحاول إلغاء تحميل بعض المعلمات إلى ذاكرة الوصول العشوائي لوحدة المعالجة المركزية، بدلاً من تخزينها على وحدة معالجة الرسومات.
وأخيراً، تجارب الاجتثاث لـ LMs بأحجام مختلفة لين وآخرون. تم إصدار جدول 2022 S1 كـ esm.pretrained.esmfold_structure_module_only_*()
. لا نوصي باستخدام هذه النماذج للتنبؤ بالبنية.
نحن نوفر واجهة سطر أوامر ( esm-extract
) تعمل بكفاءة على استخراج التضمينات المجمعة لملف FASTA من ESM:
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
تسمح الأوامر التالية باستخراج تضمين الطبقة النهائية لملف FASTA من نموذج ESM-2:
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/
الآن على ملف .pt
واحد لكل تسلسل FASTA؛ استخدم torch.load()
لتحميلها. يحتوي scripts/extract.py
على علامات تحدد ما تم تضمينه في ملف .pt
:
--repr-layers
(افتراضي: نهائي فقط) يحدد الطبقات التي سيتم تضمين التضمينات منها.--include
يحدد التضمينات المراد حفظها. يمكنك استخدام ما يلي:per_tok
التسلسل الكامل، مع تضمين لكل حمض أميني (seq_len x Hidden_dim).mean
التضمينات التي تم حساب متوسطها على التسلسل الكامل لكل طبقة.bos
التضمينات من الرمز المميز لبداية التسلسل. (ملاحظة: لا تستخدم مع النماذج المدربة مسبقًا - لقد قمنا بالتدريب دون إشراف Bos-Token) إذا كنت تريد تحميل نماذج كبيرة جدًا مثل 15B و/أو القيام بالاستدلال على تسلسلات طويلة على جهازك، فقد يؤدي الاستدلال العادي لوحدة معالجة الرسومات إلى حدوث أخطاء OOM. نعرض كيفية تحميل النموذج باستخدام برنامج Fairscale’s Fully Shared Data Parallel (FSDP) واستخدام ميزة تفريغ وحدة المعالجة المركزية الخاصة به. وهذا يسمح باستنتاج نماذج كبيرة على وحدة معالجة رسومات واحدة. الرجاء مراجعة examples/esm2_infer_fairscale_fsdp_cpu_offloading.py
لمزيد من التفاصيل.
راجع "الأمثلة/التنبؤ المتغير/" للحصول على التعليمات البرمجية والأوزان المدربة مسبقًا لنماذج ESM-1v الموصوفة في نماذج اللغة التي تتيح التنبؤ الصفري بتأثيرات الطفرات على وظيفة البروتين. (ماير وآخرون 2021).
لاحظ أنه يمكن استخدام ESM-2 للتنبؤ المتغير أيضًا، ومن المتوقع أن يكون له أداء مماثل لـ ESM-1v.
راجع "أمثلة/inverse_folding/" للحصول على دليل المستخدم التفصيلي. يوصف نموذج ESM-IF1 بأنه GVPTransformer
في تعلم الطي العكسي من ملايين الهياكل المتوقعة. (هسو وآخرون 2022).
نحن نوفر أيضًا دفتر ملاحظات colab لتصميم التسلسل ووظائف تسجيل التسلسل.
تم تصميم نموذج الطي العكسي ESM-IF1 للتنبؤ بتسلسلات البروتين من إحداثيات ذراتها الأساسية. نحن نقدم البرامج النصية هنا 1) لأخذ عينات من تصاميم التسلسل لهيكل معين و2) لتسجيل تسلسلات لهيكل معين.
يتكون نموذج ESM-IF1، الذي تم تدريبه باستخدام هياكل بروتينية مكونة من 12 مليونًا تنبأ بها AlphaFold2، من طبقات معالجة مدخلات هندسية ثابتة متبوعة بمحول تسلسل إلى تسلسل، ويحقق استرداد تسلسل أصلي بنسبة 51% على الأعمدة الأساسية المثبتة هيكليًا مع استرداد بنسبة 72% للأجزاء المدفونة بقايا. يتم تدريب النموذج أيضًا على إخفاء الامتداد لتحمل الإحداثيات الأساسية المفقودة وبالتالي يمكنه التنبؤ بتسلسلات الهياكل المقنعة جزئيًا.
تم وصف إعداد البيئة في هذا القسم الفرعي من الأمثلة/inverse_folding.
لأخذ عينات من تسلسلات بنية معينة بتنسيق PDB أو mmCIF، استخدم البرنامج النصي sample_sequences.py
. يمكن أن يحتوي ملف الإدخال على .pdb
أو .cif
كلاحقة.
على سبيل المثال، لأخذ عينات من 3 تصميمات تسلسلية لبنية جولجي كازين كيناز (PDB 5YH2؛ جزيء PDB للشهر اعتبارًا من يناير 2022)، يمكننا تشغيل الأمر التالي من الدليل الجذر 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
، يمكننا تشغيل الأمر التالي من الدليل الجذر 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، والاطلاع على منشور مدونتنا لمعرفة المزيد.
تتوفر تعليمات التنزيل المجمعة في ملف README منفصل هنا.
تتضمن موارد Atlas صفحة لطي التسلسل باستخدام ESMFold، والبحث في مجموعة فرعية من ESM Atlas حسب البنية أو التسلسل، بالإضافة إلى واجهة برمجة التطبيقات (API) للوصول إلى تلك الموارد برمجيًا.
يوفر Foldseek إمكانية البحث في الأطلس دون تحديد الطول هنا.
يتنبأ نموذج الطي العكسي ESM-IF1 بتسلسلات البروتين من إحداثيات ذراتها الأساسية، ويتم تدريبها باستخدام هياكل البروتين 12M التي تنبأ بها AlphaFold2. ترشدك هذه المذكرة عبر أمثلة لتسلسلات أخذ العينات، وحساب احتمالات السجل الشرطي، واستخراج مخرجات التشفير كتمثيل للبنية.
لمساعدتك على البدء في استخدام التضمينات، يوضح هذا البرنامج التعليمي لدفتر 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 الخاصة بنا، نماذج لغة بروتين المحولات هي متعلمون غير خاضعين للرقابة. (Rao et al. 2020) يأخذ محول MSA (ESM-MSA-1) محاذاة التسلسل المتعدد (MSA) كمدخل، ويستخدم خرائط الاهتمام الذاتي ذات الصف المرتبط بنفس الطريقة. انظر محول MSA. (راو وآخرون 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 | 15 ب | UR50/د 2021_04 | 5120 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t48_15B_UR50D.pt |
esm2_t36_3B_UR50D | 36 | 3 ب | UR50/د 2021_04 | 2560 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t36_3B_UR50D.pt | |
esm2_t33_650M_UR50D | 33 | 650 م | UR50/د 2021_04 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t33_650M_UR50D.pt | |
esm2_t30_150M_UR50D | 30 | 150 م | UR50/د 2021_04 | 640 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t30_150M_UR50D.pt | |
esm2_t12_35M_UR50D | 12 | 35 م | UR50/د 2021_04 | 480 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t12_35M_UR50D.pt | |
esm2_t6_8M_UR50D | 6 | 8 م | UR50/د 2021_04 | 320 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t6_8M_UR50D.pt | |
ESMFold | esmfold_v1 | 48 (+36) | 690 مليون (+3 ب) | UR50/د 2021_04 | - | https://dl.fbaipublicfiles.com/fair-esm/models/esmfold_3B_v1.pt |
esmfold_v0 | 48 (+36) | 690 مليون (+3 ب) | UR50/د 2021_04 | - | https://dl.fbaipublicfiles.com/fair-esm/models/esmfold_3B_v0.pt | |
esmfold_structure_module_only_* | 0 (+متنوع) | متنوع | UR50/د 2021_04 | - | https://dl.fbaipublicfiles.com/fair-esm/models/esmfold_structure_module_only_* | |
ESM-IF1 | esm_if1_gvp4_t16_142M_UR50 | 20 | 124 م | 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 | 650 م | 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 | 100 م | 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 | 100 م | 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 | 650 م | UR50/S 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1b_t33_650M_UR50S.pt |
ESM-1 | esm1_t34_670M_UR50S | 34 | 670 م | UR50/S 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t34_670M_UR50S.pt |
esm1_t34_670M_UR50D | 34 | 670 م | UR50/د 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t34_670M_UR50D.pt | |
esm1_t34_670M_UR100 | 34 | 670 م | UR100 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t34_670M_UR100.pt | |
esm1_t12_85M_UR50S | 12 | 85 م | UR50/S 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t12_85M_UR50S.pt | |
esm1_t6_43M_UR50S | 6 | 43 م | UR50/S 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t6_43M_UR50S.pt |
فيما يلي قائمة مرتبة ترتيبًا زمنيًا للنماذج التي تم إصدارها والورقة التي تم تقديمها فيها:
الاختزال | ملاحظات الإصدار |
---|---|
ESM-1 | صدر مع رايفز وآخرون. 2019 (تحديث أغسطس 2020). |
ESM-1b | صدر مع رايفز وآخرون. 2019 (تحديث ديسمبر 2020). انظر الملحق ب. |
ESM-MSA-1 | صدر مع راو وآخرون. 2021 (طبعة أولية، الإصدار 1). |
ESM-MSA-1b | صدر مع راو وآخرون. 2021 (إصدار ICML'21، يونيو 2021). |
ESM-1v | صدر مع ماير وآخرون. 2021. |
ESM-IF1 | صدر مع هسو وآخرون. 2022. |
ESM-2 | صدر مع لين وآخرون. 2022. |
هذه عبارة عن مجموعة بيانات للتحقق من صحة خمسة أضعاف لهياكل مجال البروتين التي يمكن استخدامها لقياس تعميم التمثيلات عبر مستويات مختلفة من الاختلاف الهيكلي. تنفذ مجموعة البيانات عمليات تعليق هيكلية على مستوى الأسرة والعائلة الفائقة والأضعاف. يتم استخدام قاعدة بيانات SCOpe لتصنيف المجالات. بشكل مستقل لكل مستوى من مستويات الصمود الهيكلي، يتم تقسيم المجالات إلى 5 مجموعات متساوية، أي خمس مجموعات من الطيات أو الفصائل الفائقة أو العائلات. وهذا يضمن عدم ظهور الهياكل التي لها نفس التصنيف لكل قسم من الأقسام الخمسة في كل من مجموعات التدريب والاختبار. بالنسبة لمستوى تصنيف معين، تظهر كل بنية في مجموعة اختبار مرة واحدة، بحيث يتم تقييم كل بنية في تجربة التحقق المتقاطع مرة واحدة بالضبط.
توفر مجموعة البيانات إحداثيات ثلاثية الأبعاد وخرائط المسافة وتسميات البنية الثانوية. لمزيد من التفاصيل حول إنشاء مجموعة البيانات، راجع Rives et al. 2019 الملحق أ.10.
يوضح هذا البرنامج التعليمي لدفتر jupyter كيفية تحميل وفهرسة ESMStructuralSplitDataset
.
سيقوم ESMStructuralSplitDataset
، عند التهيئة، بتنزيل splits
و pkl
. كما نقوم بتوفير msas
لكل من المجالات. يمكن تنزيل البيانات مباشرة أدناه.
اسم | وصف | عنوان URL |
---|---|---|
انشقاقات | القطار / الانقسامات صالحة | https://dl.fbaipublicfiles.com/fair-esm/structural-data/splits.tar.gz |
pkl | كائنات pkl تحتوي على التسلسل وتسميات SSP وخريطة المسافة والإحداثيات ثلاثية الأبعاد | https://dl.fbaipublicfiles.com/fair-esm/structural-data/pkl.tar.gz |
مساس | a3m تحتوي على MSA لكل مجال | https://dl.fbaipublicfiles.com/fair-esm/structural-data/msas.tar.gz |
الملفات المقسمة التي تحدد مجموعات UniRef50 التي تم استخدامها كمجموعة تقييم معلقة للتدريب المسبق في Rives et al. 2019 وراو وآخرون. 2021 يمكن العثور عليها هنا:
تحتوي هذه الملفات فقط على معرفات UniRef50 ومعرفات UniRef100 المطابقة لقاعدة بيانات UniRef، إصدار 2018-03 الذي تم إصداره بواسطة UniProt Consortium بموجب ترخيص Creative Commons Attribution (CC BY 4.0).
مهمة | التنبؤ بالاتصال غير الخاضع للرقابة | التنبؤ بالهيكل | |||
---|---|---|---|---|---|
مجموعة اختبار | صالح كبير | CASP14 | كاميو (أبريل-يونيو 2022) | CASP14 | كاميو (أبريل-يونيو 2022) |
جريملين (بوتس) | 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 (35 م) | 28.8 | 16.4 | 28.4 | 41.4 | 56.4 |
ESM-2 (150 م) | 42.2 | 26.8 | 40.1 | 49.0 | 64.9 |
ESM-2 (700 م) | 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 et al. (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 }
تم ترخيص كود المصدر هذا بموجب ترخيص MIT الموجود في ملف LICENSE
في الدليل الجذر لشجرة المصدر هذه.
تتوفر بيانات ESM Metagenomic Atlas (يُشار إليها أيضًا باسم "ESM Metagenomic Structure Atlas" أو "ESM Atlas") بموجب ترخيص CC BY 4.0 للاستخدام الأكاديمي والتجاري. حقوق الطبع والنشر (ج) Meta Platforms, Inc. جميع الحقوق محفوظة. يخضع استخدام بيانات ESM Metagenomic Atlas لشروط الاستخدام وسياسة الخصوصية الخاصة بـ Meta Open Source.