一、Template Embedding-模板嵌入
翻译:
模板嵌入(算法16)将所有原始模板特征整合为成对表示,并与给定的成对表示zijz_{ij}zij(由上一次循环迭代生成)一起处理。这使网络能够基于其对当前结构的信念,关注模板中的特定区域。
表5中的template_backbone_frame_mask
(模板骨架帧掩码)、template_distogram
(模板距离图)、template_restype
(模板残基类型)、template_pseudo_beta_mask
(模板伪β掩码)和template_unit_vector
(模板单位向量)特征被拼接为一个二维特征。在主循环(算法1)中,成对嵌入z_ij
被传入模板嵌入器(算法16)。每个模板通过PairformerStack
独立处理,最终将生成的激活值取平均,得到所有模板的成对嵌入。
讲解:
一、核心功能:利用模板信息增强结构约束
Template 模板(已知结构的同源分子)是蛋白质/核酸结构预测的重要参考(如PDB数据库中的同源结构)。模板嵌入的核心作用是:将模板的结构特征(如残基距离、骨架方向)转化为模型可理解的成对表示,与上一轮生成的z_ij
融合,为当前结构预测提供“参考结构”的约束。
- 例如:若模板中残基
i
和j
的距离为5Å,模板嵌入会将这一信息编码到u_ij
中,辅助模型预测目标分子中i
和j
的距离(倾向于接近模板的5Å)。 - 与MSA模块(提供进化信息)不同,模板嵌入直接提供“结构实例”的约束,尤其对低同源性序列的预测至关重要。
二、原始模板特征解析(表5涉及的核心特征)
算法16处理的模板特征均为结构相关的关键信息,具体作用如下:
template_distogram_tij
:模板中残基i
和j
的距离分布(如“90%概率距离在4-6Å”),直接提供空间距离约束;template_backbone_frame_mask_ti
/template_pseudo_beta_mask_ti
:掩码特征,标记模板中骨架帧(backbone frame)和伪β碳(pseudo-beta carbon)的存在性(1表示存在,0表示缺失),用于过滤无效结构区域;template_unit_vector_tij
:模板中残基i
到j
的单位向量,提供方向信息(如“j
在i
的右侧30°方向”);template_restype_ti
:模板中残基i
的类型(如丙氨酸、腺嘌呤),用于匹配目标序列的残基类型,确保约束的适用性。
👉🏻算法16(模板嵌入器)分步解析
算法 16 的核心逻辑是 “整合单模板特征→融合多模板信息→生成统一约束”,具体步骤如下:
-
步骤1-2:计算掩码的成对乘积
- 操作:将模板中残基
i
和j
的骨架帧掩码、伪β掩码进行逐元素相乘(·
表示点积)。 - 作用:仅当
i
和j
在模板中均有有效骨架帧(或伪β碳)时,结果为1(保留特征);否则为0(过滤无效对)。例如:若i
的骨架frame缺失(掩码为0),则bijtemplate_backbone_frame_maskb_{ij}^\text{template\_backbone\_frame\_mask}bijtemplate_backbone_frame_mask,后续特征会忽略该对残基的信息。
- 操作:将模板中残基
-
步骤3-5:拼接并过滤模板特征
- 步骤3:拼接核心结构特征(距离图、骨架帧掩码乘积、单位向量、伪β掩码乘积),形成初始模板特征atija_{tij}atij;
- 步骤4:用“是否同链”掩码(fiasym_id=fjasym_id\mathrm{f}_i^{\mathrm{asym\_id}}=\mathrm{f}_j^{\mathrm{asym\_id}}fiasym_id=fjasym_id,1表示同链,0表示跨链)过滤atija_{tij}atij,仅保留同链残基对的信息(跨链信息在后续模块处理);
- 步骤5:拼接模板残基类型特征(
f_template_restype_ti
和f_template_restype_tj
),让模型知道 “该约束来自哪种残基对” (如丙氨酸-丝氨酸对),提升约束的针对性。
-
步骤6-11:处理每个模板并累加结果
- 步骤6:初始化累加器
u_ij
,用于汇总所有模板的结果; - 步骤7:遍历每个模板(
t
从1到N_templates
),独立处理每个模板的特征; - 步骤8:融合上一轮的成对表示
z_ij
(经层归一化和线性变换)与当前模板的特征a_tij
(经线性变换),得到v_ij
(c=64
维)。这一步实现“历史结构信念”与“当前模板信息”的结合; - 步骤9:通过
PairformerStack
(Nblock=2
个块)处理v_ij
,强化模板特征与z_ij
的融合(如用注意力机制突出重要残基对的约束); - 步骤10:将处理后的
v_ij
归一化后累加到u_ij
,保存当前模板的贡献。
- 步骤6:初始化累加器
-
步骤12-14:整合多模板信息并输出
- 步骤12:对所有模板的累加结果取平均,平衡不同模板的权重(避免某一模板的噪声过度影响结果);
- 步骤13:通过ReLU激活(过滤负值)和线性变换,优化
u_ij
的特征分布,生成最终的模板成对嵌入; - 步骤14:输出
{u_ij}
,作为模板提供的结构约束,传递给后续模块(如主循环中的Pairformer),辅助优化目标分子的结构预测。
核心设计亮点
- 动态融合模板与当前结构信息:通过步骤8将
z_ij
(上一轮的结构信念)与模板特征a_tij
融合,使模板约束能“适配”当前的预测状态(如当模型已预测i
和j
距离为6Å时,模板中5Å的约束会被动态调整权重); - 多模板信息的鲁棒整合:对多个模板独立处理后取平均,避免单一模板的偏差(如某一模板的结构异常),提升约束的可靠性;
- 针对性过滤无效信息:通过步骤2和4的掩码操作,仅保留模板中“有效且同链”的残基对信息,减少噪声干扰。
模板嵌入模块是AlphaFold 3利用已知结构信息的核心组件:通过整合模板的距离、方向、残基类型等特征,生成成对表示u_ij
,并与上一轮的结构信念z_ij
融合,为模型提供“参考结构”的约束。这一设计尤其对低同源性序列或复杂复合物的预测至关重要,通过引入已知结构的实例信息,弥补进化信息(MSA)的不足,最终提升结构预测的精度和可靠性。
二、Pairformer stack
翻译:
Pairformer堆叠(算法17,主文章图2a)的作用与AlphaFold 2中的Evoformer堆叠类似,但Pairformer堆叠仅使用一个单特征表示si
,而非MSA子集的表示。这里的单特征表示作用类似于AlphaFold 2中Evoformer里的“特权第一行”(the privileged first row)。
-
AlphaFold2-Evoformer
-
AlphaFold3-Pairformer
这一变化导致堆叠中没有列方向的注意力。带成对偏置的单特征注意力(single attention with pair bias) 与AlphaFold 2中使用的行方向注意力相同,但仅应用于单个序列(对应单特征表示si
)。
此外,与AlphaFold 2不同的是,这里的单特征表示(single representation) 不会影响成对表示(pair representation),而是成对表示通过偏置注意力对数(Attention logits)来控制单特征表示中的信息流。
所有过渡块均使用SwiGLU激活函数。
讲解:
🪧一、核心功能:整合单特征与成对表示的核心模块
Pairformer堆叠是AlphaFold 3中处理特征的“核心引擎”,功能类似于AlphaFold 2的Evoformer堆叠,主要作用是:通过多轮迭代优化单特征表示(si
)和成对表示(zij
),捕捉分子中令牌(如残基、原子)的全局相互作用,为结构预测提供最终的特征约束。
- 单特征表示
si
:每个令牌的独立特征向量(如残基类型、进化保守性); - 成对表示
zij
:描述令牌i
与j
之间的关系特征(如距离、相互作用强度)。
🪧 二、与AlphaFold 2 Evoformer的关键差异
Pairformer堆叠在继承Evoformer核心逻辑的基础上,做了针对性优化,主要差异如下:
维度 | AlphaFold 2(Evoformer) | AlphaFold 3(Pairformer堆叠) |
---|---|---|
输入表示 | 依赖MSA子集的表示(多序列特征)+ 成对表示 | 仅使用单个单特征表示si (类似“特权第一行”)+ 成对表示zij |
注意力方向 | 包含行方向和列方向注意力(处理MSA的二维结构) | 无列方向注意力,仅保留单特征的行方向注意力(因无MSA子集) |
信息交互方式 | 单特征表示与成对表示双向影响(单特征可更新成对表示) | 单向影响:成对表示通过注意力偏置控制单特征信息流,单特征不直接更新成对表示 |
👉🏻算法17(Pairformer堆叠)分步解析 :
算法通过48个循环块(Nblock=48
)迭代优化si
和zij
,每个块包含“成对表示更新”和“单特征表示更新”两部分:
1. 成对表示更新(步骤2-6) ✅
这部分通过一系列三角操作细化zij
,捕捉令牌间的全局关系:
-
步骤2-3:三角乘法操作
TriangleMultiplicationOutgoing({zij})
:基于“外向”关系更新zij
(如通过中间令牌k
,用zik
和zkj
的乘积优化zij
,捕捉i→k→j
的间接相互作用);TriangleMultiplicationIncoming({zij})
:基于“内向”关系更新zij
(如通过k→i
和k→j
的关系优化zij
)。- 两者均配合
DropoutRowwise0.25
(行方向随机失活,概率25%),防止过拟合。
-
步骤4-5:三角注意力操作
TriangleAttentionStartingNode({zij})
:从i
的视角计算注意力(i
对所有j
的权重),强化i
的关键交互对象;TriangleAttentionEndingNode({zij})
:从j
的视角计算注意力(所有i
对j
的权重),强化j
的关键交互对象。- 前者用行方向失活,后者用列方向失活(
DropoutColumnwise0.25
),进一步增强泛化能力。
-
步骤6:过渡层
通过Transition
函数(算法11)对zij
进行非线性转换(SwiGLU激活),优化特征分布,增强表达能力。
2. 单特征表示更新(步骤7-8) ✅
这部分基于成对表示zij
优化单特征si
,实现“关系约束→个体特征”的信息注入:
-
步骤7:带成对偏置的注意力
{si} += AttentionPairBias({si}, ∅, {zij }, βij = 0, Nhead = 16)
- 功能:计算单特征
si
的自注意力,但注意力权重由成对表示zij
控制(zij
作为偏置注入注意力对数)。例如,若zij
显示i
与j
距离近、相互作用强,则i
对j
的注意力权重会被放大。 - 细节:
∅
表示无MSA输入(因仅用单特征),βij=0
表示无额外掩码,Nhead=16
为多头注意力头数(并行捕捉不同类型的交互)。
- 功能:计算单特征
-
步骤8:过渡层
通过Transition
函数优化si
的特征分布,引入非线性,使si
整合注意力聚合的信息(如i
周围关键令牌的特征)。
3. 循环与输出(步骤1、9-10)
- 步骤1:重复48个块的迭代,逐步优化
si
和zij
(块数多是为了捕捉长程相互作用,如蛋白质的二级结构、配体与蛋白的远程结合); - 步骤10:输出最终的
{si}
和{zij}
,作为后续模块(如结构模块、扩散模块)的核心输入,直接用于预测分子的三维结构。
四、核心设计亮点
- 简化输入,提升效率:仅用单个单特征表示
si
,省去MSA子集的处理,减少计算和内存开销,同时保留“特权第一行”的核心信息(类似Evoformer中最相关序列的特征); - 单向信息控制:成对表示
zij
主导信息流(控制si
的注意力权重),确保关系特征(如距离、相互作用)成为结构预测的核心约束,避免单特征的噪声干扰; - 强化全局交互:48个块的迭代+三角操作,能有效捕捉长程相互作用(如蛋白质N端与C端的接触、配体与蛋白活性中心的远程静电作用),提升复杂结构的预测精度。
总结
Pairformer堆叠是AlphaFold 3处理全局特征的核心模块,通过48个迭代块优化单特征si
和成对表示zij
。其设计在继承Evoformer功能的基础上,通过简化输入、单向信息控制和强化全局交互,在提升效率的同时,更精准地捕捉分子中令牌的相互作用,为最终的高精度结构预测提供关键特征约束。这一模块尤其适配多分子类型(蛋白质、核酸、配体)的预测,因为其简化的输入和灵活的注意力机制能兼容不同分子的特征模式。