Alphafold2之前, 使用神经网络去直接优化蛋白标量 距离图, 采样低
能量构象。
Alphafold2: 直接对3D建模,用等变神经网络去直接获得原子水平优化结果
蛋白质表示为
G
=
(
V
,
E
,
N
,
R
)
G = (V, E, N, R)
G=(V,E,N,R)
V
V
V 表示有序的图节点(可以是氨基酸/原子)
E
∈
V
×
V
E \in V \times V
E∈V×V 表示相应的边集合
每个节点
v
∈
V
v \in V
v∈V 都有标量和向量属性:
n
v
=
(
S
v
,
V
v
)
∈
N
n_v = (S_v, V_v) \in N
nv=(Sv,Vv)∈N,
S
v
∈
R
S
S_v \in R^S
Sv∈RS,
V
v
∈
R
3
×
V
V_v \in R^{3 \times V}
Vv∈R3×V
每条边
e
∈
E
e \in E
e∈E 有属性
r
e
=
(
S
e
,
V
e
)
∈
R
r_e = (S_e, V_e) \in R
re=(Se,Ve)∈R,
S
e
∈
R
N
S_e \in R^N
Se∈RN、
V
e
∈
R
3
×
T
V_e \in R^{3 \times T}
Ve∈R3×T
G
G
G 包含空集。
当集合
E
E
E和
R
R
R 是空集的时候,
G
G
G降为单序列表示。
如果
N
N
N 只包含氨基酸组成,
G
G
G 降为氨基酸序列。
蛋白预训练分为2步:
①用pretext任务,在预训练数据集
D
p
r
e
D_{pre}
Dpre上预训练表示模型
f
θ
(
⋅
)
f_{\theta}(\cdot)
fθ(⋅)
② 微调预训练表示模型
f
θ
p
r
e
(
⋅
)
f_{\theta_{pre}}(\cdot)
fθpre(⋅) with 预测头
g
d
o
w
n
s
t
r
e
a
m
(
⋅
)
g_{downstream}(\cdot)
gdownstream(⋅), 在具体下游任务监督之下
L
t
a
s
k
(
θ
,
D
t
a
s
k
)
L_{task}(\theta, D_{task})
Ltask(θ,Dtask)
整个过程表示为:
θ
∗
=
arg
min
θ
L
t
a
s
k
(
θ
p
r
e
,
D
t
a
s
k
)
\theta^* = \arg \mathop{\min}\limits_{\theta} L_{task}(\theta_{pre}, D_{task})
θ∗=argθminLtask(θpre,Dtask)
s
.
t
.
θ
p
r
e
=
arg
min
θ
∑
k
=
1
K
λ
k
L
p
r
e
(
k
)
(
θ
,
D
)
s.t. \ \theta_{pre} = \arg \mathop{\min}\limits_{\theta}\sum_{k=1}^K\lambda_kL_{pre}^{(k)}(\theta,D)
s.t. θpre=argθmink=1∑KλkLpre(k)(θ,D)
{
λ
k
}
k
=
1
K
\{\lambda_k \}_{k=1}^K
{λk}k=1K是任务权重参数。
等变与不变
在蛋白质的旋转或平移下,标量和向量属性应当严格定义为不变或等变属性。
f
:
R
3
→
R
S
f:R^3 \rightarrow R^S
f:R3→RS 是一个不变函数
w
.
r
.
t
S
E
(
3
)
w.r.t \ SE(3)
w.r.t SE(3)群。
对于组内任何旋转和平移变换。
表示为
f
(
R
x
+
t
)
=
f
(
x
)
f(Rx + t) = f(x)
f(Rx+t)=f(x),
R
R
R为正交矩阵,
t
∈
R
3
t \in R^3
t∈R3。
由不变函数生成的属性是不变性的且是标量。
f
:
R
3
→
R
3
f: R^3 \rightarrow R^3
f:R3→R3 是一个等变
w
.
r
.
t
.
S
E
(
3
)
w.r.t. \ SE(3)
w.r.t. SE(3)群,
f
(
R
x
+
t
)
=
R
f
(
x
)
+
t
f(Rx + t) = Rf(x) + t
f(Rx+t)=Rf(x)+t, 由等变函数生成的属性是等变的且是向量,
f
(
⋅
)
f(\cdot)
f(⋅)可以是神经网络。
w
.
r
.
t
.
w.r.t.
w.r.t. = with respect to 常用于求导或满足一定条件
向前扩散过程:
不是把氨基酸分子降为单
C
α
C_{\alpha}
Cα原子,我们追求一个更细粒度的建模。所以考虑所有氨基酸骨架原子
(
C
,
N
,
O
,
C
α
)
(C,N,O,C_{\alpha})
(C,N,O,Cα)。考虑物理上的合理性(骨架原子之间的键长和键角是相对固定的),我们把骨架原子建模为一个框架。
一个氨基酸骨架结构由2个向量性质所决定:
转化
t
t
t(
C
α
C_\alpha
Cα原子的坐标), 方向
O
O
O(决定最终的坐标)
P
=
{
(
t
i
,
O
i
)
}
i
=
i
i
=
N
P = \{(t_i, O_i)\}_{i=i}^{i=N}
P={(ti,Oi)}i=ii=N
x
i
a
=
O
x
l
i
t
a
+
t
x_i^a = Ox_{lit}^a + t
xia=Oxlita+t
P
P
P是蛋白骨架结构,
N
N
N是蛋白质序列的长度
x
i
a
x_i^a
xia是残基
i
i
i的a-类型骨架原子,
a
∈
C
,
N
,
O
,
C
α
a \in C,N,O,C_\alpha
a∈C,N,O,Cα
O
x
l
i
t
a
Ox_{lit}^a
Oxlita是a-类型原子的坐标,当
C
α
C_\alpha
Cα原子处于原点且在单位正交组,这坐标是氨基酸骨架原子的标准化坐标。
为了干扰结构decoys的构象,
t
∈
R
3
t \in R^3
t∈R3、
O
∈
S
O
(
3
)
O \in SO(3)
O∈SO(3)向量需要被处理。
t
t
t 是可以通过增加高斯噪声来干扰的连续变量
Note:
群论
群(Group) 是一种集合加上一个二元运算。
设
G
G
G是一个非空集合,
⋅
\cdot
⋅是一个二元运算,若满足如下条件:
- 封闭性: ∀ a , b ∈ G \forall a,b \in G ∀a,b∈G, a ⋅ b ∈ G a \cdot b \in G a⋅b∈G
- 结合律: ∀ a , b , c ∈ G , ( a ⋅ b ) ⋅ c = a ⋅ ( b ⋅ c ) \forall a, b, c \in G, (a \cdot b) \cdot c = a \cdot (b \cdot c) ∀a,b,c∈G,(a⋅b)⋅c=a⋅(b⋅c)
- 单位元(幺元): ∃ e ∈ G , s . t . ∀ a ∈ G a ⋅ e = e ⋅ a = a \exist e\in G, s.t. \ \forall a\in G \ a \cdot e = e \cdot a = a ∃e∈G,s.t. ∀a∈G a⋅e=e⋅a=a
- 逆元: ∀ a ∈ G , ∃ a − 1 ∈ G , s . t . a ⋅ a − 1 = a − 1 ⋅ a = e \forall a \in G, \exist a^{-1} \in G, s.t. \ a \cdot a^{-1} = a^{-1} \cdot a = e ∀a∈G,∃a−1∈G,s.t. a⋅a−1=a−1⋅a=e
s
.
t
.
s.t.
s.t. subject to的缩写 “受约束”(约束条件)
则称
G
G
G对
⋅
\cdot
⋅ 构成一个群,记作
(
G
,
⋅
)
(G, \cdot)
(G,⋅)
- 称 G G G 上二元运算 ⋅ \cdot ⋅ 为“乘法”
- a ⋅ b a \cdot b a⋅b 为a与b的积,简写ab
- 若群 G G G中元素有限,则称其为有限群,反之则称其为无限群
- 有限群的元素个数称为有限群的阶
子群
对于群
(
G
,
⋅
)
(G, \cdot)
(G,⋅)存在
H
⊂
G
H \subset G
H⊂G且
H
≠
∅
H \neq \emptyset
H=∅, 若
(
H
,
⋅
)
(H, \cdot)
(H,⋅)也是一个群,则称
H
H
H为
G
G
G的子群。子群的充要条件如下:
H
H
=
H
HH = H
HH=H 且
H
−
1
=
H
H^{-1} = H
H−1=H
李群
李群是一种具有连续(光滑)性质的群,它既是群也是流形。
刚体能够连续地在空间中运动,故而特殊正交群SO(n) 和特殊欧式群SE(n)为李群。
李代数
每个李群都有与之对应的李代数,李代数描述了李群单位元附近的正切空间性质
李代数由一个集合
V
V
V,一个数域
F
F
F 以及一个二元运算[,] 组成, 记为
(
V
,
F
,
[
,
]
)
(V, F, [,])
(V,F,[,]),
其中二元运算[,]被称为李括号, 表示了两元素间的差异。
李代数满足如下条件:
- 封闭性: ∀ X , Y ∈ V , [ X , Y ] ∈ V \forall X, Y \in V, [X, Y] \in V ∀X,Y∈V,[X,Y]∈V
- 双线性: ∀ X , Y , Z ∈ V , a , b ∈ F \forall X, Y, Z \in V, a,b \in F ∀X,Y,Z∈V,a,b∈F有:
[
a
X
+
b
Y
,
Z
]
=
a
[
X
,
Z
]
+
b
[
Y
,
Z
]
[aX + bY, Z] = a[X,Z] + b[Y,Z]
[aX+bY,Z]=a[X,Z]+b[Y,Z]
[
Z
,
a
X
+
b
Y
]
=
a
[
Z
,
X
]
+
b
[
Z
,
Y
]
[Z, aX + bY] = a[Z,X] + b[Z, Y]
[Z,aX+bY]=a[Z,X]+b[Z,Y]
- 自反性: ∀ X ∈ V , [ X , X ] = 0 \forall X \in V, [X, X] = 0 ∀X∈V,[X,X]=0
- 雅可比等价: ∀ X , Y , Z ∈ V , [ X , [ Y , Z ] ] + [ Y , [ Z , X ] ] + [ Z , [ X , Y ] ] = 0 \forall X, Y, Z \in V, [X,[Y,Z]] + [Y,[Z,X]] + [Z,[X,Y]] = 0 ∀X,Y,Z∈V,[X,[Y,Z]]+[Y,[Z,X]]+[Z,[X,Y]]=0
- 反对称性: ∀ X , Y ∈ V , [ X , Y ] = − [ Y , X ] \forall X,Y \in V, [X,Y] = -[Y,X] ∀X,Y∈V,[X,Y]=−[Y,X]
推导
S
O
(
3
)
SO(3)
SO(3)李代数
对于任意旋转矩阵
R
R
R,满足
R
R
T
=
I
RR^T = I
RRT=I。刚体在三维空间中的运动是连续的,随时间而变换, 也即:
R
(
t
)
R
(
t
)
T
=
I
R(t)R(t)^T = I
R(t)R(t)T=I
两侧对时间
t
t
t 进行求导:
R
˙
(
t
)
R
(
t
)
T
+
R
(
t
)
R
˙
(
t
)
T
=
0
\dot{R}(t)R(t)^T + R(t)\dot{R}(t)^T = 0
R˙(t)R(t)T+R(t)R˙(t)T=0
R
˙
(
t
)
R
(
t
)
T
=
−
R
(
t
)
R
˙
(
t
)
T
\dot{R}(t)R(t)^T = -R(t)\dot{R}(t)^T
R˙(t)R(t)T=−R(t)R˙(t)T
R
˙
(
t
)
R
(
t
)
T
=
−
(
R
˙
(
t
)
R
(
t
)
T
)
T
\dot{R}(t)R(t)^T = - (\dot{R}(t)R(t)^T)^T
R˙(t)R(t)T=−(R˙(t)R(t)T)T
由此,可知
R
˙
(
t
)
R
(
t
)
T
\dot{R}(t)R(t)^T
R˙(t)R(t)T为反对称矩阵,记
R
˙
(
t
)
R
(
t
)
T
=
ϕ
(
t
)
∧
\dot{R}(t)R(t)^T = \phi(t)^\wedge
R˙(t)R(t)T=ϕ(t)∧, 等式两侧右乘
R
(
t
)
R(t)
R(t):
R
˙
(
t
)
=
ϕ
(
t
)
∧
R
(
t
)
\dot{R}(t) = \phi(t)^\wedge R(t)
R˙(t)=ϕ(t)∧R(t)
R
˙
(
t
)
=
[
0
−
ϕ
3
ϕ
2
ϕ
3
0
−
ϕ
1
−
ϕ
2
ϕ
1
0
]
R
(
t
)
\dot{R}(t) = \begin{bmatrix} 0 & -\phi_3 & \phi_2 \\ \phi_3 & 0 & -\phi_1 \\ -\phi_2 & \phi_1 & 0 \end{bmatrix} R(t)
R˙(t)=
0ϕ3−ϕ2−ϕ30ϕ1ϕ2−ϕ10
R(t)
由上式可知,每对旋转矩阵求一次导数,只需对其左乘一个
ϕ
(
t
)
∧
\phi(t)^\wedge
ϕ(t)∧。
S
O
(
3
)
SO(3)
SO(3)的单位元为:
t
0
=
0
,
R
(
0
)
=
I
t_0 = 0, R(0) = I
t0=0,R(0)=I, 将
R
(
t
)
R(t)
R(t) 在单位元附近进行一阶 泰勒展开:
R
(
t
)
≈
R
(
t
0
)
+
R
˙
(
t
0
)
(
t
−
t
0
)
=
I
+
ϕ
(
t
0
)
∧
R
(
t
0
)
(
t
−
t
0
)
=
I
+
ϕ
(
t
0
)
∧
t
R(t) \approx R(t_0) + \dot{R}(t_0)(t - t_0) = I + \phi(t_0)^\wedge R(t_0)(t - t_0) = I + \phi(t_0)^\wedge t
R(t)≈R(t0)+R˙(t0)(t−t0)=I+ϕ(t0)∧R(t0)(t−t0)=I+ϕ(t0)∧t
ϕ
\phi
ϕ 反应了旋转矩阵
R
R
R的导数性质,称其在SO(3) 原点附近的正切空间上。
设
t
0
t_0
t0附近
ϕ
\phi
ϕ 为常数不变:
ϕ
(
t
0
)
=
ϕ
0
\phi(t_0) = \phi_0
ϕ(t0)=ϕ0, 则有:
R
˙
(
t
)
=
ϕ
0
∧
R
(
t
)
\dot{R}(t) = \phi_0^\wedge R(t)
R˙(t)=ϕ0∧R(t)
在初始条件
R
(
0
)
=
I
R(0)=I
R(0)=I 下解微分方程,得到:
R
(
t
)
=
exp
(
ϕ
0
∧
t
)
R(t) = \exp(\phi_0^\wedge t)
R(t)=exp(ϕ0∧t)
上式称为李代数so(3)的指数映射关系。
李代数so(3)
向量空间:
s
o
(
3
)
=
{
Φ
=
ϕ
∧
∈
R
3
×
3
∣
ϕ
∈
ℜ
3
}
so(3) = \{ \Phi = \phi^\wedge \in R^{3 \times 3} | \phi \in \Re^3\}
so(3)={Φ=ϕ∧∈R3×3∣ϕ∈ℜ3}
数域:
ℜ
\Re
ℜ
李括号:
[
ϕ
a
,
ϕ
b
]
=
Φ
a
Φ
b
−
Φ
b
Φ
a
=
ϕ
a
∧
ϕ
b
∧
−
ϕ
b
∧
ϕ
a
∧
=
(
ϕ
a
∧
ϕ
b
)
∧
∈
s
o
(
3
)
[\phi_a,\phi_b] = \Phi_a\Phi_b - \Phi_b\Phi_a = \phi_a^\wedge\phi_b^\wedge - \phi_b^\wedge\phi_a^\wedge = (\phi_a^\wedge\phi_b)^\wedge \in so(3)
[ϕa,ϕb]=ΦaΦb−ΦbΦa=ϕa∧ϕb∧−ϕb∧ϕa∧=(ϕa∧ϕb)∧∈so(3)
其中
Φ
=
ϕ
∧
\Phi = \phi^\wedge
Φ=ϕ∧, 为反对称矩阵:
Φ
=
[
0
−
ϕ
3
ϕ
2
ϕ
3
0
−
ϕ
1
−
ϕ
2
ϕ
1
0
]
∈
ℜ
3
×
3
\Phi = \begin{bmatrix} 0 & -\phi_3 & \phi_2 \\ \phi_3 & 0 & -\phi_1 \\ -\phi_2 & \phi_1 & 0 \end{bmatrix} \in \Re^{3 \times 3}
Φ=
0ϕ3−ϕ2−ϕ30ϕ1ϕ2−ϕ10
∈ℜ3×3
视集合
ℜ
3
\Re^3
ℜ3 和叉乘运算作为
s
o
(
3
)
so(3)
so(3)
李代数se(3)
向量空间:
s
e
(
3
)
=
{
Ξ
=
ξ
∧
∈
ℜ
4
×
4
∣
ξ
∈
ℜ
6
}
se(3) = \{\Xi = \xi^\wedge \in \Re^{4 \times 4} | \xi \in \Re^6 \}
se(3)={Ξ=ξ∧∈ℜ4×4∣ξ∈ℜ6}
数域:
ℜ
\Re
ℜ
李括号 :
[
Ξ
1
,
Ξ
2
]
=
Ξ
1
Ξ
2
−
Ξ
2
Ξ
1
[\Xi_1, \Xi_2] = \Xi_1\Xi_2 - \Xi_2 \Xi_1
[Ξ1,Ξ2]=Ξ1Ξ2−Ξ2Ξ1
[
Ξ
a
,
Ξ
b
]
=
Ξ
a
Ξ
b
−
Ξ
b
Ξ
a
=
ξ
a
∧
ξ
b
∧
−
ξ
b
∧
ξ
a
∧
=
(
ξ
a
∗
ξ
b
)
∧
∈
s
e
(
3
)
[\Xi_a, \Xi_b] = \Xi_a \Xi_b - \Xi_b \Xi_a = \xi_a^\wedge \xi_b^\wedge - \xi_b^{\wedge}\xi_a^{\wedge} = (\xi_a^*\xi_b)^\wedge \in se(3)
[Ξa,Ξb]=ΞaΞb−ΞbΞa=ξa∧ξb∧−ξb∧ξa∧=(ξa∗ξb)∧∈se(3)
其中,参量
ξ
\xi
ξ 用于表示平移加旋转:
ξ
=
[
ρ
ϕ
]
\xi = \begin{bmatrix} \rho \\ \phi \\ \end{bmatrix}
ξ=[ρϕ]
ρ
∈
ℜ
3
,
ϕ
∈
s
o
(
3
)
\rho \in \Re^3, \phi \in so(3)
ρ∈ℜ3,ϕ∈so(3)
ξ
∧
\xi^\wedge
ξ∧非反对称矩阵,但仍保留记法:
ξ
∧
=
[
ϕ
∧
ρ
0
T
0
]
∈
ℜ
4
×
4
\xi^\wedge = \begin{bmatrix} \phi^\wedge & \rho \\ 0^T & 0 \\ \end{bmatrix} \in \Re^{4 \times 4}
ξ∧=[ϕ∧0Tρ0]∈ℜ4×4
星计算
ξ
∗
\xi^*
ξ∗定义为:
ξ
∗
=
[
ρ
ϕ
]
∗
=
[
ϕ
∧
ρ
∧
0
ϕ
∧
]
∈
ℜ
6
×
6
\xi^* = \begin{bmatrix} \rho \\ \phi \\ \end{bmatrix}^* = \begin{bmatrix} \phi^\wedge & \rho^\wedge \\ 0 & \phi^\wedge \\ \end{bmatrix} \in \Re^{6 \times 6}
ξ∗=[ρϕ]∗=[ϕ∧0ρ∧ϕ∧]∈ℜ6×6
视集合
ℜ
6
\Re^6
ℜ6和星计算为se(3)
指数映射与对数映射
指数映射反应了从李代数到李群的转换,任意矩阵的指数映射可写成一个泰勒展开,其结果仍然是一个矩阵:
exp
(
G
)
=
∑
n
=
0
∞
1
n
!
G
n
\exp(G) = \sum_{n=0}^\infty \frac{1}{n!} G^n
exp(G)=n=0∑∞n!1Gn
对数映射则反应了从李群到李代数的转换:
ln
(
G
)
=
∑
n
=
0
∞
(
−
1
)
n
n
+
1
(
G
−
I
)
n
+
1
\ln(G) = \sum_{n=0}^\infty \frac{(-1)^n}{n+1}(G-I)^{n+1}
ln(G)=n=0∑∞n+1(−1)n(G−I)n+1
李群SO(3) 李代数so(3)
ϕ
\phi
ϕ 是一个向量,定义其模长为
θ
\theta
θ, 方向为
a
,
ϕ
=
θ
a
a, \phi = \theta a
a,ϕ=θa, 其中,
a
a
a 为一个模长为1 的单位向量:
∣
∣
a
∣
∣
=
1
||a||=1
∣∣a∣∣=1。
对于反对称矩阵
a
∧
a^\wedge
a∧, 易得:
式1:
a
∧
a
∧
=
a
a
T
−
I
a^\wedge a^\wedge = aa^T - I
a∧a∧=aaT−I
式2:
a
∧
a
∧
a
∧
=
a
∧
(
a
a
T
−
I
)
=
−
a
∧
a^\wedge a^\wedge a^\wedge = a^\wedge(aa^T - I) = - a^\wedge
a∧a∧a∧=a∧(aaT−I)=−a∧
李代数so(3)到李群SO(3) 的指数映射:
exp
(
ϕ
∧
)
=
exp
(
θ
a
∧
)
=
c
o
s
θ
I
+
(
1
−
c
o
s
θ
)
a
a
T
+
s
i
n
θ
a
∧
\exp(\phi^\wedge) = \exp(\theta a^\wedge) = cos \ \theta I+ (1 - cos \theta)aa^T + sin\theta a^\wedge
exp(ϕ∧)=exp(θa∧)=cos θI+(1−cosθ)aaT+sinθa∧ 该式称为罗德里格斯公式,李代数so(3)的物理意义就是旋转向量。
SO(3)到so(3) 的对数映射如下:
ϕ
=
ln
(
R
)
∨
=
(
∑
n
=
0
∞
(
−
1
)
n
n
+
1
(
R
−
I
)
n
+
1
)
∨
\phi = \ln (R)^\vee = (\sum_{n=0}^\infty \frac{(-1)^n}{n+1}(R - I)^{n+1})^\vee
ϕ=ln(R)∨=(n=0∑∞n+1(−1)n(R−I)n+1)∨
对数映射实现由旋转矩阵到旋转向量的转换,可使用刚体变换中计算方式,对指数映射两侧求迹从而简化计算:
θ
=
arccos
t
r
(
R
)
−
1
2
\theta = \arccos \frac{tr(R) - 1}{2}
θ=arccos2tr(R)−1
R
n
=
n
Rn = n
Rn=n
若将旋转角度固定至
±
π
\pm \pi
±π中,则可认为李群、李代数中元素一一对应。
李群SE(3) 与 李代数se(3)
指数映射
李代数se(3) 到李群SE(3)的转换
exp
(
ξ
∧
)
=
[
R
J
ρ
0
T
1
]
=
T
\exp(\xi^\wedge) = \begin{bmatrix} R & J\rho \\ 0^T & 1 \\ \end{bmatrix}=T
exp(ξ∧)=[R0TJρ1]=T
对数映射
从SE(3)到 se(3) 的转换,如下:
ξ
=
ln
(
T
)
∨
\xi = \ln (T)^{\vee}
ξ=ln(T)∨
在进行实际转移时,使用对数映射较为复杂。一般用
T
T
T左上角旋转矩阵
R
R
R求解旋转向量;再由右侧平移向量计算平移部分:
t
=
J
ρ
t = J \rho
t=Jρ