AIDD系列(1)——Equibind蛋白质与小分子结合点位预测模型

目录

前言

Equibind数据处理

Local Coordinate System

Relative Position Edge Features

Relative Orientation Edge Features

Distance-Based Edge Features

Surface Aware Node Features

处理流程:

Protein_file_process

Ligand_file_process

1-pocket_and_rec_coords.pt

2-rec_graphs.pt

3-lig_graphs_rdkit_coords.pt

4-geometry_regularization.pt(配体文件)

5-geometry_regularization_ring.pt

Equibind模型部分

模型输入

配体图:

受体图:

配体几何图:

模型结构

IEGMN(等变图匹配网络)

E3-Equivariance Multi-head attention

旋转与平移矩阵

模型输出


前言

本篇主要根据原始论文以及代码进行简单介绍,如有不对之处,还请留言指出。

附论文地址:[2202.05146v4] EquiBind: Geometric Deep Learning for Drug Binding Structure Prediction (arxiv.org)


上图展示了EquiBind的模型架构。简单来说,该方法利用E(3)等边网络生成配体和受体上的结合关键点,然后在三维空间中对这些点进行匹配来确定结合模式。同时,该网络还能够对配体的三维结构进行变换实现小分子柔性对接。

Equibind数据处理

Local Coordinate System

u_i\alpha-C原子指向N原子的向量;t_i\alpha-C原子指向C原子的向量;

n_i是垂直于u_it_i的向量;v_i是垂直于n_iu_i的向量

那么n_iv_iu_i两两垂直,构成了一个局部坐标系

Relative Position Edge Features

边特征p_{j \to i},代表j相对于i的相对位置

$$ p_{j \to i} = \begin{bmatrix} n_i^\intercal \\ u_i^\intercal \\ v_i^\intercal \end{bmatrix} \begin{bmatrix} x_j - x_i\end{bmatrix} $$

Relative Orientation Edge Features

边缘特征q_{j \to i}k_{j \to i}t_{j \to i},表示j相对于i的相对方向。

$$ q_{j \to i} = \begin{bmatrix} n_i^\intercal \\ u_i^\intercal \\ v_i^\intercal \end{bmatrix} \begin{bmatrix} n_j \end{bmatrix},\quad k_{j \to i} = \begin{bmatrix} n_i^\intercal \\ u_i^\intercal \\ v_i^\intercal \end{bmatrix} \begin{bmatrix} u_j \end{bmatrix},\quad t_{j \to i} = \begin{bmatrix} n_i^\intercal \\ u_i^\intercal \\ v_i^\intercal \end{bmatrix} \begin{bmatrix} v_j \end{bmatrix},\quad $$

Distance-Based Edge Features

距离也带有信息,这里使用距离的径向基函数作为边缘特征。

$$ p_{j \to i,r} = e^{-\frac{(||x_j-x_i||)^2}{2\sigma_r^2}},r=1,2,...,R $$

其中R和缩放参数\{\sigma_r\}_{1\leq r \leq R}是超参,论文中使用的缩放参数为\{1.5^x|x=0,1,2,...,14\},因此,对于每条边有15个基于距离的边特征。

Surface Aware Node Features

表面接触建模对蛋白质对接很重要。这里设计了一种新的表面特征类型,将靠近蛋白质表面的残基与内部的残基区分开来。如上图所示,蛋白质内部的残基(左)被来自各个方向的矢量所包围,这些矢量相互抵消,而靠近表面的残基(右)只在一个较窄的锥体中有邻居,其孔径取决于表面的局部曲率。

$$ \rho_i{x_i;\lambda}=\frac{||\sum_{i'\in{N_i}}w_{i,i',\lambda}(x_i-x_{i'})||}{\sum_{i'\in{N_i}}w_{i,i',\lambda}||x_i-x_{i'}||}\\w_{i,i',\lambda}=\frac{\exp(-||x_i-x_{i'}||^2/\lambda)}{\sum_{j\in N_i}\exp(-||x_i-x_{i'}||^2/\lambda)} $$

通过上式得到5个表面感知节点特征,\lambda \in \{1.,2.,5.,10.,30.\}

处理流程:

Data:
protein_name
					|_protein_name_protein.pdb   # 蛋白质文件
					|_protein_name_ligand.sdf    # 配体文件
					|_protein_name_ligand.mol2   # 配体文件

Protein_file_process

通过get_receptor函数获取靶点所在蛋白质链、该链中所有原子的坐标、α-C原子坐标、C原子坐标以及N原子坐标

Ligand_file_process

通过read_molecule函数读取配体文件(不做特殊处理)

对数据进行处理之后会得到5个文件

1.pocket_and_rec_coords.pt
2.rec_graphs.pt
3.lig_graphs_rdkit_coords.pt
4.geometry_regularization.pt
5.geometry_regularization_ring.pt

1-pocket_and_rec_coords.pt

通过get_pocket_coord函数获取口袋坐标(配体端点原子匹配模式),得到口袋坐标

2-rec_graphs.pt

通过get_rec_graph函数构建受体图数据。

节点特征:

  1. α-C原子坐标
  2. surface-aware node feature
  3. 氨基酸名称位置索引,溶剂接触表面积,bfactor(晶体衍射因子)

边特征:

  1. 距离、相对位置、相对角度特征

3-lig_graphs_rdkit_coords.pt

通过get_lig_graph_revised函数构建配体图数据。

节点特征:

  1. 原子特征
  2. 原子坐标
  3. Surface-aware node feature

边特征:

  1. 距离特征

4-geometry_regularization.pt(配体文件)

通过get_geometry_graph函数获取2-hop配体图,该图只包含了边特征(距离)。

5-geometry_regularization_ring.pt

通过get_geometry_graph_ring函数获取2-hop+ring配体图,其中节点的邻接原子不仅包含了2-hop的原子,还加入了该原子所在环中的其它原子。该图只包含了边特征(距离)。

Equibind模型部分

模型输入

配体图:

  1. 节点特征:原子相关化学特征、原子坐标(RDKIT重新生成)、Surface-aware node feature
  2. 边特征:距离特征

受体图:

  1. 节点特咋:α-C原子坐标、surface-aware node feature、氨基酸名称位置索引,溶剂接触表面积,bfactor(晶体衍射因子)
  2. 边特征:距离、相对位置、相对角度特征

配体几何图:

  1. 边特征:距离(数据真实坐标计算得来)

模型结构

IEGMN(等变图匹配网络)

  1. 消息传递层:分别对配体和受体进行如下操作得到最终的message(节点特征和坐标进行融合)

$$ \begin{align}m_{j \to i} &= \varphi^e (h_i^l,h_j^l,\exp(-||x_i^l-x_j^l||^2/\sigma),f_{j \to i}), \forall{e_{j \to i}}\in \epsilon_i\cup \epsilon_2 \\ m_i &= \frac{1}{|N(i)|}\sum_{j\in N(i)}m_{j \to i}, \forall_{i} \in V_1 \cup V_2\end{align} $$

  1. 交叉注意力机制层:Q和K/V分别来自配体和受体的特征

    $$ \begin{align}\mu_{j \to i} = a_{j \to i}Wh_j^l\quad\forall{i} \in V_1,j\in V_2 \;or\; {i} \in V_2,j\in V_1 \\ \mu_{i} = \sum_{j\in V_2}\mu_{j \to i},\forall{i} \in V_1 \quad And\quad \mu_{i} = \sum_{j\in V_1}\mu_{j \to i},\forall{i} \in V_2 \\ \end{align} $$

    其中注意力系数a_{j\to i} = \frac{\exp(<\varphi^q(h_i^l),\varphi^k(h_j^l)>)}{\sum_{j'}\exp(<\varphi^q(h_i^l),\varphi^k(h_{j'}^l)>)}

  2. 坐标更新:分别对配体和受体节点坐标进行更新

    $$ \begin{equation}x_i^{l+1}=\Psi(\eta x_i^0 + (1-\eta)x_i^l + \sum_{j\in N(i)}(x_i^l-x_j^l)\varphi^x(m_{j\to i})),\forall{i} \in V_1 \cup V_2\end{equation} $$

    \Psi是对坐标施加LAS(局部原子结构)距离约束:

    $$ \begin{equation} \begin{split} \Psi(Z) &= \Psi_t \circ ... \circ \Psi_1(Z) \\ \Psi_t(Z) &= Z-\eta \triangledown_ZS(Z,X),\> \forall{t} \end{split} \end{equation} $$

    对于一个固定构象X,如果转换后的坐标Z使得以下公式取得全局最小值,那么称Z满足LAS DG限制。

    $$ \begin{equation} \begin{split} S(Z,X) &= \sum_{\{(i,j)\in E\}}(d_X^2(i,j)-d_Z^2(i,j))^2\\ &+ \sum_{\{i,j:2-hops\>away\>in\>G\in E\}}(d_X^2(i,j)-d_Z^2(i,j))^2 \\ &+ \sum_{\{i,j,i\>in\>aromatic\>ring\>with\>j\in E\}}(d_X^2(i,j)-d_Z^2(i,j))^2 \end{split} \end{equation} $$

    其中d_X(i,j)=||x_i-x_j||,因此这里定义的\Psi是硬编码一个固定数量T的梯度下降层,目的是最小化S。(这块其实也没太懂,只是进行了翻译= _ =

  3. 特征更新:分别对配体和受体节点特征进行更新

    $$ \begin{equation}h_i^{l+1}=(1-\beta)\cdot h_i^l + \beta \cdot \varphi^h(h_i^l,m_i,\mu_{i},f_i),\forall{i} \in V_1 \cup V_2 \end{equation} $$

E3-Equivariance Multi-head attention

使用多头注意力机制来获得蛋白质和配体的keypoint点。这里的value使用的是坐标,最后得到(head_num,3)的矩阵,即keypoint点的坐标

$$ \begin{align}y_k&=\sum_{i=1}^n \alpha_i^kz_i;y_k'=\sum_{j=1}^m \alpha_j^kz_j; \\ \alpha_i^k &= softmax_i(\frac{1}{\sqrt{d}}h_i^\intercal W_k\mu(\varphi(H_2)))\end{align} $$

旋转与平移矩阵

得到配体和受体的keypoint点的坐标之后,通过Kabsch algorithm 得到旋转和平移矩阵

Kabsch algorithm:简单来说就是比较两个或多个形状,可以通过将这两个或多个形状堆叠起来进行比较,即获得他们的旋转和平移矩阵

模型输出

  1. 预测配体坐标:数据处理过程中RDKIT重新生成的配体构象,再经过模型得到的旋转和平移变换后的坐标
  2. 配体keypoints坐标(E3-Equivariance Multi-head attention)
  3. 受体keypoints坐标(E3-Equivariance Multi-head attention)
  4. 旋转矩阵(Kabsch algorithm)
  5. 转移矩阵(Kabsch algorithm)

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NumnumnumM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值