题目 | PIFOLD: TOWARD EFFECTIVE AND EFFICIENT PROTEININVERSE FOLDING |
---|---|
作者/机构 | Gao /李子青 西湖大学 |
期刊/年份 | ICLR/ 2023 |
状态 | 阅读中 |
DOI | |
Github | https://github.com/A4Bio/PiFold |
摘要
如何高效设计折叠成我们所需要结构的蛋白质序列,
Introduction
蛋白质是氨基酸的线性链,可以折叠成3D结构以控制细胞过程(转录、翻译、信号传导、细胞周期控制等)。
创造新的蛋白质有利于加深我们对生命系统的理解,促进药物研发、对抗疾病。
:::info
关键问题:设计折叠成所需结构的蛋白质序列(基于结构的蛋白质设计)
:::
:::info
存在问题:缺乏表达残基表示,图模型无法在CATH数据上实现50%的序列恢复。受自回归生成的影响,推理速度低。
:::
基于图的模型一直在努力通过更好的特征工程、更复杂的模型和更大的训练数据集来学习表达残基表示:
AlphaDesign和ProteinMPNN指出:额外的角度和距离特征可以提高特征的表示质量。
GraphTrans (Ingraham et al, 2019)、GVP (Jing et al, 2020) 和 GCA (Tan et al, 2022c) 引入了考虑基于图的消息传递、等变向量和全局注意力的新模块,以从残基相互作用中学习几何表示。
(1)是否有更好的方法来构造有效的特征以促进学习残差表示? (2)我们如何改进模型,使其能够从残基相互作用中学习更好的表示?
大多数图模型方法采用自回归编码来生成氨基酸,减慢了推理过程。很少有研究尝试提高模型的效率,可能因为效率的增益需要牺牲一些精度。
我们能否一次性生成蛋白质序列而不损失准确性?
文中提出 PiFold(蛋白质反向折叠)来解决上述问题。对于特征化器,对于每个残基,我们构建更全面的特征并引入可学习的虚拟原子来捕获真实原子忽略的信息。 PiGNN 考虑节点、边缘和全局级别的特征依赖性,以从多尺度残差交互中学习。此外,通过堆叠更多 PiGNN 层来完全删除自回归解码器,而不会牺牲准确性。
Related works
Problem Definition
基于结构的蛋白质设计,目的是为了找到折叠成需要的结构的蛋白质序列
X
=
{
x
i
∈
R
3
:
1
≤
i
≤
n
}
X =\left \{ x_{i}\in \mathbb{R_{3}}:1\le i\le n \right \}
X={xi∈R3:1≤i≤n}
S
=
{
s
i
:
1
≤
i
≤
n
}
S=\left\{ s_{i}: 1\le i\le n \right\}
S={si:1≤i≤n}
F
θ
:
X
⟶
S
\mathcal{F} _{\theta } :X\longrightarrow S
Fθ:X⟶S
由于同源蛋白的相似结构,有效的氨基酸序列是不确定的不唯一的 。
根据不同的结构编码类型,现有方法可以被分为三种类型:MLP-based、CNN-based、GNN-based
MLP-based
MLP用于预测20个氨基酸的概率,各种方法的主要难点是特征的构建。这些方法通常在TS50(50个本地结构)测试集上进行评估。SPIN使用扭转角(
ϕ
\phi
ϕand
ψ
\psi
ψ)、序列剖面、能量剖面;SIPN2通过添加骨干角(
θ
\theta
θ and
τ
\tau
τ)、局部接触数、邻域距离。Wang使用骨架二面体(
ϕ
\phi
ϕ、
ψ
\psi
ψ and
ω
\omega
ω)、骨架原子的溶剂可及面积(
C
α
C_{\alpha}
Cα,
N
N
N,
C
C
Cand
O
O
O),二级结构类型(helix,sheet,loop),
C
α
−
C
α
C_{\alpha}-C_{\alpha}
Cα−Cα距离和
C
α
−
C
α
C_{\alpha}-C_{\alpha}
Cα−Cα,
C
α
−
N
C_{\alpha}-N
Cα−N,
C
α
−
C
C_{\alpha}-C
Cα−C的单位方向向量。
MLP—based方法推理速度快,但是没有考虑结构信息。因此恢复了较低。
CNN-based
基于CNN的方法是使用2Dcnn或3Dcnn提取蛋白质特征,在TS50和TS500评估。SPROF使用2DCNN从距离矩阵中学习残基表示。ProCoNN和DenseCPD基于3DCNN从三维网格中的原子分布中提取残基特征。对于每个残基,在平移和旋转到标准位置后,原子分布被输入到模型中,学习平移旋转不变的特征。
尽管CNN模型提高了复原率,但是推理速度较慢,可能是因为它们需要对每个残基进行单独的预处理和预测。
GNN-based
使用KNN图来表示三维结构,并采用图神经网络,在考虑结构约束的同时提取残基特征。蛋白质图将残基信息和成对相互作用分别编码为节点和边缘特征。
GraphTrans使用图注意力机制编码器和自回归解码器进行蛋白质设计。GVP提出了几何向量感知器,从标量和向量特征中学习。GCA引入全局注意力来学习上下文特征。
与 CNN 方法相比,图模型不需要像 CNN 那样分别旋转每个残基,从而提高了训练效率。与 MLP 方法相比,结构信息的充分利用有助于 GNN 获得更高的复原率。总之,GNN 可以在效率和准确性之间取得良好的平衡。
Method
总体架构
输入是蛋白质结构,输出是预期折叠成输入结构的蛋白质序列。我们提出了一种新颖的残基特征化器和 PiGNN 层来学习富有表现力的残基表征。具体来说,
- 残基特征化器构建了全面的残基特征,并创建了可学习的虚拟原子,以捕捉与真实原子互补的信息。
- PiGNN 考虑了节点、边缘和全局上下文层面的多尺度残基相互作用。
- 与之前的自回归模型或迭代模型相比,PiFold 可以一次性生成蛋白质序列,且恢复率更高。
特征模块
Graph structure
将蛋白质表示为由残基组成的蛋白质图,以考虑三维依赖关系,其中 k 默认为 30。蛋白质图由邻接矩阵
A
∈
{
0
,
1
}
n
,
n
A\in \left \{ 0,1 \right \} ^{n,n}
A∈{0,1}n,n,点特征
X
∈
R
n
,
f
n
X \in \mathbb{R}^{n,f_{n}}
X∈Rn,fn,边特征
E
∈
R
m
,
f
e
E \in \mathbb{R}^{m,f_{e}}
E∈Rm,fe,其中
n
,
m
n,m
n,m分别为点和边的数量。边特征和点特征的构建:
每个残基都是由
C
α
,
C
,
N
,
O
C_{\alpha},C,N,O
Cα,C,N,O,我们可以对残基
i
i
i构建局部坐标系
Q
i
=
[
b
i
,
n
i
,
b
i
×
n
i
]
Q_{i}=[b_{i},n_{i},b_{i}\times n_{i}]
Qi=[bi,ni,bi×ni]。
u
i
=
C
α
i
−
N
i
u_{i}=C_{\alpha_{i}}-N_{i}
ui=Cαi−Ni,
v
i
=
C
i
−
C
α
i
v_{i}=C_{i}-C_{\alpha_{i}}
vi=Ci−Cαi,
b
i
=
u
i
−
v
i
∥
u
i
−
v
i
∥
b_{i}=\frac{u_{i}-v_{i}}{\left \| u_{i}-v_{i} \right \|}
bi=∥ui−vi∥ui−vi,
n
i
=
u
i
×
v
i
∥
u
i
×
v
i
∥
n_{i}=\frac{u_{i}\times v_{i}}{\left \| u_{i} \times v_{i} \right \|}
ni=∥ui×vi∥ui×vi根据这些坐标系,我们可以为单个或成对的残基构建旋转和平移不变的特征,包括距离、角度和方向.
Distance features
给定原子A和B,这举例定义为
R
B
F
(
A
−
B
)
RBF(A-B)
RBF(A−B),其中RBF为径向基函数。
当计算残基
i
i
i的特征时,
A
∈
{
C
i
,
C
α
i
,
N
i
,
O
i
}
,
B
∈
{
C
i
,
C
α
i
,
N
i
,
O
i
}
A \in \left \{C_i,C_{\alpha i},N_i,O_i \right \} ,B \in \left \{C_i,C_{\alpha i},N_i,O_i \right \}
A∈{Ci,Cαi,Ni,Oi},B∈{Ci,Cαi,Ni,Oi}
当计算残基对
(
i
,
j
)
(i,j)
(i,j),
A
∈
{
C
i
,
C
α
i
,
N
i
,
O
i
}
,
B
∈
{
C
j
,
C
α
j
,
N
j
,
O
j
}
A \in \left \{C_i,C_{\alpha i},N_i,O_i \right \} ,B \in \left \{C_j,C_{\alpha j},N_j,O_j \right \}
A∈{Ci,Cαi,Ni,Oi},B∈{Cj,Cαj,Nj,Oj}
除了真实原子的距离,模型对于残基
i
i
i引入虚拟原子
{
V
i
1
,
V
i
2
,
V
i
3
,
⋯
}
\left\{ V_{i}^{1},V_{i}^{2},V_{i}^{3},\cdots\right\}
{Vi1,Vi2,Vi3,⋯},则额外的点和边的特征是从
{
V
i
1
,
V
i
2
,
V
i
3
,
⋯
}
×
{
V
i
1
,
V
i
2
,
V
i
3
,
⋯
}
\left\{ V_{i}^{1},V_{i}^{2},V_{i}^{3},\cdots\right\} \times \left\{ V_{i}^{1},V_{i}^{2},V_{i}^{3},\cdots\right\}
{Vi1,Vi2,Vi3,⋯}×{Vi1,Vi2,Vi3,⋯}和
{
V
i
1
,
V
i
2
,
V
i
3
,
⋯
}
×
{
V
j
1
,
V
j
2
,
V
j
3
,
⋯
}
\left\{ V_{i}^{1},V_{i}^{2},V_{i}^{3},\cdots\right\} \times \left\{ V_{j}^{1},V_{j}^{2},V_{j}^{3},\cdots\right\}
{Vi1,Vi2,Vi3,⋯}×{Vj1,Vj2,Vj3,⋯}中采样A和B来生成。
为了确保虚拟原子与蛋白质结构具有平移和旋转等价性,模型需要学习它们在每个局部坐标系中的相对位置。相对位置向量在所有残基之间共享,从而迫使模型学习共识知识以扩展到一般场景。我们通过将相对坐标的长度限制为单位向量来标准化相对坐标,以进行稳定的训练。形式上,表示第
k
k
k个虚拟原子的相对位置为
(
x
k
,
y
k
,
z
k
)
(x_{k},y_{k},z_{k})
(xk,yk,zk),我们计算
V
i
k
V_{i}^{k}
Vik 的绝对坐标:
{
V
i
k
=
[
x
k
b
i
,
y
k
n
i
,
z
k
(
b
i
×
n
i
)
]
+
C
α
x
k
2
+
y
k
2
+
z
k
2
=
1
\left\{\begin{matrix} V_{i}^{k}=[x_{k}b_{i},y_{k}n_{i},z_{k}(b_{i}\times n_{i})]+ C_{\alpha } \\ x_{k}^{2}+y_{k}^{2}+z_{k}^{2}=1 \end{matrix}\right.
{Vik=[xkbi,ykni,zk(bi×ni)]+Cαxk2+yk2+zk2=1
x
k
2
,
y
k
2
,
z
k
2
x_{k}^{2},y_{k}^{2},z_{k}^{2}
xk2,yk2,zk2是可学习的参数。
Angle features
考虑到相邻残基之间的主干顺序和局部几何形状,我们使用键角(αi,βi,γi)和扭转角(φi,ψi,ωi)作为节点特征。对于残差对 ( i , j ) (i, j) (i,j),角特征表示局部坐标系间相对旋转的四元数; 四元数是一个数学概念,由四个部分组成:一个标量部分(实部)和一个矢量部分(虚部)。通常表示为 q = ( w , x i , y j , z k ) q = (w, x_i, y_j, z_k) q=(w,xi,yj,zk),其中 ‘w’ 是标量部分,‘x’、‘y’ 和 ‘z’ 构成了矢量部分。
Direction features
对于单个残基
i
i
i,我们使用内部原子到
C
α
i
C_{\alpha i}
Cαi的方向作为节点特征。example:
N
i
N_i
Ni的方向特征为
Q
i
T
N
i
−
C
α
i
∥
N
i
−
C
α
i
∥
Q_{i}^{T}\frac{N_i-C_{\alpha i}}{\left \| N_i-C_{\alpha i} \right \| }
QiT∥Ni−Cαi∥Ni−Cαi.
对于残基对
(
i
,
j
)
(i,j)
(i,j),残基
j
j
j的方向包括残基j到
C
α
i
C_{\alpha i}
Cαi的所有原子,
N
j
N_j
Nj的方向是
Q
i
T
N
j
−
C
α
i
∥
N
j
−
C
α
i
∥
Q_{i}^{T}\frac{N_j-C_{\alpha i}}{\left \| N_j-C_{\alpha i} \right \| }
QiT∥Nj−Cαi∥Nj−Cαi。
我们使用有关局部坐标系
Q
i
Q_i
Qi的相对方向来使特征旋转不变性。
PIGNN介绍
提出PiGNN层来学习几何残差表示,考虑节点、边缘和全局上下文级别的多尺度残差交互
Local node interaction
使用简化的图transformer更新节点信息,学习多头注意力权重使用MLP来代替分别计算
Q
Q
Q,
V
V
V。将
h
i
l
h_{i}^{l}
hil和
e
j
i
l
e_{ji}^{l}
ejil作为点
i
i
i和边
j
⟶
i
j \longrightarrow i
j⟶i第
l
l
l层输出。在GNN 之前,我们使用MLPs将所用输入特征转化到
d
d
d维空间,
h
i
0
∈
R
d
h_{i}^{0} \in \mathbb{R}^{d}
hi0∈Rdand
e
j
i
0
∈
R
d
e_{ji}^{0} \in \mathbb{R}^d
eji0∈Rd。
考虑以节点
i
i
i为中心的注意机制时,第
l
+
1
l+1
l+1层的注意权值
a
j
i
a_{ji}
aji计算公式为:
w
j
i
=
AttMLP
(
h
j
l
∥
e
j
l
∥
h
i
l
)
w_{ji} = \text{AttMLP}(h^l_j \| e^l_j \| h^l_i)
wji=AttMLP(hjl∥ejl∥hil)
a
j
i
=
exp
(
w
j
i
)
∑
k
∈
N
i
exp
(
w
k
i
)
a_{ji} = \frac{\exp(w_{ji})}{\sum_{k \in N_i} \exp(w_{ki})}
aji=∑k∈Niexp(wki)exp(wji)
其中,
N
i
N_i
Ni为节点
i
i
i的邻域系统,||表示拼接操作。节点特征
h
i
l
h_i^l
hil被更新为:
v
j
=
NodeMLP
(
e
j
i
l
∥
h
j
l
)
h
i
l
+
1
=
∑
j
∈
N
i
a
j
i
v
j
v_j = \text{NodeMLP}(e^l_{ji} \| h^l_j) \\ \mathbf{h}_i^{l+1} = \sum_{j \in N_i} a_{ji}v_j
vj=NodeMLP(ejil∥hjl)hil+1=∑j∈Niajivj
Local edge interactions
蛋白质图是包含节点和边缘特征的属性图;然而,简化的图转换器是一个以节点为中心的网络,会忽视边特征。我们发现这种忽略会导致次优表示,引入边缘更新层可以提高模型的能力:
e
j
i
l
+
1
=
EdgeMLP
(
h
j
l
∥
e
j
l
∥
h
i
l
)
e_{ji}^{l+1} = \text{EdgeMLP}(h^l_j \| e^l_j \| h^l_i)
ejil+1=EdgeMLP(hjl∥ejl∥hil)
Global context attention
全局信息也被证明对改进蛋白质设计有价值。然而,整个蛋白质的全局注意力的时间复杂度与蛋白质长度的平方成正比,这大大增加了计算开销。为了同时享受改进的恢复和良好的效率,我们建议为每个蛋白质学习一个全局上下文向量,并使用它对节点表示应用门控注意:
c
i
=
Mean
(
{
h
k
l
+
1
}
k
∈
B
i
)
h
i
l
+
1
=
h
i
l
+
1
⊙
σ
(
GateMLP
(
c
i
)
)
c_i = \text{Mean}(\{\mathbf{h}_k^{l+1}\}_{k \in B_i}) \\ \mathbf{h}_i^{l+1} = \mathbf{h}_i^{l+1} \odot \sigma(\text{GateMLP}(c_i))
ci=Mean({hkl+1}k∈Bi)hil+1=hil+1⊙σ(GateMLP(ci))
其中
B
i
B_i
Bi为与残基
i
i
i属于同一蛋白的残基的指标集,
⊙
\odot
⊙为元素积运算,
σ
(
.
)
\sigma(.)
σ(.)为sigmoid函数.