1. 引言
在新药物的发掘中,识别化合物–蛋白质的关联关系(CPI)是一项十分重要的工作。在生物信息学中,如果可以准确的识别化合物与蛋白质关联关系,将可以大大的降低成本而且可以缩短时间。如果我们想要精准的预测化合物与蛋白质关联关系,我们就需要更全面的蛋白质信息,例如三维结构的蛋白质的信息。但是由于现有的方法无法将获取三维结构的蛋白质的信息以三维的形式嵌入到CPI方法中,所以开发者需要只能使用蛋白质二维信息或一维序列信息来预测化合物与蛋白质关联关系。而化合物最常见的嵌入方法是通过smile方法进行的一维嵌入方式,所以我们也需要使用蛋白质的一维序列信息进行实验。因为化合物与蛋白质的结构都不同,所以化合物与蛋白质的序列长短不一。然而之前的方法中,由于不合理的嵌入方法,以及过少的特征信息,这都会导致最终的预测结果性能不佳。
2. 模型研究现状
药物发掘与再利用是当前生物医学中十分重要的一项工作。其中识别化合物–蛋白质的关联关系(CPI)是这项工作中的关键一环。传统的识别CPI方法主要有两种,一种是通过湿式实验室识别CPI,但是这种处理方法的成本昂贵,并且耗时;另一种方法是虚拟筛选(vs) [1] ,即通过计算机计算CPI。虚拟筛选可以分为两类,一类方法是从靶蛋白的三维结构出发的基于受体的虚拟筛选方法,另一类方法一般是利用已知活性的小分子化合物的基于配体的虚拟筛选方法。在过去的研究中,基于配体的虚拟筛选的方法在药物发掘方面获得了较好的研究成果 [2] 。对于基于受体的虚拟筛选的方法,如果蛋白质的3D结构未知,那么这些方法的预测能力就非常有限了。Bredel和Jacoby提出了一种称为化学基因组学的学科,其中对化合物与蛋白质的嵌入方法做出了很多研究 [3] 。对于蛋白质的嵌入方法,Bredel等人提出蛋白质使用一维序列信息进行嵌入也可以获得化合物与蛋白质关联关系的预测结果。所以自此以后,很多研究者提出了各种基于嵌入蛋白质的一维序列信息的算法用于预测药物信息与蛋白质的关联关系。其中,基于深度学习的算法能够让机器具有分析学习能力,能够识别文字、图像和声音等数据,在数据挖掘、机器翻译、自然语言处理以及其它相关领域都取得了很多成果,因此基于深度学习的算法成为了近些年预测CPI最适合的方法之一。
近些年来,Shi等人提出来一种端到端的深度学习模型 [4] ,端到端的模型可以极大的缩减了人工预处理和后续的处理工作,尽可能使模型从原始输入到最终的输出,给模型更多可以根据数据自动调节的空间,增加了模型的整体契合度。基于端到端的学习模型的这种优势,越来越多的研究人员将该模型应用于预测化合物蛋白质关联关系的研究当中。所以本文使用端到端的学习模型来预测CPI。
在应用深度学习算法对CPI进行预测研究的初期阶段,研究人员使用卷积神经网络(CNN)模型预测CPI。其中DeepDTA (Ozturk et al., 2018) [5] 使用卷积神经网络,然后整合由CNN模块提取的化合物与蛋白质的低维特征,将这个低维特征通过全连接层获得最终结果。Lee等人对于Ozturk等人的模型进行了改进,命名为DeepConv-DTI (Lee et al., 2019) [6] 。该模型的化合物使用全连接层得到向量特征,蛋白质使用卷积神经网络得到向量特征,再将整合后的特征向量输入至全连接层得到输出分数。而GraphDTA模型分别使用了四种不同的方法对化合物向量进行模型构建(Nguyen et al., 2020) [7] ,最终发现化合物使用图注意力网络(GAT)与图卷积神经网络构建的模型、蛋白质使用CNN模块时,效果最好。通过不同模型的实验,我们预见到CNN模块可能会有很好的整合效果。最近由Li等人发表的GA-Ens (Li et al., 2023)模型获得了很好的预测结果 [8] ,其中作者使用二部图的节点特征作为向量特征,在特征整合部分,该论文使用的是变分图自动编码器。最后降维的方法是全连接神经网络。所以,本文使用CNN模块提取蛋白质和化合物的特征信息。并且最终结果与Li等人的实验结果进行比较。
Transformer是Vaswani等人在2017年发表的Attention Is All You Need中使用的模型 [9] ,因为Transformer具有更好的并行性能和更短的训练时间,因此其在自然语言处理领域中得到了广泛应用。TransformerCPI (Chen et al., 2020) [9] 首次在预测CPI模型中添加了transformer模型 [10] ,其中在化合物方面,化合物向量使用图卷积神经网络获得;在蛋白质方面,蛋白质向量使用一维的卷积神经网络获得和门控神经单元构建的模型获得;之后将化合物向量与蛋白质向量输入到transformer模型中,最后通过全连接层得到输出结果。MolTrans (Huang et al., 2020) [11] 也发表了基于transformer构建的模型,与TransformerCPI使用序列信息不同,MolTrans使用嵌入样本模块时输入的信息是二维信息,在transformer模块、连接模块和解码器模块后输出结果。HyperAttentionDTI (Zhao et al., 2022) [12] 也使用了transformer模型,并且对TransformerCPI进行了改进:药物向量与蛋白质向量使用卷积神经模型获得,将两种向量输入至transformer模型,再把transformer模型输出的向量与输入transformer模型之前的特征向量进行加权相加得到最终的特征向量,最后通过全连接层得到预测结果。与基线相比,该模型取得了显著的性能提升。所以在本文的模型中,我们将transformer作为模型的一部分,其中transformer除设置多个注意力头外,没有其他方面改动。
基于之前的方法(Lee et al., 2019; Chen et al., 2020; Zhao et al., 2022) [6] [10] [12] ,我们准备了一种端到端的深度学习模型用于预测CPI,命名为CT-CPI。我们模型的输入序列是化合物序列和蛋白质序列,其中化合物使用的是化合物的smiles序列表示,蛋白质是氨基酸序列进行表示。我们把化合物、蛋白质序列转换成矩阵形式作为CT-CPI的嵌入方法。之后我们通过CNN模块得到化合物与蛋白质的特征矩阵。与以往的transformer模型不同的是,我们使用不同的CNN模块,这样我们就会获得每个化合物与蛋白质的不同的特征矩阵,更多的特征矩阵将更好的学习每个化合物与蛋白质间的相互作用。之后我们把多个特征矩阵输入至多头注意力机制中,通过多头注意力机制,我们将化合物与蛋白质的信息充分融合。在通过多头注意力机制模块后,我们将融合的信息整合成向量的形式在输入至多层感知机(MLP)中,在MLP中输出的结果就是我们需要的预测结果。我们将我们的模型与之前的论文结果在相同的数据集上进行对比,结果表明,CT-CPI预测的结果与基线相比效果更好。
3. 材料和方法
3.1. 数据集
我们使用的模型需要数据集提供很多信息,其中包括化合物的标签、蛋白质的标签、化合物的序列信息、蛋白质的序列信息以及化合物与蛋白质间的关联关系。通过化合物的序列信息和蛋白质的序列信息能够成为模型训练和测试的主要样本信息,通过化合物的标签和蛋白质的标签可以标识样本,因为对于预测CPI任务,我们将其视为二分类任务,即预测CPI的结果表示为无关联关系或者有关联关系,所以我们需要数据集提供化合物与蛋白质间的关联关系,其中的关系分别是阳性样本关联关系和阴性样本关联关系。
针对于我们需求的信息,我们最终在DrugBank数据库和Davis数据库提取的数据作为建立我们实验基本的数据集。对于DrugBank数据库和Davis数据库,它们都可以将详细的化合物数据和全面的蛋白质信息结合起来(Wishart et al., 2006) (Davis et al., 2011) [13] [14] 。相同的是:DrugBank数据库和Davis数据库提供的数据都是一维序列形式,其中化合物信息使用Islam等人提出的Simplified molecular input line entry system (SMILES)方法进行表示 [15] ,蛋白质序列使用氨基酸序列进行表示。在数据筛选方面,我们首先去除了无效或错误的数据,而且我们又调整了数据集的平衡性,经过筛选之后,我们基于Davis数据库和DrugBank数据库分别选取了25,772条和35,022条关联关系。在关联关系方面,DrugBank数据集上的阳性样本关联关系数量与阴性样本关联关系数量相同,并且化合物与蛋白质的关联网络稀疏;而Davis数据集的两种关系数量差别较大,而且化合物与蛋白质的关联网络较为密集。我们在表1总结了两种数据集的信息。
Table 1. Information on the two types of data used
表1. 使用的两种数据的信息
3.2. CT-CPI模型的描述
我们模型的提出是基于transformer结构(Vaswani et al., 2017) [9] ,transformer结构原本是应用于自然语言处理的深度网络学习模型,最近,transformer在预测化合物与蛋白质关联关系的任务中取得了巨大成功,例如TransformerCPI (Chen et al., 2020) [10] ,HyperAttentionDTI (Zhao et al., 2022) [12] ,所以我们的模型也是基于transformer结构提出的,命名为CT-CPI。其中CT-CPI模型分成五个部分,分别是:嵌入模块,CNN模块,transformer模块,合并模块和多层感知机模块。由于化合物的smiles序列长度与蛋白质的氨基酸序列长度的长短都有很大差别,所以我们使用嵌入模块处理长度不同的smiles序列和长度不同的氨基酸序列。从嵌入模块输出的特征矩阵再传到CNN模块中,这样化合物和蛋白质就可以将特征矩阵输入到多个不同的CNN模块,从而获得了多个特征向量。之后我们将每一个化合物、蛋白质的多个特征向量都输入到transformer模块中,那么输出得到的也是每一个化合物、蛋白质的多个特征向量。之后将所有的特征向量进行合并就是我们的合并模块。最后将我们的合并模块的输出向量经过多层感知机模块得到最终的预测结果。图1表示为CT-CPI模型的流程图。
Figure 1. Working framework of the CT-CPI
图1. CT-CPI的工作框架
3.2.1. 嵌入模块
在嵌入模块,我们需要将化合物和蛋白质以序列的形式进行输入。在输入方面,我们使用smiles序列表示化合物,使用氨基酸序列表示蛋白质。化合物的smiles序列字符包括原子和结构表示符,共计64个。在蛋白质中,虽然氨基酸的种类一共有20种,但是由于在蛋白质基因组学的研究中会出现一些不确定的氨基酸或者罕见的氨基酸,所以我们最终确定的蛋白质的氨基酸序列的字符的数量一共有25个。那么我们可以通过嵌入模块,使得化合物的smiles序列、蛋白质的氨基酸序列转换为化合物、蛋白质的特征矩阵。嵌入模块后,化合物的嵌入矩阵为
,其中
表示化合物的嵌入长度,cv表示smiles字符的词汇量大小。蛋白质的嵌入矩阵为
,其中
表示蛋白质的嵌入长度,pv表示氨基酸的词汇量大小。图2表示为嵌入模块的具体工作流程。
Figure 2. Workflow of the embedded module
图2. 嵌入模块的工作流程
3.2.2. CNN模块
在我们的模型中,我们希望通过不同尺寸的CNN模块以便获得化合物或者蛋白质的多个特征。为了计算机性能的考虑,我们为化合物与蛋白质分别设置了两个不同尺寸的CNN模块,如图1,即对化合物和蛋白质一共设置了四个不同的CNN module模块。在每一个CNN模块中,都包括三个一维卷积层,之后连接了一个一维最大池化层。在化合物的两个CNN模块中,我们既保证了模块间卷积核的大小不同,又保证了在最后输出的两个特征矩阵大小一致,同理,我们对蛋白质进行了相同的处理方法。并且,我们在每一个卷积层后都添加了一个激活函数,而且每个不同的CNN模块使用的激活函数都不相同,理由就是为了获得不同的特征。为了将化合物嵌入矩阵
和蛋白质嵌入矩阵
输入至CNN模块,我们需要通过非线性函数对
和
进行维数变化,使得:
(1)
(2)
其中
表示对
进行维数变换的权重,
表示对
进行维数变换的权重,b表示偏置,
表示非线性激活函数:ReLU函数。
经过CNN模块生成化合物特征矩阵
和蛋白质特征矩阵
,其中
表示化合物的第i个CNN模块,
表示蛋白质的第j个CNN模块,f表示最后一个一维卷积层的滤波器个数,并且保证化合物和蛋白质最后一个一维滤波器的个数相同,
和
使用的是激活函数Tanh函数,
和
使用的是激活函数ReLu函数。
3.2.3. Transformer模块
Transformer模型的核心是自注意力机制,在本篇论文使用的是多头注意力机制。在我们之前的介绍中,化合物的特征矩阵
,其中
,因为表示化合物的特征矩阵的维数不尽相同,所以我们通过多层感知机(MLP)将维数统一,蛋白质同理,我们也需要将蛋白质的特征矩阵的维数统一。所以通过多层感知机后的化合物和蛋白质的特征矩阵表示如下:
(3)
(4)
其中
表示非线性激活函数:ReLU函数,
和
表示权重矩阵,b表示偏置。
因为通过多层感知机后的化合物的特征矩阵
和蛋白质的特征矩阵
的第二维数相同,所以符合多头注意力机制模型的输入标准。首先我们构建的是transformer机制的编码器部分,为了将两个特征矩阵转换成一个可交互的特征矩阵,因为在本模型中化合物与蛋白质都输入到了两个不同的CNN模块中,所以构建的多头注意力机制就包含两个头,而且那么
与
输入到一个注意力机制中,
与
输入到另一个注意力机制中,注意力矩阵可以表示为
,其中
。之后构建transformer机制的解码器部分,主要内容是将一个交互的特征矩阵转换成两个经过注意力机制的特征矩阵,即对注意力矩阵
降维,那么:
(5)
(6)
其中
和
表示经过第k个头的多头注意力机制的化合物和蛋白质的特征矩阵,
表示注意力矩阵
对第2维的降维方法,
是我们想要降维的数组,2表示为第2维。
3.2.4. 合并模块
在合并模块中,我们希望经过transformer机制的特征矩阵与未经过transformer机制的特征矩阵进行合并,那么首先我们将(3)、(4)的
和
进行整合成:
(7)
(8)
其中
和
表示整合后但未经过transformer机制的化合物和蛋白质的特征矩阵。
之后,我们整合经过transformer机制的化合物和蛋白质的特征矩阵,我们整合的特征矩阵采用相加取平均的方法,通过提取(5)、(6)的结果我们得到经过transformer机制的整合后的特征矩阵:
(9)
(10)
其中
和
表示整合后的经过transformer机制的化合物和蛋白质的特征矩阵。我们再将未经过transformer机制的特征矩阵与经过transformer机制的特征矩阵进行整合:
(11)
(12)
其中
和
表示整合后的可更新的化合物和蛋白质的特征矩阵,
表示矩阵间各个元素相乘。之后合并化合物和蛋白质的特征矩阵:
(13)
其中Interaction表示合并后的特征矩阵,
表示按二维矩阵的列向量进行拼接。
3.2.5. 多层感知机模块
我们将Interaction输入至多层感知机,表示为:
(14)
其中
,
,
表示非激活函数:Leaky-ReLu函数,
表示第l层的多层感知机的权重矩阵,b表示偏置,表示最终的输出结果。在每个多层感知机中都加入一个Dropout,以便于忽略一些特征,其中Dropout是指随机选择的某一组神经元在训练阶段忽略单元(即神经元)。由于我们研究的CPI任务是一个二分类任务,所以我们使用二分类交叉熵损失函数来训练我们的模型:
(15)
其中z表示真实值,
是我们通过模型的预测结果。
4. 结果和讨论
4.1. 多层感知机模块
我们将HyperAttentionDTI论文中使用的DrugBank数据库中的数据集作为基准数据集(Zhao et al., 2022),我们又与三种先进的方法进行了比较,主要从五个方面进行比较,分别是AUC、PRC、Accuracy、Precision和Recall。
(16)
(17)
(18)
(19)
其中TP、TN、FP和FN分别表示真阳性、真阴性、假阳性和假阴性,TPR表示正样本中的正确判别率,FPR表示负样本中的错判率。AUC值通常使用ROC曲线围成的面积表示,ROC曲线的横纵坐标分别由FPR和TPR表示,PRC的横纵坐标分别由TPR和Precision表示。
本篇论文使用五折交叉验证的方法,意思是我们将数据随机且平均分成五份,将一份作为测试集,之后将剩余的四份在平均且随机的分成五份,取其中的一份作为验证集,剩下的数据作为训练集。模型重复五次计算以保证每个数据都至少都在测试集中出现过一次。为了防止这种方法出现随机性,我们将方法重复十次然后获得结果的平均值。
4.2. 模型表现
根据上述公式,我们基于两种数据集进行了实验,与MolTrans、TransformerCPI、HyperAttentionDTI和GA-ENs方法比较信息如表2和表3。
Table 2. Comparison with different models based on the Davis database
表2. 基于Davis数据库与不同模型进行的比较
Table 3. Comparison with different models based on DrugBank database
表3. 基于DrugBank数据库与不同模型进行的比较
由表2和表3结果显示,我们的实验结果在基准数据集上是要优于其他先进的实验的。我们又根据实验的结果画出来了ROC曲线,基于Davis数据库的ROC曲线图如图3,基于DrugBank数据库的ROC曲线图如图4。
此外,我们还根据五折交叉验证分别计算了实验中每一折的AUC值,由图5显示,其中每一折AUC的值分别为0.9554、0.9556、0.9559、0.9549和0.9561,结果说明我们模型的效果稳定。
4.3. 模型参数
在我们的模型中,为了使得嵌入模块中的特征矩阵的维数更适合于化合物与蛋白质的嵌入长度,所以我们设置了一个阈值。对于Davis数据库,当化合物的长度 > 62时,我们使用嵌入尺寸为124 × 64的特征矩阵,若化合物的长度 ≤ 62,我们使用嵌入尺寸62 × 64的特征矩阵,其中64表示smiles字符的词汇量,同理,我们设置蛋白质长度的阈值为744,若蛋白质长度超过744,那么我们使用嵌入尺寸1488 × 25的特征矩阵,同理,若蛋白质长度 ≤ 744,那么我们使用嵌入尺寸744 × 25的特征矩阵,其中25表示氨基酸的词汇量。我们又设置了其他的超参数,学习率为1e−4,批处理大小为8。在CNN模块中,一共有四个不同的CNN模块,它们都是由3个一维CNN卷积层组成,其中化合物的CNN模块卷积核大小分别为3,6,9和4,6,8;蛋白质的CNN模块卷积核大小分别为2,8,14和4,8,12。在最后多层感知机中,我们在每层感知机后都加入了一个Dropout,Dropout设置为0.1。在本篇论文我们引入了早停法,早停法持续周期为20周期。早停法的意思表示是在实验训练完成一次后,我们会比较训练损失和验证损失,如果训练损失大于验证损失,说明模型没有过拟合,那么模型需要继续训练,然而如果出现验证损失大于训练损失,说明模型可能出现过拟合,那么模型进入早停周期,如果周期持续20周期但是训练损失仍然小于验证损失,那么停止训练。表4总结了我们使用参数的信息。
Figure 3. ROC curves of different experiments based on the Davis database
图3. 基于Davis数据库的不同实验的ROC曲线
Figure 4. ROC curves of different experiments based on DrugBank database
图4. 基于DrugBank数据库的不同实验的ROC曲线
4.4. 消融实验
我们基于Davis数据库和DrugBank数据库的数据的模型,我们从三个方面进行了消融实验,分别将这三种模型命名为CT-CPI-Size、CT-CPI-Cnn和CT-CPI-Transformer,分别从模型尺寸、CNN个数和消除transformer模型的三个方面建立的消融实验模型。
Figure 5. ROC curves for each fold experiment
图5. 每一折实验的ROC曲线
Table 4. Partial parameter information of the model
表4. 模型的部分参数信息
4.4.1. 对于CT-CPI嵌入尺寸的消融实验
对于CT-CPI的嵌入尺寸,如果我们设置的嵌入长度cs和ps的值过大,那么我们设置的化合物和蛋白质的嵌入矩阵也会过大,从而导致嵌入矩阵中包含大量无用元素。反之如果值过小,那么得到的嵌入矩阵也会过小,那么嵌入矩阵会丢失很多元素。对于嵌入长度的值的设置,我们先获得数据长度的平均值,平均值的大小可以最大程度的保证符合大多数数据的尺寸大小。那么我们将平均值作为cs1和ps1的值。其中基于DrugBank数据库的化合物、蛋白质长度的平均值为59、499,Davis数据库的化合物、蛋白质长度的平均值为62、744。
那么作为CT-CPI嵌入尺寸的消融实验模型,我们命名为CT-CPI-Size (Lc, Lp),其中Lc和Lp分别表示嵌入长度cs和ps的cs1和ps1的值。我们使用了两种CT-CPI-Size (Lc, Lp)与原模型进行了比较,基于DrugBank数据库、Davis数据库比较结果如表5和表6。
Table 5. Comparison between the DrugBank database and the size-based ablation experimental model
表5. 基于DrugBank数据库与基于尺寸的消融实验模型进行的比较
Table 6. Comparison between the Davis database and the size-based ablation experimental model
表6. 基于Davis数据库与基于尺寸的消融实验模型进行的比较
4.4.2. 对于CT-CPI的CNN模块的消融实验
对于CNN模块,我们希望引入多个CNN模块是为了获取通过不同降维,从而得到的多个特征,如果我们设置的CNN模块过多,不但会加重计算机的运算负担,而且因为特征过多,导致噪声特征也会存在,所以可能会对预测结果产生负作用。但是如果CNN模块较少,那么特征较少,所以可能无法获得数据的全面性。
对于CT-CPI的CNN模块消融实验模型,我们命名为CT-CPI-Cnn(a),其中a表示CNN模块的个数,我们依旧是做出了两种消融实验模型与原模型进行对比,对比结果如表7。
Table 7. Comparison between the Davis database and the CNN-based ablation experimental model
表7. 基于Davis数据库与基于CNN的消融实验模型进行的比较
4.4.3. 对于CT-CPI的Transformer模块的消融实验
为了验证transformer模块的有效性,我们在消融实验中将transformer模块删除,并且使用合并方法将化合物向量特征与蛋白质向量特征整合,我们使用的(13)方法作为合并方法。那么消融实验模型的结果与原模型的结果对比如表8。
Table 8. Comparison between the Davis database and the CNN-based ablation experimental model
表8. 基于Davis数据库与基于CNN的消融实验模型进行的比较
5. 总结
在本文中,我们设计了一个名为“CT-CPI”的端到端的模型用来预测CPI。我们改变了之前基准论文中的嵌入方法,对不同长度的样本分别进行了处理。我们使用的多个CNN模块获得了样本的多个特征,这些都表明,我们模型训练完成的特征是更加匹配于样本的特征。
在验证模型有效性时,基于Davis数据库数据,我们使用五折交叉验证的模型的AUC值与Accuracy值达到了95.6%和89.0%,其结果表明了在预测CPI方面,该模型有着良好的预测效果。
而且我们也使用了不同的数据集进行了预测测试,其结果依旧是较为准确的。所以我们的模型与最先进的模型相比在基准数据集上,结果表明,在我们评估的性能上,我们的模型取得了明显的改进。
目前,我们对嵌入方法只做了部分的优化,那么在未来的工作中,我们希望对嵌入方法进行更多的创新,使得在预测CPI方向上,我们的模型有更好的预测能力。