🚀 ESM2 蛋白质功能预测器
本项目基于基因本体论(GO),利用进化尺度模型(ESM)从氨基酸序列中预测蛋白质功能。该模型基于 ESM2 Transformer 架构,在 UniRef50 上进行预训练,并在 AmiGO 数据集上进行微调。它能够预测特定蛋白质序列的 GO 子图,让你深入了解蛋白质的分子功能、生物过程以及在细胞内的活动位置。
注意:此版本仅对基因本体论的 分子功能
子图进行建模。
🚀 快速开始
本模型借助进化尺度模型(ESM),依据基因本体论(GO),从氨基酸序列中预测蛋白质功能。它以 ESM2 Transformer 架构为基础,在 UniRef50 完成预训练,并在 AmiGO 数据集上微调,能预测特定蛋白质序列的 GO 子图。
✨ 主要特性
- 基于 ESM2 架构:利用先进的 Transformer 架构进行蛋白质功能预测。
- 多数据集训练:在 UniRef50 上预训练,在 AmiGO 数据集上微调。
- 特定子图建模:当前版本专注于基因本体论的
分子功能
子图。
📚 详细文档
什么是 GO 术语?
"基因本体论(GO)是一个概念层次结构,它从不同的抽象层面描述基因和基因产物的生物学功能(Ashburner 等人,2000)。它是描述蛋白质功能多面性的优秀模型。"
"GO 是一个有向无环图。图中的节点是功能描述符(术语或类别),它们之间通过关系联系(如 is_a、part_of 等)相连。例如,术语 '蛋白质结合活性' 和 '结合活性' 通过 is_a 关系相连;然而,图中的边通常是反向的,从结合指向蛋白质结合。该图包含三个子图(子本体):分子功能(MF)、生物过程(BP)和细胞组分(CC),由它们的根节点定义。从生物学角度来看,每个子图代表蛋白质功能的不同方面:它在分子水平上的作用(MF)、它参与的生物过程(BP)以及它在细胞中的位置(CC)。"
摘自 CAFA 5 蛋白质功能预测
代码仓库
https://github.com/andrewdalpino/esm2-function-classifier
模型规格
属性 |
详情 |
词汇表大小 |
33 |
嵌入维度 |
640 |
注意力头 |
20 |
编码器层数 |
30 |
上下文长度 |
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.