SSI–DDI: substructure–substructure interactions for drug–drug interaction prediction
基本信息
博客贡献人
鲁智深
作者
Arnold K. Nyamabo, Hui Yu and Jian-Yu Shi
标签
drug–drug interactions; substructure interactions; molecular graph; co-attention; multi-type interactions
摘要
现有的预测药物-药物相互作用(DDI)的方法未明确地基于DDI基本上是由化学子结构的相互作用引起的,而不是整个药物的化学结构。且现有的方法大多依赖于人工工程的分子表示,受到领域专家知识的限制。为解决这些问题,这篇文章:
- 提出一个考虑子结构-子结构相互作用的深度学习框架
- 是一种知识驱动的模型,明确地将子结构视为独立实体,其成对的相互作用将决定所属的药物对是否会导致潜在的DDI。
- 直接从药物分子图中学习这些子结构。使用共注意力机制学习每个子结构对最终DDI预测的相关性/重要性
问题定义
给定一组药物 G G G,一组相互作用类型 I = { I i } i = 1 M I= \{I_i\}_{i=1}^M I={Ii}i=1M,和一个DDIs的数据集 D = { ( G x , G y , r ) i } i = 1 N D=\{(G_x, G_y, r)_i\}_{i=1}^N D={(Gx,Gy,r)i}i=1N,其中 G x ∈ G , G y ∈ G G_x∈G, G_y∈G Gx∈G,Gy∈G代表一对具有类型为 I i I_i Ii的相互作用 r r r的药物,需要找到一个模型 f : G × G × I → [ 0 , 1 ] f: G×G×I→[0,1] f:G×G×I→[0,1],其可以确定任意两种药物的组合能产生给定的相互作用类型 I i I_i Ii的可能性。
模型以一个DDI元组 ( G x , G y , r ) (G_x, G_y, r) (Gx,Gy,r)作为输入。药物 G x G_x Gx和 G y G_y Gy都用图 G = ( V , E ) G =(V, E) G=(V,E)表示,其中 V = { v i } i = 1 n V=\{v_i\}_{i=1}^n V={vi}i=1n是节点集, E = { ( v s , v t ) i } i = 1 m E=\{(v_s,v_t)_i\}_{i=1}^m E={(vs,vt)i}i=1m是边集,每个相互作用类型 I r ∈ I I_r∈I Ir∈I被表示为可学习矩阵 M r ∈ R D × D M_r∈R^{D×D} Mr∈RD×D。 G = ( V , E ) G =(V, E) G=(V,E)只表示药物化学结构的分子图,其中 v i v_i vi表示具有特征 h i ∈ R F h_i∈R^F hi∈RF( F F F是特征的数量)的原子, ( v s , v t ) (v_s,v_t) (vs,vt)表示原子 v s v_s vs和 v t v_t vt之间存在键。
方法
方法描述
方法流程如下:
为了确定两种药物
G
x
G_x
Gx和
G
y
G_y
Gy是否可以导致相互作用
r
r
r:
(1) 模型将药物对的图表示作为输入;
(2) 在每个GAT层,执行READOUT操作以提取层的感受野范围内的子结构信息(化学子结构提取部分);
(3) 共注意力层使用共注意力机制衡量
G
x
G_x
Gx和
G
y
G_y
Gy的子结构之间的每个相互作用得分/强度的相关性(具有共注意力的子结构相互作用相关性部分);
(4) 最终DDI预测
p
(
G
x
,
G
y
,
r
)
p(G_x, G_y, r)
p(Gx,Gy,r)是这些子结构的相互作用分数之和,每个子结构通过其相关性
γ
i
j
γ_{ij}
γij进行加权(预测和损失函数部分)。
化学子结构提取
GAT
这项工作使用 L L L个GAT层更新节点特征。为了更新第 ( l + 1 ) (l+1) (l+1)个GAT层的节点 i i i的特征向量 h i l + 1 h_i^{l+1} hil+1:
- 对图中所有节点的前 l l l个GAT层的特征应用线性变换:
h ^ s ( l + 1 ) = W ( l + 1 ) h s ( l ) , s = 1 , . . . , n (1) \hat{h}_s^{(l+1)} = W^{(l+1)}h^{(l)}_s, s = 1, ... , n\tag{1} h^s(l+1)=W(l+1)hs(l),s=1,...,n(1)- 计算节点 i i i的邻域中的每个邻域节点 j j j的重要性 α i j ∈ R α_{ij}∈R αij∈R:
α i j = e x p ( L e a k y R e L U ( e i j ) ) ∑ s ∈ N ( i ) ∪ { i } e x p ( L e a k y R e L U ( e i s ) ) (2) α_{ij} = \frac{exp(LeakyReLU(e_{ij}))}{\sum_{s∈N_{(i)}∪\{i\}}exp(LeakyReLU(e_{is}))}\tag{2} αij=∑s∈N(i)∪{i}exp(LeakyReLU(eis))exp(LeakyReLU(eij))(2)- 更新节点 i i i的信息:
z i ( l + 1 ) = ∑ s ∈ N ( i ) ∪ { i } α i s h ^ s ( l + 1 ) (4) z_i^{(l+1)}=\sum_{s∈N_{(i)}∪\{i\}}α_{is}\hat{h}_s^{(l+1)}\tag{4} zi(l+1)=s∈N(i)∪{i}∑αish^s(l+1)(4)- 应用激活函数捕获复杂的非线性信号,生成节点 i i i的激活特征向量:
h i ( l + 1 ) = σ ( z i ( l + 1 ) ) (5) h_i^{(l+1)}=σ(z_i^{(l+1)})\tag{5} hi(l+1)=σ(zi(l+1))(5)- 为了稳定学习过程并在不同位置获得来自不同表示子空间的信息,采用具有K头注意机制,其中GAT层并行应用K个线性变换:
h i ( l + 1 ) = σ ( ∣ ∣ k = 1 K [ z i ( k ) ] ( l + 1 ) ) (6) h_i^{(l+1)}=σ(||_{k=1}^K[z_i^{(k)}]^{(l+1)})\tag{6} hi(l+1)=σ(∣∣k=1K[zi(k)](l+1))(6)- 为提高收敛速度,稳定学习过程,在每个GAT层的输出后添加一个归一化层,然后再应用激活函数σ:
h i ( l + 1 ) = σ ( L a y e r N o r m ( z i ( l + 1 ) ) ) (7) h_i^{(l+1)}=σ(LayerNorm(z_i^{(l+1)}))\tag{7} hi(l+1)=σ(LayerNorm(zi(l+1)))(7)
使用
l
l
l层GAT提取药物的特征,每经过一层GAT,都会获得药物不同的子结构信息。在每一层GAT,使用下面的READOUT函数聚合药物所有子结构的信息得到药物分子图的图级表示:
g
x
(
l
)
=
∑
i
=
1
n
β
i
z
i
(
l
)
(8)
g_x^{(l)}=\sum_{i = 1}^{n}β_iz_i^{(l)}\tag{8}
gx(l)=i=1∑nβizi(l)(8)
每个子结构的信息都由一个可学习的系数
β
i
∈
R
β_i∈R
βi∈R加权,其表示了不同子结构的重要性。使用SAGPooling来确定图中每个节点的重要性
β
i
β_i
βi,其计算如下:
β
=
s
o
f
t
m
a
x
(
G
N
N
(
A
,
X
)
)
(9)
β=softmax(GNN(A, X))\tag{9}
β=softmax(GNN(A,X))(9)
SAGPooling同时考虑节点的上下文信息和拓扑信息,以确定它们在整个图中的重要性。
具有共注意力的子结构相互作用相关性
使用共注意机制来解释
G
x
G_x
Gx和
G
y
G_y
Gy的子结构之间的每一对相互作用的重要性
γ
i
j
γ_{ij}
γij,其由下式给出:
γ
i
j
=
b
T
t
a
n
h
(
W
x
g
x
(
i
)
+
W
y
g
y
(
j
)
)
(10)
γ_{ij}=b^Ttanh(W_xg^{(i)}_x + W_yg^{(j)}_y)\tag{10}
γij=bTtanh(Wxgx(i)+Wygy(j))(10)
其中
b
b
b是一个可学习的权重向量,
W
x
W_x
Wx和
W
y
W_y
Wy是可学习的权向量矩阵。使用不同的权重矩阵来避免相似的子结构得到高分的情况。
预测和损失函数
G
x
G_x
Gx和
G
y
G_y
Gy具有类型为
I
i
I_i
Ii的相互作用
r
r
r的预测概率为:
p
(
G
x
,
G
y
,
r
)
=
σ
(
∑
i
∑
j
γ
i
j
g
x
(
i
)
T
M
r
g
y
(
j
)
)
(11)
p(G_x, G_y, r)=σ(\sum_{i}\sum_{j}γ_{ij}{g_x^{(i)}}^TM_rg_y^{(j)})\tag{11}
p(Gx,Gy,r)=σ(i∑j∑γijgx(i)TMrgy(j))(11)
其中,
σ
σ
σ为
s
s
s型函数,
M
r
M_r
Mr为可学习矩阵表示交互类型
I
r
I_r
Ir。其考虑一对药物
(
G
x
,
G
y
)
(G_x, G_y)
(Gx,Gy)具有相互作用
r
r
r的概率,是这些药物的功能子结构之间成对化学反应的聚集,这些组合中的每一个都根据其对最终DDI预测的重要性或相关性进行加权。
利用二元交叉熵对模型进行端到端梯度下降训练。数据集中给定的DDIs被认为是正样本。对于每个阳性样本
(
G
x
,
G
y
,
r
)
i
(G_x, G_y, r)_i
(Gx,Gy,r)i,按照[1]中提出的策略替换
G
x
G_x
Gx或
G
y
G_y
Gy生成一个阴性样本。整个DDI数据集
D
D
D上的损失函数
L
L
L计算如下:
L
=
−
1
N
∑
i
=
1
N
(
l
o
g
(
p
i
)
+
l
o
g
(
−
p
i
′
)
(12)
L=-\frac{1}{N}\sum_{i = 1}^{N}(log(p_i)+log(-p_i^{'})\tag{12}
L=−N1i=1∑N(log(pi)+log(−pi′)(12)
其中,
p
i
p_i
pi是已知的DDI元组的概率,
p
i
′
p_i^{'}
pi′是其相关的负样本的概率。
实验
实验设置
数据集
DrugBank数据集
5.0.3版本的DrugBank数据集包含1704种药物,191400个DDI,86种DDI类型
对比方法
-
MR-GNN
利用多分辨率的体系结构来学习全面和有效的特征
-
GoGNN
利用图视图中的双重注意机制,从实体图和实体交互图中分层捕获信息
-
MHCADDI
在药物结构之间引入消息传递机制,在药物的表示学习阶段整合联合药物-药物信息
-
DeepDDI
一种基于相似性的方法,基于每种药物的分子指纹设计特征结构相似性谱。然后将药物对的相似性谱输入多层感知器进行预测
参数设置
- GAT层数 L = 4 L=4 L=4
- 多头注意力的头数 K = 2 K=2 K=2
- GAT层的隐藏特征向量维数为64
- batch size = 1024 =1024 =1024
- Adam优化器: weight decay = 5 e − 4 =5e-4 =5e−4;学习率衰减策略 l r = 1 e − 2 × 0.9 6 t lr = 1e-2×0.96^t lr=1e−2×0.96t, t t t是当前的epoch
实验结果及分析
评估指标
准确率ACC;ROC曲线下面积AUROC;精度-召回曲线下面积AUPRC
实验结果分析
热启动场景
表1是不同方法在热启动场景下的性能。SSI-DDI在ACC和AUPRC指标上优于其他方法。由于DrugBank数据集的不平衡性质,AUPRC指标并不非常可靠。多类分类器往往有非常高的AUROC分数,即使true positive率非常低。SSI-DDI具有非常高的AUROC和AUPRC评分,这表明它不仅可以区分相互作用和非相互作用药物,而且精度很高。
冷启动场景
为了研究模型在面对新药物时的表现,论文将药物划分为:已知药物( G o l d G_{old} Gold)和新药( G n e w G_{new} Gnew),满足 G n e w = 1 5 , G n e w ∪ G o l d = G G_{new}=\frac{1}{5}, G_{new}∪G_{old} = G Gnew=51,Gnew∪Gold=G, G n e w ∩ G o l d = ∅ G_{new} ∩ G_{old} = ∅ Gnew∩Gold=∅。DDI元组划分为: D t r a i n = ( G x , G y , r ) ∈ D ∣ G x ∈ G o l d ∧ G y ∈ G o l d D_{train} = {(G_x, G_y, r) ∈ D | G_x ∈ G_{old} ∧ G_y ∈ G_{old}} Dtrain=(Gx,Gy,r)∈D∣Gx∈Gold∧Gy∈Gold; D S 1 = ( G x , G y , r ) ∈ D ∣ G x ∈ G n e w ∧ G y ∈ G o l d D_{S1}={(G_x, G_y, r) ∈ D | G_x ∈ G_{new} ∧ G_y ∈ G_{old}} DS1=(Gx,Gy,r)∈D∣Gx∈Gnew∧Gy∈Gold; D S 2 = ( G x , G y , r ) ∈ D ∣ ( G x ∈ G o l d ∧ G y ∈ G n e w ) ∨ ( G x ∈ G n e w ∧ G y ∈ G o l d ) D_{S2} = {(G_x, G_y, r) ∈ D | (G_x ∈ G_{old} ∧ G_y ∈ G_{new}) ∨ (G_x ∈ G_{new} ∧ G_y ∈ G_{old})} DS2=(Gx,Gy,r)∈D∣(Gx∈Gold∧Gy∈Gnew)∨(Gx∈Gnew∧Gy∈Gold),并将学习率更改为 l r = 1 e − 3 × 0.96 t lr = 1e−3×0.96t lr=1e−3×0.96t。
表2显示了三次试验结果的平均值和标准差,SSI-DDI可以很好地区分相互作用和非相互作用的药物对,即使是在看不见的药物上。这是由于将高水平的DDI重新制定为低水平的SSI。尽管药物有所不同,但它们仍然可以有相似的子结构。
消融研究
为研究具有共注意机制的子结构相互作用的相关性是方法的重要组成部分,去除共注意层和/或通过增加或减少GAT层的数量来改变模型的深度进行实验。
冷启动场景下在验证集上获得的AUPRC结果如图所示。可以看到,共注意的结合确实提高了性能:带有共注意的浅层模型(3层GAT)甚至比没有共注意的深层模型(5层)表现得更好。
案例研究
为研究导致潜在DDI的子结构,从公式(11)中确定最高的成对相互作用得分的
(
h
,
t
)
(h, t)
(h,t):
(
h
,
t
)
=
a
r
g
m
a
x
i
,
j
(
g
x
(
i
)
T
M
r
g
y
(
i
)
)
(13)
(h, t)=argmax_{i,j}({g_x^{(i)}}^TM_rg_y^{(i)})\tag{13}
(h,t)=argmaxi,j(gx(i)TMrgy(i))(13)
(
h
,
t
)
(h, t)
(h,t)指明
G
x
G_x
Gx的第
h
h
h个GAT层对应的子结构与
G
y
G_y
Gy的第
t
t
t个GAT层对应的子结构之间的相互作用对最终的DDI结果贡献最大。由于第
l
l
l个GAT层中的节点代表由自身及其1到
l
l
l跳邻居组成的子结构,可以推断
G
x
G_x
Gx感兴趣的子结构的半径为
h
h
h,
G
y
G_y
Gy感兴趣的子结构的半径为
t
t
t。根据方程(9)中确定每个子结构的权重。
表3显示了案例研究的结果。子结构的贡献以分子图的热图(绿色填充等高线的图)表示。每一行包含一对药物,一种PDE5抑制剂(第一列)和一种硝酸盐药物(第三列),以它们的分子图形式表示,以及它们的DDI概率(中间列)。对每一对药物,公式(13)
(
h
,
t
)
(h, t)
(h,t)表示分子图中的每个原子都是PDE5抑制剂半径为
R
=
h
R=h
R=h的子结构的中心,硝酸盐药物半径为
R
=
t
R=t
R=t的子结构的中心。因此,在热图中,每个子结构的贡献主要集中在其中心周围。
可以看到,前6个DDI发生的概率非常高,正如热图所示,硝酸盐官能团与预测结果非常相关。另一方面,最后两行的低概率值可以解释为硝酸盐基团没有被完全捕获。贡献高的子结构以硝酸基的氧为中心,半径为1,不足以捕获整个官能团。
相关知识链接
下载
源代码资源
基准实验涉及的论文
参考文献
总结
亮点
- DDI是由药物化合物在生物体中共存时的子结构(功能基团)引起的。基于此知识,提出了一个模型SSI-DDI,模型基于两种药物各自子结构之间的相互作用来预测两种药物之间的DDI。
- 使用一个注意机制(共注意)来学习每个子结构相互作用与最终的DDI预测的相关性。该相关性指标也可用于解释预测结果,具有一定的可解释性。
[不足]
- 方法的一个限制是,当DDI的药物顺序发生变化时,即使是在训练阶段,性能也会受到影响。
- 在子结构提取阶段仍有一些噪声信息泄漏,这可能会影响在感应设置中的性能。
[启发]
- 此工作将分子子结构视为固定半径大小,使用具有预定层数/迭代的GNN来捕获具有半径为 r r r的子结构。原理上使用GAT,可以将化学子结构外的节点赋予权值0,但在实际情况中,权值一般不为0。然而,化学子结构的大小和形状完全不规则。
- 此工作使用GAT为噪声节点分配较低权值,可以考虑为噪声边分配较低权值,考虑引入D-MPNN方法实现次目的。
BibTex
@article{nyamabo2021ssi,
title={SSI--DDI: substructure--substructure interactions for drug--drug interaction prediction},
author={Nyamabo, Arnold K and Yu, Hui and Shi, Jian-Yu},
journal={Briefings in Bioinformatics},
volume={22},
number={6},
pages={bbab133},
year={2021},
publisher={Oxford University Press}
}