西湖大学团队开源SaProt等多款蛋白质语言模型,覆盖结构功能预测/跨模态信息搜索/氨基酸序列设计等
2025 年 3 月 22—23 日,上海交通大学「AI 蛋白质设计峰会」正式举行。 本次峰会汇聚了来自清华大学、北京大学、复旦大学、浙江大学、厦门大学等知名高校的 300 多位专家学者,以及 200 余位行业领军企业代表和技术研发人员,深入探讨了 AI 在蛋白质设计领域的最新研究成果、技术突破及产业化应用前景等。

西湖大学原发杰博士在峰会上带来深度分享
在峰会期间,西湖大学原发杰博士以「蛋白质大语言模型研究与应用」为主题,向大家分享了蛋白质语言模型的最新研究进展,并详细介绍了团队的重要成果, 包括蛋白质语言模型 SaProt、ProTrek、Pinal、Evolla 等。HyperAI超神经在不违原意的前提下,对其深度分享进行了整理汇总,以下为演讲精华实录。
值得关注的蛋白质语言模型
蛋白质是由 20 种氨基酸串联而成的生物大分子,它们在体内承担催化、代谢等关键功能,是生命活动的主要执行者。生物学家通常将蛋白质的结构划分为 4 个层级:一级结构描述蛋白质的氨基酸序列、二级结构关注蛋白质局部构象、三级结构代表蛋白质整体的三维构型、四级结构则涉及多个蛋白质分子间的相互作用。在 AI 蛋白质领域,主要是基于这些结构来展开研究。

例如,从蛋白质序列预测其三维结构,这正是 AlphaFold 2 解决的核心问题——攻克了困扰科学界长达 50 年的蛋白质折叠问题,并因此荣获诺贝尔奖。反之,根据结构和功能设计新的蛋白质序列,即 Protein Design,这一领域的重要贡献者 David Baker 教授同样也获得了诺贝尔奖。
传统上,蛋白质结构通常以 PDB 坐标的形式来表示,近年来,研究人员们探索了将连续空间结构信息转化为离散 token 的方法,比如 Foldseek、ProTokens、FoldToken、ProtSSN、ESM-3 等。
*Foldseek 可以将蛋白质的三维结构编码成一维的离散 token。
我们团队的蛋白质语言模型就是基于这些离散结果来展开研究。
大多数 AI + 蛋白质的研究都可以追溯到自然语言处理的研究,所以我们先来回顾一下自然语言处理 (NLP) 领域的两个经典语言模型:一个是以 GPT 系列为代表的单向语言模型, 其机制是基于从左到右的信息流动方式,根据左侧的数据(上文)预测下一个 token。一个是以 BERT 为代表的双向语言模型, 其通过 Masked Language Model 做预训练,可以看到某个 cooked 左右两侧的信息(上下文),从而预测该 cooked。

在蛋白质领域,这两类模型都有其对应的蛋白质语言模型。 比如,对应 GPT,有 ProtGPT2、ProGen 等。 对应 BERT,有 ESM 系列模型:ESM-1b、ESM-2、ESM-3,它们主要是通过遮盖一些氨基酸,并预测其「真实身份」,在自然语言任务中,也就是遮住一些单词,然后预测这些单词。如下图左侧所示,在蛋白质社区影响力比较大的语言模型还有 MSA Transformer、GearNet 、ProTrans 等。

入选 ICLR 2024,蛋白质语言模型 SaProt 融合结构知识
我要向大家介绍的第一个成果是具有结构感知词汇的蛋白质语言模型 SaProt, 这篇论文以「SaProt: Protein Language Modeling with Structure-aware Vocabulary」为题曾入选 ICLR 2024。
这篇论文中,我们提出了结构感知词汇 (structure-aware vocabulary) 的概念,并将氨基酸残基 token 与结构 token 结合,在约 4,000 万条蛋白质序列与结构数据集上训练了一个大规模通用蛋白质语言模型 SaProt,该模型在 10 项重要的下游任务中全面超越已有的成熟基线模型。
SaProt 开源地址:
https://github.com/westlake-repl/SaProt
SaProt 论文地址:
https://openreview.net/forum?id=6MRm3G4NiU
我们为什么要做这个模型?
其实,大多数蛋白质语言模型的输入信息主要基于氨基酸序列。在 AlphaFold 取得突破后,DeepMind 团队与欧洲生物信息研究所 (EMBL-EBI) 合作,发布了 AlphaFold 蛋白质结构数据库 (AlphaFold Protein Structure Database),其中存储了 2 亿的蛋白质结构。于是我们开始考虑:能否将蛋白质的结构信息整合到语言模型中,以提升其性能表现?

我们的做法非常简单:采用 Foldseek,将蛋白质的结构信息从坐标形式转换为离散 token,从而构建氨基酸词表和结构词表,然后对这两个词表进行交叉组合,生成新的词表,也就是结构感知词汇 (Structure-aware Vocabulary, SA token)。这样一来,原本的氨基酸序列就可以转化为一种新的氨基酸序列——在这个序列中,大写字母代表氨基酸 token,小写字母代表结构 token,然后,就可以继续做 Masked Language Model 了。基于此,我们训练了一个 6.5 亿参数的 SaProt 模型,该模型使用了 64 张 A100 GPU,总训练时间约 3 个月。

我们为什么选择 Foldseek 转化蛋白质结构 token?
在最终确定使用 Foldseek 3Di token sequence 之前,我们经历了长达半年的探索。直觉上,将结构信息融入蛋白质语言模型应该能带来性能提升,但实际尝试时我们用了多种方法都未成功。比如,我们用了 GNN 方法来建模蛋白质结构。因为蛋白质结构其实是一个图神经网络,我们自然而然就想把蛋白质结构当做图来建模,于是采用了 MIF 方法,但发现训练的模型泛化能力较差,无法推广至真实的 PDB 结构上。我们深入分析后认为,这可能是因为采用 Masked Language Model 的建模方式会出现信息泄露问题。
简单来讲,AlphaFold 预测的蛋白质结构本身存在某种偏差 (bias)、模式、AI 预测的痕迹。当用这些数据去训练语言模型时,模型很容易就能捕捉到这些痕迹,从而导致模型在训练数据上表现很好,但泛化能力极差。

我们尝试了各种改进,包括使用 Evoformer 方法,但信息泄露问题依然存在,直到尝试了 Foldseek,我们发现得到的 SaProt 模型在 AlphaFold 预测的结构数据上 loss 能够下降,在真实 PDB 结构数据上 loss 同样显著下降,满足了我们的预期。
此外,SaProt 在多个基准测试中表现良好, 去年,它也曾在权威榜单 ProteinGym 上排名第一。与此同时,我们也搜集到社区对 SaProt /ColabSaProt 进行了超过 10 种蛋白质的湿实验验证(如各种酶突变改造,荧光蛋白质改造与荧光性预测等)结果,均表现优异。

虽然我们认为 SaProt 模型还不错,但考虑到许多生物学家并未接受深度学习相关的训练, 让他们独立微调一个规模达 10 亿参数左右的蛋白质语言模型是非常困难的,于是我们构建了一个交互界面式平台 ColabSaprot + SaprotHub。

在传统的模型训练流程 (Normal pipeline) 中,用户需要经历数据准备、环境配置、代码编写、数据处理、模型训练、模型评估、模型推理等多个环节。而有了 ColabSaprot 之后,整个过程被大大简化——用户只需点击几下按钮,即可完成环境安装、模型训练和预测等操作,大大降低了使用门槛。
如下图所示,ColabSaprot 主要由训练模块、预测模块和共享模块 3 部分组成。

-
在训练模块中,用户只需在左侧描述任务并上传数据,然后点击训练即可。系统会自动选择最优的超参数(如 Batch Size 等)。
-
在预测模块中,用户可以直接加载自己之前训练的模型,并进行预测。也可以直接录入其他研究人员分享的模型去做预测。
-
共享模块提供了一种既保护数据隐私、又能进行成果共享的方式。许多实验室的数据极为珍贵,一些研究人员可能还需要用这些数据做后续研究,但他们仍希望分享现有模型。在 ColabSaprot 中,用户可以仅共享模型本身,由于模型本质上是一个黑盒,其他人也无法获取原始数据。
在共享模型时,考虑到语言模型通常规模庞大,直接在线分享一个 10 亿参数的模型几乎是不可行的。因此,我们采用了一种成熟的 Adapter 机制, 用户只需共享极少量的参数——通常仅占原始模型参数的 1% 或 1/1,000 即可。大家可以互相 share Adapter,并加载其他人的 Adapter,在此基础上进行微调或预测,如果改进效果良好,还可以再次分享新的 Adapter,从而形成一种高效的社区合作机制,大大提升了研究效率。

此外,我们也进行了用户研究 (User Study), 邀请了 12 位没有机器学习背景、编程基础的同学试用 ColabSaprot 平台。我们提供数据,并告诉他们要做的任务,要求他们使用 ColabSaprot 进行模型训练和预测。最终,将他们的结果与 AI 专家的表现进行对比,我们发现这些非专业用户使用 ColabSaprot 后,能够达到与专家相近的水平。
另外,为了推动蛋白质语言模型共享,我们还建立了一个名为 OPMC 的社区, 该领域的国内外知名学者参与其中,鼓励大家共同分享模型,促进合作与交流。
OPMC 地址:
https://theopmc.github.io/

ProTrek 模型:可查找蛋白质序列、结构、功能之间的对应关系
我要介绍的第二个工作是蛋白质语言模型 ProTrek。
在生物研究中,许多科学家面临这样的需求:手头有一个基因组的很多蛋白质,但并不清楚它们的具体功能。
ProTrek 是一个三模态语言模型,可用于对序列、结构和功能进行对比学习。 借助其自然语言搜索界面,用户能够在几秒内探索庞大的蛋白质空间,并搜索序列、结构、功能所有两两组合的 9 种不同任务之间的关系。也就是说,使用 ProTrek,用户只需输入蛋白质序列并点击按钮,即可快速查找蛋白质功能、结构相关信息。同样,也可以根据功能找序列、结构信息,根据结构查找序列、功能信息等。此外,它还支持 sequence—sequence、structure—structure 类的查找。
ProTrek 使用地址:
http://search-protrek.com/

我们合作者对 ProTrek 模型进行了干、湿实验的评估, 与现有相关方法相比,ProTrek 在性能上取得了显著提升。此外,我们还利用 ProTrek 生成了大量数据,用于训练我们的生成模型,效果同样表现优异。


我们在 Twitter 上注意到,许多用户已经开始使用 ProTrek 参与竞赛, 也收到了不少积极反馈,进一步证明了该模型的实用性。

Pinal 模型:只需输入文本,即可设计全新蛋白质序列
我们的另一个工作是基于文本描述设计蛋白质的模型 Pinal。
传统的蛋白质设计通常需要考虑复杂的因素,如生物物理学的能量函数模板信息等。我们想探讨的是,既然大语言模型在许多任务中表现出色,是否可以设计一个基于文本的蛋白质语言模型?在这个模型中,我们只需要简单地描述某个蛋白质的信息,就能设计其氨基酸序列?
Pinal 使用地址:
http://www.denovo-pinal.com/
论文地址:
https://www.biorxiv.org/content/10.1101/2024.08.01.606258v1

我简单介绍一下 Pinal(160 亿参数)的基本原理。 最初,我们的思路是采用编码器-解码器架构,输入文本,然后输出氨基酸序列。但尝试了很长时间,效果一直不理想,主要原因是氨基酸序列的空间过于庞大,导致预测困难。
因此,我们调整了策略,首先设计蛋白质的结构,然后根据结构和文本提示来设计氨基酸序列,这里的蛋白质结构也采用离散化编码进行表示。结果发现,结合结构的设计方法,在 Next Token Prediction Accuracy 上的表现明显优于直接预测氨基酸序列的方法,如下图所示。

我们近期收到合作者对 Pinal 的湿实验验证, Pinal 设计了 6 条蛋白质序列,其中 3 条表达,2 条序列经过验证具有相应的酶催化活性。值得一提的是,在这个工作中,我们并没有强调一定要设计出比野生型更优秀的蛋白质,我们的主要目标是验证根据文本设计出来的蛋白质是否具有相应的蛋白质功能。
Evolla 模型:解码蛋白质分子语言
最后介绍的成果是 Evolla 模型, 这是一个 800 亿参数的蛋白质语言生成模型,也是最大的开源生物大模型(之一),旨在解码蛋白质的分子语言。
通过整合蛋白质的序列、结构和用户查询信息,Evolla 能够生成准确的蛋白质功能见解。 用户只需输入蛋白质的序列和结构,然后提出问题,比如介绍该蛋白质基本功能或催化活性,直接点击按钮,Evolla 就会生成约 200-500 字的详细描述。
Evolla 使用地址:
http://www.chat-protein.com/
Evolla 论文地址:
https://www.biorxiv.org/content/10.1101/2025.01.05.630192v2

值得一提的是,Evolla 这个工作训练数据和算力非常巨大,仅仅训练数据收集和处理我们就有两位博士生花了近 1 年时间,最终我们通过合成数据手段,产生了超过 5 亿条高质量蛋白质-文本对数据,覆盖千亿级 word token。模型在酶的功能预测上表现相当准确,但也不可避免地存在一些幻觉问题。

团队介绍
西湖大学原发杰博士主要从事传统机器学习及交叉学科相关的应用科学研究,并专注于 AI 大模型与计算生物学的探索,在机器学习与人工智能领域的顶会和期刊上(如 NeurIPS、ICLR、SIGIR、WWW、TPAMI、Molecular Cell等)发表了 40 余篇学术论文,团队成员及项目贡献者信息详见论文。
课题组长期开展机器学习和 AI + 生物信息方向的研究,欢迎申请课题组博士生、科研助理、博士后、研究员系列职位,在校生欢迎来实验室访问实习。有意者可发简历到邮箱 yuanfajie@westlake.edu.cn。
相关文章:
西湖大学团队开源SaProt等多款蛋白质语言模型,覆盖结构功能预测/跨模态信息搜索/氨基酸序列设计等
2025 年 3 月 22—23 日,上海交通大学「AI 蛋白质设计峰会」正式举行。 本次峰会汇聚了来自清华大学、北京大学、复旦大学、浙江大学、厦门大学等知名高校的 300 多位专家学者,以及 200 余位行业领军企业代表和技术研发人员,深入探讨了 AI 在…...
算法--递归实现【DFS】
题目:指数型枚举 从 1∼n这 n 个整数中随机选取任意多个,输出所有可能的选择方案。 输入格式 输入一个整数 n。 输出格式 每行输出一种方案。 同一行内的数必须升序排列,相邻两个数用恰好 11 个空格隔开。 对于没有选任何数的方案,…...
一个批量文件Dos2Unix程序(Microsoft Store,开源)
这个程序可以把整个目录的文本文件改成UNIX格式,源码是用C#写的。 目录 一、从Microsoft Store安装 二、从github获取源码 三、功能介绍 3.1 运行 3.2 浏览 3.3 转换 3.4 转换(无列表) 3.5 取消 3.6 帮助 四、源码解读 五、讨论和…...
无法读取库伦值文件节点解决方案
读取库伦值的目的是为了换算成电流,量化场景功耗用途 1.报错日志 /power_log/debuglogger$ adb shell dmesg | grep -Ei "avc..system_server"[ 79.942272] logd.auditd: type1400 audit(1744279324.832:7149): avc: denied { read } for comm"…...
Linux系统学习Day2——在Linux系统中开发OpenCV
一、OpenCV简介 OpenCV(Open Source Computer Vision Library)是一个开源的跨平台计算机视觉和机器学习库,广泛应用于图像处理、视频分析、物体检测等领域。它提供了丰富的算法和高效的工具集,支持C、Python等多种语言,…...
【图像分类】【深度学习】图像分类评价指标
【图像分类】【深度学习】图像分类评价指标 文章目录 【图像分类】【深度学习】图像分类评价指标前言二分类评价指标Accuracy(准确率/精度)Precision(精确率/查准率)Recall(召回率/查全率)F1-ScoreAUC-ROC曲线(Area Under the Curv-Receiver Operating Characteristic Curve)二…...
一组可能的机器学习问题列表
线性回归与多项式拟合的关系最小二乘法在机器学习中的应用梯度下降是如何实现的贝叶斯分类器的应用场景高斯分布与判定在哪里用到模型的评估有哪些参数误差中的偏差和方差定义训练集分组的快捷方式如何度量模型性能查准率查全率的定义roc,aux的含义正则化是什么意思k均值用来解…...
context上下文(一)
创建一个基础的context 使用BackGround函数,BackGround函数原型如下: func Background() Context {return backgroundCtx{} } 作用:Background 函数用于创建一个空的 context.Context 对象。 context.Background() 函数用于获取一个空的 cont…...
蓝桥杯单片机刷题——按键控制距离显示精度
设计要求 驱动超声波传感器,启动距离测量功能,并将其结果显示到数码管上,距离数据单位为m。 按键“S4”定义为“切换”按键,通过此按键切换距离的显示精度(一位或两位小数)。切换顺序如图所示。 数码管显示格式如下图…...
el-time-picker标签的使用
需求: 实现培训日期,用户可以选择某一天的日期,这个比较简单 <el-form-item label"培训日期" prop"startTime"><el-date-picker clearablev-model"form.startTime"type"date"placeholder…...
云平台一键部署【OmniGen】多功能图像生成模型(2025更新版)
OmniGen 是智源推出的一款全新的扩散模型架构,专注于统一图像生成。它简化了图像生成的复杂流程,通过一个框架处理多种任务,例如文本生成图像、图像编辑和基于视觉条件的生成等。此外,OmniGen 通过统一学习结构实现了知识迁移&…...
C/C++ 知识点:解释型语言与编译型语言
文章目录 一、解释型语言与编译型语言1、概念2、主要区别3、示例对比 一、解释型语言与编译型语言 1、概念 解释型语言 代码逐行解释执行,无需提前编译。如:Python、JavaScript、Ruby。 编译型语言 代码先编译成机器码,再直接执行。如&…...
算法训练之动态规划(四)——简单多状态问题
♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…...
uniapp离线打包提示未添加videoplayer模块
uniapp中使用到video标签,但是离线打包放到安卓工程中,运行到真机中时提示如下: 解决方案: 1、把media-release.aar、weex_videoplayer-release.aar放到工程的libs目录下; 文档:https://nativesupport.dcloud.net.cn/…...
5. 蓝桥公园
题目描述 小明喜欢观景,于是今天他来到了蓝桥公园。 已知公园有 N 个景点,景点和景点之间一共有 M 条道路。小明有 Q 个观景计划,每个计划包含一个起点 stst 和一个终点 eded,表示他想从 stst 去到 eded。但是小明的体力有限&am…...
机器人零位标定修正流程介绍
如果想看运动学标定可以看看 机器人运动学参数标定, 一次性把运动学参数和零位标定等一起标定求解. 1. 零位标定 零位标定是机器人运动学标定中的一个重要步骤,其目的是校正机器人关节的初始位置误差。以下是需要进行零位标定的主要原因: 制造误差 在机…...
大疆无人机系列知识
目录 知识 开发者文档 (上云) 无人机的应用 知识 大疆行业无人机接入音视频平台协议详解_大疆无人机 视频流-CSDN博客 开发者文档 (上云) 上云API 无人机的应用 【大疆无人机地图测绘技术学习:高精度、高效率的…...
深入 C++ 线程库:从创建到同步的探索之旅
目录 创建多线程 获取线程返回值 1.传指针 2.传引用 原子操作 互斥量 互斥量(Mutex)的基本概念 mutex类型介绍 锁的类型 互斥锁(Mutex) 自旋锁(Spin Lock) 读写锁(Read - Write Lo…...
【2025年认证杯数学中国数学建模网络挑战赛】A题 解题建模过程与模型代码(基于matlab)
目录 【2025年认证杯数学建模挑战赛】A题解题建模过程与模型代码(基于matlab)A题 小行星轨迹预测解题思路第一问模型与求解第二问模型与求解 【2025年认证杯数学建模挑战赛】A题 解题建模过程与模型代码(基于matlab) A题 小行星轨…...
Rust重定义数据库内核:从内存安全到性能革命的破界之路
Rust语言正在颠覆传统数据库开发范式,其独特的所有权系统与零成本抽象能力,为攻克C/C时代遗留的内存泄漏、并发缺陷等顽疾提供全新解决方案。本文通过TiKV、Materialize等新一代数据库核心组件的实践案例,剖析Rust如何重塑存储引擎、查询优化…...
大模型在慢性髓细胞白血病(CML)初治成人患者诊疗中的应用研究
目录 一、引言 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与内容 二、大模型技术与 CML 相关知识 2.1 大模型技术原理与特点 2.2 CML 的病理生理与诊疗现状 三、术前风险预测与手术方案制定 3.1 术前数据收集与预处理 3.2 大模型预测术前风险 3.3 根据预测…...
Matlab 分数阶PID控制永磁同步电机
1、内容简介 Matlab 203-分数阶PID控制永磁同步电机 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
GO语言入门-反射5(结构体的Tag)
12.5 结构体的 Tag 在定义结构体类型时,可以在字段后面加上一个字符串,称为 Struct Tag。Tag 主要用来补充附加信息。 Tag 由多个 key - value 构成,并以空格来分隔,key 和 value 之间用英文的冒号分隔。其格式如下:…...
免费下载 | 2025电力数据资产管理体系白皮书
本文是一份关于2025年电力数据资产管理体系的白皮书,详细阐述了电力数据要素和数据资产管理的现状、挑战、发展进程以及电网数据资产管理体系的构建与实践。白皮书强调了数据作为生产要素的重要性,并提出了电网数据资产管理体系的创新模式,旨…...
4185 费马小定理求逆元
4185 费马小定理求逆元 ⭐️难度:简单 🌟考点:费马小定理 📖 📚 import java.util.Scanner; import java.util.Arrays;public class Main {static int[][] a;public static void main(String[] args) {Scanner sc …...
处理Excel表不等长时间序列用tsfresh提取时序特征
我原本的时间序列格式是excel表记录的,每一行是一条时间序列,时间序列不等长。 要把excel表数据读取出来之后转换成extract_features需要的格式。 1.读取excel表数据 import pandas as pd import numpy as np from tsfresh import extract_features mda…...
从keys到SCAN:Redis批量删除的进化之路
标签:Redis、批量删除、前缀匹配、性能优化 一、痛点分析:为什么需要批量删除指定前缀的键? 在 Redis 使用过程中,我们经常会遇到这样的场景: 需要对某一类数据进行清理,例如用户会话、缓存数据等,而这些数据通常以某种前缀命名(如 user:session:*、cache:data:*)。如…...
界面控件DevExpress WinForms v25.1新功能预览 - 聚焦用户体验升级
DevExpress WinForms拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜…...
卷积神经网络(CNN)基础
目录 一、应用场景 二、卷积神经网络的结构 1. 输入层(Input Layer) 2. 卷积层(Convolutional Layer) 3. 池化层(Pooling Layer) 最大池化(max_pooling)或平均池化(…...
Android Spotify-v9.0.36.443-arm64-Experimental Merged版
Android Spotify 链接:https://pan.xunlei.com/s/VONXTdIv9d4FnAiNMMliIAEJA1?pwdxt7q# Android Spotify-v9.0.36.443-arm64-Experimental Merged版 享受高达256kbps的AAC音频。...
