蛋白质3D建模等变神经网络、李群SE(3)

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 EV×V 表示相应的边集合
每个节点 v ∈ V v \in V vV 都有标量和向量属性: 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 SvRS, V v ∈ R 3 × V V_v \in R^{3 \times V} VvR3×V
每条边 e ∈ E e \in E eE 有属性 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 SeRN V e ∈ R 3 × T V_e \in R^{3 \times T} VeR3×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=1Kλ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:R3RS 是一个不变函数 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 tR3
由不变函数生成的属性是不变性的且是标量

f : R 3 → R 3 f: R^3 \rightarrow R^3 f:R3R3 是一个等变 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 aC,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 tR3 O ∈ S O ( 3 ) O \in SO(3) OSO(3)向量需要被处理。
t t t 是可以通过增加高斯噪声来干扰的连续变量

Note:
群论
群(Group) 是一种集合加上一个二元运算。
G G G是一个非空集合, ⋅ \cdot 是一个二元运算,若满足如下条件:

  • 封闭性: ∀ a , b ∈ G \forall a,b \in G a,bG, a ⋅ b ∈ G a \cdot b \in G abG
  • 结合律: ∀ 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,cG,(ab)c=a(bc)
  • 单位元(幺元): ∃ 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 eG,s.t. aG ae=ea=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 aG,a1G,s.t. aa1=a1a=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 ab 为a与b的积,简写ab
  • 若群 G G G中元素有限,则称其为有限群,反之则称其为无限群
  • 有限群的元素个数称为有限群的阶

子群
对于群 ( G , ⋅ ) (G, \cdot) (G,)存在 H ⊂ G H \subset G HG 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 H1=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,YV,[X,Y]V
  • 双线性: ∀ X , Y , Z ∈ V , a , b ∈ F \forall X, Y, Z \in V, a,b \in F X,Y,ZV,a,bF有:

[ 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 XV,[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,ZV,[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,YV,[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)(tt0)=I+ϕ(t0)R(t0)(tt0)=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)=ϕ0R(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(ϕ0t)
上式称为李代数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=0n!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=0n+1(1)n(GI)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 aa=aaTI
式2: a ∧ a ∧ a ∧ = a ∧ ( a a T − I ) = − a ∧ a^\wedge a^\wedge a^\wedge = a^\wedge(aa^T - I) = - a^\wedge aaa=a(aaTI)=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+(1cosθ)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=0n+1(1)n(RI)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ρ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值