1. 引言
21世纪以来,乳腺癌已经成为全世界范围内女性患病率和死亡率比较高的恶性肿瘤。乳腺癌是乳腺上皮细胞在多种致癌因子的作用下,发生增殖失控的现象。乳腺癌的发生发展与雌激素水平密切相关。约70%的乳腺癌是雌激素受体α (Estrogen receptors alpha, ERα)阳性乳腺癌 [1]。ERα的异常表达会促使乳腺癌的发生及进展。目前,治疗乳腺癌的方法有很多,比如手术治疗、物理治疗以及药物治疗等。针对ERα表达的乳腺癌患者的治疗,抗激素药物往往能够起到一定的效果,也是对于ERα表达的乳腺癌患者治疗的一种常用的手段。所以,那些可以拮抗ERα活性的药物就有可能用来治疗乳腺癌。
在抗乳腺癌药物 [2] 的研究中,抗乳腺癌候选药物应该具有很好的生物活性才能够更好地抑制ERα。而一个化合物想要成为候选药物,不仅需要具备良好的生物活性(此处指抗乳腺癌活性),还需要在人体内具备良好的药代动力学性质和安全性,也就是本文研究的ADMET。具体来说,不良的药物吸收(Absorption)、分布(Distribution)、代谢(Metabolism)、排泄(Excretion)性质和毒性(ADMET)是导致药物开发失败的主要原因之一 [3] [4]。一个化合物的活性再好,如果其ADMET性质不佳,比如很难被人体吸收,或者体内代谢速度太快,或者具有某种毒性,那么其仍然难以成为药物。所以,良好的ADMET特性是一个化合物能够成为乳腺癌候选药物的必要条件之一。基于此,我们对抗乳腺癌候选药物筛选过程中的ADMET性质的分类预测模型进行了研究,希望通过数据挖掘的处理技术来解决药物筛选建模的问题,并且可以通过数学建模的过程之中实现对候选模型的筛选过程中预测模型 [5] 的优化,这对于寻找更合适的抗乳腺癌药物、治疗ERα表达的乳腺癌患者具有重要意义。
本文利用临床试验所提供的1974个化合物的ADMET数据,分别构建化合物的Caco-2、CYP3A4、hERG、HOB、MN的分类预测模型。利用“1”和“0”来分别表示ADMET性质的好坏。用小肠上皮细胞渗透性(Caco-2)为例,‘1’代表该化合物的小肠上皮细胞渗透性比较好,‘0’代表该化合物的小肠上皮细胞渗透性比较差。其余的四组ADMET性质的分类方法类似。本文分别运用BP神经网络 [6] 和XGBoost回归 [7] [8] 两种方法建立并研究了对化合物ADMET性质的定量预测模型。结果表示,对比于BP神经网络方法,XGBoost分类预测模型对于该任务误差最低、效果最好。
2. 模型设计
2.1. 双隐藏层神经网络模型
本文采用含有一个隐藏层两层的多输入单输出结构BP神经网络模型来进行分类预测。采用该模型分别对ADMET数据集中Caco-2、CYP3A4、hERG、HOB、MN五种性质的数据进行预测。以Caco-2的模型构建为例,其余的四组,改变样本输入的数据即可。
第一步:使用Pandas [9] 将1974个样本数据进行整理与分类,先进行标准化处理,将每一行作为一个样本,批量地进行训练。将1974个样本数据整理成数据集,并且按照8:2的比例分为训练集数据和测试集数据。
第二步:输入选取的是全部的分子描述符信息变量,Caco-2的属性分类预测值作为网络的输出。所以输入层的神经元个数n = 20,输出层的神经元的个数只有1个即m = 1。输入数据选择的为全部分子描述符变量,需要学习的数据特征较多,增加了一层的隐藏层,更加抽象稳定地学习数据特征,得出样本中蕴含的规律,从而展现出数据的更为抽象的特性,这些特性能够用来更好的线性地划分。本方案考虑到在验证集上准确度,采用凑试法,经过反复的测试,初步确定双层隐含层的节点数为128和10,有利于逐渐收敛网络的宽度和特征的高层次提取。
设计的双隐藏层神经网络结构示意图如图1所示。
![](//html.hanspub.org/file/20-2570650x7_hanspub.png?20230120084700862)
Figure 1. Double hidden layer neural network structure diagram
图1. 双隐藏层神经网络结构图
2.2. XGBoot模型
XGBoost是一种改进的Boosting集成算法 [10]。通过不断拟合上一颗树残差来不断产生新树,将树模型组合成为一个正确率最高,是泛化能力最强的分类器。XGBoost由多棵决策树组成,若所有决策树的累加结果就是最终解 [11]。
2.2.1. CART回归树
XGBoost所使用的树为CART回归树 [12],假设树为二叉树,通过不断将特征进行分裂形成回归树。比如当前树节点是基于第j个特征值进行分裂的,设该特征值小于s的样本划分为左子树,大于s的样本划分为右子树,有
(1)
(2)
CART回归树实质上就是在该特征维度对样本空间进行划分,而这种空间划分方式的优化是一个NP (Non-Deterministic Polynomial)问题,因此在决策树模型 [13] 中是使用启发式方法解决的。经典CART回归树的目标函数为:
(3)
因此,求解此问题的最优的切分特征j和切分点s就转化为了公式所示的目标优化问题:
(4)
那么只要遍历所有特征的所有切分点,就能找到最优的切分特征j和切分点s,最终找到一颗回归树。
2.2.2. XGBoost算法思想
XGBoost的算法思想就是不断添加树,然后再不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数,去拟合上次预测的残差。当训练完成得到k棵树时,就要预测一个样本的分数,简单而言就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数,最后只需要将每棵树对应的分数加起来就是该样本的预测值,即
(5)
F为所有CART树的函数空间,每个函数
函数值为样本点所在样本点的得分。
为叶子节点q的分数,T表示叶子节点的个数,f(x)为其中一颗回归树。
2.2.3. XGBoost目标函数
XGBoost的一般目标函数被定义为:
(6)
(7)
上式中的
、
均为惩罚系数,经过t轮迭代后的目标函数为:
(8)
为了求最优化问题,让损失函数
在
处的二阶泰勒展开,得到最优解目标函数为:
(9)
则最小损失的目标函数为:
(10)
其中
,
。
信息增益(Information Gain)为:
(11)
XGBoost算法在每轮测试时都会求出一个最优的信息增益,然后根据这个最优的信息增益来指导生成决策树,通过不断迭代找到最优树模型。
2.2.4. XGBoost模型建立
根据已经有的1974个已知样本,每个样本包括729个特征(分子描述符),将所有样本按照8:2的比例划分为训练集和验证集。训练中的参数:学习率为0.30 (learning rate=0.30),最大深度为2 (max_depth=2),最小叶子结点权重为3 (min_child_weight=3),迭代次数为100 (num_boost_round=100)。通过XGBoost模型,得到预测结果。
3. 模型仿真与分析
3.1. BP神经网络模型仿真验证
Python拥有各种可调用的类库与框架,本文分别使用了Python中Pandas进行文件的数据预处理操作,使用Tensorflow框架 [14] 进行BP神经网络预测模型的建立、使用Matplotlib库进行数据可视化绘制。其中BP神经网络预测模型参数设置为:729个输入节点、第一层网络神经元个数为128,第二层网络神经元个数为10,输出节点为1。如图2为数据集的划分及其作用是示意图。
再经过将样本数据集的1974个样本数据进行整理,按照8:2的比例拆分为训练集数据和验证集数据。其中验证集数据用于调试神经网络参数。
在数据集中随机抽取1579 (80%)个样本用作训练,395 (20%)个样本用验证预测,将数据进行归一化并完成建模后,用ADMET数据集中Caco-2、CYP3A4、ERG、HOB、MN五种属性的分别独立的模型训练,得到如图3所示的结果。图3展现的是五种属性的准确度和目标损失随着迭代次数的变化规律。
如图3,在左侧一列的五个图中,每个图中含有两个准确度,即训练集的准确度和验证集的准确度。右侧一列为对应的训练损失函数趋势图。对于ADMET的五种属性的训练结果图中发现,在相同网络模型结构下二分类情况训练结果趋势大致相同。
双层隐藏网络在训练集上训练时,将每一次更新后的神经元权重参数对整个训练集的数据进行预测,随着迭代次数的增加,整个神经网络模型的两个准确度基本在完整的两个epoch后开始逐渐在一个区间内进行小幅波动。取三次后(含第三次)的两个准确度的平均值训练集上的平均准确率为0.91,在验证集上的平均准确率为0.865,见表1。这二者说明此双层隐藏层模型的精度较高。此时,相对于真实目标分类进行分类的每个数据特征基本学习完成,但是ADMET的五种属性的损失预测仍存在约为10%~20%的误差。
![](Images/Table_Tmp.jpg)
Table 1. Training set prediction rate and validation set prediction rate
表1. 训练集预测率和验证集预测率
3.2. XGBoot模型仿真验证
表2表示为XGBoost模型对ADMET性质在验证集上正确率分析。
![](Images/Table_Tmp.jpg)
Table 2. XGBoost model accuracy rate
表2. XGBoost模型正确率
图4~8分别为五个ADMET性质的XGBoost模型训练loss曲线和验证loss曲线。
![](//html.hanspub.org/file/20-2570650x38_hanspub.png?20230120084700862)
Figure 4. Loss curve of XGBoost model of Caco-2
图4. Caco-2的XGBoost模型loss曲线
![](//html.hanspub.org/file/20-2570650x39_hanspub.png?20230120084700862)
Figure 5. Loss curve of XGBoost model of CYP3A4
图5. CYP3A4的XGBoost模型loss曲线
![](//html.hanspub.org/file/20-2570650x40_hanspub.png?20230120084700862)
Figure 6. Loss curve of XGBoost model of hERG
图6. hERG的XGBoost模型loss曲线
![](//html.hanspub.org/file/20-2570650x41_hanspub.png?20230120084700862)
Figure 7. Loss curve of XGBoost model of HOB
图7. HOB的XGBoost模型loss曲线
图4~8,利用XGBoost模型对ADMET的五种属性进行二分类预测,得到可视化结果。每种ADMET属性的目标损失随着epoch增加在该模型下的趋势变化情况,且每个属性的训练损失和评估(验证)损失都随着迭代次数的增加在逐渐减小,说明XGBoost模型在每轮测试时找到的最优树模型对输入的整体数据特征的学习度在慢慢增加,对数据的拟合逐渐接近,验证了XGBoost模型对ADMET五种属性的二分类预测是适合的;这也体现在最终的模型验证正确率上,如表2。ADMET的五种属性平均验证正确率为91.84%;在MN属性上拟合验证的效果最优,其验证正确率是97.21%
![](//html.hanspub.org/file/20-2570650x42_hanspub.png?20230120084700862)
Figure 8. Loss curve of XGBoost model of MN
图8. MN的XGBoost模型loss曲线
3.3. 模型对于与分析
表3给出了分别使用BP神经网络和XGBoost模型预测五种ADNET性质的数值对比。
![](Images/Table_Tmp.jpg)
Table 3. Comparison of BP and XGBoost predicted values (only part shown)
表3. BP和XGBoost预测值对比(仅展示部分)
由表3所示,对比于BP神经网络方法,XGBoost分类预测模型对于该任务误差最低、效果最好。
4. 总结
综上所述,本文针对抗乳腺癌候选药物的ADMET性质的数据预处理和相关分析。本文尝试利用两种不同的模型分别为BP神经网络模型和XGBoot模型来建立定量的预测模型,对比两种模型的预测结果,可以发现XGBoot模型的效果更好,这可以更好的解决候选药物的ADMET性质的预测问题。将该模型进行推广,为候选药物的选择提供新思路,具有较好的借鉴意义。