作者,Evil Genius
接下来为我们的生化小课,CADD计算机辅助药物设计,分子对接/分子动力学做好准备,今天我们来学习一下最好的AI蛋白建模工具--AlphaFold 2与AlphaFold 3。
AlphaFold经历了三个版本,基本上大课题组做蛋白预测都用的这个。


至于蛋白结构预测为什么如此重要,这个我相信大家比我更清楚。
我们先来看看AlphaFold 2
可以把 AlphaFold 2(AF2) 理解成蛋白质结构预测领域一个非常重要的分水岭。它真正厉害的地方并不是简单地"输入氨基酸序列 → 输出三维结构",而是把**进化信息(MSA)+ 残基对关系(pair representation)+ 深度注意力网络(Evoformer)+ 几何约束(Invariant Point Attention)+ 迭代优化(recycling)**整合成了一个端到端结构预测系统。
AlphaFold 2 的核心论文发表于 2021 年 Nature,在 CASP14 中表现接近实验结构精度。
下面按照**"生物学问题 → 输入 → 网络 → Evoformer → Structure Module → Loss → Recycling → 输出 → 实际使用"**的顺序详细讲。
一、首先搞清楚:AlphaFold 2到底解决什么问题?
传统蛋白质结构预测的问题是:
已知氨基酸序列,如何预测蛋白质最终折叠成什么三维结构?
例如:
MKTIIALSYIFCLVFADYKDDDDK...
AlphaFold 2希望得到:
Residue 1 → x1,y1,z1
Residue 2 → x2,y2,z2
Residue 3 → x3,y3,z3
...
Residue N → xN,yN,zN
最终形成:
α-helix
/------\
/ \
----/ \____
\
β-sheet
但这里有一个非常重要的概念:
AlphaFold 2不是通过物理模拟把蛋白质"折叠出来"的。
它不是:
氨基酸
↓
分子动力学
↓
物理能量最低状态
↓
蛋白结构
而更接近:
氨基酸序列
+
进化信息
↓
深度神经网络
↓
残基之间应该是什么空间关系
↓
三维几何结构
↓
不断修正
↓
最终结构
这就是 AlphaFold 2 和传统 molecular dynamics / protein folding 方法最根本的区别。
二、AlphaFold 2最核心的思想:进化告诉"谁和谁应该靠近"
这是理解 AlphaFold 2 的第一关键。
假设一个蛋白质有:
A B C D E F G H I J
如果在很多物种中发现:
A ↔ G
这两个位置经常共同发生突变。
例如:
物种1: A.....G
物种2: V.....D
物种3: I.....E
物种4: L.....K
说明:
A 和 G 可能存在结构上的相互作用。
因为如果两个残基在三维空间中接触,一个位置发生变化后,另一个位置可能也必须发生变化,以维持蛋白质结构稳定。
这就是:
co-evolution(协同进化)
因此:
MSA
↓
co-evolution
↓
哪些 residue 可能互相接触
↓
空间结构约束
AlphaFold 2 最大的突破之一,就是让神经网络直接学习这种复杂关系,而不是人工计算一个简单的 covariance/contact map。论文明确指出,AlphaFold 2 将 MSA 和 pairwise features 联合编码,并通过 Evoformer 在两种表示之间反复交换信息。
三、AlphaFold 2整体架构
可以先记住这一张"总地图":
Protein sequence
│
↓
┌──────────────┐
│ MSA搜索 │
│ homologous │
│ sequences │
└──────┬───────┘
│
↓
┌──────────────┐
│ Template │
│ information │
└──────┬───────┘
│
↓
┌─────────────────────────┐
│ Input features │
└────────────┬────────────┘
│
↓
┌──────────────────┐
│ Evoformer │
│ │
│ MSA representation
│ ↕ │
│ Pair representation
└────────┬─────────┘
│
↓
┌──────────────────┐
│ Structure Module │
│ │
│ Invariant Point │
│ Attention (IPA) │
└────────┬─────────┘
│
↓
3D protein structure
│
↓
Recycling
│
└──────→ 再进入网络
AlphaFold 2官方代码目前仍然提供完整的 inference pipeline,包括 monomer、Multimer 以及 v2.3.0 的实现。
四、第一步:输入到底是什么?
很多人以为:
AlphaFold 2输入就是 FASTA。
实际上真正进入神经网络的信息比 FASTA 丰富很多。
主要包括:
1. Protein sequence
例如:
MKTIIALSYIFCLVFAD
长度:
N_res = 17
2. MSA
例如:
Query MKTIIALSYIFCLVFAD
Species1 MKTIIALSYIFCLVFAD
Species2 MKTI--LSYIFCLIFAD
Species3 MKTIIAL-YIFCLVFAD
Species4 MKTVIALSYIFCLVFAD
...
可以表示成:
N_seq × N_res
例如:
5000 × 300
3. Template
如果数据库中存在结构相似的蛋白:
PDB structure
↓
template
↓
提供:
距离
角度
残基对应关系
结构信息
但是非常重要:
AlphaFold 2并不依赖必须存在一个高度相似的 template。
这也是它相比传统 homology modeling 的重要优势之一。CASP14 中很多没有近似实验结构模板的蛋白仍然能获得很高质量预测。
五、MSA到底是什么?
MSA:
Multiple Sequence Alignment
假设你有一个蛋白:
Protein A
M K T I I A L S Y I F C L V F A D
然后搜索数据库,发现很多同源蛋白:
A M K T I I A L S Y I F C L V F A D
B M K T I I A L S Y I F C L V F A D
C M K T V I A L S Y I F C L V F A D
D M K T I I A L S Y I F C L I F A D
E M K T I I A L S Y I F C L V F A E
于是形成:
residue
↓
1 2 3 4 5 6 7 8 9...
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
seq1 M K T I I A L S Y
seq2 M K T I I A L S Y
seq3 M K T V I A L S Y
seq4 M K T I I A L S Y
seq5 M K T I I A L S Y
神经网络从这里面寻找:
哪些位置保守?
哪些位置共同变化?
哪些位置可能空间接触?
六、AlphaFold 2的第一个核心:MSA Representation
AlphaFold 2会把 MSA 转化为一个高维 embedding。
假设:
N_seq = 512
N_res = 300
c_m = 256
那么:
MSA representation
512 × 300 × 256
可以理解成:
对每一个"序列 × residue"建立一个高维向量。
例如:
MSA[sequence 20][residue 153]
→
[0.31, -0.72, 0.18, ...]
这些数字不具有简单的生物学解释,但网络会利用它们表示:
-
residue identity
-
conservation
-
evolutionary relationship
-
mutation patterns
-
sequence context
七、第二个核心:Pair Representation
这是 AlphaFold 2 最重要、也是最容易被初学者忽略的概念之一。
假设蛋白有:
N = 300 residues
那么任意两个残基:
(i,j)
都可以建立一个 pair。
例如:
residue 10
↕
residue 200
因此有:
300 × 300
个 residue pair。
Pair representation:
N_res × N_res × c_z
例如:
300 × 300 × 128
八、Pair representation代表什么?
可以把:
Pair[i,j]
粗略理解为:
residue i 和 residue j 之间存在什么样的空间/进化关系?
例如:
Pair[10,200]
可能逐渐学到:
distance ≈ 8 Å
或者:
可能接触
或者:
orientation relationship
或者:
β-sheet pairing
注意:
Pair representation不是简单的距离矩阵。
它是一个高维 latent representation。
最终网络可能从中预测:
distance distribution
例如:
distance between i,j
0-4 Å 0.02
4-6 Å 0.18
6-8 Å 0.53
8-10 Å 0.21
10-12 Å 0.05
>12 Å 0.01
九、为什么要同时存在 MSA 和 Pair?
这是 AlphaFold 2 的核心设计。
可以把:
MSA
理解为:
"从进化角度,这些残基之间有什么关系?"
而:
Pair
理解为:
"从结构角度,这两个残基之间应该有什么关系?"
二者互相帮助:
MSA
↓
发现 co-evolution
↓
Pair
↓
发现空间关系
↓
反过来帮助 MSA理解
↓
进一步更新 Pair
↓
......
所以不是:
MSA → Pair → structure
而是:
MSA ⇄ Pair
不断交换信息。
这个过程就是:
Evoformer
十、Evoformer到底是什么?
Evoformer 是 AlphaFold 2 的核心 backbone。
可以简单理解成:
一个专门为"蛋白质进化信息 + 空间关系推理"设计的 Transformer。
论文中,AlphaFold 2 的 trunk 通过重复 Evoformer block,将 MSA representation 和 pair representation 不断更新。原始模型包含 48 个 Evoformer blocks。(Nature)
十一、Evoformer最重要的几个操作
理解 AlphaFold 2,至少要掌握:
-
MSA attention
-
Pair-biased attention
-
Outer Product Mean
-
Triangle Multiplicative Update
-
Triangle Attention
其中:
Triangle Update 是 AlphaFold 2 非常关键的创新。
十二、为什么需要 Triangle Update?
假设:
A
|\
| \
| \
B---C
三个 residue:
A
B
C
如果:
A-B
B-C
的空间关系已经比较明确,那么:
A-C
也不能随便。
这就是三角形约束。
蛋白质三维空间中的 pair relationships 必须相互一致。
例如:
distance(A,B) = 5 Å
distance(B,C) = 5 Å
那么:
distance(A,C)
不能是:
100 Å
因此 AlphaFold 2 不只是看:
Pair(A,B)
而是让:
Pair(A,B)
Pair(B,C)
Pair(A,C)
互相约束。
十三、Triangle Multiplicative Update
假设:
Z_ij
表示 residue i 和 j 的 pair representation。
网络可以利用:
Z_ik
Z_kj
去更新:
Z_ij
也就是:
i -------- j
\ /
\ /
\ /
k
因此:
i-k
+
k-j
↓
i-j
这就是 triangle multiplicative update 的核心思想。
它本质上在学习:
三个 residue 之间的几何一致性。
论文中明确将 triangle multiplicative update 和 triangle attention 作为 Evoformer 中 pair representation 的关键更新机制。
十四、Triangle Attention
另一类操作是:
Triangle attention
可以理解成:
在考虑 residue pair 时,不只考虑 i 和 j,而是让第三个 residue k 参与判断。
因此:
Pair(i,j)
的更新依赖:
Pair(i,k)
Pair(k,j)
这使网络可以逐渐构建一个全局一致的三维结构。
十五、Outer Product Mean
这是:
MSA → Pair
非常重要的一条信息通路。
MSA 中两个位置:
i
j
在不同序列中共同发生变化。
网络通过 outer product 等操作把这种信息汇总:
MSA information
↓
co-evolution information
↓
Pair representation
所以:
MSA
↓
Outer Product Mean
↓
Pair
这就是把进化信息转换成结构信息的重要机制之一。
十六、Evoformer最终得到什么?
经过很多 Evoformer blocks 后:
MSA representation
+
Pair representation
↓
更加成熟的结构信息
然后进入:
Structure Module
十七、Structure Module是什么?
Evoformer主要解决:
"这个蛋白应该长什么样?"
Structure Module负责:
"把这个抽象的结构信息真正变成三维坐标。"
这是从:
latent representation
到:
3D coordinates
的关键一步。
十八、AlphaFold 2为什么不用直接预测xyz坐标?
这是一个非常重要的深度学习设计。
假设直接预测:
Cα1 = (x1,y1,z1)
Cα2 = (x2,y2,z2)
...
存在一个问题:
如果把整个蛋白旋转:
旋转前:
protein
↓
旋转后:
/
/
蛋白质本身没有变化。
但是:
x,y,z
全部变化。
因此神经网络如果直接预测绝对坐标,会遇到:
rotation / translation dependence
十九、AlphaFold 2采用Residue Frame
AlphaFold 2给每一个 residue 建立一个局部坐标系。
可以理解为:
Residue i
C
/
CA -------- N
每个 residue 有:
Rotation R_i
Translation t_i
也就是一个刚体 frame:
Frame_i = (R_i,t_i)
因此:
residue
↓
local coordinate system
这样可以更加自然地描述蛋白质几何。
二十、Invariant Point Attention(IPA)
这是 AlphaFold 2 Structure Module 最关键的创新之一。
IPA:
Invariant Point Attention
它不是普通 Transformer attention。
普通 attention:
Q · K
而 IPA 同时考虑:
sequence features
+
pair features
+
3D geometric points
可以理解成:
residue i
│
┌─────────┴─────────┐
↓ ↓
sequence information 3D geometry
│ │
└─────────┬─────────┘
↓
IPA
↓
更新 residue
的空间位置
关键是:
无论你把整个蛋白质整体旋转还是平移,IPA得到的结果应该保持一致。
这叫:
invariance / equivariance
论文中指出,IPA通过在 residue local frame 中生成 query/key/value points,并通过坐标变换保证对全局旋转和平移的不变性。
二十一、为什么"几何等变"这么重要?
假设真实蛋白:
A
/
B
/
C
你把它旋转:
C
\
B
\
A
这两个结构其实完全一样。
所以神经网络应该知道:
Structure 1
=
Structure 2
而不是认为:
Structure 1 ≠ Structure 2
这就是几何深度学习里面非常重要的:
SE(3) invariance/equivariance
AlphaFold 2 的 Structure Module 正是利用这种思想处理三维结构。
二十二、Structure Module如何逐渐产生结构?
可以把它理解成:
初始:
所有 residue
都没有明确位置
↓
Iteration 1
粗略形成:
α-helix
β-sheet
loop
↓
Iteration 2
调整:
residue-residue distance
↓
Iteration 3
调整:
backbone orientation
↓
Iteration 4
调整:
side-chain geometry
↓
最终结构
也就是说:
不是一步预测完成,而是不断 refinement。
二十三、Recycling:AlphaFold 2非常重要的机制
这是 AlphaFold 2 另一个关键创新。
普通网络:
Input
↓
Network
↓
Output
AlphaFold 2:
Input
↓
Evoformer
↓
Structure Module
↓
Structure
↓
再次进入网络
↓
进一步修正
↓
Structure
↓
再次进入
↓
...
这个过程叫:
Recycling
二十四、为什么 Recycling有效?
因为第一次预测可能是:
大致正确
但是:
helix A
helix B
loop C
之间的相对位置可能不正确。
第二轮可以根据第一次的结构:
发现:
A-B距离不合理
↓
修正
B-C角度不合理
↓
修正
整体domain orientation不合理
↓
修正
最终:
粗结构
↓
精结构
↓
更精细结构
AlphaFold 2 论文显示 recycling 对准确率有显著贡献,而且额外训练成本相对较小。
二十五、AlphaFold 2到底预测什么?
最终主要得到:
1. Backbone
N
CA
C
O
2. Side chain
例如:
ARG
LYS
ASP
GLU
TRP
TYR
每个 residue 的 side-chain χ angles。
3. 3D coordinates
最终输出类似:
ATOM 1 N ALA A 1 ...
ATOM 2 CA ALA A 1 ...
ATOM 3 C ALA A 1 ...
ATOM 4 O ALA A 1 ...
最终可以生成:
PDB
或者:
mmCIF
二十六、AlphaFold 2如何判断自己预测得准不准?
这是实际科研中非常重要的问题。
AlphaFold 2不会只给你:
structure.pdb
还会给:
pLDDT
pTM
PAE
二十七、pLDDT
全称:
predicted Local Distance Difference Test
它衡量:
局部结构预测有多可靠。
通常可以粗略理解:
| pLDDT | 含义 |
|---|---|
| >90 | 非常高 |
| 70--90 | 比较可靠 |
| 50--70 | 低可信 |
| <50 | 很不可靠 |
例如:
Residue
1 96
2 95
3 94
...
80 92
81 45
82 32
83 28
那么:
1--80
可能是稳定结构域。
而:
81--83
可能是:
disordered region
二十八、pLDDT为什么重要?
例如你做:
Molecular docking
发现 ligand docking site:
pLDDT = 96
这是比较好的。
但是如果:
binding site pLDDT = 42
那么直接拿这个结构做 docking 就需要非常谨慎。
因为:
AlphaFold 可能根本没有准确预测这个区域。
这和你之前问的 Vina → PyRosetta → MD 工作流非常相关。
二十九、PAE是什么?
PAE:
Predicted Aligned Error
它和 pLDDT 不一样。
pLDDT:
某一个 residue 本身准不准?
PAE:
两个区域之间的相对位置准不准?
例如一个蛋白:
Domain A
Domain B
可能:
Domain A内部:
pLDDT = 95
Domain B内部:
pLDDT = 93
但是:
A ↔ B
相对位置不确定。
那么:
PAE(A,B)
可能很高。
三十、这对于多结构域蛋白特别重要
例如:
Domain 1
┌───────────┐
│ │
└───────────┘
\
\
linker
\
┌───────────┐
│ Domain 2 │
└───────────┘
可能:
Domain 1:高置信度
Domain 2:高置信度
Domain 1 ↔ Domain 2:
低置信度
这并不代表:
Domain 1 和 Domain 2 本身预测错了。
而可能代表:
两个 domain 的相对 orientation 不确定。
这是分析 AlphaFold 结构时非常容易误判的地方。
三十一、AlphaFold 2的Loss是什么?
如果想真正理解 AlphaFold 2 的深度学习机制,需要理解 loss。
最核心的结构损失之一:
FAPE
Frame Aligned Point Error
它不是简单:
predicted xyz
-
true xyz
而是:
预测结构
↓
在 residue local frame 下
↓
与真实结构比较
因此:
整体旋转
整体平移
不会影响结构误差。
三十二、FAPE可以怎么理解?
假设:
Predicted:
A
/
B
真实:
A
/
B
即使整体旋转:
Predicted:
A
\
B
从全局 xyz 看:
xyz完全不同
但从 residue local frame 看:
relative geometry
仍然可能完全正确。
因此 FAPE 更符合蛋白质结构的几何本质。
将 FAPE 作为主要结构训练损失之一,并通过多个 residue frames 对预测原子位置进行比较。
三十三、AlphaFold 2还使用哪些Loss?
不是只有 FAPE。
还包括:
Distogram loss
预测:
residue i ↔ residue j
的距离分布。
MSA masked loss
类似 BERT:
M K T I [MASK] A L
预测:
I
帮助模型学习进化关系。
lDDT loss
预测局部结构准确度。
Side-chain loss
帮助预测:
χ1
χ2
χ3
χ4
Structure violation loss
惩罚:
bond length violation
bond angle violation
steric clash
等等。
三十四、AlphaFold 2为什么需要"自蒸馏"?
这是另一个很漂亮的设计。
PDB:
有结构
但是:
蛋白质序列数量
≫
实验结构数量
所以 DeepMind 先训练一个模型:
PDB
↓
AlphaFold
↓
预测 350,000+ sequences
得到:
sequence
+
predicted structure
然后筛选高置信度结构,用于再次训练。
也就是:
实验结构
↓
初始AlphaFold
↓
大量预测结构
↓
高置信预测
↓
pseudo-label
↓
重新训练AlphaFold
这就是:
Self-distillation
论文报道这一过程可以显著提升模型性能。
三十五、AlphaFold 2的完整工作流
现在把整个系统串起来:
FASTA
│
↓
┌────────────────┐
│ MSA Search │
│ UniRef/BFD/... │
└───────┬────────┘
│
↓
MSA
│
├───────────────┐
│ │
↓ ↓
MSA representation Templates
│ │
└───────┬───────┘
↓
Evoformer
│
┌─────────┴─────────┐
↓ ↓
MSA repr Pair repr
↑ ↑
└───────互相更新─────┘
│
↓
Structure Module
│
↓
IPA + frames
│
↓
3D structure
│
↓
Recycling
│
└─────────────┐
↓
Evoformer
↓
Refinement
↓
Structure
三十六、AlphaFold 2真正的"灵魂"是什么?
如果把整个 AlphaFold 2 压缩成几个核心概念,我认为最重要的是:
① MSA
告诉模型:
进化上哪些 residue 是相关的。
↓
② Pair representation
告诉模型:
哪些 residue 可能存在空间关系。
↓
③ Evoformer
解决:
如何让进化信息和空间信息相互推理。
↓
④ Triangle update
解决:
三维空间中的几何一致性。
↓
⑤ Structure Module
解决:
如何把抽象 representation 变成真正的 3D structure。
↓
⑥ IPA
解决:
如何在三维空间中进行具有几何不变性的 attention。
↓
⑦ Recycling
解决:
如何不断修正已经预测出来的结构。
三十七、AlphaFold 2和传统同源建模有什么区别?
可以这样比较:
| 方法 | 核心思想 |
|---|---|
| Homology modeling | 找相似结构模板 |
| Threading | 把序列套到已有 fold |
| Rosetta | 搜索/优化构象 |
| MD | 根据物理力场模拟 |
| AlphaFold 1 | 深度学习 + distance/contact |
| AlphaFold 2 | MSA + Evoformer + geometric deep learning + end-to-end structure prediction |
AlphaFold 2最大的突破就是:
不再把结构预测拆成很多人工步骤,而是让网络端到端学习从进化信息到三维结构之间的映射。
三十八、AlphaFold 2和Vina有什么关系?
这个非常值得掌握。
PyRosetta
AutoDock Vina
GROMACS
可以把它们放在一个结构生物学工作流里:
Protein sequence
│
↓
AlphaFold 2
│
↓
Protein structure
│
┌──────┴───────┐
↓ ↓
PyRosetta Vina
│ │
structure ligand docking
refinement │
│ ↓
└────────→ binding pose
│
↓
MD
GROMACS
│
↓
protein-ligand dynamics
│
↓
MM/PBSA / interaction
所以:
AlphaFold 2负责"蛋白长什么样"。
Vina负责"配体可能怎么进去"。
PyRosetta可以做局部构象优化/结构设计。
GROMACS负责"这个复合物在动力学上是否稳定"。
这几个工具实际上是互补的。
三十九、但AlphaFold 2不是"万能结构预测器"
这一点尤其重要。
AlphaFold 2最擅长的是:
单个蛋白质相对稳定的天然结构。
但是它存在明显局限。
1. Intrinsically disordered regions
例如:
p53
中的一些 intrinsically disordered region。
可能:
pLDDT ↓
2. Domain orientation
两个 domain:
Domain A
+
Domain B
可能分别预测很好,但:
A-B相对位置
不确定。
3. Protein dynamics
AlphaFold主要预测:
一个代表性结构。
而不是完整的:
conformational ensemble
也就是说:
apo
active
inactive
intermediate
这些不同状态并不一定都能正确获得。
4. Ligand binding
经典 AlphaFold 2:
主要针对 protein structure
并不是专门的:
protein-ligand complex prediction
这也是后来 AlphaFold 3 非常重要的升级方向。
5. Protein-protein interaction
AlphaFold-Multimer可以做,但其稳定性和准确性与单体 AlphaFold 2 不完全相同。官方仓库也明确说明 Multimer 的实现与 monomer 系统存在稳定性差异。
四十、AlphaFold 2和AlphaFold 3最本质的区别
你之前已经开始学习 AlphaFold 3,这里正好串起来。
AlphaFold 2:
主要是:
Protein
↓
Protein structure
核心:
MSA
Evoformer
Structure Module
IPA
AlphaFold 3:
思路进一步扩展:
Protein
DNA
RNA
Ligand
Ion
Modified residue
↓
Complex structure
因此:
AF2
=
protein structure prediction
AF3
=
biomolecular complex structure prediction
这也是为什么 AlphaFold 3 不再简单沿用 AlphaFold 2 的结构模块,而采用了更加统一的 diffusion-based architecture。你前面看的 AlphaFold 3 论文中提到的 diffusion-based architecture,就是理解 AF3 的关键。
四十一、如果你要真正"学懂"AlphaFold 2,建议分成四个层次
考虑到你目前已经在学习:
Python
PyRosetta
AutoDock Vina
GROMACS
我不建议你一开始就直接读 AlphaFold 2 全部源码。
应该这样学:
Level 1:生物学
先掌握:
Protein sequence
↓
secondary structure
↓
tertiary structure
↓
domain
↓
protein folding
然后理解:
MSA
homology
conservation
co-evolution
contact
distance
Level 2:深度学习
掌握:
Transformer
Attention
Self-attention
Embedding
Encoder
Residual connection
LayerNorm
尤其是:
Q
K
V
一定要彻底搞懂。
Level 3:结构生物学 + 几何深度学习
重点学习:
Rotation
Translation
Rigid body
Coordinate system
Frame
SE(3)
Invariant
Equivariant
Quaternion
Rotation matrix
然后理解:
IPA
FAPE
Level 4:AlphaFold源码
最后再进入:
alphafold/
├── data/
├── model/
├── common/
├── protein/
├── residue_constants.py
├── run_alphafold.py
└── ...
官方仓库提供了 AlphaFold 2 inference pipeline 和相关模型实现。(GitHub)
四十二、真正需要记住的一张图
如果以后要向别人解释 AlphaFold 2,可以直接画:
FASTA
│
↓
Homologous sequences
│
↓
MSA
│
↓
┌─────────────────────────┐
│ Evoformer │
│ │
│ MSA representation │
│ ↕ │
│ Pair representation │
│ │
│ Attention │
│ Outer Product │
│ Triangle Update │
│ Triangle Attention │
└────────────┬────────────┘
│
↓
Structure Module
│
↓
Invariant Point Attention
│
↓
Residue rigid frames
│
↓
3D coordinates
│
↓
FAPE
│
↓
Recycling
│
└──────→ 再预测
↓
Final structure
│
┌──────────┼──────────┐
↓ ↓ ↓
pLDDT PAE pTM
一句话总结 AlphaFold 2:
AlphaFold 2不是简单地从氨基酸序列"猜"三维结构,而是首先利用MSA中的进化信息建立残基之间的关系,再通过Evoformer反复推理MSA与pair关系,利用Triangle Update建立三维几何一致性,最后通过具有几何等变性的Structure Module/IPA生成三维坐标,并通过recycling反复修正结构。 )
接下来真正进入 "AlphaFold 2源码级理解" ,最值得继续深入的是 Evoformer 的每一个模块到底怎么计算(MSA Row Attention、MSA Column Attention、Outer Product Mean、Triangle Multiplication、Triangle Attention)以及 Structure Module 中 IPA、FAPE、rigid frame 的数学公式。这部分弄懂之后,AlphaFold 2 的核心算法基本就真正吃透了(当然我是不行了)。
接下来我们看看AlphaFold 3
前面已经把 AlphaFold 2 的 MSA → Evoformer → Structure Module → IPA → Recycling 这条路线理解了一遍,所以这次讲 AlphaFold 3,重点放在:
AF3 相比 AF2 到底改了什么?为什么要改?Diffusion 是怎么工作的?Pairformer 是什么?为什么 AF3 能处理蛋白质--小分子、蛋白质--DNA/RNA、离子、修饰残基?
这也是理解 AF3 的关键。
AlphaFold 3 于 2024 年发表在 Nature 。它最大的变化不是简单地"AF2升级版",而是把预测目标从以蛋白质结构为中心,扩展到整个生物分子复合物,并把最终三维结构生成机制从 AF2 的 Structure Module 改成了 diffusion-based generative model。
一、先用一句话理解 AlphaFold 3
如果 AlphaFold 2 可以概括为:
"根据蛋白质序列和进化信息,预测蛋白质三维结构。"
那么 AlphaFold 3 更接近:
"根据蛋白质、DNA、RNA、小分子、离子和修饰残基等输入,直接生成整个生物分子复合物的三维原子结构。"
也就是:
AlphaFold 2
Protein sequence
↓
MSA
↓
Evoformer
↓
Structure Module
↓
Protein structure
而:
AlphaFold 3
Protein
DNA
RNA
Ligand
Ion
Modified residue
↓
统一的分子表示
↓
Pairformer
↓
Diffusion module
↓
所有原子的3D坐标
↓
Biomolecular complex
这是 AF3 最重要的思想转变。论文明确指出,AF3 可以联合预测包含蛋白质、核酸、小分子、离子和修饰残基的复合物结构。
二、为什么 AlphaFold 2 不够?
这其实是理解 AF3 为什么出现的关键。
AF2 最擅长的是:
Protein
↓
Protein structure
后来可以通过 AlphaFold-Multimer 做:
Protein A
Protein B
↓
Protein-protein complex
但是生命体系远远不只有蛋白质。
例如:
蛋白质 + DNA
Transcription factor
+
DNA
蛋白质 + RNA
RNA-binding protein
+
RNA
蛋白质 + 小分子
Protein
+
ATP
或者:
Kinase
+
small molecule inhibitor
蛋白质 + 金属离子
Protein
+
Zn2+
抗体 + 抗原
Antibody
+
Antigen
糖基化蛋白
Protein
+
Glycan
这些都属于:
biomolecular interactions
而不是单纯的 protein folding。
所以 AF3 的目标发生了变化:
AF2
Protein structure prediction
↓
protein-centric
AF3
Biomolecular structure prediction
↓
complex-centric
三、AF3到底能预测哪些东西?
AF3 的输入可以包括:
| 分子类型 | AF3 |
|---|---|
| Protein | ✅ |
| DNA | ✅ |
| RNA | ✅ |
| Small molecule | ✅ |
| Ion | ✅ |
| Modified residue | ✅ |
| Covalent modification | 部分支持 |
| Protein-protein | ✅ |
| Protein-DNA | ✅ |
| Protein-RNA | ✅ |
| Protein-ligand | ✅ |
| Antibody-antigen | ✅ |
论文报道 AF3 在 protein--ligand、protein--nucleic acid 和 antibody--antigen 等任务上,相比此前专门方法取得明显提升。
四、AF3最重要的变化:从"预测蛋白结构"变成"生成原子坐标"
这是 AF2 和 AF3 最本质的区别之一。
AF2 Structure Module 的思路是:
residue representation
↓
residue frame
↓
side-chain torsion
↓
atom coordinates
也就是说 AF2 对蛋白质的表示高度依赖:
amino acid
↓
backbone frame
↓
side-chain torsion
这对于蛋白质非常自然。
但如果你现在突然加入:
ATP
DNA
RNA
Zn2+
small molecule
glycan
问题就来了。
这些分子没有统一的:
protein residue frame
+
χ angles
所以 AF3 选择了一个非常大胆的方案:
不再专门为蛋白质设计坐标生成机制,而是直接预测整个体系的原子坐标。
论文明确指出,AF3 用 diffusion module 直接预测 raw atom coordinates,取代了 AF2 中基于 amino-acid-specific frames 和 side-chain torsion angles 的 Structure Module。
五、这就是 Diffusion 的核心作用
你可以先把 AF3 的 diffusion 理解成:
从一团随机噪声开始,逐渐把它"去噪"成一个合理的生物分子三维结构。
比如最终结构:
Protein + Ligand
Protein
███████████
█████████████
●
│
Ligand
AF3 不直接:
sequence
↓
xyz
而是:
sequence + molecular information
↓
structural representation
↓
random 3D coordinates
↓
denoising
↓
denoising
↓
denoising
↓
final structure
这就是:
Diffusion-based structure generation
六、什么是Diffusion?
如果之前接触过 Stable Diffusion、图像生成,那么思想其实非常类似。
图像 diffusion:
真实图片
↓
不断加噪
↓
纯噪声
训练网络学习:
纯噪声
↓
去噪
↓
图片
AF3:
真实蛋白质复合物结构
↓
加噪声
↓
随机原子坐标
训练:
带噪结构
↓
Diffusion network
↓
真实结构
推理时反过来:
Random noise
↓
Denoising
↓
Denoising
↓
Denoising
↓
Denoising
↓
3D biomolecular complex
论文明确描述了这一过程:训练时给模型加入噪声的原子坐标,让模型预测真实坐标;推理时从随机噪声开始递归去噪得到最终结构。
七、为什么Diffusion特别适合AF3?
这里是一个非常深的原因。
假设:
Protein + ligand
配体可能有很多合理构象:
Pose 1
Pose 2
Pose 3
Pose 4
蛋白质也可能存在:
Conformation A
Conformation B
Conformation C
所以真实问题并不是:
"唯一正确答案是什么?"
而是:
"给定这些分子,哪些三维结构是合理的?"
这本质上是一个:
多模态分布
问题。
Diffusion model 天然适合:
P(structure | input)
也就是:
给定输入分子,生成可能的结构分布。
因此 AF3 可以通过不同 random seed 得到多个结构样本。
八、AF3的整体架构
可以先记住这一张图:
Input
│
┌─────────────┼─────────────┐
↓ ↓ ↓
Protein DNA RNA
↓ ↓ ↓
MSA/template sequence sequence
┌─────────────┼─────────────┐
↓ ↓ ↓
Ligand Ion Modification
└─────────────┬─────────────┘
↓
Input representations
│
↓
Pairformer
│
┌────────┴────────┐
↓ ↓
Single representation Pair representation
│ │
└────────┬────────┘
↓
Diffusion Module
↑
noisy coordinates
│
iterative denoising
│
↓
all-atom coordinates
│
↓
Biomolecular complex
AF3 的 Pairformer 有 48 个 block;论文给出的 pair representation channel 为 128、single representation channel 为 384。
九、AF3第一阶段:Input representation
AF3首先需要把各种分子统一转换成机器学习能够处理的 representation。
例如:
Protein
DNA
RNA
Ligand
Ion
它们本身完全不同:
Protein → amino acids
DNA → nucleotides
RNA → nucleotides
Ligand → arbitrary chemical graph
Ion → atom
AF3的一个重要思想就是:
把不同类型的生物分子放到统一的结构建模框架中。
十、Token:AF3非常重要的概念
AF3不像 AF2 那样简单地把:
1 amino acid = 1 residue token
作为唯一核心。
AF3的 token 可以对应:
protein residue
nucleotide
ligand atom
因此一个复杂体系可能:
Protein
300 residues
DNA
30 nucleotides
Ligand
25 atoms
形成一个统一 token 序列。
可以粗略表示:
P1 P2 P3 ... P300
D1 D2 ... D30
L1 L2 ... L25
所以:
N_tokens
是 AF3 一个非常重要的计算规模指标。
十一、为什么Ligand需要特殊处理?
蛋白质的化学组成相对规则:
20 amino acids
RNA:
A U G C
DNA:
A T G C
但是小分子:
Ligand A
Ligand B
Ligand C
...
化学空间极其巨大。
例如:
benzene
ATP
NAD
drug
cofactor
lipid
sugar
每个分子的:
bond
atom type
charge
stereochemistry
ring
functional group
都可能不同。
所以 AF3 需要一个能够处理:
arbitrary chemical components
的结构生成框架。
这也是 diffusion 直接预测原子坐标非常重要的原因。论文特别强调这种设计能够更自然地处理复杂的 ligand 和其他化学组分。
十二、AF3的Pair Representation
这一点和 AF2 是有继承关系的。
AF2:
residue i
↕
residue j
Pair(i,j)
AF3:
token i
↕
token j
Pair(i,j)
所以 AF3 可以表达:
Protein residue
↕
Ligand atom
也可以:
DNA nucleotide
↕
Protein residue
甚至:
Ligand atom
↕
Ligand atom
因此 AF3 的 pair representation 从:
residue-residue relationship
扩展成:
general molecular token-token relationship
这是非常重要的升级。
十三、AF3为什么叫Pairformer?
AF2:
Evoformer
AF3:
Pairformer
这是一个非常值得注意的变化。
AF2的核心是:
MSA
↕
Pair
因此叫:
Evoformer
因为:
Evolutionary information + Transformer
而 AF3 的结构推理不再以 AF2 那种 MSA representation ↔ pair representation 的形式为核心。
它更强调:
Single representation
+
Pair representation
的迭代更新。
因此:
Pairformer
成为 AF3 的主要 trunk。
十四、AF2 vs AF3的一个核心变化
可以直接记:
AF2
MSA
↓
Evoformer
↓
Pair
↓
Structure Module
而:
AF3
Input features
↓
Pairformer
↓
Single + Pair
↓
Diffusion
↓
Atomic coordinates
也就是说:
AF3不是简单地把 AF2 的 Structure Module 换成 diffusion,而是整个结构表示和生成范式都发生了变化。
十五、AF3的Pairformer具体做什么?
Pairformer继续学习:
token i
↔
token j
之间的关系。
例如:
Protein residue 45
↕
Ligand atom 7
网络需要学习:
是否接触?
距离可能是多少?
方向如何?
化学环境如何?
类似地:
Protein residue 120
↕
DNA nucleotide 8
需要学习:
是否形成 interface?
是否存在氢键?
空间关系?
所以 Pairformer 本质上是在建立:
整个复合物的关系图。
十六、可以把Pairformer理解成"分子关系推理器"
例如:
Protein
/ | \
/ | \
DNA Ligand RNA
\ | /
\ | /
Ion
Pairformer学习:
Protein ↔ DNA
Protein ↔ Ligand
Protein ↔ RNA
Protein ↔ Ion
DNA ↔ RNA
Ligand ↔ Ion
...
最终得到一个:
N × N
的关系矩阵。
因此 AF3 不再只是:
"蛋白质自己折叠成什么样?"
而是:
"整个分子系统中所有组成部分如何组织在一起?"
十七、AF3真正的核心:Diffusion Module
这是 AF3 最值得深入理解的地方。
Pairformer输出:
single representation
+
pair representation
然后进入 diffusion。
同时:
random/noisy coordinates
也输入 diffusion network。
于是:
Pairformer
│
┌───────┴───────┐
↓ ↓
features noisy coordinates
│ │
└───────┬───────┘
↓
Diffusion
↓
denoised coords
↓
denoised coords
↓
final coordinates
十八、Diffusion实际上在学习什么?
可以用一个数学表达:

N个原子
每个原子3D坐标
也就是:

训练的时候给它加入噪声:
X_t
于是:
真实结构 X0
↓
加噪声
↓
Xt
网络学习:

即:
根据当前 noisy structure + 分子信息,预测真实结构。
十九、为什么要从"噪声"开始?
因为这样模型就可以学习:
什么结构是合理的
而不是死记:
sequence → 唯一坐标
例如一个 ligand:
O
|
C --- C --- N
/
C
可能存在多个合理构象。
Diffusion可以:
seed 1
↓
pose A
seed 2
↓
pose B
seed 3
↓
pose C
因此:
AF3本质上具有生成模型属性。
论文也明确强调,diffusion训练过程能够产生结构分布,因此在模型不确定时可以产生不同答案。
二十、AF3的"多尺度"非常重要
这是论文中一个很漂亮的观点。
Diffusion中的不同噪声水平对应不同尺度的结构问题。
高噪声
结构非常乱:
● ●
●
●
模型主要需要学习:
整体domain arrangement
protein-protein orientation
protein-ligand placement
也就是:
Global structure
低噪声
已经非常接近真实结构:
Protein
████████
● ligand
此时需要修正:
bond geometry
side-chain
local stereochemistry
即:
Local structure
论文明确指出,高噪声阶段更强调大尺度结构,低噪声阶段则更强调局部结构和立体化学。
二十一、这是AF3为什么能处理小分子的关键之一
传统蛋白结构预测可以使用:
residue frame
+
torsion angle
但 ligand:
C
C
N
O
S
P
...
化学结构非常复杂。
如果强行建立:
ligand-specific torsion system
会非常麻烦。
AF3直接:
atom 1 → xyz
atom 2 → xyz
atom 3 → xyz
...
然后通过 diffusion 学习合理的几何结构。
因此:
Protein
DNA
RNA
Ligand
Ion
Glycan
都可以进入同一个坐标生成框架。
二十二、AF3为什么不再像AF2一样强调IPA?
这是一个非常重要的区别。
AF2:
Structure Module
↓
IPA
↓
rigid frames
↓
coordinates
AF3:
Pairformer
↓
Diffusion
↓
atomic coordinates
论文特别指出,AF3的 diffusion 架构不需要 AF2 那种针对全局旋转和平移的特殊 invariance/equivariance 设计,因此省去了相应架构复杂性。
这是一个很大的架构变化。
二十三、为什么AF3可以去掉很多structure violation loss?
AF2需要专门处理:
bond length
bond angle
steric clash
chirality
因此有:
violation loss
帮助网络产生化学合理的蛋白结构。
AF3 diffusion:
high noise
↓
global structure
↓
low noise
↓
local geometry
模型在低噪声阶段直接学习:
bond geometry
stereochemistry
local structure
因此不再需要 AF2 那种大量专门的 stereochemical violation handling。论文明确提到这一点。
二十四、AF3和Vina的关系:这对你特别重要
你之前一直在学习:
AutoDock Vina
PyRosetta
GROMACS
现在可以看到一个很重要的变化。
传统工作流:
Protein structure
↓
Vina
↓
Ligand docking
也就是:
蛋白质先固定,再寻找 ligand pose。
而 AF3:
Protein
+
Ligand
↓
Joint structure prediction
↓
Protein-ligand complex
也就是说:
蛋白质和 ligand 的空间关系可以联合预测。
论文报告 AF3 在蛋白质--配体相互作用预测上明显优于其比较的传统 docking 方法。
二十五、但是:AF3 ≠ Vina升级版
这个一定不要混淆。
Vina的任务:
给定protein
+
给定ligand
搜索binding pose
重点:
docking
scoring
binding mode
AF3:
protein
+
ligand
+
biomolecular context
→
joint structure generation
重点:
structure prediction
因此:
AF3
≠
Vina
更合理的理解是:
AF3
↓
预测可能complex结构
↓
Vina/其他docking
↓
进一步搜索/验证
↓
MD
↓
动力学验证
不同任务可以互补。
二十六、AF3为什么在Protein-Ligand上提升这么明显?
可以把原因概括成:
AF2思路
protein structure
↓
固定protein
↓
docking ligand
AF3
protein
+
ligand
+
chemical features
↓
joint representation
↓
joint diffusion
↓
protein-ligand complex
也就是说:
ligand不再是"结构预测之后再加进去"的东西,而是整个结构生成过程的一部分。
二十七、Protein-DNA预测也是同样的逻辑
例如:
Transcription factor
+
DNA
AF3不是:
先预测TF
↓
再预测DNA
↓
再dock
而是:
TF
+
DNA
↓
Pairformer
↓
joint representation
↓
Diffusion
↓
TF-DNA complex
所以它可以直接学习:
protein residue
↕
DNA nucleotide
之间的空间关系。
二十八、RNA也是一样
例如:
RNA
+
RNA-binding protein
AF3可以学习:
amino acid
↕
nucleotide
之间的 interaction。
这对于:
RNA-binding proteins
ribosomes
RNA enzymes
RNA therapeutics
等体系非常重要。
二十九、抗体-抗原为什么也很重要?
例如:
Antibody
↓
CDR loop
↓
Antigen
真正的问题不是:
antibody本身是什么结构?
而是:
CDR如何与 antigen epitope 结合?
AF3可以直接预测:
Antibody
+
Antigen
↓
complex
论文报告 AF3 的 antibody-antigen 预测准确率高于 AlphaFold-Multimer v2.3。
三十、AF3输出什么?
AF3最终输出:
mmCIF
而不是单纯依赖 PDB。
官方 inference pipeline 每个 sample/seed 都会输出:
confidence JSON
summary confidence JSON
mmCIF
同时还可以输出 distogram 等中间结果。(GitHub)
三十一、AF3的置信度指标
AF2最熟悉:
pLDDT
PAE
pTM
AF3仍然提供结构置信度信息,但对于复合物问题,更需要关注:
pLDDT
PAE
pTM/ipTM相关指标
界面置信度
尤其是:
不要只看整体平均 pLDDT。
对于 protein-ligand:
Protein内部
pLDDT = 95
Ligand
confidence = 高
但是:
Protein-Ligand interface
confidence = 低
这种情况下:
蛋白质本身预测很好,并不代表 ligand binding pose 可靠。
这是实际做 docking / drug discovery 时非常重要的区别。
三十二、AF3的一个非常重要的能力:生成多个sample
因为 diffusion 是生成模型:
random seed 1
↓
structure 1
random seed 2
↓
structure 2
random seed 3
↓
structure 3
因此:
Sample 1
Sample 2
Sample 3
...
可以反映模型对于:
binding pose
conformation
interaction
的不同可能性。
官方输出目录也按照:
seed-<seed>_sample-<sample>
组织结果。
三十三、这和AF2有什么本质区别?
可以用这张表记:
| 特征 | AlphaFold 2 | AlphaFold 3 |
|---|---|---|
| 主要目标 | Protein structure | Biomolecular complex |
| Protein | ✅ | ✅ |
| DNA | 有限/非核心 | ✅ |
| RNA | 有限/非核心 | ✅ |
| Ligand | ❌核心能力 | ✅ |
| Ion | ❌核心能力 | ✅ |
| Modified residue | 有限 | ✅ |
| 核心 trunk | Evoformer | Pairformer |
| MSA | 核心 | 仍使用,但角色改变 |
| Structure module | IPA | Diffusion |
| 坐标生成 | residue frame | raw atom coordinates |
| Side-chain torsion | 重要 | 不再作为核心坐标参数化 |
| Diffusion | ❌ | ✅ |
| 多结构生成 | 有限 | 天然支持 |
| Protein-ligand | 不是核心 | 核心能力 |
| Protein-DNA/RNA | 不是核心 | 核心能力 |
三十四、AF2 → AF3最重要的技术演化
我建议你把它理解成下面这条路线:
AlphaFold 2
│
│
Protein structure prediction
│
┌───────────┴───────────┐
↓ ↓
MSA Pair
└──────────┬────────────┘
↓
Evoformer
↓
Structure Module
↓
IPA
↓
Protein coordinates
↓
AlphaFold 3
│
│
Biomolecular complexes
│
┌────────────┼────────────┐
↓ ↓ ↓
Protein DNA/RNA Ligand
│ │ │
└────────────┼────────────┘
↓
Pairformer
↓
Single + Pair
↓
Diffusion
↓
Raw atomic coordinates
↓
Complex structure
所以真正的升级不是:
"Evoformer升级了一点。"
而是:
从 protein-centric prediction → general biomolecular structure generation。
三十五、AF3训练阶段到底怎么训练?
可以把训练简化成:
实验结构
↓
真实complex
↓
加入noise
↓
X_t
↓
Diffusion network
↓
预测X_0
↓
与真实结构比较
↓
loss
↓
更新参数
同时输入:
sequence
MSA
templates
chemical information
让模型学习:
P(X \\mid S)
其中:
X = 3D structure
S = molecular sequence/features
也就是说:
给定分子信息,学习三维结构分布。
三十六、为什么AF3的生成能力非常重要?
假设:
Protein + ligand
真实世界可能:
Pose A 40%
Pose B 35%
Pose C 15%
Pose D 10%
AF2/Vina很多时候更倾向于:
给一个最优pose
而 diffusion 更自然:
sample
↓
sample
↓
sample
↓
sample
从而获得:
structure ensemble
当然:
不同sample并不等于真实概率分布。
不能简单认为:
sample出现4次
=
生物学概率40%
这一点必须谨慎。
三十七、AF3的最大突破可以总结成三个"统一"
第一:统一分子类型
Protein
DNA
RNA
Ligand
Ion
Modified residue
↓
统一框架
第二:统一结构表示
不是:
Protein → residue frame
Ligand → 特殊处理
而是:
general molecular tokens
↓
atomic coordinates
第三:统一结构生成
不是:
protein folding
+
docking
+
nucleic acid prediction
+
special chemical handling
而是:
Biomolecular system
↓
Pairformer
↓
Diffusion
↓
Joint structure
这就是 AF3 的真正意义。
三十八、AF3目前最大的局限
AF3非常强,但绝对不能理解成:
"输入蛋白+药物,就能得到真实结合模式。"
这是错误的。
① 不代表真实动力学
AF3预测的是:
structure
不是:
molecular dynamics
它不能直接告诉你:
binding kinetics
kon
koff
ΔG
free energy
所以:
AF3
↓
结构假设
仍然需要:
MD
free-energy calculation
experiment
等验证。
三十九、② 不等于真实binding affinity预测
例如:
Ligand A
Ligand B
AF3可能都能生成:
合理pose
但这并不意味着:
A affinity > B affinity
所以不能直接:
AF3 score
=
binding affinity
四十、③ Flexible protein仍然困难
例如:
IDR
loop
flexible domain
allosteric region
可能存在:
多个构象
AF3可能只给出某一个 plausible structure。
四十一、④ 多状态蛋白依然困难
例如 GPCR:
Inactive
↕
Intermediate
↕
Active
AF3并不意味着:
自动知道你想要哪一种生物学状态。
如果输入信息不足,模型可能得到某个合理但并非实验目标状态的构象。
四十二、⑤ Cofactor / ligand / protonation等问题
对于药物设计:
ligand protonation
tautomer
charge
metal coordination
water molecules
这些都可能显著影响结构。
因此:
AF3预测结果仍然需要化学合理性检查。
四十三、AF3和你正在学习的PyRosetta/Vina/GROMACS怎么串起来?
如果你的目标最终是:
蛋白质结构预测 → 小分子结合 → docking → refinement → MD
那么可以建立这个体系:
Protein sequence
│
↓
AlphaFold 3
│
Protein + ligand complex
│
↓
Structure analysis
│
┌─────────┴─────────┐
↓ ↓
PyRosetta Vina
│ │
local refinement docking poses
│ │
└─────────┬─────────┘
↓
Best complex
│
↓
GROMACS
│
↓
MD simulation
│
┌─────────┼─────────┐
↓ ↓ ↓
RMSD RMSF H-bond
│
↓
MM/PBSA/GBSA
│
↓
binding stability
这其实非常适合你现在正在学习的方向。
四十四、如果你做药物研发,AF3最值得用在哪里?
我会把优先级排成:
① Protein-ligand complex prediction
Target
+
Drug
↓
AF3
↓
complex
② Protein-protein interaction
Protein A
+
Protein B
③ Protein-DNA
TF
+
DNA
④ Protein-RNA
RBP
+
RNA
⑤ Antibody-antigen
Antibody
+
Antigen
⑥ 多组分复合物
Protein
+
DNA
+
RNA
+
ligand
+
ion
这正是 AF3 相比 AF2 最有价值的地方。
四十五、AF3本地部署需要什么?
目前 DeepMind 已公开 AF3 inference code,并提供模型参数申请机制;官方仓库说明可以本地运行 inference
官方安装文档目前要求:
Linux
NVIDIA GPU
Compute Capability >= 8.0
官方验证过:
A100 80GB
H100 80GB
对于最长约 5,120 tokens 的输入,官方说明在单张 A100/H100 80GB 上可以运行;完整数据库需要大量磁盘空间,文档给出的规模最高约 1 TB。
目前官方 GitHub 最新 release 已到 v3.0.3,该版本对代码许可、性能和若干 bug 进行了更新。
四十六、最后把AF2和AF3彻底串起来
你现在可以用下面这张图理解整个 AlphaFold 演化:
AlphaFold 1
│
Deep learning + MSA
│
↓
distance/contact
│
↓
protein structure
↓
AlphaFold 2
│
┌──────────┴──────────┐
↓ ↓
MSA Pair
└──────────┬──────────┘
↓
Evoformer
↓
Structure Module
↓
IPA
↓
3D protein structure
↓
Recycling
↓
AlphaFold 3
│
┌─────────────┼─────────────┐
↓ ↓ ↓
Protein DNA/RNA Ligand
│ │ │
└─────────────┼─────────────┘
↓
Pairformer
↓
Single + Pair representation
↓
Diffusion
↓
random/noisy coordinates
↓
iterative denoising
↓
all-atom coordinates
↓
Biomolecular complex
最核心的区别只有一句话:
AlphaFold 2解决的是"蛋白质如何折叠";AlphaFold 3进一步解决"整个生物分子体系如何形成三维复合物"。
而从算法角度:
AF2的核心是 MSA + Evoformer + IPA/Structure Module + Recycling;AF3则转向统一的分子表示 + Pairformer + diffusion-based all-atom structure generation。)
对于 AutoDock Vina → PyRosetta → GROMACS ,下一步最值得深入的其实不是再泛泛了解 AF3,而是把 AF3 的 Diffusion Module 从数学和代码层面拆开 :包括 noise schedule、coordinate diffusion、denoising、Pairformer、Diffusion Transformer、为什么它能直接生成 ligand 原子坐标,以及 AF3 输出的 pLDDT / PAE / ipTM / ranking score 到底分别意味着什么。这样就能真正把 AF3 和分子对接、PyRosetta、MD 接起来。