🚀 ESM2蛋白质功能调用器
本项目是一个基于进化尺度模型(ESM)的蛋白质功能预测工具,它借助基因本体论(GO),能够依据氨基酸序列对蛋白质功能进行精准预测。该模型基于ESM2 Transformer架构,在UniRef50上进行预训练,并在AmiGO数据集上进行微调,可预测特定蛋白质序列的GO子图,让你深入了解蛋白质的分子功能、参与的生物过程以及在细胞内的活动位置。
注意:此版本仅对基因本体论的分子功能
子图进行建模。
🚀 快速开始
代码仓库
你可以在以下链接获取本项目的代码仓库:
https://github.com/andrewdalpino/esm2-function-classifier
✨ 主要特性
- 精准预测:基于基因本体论(GO)和氨基酸序列,准确预测蛋白质的分子功能。
- 架构先进:采用ESM2 Transformer架构,预训练和微调过程保证模型的有效性。
- 多方面洞察:可提供蛋白质在分子层面的功能、参与的生物过程以及在细胞内的位置信息。
📚 详细文档
什么是GO术语?
“基因本体论(GO)是一个概念层次结构,它从不同的抽象层面描述了基因和基因产物的生物学功能(Ashburner等人,2000)。它是描述蛋白质功能多面性的良好模型。”
“GO是一个有向无环图。图中的节点是功能描述符(术语或类别),它们通过各种关系(如is_a、part_of等)相互连接。例如,术语‘蛋白质结合活性’和‘结合活性’通过is_a关系相连;不过,图中的边通常是反向的,从结合指向蛋白质结合。这个图包含三个子图(子本体):分子功能(MF)、生物过程(BP)和细胞成分(CC),由它们的根节点定义。从生物学角度看,每个子图代表了蛋白质功能的不同方面:它在分子水平上的作用(MF)、参与的生物过程(BP)以及在细胞中的位置(CC)。”
以上内容摘自CAFA 5蛋白质功能预测
模型规格
属性 |
详情 |
词汇表大小 |
33 |
嵌入维度 |
480 |
注意力头 |
20 |
编码器层数 |
12 |
上下文长度 |
1026 |
💻 使用示例
基础用法
以下代码展示了如何对特定序列的GO术语进行排序。若需更高级的示例,请查看predict-subgraph.py源文件。
import torch
from transformers import EsmTokenizer, EsmForSequenceClassification
model_name = "andrewdalpino/ESM2-35M-Protein-Molecular-Function"
tokenizer = EsmTokenizer.from_pretrained(model_name)
model = EsmForSequenceClassification.from_pretrained(model_name)
model.eval()
sequence = "MCNAWYISVDFEKNREDKSKCIHTRRNSGPKLLEHVMYEVLRDWYCLEGENVYMM"
top_k = 10
out = tokenizer(sequence)
input_ids = out["input_ids"]
input_ids = torch.tensor(input_ids, dtype=torch.int64).unsqueeze(0)
with torch.no_grad():
outputs = model.forward(input_ids)
probabilities = torch.sigmoid(outputs.logits.squeeze(0))
probabilities, indices = torch.topk(probabilities, top_k)
probabilities = probabilities.tolist()
terms = [model.config.id2label[index] for index in indices.tolist()]
print(f"Top {top_k} GO Terms:")
for term, probability in zip(terms, probabilities):
print(f"{probability:.4f}: {term}")
📄 参考文献
- A. Rives, et al. Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences, 2021.
- Z. Lin, et al. Evolutionary-scale prediction of atomic level protein structure with a language model, 2022.
- G. A. Merino, et al. Hierarchical deep learning for predicting GO annotations by integrating protein knowledge, 2022.
- M. Ashburner, et al. Gene Ontology: tool for the unification of biology, 2000.