目录
蛋白质工程
蛋白质是一类具有精巧结构和功能多样的纳米机器。经过数以亿年的演化,自然孕育了巨大种类和数量的蛋白质。但是天然蛋白的某些属性(如亲和力、特异性、稳定性)不符合药物开发、工业生产等场景的需求。另一方面,蛋白空间十分巨大,可能包含者大量非天然存在的候选分子。
可以通过蛋白质工程等方法来对蛋白进行改造、甚至从头设计目前自然界并不存在的蛋白。
图1. 蛋白质工程发展历程(曲戈等,2019)
实验方法
实验方法受到规模和成本的限制,只能以天然蛋白质为起点。
- 噬菌体展示:构建噬菌体展示文库,感染宿主细菌,使用目标分子筛选结合能力较强的噬菌体,然后鉴定蛋白序列。可以进行高通量筛选,能保持蛋白活性。在文库容量、表达类型方面存在限制。
- 定向进化:通过位点饱和突变、易错PCR及DNA重组等技术,产生随机突变体文库,表达并筛选特定性状提高的目标突变体。将这一过程重复数轮,通过连续积累有益突变,最终可成功获得性能改进或具有新功能的蛋白质。随机突变体文库的规模非常大,不利于筛选。
- 半理性设计:借助蛋白质保守位点及晶体结构分析,通过非随机的方式选取若干个氨基酸位点作为改造靶点,并结合有效密码子的理性选用,构建“小而精”的突变体文库。依赖已有知识,如保守序列、晶体结构、催化机制、通量筛选方法、前期实验数据等。
计算方法
通过计算方法,预测并评估数以千计的突变体在结构、自由能、底物结合能等方面的变化。基于计算结果,从中筛选可能符合改造要求的突变体并进行实验验证。再根据实验结果制定下一轮计算方案,循环往复直到获得符合需求的酶。大幅降低了实验工作量。
- 基于物理:通过对序列的生物物理相互作用建模来探索蛋白质空间。计算成本很高,通常会做出一些限制预测性能的假设,很容易陷入局部最小值。
- 基于Rosetta的Inside-out策略:设计酶活中心。
- FRESCO策略:提升酶热稳定性。
- 传统机器学习:依赖于人工提取的特征,可能会丢失隐藏在输入数据中的敏感特征。
- 特征选择: AAIndex, ProFET等
- 机器学习算法:随机森林、支持向量机、KNN等
- 深度学习
- 深度生成模型:在蛋白空间学习分布的模型。模型可以同时对序列和适合度建模,因此可以从特定任务的高适合度区域采样蛋白质。
- 扩散模型
- 图神经网络
- 大语言模型
- 深度生成模型:在蛋白空间学习分布的模型。模型可以同时对序列和适合度建模,因此可以从特定任务的高适合度区域采样蛋白质。
一个用于理解蛋白质设计的框架。
①该框架强调了蛋白质设计的五个重要方面:序列,三维结构,构象,功能和理化性质,功能调节。
②该框架强调的主要差距包括:无法仅根据序列或结构生成构象图谱,设计发生构象变化的蛋白质的能力有限,以及无法纳入结构调节。解决这些复杂问题能为创造对小分子配体有反应的蛋白质或产生新的酶机制铺平道路。
用于蛋白设计的ML基础
数据
- 序列:数以亿计的公开序列编码了进化约束,涵盖了蛋白质家族的多样性,减少了实验生成数据的需要。进化序列模型可以优化进化过程中的功能。
- 结构:数以千计的公开结构提供了支撑蛋白质折叠和功能的生化相互作用的三维细节。序列和结构模型可以优化折叠、活性位点和结合复合物,但通常需要关键残基和相互作用的专业知识。
- 功能标签:实验室生成的功能标签可探索新的结合靶点、反应和生化条件。适用的数据集往往是稀疏的定制数据集,但生成更大、更通用的库的能力正在不断提高。序列和标签模型可在新条件下优化新功能或现有功能。
模型
选择特定模型的考虑因素主要是设计目标和支持该目标的可用数据。另一个考虑因素是如何在实践中有效使用模型。生成模型提供了一种方法来采样与训练数据相似的新蛋白质,关键是要有一个可靠的采样过程,同时还要有一个强大的实验流程来测量生成对象的实际属性。对采样过程的额外控制(如分类标签、酶分类)有助于提高每个样本的有用性。序列-标签架构提供了多种方法以优先选择突变子集进行后续实验验证。例如模型同时输出预测值和相应的不确定性(如高斯过程、贝叶斯神经网络),则可以在批量贝叶斯优化框架下构建迭代设计方法。如果将蛋白质表征映射到相关属性的函数是可微分的,则可以使用梯度上升法。最后,只要有足够的标签可供训练,有监督生成模型就能比无监督生成模型提供更精细的采样过程控制。
用于蛋白设计的机器学习模型分类。x:氨基酸序列;t:分类组或基因本体注释;z:结构;
纯序列模型旨在隐含地捕捉训练集中蛋白质的生化约束。①基于比对的模型是蛋白家族特异的,这类模型最初侧重于独立于其它残基的特定位置预测,随后的模型则考虑残基对,最近的模型则是全序列的生成模型。②基于某些氨基酸限制或模式可能会在不同蛋白质家族中通用的直觉,家族无关的蛋白质语言模型应运而生,它可以用单一模型覆盖所有蛋白质。受NLP学习范式(如自回归建模、遮蔽语言建模或seq2seq架构)的启发,导致了此类模型的多样性。如果不依赖同源性,家族无关的模型就无法与最好的家族特异模型的适合度预测能力相媲美。③这一观察结果随后催生了许多混合模型,试图将每种方法的相对优势结合起来。④最近提出的单序列或 MSA输入的扩散模型被认为是从头生成质序列的一个很有前途的方法。
条件序列模型目标是根据给定的条件(如功能标签、结构特征、结合位点等)生成或优化蛋白质序列。通常结合了深度学习技术(如语言模型、图神经网络等)和蛋白质设计的生化知识。模型核心在于如何将条件信息融入到序列生成过程中,常见的实现方式见下表。
实现方式 | 原理 | 应用 | 特点 |
---|---|---|---|
条件标签 | 将标签作为额外的输入,与序列一起输入到模型中 | ProGEN:酶数据库分类代码 | 简单直接 |
MCMC | 迭代突变序列,根据能量函数(通常包含功能约束)接受或拒绝突变 | Verkuil et al | 能处理复杂的能量函数和约束条件;计算成本较高,易陷入局部最小值 |
自然语言条件 | 通过NLP技术将描述转化为条件信息 | Chroma和ProteinDT支持自然语言作为条件输入 | 用户友好 |
序列-标签模型当有足够多的目标属性标签时,可以训练判别监督模型,学习给定输入序列 x 的功能标签 y 的分布 P(y|x)。功能标签通常是通过大规模平行测序在实验室中收集的测量数据,这些数据来源于定向进化、突变文库、自然来源(如抗体库、嵌合文库)或补充天然序列数据的部分测量。序列表示既可以是简单的独热编码、理化特性和其它手工特征,也可以是从基于序列模型中提取的嵌入,从而产生半监督架构。为避免过拟合,训练的回归器通常是轻量级的,如岭回归、高斯过程、浅层CNN或密集网络。判别模型为预测潜在设计的表型值和排序提供了一种有效方法。然而,这些候选突变的质量取决于外部程序的质量,而这些外部程序是用来制作优先评估突变体的初始列表的。相反,生成模型(如条件VAEs、引导扩散、回归转换器、ProteinNPT)可以学习序列 x 和功能标签 y 的联合概率 P(x,y) 或条件概率 P(x|y) 的近似值。它们可以根据所需的表型值生成新序列,从而实现更有效的端到端程序。最后,虽然大多数监督模型都依赖于相关蛋白质的一级结构表示,但有些架构是基于其三维结构,因此更适合称为结构-标签模型。
基于结构的模型主要有四类。①结构预测模型旨在根据一级结构 x 预测三级结构 z。②结构生成模型基于GAN、VAE或扩散模型,通过训练直接学习概率 P(z)。③逆折叠模型则是以三维结构 z 为条件,学习蛋白质序列 x 的概率 P(x|z),其中结构通常由GNN编码。④整体设计方法(如hallucination、inpainting或ProteinGenerator)学习序列 x 和结构 z 的联合概率 P(x,z)。序列-结构模型包括逆折叠以及序列和结构联合模型。为了最终产生新的序列设计,结构生成模型必须与这些序列-结构模型配合。基于概率链规则P(x,z) = P(x|z)P(z),组合结构本身可以被视为序列和结构的联合模型。
设计目标
目标 | 起点 | 举例 | 方法 |
---|---|---|---|
增强已有功能 | 已有蛋白 | 增强已有功能或属性,减少不良互作; | 基于序列;序列-结构;序列-标签; |
新功能 | 已有蛋白 | 序列-标签;基于序列;序列-结构; | |
de novo | 靶结构/功能约束 | 在现有fold上生成新序列; | 序列-结构;基于序列; |
蛋白结构预测
蛋白结构预测算法(sequence-to-structure)有利于蛋白质从头设计,一是提供了对预测设计进行评分的指标,如pLDDT等。二是提供了大量结构训练数据。
模型 | 类型 | 备注 |
---|---|---|
AlphaFold2(2020) | diffusion | |
AlphaFold3(2024) | diffusion | |
RoseTTAFold | ||
RoseTTAFoldAA(2024) | 能预测包含蛋白质、核酸、小分子和金属在内的复杂生物分子的组装。 | |
ESMFold |
这些方法目前在蛋白质设计中应用局限包括对训练集中没有的新拓扑结构的适应性,以及预测与生理相关的蛋白状态或成分。
基于序列
蛋白序列生成(properties-to-sequence)主要使用大语言模型(LLM)。LLM从可信蛋白质空间取样的方法可以看作是学习蛋白质语言的语法。训练目标是在给定蛋白质序列某些部分的上下文时,预测被遮蔽的氨基酸。
LLM还可以利用条件标签或MCMC搜索生成具有特定功能的蛋白质序列。
LLM在蛋白质工程中也发挥着主导作用,其目标是优化已知蛋白的某些特性。LLM是建立蛋白质特性预测模型(sequence-to-properities)的绝佳起点。语言模型的中间状态(隐变量或学习表征)可用作各种ML模型的输入,这些表征是预测众多蛋白质特性的SOTA工具的核心。反过来,这些模型可用于复杂的流程以优化起始蛋白质的特性。
当前局限性包括尚未生成过具有新催化机制或之前通过合理设计具有全新功能的新结构。MCMC搜索需要大量迭代,且容易陷入局部最小值,因此非常耗时。
为了克服其中的一些局限性,开发了另一种基于序列的设计方法,即在基于文本的任务中利用扩散模型。
模型 | 类型 | 备注 |
---|---|---|
Verkuil et al.(2022) | LLM | 整合了PLM、序列到结构和固定骨架设计(条件分布;无约束生成) |
ProGEN(2023) | LLM | 酶数据库分类代码作为tokens被附加到蛋白质序列的开头 |
ProtGPT2(2022) | LLM | |
ZymCTRL(2022) | LLM | |
EvoDiff(2023) | diffusion | 在UniProt序列空间上进行训练,生成蛋白的内在无序区域 |
Protein Generator(2023) | diffusion | 基于序列的扩散模型,但使用了结构信息 |
DiffSDS(2023) | diffusion | 基于序列的扩散模型,但使用了结构信息 |
基于结构
基于结构的设计方法侧重于生成新蛋白质结构(properities-to-structure),包括生成式方法扩散模型,以及非生成式方法幻觉(hallucination)和强化学习。
扩散模型
扩散模型(详见S2)最初的成功是生成骨架坐标,从而产生不同的单体和蛋白质组装。这些模型只生成骨架,需要最后的结构到序列步骤,将结构模型映射到蛋白质序列。
扩散模型也可以像 LLMs 一样,在生成过程中偏向于纳入目标属性和功能(见S2-D)。这种调节过程能产生更快、更有效的结果,并能进行更多的语义调节。
模型 | 类型 | 备注 |
---|---|---|
Chroma | diffusion | 含有与天然蛋白质相似的蛋白质结构片段分布;能用自然语言注释调节; |
RFDiffusion | diffusion | 利用RoseTTAFold 预训练权重和直接预测蛋白质结构的能力 |
ProteinDT | diffusion | 能用自然语言注释调节; |
Protpardelle | diffusion | 全原子扩散模型,同时设计序列和结构。 |
RFDiffusionAA | diffusion | 在扩散每一步将蛋白质中有限的残基原子化为原子成分。 |
扩散模型的功能生成主要集中在binder和支架设计上,而没有广泛涉足具有新型酶活性的蛋白质设计。酶设计的一个关键因素是找到侧链的正确排列,以稳定底物的过渡状态。第一代扩散模型需要通过structure-to-sequence和 rotamer-packing模块依次生成骨架、序列和旋转异构体,这意味着配体-侧链和骨架-侧链之间的相互作用在很大程度上被忽略了。新一代扩散模型,尤其包含侧链的模型,在微调侧链位置以提高过渡态稳定性方面大有可为。
逆折叠
逆折叠(structure-to-sequence)是基于结构设计的一项重要技术,可从结构生成序列。
模型 | 类型 | 备注 |
---|---|---|
ProteinMPNN | GNN | SE(3)表征 |
ESM-IF | GNN | |
PiFold | GNN | |
MIF-ST | GNN | |
Knowledge-Design | GNN |
快速、准确的蛋白质结构预测技术的出现使幻觉(hallucination)设计方法成为可能,在该方法中,结构预测器通过搜索算法(如MCMC)来寻找折叠成所需形状的序列。虽然该技术还在不断改进,但它不能生成蛋白质空间的概率分布,计算速度较慢,而且仅限于围绕明确定义的位点设计支架。
最初的方法依赖于基于物理的工具(如 Rosetta)来生成序列。最近基于图的深度学习技术被证明非常擅长此类任务。GNN将结构中的每个骨架原子视为图上的一个节点,并在指定距离内与所有其他原子建立连接,形成图的边。每个节点和边都可提供附加信息:节点可以用氨基酸值或三维坐标来标注;边可以用向量来标注,向量描述连接节点之间的距离(distance)、方向(direction)和方位(orientation)。这三个特征对蛋白质的旋转和平移具有不变性,因此被许多模型借鉴(S3)。在该架构中,相邻原子之间可以通过两种方式传递信息以学习局部环境:①信息传递,对节点的所有边上下文特征进行操作;②注意力机制。GNN的成功体现在它们被用来重新设计以前失败的结构,从而提高了实验成功率。
序列与结构协同设计
越来越多的模型打破了完全基于序列和结构的设计方法之间的鸿沟。
模型 | 类型 | 备注 |
---|---|---|
RefineGNN | 利用结构-序列模型,自回归地联合设计抗体结合基序的序列和结构。从初始结构开始,逐一预测结合基团残基,同时在每一步迭代预测更新的全局抗体结构。 | |
ProtSeed | 将描述目标属性的向量作为输入,使用基于三角函数的注意力机制编码这些向量,然后使用与 AF2 类似的具有交叉条件(代表序列、骨架位置和方向)的三轨神经网络,以一次性方式预测序列和结构。 | |
AbODE | GNN | 使用 GNN 输入特定的抗原结构,然后使用微分方程系统直接模拟节点和边特征随时间的演变,而不是像扩散模型那样进行去噪,从而共同生成抗体结合图案序列和结构,以结合抗原。 |
Protein Generator | diffusion | 一种序列空间扩散模型,同时包含结构和序列信息 |
SaProt | LM | 使用FoldSeek的结构字母表创建的蛋白质语言模型 |
展望
- 更先进模型,如几何神经扩散过程,一致性模型PGFM++,流匹配;
- 模型组合,如LLM+diffusion;
- 融合新知识,如物理作用,生化知识,湿实验;
- 实验机器人;
附录
S1. LLM
语言模型架构和功能调节方法
A. LLM利用自监督学习生成蛋白质的学习表征,以捕捉各种氨基酸之间的关系。训练过程包括向模型提供蛋白质序列,要求它仅根据前一个氨基酸(自回归语言模型,如 GPT)、所有其他氨基酸(屏蔽语言模型,如 BERT)或独立的前一个和后一个氨基酸(双向语言模型)来预测序列中的屏蔽氨基酸。模型权重会根据预测结果进行更新。这一过程重复多次,使得在数据集上的负对数概率最小。
B. 生成序列属性控制策略包括:①高通量生成和过滤具有所需预测属性的序列;②加入属性标签(如图所示);③采用提示工程,如 RITA;④对特定族进行微调,如ProGEN;⑤采用MCMC搜索方法,即语言模型迭代地对初始序列提出突变建议,并根据编码所需属性和约束条件的能量函数接受或拒绝这些突变。经过多次迭代,序列向低能量演化,满足指定的设计标准。
S2. 扩散模型
扩散模型是一类受热力学启发的生成模型,源于 Sohl-Dickstein 于 2015 年提出的最初概念。2019年,Song提出了一个类似概念(Score Matching with Langevin Dynamics)。2020 年,Ho 等人在 Sohl-Dickstein 的基础上,将其用于生成高质量图像,并称之为Denoising Diffusion Probabilistic Models。随后,Song 于 2021 年将这些模型归纳为基于分数的生成模型。2022 年,Karras 等人为扩散模型提供了一个模块化框架,Ho 等人引入了 progressive distillation 作为一种新的训练技术。2023 年,Song 通过引入consistency models进一步推动了该领域的发展。
Xu 等人在 2022 年提出了一种受静电学启发的生成模型,称为Poisson Flow Generative Models。2023 年,这些作者将之扩展到更高的维度,并集成了一个增强维度参数,出人意料地将这些模型和扩散模型统一到一个模型族中。
扩散模型的加噪过程可以视为多个数据增强步骤,这与传统深度学习方法不同,后者通常只进行一些变换,如平移和旋转。
扩散模型大致可分为两类,一类是在去噪过程中加入随机因素的模型(随机微分方程,SDE),另一类是不加入随机因素的模型,它们依赖于将噪声反向转化为常微分方程(PF ODE)。但所有这些 ODE 都有可能通过添加噪声引入随机因素。
扩散模型结构和功能调节方法
A. 应用于一维概率分布函数的扩散模型的噪声引入过程。先从概率分布中抽样,然后模拟热力学扩散过程逐步加入高斯噪声。由此产生的分布与高斯噪声非常接近。
B. 每一时间步都会生成新的噪声数据分布。当变量t
接近T
时,其分布逐渐向高斯分布对齐。
C. 训练神经网络模型对数据去噪,学会预测噪声过程的反向。
训练从未知x0分布抽样开始。创建该样本的前向噪声轨迹,然后从均匀分布[0,T]中随机抽取一个时间点t。利用贝叶斯法则,从x0得出xt。然后训练一个神经网络(得分函数),可以从xt直接获取x0,或者预测去噪轨迹在时间t处的梯度。然后将损失函数应用于预测x0与真实x0之间的差值,或xt预测梯度与xt真实梯度之间的差值。这种训练在多个时间步、噪声引入轨迹和样本中反复进行。在 DDPM 中使用了不同的损失函数,即在给定 x0 的不同时间步中,真实噪声与预测噪声之间的差值,该函数来自真实和预测 xt 分布的比较。
D. 条件生成:可以利用贝叶斯推理引导模型生成特定属性/设计目标的数据。
①基于分类器的引导:对噪声结构训练一个分类器p_t(y|x)来预测样本在时间t是否具有某种属性y。然后通过将结构 x0 在 t = 0 时具有所需属性的对数似然梯度与扩散模型的梯度相加,就可以调整生成生成轨迹以提高满足属性y的概率。
②无分类器引导:模型直接在有条件和无条件数据的混合上训练,避免了单独训练分类器进行调节的复杂性。在生成阶段,对调节强度参数进行调整,以控制所需属性对生成样本的影响。这种方法不仅简化了模型结构,还能灵活控制生成样本中属性的表达程度。
E. 随机去噪SDEs,随机性会导致相同的起始噪声产生不同的结构。
模型可以预测梯度,或者预测 x0 后根据噪声步数计算梯度。然后,按照预测的梯度方向移动数据。此外,可以在该点注入更多噪声(ε),图中显示的是从 b 点到 c 点的运动。
另一种方法是在预测 x0 之前添加噪声,然后通过加大去噪步来补偿添加的噪声。
(a) 表示 x_0 的预测值。(b) 表示从 x_t 移动到噪声较小的数据分布。(c) 表示注入噪声后更新的 x_t-1。
F. 多个去噪任务的求解轨迹。
G. 确定性去噪 ODE,可以更有效、更精确地计算似然,从而提高生成效率。
H. 通过将噪声步设为与时间相等,并且不对数据进行缩放,从而得到更线性的求解轨迹。
I. 一致性模型/consistency model:一种从噪声轨迹上的任意点直接生成去噪样本的方法。
S3. 蛋白编码/表征
- 序列
- ont-hot:将每个氨基酸位置初始化为长度为 20 个单位的向量,每个单位的值为 1 或 0,每个数字对应一个特定的氨基酸。
- …
- 结构
- SE(3): Ingraham et al., (
RFDiffusion
,FrameDiff
) - SO(3)?: Frenet-Serret (
Genie
),
- SE(3): Ingraham et al., (
- contact maps: (
ProteinSGM
) - angles: (
FoldingDiff
)会受到杠杆效应的影响
terminology | representation | comment |
---|---|---|
E(d) | translations, rotations, reflections, | d-维欧几里空间的所有可能的变换 |
O(d) | rotations, reflections | O(d) <= E(d). |
SO(d) | rotations | SO(d) <= O(d) |
SE(d) | translations, rotations | SE(d) <= E(d) |
T(d) | translations | T(d) <= SE(d) |
参考
Winnifrith, Adam, Carlos Outeiral, and Brian L. Hie. “Generative artificial intelligence for de novo protein design.” Current Opinion in Structural Biology 86 (2024): 102794.
Notin, Pascal, et al. “Machine learning for functional protein design.” Nature biotechnology 42.2 (2024): 216-228.
曲戈, et al. “蛋白质工程: 从定向进化到计算设计.” 生物工程学报 35.10 (2019): 1843-1856.