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/tapeTasks Assessing Protein Embeddings (TAPE) 是一套用于评估蛋白质嵌入模型的标准化框架包含五个生物学相关的半监督学习任务覆盖蛋白质生物学的不同领域。本文将为初学者提供一个完整的TAPE框架入门指南帮助你快速掌握蛋白质嵌入模型的评估方法。什么是TAPE蛋白质嵌入评估框架TAPETasks Assessing Protein Embeddings是一个专为蛋白质嵌入模型设计的基准测试框架。它提供了预训练语料库、五个有监督下游任务、预训练语言模型权重以及完整的基准测试代码。TAPE的目标是为蛋白质嵌入模型提供标准化的评估方法帮助研究人员客观比较不同模型的性能。该框架最初基于TensorFlow实现后来更新为PyTorch版本以提高易用性和促进未来发展。如果你需要复现原始论文的结果可以使用原始TensorFlow版本而当前PyTorch版本更适合日常使用和二次开发。TAPE框架的核心组件1. 预训练模型TAPE提供了多种预训练模型包括bert-base基于Transformer的模型babbler-1900UniRep模型xaa, xab, xac, xad, xaetrRosetta模型的集成版本这些模型可以通过HuggingFace API轻松加载和使用无需手动下载权重文件。2. 评估任务TAPE包含以下标准评估任务语言建模language_modeling掩码语言建模masked_language_modeling二级结构预测secondary_structure接触预测contact_prediction远程同源性检测remote_homology荧光预测fluorescence稳定性预测stabilitytrrosetta仅适用于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(vocabiupac) # 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_pickleTrue) list(arrays.keys()) # 将输出fasta文件中的键名如果未命名则为01... arrays[protein_id] # 返回一个字典包含pooled和avg键如果使用--full_sequence_embed标志则为seq3. 训练语言模型TAPE提供了两个训练命令tape-train和tape-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 NSTEPS4. 训练下游任务模型使用tape-train命令也可以在下游任务上训练模型。只需使用与训练语言模型相同的语法添加--from_pretrained path_to_your_saved_results标志。例如要在二级结构预测上训练预训练的Transformertape-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 SF5. 评估下游任务模型要评估下游任务模型TAPE提供了tape-eval命令。该命令将输出模型预测以及你指定的一组指标。目前支持均方误差mse、平均绝对误差mae、Spearman相关系数spearmanr和准确率accuracy。命令语法为tape-eval MODEL TASK TRAINED_MODEL_FOLDER --metrics METRIC1 METRIC2 ...例如要评估在二级结构上训练的Transformertape-eval transformer secondary_structure results/path_to_trained_model --metrics accuracyTAPE框架性能基准TAPE提供了一个临时排行榜展示了不同模型在各个任务上的性能。所有排行榜上的模型都使用无监督预训练。二级结构预测排名模型准确率3类1.One Hot Alignment0.802.LSTM0.752.ResNet0.754.Transformer0.734.Bepler0.734.Unirep0.737.One Hot0.69接触预测排名模型L/5 Medium Long Range1.One Hot Alignment0.642.Bepler0.403.LSTM0.394.Transformer0.365.Unirep0.346.ResNet0.296.One Hot0.29远程同源性检测排名模型Top 1 准确率1.LSTM0.262.Unirep0.233.Transformer0.214.Bepler0.174.ResNet0.176.One Hot Alignment0.096.One Hot0.09荧光预测排名模型Spearman相关系数1.Transformer0.682.LSTM0.672.Unirep0.674.Bepler0.335.ResNet0.216.One Hot0.14稳定性预测排名模型Spearman相关系数1.Transformer0.731.Unirep0.731.ResNet0.734.LSTM0.695.Bepler0.646.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),仅供参考