PeptideBERT:基于Transformer用于肽性质预测的语言模型

简介: 本文介绍了PeptideBERT模型及其在昇腾设备上的部署方法。PeptideBERT是一种基于Transformer架构的蛋白质语言模型,通过微调预训练模型ProtBERT,可预测肽的溶血性、溶解性和抗非特异性吸附性等关键性质。其输入表示包括词嵌入、物理化学属性编码和位置编码,并采用多头自注意力机制捕捉序列依赖关系。

本文主要介绍PeptideBERT模型是什么、PeptideBERT算法的基本原理、以及如何在昇腾设备上进行部署。

  1. PeptideBERT介绍
    PeptideBERT(Peptide Bidirectional Encoder Representations from Transforme- rs)是一种基于transformer架构,专门用于预测肽的关键性质的蛋白质语言模型,如溶血性(hemolysis)、溶解性(solubility)和抗非特异性吸附性(non-fouling)。预训练模型为ProtBERT,有12个注意力头和12个隐藏层,通过针对三个下游任务对预训练模型进行微调,PeptideBERT模型通过深度学习模型快速预测肽的功能,大幅缩短研发周期,降低实验成本,在预测溶血方面可以达到先进水平,对于确定肽诱导红细胞溶解的潜力以及非污染特性至关重要。PeptideBERT这篇工作通过前沿AI技术突破科学研究的效率瓶颈,其意义不仅在于提升肽研究的智能化水平,更在于为生命科学其他领域(如RNA、代谢物分析)提供了可迁移的方法框架,推动跨学科的下一代科学发现范式。
    图片1.png

图1. PeptideBERT的模型架构。肽序列经过标记化处理,随后通过 ProtBERT 进行处理。接着添加一个多层感知机(MLP)的分类头用于微调过程。该模型分别在溶血性、防污性和溶解性三个不同的分类下游任务上进行单独训练。

  1. 算法原理
    (1) 输入表示
    PeptideBERT的输入为肽的氨基酸序列片段,其输入表示由三部分构成,以适配Transformer架构
    词嵌入(Token Embeddings): 将肽序列中的氨基酸残基(如A、C、L等单字母表示)映射为高维向量。
    物理化学属性编码 : 除字母本身,氨基酸的属性(如疏水性、电荷、分子量)也被编码为向量,与字符嵌入拼接。
    位置编码(Positional Encoding): 通过可学习的绝对位置嵌入向序列中每个位置注入顺序信息,确保模型感知残基的一维排列结构。对于长度固定的输入(如设定最大长度50),超出部分截断,不足部分填充[PAD]标
    (2) 注意力机制
    PeptideBERT采用多头自注意力(Multi-Head Attention)计算序列内任意两残基的相互作用,而Transformer 架构的核心就是注意力机制,它能够捕捉序列中任意位置之间的依赖关系。具体来说,注意力机制通过计算查询(Query)、键(Key)和值(Value)之间的点积来确定权重,并通过 Softmax 函数进行归一化,且总和为1。
    查询(Q)、键(K)、值(V)矩阵
    对输入向量进行线性投影:
    图片2.png

a. 单头注意力机制
图片3.png

b. 多头注意力机制(将输入拆分为h个头,每个头单独计算后拼接)
图片4.png

(3) 预训练目标
a. 掩码语言建模(Masked Language Modeling,MLM):随机遮蔽部分氨基酸(15%),模型需要根据上下文预测被遮蔽的位置。
图片5.png

b. 下一句预测(Next Sentence Prediction,NSP):判断两个肽链片段是否属于同一蛋白质结构。
图片6.png

(4) 微调与输出
PeptideBERT 在预训练模型的基础上,针对三个不同的下游任务(如溶血性、溶解性和抗非特异性吸附性)对预训练模型进行微调。微调过程中,模型通过添加一个分类头(MLP)来适应这些任务,并使用特定的数据集进行训练。输出被传递到一个回归头(通常是全连接层),并经过 Sigmoid 函数处理,以确保输出值在 0 和 1 之间。最终,通过设定阈值(如 0.5)将输出值转换为二分类预测结果。

  1. 部署
    机器
    Atlas 800T A2
    组件版本
    hdk:24.1.RC3
    cann:8.0.RC3
    torch:2.1.0
    torch-npu:2.1.0.post8
    环境准备
  2. 创建虚拟环境
    conda create -n PeptideBERT python=3.9
  3. 下载源码
    git clone https://github.com/ChakradharG/PeptideBERT.git
  4. 安装必要的包
    3.1 在PeptideBERT目录下,执行如下命令,安装依赖包
    pip install -r requirements.txt
    图片7.png
    图片8.png

注:a.有一些包依赖于其它包,也需要安装。
b.requirements.txt里面torch的版本是2.0.1。配套的cann版本为7.0.0,由于该版本太过久远,所以这里使用的torch版本为2.1.0,配套的cann版本为8.0.RC3。
c.如果忘记安装必须的依赖包,会报错No module named……
图片9.png

3.2 安装2.1.0版本的torch
图片10.png

3.3 安装对应版本的torch-npu
a.下载插件包
wget https://gitee.com/ascend/pytorch/releases/download/v6.0.rc3- pytorch2.1.0/torch_npu-2.1.0.post8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
图片11.png

注:如果下载的时候提示证书不可信,需在命令尾部添加--no-check-certificate
b. 安装
pip3 install torch_npu-2.1.0.post8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
图片12.png

3.4 安装其它的依赖包
图片13.png

准备数据集

  1. 下载数据集
    如果直接执行download_data.py脚本,由于网络限制无法进行下载,会返回超时的错误,所以需要手动点击链接下载。
    图片14.png

下载完成
图片15.png

根据脚本内的filename修改数据集名字
图片16.png

放至PeptideBERT-master/data/data目录
图片17.png

  1. 处理数据集
    在PeptideBERT-master/data目录下新建py文件load_data.py
    文件内容为
    图片18.png

执行脚本,会对数据集进行处理。
处理之后
图片19.png

  1. 划分数据集
    在PeptideBERT-master/data目录下执行 python split_augment.py。
    执行之后
    在data/data目录下多出来这三个文件夹,里面为划分好的数据集。
    图片20.png

将这三个划分好的数据集移动至PeptideBERT-master/data目录下
图片21.png

训练

  1. 开始训练前,需要先source cann
    图片22.png

  2. 验证npu是否可用
    图片23.png

  3. 在训练脚本中导入torch_npu
    图片24.png

  4. 查看配置文件,确保使用的是论文中推荐的最优超参数
    数据集选择nf
    图片25.png

  5. 执行训练
    图片26.png
    图片27.png

4.结论
在nf数据集上面精度为87.260% ,训练时间为26.67分钟。这一精度表明该模型能可靠的识别出有抗非特异性吸附性潜力的肽,有助于在肽的设计和应用中做出更好的决策。论文中的测试精度为88.365%,训练时间为58.28分钟,在昇腾平台上面以不到一半的训练时间可以达到论文99%的效果。该模型可以在昇腾上进行训练和推理,且性能极强。

相关文章
|
10月前
|
机器学习/深度学习 人工智能 并行计算
基于昇腾适配蛋白质序列模型ProteinMPNN
ProteinMPNN是一种基于深度学习的蛋白质序列设计模型,核心目标是解决“逆向折叠问题”(inverse folding problem),即根据给定的蛋白质三维结构,设计出能够折叠成该结构的氨基酸序列。ProteinMPNN在计算和实验测试中都有出色的性能表现,不同位置的氨基酸序列可以在单链或多链之间偶联,从而广泛的应用于当前蛋白质设计上。ProteinMPNN不仅在天然蛋白质序列恢复率上面性能要高于传统的Rosetta方法,并且可以恢复先前设计失败的蛋白质。通过前沿AI技术突破科学研究的效率瓶颈,对于蛋白质工程、药物设计、酶设计等领域有极其重要的意义。
基于昇腾适配蛋白质序列模型ProteinMPNN
|
网络安全 开发工具 数据安全/隐私保护
解决 Enter passphrase for key ‘/Users/dzm/.ssh/id_rsa‘:
解决 Enter passphrase for key ‘/Users/dzm/.ssh/id_rsa‘:
4829 0
|
10月前
|
并行计算 PyTorch 开发工具
基于昇腾适配DeepMind团队发布的蛋白质结构预测模型OpenFold
OpenFold是一种基于深度学习的蛋白质结构预测模型,广泛应用于蛋白质从头预测、功能位点解析、突变效应模拟等领域。该模型的核心目标是通过大规模预训练和多阶段优化,从氨基酸序列中高效、准确地推断蛋白质的三维结构。
基于昇腾适配DeepMind团队发布的蛋白质结构预测模型OpenFold
|
10月前
|
机器学习/深度学习 数据采集 算法
基于昇腾适配基因表达预测模型Geneformer
Geneformer被广泛应用于疾病建模、治疗靶点发掘、基因网络预测与调控分析、基因功能预测与剂量敏感性分析、单细胞转录组数据集成与标准化、遗传变异解释与GWAS靶点优先排序。该案例既有算法原理,也有手把手的昇腾部署教学,包含细胞分类、基因分类、提取细胞嵌入图、细胞多分类的微调任务
基于昇腾适配基因表达预测模型Geneformer
|
7月前
|
存储 JSON 监控
淘宝/天猫:通过商品详情API实现多店铺商品信息批量同步,确保价格、库存实时更新
在电商运营中,管理多个淘宝或天猫店铺的商品信息(如价格、库存)耗时易错。本文介绍如何通过淘宝/天猫开放平台的商品详情API,实现自动化批量同步,确保信息实时更新。内容涵盖API调用、多店铺数据处理、实时更新策略及注意事项,助您高效管理多店铺商品信息。
463 0
|
10月前
|
机器学习/深度学习 人工智能 API
基于昇腾适配Meta AI在Science正刊发表的蛋白质结构预测模型ESMFold
ESMFold是由Meta AI团队开发的一种基于深度学习的高效蛋白质结构预测模型,其核心目标是利用大规模蛋白质语言模型(ESM)直接从氨基酸序列快速推断蛋白质的三维结构。ESMFold通过预训练的语言模型捕捉序列中的进化与结构关联性,结合几何优化模块生成高精度原子坐标,显著降低了传统方法对多重序列比对(MSA)和模板依赖的计算成本。该模型在蛋白质从头预测(de novo prediction)、功能位点解析、突变效应模拟等领域具有重要价值,以高效的推理性能,推动结构预测技术的普惠化应用。
|
10月前
|
机器学习/深度学习 编解码 人工智能
基于昇腾适配数据驱动的全球天气预报模型Fuxi
Fuxi是由复旦大学的研究人员开发的一个基于数据驱动的全球天气预报模型,主要由Cube Embedding、U-Transformer和全连接层构成。Fuxi摒弃了传统复杂的微分方程,转而通过多阶段机器学习架构,可提供15天的全球预报。时间分辨率为6小时,空间分辨率为0.25°。
|
10月前
|
并行计算 PyTorch 算法框架/工具
OpenFold2.0 基于NPU的推理适配与测试
本教程详细介绍了 OpenFold 的环境搭建、代码部署、依赖安装、数据集准备及推理测试全流程。首先通过 Anaconda 创建 Python3.9 环境并配置相关库,接着克隆 OpenFold 代码仓库并安装必要依赖(如 PyTorch、dllogger、hhsuite 等)。随后准备 PDB 数据集与模型参数,调整脚本路径以适配运行环境。最后执行推理脚本完成测试,并针对常见报错提供了解决方案,例如更新 NumPy、SciPy 或调整 GPU 配置等,确保流程顺利运行。