


可以把 AlphaFold 2(AF2) 理解成蛋白质结构预测领域一个非常重要的分水岭。它真正厉害的地方并不是简单地“输入氨基酸序列 → 输出三维结构”,而是把进化信息(MSA)+ 残基对关系(pair representation)+ 深度注意力网络(Evoformer)+ 几何约束(Invariant Point Attention)+ 迭代优化(recycling)整合成了一个端到端结构预测系统。
AlphaFold 2 的核心论文发表于 2021 年 Nature,在 CASP14 中表现接近实验结构精度。
下面按照“生物学问题 → 输入 → 网络 → Evoformer → Structure Module → Loss → Recycling → 输出 → 实际使用”的顺序详细讲。
传统蛋白质结构预测的问题是:
已知氨基酸序列,如何预测蛋白质最终折叠成什么三维结构?
例如:
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 的第一关键。
假设一个蛋白质有:
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 在两种表示之间反复交换信息。
可以先记住这一张“总地图”:
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 丰富很多。
主要包括:
例如:
MKTIIALSYIFCLVFAD长度:
N_res = 17例如:
Query MKTIIALSYIFCLVFAD
Species1 MKTIIALSYIFCLVFAD
Species2 MKTI--LSYIFCLIFAD
Species3 MKTIIAL-YIFCLVFAD
Species4 MKTVIALSYIFCLVFAD
...可以表示成:
N_seq × N_res例如:
5000 × 300如果数据库中存在结构相似的蛋白:
PDB structure
↓
template
↓
提供:
距离
角度
残基对应关系
结构信息但是非常重要:
AlphaFold 2并不依赖必须存在一个高度相似的 template。
这也是它相比传统 homology modeling 的重要优势之一。CASP14 中很多没有近似实验结构模板的蛋白仍然能获得很高质量预测。
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 转化为一个高维 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, ...]这些数字不具有简单的生物学解释,但网络会利用它们表示:
这是 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[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这是 AlphaFold 2 的核心设计。
可以把:
理解为:
“从进化角度,这些残基之间有什么关系?”
而:
理解为:
“从结构角度,这两个残基之间应该有什么关系?”
二者互相帮助:
MSA
↓
发现 co-evolution
↓
Pair
↓
发现空间关系
↓
反过来帮助 MSA理解
↓
进一步更新 Pair
↓
……所以不是:
MSA → Pair → structure而是:
MSA ⇄ Pair不断交换信息。
这个过程就是:
Evoformer 是 AlphaFold 2 的核心 backbone。
可以简单理解成:
一个专门为“蛋白质进化信息 + 空间关系推理”设计的 Transformer。
论文中,AlphaFold 2 的 trunk 通过重复 Evoformer block,将 MSA representation 和 pair representation 不断更新。原始模型包含 48 个 Evoformer blocks。(Nature)
理解 AlphaFold 2,至少要掌握:
其中:
Triangle Update 是 AlphaFold 2 非常关键的创新。
假设:
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)互相约束。
假设:
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可以理解成:
在考虑 residue pair 时,不只考虑 i 和 j,而是让第三个 residue k 参与判断。
因此:
Pair(i,j)的更新依赖:
Pair(i,k)
Pair(k,j)这使网络可以逐渐构建一个全局一致的三维结构。
这是:
MSA → Pair非常重要的一条信息通路。
MSA 中两个位置:
i
j在不同序列中共同发生变化。
网络通过 outer product 等操作把这种信息汇总:
MSA information
↓
co-evolution information
↓
Pair representation所以:
MSA
↓
Outer Product Mean
↓
Pair这就是把进化信息转换成结构信息的重要机制之一。
经过很多 Evoformer blocks 后:
MSA representation
+
Pair representation
↓
更加成熟的结构信息然后进入:
Evoformer主要解决:
“这个蛋白应该长什么样?”
Structure Module负责:
“把这个抽象的结构信息真正变成三维坐标。”
这是从:
latent representation到:
3D coordinates的关键一步。
这是一个非常重要的深度学习设计。
假设直接预测:
Cα1 = (x1,y1,z1)
Cα2 = (x2,y2,z2)
...存在一个问题:
如果把整个蛋白旋转:
旋转前:
protein
↓
旋转后:
/
/蛋白质本身没有变化。
但是:
x,y,z全部变化。
因此神经网络如果直接预测绝对坐标,会遇到:
rotation / translation dependence
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这样可以更加自然地描述蛋白质几何。
这是 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 正是利用这种思想处理三维结构。
可以把它理解成:
初始:
所有 residue
都没有明确位置
↓
Iteration 1
粗略形成:
α-helix
β-sheet
loop
↓
Iteration 2
调整:
residue-residue distance
↓
Iteration 3
调整:
backbone orientation
↓
Iteration 4
调整:
side-chain geometry
↓
最终结构也就是说:
不是一步预测完成,而是不断 refinement。
这是 AlphaFold 2 另一个关键创新。
普通网络:
Input
↓
Network
↓
OutputAlphaFold 2:
Input
↓
Evoformer
↓
Structure Module
↓
Structure
↓
再次进入网络
↓
进一步修正
↓
Structure
↓
再次进入
↓
...这个过程叫:
因为第一次预测可能是:
大致正确但是:
helix A
helix B
loop C之间的相对位置可能不正确。
第二轮可以根据第一次的结构:
发现:
A-B距离不合理
↓
修正
B-C角度不合理
↓
修正
整体domain orientation不合理
↓
修正最终:
粗结构
↓
精结构
↓
更精细结构AlphaFold 2 论文显示 recycling 对准确率有显著贡献,而且额外训练成本相对较小。
最终主要得到:
N
CA
C
O例如:
ARG
LYS
ASP
GLU
TRP
TYR每个 residue 的 side-chain χ angles。
最终输出类似:
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不会只给你:
structure.pdb还会给:
pLDDT
pTM
PAE全称:
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例如你做:
Molecular docking发现 ligand docking site:
pLDDT = 96这是比较好的。
但是如果:
binding site pLDDT = 42那么直接拿这个结构做 docking 就需要非常谨慎。
因为:
AlphaFold 可能根本没有准确预测这个区域。
这和你之前问的 Vina → PyRosetta → MD 工作流非常相关。
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。
最核心的结构损失之一:
Frame Aligned Point Error
它不是简单:
predicted xyz
-
true xyz而是:
预测结构
↓
在 residue local frame 下
↓
与真实结构比较因此:
整体旋转
整体平移不会影响结构误差。
假设:
Predicted:
A
/
B真实:
A
/
B即使整体旋转:
Predicted:
A
\
B从全局 xyz 看:
xyz完全不同但从 residue local frame 看:
relative geometry仍然可能完全正确。
因此 FAPE 更符合蛋白质结构的几何本质。
将 FAPE 作为主要结构训练损失之一,并通过多个 residue frames 对预测原子位置进行比较。
不是只有 FAPE。
还包括:
预测:
residue i ↔ residue j的距离分布。
类似 BERT:
M K T I [MASK] A L预测:
I帮助模型学习进化关系。
预测局部结构准确度。
帮助预测:
χ1
χ2
χ3
χ4惩罚:
bond length violation
bond angle violation
steric clash等等。
这是另一个很漂亮的设计。
PDB:
有结构但是:
蛋白质序列数量
≫
实验结构数量所以 DeepMind 先训练一个模型:
PDB
↓
AlphaFold
↓
预测 350,000+ sequences得到:
sequence
+
predicted structure然后筛选高置信度结构,用于再次训练。
也就是:
实验结构
↓
初始AlphaFold
↓
大量预测结构
↓
高置信预测
↓
pseudo-label
↓
重新训练AlphaFold这就是:
论文报道这一过程可以显著提升模型性能。
现在把整个系统串起来:
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 压缩成几个核心概念,我认为最重要的是:
告诉模型:
进化上哪些 residue 是相关的。
↓
告诉模型:
哪些 residue 可能存在空间关系。
↓
解决:
如何让进化信息和空间信息相互推理。
↓
解决:
三维空间中的几何一致性。
↓
解决:
如何把抽象 representation 变成真正的 3D structure。
↓
解决:
如何在三维空间中进行具有几何不变性的 attention。
↓
解决:
如何不断修正已经预测出来的结构。
可以这样比较:
方法 | 核心思想 |
|---|---|
Homology modeling | 找相似结构模板 |
Threading | 把序列套到已有 fold |
Rosetta | 搜索/优化构象 |
MD | 根据物理力场模拟 |
AlphaFold 1 | 深度学习 + distance/contact |
AlphaFold 2 | MSA + Evoformer + geometric deep learning + end-to-end structure prediction |
AlphaFold 2最大的突破就是:
不再把结构预测拆成很多人工步骤,而是让网络端到端学习从进化信息到三维结构之间的映射。
这个非常值得掌握。
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最擅长的是:
单个蛋白质相对稳定的天然结构。
但是它存在明显局限。
例如:
p53中的一些 intrinsically disordered region。
可能:
pLDDT ↓两个 domain:
Domain A
+
Domain B可能分别预测很好,但:
A-B相对位置不确定。
AlphaFold主要预测:
一个代表性结构。
而不是完整的:
conformational ensemble也就是说:
apo
active
inactive
intermediate这些不同状态并不一定都能正确获得。
经典 AlphaFold 2:
主要针对 protein structure并不是专门的:
protein-ligand complex prediction这也是后来 AlphaFold 3 非常重要的升级方向。
AlphaFold-Multimer可以做,但其稳定性和准确性与单体 AlphaFold 2 不完全相同。官方仓库也明确说明 Multimer 的实现与 monomer 系统存在稳定性差异。
你之前已经开始学习 AlphaFold 3,这里正好串起来。
主要是:
Protein
↓
Protein structure核心:
MSA
Evoformer
Structure Module
IPA思路进一步扩展:
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 的关键。
考虑到你目前已经在学习:
Python
PyRosetta
AutoDock Vina
GROMACS我不建议你一开始就直接读 AlphaFold 2 全部源码。
应该这样学:
先掌握:
Protein sequence
↓
secondary structure
↓
tertiary structure
↓
domain
↓
protein folding然后理解:
MSA
homology
conservation
co-evolution
contact
distance掌握:
Transformer
Attention
Self-attention
Embedding
Encoder
Residual connection
LayerNorm尤其是:
Q
K
V一定要彻底搞懂。
重点学习:
Rotation
Translation
Rigid body
Coordinate system
Frame
SE(3)
Invariant
Equivariant
Quaternion
Rotation matrix然后理解:
IPA
FAPE最后再进入:
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 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 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 可以联合预测包含蛋白质、核酸、小分子、离子和修饰残基的复合物结构。
这其实是理解 AF3 为什么出现的关键。
AF2 最擅长的是:
Protein
↓
Protein structure后来可以通过 AlphaFold-Multimer 做:
Protein A
Protein B
↓
Protein-protein complex但是生命体系远远不只有蛋白质。
例如:
Transcription factor
+
DNARNA-binding protein
+
RNAProtein
+
ATP或者:
Kinase
+
small molecule inhibitorProtein
+
Zn2+Antibody
+
AntigenProtein
+
Glycan这些都属于:
biomolecular interactions
而不是单纯的 protein folding。
所以 AF3 的目标发生了变化:
AF2
Protein structure prediction
↓
protein-centric
AF3
Biomolecular structure prediction
↓
complex-centricAF3 的输入可以包括:
分子类型 | 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 等任务上,相比此前专门方法取得明显提升。
这是 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。
你可以先把 AF3 的 diffusion 理解成:
从一团随机噪声开始,逐渐把它“去噪”成一个合理的生物分子三维结构。
比如最终结构:
Protein + Ligand
Protein
███████████
█████████████
●
│
LigandAF3 不直接:
sequence
↓
xyz而是:
sequence + molecular information
↓
structural representation
↓
random 3D coordinates
↓
denoising
↓
denoising
↓
denoising
↓
final structure这就是:
如果之前接触过 Stable Diffusion、图像生成,那么思想其实非常类似。
图像 diffusion:
真实图片
↓
不断加噪
↓
纯噪声训练网络学习:
纯噪声
↓
去噪
↓
图片AF3:
真实蛋白质复合物结构
↓
加噪声
↓
随机原子坐标训练:
带噪结构
↓
Diffusion network
↓
真实结构推理时反过来:
Random noise
↓
Denoising
↓
Denoising
↓
Denoising
↓
Denoising
↓
3D biomolecular complex论文明确描述了这一过程:训练时给模型加入噪声的原子坐标,让模型预测真实坐标;推理时从随机噪声开始递归去噪得到最终结构。
这里是一个非常深的原因。
假设:
Protein + ligand配体可能有很多合理构象:
Pose 1
Pose 2
Pose 3
Pose 4蛋白质也可能存在:
Conformation A
Conformation B
Conformation C所以真实问题并不是:
“唯一正确答案是什么?”
而是:
“给定这些分子,哪些三维结构是合理的?”
这本质上是一个:
问题。
Diffusion model 天然适合:
P(structure | input)也就是:
给定输入分子,生成可能的结构分布。
因此 AF3 可以通过不同 random seed 得到多个结构样本。
可以先记住这一张图:
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 complexAF3 的 Pairformer 有 48 个 block;论文给出的 pair representation channel 为 128、single representation channel 为 384。
AF3首先需要把各种分子统一转换成机器学习能够处理的 representation。
例如:
Protein
DNA
RNA
Ligand
Ion它们本身完全不同:
Protein → amino acids
DNA → nucleotides
RNA → nucleotides
Ligand → arbitrary chemical graph
Ion → atomAF3的一个重要思想就是:
把不同类型的生物分子放到统一的结构建模框架中。
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 一个非常重要的计算规模指标。
蛋白质的化学组成相对规则:
20 amino acidsRNA:
A U G CDNA:
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 和其他化学组分。
这一点和 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
这是非常重要的升级。
AF2:
EvoformerAF3:
Pairformer这是一个非常值得注意的变化。
AF2的核心是:
MSA
↕
Pair因此叫:
Evoformer
因为:
Evolutionary information + Transformer
而 AF3 的结构推理不再以 AF2 那种 MSA representation ↔ pair representation 的形式为核心。
它更强调:
Single representation
+
Pair representation的迭代更新。
因此:
成为 AF3 的主要 trunk。
可以直接记:
AF2
MSA
↓
Evoformer
↓
Pair
↓
Structure Module而:
AF3
Input features
↓
Pairformer
↓
Single + Pair
↓
Diffusion
↓
Atomic coordinates也就是说:
AF3不是简单地把 AF2 的 Structure Module 换成 diffusion,而是整个结构表示和生成范式都发生了变化。
Pairformer继续学习:
token i
↔
token j之间的关系。
例如:
Protein residue 45
↕
Ligand atom 7网络需要学习:
是否接触?
距离可能是多少?
方向如何?
化学环境如何?类似地:
Protein residue 120
↕
DNA nucleotide 8需要学习:
是否形成 interface?
是否存在氢键?
空间关系?所以 Pairformer 本质上是在建立:
整个复合物的关系图。
例如:
Protein
/ | \
/ | \
DNA Ligand RNA
\ | /
\ | /
IonPairformer学习:
Protein ↔ DNA
Protein ↔ Ligand
Protein ↔ RNA
Protein ↔ Ion
DNA ↔ RNA
Ligand ↔ Ion
...最终得到一个:
N × N的关系矩阵。
因此 AF3 不再只是:
“蛋白质自己折叠成什么样?”
而是:
“整个分子系统中所有组成部分如何组织在一起?”
这是 AF3 最值得深入理解的地方。
Pairformer输出:
single representation
+
pair representation然后进入 diffusion。
同时:
random/noisy coordinates也输入 diffusion network。
于是:
Pairformer
│
┌───────┴───────┐
↓ ↓
features noisy coordinates
│ │
└───────┬───────┘
↓
Diffusion
↓
denoised coords
↓
denoised coords
↓
final coordinates可以用一个数学表达:

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训练过程能够产生结构分布,因此在模型不确定时可以产生不同答案。
这是论文中一个很漂亮的观点。
Diffusion中的不同噪声水平对应不同尺度的结构问题。
结构非常乱:
● ●
●
●模型主要需要学习:
整体domain arrangement
protein-protein orientation
protein-ligand placement也就是:
已经非常接近真实结构:
Protein
████████
● ligand此时需要修正:
bond geometry
side-chain
local stereochemistry即:
论文明确指出,高噪声阶段更强调大尺度结构,低噪声阶段则更强调局部结构和立体化学。
传统蛋白结构预测可以使用:
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都可以进入同一个坐标生成框架。
这是一个非常重要的区别。
AF2:
Structure Module
↓
IPA
↓
rigid frames
↓
coordinatesAF3:
Pairformer
↓
Diffusion
↓
atomic coordinates论文特别指出,AF3的 diffusion 架构不需要 AF2 那种针对全局旋转和平移的特殊 invariance/equivariance 设计,因此省去了相应架构复杂性。
这是一个很大的架构变化。
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。论文明确提到这一点。
你之前一直在学习:
AutoDock Vina
PyRosetta
GROMACS现在可以看到一个很重要的变化。
传统工作流:
Protein structure
↓
Vina
↓
Ligand docking也就是:
蛋白质先固定,再寻找 ligand pose。
而 AF3:
Protein
+
Ligand
↓
Joint structure prediction
↓
Protein-ligand complex也就是说:
蛋白质和 ligand 的空间关系可以联合预测。
论文报告 AF3 在蛋白质–配体相互作用预测上明显优于其比较的传统 docking 方法。
这个一定不要混淆。
Vina的任务:
给定protein
+
给定ligand
搜索binding pose重点:
docking
scoring
binding modeAF3:
protein
+
ligand
+
biomolecular context
→
joint structure generation重点:
structure prediction因此:
AF3
≠
Vina更合理的理解是:
AF3
↓
预测可能complex结构
↓
Vina/其他docking
↓
进一步搜索/验证
↓
MD
↓
动力学验证不同任务可以互补。
可以把原因概括成:
protein structure
↓
固定protein
↓
docking ligandprotein
+
ligand
+
chemical features
↓
joint representation
↓
joint diffusion
↓
protein-ligand complex也就是说:
ligand不再是“结构预测之后再加进去”的东西,而是整个结构生成过程的一部分。
例如:
Transcription factor
+
DNAAF3不是:
先预测TF
↓
再预测DNA
↓
再dock而是:
TF
+
DNA
↓
Pairformer
↓
joint representation
↓
Diffusion
↓
TF-DNA complex所以它可以直接学习:
protein residue
↕
DNA nucleotide之间的空间关系。
例如:
RNA
+
RNA-binding proteinAF3可以学习:
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最终输出:
mmCIF而不是单纯依赖 PDB。
官方 inference pipeline 每个 sample/seed 都会输出:
confidence JSON
summary confidence JSON
mmCIF同时还可以输出 distogram 等中间结果。(GitHub)
AF2最熟悉:
pLDDT
PAE
pTMAF3仍然提供结构置信度信息,但对于复合物问题,更需要关注:
pLDDT
PAE
pTM/ipTM相关指标
界面置信度尤其是:
不要只看整体平均 pLDDT。
对于 protein-ligand:
Protein内部
pLDDT = 95
Ligand
confidence = 高
但是:
Protein-Ligand interface
confidence = 低这种情况下:
蛋白质本身预测很好,并不代表 ligand binding pose 可靠。
这是实际做 docking / drug discovery 时非常重要的区别。
因为 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>组织结果。
可以用这张表记:
特征 | 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 | 不是核心 | 核心能力 |
我建议你把它理解成下面这条路线:
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。
可以把训练简化成:
实验结构
↓
真实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也就是说:
给定分子信息,学习三维结构分布。
假设:
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%这一点必须谨慎。
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预测的是:
structure不是:
molecular dynamics它不能直接告诉你:
binding kinetics
kon
koff
ΔG
free energy所以:
AF3
↓
结构假设仍然需要:
MD
free-energy calculation
experiment等验证。
例如:
Ligand A
Ligand BAF3可能都能生成:
合理pose但这并不意味着:
A affinity > B affinity所以不能直接:
AF3 score
=
binding affinity例如:
IDR
loop
flexible domain
allosteric region可能存在:
多个构象AF3可能只给出某一个 plausible structure。
例如 GPCR:
Inactive
↕
Intermediate
↕
ActiveAF3并不意味着:
自动知道你想要哪一种生物学状态。
如果输入信息不足,模型可能得到某个合理但并非实验目标状态的构象。
对于药物设计:
ligand protonation
tautomer
charge
metal coordination
water molecules这些都可能显著影响结构。
因此:
AF3预测结果仍然需要化学合理性检查。
如果你的目标最终是:
蛋白质结构预测 → 小分子结合 → 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这其实非常适合你现在正在学习的方向。
我会把优先级排成:
Target
+
Drug
↓
AF3
↓
complexProtein A
+
Protein BTF
+
DNARBP
+
RNAAntibody
+
AntigenProtein
+
DNA
+
RNA
+
ligand
+
ion这正是 AF3 相比 AF2 最有价值的地方。
目前 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 进行了更新。
你现在可以用下面这张图理解整个 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 接起来。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。