第2章:AlphaFold整体架构与流程梳理

咱们先不急着调参数,得先把AlphaFold这个大家伙的骨架摸清楚。我刚开始接触这个模型的时候,也被它那复杂的流程图搞得有点懵。说白了,AlphaFold本质上是一个从序列到结构的端到端翻译器,只不过中间塞了好几个精妙的设计。

2.1 从输入到输出的一条主线

AlphaFold的输入很简单,就是一个蛋白质的氨基酸序列。但输出呢,是一个包含所有重原子三维坐标的PDB文件。你想想看,中间这过程得有多复杂。

AlphaFold整体架构流程图 输入特征 数据预处理 MSA构建 | 模板搜索 | 特征提取 Evoformer 模块 48层配对特征与MSA特征交替更新 结构模块 IPA机制 | 循环精炼残基坐标 输出三维结构 (PDB) 循环精炼 损失计算 & 反向传播 特征调优主要作用于“输入特征”和“数据预处理”阶段,直接影响Evoformer的起始状态

这张图是我画了好几个版本才定下来的核心流程。你重点关注中间的特征加工流水线,那是我们调优的主战场。

2.2 输入特征的三个来源

AlphaFold的输入可不是简单的一条序列。它需要从三个维度构建特征:

特征来源 描述 特征维度 我的调优经验
MSA(多序列比对) 同源序列的进化信息 N_seq × N_res × 22 这里我吃过亏,序列数太少模型会不稳定
模板结构 已知同源蛋白的三维结构 N_res × N_res × 37 模板质量比数量更重要
序列特征 目标序列的理化属性 N_res × 21 这部分我一般不动,除非特殊任务

核心要点:特征调优的本质,就是在这些原始特征进入Evoformer之前,通过清洗、增强、加权等手段,让信息更干净、更聚焦。

2.3 数据预处理:特征工程的主战场

原始特征拿过来是不能直接用的。AlphaFold做了一系列预处理操作,我个人觉得这是整个流程中最值得优化的环节。

MSA构建的具体步骤:

  1. 序列搜索:用HHblits或Jackhmmer在大型数据库里找同源序列。
  2. 配对与去重:去除冗余序列,保留多样性。我曾经遇到过一个案例,数据库里90%的序列都来自同一个物种,结果模型预测的偏好性特别强。
  3. 特征编码:把比对结果转成one-hot编码和profile矩阵。

模板搜索与处理:

  1. 结构搜索:用HHSearch在PDB里找结构相似的同源蛋白。
  2. 配准对齐:把模板结构映射到目标序列上。
  3. 距离矩阵提取:计算模板中Cα原子之间的距离,作为结构先验。

技巧分享:我在调试MPNN相关任务时发现,模板截断阈值(默认是30%序列一致性)对预测精度影响很大。遇到全新折叠的蛋白质,我建议把模板权重调低甚至关掉。

2.4 Evoformer模块:特征深度融合

Evoformer是整个模型的发动机。它由48个相同的blocks堆叠而成,每个block干两件事:

  • 配对特征更新:用一个三角形自注意力机制,强化残基对之间的空间关系。
  • MSA特征更新:用轴向注意力机制,同时捕获序列维度和残基维度的信息。

这两个特征流是双向交互的,说白了就是一个互相喂信息的过程。MSA特征告诉配对特征哪些残基是保守的,配对特征又反过来告诉MSA特征哪些残基可能在空间上靠近。

注意避坑:我见过有人试图直接修改Evoformer内部的注意力头数或层数来提升精度。说实话,这很容易翻车。我更建议你先从输入特征的质量入手,那才是源头。

2.5 结构模块:从特征到坐标的跳跃

Evoformer输出的特征经过结构模块,才真正变成三维坐标。这个模块的核心是迭代IPA机制(Invariant Point Attention)。

IPA的有趣之处在于它做预测时是保持旋转平移不变性的。你想想看,不管你把输入蛋白质怎么旋转,模型内部的计算结果不应该变。这个性质的实现,靠的是在注意力计算中引入了距离和方向信息。

结构模块会循环精炼8次,每次生成一个局部的残基框架,然后逐步构建出完整的骨架。嗯,这里要注意,循环次数是可以在配置文件中调整的,但我建议新手先别动它。

2.6 损失函数:指导模型学习的信号

AlphaFold的训练损失很有意思,它包含了好几个分量:

损失项 作用 权重
FAPE损失 主链Cα坐标的对齐误差 0.5
距离损失 残基对距离图的预测误差 0.3
夹角损失 二面角的预测误差 0.1
结构流失 辅助的结构约束项 0.1

这些损失项在训练时是加在一起的,但调优的时候我建议你分开看。我遇到过的情况是,某个特征改动让FAPE损失降了,但距离损失反而升了,这时候就需要权衡了。

2.7 特征调优的切入点总结

通过这章对整体流程的梳理,你应该能看出特征调优的切入点了:

  • MSA特征:调整序列搜索的e-value阈值、增加/减少同源序列数量、使用不同的数据库。
  • 模板特征:控制模板数量、设定模板质量阈值、甚至完全禁用模板。
  • 序列特征:很少改动,主要看是否需要加入额外的理化属性。