Drug–drug interaction prediction with learnable size-adaptive molecular substructures
基本信息
博客贡献人
鲁智深
作者
Arnold K. Nyamabo, Hui Yu, Zun Liu and Jian-Yu Shi
标签
Drug–Drug Interaction; Substructure extraction; Substructure interaction; Multi-type interactions; Gated Message Passing Neural Network
摘要
药物-药物相互作用(DDIs)是指两种或两种以上不相容的药物一起使用对身体产生不良反应的相互作用。DDIs可能是由相关药物的化学成分引起的。基于药物化学知识,即药物是一个实体由不同的官能团/化学子结构决定所有的药代动力学(如何处理生物)和药效学(它如何影响组织)属性,并决定最终的相互作用。
- 介绍了门控消息传递神经网络(GMPNN),从药物的分子图表示中学习不同大小和形状的化学子结构,用于一对药物之间的DDI预测。
- GMPNN中,边被认为是控制消息传递流的门,因此以一种可学习的方式划分子结构。药物对之间的最终DDI预测是基于它们(学习的)子结构对之间的相互作用。
- 提出的方法GMPNN-CS在两个真实数据集上进行了评估,在一个数据集上的结果具有竞争力,另一个数据集上比以前的方法有所提高。
问题定义
给定一组药物 D D D和一组相互作用类型 R R R,DDI预测任务可以看作是一个函数 f : D × R × D → [ 0 , 1 ] f: D×R×D→[0,1] f:D×R×D→[0,1]。也就是说,给定两种药物和某种类型的相互作用的三元组,该任务预测了两种药物之间发生这种相互作用的概率。目标是找到 f f f的近似,给定一个已知的DDIs M = { ( d x , r , d y ) i } i = 1 N ⊂ D × R × D M=\{(d_x,r,d_y)_i\}_{i=1}^N⊂ D×R×D M={(dx,r,dy)i}i=1N⊂D×R×D。论文提出的方法就是这样一种近似。
方法
方法描述
方法流程如下:
为了确定两种药物
d
x
d_x
dx和
d
y
d_y
dy是否可以导致相互作用
r
r
r:
(1) 模型将药物对的图表示作为输入;
(2) 使用门控消息传递神经网络进行子结构提取;
(3) 提取的子结构之间计算一个交叉子结构注意
γ
i
j
γ_{ij}
γij,以了解它们彼此之间的相关性;
(4) 最终DDI预测
p
(
d
x
,
d
y
,
r
)
p(d_x, d_y, r)
p(dx,dy,r)是这些子结构的相互作用分数之和,每个子结构由共注意权重
γ
i
j
γ_{ij}
γij进行加权
基于门控消息传递神经网络的子结构提取
图2. 子结构提取的示例 传统MPNN在图中游走,被访问的节点中有冗余(一个节点可以在游走中出现不止一次,但在路径中最多出现一次);为了更接近路径生成过程,选择使用有向消息传递神经网络(D-MPNN) D-MPNN的消息传递、聚合(公式)和更新:m k → j ( l ) = M ( l ) ( h k , h j , q k → j ( l − 1 ) ) , ∀ k : v k ∈ N ( v j ) \ v i (4) m_{k→j}^{(l)}=M^{(l)}(h_k,h_j,q_{k→j}^{(l-1)}), ∀k:v_k ∈ N (v_j)\backslash{v_i} \tag{4} mk→j(l)=M(l)(hk,hj,qk→j(l−1)),∀k:vk∈N(vj)\vi(4)
a i ( l ) = A ( l ) ( m k → j ( l ) k : v k ∈ N ( v j ) \ v i ) (5) a_{i}^{(l)}=A^{(l)}({m_{k→j}^{(l)}}_{k:v_k ∈ N (v_j)\backslash{v_i}}) \tag{5} ai(l)=A(l)(mk→j(l)k:vk∈N(vj)\vi)(5)
q j → i ( l ) = U ( l ) ( q j → i ( l − 1 ) , a i ( l ) ) (5) q_{j→i}^{(l)}=U^{(l)}(q_{j→i}^{(l-1)},a_{i}^{(l)}) \tag{5} qj→i(l)=U(l)(qj→i(l−1),ai(l))(5)
- 对节点进行非线性变换,以获得更好的特征表示:
h i = M L P i n i t _ n ( x i ) , ∀ v i ∈ V (8) h_i=MLP_{init\_n}(x_i), ∀v_i ∈ V \tag{8} hi=MLPinit_n(xi),∀vi∈V(8) - 对边进行非线性变换:
h j → i = M L P i n i t _ e ( x j i ) , ∀ e j → i (9) h_{j→i}=MLP_{init\_e}(x_{ji}), ∀e_{j→i} \tag{9} hj→i=MLPinit_e(xji),∀ej→i(9)
h i → j = M L P i n i t _ e ( x i j ) , ∀ e i → j (10) h_{i→j}=MLP_{init\_e}(x_{ij}), ∀e_{i→j} \tag{10} hi→j=MLPinit_e(xij),∀ei→j(10) - 边
e
j
→
i
e_{j→i}
ej→i的权值(门)
w
j
→
i
∈
[
0
,
1
]
w_{j→i}∈[0,1]
wj→i∈[0,1]基于节点的特征
h
j
h_j
hj和
h
i
h_i
hi,以及其自身的特征
h
j
→
i
h_{j→i}
hj→i:
o j → i = − 1 c ( h j → i T M L P w ( h j ∣ ∣ h i ) ) o_{j→i}=-\frac{1}{c}(h_{j→i}^TMLP_w(h_j||h_i)) oj→i=−c1(hj→iTMLPw(hj∣∣hi))
w j → i = σ ( o j → i ) (11) w_{j→i}=\sigma(o_{j→i})\tag{11} wj→i=σ(oj→i)(11)
σ ( ⋅ ) σ(·) σ(⋅)是用于约束 w j → i w_{j→i} wj→i到[0,1]中的s型函数 - 现在有节点特征向量
h
i
h_i
hi和边权值
w
j
→
i
w_{j→i}
wj→i,应用有向消息传递机制来模拟节点沿路径的聚合,以进行子结构提取。由于消息是在边之间而不是在节点之间传递的,因此将节点的特征提升到边。边
e
j
→
i
e_{j→i}
ej→i的新特征为:
q j → i ( 0 ) = w j → i h j (12) q_{j→i}^{(0)}=w_{j→i}h_j \tag{12} qj→i(0)=wj→ihj(12) - 消息传递、聚合和更新被定义为:
m k → j ( l ) = w j → i q k → j ( l − 1 ) , ∀ k : v k ∈ N ( v j ) \ v i (13) m_{k→j}^{(l)}=w_{j→i}q_{k→j}^{(l-1)}, ∀k: v_k∈N(v_j)\backslash{v_i} \tag{13} mk→j(l)=wj→iqk→j(l−1),∀k:vk∈N(vj)\vi(13)
a j → i ( l ) = ∑ k : v k ∈ N ( v j ) \ v i m k → j ( l ) (14) a_{j→i}^{(l)}=\sum_{k: v_k∈N(v_j)\backslash{v_i}}m_{k→j}^{(l)} \tag{14} aj→i(l)=k:vk∈N(vj)\vi∑mk→j(l)(14)
q j → i ( l ) = q j → i ( 0 ) + a j → i ( l ) (15) q_{j→i}^{(l)}=q_{j→i}^{(0)}+a_{j→i}^{(l)} \tag{15} qj→i(l)=qj→i(0)+aj→i(l)(15) - 在最后一次迭代L后,一个节点
v
i
v_i
vi的最终表示捕获了以它为中心的子结构信息:
s i = f s u b ( h i + ∑ j : v j ∈ N ( v i ) q j → i ( l ) ) (16) s_i=f_{sub}(h_i+\sum_{j: v_j∈N(v_i)}q_{j→i}^{(l)}) \tag{16} si=fsub(hi+j:vj∈N(vi)∑qj→i(l))(16)
DDI预测
给定一个DDI元组
(
d
x
,
r
,
d
y
)
(d_x,r,d_y)
(dx,r,dy),DDI预测被表示为该元组的联合概率:
p
(
d
x
,
r
,
d
y
)
=
σ
(
∑
i
∣
V
x
∣
∑
j
∣
V
y
∣
γ
i
j
s
^
i
(
x
)
T
M
r
s
^
j
(
y
)
(17)
p(d_x,r,d_y)=\sigma(\sum_i^{|V_x|}\sum_j^{|V_y|}γ_{ij}\hat{s}_i^{(x)T}M_r\hat{s}_j^{(y)} \tag{17}
p(dx,r,dy)=σ(i∑∣Vx∣j∑∣Vy∣γijs^i(x)TMrs^j(y)(17)
s
^
i
(
x
)
\hat{s}_i^{(x)}
s^i(x)和
s
^
j
(
y
)
\hat{s}_j^{(y)}
s^j(y)分别是子结构
s
i
(
x
)
s_i^{(x)}
si(x)和
s
j
(
y
)
s_j^{(y)}
sj(y)的线性变换:
s
^
i
(
x
)
=
W
(
x
)
s
i
(
x
)
,
i
=
1
,
.
.
.
,
∣
V
x
∣
(18)
\hat{s}_i^{(x)}=W_{(x)}s_i^{(x)},i=1,...,|V_x| \tag{18}
s^i(x)=W(x)si(x),i=1,...,∣Vx∣(18)
s
^
j
(
y
)
=
W
(
y
)
s
j
(
y
)
,
j
=
1
,
.
.
.
,
∣
V
y
∣
(19)
\hat{s}_j^{(y)}=W_{(y)}s_j^{(y)},j=1,...,|V_y| \tag{19}
s^j(y)=W(y)sj(y),j=1,...,∣Vy∣(19)
M
r
∈
R
b
×
b
M_r∈R^{b×b}
Mr∈Rb×b是交互类型
r
r
r的可学习表示矩阵。为了减少参数量,将其约束为一个对角矩阵:
M
r
=
d
i
a
g
(
m
r
)
(20)
M_r=diag(m_r) \tag{20}
Mr=diag(mr)(20)
γ
i
j
∈
[
0
,
1
]
γ_{ij}∈[0,1]
γij∈[0,1]是交叉子结构相互作用权重,也称为共注意力:
γ
i
j
=
s
o
f
t
m
a
x
(
M
L
P
γ
(
s
i
(
x
)
∣
∣
s
j
(
y
)
)
)
,
i
=
1
,
.
.
.
,
∣
V
x
∣
,
j
=
1
,
.
.
.
,
∣
V
y
∣
(22)
γ_{ij}=softmax(MLP_γ(s_i^{(x)}||s_j^{(y)})),i=1,...,|V_x|, j=1,...,|V_y| \tag{22}
γij=softmax(MLPγ(si(x)∣∣sj(y))),i=1,...,∣Vx∣,j=1,...,∣Vy∣(22)
利用二元交叉熵对模型进行端到端梯度下降训练。数据集中给定的DDIs被认为是正样本。对于每个正样本
(
d
x
,
r
,
d
y
)
(d_x, r, d_y)
(dx,r,dy),按照[1]中提出的策略替换
d
x
d_x
dx或
d
y
d_y
dy生成一个负样本。整个DDI数据集上的损失函数计算如下:
L
=
−
1
M
∑
i
:
(
d
x
,
r
,
d
y
)
i
∈
M
(
l
o
g
(
p
i
)
+
l
o
g
(
1
−
p
i
′
)
(24)
L=-\frac{1}{M}\sum_{i:(d_x, r, d_y)_i∈M}(log(p_i)+log(1-p_i^{'})\tag{24}
L=−M1i:(dx,r,dy)i∈M∑(log(pi)+log(1−pi′)(24)
实验
实验设置
数据集
DrugBank数据集
DrugBank数据集包含1706种药物,191808个DDI,86种DDI类型
每个DDI元组只有一个相互作用,即没有两个不同的元组具有相同的药物对,但有不同的相互作用。
Twosides数据集
Twosides数据集包含645种药物,4649441个DDI,1317种DDI类型
每个DDI元组可能存在多个相互作用。
对比方法
-
MR-GNN
利用多分辨率的体系结构来学习全面和有效的特征
-
MHCADDI
在药物结构之间引入消息传递机制,在药物的表示学习阶段整合联合药物-药物信息
-
SSI-DDI
将每个节点的隐藏特征视为子结构,然后计算这些子结构之间的交互,以确定最终的DDI预测
-
GMPNN-U
GMPNN-CS的变体,其中共注意系数 γ i j = ( ∣ V x ∣ ∣ V y ∣ − 1 ) γ_{ij} =(|V_x||V_y|^{−1}) γij=(∣Vx∣∣Vy∣−1)。
实验结果及分析
评估指标
准确率ACC;AUC;平均精度AP、F1、精度P和查全率R
实验结果分析
热启动场景
在热启动场景下,在训练集中使用的药物也可以出现在测试集中。在这种情况下,基于DDI元组随机划分数据集。根据相互作用类型对两个数据集进行了分层分割,以保持训练(60%)、验证(20%)和测试(20%)集中相互作用类型的相同比例。重复三次此过程,结果产生了三次分层的随机fold。
在DrugBank数据集上,提出的方法并没有表现最好。且GMPNN-CS及其变体GMPNN-U的结果非常接近。在Twoside数据集上,与其他方法相比有明显的改进。由于计算量的限制,不能在此数据集上使用MHCADDI进行实验;只报告了原始论文的结果(仅AUC可用)。GAT-DDI似乎在这个数据集上就像一个随机分类器,可能是由于梯度消失/爆炸或过度平滑的问题,在此数据集的改进计算中没有考虑它。
冷启动场景
数据集根据药物进行分割,即训练集和测试集中的DDI元组没有重叠的药物。随机保留了五分之一的药物作为新药(
D
n
e
w
D_{new}
Dnew),不在训练中使用。
M
s
1
M_{s1}
Ms1收集两种药物都在
D
n
e
w
D_{new}
Dnew中的DDI元组,
M
t
r
a
i
n
M_{train}
Mtrain收集两种药物都在
D
o
l
d
D_{old}
Dold中的DDI元组,
M
s
2
M_{s2}
Ms2收集一种药物在
D
o
l
d
D_{old}
Dold中,另一种药物在
D
n
e
w
D_{new}
Dnew中的DDI元组。此过程重复三次,结果产生了三次随机fold。
可以看到提出的方法总体上表现最好。所有方法的性能与热启动场景相比都有显著的下降。这是因为DrugBank是由在支架(核心化学结构)方面有显著差异的药物组成。因此,
D
n
e
w
D_{new}
Dnew和
D
o
l
d
D_{old}
Dold中的药物不仅不同,且在结构上几乎没有共同之处。
可视化
(1) 检索
γ
i
j
γ_{ij}
γij值最高的子结构对
(2) 子结构的权重呈现重新定义如下:
v
1
←
w
2
,
1
v
2
←
w
3
,
2
v
3
v_1\overset{w_{2,1}}{←}v_2\overset{w_{3,2}}{←}v_3
v1←w2,1v2←w3,2v3是构成子结构的路径之一,在可视化示例中,边具有路径中前面所有边值与其自身值的乘积值,即,
v
1
←
w
2
,
1
v
2
←
w
2
,
1
w
3
,
2
v
3
v_1\overset{w_{2,1}}{←}v_2\overset{w_{2,1}w_{3,2}}{←}v_3
v1←w2,1v2←w2,1w3,2v3
为简单起见,如果一条边有多个相邻的边(即出现在多个路径中),那么取最大值。
(3) 这些值显示在相应的边缘上,并作为强度来突出显示图中的(绿色)边缘,子结构的中心节点用灰色填充的圆圈突出显示。
PDE5抑制剂与硝酸盐药物同时服用是禁忌,因为它可导致血压降低。可以看到,亚硝酸戊酯的硝酸基(红色虚线框中)与DDI预测结果非常相关。
氯沙星的碳基氧和羧酸(都显示在红色虚线框中)可以与金属离子(碳酸钙的钙)形成螯合物。螯合物的水溶性很差,因此可以显著降低对沙星在体内的吸收。
相关知识链接
下载
源代码资源
GMPNN-CS
总结
亮点
- 利用药物的化学子结构来预测一对药物之间的药物-药物相互作用,利用共注意机制来学习,每个成对的子结构相互作用参与药物-药物相互作用的相关性。
- 提出了门控消息传递神经网络,从药物的分子图中学习各种大小和形状的子结构。
[不足]
- 药物主要是有机分子,大多数原子是碳,产生的分子图中大多数节点是相似的,这可能会影响边权值。
- 每个节点/原子都被认为是子结构的中心,因此子结构和节点一样多。彼此相邻的节点最终成为相似的子结构的中心, γ i j γ_{ij} γij被一组非常相似的子结构过度使用,从而导致冗余。
[启发]
- 通过加权的有向图消息传递,可拟合大小和形状不一的子结构,原理上可以将边的权值赋予权值0,但在实际情况中,权值一般不为0,会引入噪声。
BibTex
@article{nyamabo2022drug,
title={Drug--drug interaction prediction with learnable size-adaptive molecular substructures},
author={Nyamabo, Arnold K and Yu, Hui and Liu, Zun and Shi, Jian-Yu},
journal={Briefings in Bioinformatics},
volume={23},
number={1},
pages={bbab441},
year={2022},
publisher={Oxford University Press}
}