2023년 4월 업데이트: 단백질 디자인에 대한 두 가지 동시 사전 인쇄에 대한 코드가 이제 출시되었습니다! "천연 단백질을 넘어 일반화되는 언어 모델"에 대한 코드는 example/lm-design/에 있습니다. "생성 단백질 설계를 위한 고급 프로그래밍 언어"에 대한 코드는 예제/단백질-프로그래밍-언어/에 있습니다.
이 저장소에는 최첨단 ESM-2 및 ESMFold는 물론 MSA Transformer , ESM-1v 를 포함하여 Meta Fundamental AI Research Protein Team(FAIR)의 Transformer 단백질 언어 모델 에 대한 코드 및 사전 훈련된 가중치가 포함되어 있습니다. 변형 효과를 예측하고 역 접힘을 위해 ESM-IF1을 사용 합니다. 변환기 단백질 언어 모델은 "비지도 학습을 2억 5천만 개의 단백질 서열로 확장함으로써 생물학적 구조와 기능이 나타난다"라는 논문의 2019년 사전 인쇄에서 소개되었습니다. ESM-2는 다양한 구조 예측 작업에서 테스트된 모든 단일 서열 단백질 언어 모델보다 성능이 뛰어납니다. ESMFold는 ESM-2 언어 모델을 활용하여 단백질 서열에서 직접 정확한 구조 예측을 생성합니다.
2022년 11월, 우리는 6억 1,700만 개의 예측된 메타게놈 단백질 구조에 대한 공개 아틀라스인 ESM 메타게놈 아틀라스 v0
출시했습니다. Atlas는 EBI와 협력하여 2023년 3월에 업데이트되었습니다. 새로운 v2023_02
미리 계산된 ESM2 임베딩뿐만 아니라 Atlas에 또 다른 1억 5천만 개의 예측 구조를 추가합니다. Atlas 웹사이트에서 제공되는 대량 다운로드, 블로그 게시물 및 리소스는 이 README에 문서화되어 있습니다.
2022년 12월에는 단백질 디자인에 대한 두 가지 동시 사전 인쇄를 출시했습니다.
변환기 단백질 언어 모델의 경우:
@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
)이 약간 수정된 새로운 MSA Transformer가 출시되었습니다.속기 | esm.pretrained. | 데이터세트 | 설명 |
---|---|---|---|
ESM-2 | esm2_t36_3B_UR50D() esm2_t48_15B_UR50D() | UR50(샘플 UR90) | SOTA 범용 단백질 언어 모델. 개별 서열에서 직접 구조, 기능 및 기타 단백질 특성을 예측하는 데 사용할 수 있습니다. Lin et al.과 함께 출시되었습니다. 2022(2022년 8월 업데이트). |
에스엠폴드 | esmfold_v1() | PDB + UR50 | 엔드투엔드 단일 시퀀스 3D 구조 예측기(2022년 11월 업데이트). |
ESM-MSA-1b | esm_msa1b_t12_100M_UR50S() | UR50 + MSA | MSA Transformer 언어 모델. MSA에서 임베딩을 추출하는 데 사용할 수 있습니다. 구조의 SOTA 추론을 활성화합니다. Rao et al.과 함께 출시되었습니다. 2021(ICML'21 버전, 2021년 6월). |
ESM-1v | esm1v_t33_650M_UR90S_1() ... esm1v_t33_650M_UR90S_5() | UR90 | 변형 효과 예측에 특화된 언어 모델입니다. 시퀀스 변형의 기능적 효과에 대한 SOTA 제로샷 예측을 가능하게 합니다. ESM-1b와 동일한 아키텍처이지만 UniRef90에서 교육되었습니다. Meier et al.과 함께 출시되었습니다. 2021. |
ESM-IF1 | esm_if1_gvp4_t16_142M_UR50() | CATH + UR50 | 역접이식 모델. 주어진 구조에 대한 서열을 설계하거나 주어진 구조에 대한 서열 변이의 기능적 효과를 예측하는 데 사용할 수 있습니다. SOTA 고정 백본 시퀀스 설계를 지원합니다. Hsu et al.과 함께 출시됨. 2022. |
세부 정보 및 릴리스 노트가 포함된 사용 가능한 모델의 전체 목록은 사전 훈련된 모델을 참조하세요.
시작하는 쉬운 방법은 ESMFold 종속성을 단순화하고 최첨단 사전 훈련된 모델과 작업할 수 있는 표준화된 API 및 도구를 제공하는 HuggingFace 변환기 라이브러리를 통해 ESM 또는 ESMFold를 로드하는 것입니다.
또는 ColabFold에는 ESMFold가 통합되어 있어 Google Colab 인스턴스의 브라우저에서 직접 쉽게 실행할 수 있습니다.
또한 우리는 컬이나 ESM Metagenomic Atlas 웹 페이지를 통해 액세스할 수 있는 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가 설치되었는지 다시 확인하세요.
또는 conda env create -f environment.yml
통해 구축할 수 있는 esmfold
conda 환경을 제공합니다.
또한 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 파일의 모든 시퀀스에 대해 하나의 예측을 수행합니다. 다량체는 예측할 수 있으며 ":" 문자로 구분된 체인을 사용하여 단일 시퀀스로 fasta 파일에 입력해야 합니다.
기본적으로 예측은 함께 일괄 처리되므로 더 짧은 시퀀스가 동시에 예측됩니다. --max-tokens-per-batch=0
설정하여 이를 비활성화할 수 있습니다. 일괄 처리는 더 짧은 시퀀스의 예측 속도를 크게 향상시킬 수 있습니다.
--cpu-offload
플래그는 더 긴 시퀀스를 예측하는 데 유용할 수 있습니다. GPU에 저장하는 대신 일부 매개변수를 CPU RAM으로 오프로드하려고 시도합니다.
마지막으로 다양한 크기의 LM에 대한 절제 실험 Lin et al. 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 시퀀스당 하나의 .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의 FSDP(Fully Sharded Data Parallel)로 모델을 로드하고 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 외 2022).
또한 시퀀스 설계 및 시퀀스 채점 기능을 위한 Colab 노트북도 제공합니다.
ESM-IF1 역접힘 모델은 백본 원자 좌표로부터 단백질 서열을 예측하기 위해 구축되었습니다. 우리는 여기서 1) 주어진 구조에 대한 샘플 시퀀스 디자인과 2) 주어진 구조에 대한 시퀀스의 점수를 매기는 스크립트를 제공합니다.
AlphaFold2에 의해 예측된 12M 단백질 구조로 훈련된 ESM-IF1 모델은 불변 기하학적 입력 처리 레이어와 시퀀스-시퀀스 변환기로 구성되어 있으며 구조적으로 유지된 백본에서 51% 기본 시퀀스 복구를 달성하고 매립된 백본에서 72% 복구를 달성합니다. 잔류물. 또한 모델은 누락된 백본 좌표를 허용하기 위해 스팬 마스킹으로 훈련되었으므로 부분적으로 마스킹된 구조의 시퀀스를 예측할 수 있습니다.
환경 설정은 예제/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
의 시퀀스에 점수를 매기려면 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에서는 길이 제한 없이 Atlas에 대한 검색을 제공합니다.
ESM-IF1 역접힘 모델은 AlphaFold2에 의해 예측된 12M 단백질 구조로 훈련된 백본 원자 좌표로부터 단백질 서열을 예측합니다. 이 노트북은 샘플링 시퀀스, 조건부 로그 우도 계산, 구조 표현으로 인코더 출력 추출의 예를 안내합니다.
임베딩 사용을 시작하는 데 도움이 되도록 이 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 Notebook에서 튜토리얼을 실행할 수도 있습니다.
또는 지도 교육 없이 돌연변이 효과를 예측하는 제로샷 변형 예측을 위한 최신 지침을 사용하세요.
이 jupyter Notebook 튜토리얼은 ESM-2 및 MSA Transformer(ESM-MSA-1) 모델을 모두 사용한 접촉 예측을 보여줍니다. 접촉 예측은 모델의 주의 지도에 대한 로지스틱 회귀를 기반으로 합니다. 이 방법론은 ICLR 2021 논문을 기반으로 합니다. Transformer 단백질 언어 모델은 비지도 구조 학습자입니다. (Rao et al. 2020) MSA 변환기(ESM-MSA-1)는 다중 시퀀스 정렬(MSA)을 입력으로 사용하고 동일한 방식으로 묶인 행 self-attention 맵을 사용합니다. 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 | 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 | 1억 5천만 | 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 | |
에스엠폴드 | 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 et al.과 함께 출시되었습니다. 2019(2020년 8월 업데이트). |
ESM-1b | Rives et al.과 함께 출시되었습니다. 2019(2020년 12월 업데이트). 부록 B를 참조하세요. |
ESM-MSA-1 | Rao et al.과 함께 출시되었습니다. 2021(사전 인쇄 v1). |
ESM-MSA-1b | Rao et al.과 함께 출시되었습니다. 2021(ICML'21 버전, 2021년 6월). |
ESM-1v | Meier et al.과 함께 출시되었습니다. 2021. |
ESM-IF1 | Hsu et al.과 함께 출시됨. 2022. |
ESM-2 | Lin et al.과 함께 출시되었습니다. 2022. |
이는 다양한 수준의 구조적 비유사성에 걸쳐 표현의 일반화를 측정하는 데 사용할 수 있는 단백질 도메인 구조의 5중 교차 검증 데이터세트입니다. 데이터세트는 패밀리, 슈퍼패밀리, 접기 수준에서 구조적 홀드아웃을 구현합니다. SCOPe 데이터베이스는 도메인을 분류하는 데 사용됩니다. 각 구조적 유지 수준에 대해 독립적으로 도메인은 5개의 동일한 세트, 즉 5개의 접힌 부분, 수퍼패밀리 또는 패밀리 세트로 분할됩니다. 이렇게 하면 5개 파티션 각각에 대해 동일한 분류를 가진 구조가 열차 세트와 테스트 세트 모두에 나타나지 않습니다. 주어진 분류 수준에 대해 각 구조는 테스트 세트에 한 번 나타나므로 교차 검증 실험에서 각 구조는 정확히 한 번 평가됩니다.
데이터 세트는 3D 좌표, 거리 지도 및 2차 구조 레이블을 제공합니다. 데이터 세트 구성에 대한 자세한 내용은 Rives et al. 2019 부록 A.10.
이 jupyter Notebook 튜토리얼은 ESMStructuralSplitDataset
를 로드하고 인덱싱하는 방법을 보여줍니다.
ESMStructuralSplitDataset
은 초기화 시 splits
및 pkl
다운로드합니다. 또한 각 도메인에 대해 msas
제공합니다. 해당 데이터는 아래에서 직접 다운로드 가능합니다.
이름 | 설명 | URL |
---|---|---|
분할 | 열차/유효 분할 | https://dl.fbaipublicfiles.com/fair-esm/structural-data/splits.tar.gz |
pkl | 시퀀스, 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 |
Rives 등의 사전 훈련을 위한 보류 평가 세트로 사용된 UniRef50 클러스터를 설정하는 분할 파일. 2019 및 Rao et al. 2021년은 여기에서 확인할 수 있습니다:
이 파일에는 Creative Commons Attribution(CC BY 4.0) 라이센스에 따라 UniProt Consortium에서 출시한 UniRef 데이터베이스, 2018-03 릴리스에 해당하는 UniRef50 ID 및 UniRef100 ID만 포함되어 있습니다.
일 | 감독되지 않은 접촉 예측 | 구조 예측 | |||
---|---|---|---|---|---|
테스트 세트 | 대형 유효 | CASP14 | CAMEO(2022년 4월~6월) | CASP14 | CAMEO(2022년 4월~6월) |
그렘린(포츠) | 39.3 | ||||
줄자 | 11.2 | ||||
ProtBert-BFD | 34.1 | ||||
Prot-T5-XL-BFD | 35.6 | 46.1 | 62.6 | ||
Prot-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 et al.의 변형 예측 벤치마크를 사용하려는 경우. (2021)에서는 ./examples/variant-prediction/mutation_data.bib의 모든 데이터에 대한 인용이 포함된 bibtex 파일을 제공합니다. 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) 메타플랫폼즈, Inc. All Rights Reserved. ESM Metagenomic Atlas 데이터 사용에는 Meta Open Source 이용 약관 및 개인 정보 보호 정책이 적용됩니다.