回收次数基础概念

如果非要给 AlphaFold 的回收次数找个通俗定义——

说白了,它就是一套让结构预测“反复打磨”的迭代机制。

我刚开始接触这个参数时,以为它只是简单地把模型多跑几遍。结果项目里有一次跑了 20 轮回收,结构反而比 3 轮还差。嗯,从那次起我就知道,回收次数远不是“越多越好”那么简单。

回收次数的定义

AlphaFold 在预测蛋白质结构时,不会一下子输出最终结果。它会先生成一个初始结构,然后把这个结构反馈回模型,当作下一轮的部分输入。这个过程重复若干次,每次重复就叫一次“回收”(recycling)。

  • 回收次数设定:在配置文件中通过 num_recycles 参数控制,常见范围 0–20。
  • 与训练时的默认值:官方训练默认是 3 次回收,但实际推理时可能需要调整。
  • 单次回收做了什么:把上一轮的预测结构编码为新的主链扭转角等特征,与原始序列特征拼接,再送进主干网络继续预测。

说白了,每次回收都是拿上一轮的结果重新“润色”一次。就像一个画家先画草稿,觉得不对就擦掉重画,但每一次重画都参考了上一次的轮廓。

迭代优化的原理

为什么需要反复回收?因为 AlphaFold 的模型本质是一个多尺度循环架构。每次回收都在缩小预测结构与真实结构之间的残差。

我个人的理解是这样——

  1. 第一轮:模型只能靠序列特征和模板猜测大致折叠模式,精度很低,可能只有 6Å。
  2. 第二轮:有了上一轮的结构信息,模型能修正局部二级结构和 loop 区走向,精度提升到 3–4Å。
  3. 第三轮:进一步优化侧链堆积和氢键网络,精度逼近 1–2Å(对全局好预测的区域)。
  4. 后续轮次:模型开始陷入细节震荡,如果回收过多,反而会被之前轮次的噪音带偏。
回收轮次 主要作用 典型提升幅度
0 轮(不回收) 仅靠单次前馈 很差,如 8–10Å
1–3 轮 快速收敛 每轮 1–3Å 提升
4–8 轮 精细调优 每轮 0.5–1Å
> 8 轮 过度拟合风险 可能倒挂 0.5–1Å

为什么会倒挂?我记得有一次处理一个 multi-domain 蛋白,设了 12 轮回收,结果 pLDDT 从 85 掉到了 79。后来发现是因为模型在高回收次数下,对上一轮的错误结构过于自信,反而把正确区域扭曲了。这就是所谓的回收过饱和。

警告:不要认为回收次数越多精度必然越高。我在项目中观察到,对同源模板很少的孤儿蛋白,3 轮回收的效果经常优于 8 轮。请在验证集上做网格搜索,而不是盲目沿用论文默认值。

与传统分子动力学的差异

很多刚入门的朋友会把 AlphaFold 的回收和分子动力学(MD)里的退火、平衡跑混为一谈。其实二者差别非常大。

  • 计算对象不同:MD 用牛顿力学模拟原子运动,每个时间步都基于力场计算加速度;AlphaFold 回收没有物理力场,全靠神经网络学到的统计规律。
  • 时间尺度不同:MD 至少需要纳秒级(106 步)才能看到有效构象变化;AlphaFold 一次回收只需要几秒(GPU),整个回收过程不过几十秒。
  • 收敛方式不同:MD 收敛于能量极小点;AlphaFold 回收收敛于模型对结构分布的置信度(pLDDT 和 predicted TM-score)。
  • 不确定性来源:MD 受力场参数和热浴速度影响;AlphaFold 回收受输入特征和模型参数影响,是纯粹的统计预测误差。

简单打个比方——MD 像是在实验室里摇试管看分子怎么动,AlphaFold 回收像是在数据库里翻遍了已知结构,然后猜这个蛋白最可能是哪个样子。两者没有好坏之分,用途不同。

实战观点:如果你处理的是构象变化大的蛋白(比如膜蛋白、柔性 linker),且手头有同源结构,可以先跑 AlphaFold 回收得到一个可靠模型,再以此模型启动 MD 模拟。回收次数控制在 3–6 轮比较稳妥,过多回收会把 MD 的初始结构引入“神经统计偏差”。

核心知识框架

回收次数核心逻辑 序列特征 + 模板 结构预测(Evoformer + 结构模块) 预测结构 & pLDDT num_recycles 循环次数控制 最终预测 + 回收轮次统计 与传统MD差异 MD:力场 + 牛顿力学,纳秒级 回收:神经网络统计推断,秒级 迭代优化原理 每轮缩小结构残差 3–6轮最优,过多可能倒挂

上面这张图应该能帮你理清关系:序列特征送入预测模块,产出结构,再通过回收回路(虚线)反复迭代,最终输出决定。控制好回收次数,才能平衡精度和计算开销。

个人习惯:我每次跑一个新蛋白,会先试 3、6、10 轮回收,用 predicted TM-score 变化曲线判断。如果 3 轮和 6 轮的 predicted TM-score 差距不到 0.02,我就选 3 轮——省显卡时间。如果超过 0.05,我会加到 6 轮,并盯住 pLDDT 不降反升的位置。