Обновление, апрель 2023 г.: выпущен код для двух одновременных препринтов по дизайну белков! Код «Языковые модели выходят за рамки естественных белков» находится в разделе примеров/lm-design/. Код «Язык программирования высокого уровня для проектирования генеративных белков» находится в разделе example/protein-programming-language/.
Этот репозиторий содержит код и предварительно обученные веса для моделей белкового языка Transformer от 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 — открытого атласа 617 миллионов предсказанных метагеномных белковых структур. Атлас был обновлен в марте 2023 года при сотрудничестве с EBI. Новая v2023_02
добавляет в Атлас еще 150 миллионов предсказанных структур, а также предварительно рассчитанные вложения ESM2. Массовая загрузка, публикация в блоге и ресурсы, представленные на веб-сайте Atlas, описаны в этом README.
В декабре 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
. См. веб-сайт и подробную информацию о массовой загрузке.<mask>
).ESM-MSA-1b
).стенография | esm.pretrained. | Набор данных | Описание |
---|---|---|---|
ЕСМ-2 | esm2_t36_3B_UR50D() esm2_t48_15B_UR50D() | УР50 (образец УР90) | Модель белкового языка общего назначения SOTA. Может использоваться для прогнозирования структуры, функции и других свойств белка непосредственно на основе отдельных последовательностей. Выпущено совместно с Лин и др. 2022 г. (обновление от августа 2022 г.). |
ESMFold | esmfold_v1() | ПДБ + УР50 | Сквозной предсказатель трехмерной структуры одной последовательности (обновление от ноября 2022 г.). |
ЕСМ-МСА-1б | esm_msa1b_t12_100M_UR50S() | УР50 + МСА | Языковая модель MSA Transformer. Может использоваться для извлечения вложений из MSA. Включает вывод структуры SOTA. Выпущено совместно с Рао и др. 2021 г. (версия ICML'21, июнь 2021 г.). |
ЕСМ-1в | esm1v_t33_650M_UR90S_1() ... esm1v_t33_650M_UR90S_5() | УР90 | Языковая модель, специализированная для прогнозирования вариантов эффектов. Позволяет SOTA прогнозировать с нуля функциональные эффекты изменений последовательности. Та же архитектура, что и у ESM-1b, но обучена на UniRef90. Выпущено совместно с Мейером и др. 2021. |
ЕСМ-IF1 | esm_if1_gvp4_t16_142M_UR50() | КАТ + УР50 | Модель обратного складывания. Может использоваться для разработки последовательностей для заданных структур или для прогнозирования функциональных эффектов изменения последовательностей для заданных структур. Обеспечивает разработку фиксированной последовательности основной сети SOTA. Выпущено совместно с Hsu et al. 2022. |
Полный список доступных моделей с подробными сведениями и примечаниями к выпуску см. в разделе Предварительно обученные модели.
Самый простой способ начать — загрузить ESM или ESMFold через библиотеку преобразователей HuggingFace, которая упростила зависимости ESMFold и предоставляет стандартизированный API и инструменты для работы с современными предварительно обученными моделями.
Альтернативно, ColabFold интегрировал ESMFold, так что вы можете легко запускать его прямо в браузере на экземпляре Google Colab.
Мы также предоставляем API, к которому вы можете получить доступ через Curl или на веб-странице метагеномного атласа ESM.
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]
в свою установку pip, которая автоматически установит зависимости для 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.
В качестве альтернативы мы предоставляем среду conda esmfold
, которую можно создать с помощью 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" , "KALTARQQEVFDLIRD<mask>ISQTGMPPTRAEIAQRLGFRSPNAAEEHLKALARKGVIEIVSGASRGIRLLQEE" ),
( "protein3" , "K A <mask> I 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
может быть полезен для прогнозирования более длинных последовательностей. Он попытается выгрузить некоторые параметры в ОЗУ ЦП, а не сохранить их в графическом процессоре.
Наконец, эксперименты по абляции ЛМ разных размеров Lin et al. Таблица S1 2022 выпущена как 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 xhidden_dim).mean
включает в себя вложения, усредненные по всей последовательности, на каждый слой.bos
включает встраивания из токена начала последовательности. (ПРИМЕЧАНИЕ. Не используйте с предварительно обученными моделями — мы обучались без контроля токена bos) Если вы хотите загружать очень большие модели, такие как 15B, и/или выполнять на своем компьютере вывод для длинных последовательностей, обычный вывод с помощью графического процессора может привести к ошибкам OOM. Мы покажем, как загрузить модель с помощью Fully Sharded Data Parallel (FSDP) Fairscale и использовать ее функцию разгрузки ЦП. Это позволяет делать выводы больших моделей на одном графическом процессоре. Для получения более подробной информации посетите examples/esm2_infer_fairscale_fsdp_cpu_offloading.py
.
См. «Примеры/вариант-предсказание/» для кода и предварительно обученных весов для моделей ESM-1v, описанных в разделе «Языковые модели», позволяющие прогнозировать с нуля влияние мутаций на функцию белка. (Мейер и др., 2021).
Обратите внимание, что ESM-2 также можно использовать для прогнозирования вариантов, и ожидается, что он будет иметь производительность, аналогичную ESM-1v.
Подробное руководство пользователя см. в разделе «examples/inverse_folding/». Модель ESM-IF1 описывается как GVPTransformer
в обучении обратному сворачиванию на основе миллионов предсказанных структур. (Сюй и др., 2022).
Мы также предоставляем блокнот Colab для разработки последовательностей и функций оценки последовательностей.
Модель обратной складки ESM-IF1 создана для прогнозирования последовательностей белков на основе координат их основных атомов. Здесь мы предоставляем сценарии 1) для выборки дизайнов последовательностей для данной структуры и 2) для оценки последовательностей для данной структуры.
Модель ESM-IF1, обученная с использованием 12 миллионов белковых структур, предсказанных AlphaFold2, состоит из инвариантных геометрических входных слоев обработки, за которыми следует преобразователь последовательность в последовательность, и обеспечивает восстановление нативной последовательности на 51% на структурно удерживаемых остовах и восстановление на 72% для скрытых последовательностей. остатки. Модель также обучена с помощью маскировки интервалов, чтобы выдерживать отсутствующие координаты магистрали и, следовательно, может прогнозировать последовательности для частично замаскированных структур.
Настройка среды описана в этом подразделе example/inverse_folding.
Чтобы выбрать последовательности для заданной структуры в формате PDB или mmCIF, используйте сценарий sample_sequences.py
. Входной файл может иметь суффикс .pdb
или .cif
.
Например, чтобы получить образцы трех дизайнов последовательностей для структуры казеинкиназы Гольджи (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 и прочитайте сообщение в нашем блоге, чтобы узнать больше.
Инструкции по массовой загрузке доступны в отдельном 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 «Модели языка белков-трансформеров изучаются без присмотра». (Рао и др., 2020) Преобразователь MSA (ESM-MSA-1) принимает в качестве входных данных множественное выравнивание последовательностей (MSA) и таким же образом использует карты самообслуживания связанных строк. См. Трансформатор MSA. (Рао и др., 2021).
Чтобы получить неконтролируемые контакты на основе внимания, вызовите model.predict_contacts(tokens)
или model(tokens, return_contacts=True)
.
В этом руководстве по блокноту Jupyter показано, как загружать и индексировать ESMStructuralSplitDataset
, а также вычислить прогнозы неконтролируемых контактов карты самообслуживания с помощью ESM-2.
стенография | esm.pretrained. | #слои | #параметры | Набор данных | Встраивание Дима | URL-адрес модели (автоматически загружается в ~/.cache/torch/hub/checkpoints ) |
---|---|---|---|---|---|---|
ЕСМ-2 | esm2_t48_15B_UR50D | 48 | 15Б | УР50/Д 2021_04 | 5120 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t48_15B_UR50D.pt |
esm2_t36_3B_UR50D | 36 | 3Б | УР50/Д 2021_04 | 2560 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t36_3B_UR50D.pt | |
esm2_t33_650M_UR50D | 33 | 650М | УР50/Д 2021_04 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t33_650M_UR50D.pt | |
esm2_t30_150M_UR50D | 30 | 150М | УР50/Д 2021_04 | 640 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t30_150M_UR50D.pt | |
esm2_t12_35M_UR50D | 12 | 35М | УР50/Д 2021_04 | 480 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t12_35M_UR50D.pt | |
esm2_t6_8M_UR50D | 6 | 8М | УР50/Д 2021_04 | 320 | https://dl.fbaipublicfiles.com/fair-esm/models/esm2_t6_8M_UR50D.pt | |
ESMFold | esmfold_v1 | 48 (+36) | 690М (+3Б) | УР50/Д 2021_04 | - | https://dl.fbaipublicfiles.com/fair-esm/models/esmfold_3B_v1.pt |
esmfold_v0 | 48 (+36) | 690М (+3Б) | УР50/Д 2021_04 | - | https://dl.fbaipublicfiles.com/fair-esm/models/esmfold_3B_v0.pt | |
esmfold_structure_module_only_* | 0 (+различные) | различный | УР50/Д 2021_04 | - | https://dl.fbaipublicfiles.com/fair-esm/models/esmfold_structure_module_only_* | |
ЕСМ-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 |
ЕСМ-1в | esm1v_t33_650M_UR90S_[1-5] | 33 | 650М | УР90/С 2020_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1v_t33_650M_UR90S_1.pt |
ЕСМ-МСА-1б | esm_msa1b_t12_100M_UR50S | 12 | 100М | УР50/С + MSA 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm_msa1b_t12_100M_UR50S.pt |
ЕСМ-МСА-1 | esm_msa1_t12_100M_UR50S | 12 | 100М | УР50/С + MSA 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm_msa1_t12_100M_UR50S.pt |
ЕСМ-1б | esm1b_t33_650M_UR50S | 33 | 650М | УР50/С 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1b_t33_650M_UR50S.pt |
ЕСМ-1 | esm1_t34_670M_UR50S | 34 | 670М | УР50/С 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t34_670M_UR50S.pt |
esm1_t34_670M_UR50D | 34 | 670М | УР50/Д 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t34_670M_UR50D.pt | |
esm1_t34_670M_UR100 | 34 | 670М | УР100 2018_03 | 1280 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t34_670M_UR100.pt | |
esm1_t12_85M_UR50S | 12 | 85М | УР50/С 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t12_85M_UR50S.pt | |
esm1_t6_43M_UR50S | 6 | 43М | УР50/С 2018_03 | 768 | https://dl.fbaipublicfiles.com/fair-esm/models/esm1_t6_43M_UR50S.pt |
Вот хронологический список выпущенных моделей и статья, в которой они были представлены:
стенография | Примечания к выпуску |
---|---|
ЕСМ-1 | Выпущено совместно с Rives et al. 2019 г. (обновление за август 2020 г.). |
ЕСМ-1б | Выпущено совместно с Rives et al. 2019 г. (обновление за декабрь 2020 г.). См. Приложение Б. |
ЕСМ-МСА-1 | Выпущено совместно с Рао и др. 2021 (Препринт v1). |
ЕСМ-МСА-1б | Выпущено совместно с Рао и др. 2021 г. (версия ICML'21, июнь 2021 г.). |
ЕСМ-1в | Выпущено совместно с Мейером и др. 2021. |
ЕСМ-IF1 | Выпущено совместно с Hsu et al. 2022. |
ЕСМ-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, содержащие последовательность, метки 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 под лицензией Creative Commons Attribution (CC BY 4.0).
Задача | Прогнозирование неконтролируемых контактов | Прогнозирование структуры | |||
---|---|---|---|---|---|
Тестовый набор | Большой действительный | CASP14 | КАМЕО (апрель–июнь 2022 г.) | CASP14 | КАМЕО (апрель–июнь 2022 г.) |
Гремлин (Поттс) | 39,3 | ||||
ЛЕНТА | 11.2 | ||||
ПротБерт-БФД | 34,1 | ||||
Прот-T5-XL-BFD | 35,6 | 46,1 | 62,6 | ||
Прот-Т5-XL-Ур50 (3Б) | 47,9 | 49,8 | 69,4 | ||
ЕСМ-1 | 33,7 | ||||
ЕСМ-1б | 41,1 | 24,4 | 39 | 41,6 | 64,5 |
ЕСМ-1в | 35,3 | ||||
ЕСМ-МСА-1б | 57,4 | ||||
ЕСМ-2 (8М) | 15,9 | 9,8 | 15,7 | 36,7 | 48,1 |
ЕСМ-2 (35М) | 28,8 | 16,4 | 28,4 | 41,4 | 56,4 |
ЕСМ-2 (150М) | 42,2 | 26,8 | 40,1 | 49,0 | 64,9 |
ЕСМ-2 (700М) | 50,1 | 32,5 | 47,6 | 51,3 | 70,1 |
ЭСМ-2 (3Б) | 52,7 | 34,0 | 49,9 | 52,5 | 71,8 |
ЭСМ-2 (15Б) | 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 с цитатами для всех