Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

8.2 蛋白质与分子结构预测

蛋白质是生命的机器,而它的功能几乎完全由三维结构决定。一条氨基酸序列要经历折叠才成为能工作的形状;一旦折叠出错,后果可能是功能丧失或聚集——这就是一类疾病(如多种神经退行性疾病)与蛋白质错误折叠的关联所在。于是「序列 → 结构」成了一个巨大的映射学习问题,而且它的数据条件恰好是上一节描述的那种:序列极多、结构极少、物理约束(几何与化学)明明白白摆在旁边。

这条线索让蛋白质结构预测成了 AI for Science 里最成熟的案例:它把「结构化数据 + 几何先验 + 端到端训练」这条路线走通了,并且它的评测口径(RMSD / GDT-TS / lDDT)几十年来在结构生物学界已经相当明确,这让「模型到底有多准」这件事可以被严肃讨论。

这一节要把三件事讲清楚。第一,结构预测的信息从哪来——答案是进化:同源序列的协同突变(共进化)里藏着残基间的接触信息,这是一个几十年积累的因果共识,而不是某次训练的副产品。第二,端到端方法的关键部件是什么——MSA 与配对表示、Evoformer 式的迭代更新、等变结构模块、FAPE 损失。第三,等变与不变这两个概念如何判断、如何换样本效率,以及评测口径与局限在哪里——为什么「静态单点结构的高精度」不等于「动态过程与复合物的理解」。

问题与信息源

8.2.1 任务的形状与数据条件

定义 8.2.1 · 结构预测任务

给定一条(或若干条)氨基酸序列 s=s1s2⋯sNs=s_1s_2\cdots s_N(si∈s_i\in 20 种标准残基 + 少量特殊残基),结构预测要求给出每个重原子的三维坐标 X={xi,a},i=1,…,N,a∈{N,Cα,C,O,侧链},\boldsymbol X=\{\boldsymbol x_{i,a}\},\qquad i=1,\dots,N,\quad a\in\{N,C_\alpha,C,O,\text{侧链}\}, 即从离散序列预测连续几何。它是一种典型的前向问题(定义 8.1.3 的第一类),输入输出维度差极大:序列是 NN 个离散符号,输出是 3×3\times(原子数)个实数的约束空间(键长键角近似固定,自由度远小于坐标数)。

数据条件(量级,用于建立方向感,具体数字需核实):

数据源 内容 量级 特点
序列数据库(如 UniProt 类) 氨基酸序列 数亿条量级 极多、无结构标签
结构数据库(如 PDB 类) 实验解析的原子坐标 十万条量级(含冗余与不同分辨率) 少、昂贵、有些是片段或不完整
高精度计算 分子动力学 / 量子化学给出的构象与能量 可自动生成 用于物理侧约束与验证

这张表就是 8.1 的「标签稀缺」在蛋白质上的具体形态:序列比结构多几个数量级,而结构标签的获取依赖实验。

为什么「序列决定结构」能让学习成为可能

若序列与结构之间没有稳定关系,学习就无从谈起。事实上存在一条被广泛接受的经验规律:序列在很大程度上决定折叠(同样的序列在相同条件下通常折叠成同样的结构)。这句话给了学习任务一个良定义的目标,但它不等价于「从序列能唯一算出结构」:

  • 同一个序列可能有多个构象(构象集合不是单点,还存在无序区、多态);蛋白质的构象会随配体、pH、温度、翻译后修饰改变;
  • 一部分蛋白(如天然无序蛋白)根本没有单一稳定结构,却仍具功能。

所以「结构预测」严格来说更接近预测在给定条件下最可能的一组结构,而不是求解一个确定性函数。这一条会直接影响我们怎么读评测分数与置信度(8.2.5)。

8.2.2 共进化:MSA 里的接触信号

定义 8.2.2 · 多序列比对与共进化

把同一蛋白家族的大量同源序列(进化上相关的序列)按位置对齐,得到一个矩阵 X∈{1,…,q}M×N,X\in\{1,\dots,q\}^{M\times N}, 其中 MM 是序列条数(MSA 深度)、NN 是位点数(对齐后的列),qq 是符号数。这个矩阵称为多序列比对(multiple sequence alignment, MSA)。

共进化(coevolution)指:两个位点 i,ji,j 的残基在进化过程中协同变化——一条序列在 ii 处换成了某个残基,另一条在 jj 处也跟着换。常用统计量是互信息(mutual information, MI): MI(i,j)=∑a,bpij(a,b)log⁡pij(a,b)pi(a) pj(b),\mathrm{MI}(i,j)=\sum_{a,b}p_{ij}(a,b)\log\frac{p_{ij}(a,b)}{p_i(a)\,p_j(b)}, 其中 pi(a)p_i(a) 是位点 ii 出现符号 aa 的经验频率,pij(a,b)p_{ij}(a,b) 是联合频率。MI(i,j)=0\mathrm{MI}(i,j)=0 当且仅当两个位点在统计上独立。

接触(contact)指两个残基在三维结构中空间上相邻(常用判据是某两个重原子之间的距离小于给定阈值,如 8 A˚8\,\text{Å},具体阈值与原子选择随工作而异)。

为什么协同突变意味着空间相邻

把结构约束想成一组「必须满足的搭配」:某个位置上的残基体积大、带正电,它旁边就不能有一个体积更大或带正电的残基。若进化的过程中 ii 处发生了替换(比如换成体积更大的残基),而结构要保持稳定,那么对它的邻居 jj 的容忍范围就变了——于是 jj 也被推着变。两个位点一起变的统计信号由此产生。

关键在于这条链是几何的:协同突变发生在空间上相互作用的位点之间,而相互作用随距离迅速衰减。因此共进化信号携带的是接触信息,它把「一维序列」与「三维结构」连了起来。这是过去几十年结构预测的核心信息源,也是端到端方法能成立的前提——不是网络凭空想出了几何,而是几何的信息早就写在序列的统计里。

定理 8.2.1 · 相关不等于直接接触:互信息的传递效应

设位点间的关系是链式的(ii 与 kk 相互作用、kk 与 jj 相互作用,而 ii 与 jj 在空间上并不相邻)。则一般地 MI(i,j)>0\mathrm{MI}(i,j)\gt0:互信息不能区分「直接作用」与「经由第三个位点传递的相关」。因此直接把高 MI 的位点对当作接触会引入系统性假阳性。

证明(构造一个完全相关的例子)

取最简单的确定性链:令位点 kk 的取值完全由 ii 决定(Xk=XiX_k=X_i,即每一位点上两条序列一一对应),令 jj 完全由 kk 决定(Xj=XkX_j=X_k)。于是 Xj=XiX_j=X_i,三者完全相关。

设 XiX_i 在 MSA 上取两个符号的概率各为 1/21/2。由确定性关系,Xi,XjX_i,X_j 同分布且完全相关,故 MI(i,j)=H(Xi)+H(Xj)−H(Xi,Xj)=1+1−1=1 bit>0.\mathrm{MI}(i,j)=H(X_i)+H(X_j)-H(X_i,X_j)=1+1-1=1\ \text{bit}\gt0 . 但在这个构造里 ii 与 jj 之间没有任何直接相互作用——它们的相关性完全由 kk 中介。因此「MI>0\mathrm{MI}\gt0」不足以推出「i,ji,j 直接接触」,任何仅基于两两位点统计量的打分都会把 ii–jj 与 ii–kk、kk–jj 一起选出来。■\blacksquare

注:证明只用了「确定性函数关系」这一极端情形;在真实数据里相关是噪声的、部分的,但传递效应同样存在,且会随链长与位点数目增加而累积成大量假阳性。这正是直接耦合分析(direct coupling analysis, DCA)一类方法要解决的问题:它们不再只统计两两相关,而是拟合一个把「直接」与「间接」分开的全局模型(如逆伊辛模型,把耦合参数与边际相关区分开)。

∎
例 8.2.1 · 手算一个小 MSA 的互信息

有下列 4 条序列、3 个位点的 MSA(只取两种符号 {0,1}\{0,1\}):

序列 位点 1 位点 2 位点 3
1 0 0 0
2 0 0 0
3 1 1 1
4 1 1 0

请计算 MI(1,2)\mathrm{MI}(1,2)、MI(2,3)\mathrm{MI}(2,3)、MI(1,3)\mathrm{MI}(1,3),并说明这个例子对「用 MI 找接触」意味着什么。

解

① 边缘分布。 位点 1 与位点 2 都是 2 个 0、2 个 1,故 H(X1)=H(X2)=1H(X_1)=H(X_2)=1 bit。位点 3 是 3 个 0、1 个 1: H(X3)=−34log⁡234−14log⁡214≈0.811 bit.H(X_3)=-\tfrac34\log_2\tfrac34-\tfrac14\log_2\tfrac14\approx0.811\ \text{bit}.

② 联合熵与互信息。

  • (1,2)(1,2):联合分布为 (0,0):24(0,0):\tfrac24、(1,1):24(1,1):\tfrac24,H(X1,X2)=1H(X_1,X_2)=1 bit(完全相关),故 MI(1,2)=1+1−1=1.000 bit.\mathrm{MI}(1,2)=1+1-1=1.000\ \text{bit}.
  • (2,3)(2,3):(0,0):24(0,0):\tfrac24、(1,1):14(1,1):\tfrac14、(1,0):14(1,0):\tfrac14, H(X2,X3)=−(24log⁡224+14log⁡214+14log⁡214)=0.5+0.5+0.5=1.5 bit,H(X_2,X_3)=-\Bigl(\tfrac24\log_2\tfrac24+\tfrac14\log_2\tfrac14+\tfrac14\log_2\tfrac14\Bigr)=0.5+0.5+0.5=1.5\ \text{bit}, MI(2,3)=1+0.811−1.5=0.311 bit.\mathrm{MI}(2,3)=1+0.811-1.5=0.311\ \text{bit}.
  • (1,3)(1,3):因为 X1=X2X_1=X_2,联合分布与 (2,3)(2,3) 相同,故 MI(1,3)=0.311 bit.\mathrm{MI}(1,3)=0.311\ \text{bit}.

③ 读数。 排序是 MI(1,2)>MI(2,3)=MI(1,3)\mathrm{MI}(1,2)\gt\mathrm{MI}(2,3)=\mathrm{MI}(1,3)。在这个构造里,位点 1–2 的相关性最强,而位点 3 只是「跟着 2 变」的旁支:(1,3)(1,3) 之间的非零互信息完全来自 2 的中介。若只看 MI,模型会把 (1,3)(1,3) 也当成一对候选接触——这就是 定理 8.2.1 说的传递效应。

④ 对方法的意义。 真实 MSA 的位点数以百计、序列数上万,两两位点对的数量是 O(N2)O(N^2),假阳性会随 NN 迅速堆积。因此在实践中:① 用全局模型(逆伊辛 / 伪似然)替代逐对统计量,把耦合参数与边际分离;② 用结构监督(如已知结构)训练打分函数,让网络学着从共进化模式里抽出几何;③ 端到端方法干脆不再显式输出接触图,而是让注意力直接消费共进化信息并输出坐标(这正是 8.2.3 的路线)。■\blacksquare

∎

关键部件与几何约束

8.2.3 关键部件:从 MSA 到坐标

端到端结构预测的四个部件(AlphaFold2 式的公开思路)

公开的端到端方法可以把思路概括成一条「把共进化信息直接喂进注意力网络」的流水线。四个部件与各自的作用:

部件 输入 → 输出 作用 为什么必须有
① MSA 表示与配对表示 序列(+ MSA + 模板)→ 两个张量 一个张量按「位点」组织、一个按「位点对」组织 前者携带进化与序列信息,后者携带几何关系的载体(距离 / 取向的隐式表示)
② Evoformer 式迭代更新 两个张量互相更新 在位点对之间传播信息、用第三方位点做「三角一致性」校验 共进化是三方以上的关系(定理 8.2.1);只做两两比较无法去伪
③ 等变结构模块 表示 → 每个残基的刚体框架与原子坐标 把抽象表示翻译成几何(骨架框架 + 侧链扭转角) 几何量必须是旋转等变的,否则输出会随坐标系的选取而变
④ 损失:FAPE(+ 辅助项) 预测坐标与真值坐标 度量几何差异;辅助项(距离分布、掩码 MSA 预测等)稳定训练 直接对全局坐标回归会「奖励」错误的对齐方式(见 8.2.3 的 FAPE 讨论)

一句话:① 提供信息、② 反复消除虚假关系、③ 输出几何、④ 定义「几何差」如何度量。四个部件缺一不可,而它们各自的常见失效也正好对应:MSA 太浅 → 信息不足;迭代不足 → 假接触未被消除;结构模块不等变 → 需要更多数据;损失不对齐 → 局部错误被平均掉。

定义 8.2.3 · 配对表示与三方关系

配对表示(pair representation)是一个张量 Z∈RN×N×czZ\in\mathbb R^{N\times N\times c_z},第 (i,j)(i,j) 个切片编码「位点 ii 与位点 jj 之间关系」的隐向量。它的更新需要用到第三个位点 kk:

三角乘法式更新(抽象写法):对固定的 (i,j)(i,j),把「ii 与 kk 的关系」与「kk 与 jj 的关系」合起来,累积到 (i,j)(i,j) 上: Zij←Zij+∑k≠i,jϕ(Zik,Zkj),Z_{ij}\leftarrow Z_{ij}+\sum_{k\ne i,j}\phi\bigl(Z_{ik},Z_{kj}\bigr), 其中 ϕ\phi 是可学的小网络。三角自注意力是同一思想的注意力版本:用 (i,k)(i,k) 与 (j,k)(j,k) 的关系作为 key/value 去更新 (i,j)(i,j)。

几何上的合理性很好理解:在三维空间中,ii 与 jj 之间的距离受制于「ii–kk–jj 折线」的三角不等式;因此用第三方位点作为「见证人」可以排除几何上不自洽的关系(这正是把三角不等式写进网络的方式)。

「配对表示 + 三角更新」为什么是这套方法的核心

可以这样对比两条思路:

  • 只做两两比较(如阈值化的接触图):把每个位点对独立打分,然后把高分对拼成结构。这条路的信息论上限就受 定理 8.2.1 的假阳性压制;而且「拼」这一步本身是一个离散组合优化问题,误差会累积。
  • 维护一个全局的位点对表示并迭代修正:所有位点对共享一个表示张量,任何一对的更新都要经过其他位点「同意」(三角一致性)。这相当于在表示层面持续做全局一致性检验,把「拼装」这一步内化到网络里。

因此端到端方法的进步不是「更大的网络」,而是把几何一致性(三角约束)与全局推理(对所有位点对共享表示)变成了网络结构的一部分——这是 8.1 讲的「把先验写进结构」在结构生物学上的具体形态。

例 8.2.2 · 形状与显存推演

设一条链的残基数 N=256N=256,MSA 深度 s=512s=512,MSA 表示通道数 cm=256c_m=256,配对表示通道数 cz=128c_z=128。所有激活以 bf16(2 字节)保存。

  1. 写出 MSA 表示与配对表示的形状与元素数;
  2. 估算两者各占多少显存;
  3. 若显式保存 MSA 行注意力的注意力矩阵(形状 s×ss\times s,对每个位点),显存是多少?说明瓶颈随 NN 如何增长。
解

① 形状与元素数。

量 形状 元素数
MSA 表示 MM N×s×cm=256×512×256N\times s\times c_m=256\times512\times256 33,554,432≈3.36×10733{,}554{,}432\approx3.36\times10^{7}
配对表示 ZZ N×N×cz=256×256×128N\times N\times c_z=256\times256\times128 8,388,608≈8.39×1068{,}388{,}608\approx8.39\times10^{6}
MSA 行注意力矩阵(位点 ii 内,位点之间) N×N×sN\times N\times s 33,554,432≈3.36×10733{,}554{,}432\approx3.36\times10^{7}
MSA 列注意力矩阵(跨位点,序列维之间) N×s×sN\times s\times s 6.71×1076.71\times10^{7}(256×5122=67,108,864256\times512^2=67{,}108{,}864)

② 显存(bf16,2 字节)。

  • MSA 表示:3.36×107×2 B≈67 MB3.36\times10^{7}\times2\ \text{B}\approx67\ \text{MB};
  • 配对表示:8.39×106×2 B≈16.8 MB8.39\times10^{6}\times2\ \text{B}\approx16.8\ \text{MB};
  • 若用单精度(4 字节)则各翻倍:约 134 MB134\ \text{MB} 与 34 MB34\ \text{MB}。

③ 注意力的显存与增长趋势。 显式保存一层的 MSA 列注意力矩阵(N×s×sN\times s\times s)就是 6.71×1076.71\times10^{7} 个元素 ≈134 MB\approx134\ \text{MB}(bf16)——单层就已超过 MSA 表示本身。当 NN 与 ss 同步增大时:

  • MSA 表示按 N⋅sN\cdot s 增长;配对表示与行注意力按 N2N^2 增长;列注意力按 N⋅s2N\cdot s^2 增长。

所以长链(大 NN)的主要开销是 N2N^2 项,深 MSA(大 ss)的主要开销是 s2s^2 项。这也解释了工程上常见的两类做法:对长链用分块 / 裁剪的注意力实现(避免物化 N2N^2 与 s2s^2 矩阵),以及对 MSA 深度做采样(只取若干条代表性序列,牺牲一点信息换可行显存)。

尺度感:把 NN 从 256256 提到 10241024(4 倍),配对表示元素数变为 10242×128≈1.34×1081024^2\times128\approx1.34\times10^{8}(约 268 MB268\ \text{MB} bf16),行注意力面则到 10242×512≈5.4×1081024^2\times512\approx5.4\times10^{8}(约 1.07 GB1.07\ \text{GB} bf16)——这就是结构预测模型对显存与并行(第 9 讲)有强需求的直接原因。■\blacksquare

∎
定义 8.2.4 · FAPE:在局部坐标系里度量几何误差

FAPE(frame-aligned point error)在每个残基的局部坐标系里度量预测与真值的差异。形式上:给每个残基 ii 定义一个由骨架原子(N,Cα,CN,C_\alpha,C 等)确定的刚体框架 TiT_i(预测)与 Ti⋆T_i^\star(真值),把点集变换到框架坐标系中再比较: LFAPE=1Nframes∑i=1N∑j=1N∥Ti−1(xj)−Ti⋆ −1(xj⋆)∥(按论文做法可带截断与逐帧对齐).\mathcal L_{\text{FAPE}}=\frac{1}{N_{\text{frames}}}\sum_{i=1}^{N}\sum_{j=1}^{N}\bigl\lVert T_i^{-1}\bigl(\boldsymbol x_j\bigr)-T_i^{\star\,-1}\bigl(\boldsymbol x_j^{\star}\bigr)\bigr\rVert \quad(\text{按论文做法可带截断与逐帧对齐}).

要点:误差是在「以某个残基为原点、以它的骨架取向为轴」的坐标系里算的;因此它衡量的是相对几何(局部构型、键角、手性、相对取向),而不是「整块结构放在坐标原点附近有多像」。(具体对齐与截断细节按原始论文,本教程不复述公式的全部工程细节。)

为什么不能直接对全局坐标做 MSE

问题:同一条链可以整体旋转、平移而不改变任何物理性质。若损失写成 Lglobal=∑j∥xj−xj⋆∥2,\mathcal L_{\text{global}}=\sum_j\bigl\lVert \boldsymbol x_j-\boldsymbol x_j^{\star}\bigr\rVert^2, 那么同一个结构(只是放在不同坐标系里)会得到完全不同的损失值——模型会被鼓励去「猜」训练数据使用的坐标系,而不是猜几何。若改为「先做一次全局叠合再算 MSE」(即 RMSD 式损失),能消除刚体整体位姿的影响,但仍有一个更深的毛病:

全局叠合会把局部错误平均掉。 假设预测在某个结构域内部错得很厉害(一个螺旋被扭了 30∘30^\circ),但整体叠合后大部分残基仍然接近真值,RMSD 型损失只会略微上升。对局部几何正确性的监督因此很弱。

FAPE 的做法:以每个残基的局部框架为参照系分别度量误差,再求和。于是每个残基周围的邻域几何都被单独检查一遍——局部错误难以被全局平均抵消;同时由于框架来自预测结构本身(而不是对每个残基独立做最优对齐),它又保留了全局一致性的要求。

一句话对比:

损失 对整体位姿 对局部几何 典型后果
原始坐标 MSE 敏感(被惩罚) 弱 模型学坐标系统,浪费容量
全局叠合后 RMSD 不敏感(已消去) 弱(会被平均) 局部错误被掩盖
FAPE(逐框架度量) 不敏感 强 局部与全局同时受约束

这也解释了为什么「等变网络 + FAPE」这套组合在结构预测里稳定:等变性解决了整体位姿的表示问题,FAPE 解决了局部几何的度量问题。■\blacksquare

∎
等变与不变:一句话判断法

对任何几何量的预测,先问一句:「如果我整体旋转 / 平移这个系统,这个量的正确答案会怎样变?」

  • 答案不变(标量)→ 用不变的建模方式:f(Rx+t)=f(x)f(R\boldsymbol x+\boldsymbol t)=f(\boldsymbol x)。例:能量、自由能、结合亲和力、距离、二面角、距离分布。
  • 答案跟着转(向量 / 张量)→ 用等变的建模方式:f(Rx+t)=Rf(x)f(R\boldsymbol x+\boldsymbol t)=R f(\boldsymbol x)。例:力、偶极矩、原子坐标、取向、速度。

样本效率的数字直觉:对三维旋转群 SO(3)\mathrm{SO}(3),每个构象都有连续无穷多个等价朝向。不做等变处理时,这些等价样本会被当作不同样本:模型被迫用容量去「记住」朝向与输出之间的对应,而这对应关系是纯几何的、本该免费。写成等变结构后,一份数据等价于该构象在所有朝向上的版本——这就是为什么在数据昂贵的科学任务上,等变性往往比堆参数更划算。

例 8.2.3 · 判断每类输出该用不变还是等变

对下列六个量,分别判断该用不变还是等变的建模方式,并说明理由:① 分子总能量;② 每个原子受到的力;③ 每个原子的三维坐标;④ 两个原子之间的距离;⑤ 分子偶极矩向量;⑥ 二面角。

解
量 结论 依据
① 总能量 不变 标量;整体旋转平移不改变能量(旋转正交、平移相互抵消)
② 每个原子的力 等变 向量;整体旋转时 Fi↦RFi\boldsymbol F_i\mapsto R\boldsymbol F_i,整体平移不变
③ 原子坐标 等变 向量;xi↦Rxi+t\boldsymbol x_i\mapsto R\boldsymbol x_i+\boldsymbol t,输出应随输入同步变换
④ 原子间距离 不变 ∥(xi+变换)−(xj+变换)∥=∥xi−xj∥\lVert (\boldsymbol x_i+\text{变换})-(\boldsymbol x_j+\text{变换})\rVert=\lVert\boldsymbol x_i-\boldsymbol x_j\rVert
⑤ 偶极矩向量 等变 向量;整体旋转时跟着转(需以相对位置定义才在平移下不变)
⑥ 二面角 不变 它由四点相对几何决定,只依赖夹角与符号,不含绝对朝向

补充判断:结构预测的输出是坐标,因此「等变」是自然的选择(8.2.3 的结构模块);而「这条序列会不会形成跨膜螺旋」这类二分类输出的答案是标量,用不变性即可。如果一个模型对同一个结构的不同朝向给出不同预测,那不是精度问题,是建模方式的缺陷。 ■\blacksquare

进一步的工程含义:若你的任务同时要输出能量与力,正确做法是只让网络预测能量(不变),力用自动微分从能量对坐标求导得到——这样力必然是 F=−∇E\boldsymbol F=-\nabla E,天然满足保守场性质(这条性质在 8.3 会用作一致性检查)。

∎

8.2.4 从坐标回归到扩散结构模块

结构的输出方式不是只有「直接回归坐标」一条路。公开工作中另一条路线是生成式:把结构当样本,用扩散(diffusion)逐步去噪地生成坐标(第 4 讲 的机制在这里原样复用)。

四条公开路线的对照
路线 代表工作(引用按官方页面 / 期刊) 信息源 输出方式 显著特点
MSA + 端到端回归 AlphaFold2,Nature 596:583(2021;无 arXiv,预印本见 bioRxiv 2021.06.14.448333) MSA(+ 模板) 等变结构模块直接回归坐标 把共进化信息与几何一致性写进网络;单链精度显著提升
统一表示 + 扩散模块 AlphaFold3,Nature 630:493(2024;无 arXiv) MSA + 各类分子输入 扩散模块生成原子坐标 扩展到蛋白–配体–核酸等复合物,把结构模块统一为一个生成过程
蛋白语言模型(无 MSA) ESM-2 / ESMFold(2022,arXiv:2206.13517) 仅序列(预训练的表示) 表示接折叠头输出结构 省去 MSA 检索,推理更快(素材标注「比 AF2 快一个数量级」)
序列–结构–功能联合生成 ESM3,Science(2025;无 arXiv,预印本见 bioRxiv 2024.07.01.600583) 序列 / 结构 / 功能的多模态 离散扩散式生成 把结构生成与序列、功能的设计放在同一生成框架里

训练目标示例(蛋白语言模型的掩码建模):随机遮住序列的一部分位置 M⊂{1,…,N}M\subset\{1,\dots,N\},让模型预测被遮住位置的残基: LMLM(θ)=−Es∼D EM∑i∈Mlog⁡pθ(si∣s∖M).\mathcal L_{\text{MLM}}(\theta)=-\mathbb E_{s\sim\mathcal D}\ \mathbb E_{M}\sum_{i\in M}\log p_\theta\bigl(s_i\mid s_{\setminus M}\bigr). 为什么它能学到结构信息:要在大量序列上把被遮住的残基猜准,模型必须隐式学会「哪些残基搭配可以共存」——这恰好是结构约束的统计影子(8.2.2 的共进化是它的一个特例)。这就是「用序列自监督造标签」在蛋白质上的具体形态(8.1 的第一类配方)。

「MSA 路线」与「语言模型路线」的取舍

两条路线的差别不是「谁更聪明」,而是把成本花在哪里:

维度 MSA 路线(AF2 式) 语言模型路线(ESMFold 式)
输入准备 需要检索并构建 MSA(可能很慢、深度随家族而变) 只需序列(一步到位)
信息优势 家族级的共进化信号显式给出,稀有家族也能借助同源序列 依赖模型内部学到的统计,稀有家族可能信息不足
推理成本 高(MSA 深度带来 N⋅sN\cdot s 与 s2s^2 项) 低(一次前向)
失败模式 MSA 深度不足或同源序列太少时精度骤降 对「训练里没见过的」家族更依赖运气

工程建议:先看你的场景是「少量序列、需要尽可能准」还是「海量序列、需要快速吞吐」。给出资源约束时,路线选择是一个可解释的取舍,而不是站队。

8.2.5 评测口径与局限

定义 8.2.5 · 三个常用评测口径

结构距离的度量必须与「你关心什么」匹配。三个最常用的口径:

指标 定义(要点) 敏感对象 何时会骗人
RMSD 先做最优刚体叠合,再取对应原子的均方根偏差 RMSD=1n∑i∥xi−yi∥2\mathrm{RMSD}=\sqrt{\frac1n\sum_i\lVert \boldsymbol x_i-\boldsymbol y_i\rVert^2} 全局偏差 单个区域错得离谱会主导数值;不同链长 / 不同对应关系不可直接比
GDT-TS 在若干距离截断(常用 1,2,4,8 A˚1,2,4,8\,\text{Å})下,统计「叠合后 Cα 距离小于截断」的残基比例,记四个比例,取平均:GDT-TS=14∑t∈{1,2,4,8}GDTt\mathrm{GDT\text{-}TS}=\frac14\sum_{t\in\{1,2,4,8\}}\mathrm{GDT}_t 结构整体拓扑(对局部大错不敏感) 幅度被截断压住:8 A˚8\,\text{Å} 以外的错误「看不着」,两块域的相对取向错误可能被掩盖
lDDT 不做全局叠合:在参考结构中一段距离范围内的原子对里,统计「预测距离与参考距离之差小于阈值」的比例,跨若干阈值(常用 0.5,1,2,4 A˚0.5,1,2,4\,\text{Å})取平均 局部几何(键长键角、局部排布) 局部对但整体拓扑错(例如把两个域拼反了)也可能拿到不低的分数

这三个指标互相不可替代,因此论文里通常并列报告;只报一个指标的结构预测结果应当被追问「另一个口径是多少」。

为什么评测要写清「与什么对照」

结构预测的评测有一个常被忽略的前提:你比的对象是谁。同一个模型在下面三种对照下会得到完全不同的结论:

  1. 与实验结构对照(真值来自 PDB 等):这是真实目标,但实验结构本身有分辨率与不确定度(不同实验方法、不同分辨率),所谓「真值」也有误差带。
  2. 与同家族已有结构对照:模型可能只是「回忆」了一个近邻同源模板;此时高分反映的是检索能力而非建模能力——这是最容易被误读的一种高分。
  3. 与另一个模型的预测对照:只能说明相对关系,不能说明绝对精度。

因此读任何结构预测的结论时,先问三件事:评测用的靶标是否与训练集有序列相似性重叠?用了哪个口径?有没有区分「有近邻模板」与「没有模板」的子集?(这些正是结构预测评测的常规做法,具体分数与榜单以官方评测页面为准。)

本节的五个常见误解
  1. 「结构预测问题已经被解决了」:只在单链、静态、有同源序列的窄条件下接近解决。动态构象集合、多态、无序区、翻译后修饰、配体诱导的构象变化、复合物组装与相互作用界面,都还在活跃研究中(AlphaFold3 一类工作正是朝复合物方向扩展的)。
  2. 「pLDDT 高就等于结构可用」:pLDDT 是模型对自己局部几何的自评估置信度,它与「结构是否真实」「功能是否如预期」不是同一件事。低置信度区域提示「不要把它当真」,但高置信度不构成实验级证据;界面与域间相对取向要用成对置信度(如 PAE 一类量)另行检查。
  3. 「等变性只是效率技巧,不做也能训出来」:能训出「能跑」的模型,但代价是样本效率与泛化。等价样本数是连续的无穷集,数据永远穷举不完;不做等变结构,模型只能学出一个近似的、以数据分布为条件的等变映射,在分布外立刻退化。
  4. 「不同评测指标谁高谁好,可以随便挑一个」:三个口径衡量不同的东西(全局 / 拓扑 / 局部),它们在同一个模型上可以给出相反的排序。只报单一指标(尤其在比较不同方法时)会使结论不可复核。
  5. 「有共进化信号就一定能预测出结构」:MSA 深度不足(孤儿序列、小于约几十条同源序列的家族)、同源序列高度冗余、或目标本身无序时,共进化信号本身就不足以定出几何。此时任何方法的表现都会下降,这不是模型 bug,而是信息不足。
即时自测 · 8.2

Q1 用一句话说明「共进化 → 接触信息」的因果链,并指出为什么「两个位点互信息高」不等于「它们在空间上相邻」。

Q2 设 N=512N=512、s=1024s=1024、cz=128c_z=128,精度为 bf16。估算配对表示与 MSA 表示(cm=256c_m=256)各占多少显存,并指出哪一项随 NN 增长最快。

Q3 一个模型报告「与实验结构相比,平均 GDT-TS 达到很高水平,说明静态结构预测已解决」。请写出三条你应该追问的问题。

参考要点

Q1 因果链:同源序列中,两个空间上相互作用的位点若要维持结构稳定就要协同替换(一处变了、另一处也要变),因此在 MSA 上表现为共变;而相互作用强度随距离迅速衰减,所以共变的信号携带接触信息。互信息不能推出相邻,是因为传递效应(定理 8.2.1):i ⁣− ⁣k ⁣− ⁣ji\!-\!k\!-\!j 的链式相互作用会让 MI(i,j)>0\mathrm{MI}(i,j)\gt0,即使 ii 与 jj 不相邻;因此需要全局模型(如直接耦合分析)或端到端的结构监督来区分直接与间接。

Q2 配对表示:512×512×128=33,554,432512\times512\times128=33{,}554{,}432 元素 ×2 B≈67 MB\times2\ \text{B}\approx67\ \text{MB}。MSA 表示:512×1024×256=134,217,728512\times1024\times256=134{,}217{,}728 元素 ×2 B≈268 MB\times2\ \text{B}\approx268\ \text{MB}。增长上:配对表示与行注意力按 N2N^2 增长、MSA 表示按 N⋅sN\cdot s、列注意力按 N⋅s2N\cdot s^2——把 NN 翻倍,N2N^2 项变四倍,而 N⋅sN\cdot s 项变两倍。所以长链的瓶颈是 N2N^2 类项(配对表示与行注意力),深 MSA 的瓶颈是 s2s^2 类项(列注意力)。

Q3 可追问的三条(每条都要一个数字回答):① 相似性重叠:评测靶标与训练集的最大序列相似度分布如何?有没有把「有近邻同源模板」与「无模板」的子集分开报告?② 口径:除 GDT-TS 之外,lDDT 与 RMSD 是多少?有没有报告域间相对取向的错误(GDT-TS 对此不敏感)?③ 范围:结论覆盖的是单链静态结构,还是包含复合物、配体与动态构象?「解决」这个词只能用在被评测覆盖的那个子集上。

延伸阅读
  • Jumper 等, Highly accurate protein structure prediction with AlphaFold(2021,Nature 596:583;无 arXiv,预印本 bioRxiv 2021.06.14.448333)——AlphaFold2 原始论文;MSA / 配对表示、Evoformer、等变结构模块与 FAPE 都在其中,本节 8.2.3 的叙述以它为准。
  • Abramson 等, Accurate structure prediction of biomolecular interactions with AlphaFold 3(2024,Nature 630:493;无 arXiv)——把结构模块换成扩散模块并扩展到复合物;读它时注意它与 AF2 在输入表示与训练目标上的差别。
  • Lin 等, Evolutionary-scale prediction of atomic-level protein structure with a language model(2023,Science;预印本 arXiv:2206.13517,对应 ESM-2 / ESMFold)——无 MSA 路线的代表。
  • Hayes 等, Simulating 500 million years of evolution with a language model(2025,Science;无 arXiv,预印本 bioRxiv 2024.07.01.600583,对应 ESM3)——序列–结构–功能联合生成;具体性能声明请以原文与官方页面为准。
  • Morcos 等, Direct-coupling analysis of residue coevolution captures native contacts across many protein families(2011,PNAS)——直接耦合分析的经典工作,本节 定理 8.2.1 所指的「去传递效应」思路来源。
  • 开源实现:openfold(AlphaFold2 的可训练复现)、ColabFold(MSA 检索与预测的工程封装)、fair-esm(ESM 系列模型权重与代码)。接口与许可随版本变化,需核实。

本节小结:结构预测的信息源是共进化——同源序列的协同突变携带接触信息(定义 8.2.2),但两两统计量无法区分直接与传递相关(定理 8.2.1),因此端到端方法用配对表示 + 三方一致性更新把几何约束写进结构(定义 8.2.3)。输出几何的关键是两个选择:等变(坐标与向量输出跟着旋转,例 8.2.3)与 FAPE(在局部坐标系里度量误差,定义 8.2.4)。评测口径 RMSD / GDT-TS / lDDT 各管一段、不可互替;局限集中在动态构象、复合物与单点预测三处。下一节把这个工具箱搬到分子与材料:那里的任务是逆向设计,而「快数个数量级」的势函数正是所有设计流程的地基。