当前位置: 首页 > news >正文

TAPE蛋白质嵌入评估框架:终极指南与入门教程

TAPE蛋白质嵌入评估框架:终极指南与入门教程

【免费下载链接】tapeTasks Assessing Protein Embeddings (TAPE), a set of five biologically relevant semi-supervised learning tasks spread across different domains of protein biology.项目地址: https://gitcode.com/gh_mirrors/tape6/tape

Tasks Assessing Protein Embeddings (TAPE) 是一套用于评估蛋白质嵌入模型的标准化框架,包含五个生物学相关的半监督学习任务,覆盖蛋白质生物学的不同领域。本文将为初学者提供一个完整的TAPE框架入门指南,帮助你快速掌握蛋白质嵌入模型的评估方法。

什么是TAPE蛋白质嵌入评估框架?

TAPE(Tasks Assessing Protein Embeddings)是一个专为蛋白质嵌入模型设计的基准测试框架。它提供了预训练语料库、五个有监督下游任务、预训练语言模型权重以及完整的基准测试代码。TAPE的目标是为蛋白质嵌入模型提供标准化的评估方法,帮助研究人员客观比较不同模型的性能。

该框架最初基于TensorFlow实现,后来更新为PyTorch版本,以提高易用性和促进未来发展。如果你需要复现原始论文的结果,可以使用原始TensorFlow版本,而当前PyTorch版本更适合日常使用和二次开发。

TAPE框架的核心组件

1. 预训练模型

TAPE提供了多种预训练模型,包括:

  • bert-base:基于Transformer的模型
  • babbler-1900:UniRep模型
  • xaa, xab, xac, xad, xae:trRosetta模型的集成版本

这些模型可以通过HuggingFace API轻松加载和使用,无需手动下载权重文件。

2. 评估任务

TAPE包含以下标准评估任务:

  • 语言建模(language_modeling)
  • 掩码语言建模(masked_language_modeling)
  • 二级结构预测(secondary_structure)
  • 接触预测(contact_prediction)
  • 远程同源性检测(remote_homology)
  • 荧光预测(fluorescence)
  • 稳定性预测(stability)
  • trrosetta(仅适用于trrosetta模型)

完整的模型和任务列表可以在tape/datasets.py和tape/models/modeling*.py中找到。

3. 数据集

TAPE提供了多种数据集,包括:

  • 预训练语料库(Pfam)
  • 二级结构数据集
  • 接触预测数据集(ProteinNet)
  • 远程同源性数据集
  • 荧光数据集
  • 稳定性数据集

数据有LMDB和原始JSON两种格式可供选择,默认存放在./data文件夹中,也可以指定其他目录。

快速安装TAPE框架

我们建议在Python虚拟环境中安装TAPE:

$ pip install tape_proteins

这条简单的命令将自动安装所有必要的依赖项,让你快速开始使用TAPE框架。

使用TAPE的基本流程

1. 加载预训练模型

TAPE构建在HuggingFace的transformers库之上,使用其API来定义模型和提供预训练模型。通过这个API,预训练模型将在需要时自动下载并缓存。

import torch from tape import ProteinBertModel, TAPETokenizer model = ProteinBertModel.from_pretrained('bert-base') tokenizer = TAPETokenizer(vocab='iupac') # iupac是TAPE模型的词汇表,UniRep模型使用unirep词汇表 # Pfam家族: Hexapep, Clan: CL0536 sequence = 'GCTVEDRCLIGMGAILLNGCVIGSGSLVAAGALITQ' token_ids = torch.tensor([tokenizer.encode(sequence)]) output = model(token_ids) sequence_output = output[0] pooled_output = output[1]

2. 使用预训练模型嵌入蛋白质序列

给定输入的fasta文件,你可以通过tape-embed命令生成包含蛋白质嵌入的.npz文件:

tape-embed unirep my_input.fasta output_filename.npz babbler-1900 --tokenizer unirep

嵌入函数是完全批处理的,会自动在机器上可用的所有GPU上分配任务。在Titan Xp上,它可以处理大约200个序列/秒。

生成输出文件后,可以像这样加载到numpy中:

arrays = np.load('output_filename.npz', allow_pickle=True) list(arrays.keys()) # 将输出fasta文件中的键名(如果未命名则为'0','1',...) arrays[<protein_id>] # 返回一个字典,包含'pooled'和'avg'键(如果使用--full_sequence_embed标志则为'seq')

3. 训练语言模型

TAPE提供了两个训练命令:tape-traintape-train-distributed。前者使用标准的PyTorch数据分布在所有可用GPU上进行分布式训练,后者使用torch.distributed.launch风格的多处理在指定数量的GPU上进行分布式训练(也可用于多节点分布式训练)。

要训练Transformer进行掩码语言建模,可以运行:

tape-train-distributed transformer masked_language_modeling --batch_size BS --learning_rate LR --fp16 --warmup_steps WS --nproc_per_node NGPU --gradient_accumulation_steps NSTEPS

4. 训练下游任务模型

使用tape-train命令也可以在下游任务上训练模型。只需使用与训练语言模型相同的语法,添加--from_pretrained <path_to_your_saved_results>标志。例如,要在二级结构预测上训练预训练的Transformer:

tape-train-distributed transformer secondary_structure \ --from_pretrained results/<path_to_folder> \ --batch_size BS \ --learning_rate LR \ --fp16 \ --warmup_steps WS \ --nproc_per_node NGPU \ --gradient_accumulation_steps NSTEPS \ --num_train_epochs NEPOCH \ --eval_freq EF \ --save_freq SF

5. 评估下游任务模型

要评估下游任务模型,TAPE提供了tape-eval命令。该命令将输出模型预测以及你指定的一组指标。目前支持均方误差(mse)、平均绝对误差(mae)、Spearman相关系数(spearmanr)和准确率(accuracy)。

命令语法为:

tape-eval MODEL TASK TRAINED_MODEL_FOLDER --metrics METRIC1 METRIC2 ...

例如,要评估在二级结构上训练的Transformer:

tape-eval transformer secondary_structure results/<path_to_trained_model> --metrics accuracy

TAPE框架性能基准

TAPE提供了一个临时排行榜,展示了不同模型在各个任务上的性能。所有排行榜上的模型都使用无监督预训练。

二级结构预测

排名模型准确率(3类)
1.One Hot + Alignment0.80
2.LSTM0.75
2.ResNet0.75
4.Transformer0.73
4.Bepler0.73
4.Unirep0.73
7.One Hot0.69

接触预测

排名模型L/5 Medium + Long Range
1.One Hot + Alignment0.64
2.Bepler0.40
3.LSTM0.39
4.Transformer0.36
5.Unirep0.34
6.ResNet0.29
6.One Hot0.29

远程同源性检测

排名模型Top 1 准确率
1.LSTM0.26
2.Unirep0.23
3.Transformer0.21
4.Bepler0.17
4.ResNet0.17
6.One Hot + Alignment0.09
6.One Hot0.09

荧光预测

排名模型Spearman相关系数
1.Transformer0.68
2.LSTM0.67
2.Unirep0.67
4.Bepler0.33
5.ResNet0.21
6.One Hot0.14

稳定性预测

排名模型Spearman相关系数
1.Transformer0.73
1.Unirep0.73
1.ResNet0.73
4.LSTM0.69
5.Bepler0.64
6.One Hot0.19

如何扩展TAPE框架

TAPE的新仓库经过精心设计,使其更易于理解和扩展。你可以通过添加新模型和新任务来扩展TAPE的功能。有关如何添加新模型和任务的示例,请参见examples文件夹。

数据下载

TAPE的所有数据都托管在AWS上。要下载所有TAPE数据,可以运行download_data.sh脚本。我们还提供了各个数据集的单独链接:

LMDB格式数据

预训练语料库(Pfam) | 二级结构 | 接触预测(ProteinNet) | 远程同源性 | 荧光 | 稳定性

原始数据

原始数据文件以JSON格式存储,以实现最大的可移植性。

预训练语料库(Pfam) | 二级结构 | 接触预测(ProteinNet) | 远程同源性 | 荧光 | 稳定性

开始使用TAPE

要开始使用TAPE框架,首先克隆仓库:

git clone https://gitcode.com/gh_mirrors/tape6/tape

然后按照安装说明设置环境。TAPE提供了详细的文档和示例,帮助你快速上手。无论你是蛋白质结构预测领域的新手还是经验丰富的研究人员,TAPE都能为你提供一个标准化、公正的蛋白质嵌入模型评估平台。

如果你在使用过程中遇到任何问题或有功能需求,请通过GitHub issues与开发团队联系。我们欢迎社区贡献,一起改进这个强大的蛋白质嵌入评估框架!

引用指南

如果你发现TAPE有用,请引用相关论文。此外,任何使用TAPE中提供的数据集的人都必须描述和引用他们使用的所有数据集组件。为方便起见,data_refs.bib包含所有必要的引用。

【免费下载链接】tapeTasks Assessing Protein Embeddings (TAPE), a set of five biologically relevant semi-supervised learning tasks spread across different domains of protein biology.项目地址: https://gitcode.com/gh_mirrors/tape6/tape

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1220062/

相关文章:

  • Vibe Coding 开发流程:一套可照着执行的 AI 项目开发使用说明书
  • Cursor响应式布局实战手册:从零搭建高兼容性布局系统,7天掌握动态断点控制术
  • OpCore-Simplify:5分钟搞定黑苹果EFI配置的终极指南
  • 终极免费统计分析软件:JASP桌面版完整指南
  • pytorch-cnn-finetune迁移学习实战:医学影像分类应用案例
  • 南宁闲置黄金变现,清奢黄金回收,全城上门,当场打款! - 清奢黄金上门回收
  • 南京装修公司多维度测评:经营记录、报价体系与施工工艺对比 - 装修百科
  • Kafka-UI:终极可视化解决方案,5分钟告别命令行管理困境
  • 官方线上查询功能升级指南|2026北京萧邦售后网点、客服专线一站式查询实操攻略 - 萧邦官方售后服务中心
  • Spleeter音频分离技术深度解析:从基础应用到高级定制
  • G-Helper终极指南:免费替代Armoury Crate的华硕笔记本轻量控制工具
  • Win11Debloat终极指南:如何快速清理Windows系统,恢复纯净体验
  • AI数字人嘴型不同步、口型崩坏、延迟卡顿——硬件适配清单与GPU资源调度公式全公开
  • 如何用智能助手3步搞定复杂黑苹果配置?OpCore-Simplify全解析
  • 2026商用片头片尾纯音乐AI工具推荐对比
  • ppt模板_0182_蓝闪电战
  • JS的多线程与线程池
  • RAG知识库预处理全流程拆解:网页爬取+语义分块实战教程
  • 2026智能数显压力变送器十大品牌盘点,广东犸力拿下销量榜单靠前席位 - 品牌速递
  • Java学习资料网站汇总
  • Win11Debloat终极指南:5分钟打造纯净高效的Windows系统
  • 如何用FanControl实现Windows风扇精准控制:5个技巧让电脑安静又凉爽
  • 2026-07-19:增量偶权环查询。用go语言,有一个包含 n 个节点的无向图,节点编号从 0 到 n-1,初始时图中不存在任何边。现在给定一个边序列 edges,其中每个元素都表示一条边,包含两个
  • FlakeGate:别再把 flaky test“重跑到绿”了
  • 2026年7月亨得利中国区售后服务网络更新优化 全国60+门店地址及电话汇总 - 亨得利售后服务官网
  • 怎样轻松掌握BepInEx:Unity游戏模组开发完整入门指南
  • KnpGaufretteBundle安全配置指南:文件权限、访问控制与加密存储
  • 打造专属音效:Voice-change-O-matic卷积混响与延迟效果的高级应用
  • 智慧教育平台电子课本下载工具:开启数字化教学新篇章
  • 三步快速下载!国家中小学智慧教育平台电子课本PDF下载终极指南