SA-DDI提出了一种子结构感知图神经网络,一种配备了子结构注意力机制和用于DDI预测的子结构-子结构交互模块(SSIM)的消息传递神经网络。具体而言,基于分子中官能团的尺寸和形状通常是不规则的化学直觉,子结构注意力被设计为捕获尺寸和形状自适应的子结构。DDI与化学子结构相互作用相关(一般是两个子结构间接相关,通过中间的蛋白产生关联)。
来自:Learning size-adaptive molecular substructures for explainable drug–drug interaction prediction by substructure-aware graph neural network
目录
- 背景概述
- 方法
- 子结构提取
- 子结构注意力
- 子结构相互作用模块
- 药物相互作用预测
背景概述
目前已经开发了许多用于DDI预测的计算模型,并且这些方法在各种数据集上显示出有希望的性能。然而,对于DDI预测中的基于结构的方法,至少有三个问题没有得到很好的解决:
- 首先,大多数工作将分子的子结构视为固定大小,因此使用具有预定层数的GNN只能捕获固定的半径(跳数)。然而,化学子结构的大小和形状通常是不规则的,如图1a所示。
- 其次,GNN最常见的read out函数(即全局均值或求和pooling)不适合DDI预测。例如,通过直接计算子结构表示的总和或者平均值,基本子结构(如乙酸)可能会被次要子结构(例如丙基)淹没,如图1b所示。
- 第三,大多数工作仅在暖启动场景下进行实验(即训练和测试集共享药物分子)。然而,实际应用通常需要DDI预测冷启动场景,以推断新药和已知药物之间的相互作用或新药之间的相互作用。
- 图1:SA-DDI的动机。a:达卡巴嗪中两个突出显示的官能团具有不同的大小和形状。b:棕榈酸的半径为1的子结构(也称为1跳子结构)及其频率。丙基具有最大的频率,但它是DDI的不太重要的子结构。
因此提出SA-DDI如图2所示。SA-DDI通过以下贡献缓解了上述限制:
- 有向消息传递神经网络(D-MPNN)用来提取大小灵活且形状不规则的子结构。在SA-DDI中,由子结构注意力机制确定的不同分数被分配给具有不同半径的子结构。以具有不同半径的原子为中心的子结构的加权和产生尺寸自适应的子结构,如图2所示。
- 引入了子结构-子结构相互作用模块(SSIM)来模拟药物对的功能子结构之间的化学反应。SSIM克服了全局pooling的局限性,因为全局pooling将每个子结构视为同等重要。
- 图2:SA-DDI以一对药物作为输入,然后将它们送到前馈层,然后是配备了子结构注意力的D-MPNN,以提取尺寸和形状自适应的子结构。有向消息传递网络用 T T T次迭代来更新节点特征,其中在该示例中 T T T是6。然后将提取的子结构输入SSIM,以学习子结构-子结构的相互作用。最后,该模型基于子结构-子结构相互作用的结果预测DDI。
方法
一般来说,DDI的预测任务是开发一个输入两种药物的计算模型(输入药物 d x d_x dx和 d y d_y dy,输出为相互作用类别 r r r)。
子结构提取
分子的原子充当图的节点,而边是由化学键形成的。药物 d d d由 G = ( V , E ) G=(V,E) G=(V,E)表示, v i ∈ V v_{i}\in V vi∈V为第 i i i个原子, e i j ∈ E e_{ij}\in E eij∈E为原子 i , j i,j i,j之间的键。每个节点 v i v_{i} vi有一个特征 x i ∈ R d x_{i}\in R^{d} xi∈Rd,边 e i j e_{ij} eij有一个特征 x i j ∈ R d ′ x_{ij}\in R^{d'} xij∈Rd′。
经典的GNN如图3a所示。一般来说,GNN由三个阶段组成:
- 通过聚合来自其邻居节点的消息来更新节点级特征(即消息传递),如图3b所示;
- 通过使用read out函数聚合来自分子图的所有节点级特征来生成图级特征向量,如图3c所示;
- 基于图级特征向量预测图的标签,如图3a所示。
- 图3:GNN的图示。
SA-DDI使用D-MPNN,作为通用消息传递神经网络(MPNN)架构的变体,用于分子子结构提取。到目前为止,对于标准的GNN,DDI预测有两个缺点。首先,GNN提取固定大小的子结构 h i ( T ) h_{i}^{(T)} hi(T)。其次,read out太过直接( h G = 1 n ∑ i = 1 n h i ( T ) h_{G}=\frac{1}{n}\sum_{i=1}^{n}h_{i}^{(T)} hG=n1∑i=1nhi(T)或者 h G = ∑ i = 1 n h i ( T ) h_{G}=\sum_{i=1}^{n}h_{i}^{(T)} hG=∑i=1nhi(T))。因此,SA-DDI引入子结构注意力和子结构相互作用模块来解决。
子结构注意力
子结构注意力被设计用于提取具有任意大小和形状的子结构。在第 k k k次迭代期间,D-MPNN提取半径为 k k k的子结构。使用具有不同半径的原子为中心的子结构的加权和可以获得尺寸自适应的分子子结构,如图2所示。子结构注意力的思想是为具有不同半径的子结构分配不同的分数。具体来说,对于第 t t t层的边级别特征 h i j ( t ) h_{ij}^{(t)} hij(t),首先通过拓扑感知的bond pooling获得图级别特征 g ( t ) ∈ R h g^{(t)}\in R^{h} g(t)∈Rh: g ( t ) = ∑ i = 1 n ∑ v j ∈ N ( v i ) β j i h j i ( t ) g^{(t)}=\sum_{i=1}^{n}\sum_{v_{j}\in N(v_{i})}\beta_{ji}h_{ji}^{(t)} g(t)=i=1∑nvj∈N(vi)∑βjihji(t)其中, b e t a i j beta_{ij} betaij通过SAGPooling获得: β j i = s o f t m a x ( G N N ( A e , X e ) ) \beta_{ji}=softmax(GNN(A_{e},X_{e})) βji=softmax(GNN(Ae,Xe))其中, X e X_{e} Xe是边的特征矩阵, A e A_e Ae是邻接矩阵,其中非零位置指示两个键共享一个公共节点。然后,为每个图级表示 g ( t ) g^{(t)} g(t)分配注意力得分,如下所示: e ( t ) = a ( t ) ⊙ σ ( W g ( t ) + b ) e^{(t)}=a^{(t)}\odot\sigma(Wg^{(t)}+b) e(t)=a(t)⊙σ(Wg(t)+b)其中, ⊙ \odot ⊙表示点积, a ( t ) ∈ R h a^{(t)}\in R^{h} a(t)∈Rh为第 t t t层的权重向量,然后对所有层的 e ( t ) e^{(t)} e(t)归一化: α ( t ) = e x p ( e ( t ) ) ∑ k = 1 T e x p ( e ( k ) ) \alpha^{(t)}=\frac{exp(e^{(t)})}{\sum_{k=1}^{T}exp(e^{(k)})} α(t)=∑k=1Texp(e(k))exp(e(t))其中 α ( t ) ∈ R 1 \alpha^{(t)}\in R^{1} α(t)∈R1即为每一层的注意力,最终边 e i j e_{ij} eij的表示为: h i j = ∑ t = 1 T α ( t ) h i j ( t ) h_{ij}=\sum_{t=1}^{T}\alpha^{(t)}h_{ij}^{(t)} hij=t=1∑Tα(t)hij(t)最后,通过聚合传入的边级特征返回到节点级特征,如下所示: m i = ∑ v j ∈ N ( v i ) h j i m_{i}=\sum_{v_{j}\in N(v_{i})}h_{ji} mi=vj∈N(vi)∑hji h i = f ( x i + m i ) h_{i}=f(x_{i}+m_{i}) hi=f(xi+mi)其中, h i h_{i} hi包含了来自不同感受野的子结构信息。
子结构相互作用模块
为了克服GNN最常见的read out函数的限制。提出了SSIM来识别DDI的关键子结构。通过使用子结构注意力,SA-DDI提取了几个大小自适应的子结构,每个子结构以一个原子为中心,如图2所示。SSIM用于为药物的每个子结构分配一个分数,其中分数由其与另一种药物的相互作用概率决定,如图4所示。
- 图4:相互作用概率计算。
给定药物对 ( d x , d y ) (d_x,d_y) (dx,dy),我们假设 d x d_x dx的子结构信息可以用来检测 d y d_y dy的潜在子结构。特别的,我们用拓扑感知全局pooling来获得 d x d_x dx的图表示: g x = ∑ i = 1 n β i h i ( x ) g_x=\sum_{i=1}^{n}\beta_{i}h_{i}^{(x)} gx=i=1∑nβihi(x) β i = s o f t m a x ( G N N ( A v , X v ) ) \beta_{i}=softmax(GNN(A_{v},X_{v})) βi=softmax(GNN(Av,Xv))其中 X v X_v Xv是节点级特征矩阵, A v A_v Av是邻接矩阵,其中非零位置指示两个节点有连接。然后,我们计算药物 d x d_x dx与药物 d y d_y dy中的第 i i i个子结构的相互作用概率 s i ( y ) s_{i}^{(y)} si(y): s i ( y ) = s o f t m a x ( ( W x g x ) ⊙ ( W y h i ( y ) ) ) s_{i}^{(y)}=softmax((W_{x}g_{x})\odot(W_{y}h_{i}^{(y)})) si(y)=softmax((Wxgx)⊙(Wyhi(y)))其中, W x ∈ R h ′ × h W_{x}\in R^{h'\times h} Wx∈Rh′×h, W y ∈ R h ′ × h W_{y}\in R^{h'\times h} Wy∈Rh′×h是两个权重矩阵, s i ( y ) s_{i}^{(y)} si(y)可以被视为以 d y d_y dy的第 i i i个原子为中心的子结构的重要性。因此, d y d_y dy的图级表示为: h G y = ∑ i = 1 n s i ( y ) ⋅ h i ( y ) ⋅ g x h_{G_{y}}=\sum_{i=1}^{n}s_{i}^{(y)}\cdot h_{i}^{(y)}\cdot g_{x} hGy=i=1∑nsi(y)⋅hi(y)⋅gxSSIM利用 d x d_x dx的结构信息通过向 d y d_y dy中的重要子结构分配更高的分数来增强 d y d_y dy的表示,反之亦然。
药物相互作用预测
给定DDI三元组 ( d x , d y , r ) (d_x,d_y,r) (dx,dy,r),DDI预测可以表示为下面的联合概率: P ( d x , d y , r ) = σ ( ( W x y ( h G x ∣ ∣ h G y ) ) ⊙ u r ) P(d_x,d_y,r)=\sigma((W_{xy}(h_{G_{x}}||h_{G_{y}}))\odot u_r) P(dx,dy,r)=σ((Wxy(hGx∣∣hGy))⊙ur)其中, W x y ∈ R b × h , u r ∈ R b W_{xy}\in R^{b\times h},u_r\in R^{b} Wxy∈Rb×h,ur∈Rb是类型 r r r的可学习参数, ∣ ∣ || ∣∣表示concat,模型的学习过程可以通过最小化交叉熵损失函数来实现: L = − 1 ∣ D ∣ ∑ ( d x , d y , r ) i ∈ D y i l o g ( p i ) + ( 1 − y i ) l o g ( 1 − p i ) L=-\frac{1}{|D|}\sum_{(d_x,d_y,r)_i\in D}y_{i}log(p_{i})+(1-y_{i})log(1-p_{i}) L=−∣D∣1(dx,dy,r)i∈D∑yilog(pi)+(1−yi)log(1−pi)其中, y i = 1 y_i=1 yi=1表示 d x d_x dx和 d y d_y dy之间存在相互作用,反之亦然, p i p_i pi是DDI预测的概率。