ProtTrans
ProtTrans 是一套专为蛋白质序列设计的预训练语言模型,借助强大的 Transformer 架构,在 Summit 超算的数千块 GPU 和 Google 的数百个 TPU 上完成训练。它把蛋白质序列当作“生物语言”来理解,帮助科研人员从海量未标注数据中自动学习蛋白质结构与功能的深层特征,从而省去大量人工标注成本。无论是预测蛋白质结构、功能位点,还是生成新序列或辅助药物研发(如新冠相关研究),ProtTrans 都能提供高质量的向量表示和迁移学习基础。适合生物信息学研究人员、计算生物学家及 AI+生命科学交叉领域的开发者使用,尤其对希望用深度学习加速蛋白分析但缺乏大规模标注数据的团队非常友好。技术亮点包括支持多种下游任务(如残基级预测、蛋白分类、序列生成)、提供可视化注意力机制,并持续更新适配 LoRA 微调等高效训练方法。模型已集成到 Hugging Face 平台,安装便捷,部分预计算嵌入甚至可通过 UniProt 直接下载使用。
使用场景
某生物医药初创公司的计算生物学团队正在研发一种针对罕见遗传病的新型酶替代疗法,需要快速预测数百个突变蛋白的功能影响以筛选候选分子。
没有 ProtTrans 时
- 团队只能依赖传统序列比对工具(如BLAST)和手工设计的理化特征,无法捕捉蛋白质序列中的深层语义模式,预测准确率低且不稳定。
- 每次分析新蛋白都需要从零开始训练模型,耗时数周,严重拖慢药物筛选进度。
- 缺乏统一的高质量向量表示,不同项目间数据难以复用,导致重复劳动和资源浪费。
- 面对结构未知的突变体,几乎无有效手段评估其功能变化,只能依赖昂贵湿实验试错。
- 团队需维护多个异构工具链,调试复杂,新人上手成本高。
使用 ProtTrans 后
- 直接调用预训练的ProtT5模型提取蛋白质序列表示,无需训练即可获得富含语义的嵌入向量,预测准确率提升30%以上。
- 利用ProtTrans提供的迁移学习能力,在少量标注数据上微调即可适配特定任务,模型开发周期从数周缩短至2天内。
- 所有蛋白统一使用ProtTrans嵌入空间,实现跨项目特征共享与模型复用,大幅提升研发效率。
- 即使无三维结构信息,也能通过ProtTrans生成的注意力图谱和嵌入差异,智能推断突变对功能的潜在影响,减少70%无效实验。
- 通过Hugging Face标准接口集成,代码简洁统一,团队协作更顺畅,新人半天即可投入实战。
ProtTrans让蛋白质语言理解像调用API一样简单,把生物学家从繁琐建模中解放出来,专注真正的科学发现。
运行环境要求
未说明
未说明

快速开始
ProtTrans
ProtTrans 提供最先进的蛋白质预训练模型(pre-trained models for proteins)。ProtTrans 使用多种Transformer 模型,在 Summit 超算的数千块 GPU 和 Google 的数百个 TPU 上完成训练。
如需了解更多关于我们工作的信息,请参阅我们的论文:ProtTrans: cracking the language of life’s code through self-supervised deep learning and high performance computing。
本仓库将持续更新新的蛋白质预训练模型,以支持生物信息学(bioinformatics)社区,并特别通过我们的项目 Accelerate SARS-CoV-2 research with transfer learning using pre-trained language modeling models 支持 Covid-19 研究。
目录
- ⌛️ 新闻
- 🚀 安装
- 🚀 快速开始
- ⌛️ 模型可用性
- ⌛️ 数据集可用性
- 🚀 使用方法
- 📊 原始下游预测结果
- 📊 后续应用场景
- 📊 与其他工具的比较
- ❤️ 社区与贡献
- 📫 有疑问?
- 🤝 发现 Bug?
- ✅ 依赖要求
- 🤵 团队
- 💰 赞助方
- 📘 许可证
- ✏️ 引用
⌛️ 新闻
- 2025/01/22: 继续预训练与进化微调(Continue pre-training & evo-tuning) 展示了如何使用 ProtT5 原始预训练任务,在新蛋白质序列上继续预训练 ProtT5。这包括在一组同源序列上进行继续预训练(即“进化微调”)。
- 2023/07/14: 使用 LoRA 进行微调(FineTuning with LoRA) 提供了使用低秩适配(Low-Rank Adaptation, LoRA)高效微调 ProtT5 的 Notebook 示例,适用于残基级别和蛋白级别的任务(感谢 @0syrys!)。**
- 2022/11/18: 可用性更新:LambdaPP 提供了一个简单的 Web 服务来访问基于 ProtT5 的预测结果;UniProt 现在也提供下载部分选定物种的预计算 ProtT5 嵌入向量(pre-computed ProtT5 embeddings)。
🚀 安装
我们所有的模型均可通过 huggingface/transformers 获取:
pip install torch
pip install transformers
pip install sentencepiece
更多详情请参考 transformers 安装指南。
最近 T5 分词器(T5-tokenizer)的一个变更 会导致 UnboundLocalError: cannot access local variable 'sentencepiece_model_pb2 错误。可通过安装此 PR 或手动安装以下内容修复:
pip install protobuf
如果你使用的 transformers 版本在此 PR 之后,你将看到这个警告。
显式设置 legacy=True 将恢复预期行为并避免警告。你也可以安全忽略该警告,因为 legacy=True 是默认值。
🚀 快速开始
以下示例展示如何从我们性能最佳的蛋白质语言模型 ProtT5-XL-U50(简称 ProtT5)中提取嵌入向量;也可在 Colab 中运行:
from transformers import T5Tokenizer, T5EncoderModel
import torch
import re
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
# 加载分词器
tokenizer = T5Tokenizer.from_pretrained('Rostlab/prot_t5_xl_half_uniref50-enc', do_lower_case=False)
# 加载模型
model = T5EncoderModel.from_pretrained("Rostlab/prot_t5_xl_half_uniref50-enc").to(device)
# 目前仅 GPU 支持半精度;若要在 CPU 上运行,请使用全精度(不推荐,速度慢很多)
if device == torch.device("cpu"):
model.to(torch.float32)
# 准备你的蛋白质序列列表
sequence_examples = ["PRTEINO", "SEQWENCE"]
# 将所有稀有/模糊氨基酸替换为 X,并在每个氨基酸之间插入空格
sequence_examples = [" ".join(list(re.sub(r"[UZOB]", "X", sequence))) for sequence in sequence_examples]
# 对序列进行分词,并填充至批次中最长序列的长度
ids = tokenizer(sequence_examples, add_special_tokens=True, padding="longest")
input_ids = torch.tensor(ids['input_ids']).to(device)
attention_mask = torch.tensor(ids['attention_mask']).to(device)
# 生成嵌入向量
with torch.no_grad():
embedding_repr = model(input_ids=input_ids, attention_mask=attention_mask)
# 提取批次中第一个序列([0,:])的残基嵌入,并移除填充及特殊标记([0,:7])
emb_0 = embedding_repr.last_hidden_state[0,:7] # 形状 (7 x 1024)
# 同样处理第二个序列([1,:]),但考虑不同序列长度([1,:8])
emb_1 = embedding_repr.last_hidden_state[1,:8] # 形状 (8 x 1024)
# 如果你想为整个蛋白质生成单一表示(即 per-protein embedding)
emb_0_per_protein = emb_0.mean(dim=0) # 形状 (1024)
我们还提供了一个脚本,可简化从给定 FASTA 文件中提取 ProtT5 的残基级别或蛋白级别嵌入:
python prott5_embedder.py --input sequences/some.fasta --output embeddings/residue_embeddings.h5
python prott5_embedder.py --input sequences/some.fasta --output embeddings/protein_embeddings.h5 --per_protein 1
⌛️ 模型可用性
| 模型 | Hugging Face | Zenodo | Colab |
|---|---|---|---|
| ProtT5-XL-UniRef50(亦称 ProtT5-XL-U50) | 下载 | 下载 | Colab |
| ProtT5-XL-BFD | 下载 | 下载 | |
| ProtT5-XXL-UniRef50 | 下载 | 下载 | |
| ProtT5-XXL-BFD | 下载 | 下载 | |
| ProtBert-BFD | 下载 | 下载 | |
| ProtBert | 下载 | 下载 | |
| ProtAlbert | 下载 | 下载 | |
| ProtXLNet | 下载 | 下载 | |
| ProtElectra-Generator-BFD | 下载 | 下载 | |
| ProtElectra-Discriminator-BFD | 下载 | 下载 |
⌛️ 数据集可用性
| 数据集 | Dropbox |
|---|---|
| NEW364 | 下载 |
| Netsurfp2 | 下载 |
| CASP12 | 下载 |
| CB513 | 下载 |
| TS115 | 下载 |
| DeepLoc 训练集 | 下载 |
| DeepLoc 测试集 | 下载 |
🚀 使用方法
如何使用 ProtTrans:
- 🧬 特征提取(Feature Extraction, FE):
请查看: 嵌入(Embedding)部分。通过 ProtT5-XL-U50 进行特征提取的 Colab 示例
- 🚀 Logits 提取:
如需提取 ProtT5 的 logits,请查看: VESPA logits 脚本。
- 💥 微调(Fine Tuning, FT):
请查看: 微调部分。更多信息即将发布。
- 🧠 预测:
请查看: 预测部分。通过 ProtT5-XL-U50 进行二级结构预测的 Colab 示例,以及通过 ProtT5-XL-U50 进行亚细胞定位预测和膜结合蛋白与水溶性蛋白区分的 Colab 示例。
- ⚗️ 蛋白质序列生成:
请查看: 生成部分。更多信息即将发布。
- 🧐 可视化:
请查看: 可视化部分。更多信息即将发布。
- 📈 基准测试:
请查看: 基准测试部分。更多信息即将发布。
📊 原始下游预测结果
- 🧬 二级结构预测(Q3):
| 模型 | CASP12 | TS115 | CB513 |
|---|---|---|---|
| ProtT5-XL-UniRef50 | 81 | 87 | 86 |
| ProtT5-XL-BFD | 77 | 85 | 84 |
| ProtT5-XXL-UniRef50 | 79 | 86 | 85 |
| ProtT5-XXL-BFD | 78 | 85 | 83 |
| ProtBert-BFD | 76 | 84 | 83 |
| ProtBert | 75 | 83 | 81 |
| ProtAlbert | 74 | 82 | 79 |
| ProtXLNet | 73 | 81 | 78 |
| ProtElectra-Generator | 73 | 78 | 76 |
| ProtElectra-Discriminator | 74 | 81 | 79 |
| ProtTXL | 71 | 76 | 74 |
| ProtTXL-BFD | 72 | 75 | 77 |
🆕 在 predictprotein.org 上实时预测您的序列。
- 🧬 二级结构预测(Q8):
| 模型 | CASP12 | TS115 | CB513 |
|---|---|---|---|
| ProtT5-XL-UniRef50 | 70 | 77 | 74 |
| ProtT5-XL-BFD | 66 | 74 | 71 |
| ProtT5-XXL-UniRef50 | 68 | 75 | 72 |
| ProtT5-XXL-BFD | 66 | 73 | 70 |
| ProtBert-BFD | 65 | 73 | 70 |
| ProtBert | 63 | 72 | 66 |
| ProtAlbert | 62 | 70 | 65 |
| ProtXLNet | 62 | 69 | 63 |
| ProtElectra-Generator | 60 | 66 | 61 |
| ProtElectra-Discriminator | 62 | 69 | 65 |
| ProtTXL | 59 | 64 | 59 |
| ProtTXL-BFD | 60 | 65 | 60 |
🆕 在 predictprotein.org 上实时预测您的序列。
- 🧬 膜结合蛋白 vs. 水溶性蛋白(Q2):
| 模型 | DeepLoc |
|---|---|
| ProtT5-XL-UniRef50 | 91 |
| ProtT5-XL-BFD | 91 |
| ProtT5-XXL-UniRef50 | 89 |
| ProtT5-XXL-BFD | 90 |
| ProtBert-BFD | 89 |
| ProtBert | 89 |
| ProtAlbert | 88 |
| ProtXLNet | 87 |
| ProtElectra-Generator | 85 |
| ProtElectra-Discriminator | 86 |
| ProtTXL | 85 |
| ProtTXL-BFD | 86 |
- 🧬 亚细胞定位预测(Q10):
| 模型 | DeepLoc |
|---|---|
| ProtT5-XL-UniRef50 | 81 |
| ProtT5-XL-BFD | 77 |
| ProtT5-XXL-UniRef50 | 79 |
| ProtT5-XXL-BFD | 77 |
| ProtBert-BFD | 74 |
| ProtBert | 74 |
| ProtAlbert | 74 |
| ProtXLNet | 68 |
| ProtElectra-Generator | 59 |
| ProtElectra-Discriminator | 70 |
| ProtTXL | 66 |
| ProtTXL-BFD | 65 |
📊 应用案例
| 层级 | 类型 | 工具 | 任务 | 论文 | 网络服务器 |
|---|---|---|---|---|---|
| 蛋白质 | 功能 | Light Attention | 亚细胞定位 | Light attention predicts protein location from the language of life | (Web-server) |
| 残基 | 功能 | bindEmbed21 | 结合残基 | Protein embeddings and deep learning predict binding residues for various ligand classes | (即将上线) |
| 残基 | 功能 | VESPA | 保守性与单氨基酸变异(SAVs)效应 | Embeddings from protein language models predict conservation and variant effects | (即将上线) |
| 蛋白质 | 结构 | ProtTucker | 蛋白质三维结构相似性预测 | Contrastive learning on protein embeddings enlightens midnight zone at lightning speed | |
| 残基 | 结构 | ProtT5dst | 蛋白质三维结构预测 | Protein language model embeddings for fast, accurate, alignment-free protein structure prediction |
📊 与其他蛋白质语言模型(pLMs)的比较
在开发 使用案例 的过程中,我们将 ProtTrans 模型与其他蛋白质语言模型进行了比较,例如 ESM 模型。为聚焦输入表示变化的影响,以下对比均在相同架构上、仅替换不同嵌入输入的情况下进行。
| 任务/模型 | ProtBERT-BFD | ProtT5-XL-U50 | ESM-1b | ESM-1v | 指标 | 参考文献 |
|---|---|---|---|---|---|---|
| 亚细胞定位(setDeepLoc) | 80 | 86 | 83 | - | 准确率 | Light-attention |
| 亚细胞定位(setHard) | 58 | 65 | 62 | - | 准确率 | Light-attention |
| 保守性预测(ConSurf-DB) | 0.540 | 0.596 | 0.563 | - | MCC | ConsEmb |
| 变异效应预测(DMS数据) | - | 0.53 | - | 0.49 | Spearman(均值) | VESPA |
| 变异效应预测(DMS数据) | - | 0.53 | - | 0.53 | Spearman(中位数) | VESPA |
| CATH 超家族分类(无监督) | 18 | 64 | 57 | - | 准确率 | ProtTucker |
| CATH 超家族分类(有监督) | 39 | 76 | 70 | - | 准确率 | ProtTucker |
| 结合残基预测 | - | 39 | 32 | - | F1 | bindEmbed21 |
关于 ProtT5-XL-UniRef50(简称 ProtT5-XL-U50)的重要说明:所有性能指标均基于从底层 T5 模型编码器侧提取的嵌入向量计算,具体方法见此处。此外,实验均在半精度模式(model.half())下运行以加速嵌入生成。在半精度模式下,所有实验均未观察到性能下降。
❤️ 社区与贡献
ProtTrans 项目是一个由多家合作企业与研究机构支持的开源项目。我们致力于分享所有预训练模型与知识。如果您能协助我们发布新的预训练模型、修复漏洞、提出新功能、改进文档、传播项目或提供支持,我们将不胜感激。
📫 有问题?
欢迎在我们的 ProtTrans Issues 页面提问!若您有私密问题或希望与我们合作,也可通过 RostLab 邮箱 直接联系我们。
🤝 发现漏洞?
欢迎在 ProtTrans 仓库中提交新 Issue,并附上相应标题与描述。若您已找到解决方案,我们非常乐意审核您的 Pull Request!
✅ 环境要求
如需提取蛋白质特征或微调我们的预训练模型,需安装 Pytorch 和 Hugging Face 的 Transformers 库。如需模型可视化,还需安装 BertViz 库。
🤵 团队成员
- 慕尼黑工业大学:
| Ahmed Elnaggar | Michael Heinzinger | Christian Dallago | Ghalia Rehawi | Burkhard Rost |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
- Med AI Technology:
| Yu Wang |
|---|
![]() |
- Google:
| Llion Jones |
|---|
![]() |
- Nvidia:
| Tom Gibbs | Tamas Feher | Christoph Angerer |
|---|---|---|
![]() |
![]() |
![]() |
- 首尔国立大学:
| Martin Steinegger |
|---|
![]() |
- 橡树岭国家实验室(ORNL):
| Debsindhu Bhowmik |
|---|
![]() |
💰 赞助方
| Nvidia | ORNL(橡树岭国家实验室) | Software Campus(软件校园计划) | ||
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
📘 许可证
ProtTrans 预训练模型依据 Academic Free License v3.0 许可协议 发布。
✏️ 引用
若您在发表的论文中使用了本代码或我们的预训练模型,请引用原始论文:
@ARTICLE
{9477085,
author={Elnaggar, Ahmed and Heinzinger, Michael and Dallago, Christian and Rehawi, Ghalia and Yu, Wang and Jones, Llion and Gibbs, Tom and Feher, Tamas and Angerer, Christoph and Steinegger, Martin and Bhowmik, Debsindhu and Rost, Burkhard},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={ProtTrans: Towards Cracking the Language of Lifes Code Through Self-Supervised Deep Learning and High Performance Computing},
year={2021},
volume={},
number={},
pages={1-1},
doi={10.1109/TPAMI.2021.3095381}}
版本历史
1.02021/03/24常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
awesome-machine-learning
awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。
















