18

AlphaFold 2 里面到底发生了什么

插图占位:AlphaFold 2 里面到底发生了什么

CASP14 的 target 页面打开时,屏幕上最早出现的常常还不是漂亮模型;更早出现的是一个 target 编号、一条提交期限,以及一串从 N 端排到 C 端的氨基酸字母。实验答案当时还藏着,参赛队只能拿着这串字母交出坐标。等答案公开,评估者再把预测模型同实验结构对齐。成绩表已经把门槛重新量过;沿着那串字母往里走,能看到 AlphaFold 2 怎样把输入、演化线索、残基关系和几何约束组织成三维坐标。

先把开头那行字母说清。它叫 primary sequence,也就是一级序列,记录蛋白链上每个位置是什么氨基酸。氨基酸连进链以后,常被称为 residue,残基。第 1 位、第 2 位、第 300 位,都可以看成这条链上的一个残基位置。AlphaFold 2 面对的起点,并非一个已经团好的分子;起点是一维序列,以及围绕这条序列搜集到的外部线索。

这件事容易被一句“从序列预测结构”说得太短。若只看字面,人会以为模型把一排字母直接变出一团坐标。真实过程更像打开几张表:一张是 target 自己的一级序列,一张是许多亲戚序列排成的 MSA,一张是模型内部持续更新的残基关系方格,后面还有坐标、置信度和复盘材料。结果页上那张三维图很醒目,图背后的表格才解释它从哪里来,又在哪里该停。

如果把这个页面当作入口,三种尺度会同时出现。序列行是线性的,像一条从左到右编号的链;MSA 表是家族性的,把一条链放进许多亲戚的变化里;残基关系方格是空间性的,把两个位置之间可能存在的关系放到同一张正方形表里。AlphaFold 2 的机制,可以从这三种尺度的互相翻译开始理解。

接下来会冒出一串英文机制名,读时不必一次记住每一个。抓住一条主线就够了:序列先进入亲戚表,亲戚表和残基关系方格反复对照,几何约束在其中逐渐自洽,最后才落成坐标和一套置信度。后面那些名字,都是这条主线上的零件,先看它们各自负责哪一步,记不住具体缩写也不影响理解全局。

18.1序列进入亲戚表

MSA 是 multiple sequence alignment,多序列比对。它把许多同源或相近的蛋白序列按位置排成行和列。每一行是一条亲戚序列,每一列对应 target 上的某个位置。若某一列在许多亲戚里都保留同一种残基,那里可能承担重要结构或功能角色;若两个远隔位置总是一起改变,研究者会怀疑它们在三维空间里存在联系。

这种亲戚表没有魔法。它来自序列数据库,来自长期积累的基因组、宏基因组和蛋白条目。序列越多,某些共同变化越容易露出来;亲戚太少,表格就会变浅,许多位置只能给出很弱的提示。AlphaFold 2 善于利用 MSA,并不代表每个 target 都有同样厚的演化记录。结果复盘时,浅 MSA 目标常常会被单独拿出来看。

MSA 里还会出现缺口和插入。两条亲戚序列并不总是一样长,某一段可能多几个残基,另一段可能少几个残基。比对的任务,是尽量把同源位置放进同一列,让“这一列大概对应同一个结构或功能位置”成为可用假设。这个假设有时清楚,有时含糊。若比对本身错了,后面共同变化和结构判断也会跟着受影响。

因此,MSA 不是一张投票表。某个位置在多数序列里保守,不等于它一定是活性位点;两个位置一起变化,也不等于它们一定直接接触。它们只是线索,必须和模板、残基关系、几何一致性以及最终坐标一起接受检查。AlphaFold 2 的强处,正是没有把这些线索孤立使用。

MSA 之外,模型还可以使用 template,模板。模板指 PDB 等数据库里已经由实验测出的相似结构。它能在相似片段上提供参考姿势和几何线索,却不能当作答案副本。遇到新折叠、插入片段、不同构象、配体状态或实验条件差异,模板的帮助会变弱。CASP14 的盲测边界也要求参赛模型在实验答案公开前提交,不能等真实坐标出现以后再修。

这一点涉及 data leakage,数据泄漏。训练、验证和测试本该分开;若测试答案提前混进训练材料,模型看起来会比实际更强。AlphaFold 2 的成绩之所以要放在 CASP14 里读,正因为 CASP 把 target 序列先公开、实验坐标后公开、模型先提交、评估再进行。这个时间顺序把“见过答案”这条路尽量关掉,也让后续方法论文和复现实验有了讨论边界。

PDB 在这里承担双重角色。它一方面是训练材料来源,许多实验结构让模型学习序列、残基关系和三维坐标之间的对应;另一方面,它也是模板和后续验证的公共参照。这个双重角色要求数据处理非常谨慎:哪些结构进入训练,哪些结构只能作为测试后的比较,哪些相似条目可能让评估变得不干净,都要被记录和过滤。

18.2方格里的残基关系

MSA 距离结构还有一段路。它告诉模型哪些位置保守,哪些位置可能一起变化,却没有直接给出原子坐标。AlphaFold 2 还维护另一张内部表,论文里叫 pair representation,可以理解成残基关系表。它的横轴和纵轴都是同一条蛋白链上的残基位置,第 30 位和第 180 位对应一个格子,第 75 位和第 76 位也对应一个格子。

这个方格不能当实验距离图。每个格子里存放的是多项会被更新的表示:两个位置可能近吗,方向关系是否合理,它们所在的片段会受到哪些第三方残基约束。早期的格子可能只带着粗线索;随着 MSA 信息、模板信息和周围方格不断交换,某些关系变得更清楚,另一些关系则继续模糊。

把这张方格放到屏幕上想象,会看到一条从左上到右下的对角线,因为每个残基同自己最接近。真正有信息量的地方常在远离对角线的格子:序列上相隔很远的两个位置,空间里会不会靠近?一条长环会不会贴到核心上?两个片段会不会构成同一个口袋边缘?这些问题都需要成对关系来承接。

把方格想成“距离矩阵”会太窄。蛋白结构不只由残基间距离决定,还受主链方向、侧链化学性质、局部二级结构、疏水核心、环区和长程接触共同影响。第 30 位和第 180 位若被判断为接近,第 30 位到第 90 位、第 90 位到第 180 位也要能说通;若三者关系彼此冲突,最终三维结构就很难成立。

AlphaFold 2 在这里使用了三角关系更新。Nature 论文里提到 triangle multiplicative update 和 triangle self-attention,核心意思是:一个残基对的判断会借助第三个残基来重新校正。用日常物体作粗略类比,若三根木条要围成三角形,任意两边和第三边之间都有约束;蛋白里的约束复杂得多,但“三个位置共同限制彼此”的直觉是相通的。

这种三角关系让错误更难单独躲起来。若第 30 位被某条线索推向第 180 位,系统还要检查第 30 位与第 90 位、第 90 位与第 180 位的关系能否一起成立。一个格子改变,附近许多格子都会被迫重新表态。方格因此逐渐从零散提示变成更自洽的空间假设。

attention,注意力机制,也在这里出现。这个词容易被误读成人类心理活动。放在神经网络里,它指模型在许多位置和线索之间分配权重:某些 MSA 列对当前判断更有用,就让它影响更大;某个残基对关系会牵动周围关系,就让它的信息传得更远。注意力没有意图,也没有理解欲望,它只是让模型在大量线索之间选择更有影响力的通道。

18.3Evoformer 的反复交换

AlphaFold 2 的核心部分叫 Evoformer。这个名字把 evolution 和 transformer 合在一起,提示它同时处理演化线索和注意力式更新。Evoformer 接收 MSA 表和残基关系表,让两张表在多层网络里反复交换信息。它不会先把 MSA 算完再另起炉灶建结构;两张表会在同一个过程中互相改写。

在 MSA 表里,模型既看列,也看行。看列,可以发现某个位置在演化中是否保守;看行,可以看一条亲戚序列内部哪些残基组合一起出现。这些信息会流向残基关系表。若两个位置在许多亲戚里协同变化,对应的残基对格子就得到新的提示。接着,残基关系表也会反向影响 MSA 表,让模型重新衡量哪些序列、哪些列、哪些组合更有解释力。

这种来回交换让 AlphaFold 2 和早期只靠单一路径的预测方法拉开距离。一个单独的共同变化信号可能是噪声,也可能来自间接关系;一个模板片段可能很有用,也可能来自错误状态;一个局部二级结构看似合理,放到整条链里却会和远处接触冲突。Evoformer 的作用,是让这些线索在同一组内部表格里互相检验。

Nature 论文把这种交换写得更具体:MSA 表会把信息送进 pair representation,pair representation 又会反过来影响 MSA 中的注意力。这条回路已经足够支撑核心判断:序列家族告诉残基方格哪些关系值得怀疑,残基方格又告诉序列家族哪些列和哪些行更值得重看。结构假设不是最后一刻突然出现,它在这些反复交换里逐渐成形。

底层仍然是训练出来的计算系统。研究团队设计架构、准备数据、设定 loss function,损失函数,让模型在大量已知结构上学习哪些错误该被惩罚。端到端,end-to-end,说的是模型从输入表示一路学到结构输出,训练目标会把最终坐标、局部几何、残基关系和辅助任务一起拉入同一个学习过程。它不是研究者手写的一本折叠规则书。

辅助任务在这里很重要。模型不只被要求最后交出坐标,还会在训练中学习距离分布、被遮住的 MSA 片段、逐残基可靠性和几何约束。distogram,距离分布预测,可以理解成把残基对可能处在什么距离范围内先学成概率;masked MSA loss 则像让模型补回被遮住的序列信息。这些训练任务不会单独变成最终的结构图,却会让内部表示更懂序列和几何之间的关系。

这里的“学习”也要保持边界。模型参数来自训练数据和目标函数,不能解释成它理解了生命的意图。PDB 实验结构提供了坐标范例,序列数据库提供了同源线索,损失函数提供了误差反馈,CASP14 提供了外部评测。AlphaFold 2 的能力来自这些材料被系统地组织起来,而不是来自一句泛泛的“AI 很聪明”。

18.4坐标怎样出现

MSA 表和残基关系表再丰富,也还不是可以旋转的三维模型。把内部表示变成坐标的部分叫 structure module,结构模块。Nature 论文描述它会为每个残基引入三维中的旋转和平移表示,让主链框架逐步形成。通俗说,模型开始给残基骨架安排空间位置,同时让整条链的几何关系尽量协调。

结构模块不能理解成一颗残基接一颗残基排队摆放。蛋白是一张整体约束网:局部螺旋、β 折叠片、长环、疏水核心、远距离接触和链的连续性会同时影响彼此。第 50 位移动一点,附近主链要跟着合理,远处口袋也可能被牵动。结构模块处理的正是这种整体协商,而不是从左到右逐格填表。

这里还有一个关键词:invariant point attention,不变点注意力。它让模型在三维空间里比较点和点的关系时,不被整张结构的平移或旋转扰乱。一个蛋白模型在屏幕上转了 90 度,内部几何关系没有改变;模型需要关心残基之间的相对位置和方向,而不是屏幕坐标。IPA 的作用可以粗略理解为,让注意力操作带着三维几何意识。

这个解释只能停在高层。AlphaFold 2 的结构模块背后有严格的数学表示和训练细节;在这里,关键不在公式,而在边界:结构模块生成的是预测坐标,通常用于接近稳定构象的模型;它通常不提供蛋白在水、离子、分子伴侣、膜、拥挤细胞环境里从展开链到最终状态的完整时间过程。它给人一张可能的结构图,不给人一部真实折叠电影。

坐标出来以后,模型还会 recycling,循环回看。第一轮得到的结构和内部表示会被送回网络,让 MSA 表、残基关系表和坐标继续调整。可以把它类比成多轮草稿:第一轮暴露冲突,第二轮吸收冲突,第三轮继续收敛。这个类比到此为止;神经网络没有作者意图,也不会像人那样斟酌句子。它只是把上一轮结果当作新线索,再走一遍固定的计算流程。

recycling 的价值在于让早期不一致有机会被看见。一个远距离接触若在第一轮放错,三维坐标会让冲突更明显;送回网络后,残基关系表会重新承受几何约束,MSA 线索也会被重新加权。几轮之后,某个结构域内部可能更稳,某段连接肽可能仍然飘忽。留下来的不确定性本身就有用,它提醒研究者别急着把这段区域画成固定结构。

把几轮结果并排想象,会更容易理解 recycling 的意义。第一轮里,一个小结构域也许已经大致成形,但长环挡在核心表面;第二轮后,核心残基重新聚到一起,长环被推到更合理的位置;第三轮再看,域内关系更清楚,域间连接仍然摇摆。模型没有把所有不确定性抹平,它有时会把“这里仍缺证据”保留在输出里,并让结果页上的置信度继续提醒人放慢。

18.5训练、盲测与复盘

如果只盯着 Evoformer 和结构模块,AlphaFold 2 很容易被写成单一算法的奇迹。实际支撑它的,是一整条工程和证据过程。PDB 里的实验结构被用作训练材料和模板来源;序列数据库用于构建 MSA;数据管线要处理重复条目、缺失片段、低质量结构、工程突变、链编号和相似序列;训练集、验证集和测试对象之间要尽量保持边界,避免 data leakage。

训练目标也不只盯最终大轮廓。Nature 论文提到 FAPE、距离分布、masked MSA、逐残基精度、侧链和几何违反等辅助损失。这些英文缩写可以先放在一边,关键在于:模型被训练去同时关心局部原子位置、残基相对关系、主链方向、侧链环境和输出可靠性。损失函数把这些要求转成误差信号,训练才有可改进的方向。

AlphaFold 2 还利用了 self-distillation,自蒸馏。论文中提到,早期模型会为大量没有实验结构的序列生成预测,这些预测再被用来训练最终模型的一部分。这个做法不能和实验结构等同;它更像把模型在未标注序列上的稳定判断作为额外训练材料。这里的边界很重要:PDB 实验结构仍是坐标真值的核心来源,自蒸馏只是扩展训练信号的一种方法。

推理阶段也有可追踪的选择。一个 target 送进系统前,要构建 MSA,搜索模板,处理序列长度和候选模型;输出以后,还要看不同候选是否在核心区域一致、是否在域间摆位上分歧、是否有低置信度片段。CASP14 把提交时间固定下来,日常研究则把这些选择放进样品周期、计算时间和实验优先级中。模型结果总是带着输入选择和流程痕迹。

置信度输出也来自这条训练和推理链。一个系统若只交出坐标,用户很容易把整张图看成同等可靠;AlphaFold 2 同时训练并输出局部可靠性和区域关系的不确定性,让研究者能在同一页上区分核心、柔性段和域间摆位。坐标回答“可能长什么样”,置信度回答“这张图哪些位置更有把握”。两类信息一起出现,才适合进入实验计划。

科学家怎样知道这套系统没有只是记住熟悉蛋白?第一,看 CASP 盲测:序列先给,实验答案后公开,模型先提交。第二,看 PDB 时间边界和冗余过滤:新结构、相似结构、模板身份都要拆开评估。第三,看失败对象:浅 MSA、多结构域摆位、特殊状态和少见折叠会暴露模型短处。第四,看后续实验使用:构建体、突变、结合、活性、定位和结构解析继续检验模型给出的线索。

失败 target 不能从故事里删掉。一个蛋白亲戚很少,MSA 表里的共同变化信号就薄;一个蛋白有两个结构域,域内骨架可以可靠,域间角度却可能随连接肽、配体或伙伴蛋白改变;一个膜蛋白、复合体或配体结合状态,可能需要当前输入里没有的环境信息。把这些对象拿出来复盘,才能知道问题出在输入线索、模型表示、训练材料,还是实验答案对应的特定状态。

模板的正确位置也由此变得清楚。模板能帮助相似区域,却不能覆盖模型的全部判断。若一个 target 有强模板,模型仍要判断插入片段、环区、状态差异和远端接触;若模板很弱,MSA 和内部几何一致性承担更多工作。CASP14 的意义不在于“模板失效后算法独自表演”;真正进入公开评测的,是序列、模板、演化、几何和训练目标放到同一个系统后的整体表现。

公开评测让这条链条有了外部压力。训练论文可以解释架构,数据库可以解释材料,工程流程可以解释输入输出;CASP14 则负责问一个更朴素的问题:在答案隐藏时,这套系统交出的模型能不能贴近后来公开的实验结构?正是这个问题把方法细节和结果可靠性连在一起,也提醒人们机制说明不能替代外部盲测和后续实验。

18.6哪些地方还要慢下来

AlphaFold 2 的能力要和停顿点写在一起。它通常给出单链或单体范围内很有用的结构预测起点,却不能把坐标模型直接改写成功能结论。一个口袋在图上成形,不代表配体一定进入;一个界面在模型里靠近,不代表细胞里存在稳定复合体;一个侧链姿势看起来合理,不代表催化、调控或药物结合已经被证明。

实验验证因此没有退场。预测结构可以让构建体设计更集中,让突变清单更短,让研究者更早发现可能的结构域边界;随后仍要看表达量、纯化峰形、热稳定性、活性曲线、结合读数、互作实验、细胞定位和必要的实验结构。模型改变的是第一轮问题的排列方式,不是把答案直接盖章。

高置信度也有范围。某个结构域内部很可靠,不等于两个结构域之间的相对位置也可靠;主链骨架很好,不等于所有侧链、金属、翻译后修饰、膜环境和小分子姿势都已经确定;一个静态构象很清楚,不等于开、关、半开等状态转换已经被解决。研究者拿到模型后,仍要把问题拆回表达、纯化、突变、互作、活性和必要的实验结构。

低置信度同样不能粗暴处理。低分尾巴可能是信息不足,也可能是天然无序、柔性连接、调控片段、定位信号或只在结合伙伴出现时成形的区域。把它马上删掉,表达和纯化也许更顺,功能读数却可能一起消失。稳妥的做法常常是保留全长对照,再设计分层截短版本,让实验读数判断低分区到底是噪声、柔性,还是功能所需。

复合体、配体、金属离子、翻译后修饰和膜环境也要留在边界里。AlphaFold 2 在单链预测上的跃升很大,但许多真实蛋白只有在伙伴、配体或膜中才取某个姿势。一个单体模型能给出强起点,却不能自动说明寡聚界面已经成立,底物已经进入口袋,或者构象切换已经被完整表示。高分图像越容易让人行动,越需要把这些问题逐一拆开。

多结构域蛋白尤其需要把“局部可靠”和“相对摆位可靠”分开。两个 domain 各自都能预测得很好,连接它们的相对角度仍可能很不稳定。若研究者只看三维图上的一次姿势,容易把可变关系画成固定界面。结果页上的两种提示正好把问题拆开:pLDDT 告诉人局部把握,PAE 帮助人读两个区域之间的相对位置把握。

所以,回到开头那张 CASP14 target 页面,一串字母没有直接跳成真理。它先作为一级序列进入系统,和亲戚序列排成 MSA;MSA 与模板线索共同影响残基关系方格;方格中的成对关系和三角一致性在 Evoformer 里反复更新;结构模块把内部表示转成三维坐标;recycling 又把上一轮结果送回去继续校正。最后交到研究者手里的,是坐标模型加上一套不确定性语言。

这套语言会改变研究节奏。研究者可以更早设计构建体,更早选择突变,更早检查结构域边界,也更早知道哪些地方要放慢。坐标给出可操作的图,置信度提示图的重量。CASP14 让人相信模型能更早进入实验计划;理解了内部链条以后,目光会落到结果页上的置信度提示,继续追问 pLDDT、PAE 和 confidence 到底允许人先相信哪一块。