目录
Relative Position Edge Features
Relative Orientation Edge Features
4-geometry_regularization.pt(配体文件)
5-geometry_regularization_ring.pt
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
是原子指向原子的向量;是原子指向原子的向量;
是垂直于和的向量;是垂直于和的向量
那么、和两两垂直,构成了一个局部坐标系
Relative Position Edge Features
边特征,代表相对于的相对位置
$$ 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} = \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 $$
其中和缩放参数是超参,论文中使用的缩放参数为,因此,对于每条边有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个表面感知节点特征,。
处理流程:
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函数构建受体图数据。
节点特征:
- α-C原子坐标
- surface-aware node feature
- 氨基酸名称位置索引,溶剂接触表面积,bfactor(晶体衍射因子)
边特征:
- 距离、相对位置、相对角度特征
3-lig_graphs_rdkit_coords.pt
通过get_lig_graph_revised函数构建配体图数据。
节点特征:
- 原子特征
- 原子坐标
- Surface-aware node feature
边特征:
- 距离特征
4-geometry_regularization.pt(配体文件)
通过get_geometry_graph函数获取2-hop配体图,该图只包含了边特征(距离)。
5-geometry_regularization_ring.pt
通过get_geometry_graph_ring函数获取2-hop+ring配体图,其中节点的邻接原子不仅包含了2-hop的原子,还加入了该原子所在环中的其它原子。该图只包含了边特征(距离)。
Equibind模型部分
模型输入
配体图:
- 节点特征:原子相关化学特征、原子坐标(RDKIT重新生成)、Surface-aware node feature
- 边特征:距离特征
受体图:
- 节点特咋:α-C原子坐标、surface-aware node feature、氨基酸名称位置索引,溶剂接触表面积,bfactor(晶体衍射因子)
- 边特征:距离、相对位置、相对角度特征
配体几何图:
- 边特征:距离(数据真实坐标计算得来)
模型结构
IEGMN(等变图匹配网络)
- 消息传递层:分别对配体和受体进行如下操作得到最终的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} $$
-
交叉注意力机制层: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} $$
其中注意力系数
-
坐标更新:分别对配体和受体节点坐标进行更新
$$ \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} $$
是对坐标施加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} $$
对于一个固定构象,如果转换后的坐标使得以下公式取得全局最小值,那么称满足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} $$
其中,因此这里定义的是硬编码一个固定数量T的梯度下降层,目的是最小化S。(这块其实也没太懂,只是进行了翻译= _ =)
-
特征更新:分别对配体和受体节点特征进行更新
$$ \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:简单来说就是比较两个或多个形状,可以通过将这两个或多个形状堆叠起来进行比较,即获得他们的旋转和平移矩阵
模型输出
- 预测配体坐标:数据处理过程中RDKIT重新生成的配体构象,再经过模型得到的旋转和平移变换后的坐标
- 配体keypoints坐标(E3-Equivariance Multi-head attention)
- 受体keypoints坐标(E3-Equivariance Multi-head attention)
- 旋转矩阵(Kabsch algorithm)
- 转移矩阵(Kabsch algorithm)