FSFP——专为蛋白质工程设计的少样本学习策略

news2025/1/9 17:09:58

论文地址:通过小样本学习,以最少的湿实验室数据提高蛋白质语言模型的效率

参考文献:AI蛋白质设计“新引擎”:FSFP驱动大模型超低采样学习,少量数据显著提升蛋白质语言模型的性能

前言介绍:上海交通大学自然科学研究院洪亮教授课题组联合上海人工智能实验室青年研究员谈攀,在蛋白质突变-性质预测上取得重要突破。该工作介绍了一种训练策略FSFP(Few-Shot Learning for Protein Fitness Prediction),通过结合元迁移学习,排序学习和参数高效微调,在使用极少实验数据的情况下,极大地提高了传统蛋白质预训练模型在突变-性质预测的效果。此外,作者通过实验成功地将FSFP应用于Phi29 DNA聚合酶的工程改造,在热稳定性提升的突变中,在只使用20个湿实验数据训练模型的情况下,阳性率提高了25%,并且能找到将近10个全新的阳性单点突变。表明了该方法在蛋白质工程方面的潜力。

概述

FSFP(Few-Shot Learning for Protein Fitness Prediction)是一种专为蛋白质工程设计的少样本学习策略。它通过结合元迁移学习(MTL)、排序学习(LTR)和低秩适应(LoRA)技术,有效提升了蛋白质语言模型极少量标记数据下的性能。FSFP通过在相关蛋白质的辅助任务上进行元训练,获取能够快速适应新任务的初始模型参数,然后在目标蛋白质的少量数据上进行微调,最终实现对突变体适应性的精确排序和预测。

核心思想

FSFP方法巧妙地结合了元迁移学习(meta-transfer learning)、学习排序(learning to rank)和参数高效微调(parameter-efficient fine-tuning)三种技术:

  1. 元迁移学习: 通过在多个辅助任务上积累经验,使模型能够快速适应新的目标蛋白质。

  2. 学习排序: 将蛋白质适应度预测问题转化为排序问题,更符合定向进化的实际需求。

  3. 参数高效微调: 采用低秩适应(LoRA)技术,仅微调少量参数,有效防止模型在小数据集上过拟合。

通过这种巧妙的组合,FSFP方法可以仅使用目标蛋白质的数十个随机单点突变体的标记数据,就能显著提高训练后模型的预测准确性。

文章结构

这篇论文提出的FSFP方法部分主要分为以下几部分

1、预训练蛋白质语言模型的选择与准备(Selection and Preparation of Pre-trained Protein Language Models

技术:蛋白质语言模型(Protein Language Models, PLMs)。

解释:使用了预训练的蛋白质语言模型如ESM-1v、ESM-2和SaProt。这些模型基于大型蛋白质序列数据进行训练,能够捕捉蛋白质序列中的统计特性,提供预测蛋白质适应性(fitness)景观的初步能力。ESM-1v 和 ESM-2 是基于Transformer架构的模型,专注于序列信息,而SaProt则结合了结构信息。

2、少样本学习策略FSFP的设计(Design of FSFP for Few-Shot Learning

技术:元迁移学习(Meta-Transfer Learning, MTL)、排序学习(Learning to Rank, LTR)、低秩适应(Low-Rank Adaptation, LoRA)。

解释

元迁移学习(MTL:一种元学习方法,旨在通过学习多个任务来快速适应新任务,尤其是在标签稀缺的情况下。在这里,FSFP使用MTL来获取能够快速适应目标蛋白质任务的初始模型参数。

排序学习(LTR:LTR将蛋白质适应性预测问题转化为排序问题,重点关注不同突变的相对有效性,而非绝对值,从而更适合指导蛋白质工程中的定向进化。

低秩适应(LoRA:LoRA通过引入可训练的低秩矩阵来更新PLMs中的部分参数,保持原模型参数冻结,从而防止在小数据集上的过拟合。

3、数据集构建与辅助任务(Data Set Construction and Auxiliary Tasks)

技术:多序列比对(Multiple Sequence Alignment, MSA)和相似蛋白质数据集检索。

解释:通过蛋白质语言模型生成的嵌入向量,从ProteinGym数据库中检索与目标蛋白质相似的两个蛋白质,形成两个辅助任务的数据集。利用MSA技术计算候选突变体的伪标签,生成第三个辅助任务的数据集。

4、模型训练与评估(Model Training and Evaluation

技术:模型无关元学习(Model-Agnostic Meta-Learning, MAML)和差分进化(Differential Evolution)。

解释:采用MAML方法进行模型的元训练,目的是找到能够快速适应新任务的模型初始参数。差分进化用于优化LoRA参数,使得模型在目标任务上能够更快地学习。(模型无关元学习 (MAML) 在构建的任务上进行元训练 PLMs。MAML 能够找到最优初始模型参数,即使对它们进行小幅更改也会在目标任务上产生显著改善。在每个迭代周期中,元训练过程包含两个级别的优化,并最终将 PLMs 转换为初始化的元学习器

FSFP的具体实现流程

FSFP方法的实现包括以下几个关键步骤:

1. 构建辅助任务

为了进行元学习,FSFP首先需要构建多个相关的辅助任务。具体做法如下:

  • 利用预训练的蛋白质语言模型将目标蛋白质和数据库中的蛋白质编码为嵌入向量。

  • 计算目标蛋白质与数据库中其他蛋白质的余弦相似度。

  • 选择相似度最高的两个蛋白质及其对应的深度突变扫描(DMS)数据集作为前两个辅助任务。

  • 使用多序列比对(MSA)方法GEMME为目标蛋白质的候选突变体生成伪标签,构建第三个辅助任务。

这种方法既利用了相似蛋白质的实验数据,又融入了目标蛋白质的进化信息,为元学习提供了丰富的知识来源。

2. 元训练

FSFP采用模型无关元学习(MAML)算法进行元训练。MAML的目标是找到一组初始参数,使得模型能够在少量梯度更新后快速适应新任务。元训练过程包括两个层次的优化:

  • 内层优化:对每个采样的辅助任务,使用其训练数据更新模型参数。

  • 外层优化:使用辅助任务的测试数据评估更新后的模型,并优化元学习器。

为了防止过拟合,FSFP使用LoRA技术,仅更新一小部分低秩分解矩阵,而保持预训练模型的原始参数不变。

3. 迁移到目标任务

元训练完成后,FSFP将得到的模型迁移到目标蛋白质的少样本学习任务上。与传统方法不同,FSFP将这个问题视为排序问题,使用ListMLE损失函数进行训练。这种方法更加关注突变体之间的相对顺序,而不是精确的适应度分数,更符合蛋白质工程的实际需求。

核心架构介绍

FSFP包含三个阶段:(a)首先,构建用于元学习的辅助任务,包括检索两个相似蛋白的标记突变体数据集和使用MSA方法估计变异效应的伪标签。(b)然后,使用MAML算法在这些任务上对PLM进行元训练,并通过LoRA技术限制模型参数的更新,以防止过拟合。(c)最后,将元训练模型应用于目标小样本任务,并利用LTR技术将适应度预测问题转化为排序问题,通过计算预测与真实排列之间的排名损失来优化模型。

输入(编码)

  • 蛋白质序列输入:通过蛋白质语言模型(如ESM-2)编码,生成高维的嵌入向量。PLMs使用Transformer架构处理序列信息,并输出蛋白质的嵌入向量,这些向量用于下游任务。
  • MSA生成的伪标签:通过GEMME算法计算出的进化保守性分数,用于辅助任务的训练。(GEMME(Global Epistatic Model for Mutational Effects)是一种用于预测蛋白质突变效果的算法。它利用多序列比对(MSA)生成的进化信息来建模蛋白质序列中不同位置之间的相互依赖性。通过构建联合进化树,GEMME计算每个位置的保守性,并通过这些保守性分数估计突变的进化适应性,从而预测特定突变对蛋白质功能的影响。该方法简单且快速,能够有效捕捉突变之间的全局互作效应,适用于大规模蛋白质突变效果的预测。)

模型结构

  • 元迁移学习(MTL:模型结构基于Transformer,使用LoRA调整模型的部分参数。模型首先在辅助任务上进行训练,生成初始参数,然后在目标蛋白质的少样本数据上进行微调。
  • 排序学习(LTR:在微调阶段,FSFP将预测问题转化为排序问题,使用ListMLE损失函数训练模型,使其更关注突变之间的相对排序。

训练

  • 元训练:使用MAML方法,在多个辅助任务上进行训练,以获得适合目标任务的模型初始参数。每个辅助任务的数据集包括从相似蛋白质中提取的突变数据以及通过MSA生成的伪标签数据。
  • 微调:在目标蛋白质的少量训练数据上微调模型。训练过程中,模型仅更新LoRA参数,以防止过拟合。(FSFP 使用低秩自适应 (LoRA) 将可训练的秩分解矩阵注入到 PLMs 中, 其中它们的原始预训练参数被冻结,所有模型更新都被限制为小数量的可训练参数。)

模型输出

  • 预测输出:模型输出为蛋白质突变体的适应性分数,经过排序学习后,输出为突变体的排名顺序。这种排名方式更加符合蛋白质工程中的实际需求,重点关注突变体在适应性提升中的相对效果。

总结 

FSFP方法通过结合元迁移学习、排序学习和低秩适应技术,在极少量实验数据的条件下,显著提升了蛋白质语言模型的性能。FSFP方法在蛋白质适应性预测上展示了良好的泛化能力,特别是在处理多个突变体和稀少的训练数据时效果显著。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2143333.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在STM32工程中使用Mavlink与飞控通信

本文讲述如何在STM32工程中使用Mavlink协议与飞控通信,特别适合自制飞控外设模块的项目。 需求来源: 1、增稳云台里的STM32单片机需要通过串口接收飞控传来的云台俯仰、横滚控制指令和相机拍照控制指令; 2、自制的有害气体采集器需要接收飞…

PCL 曲线点云提取

文章目录 一、简介二、实现代码三、实现效果参考文献一、简介 提取曲线点云的方法主要分为两种:参数化与非参数化,其中参数化是指事先直线曲线的形状,反之,非参数化则是不依赖与曲线的参数,通常是一种聚类的行为。这里我们采用非参数方法(TriplClust),将点集划分为一个未…

Java ETL - Apache Beam 简介

基本介绍 Apache Beam是一个用于大数据处理的开源统一编程模型。它允许用户编写一次代码,然后在多个批处理和流处理引擎上运行,如Apache Flink、Apache Spark和Google Cloud Dataflow等。Apache Beam提供了一种简单且高效的方式来实现数据处理管道&…

上海儿童自闭症寄宿制学校,让孩子找到归属感

在探讨自闭症儿童教育的广阔图景中,上海作为一座充满人文关怀的城市,始终致力于为这些特殊的孩子提供更加全面、专业的支持体系。而当我们把这份关注与努力投射到具体实践上,广州的星贝育园自闭症儿童寄宿制学校便成为了这样一个温馨而有力的…

蓝桥杯DS18B20程序源码

蓝桥杯DS18B20程序源码解析 蓝桥杯,作为一项全国瞩目的电子设计竞赛,其核心挑战在于参赛者需深度融合单片机编程与各类电子元件的应用能力。在众多项目中,涉及DS18B20数字温度传感器的程序源码尤为引人注目,它巧妙地将单片机技术…

ollama安装(ubuntu20.04)

Ollama是一款开源的自然语言处理工具,它可以帮助开发者快速构建文本处理应用。 ollama官网: https://ollama.ai/ 一、ollama 自动安装 linux统一采用sh脚本安装,一个命令行搞定。 curl -fsSL https://ollama.com/install.sh | sh二、ollama 手动安装 o…

使用 OpenCV 和 Matplotlib:绘制其彩色直方图以及拓展

如何使用 OpenCV 和 Matplotlib 读取、处理并显示图像。即将为您解答: 绘制其彩色直方图 代码解释 读取图像并转换颜色空间: image cv2.imread(001.jpg) image_rgb cv2.cvtColor(image, cv2.COLOR_BGR2RGB)cv2.imread(001.jpg):从文件中…

C#基于SkiaSharp实现印章管理(7)

印章中的文本主要分为两种:1)从左向右水平绘制的文本;2)沿指定路径绘制的文本。前者使用SKCanvas的DrawText绘制文本,后者则使用SKCanvas的DrawTextOnPath绘制文本。   针对上述情况,调整SealElement类型…

Python编码系列—Python代理模式:为对象赋予超能力的魔法

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

【自学笔记】支持向量机(2)——核函数

引入 核函数的功能是将一组数据映射到更高维的特征空间,这样可以让在低维无法线性分类的数据能够在高维空间下被分类。   可以证明,如果原始数据是有限的维度,那么一定存在一个高维特征空间使得样本线性可分。 文章内容由《机器学习》相关内…

地平线秋招2025

【地平线秋招】 中秋卷起来!!! 内推码 kbrfck 内推码 kbrfck 内推码 kbrfck 投递链接:https://wecruit.hotjob.cn/SU62d915040dcad43c775ec12c/mc/position/campus?acotycoCodekbrfck&recruitType1&isLimitShowPostScope…

Ubantu和Centos7一键shell更换镜像源与Linux系统Python3环境安装

目录 前言 1.一键更换源 1.1 创建文件 1.2 向环境赋予可执行的权限 2.Linux系统配置Python3环境 2.1 查看当前python环境 2.2 更换源 2.3 安装所需的依赖 2.4.下载python环境文件 2.5.解压文件 2.6 进行编译 2.7 开始安装 2.8 设置软连接 2.9 测试是否安装成功…

苍穹外卖Day01-2

导入接口文档 yApi接口管理平台http://api.doc.jiyou-tech.com/ 创建项目 导入接口文件 导入结果界面 Swagger 介绍 使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。 官网:ht…

计算机人工智能前沿进展-大语言模型方向-2024-09-16

计算机人工智能前沿进展-大语言模型方向-2024-09-16 1. Securing Large Language Models: Addressing Bias, Misinformation, and Prompt Attacks B Peng, K Chen, M Li, P Feng, Z Bi, J Liu, Q Niu - arXiv preprint arXiv:2409.08087, 2024 保护大型语言模型:…

走进低代码表单开发(三):高效业务功能构建

前面我们已经介绍了勤研低代码开发平台的页面设计相关的内容,当页面设计完成后,我们将继续进行表单的功能开发,接下来,我们一起走进勤研低代码开发平台高效便捷的表单功能设计,来看看勤研低代码平台如何为用户带来全新…

MFC实现对话框与控件的自适应调节

一.对话框属性设置 先将对话框的Border属性由Dialog Frame设置为Resizing。 二.添加消息处理函数 类向导 -> 消息(WM-SIZE)添加处理函数->void COnshowDlg::OnSize(UINT nType, int cx, int cy)。 三.添加代码 在.h文件中声明: vo…

每日一题——第九十九题

// PrintUniqueChart.cpp : 此文件包含 “main” 函数。程序执行将在此处开始并结束。 // // 设计算法&#xff0c;打印如下图案&#xff1a; #include<stdio.h>int main() {int i, j;for (i 0; i < 5; i){//每行开始先打印空格//控制每行前的空格for (int space 0…

gitee远程仓库OPEN GIT BASH HERE从错误中学习

推荐一个ai软件&#xff08;搜索器搜索kimi&#xff09;&#xff0c;是一个ai&#xff0c;有什么错误跟着一步步解决就可以了 当你创建一个仓库 会出现这些 打开这个窗口跟着敲就行了 到这里为止我还没出现错误&#xff0c;后面我把remote add添加远程仓库的地址输错地址了 所…

网络安全-ssrf

目录 一、环境 二、漏洞讲解 三、靶场讲解 四、可利用协议 4.1 dict协议 4.2 file协议 4.3 gopher协议 五、看一道ctf题吧&#xff08;长亭的比赛&#xff09; 5.1环境 5.2开始测试 ​编辑 一、环境 pikachu&#xff0c;这里我直接docker拉取的&#xff0c;我只写原…

【H2O2|全栈】关于CSS(5)如何制作一个搜索网页的首页?

目录 CSS基础知识 前言 准备工作 简单网页的组成部分 案例 浏览器的窗口大小 划分主要部分 固定定位 头部导航&#xff08;左侧&#xff09; 头部导航&#xff08;右侧&#xff09; LOGO ​编辑搜索框 热搜标题 热搜内容 文字简介 资源 预告和回顾 后话 CSS…