基于双层卷积神经网络的DNA N4-胞嘧啶甲基化位点预测
2022-07-18陈鹏辉徐权峰李荣庭喻文霞李慧敏
陈鹏辉,徐权峰,李荣庭,王 煜,胡 梦,喻文霞,李慧敏,唐 轶
(云南民族大学 数学与计算机科学学院,云南 昆明 650500)
DNA甲基化修饰是表观遗传学中最重要的修饰之一[1].常见的DNA甲基化修饰有N5-胞嘧啶甲基化 (N5-methylcytosine,5mC) 和N4-胞嘧啶甲基化 (N4-methylcytosine,4mC) 等,其中5mC已被广泛研究[2-4].科学界自1983年首次发现4mC已有近40年时间[5],但由于技术方法以及人们对4mC功能认识的局限性,针对4mC的研究还相对较少.近期研究发现,4mC修饰不仅在基因表达、细胞修复和DNA复制等方面具有重要作用[6-7],还可以保护自身DNA免受酶介导的降解[8],而这些与疾病的发生和治疗密切相关[9].通过甲基化位点对相应的甲基化修饰进行研究是一种常用的甲基化研究手段,因此,有效识别4mC位点对于认识DNA 4mC甲基化的生物机制具有重要意义.通过实验手段,如单分子实时测序[10]、全基因组亚硫酸氢盐测序[11]和工程转录激活因子样效应物[12]等方法已发现了一些4mC位点,但当应用于大规模基因组序列时,实验方法存在费用昂贵及耗时较长等问题,因此发展有效的计算方法辅助4mC位点的预测十分有必要.
随着智能计算的发展,涌现出大量的4mC位点预测算法,支持向量机、马尔可夫模型、深度学习等算法被应用于4mC位点预测[13].2017年,Chen等[14]提出iDNA4mc,作为首个基于机器学习的4mC位点预测算法,通过对拟南芥 (A.thaliana)、线虫 (C.elegans)、果蝇 (D.melanogaster)、大肠杆菌 (E.coli)、地杆菌 (G.pickeringii) 和嗜碱菌 (G.subterruneus) 6个物种的4mC位点进行预测,发现算法预测准确率 (accuracy, ACC) 在76.0%~83.1%之间.同时,Chen等基于上述6个物种整理了1个4mC位点数据集用于后续4mC位点预测方法的研究 (称为第1基准数据集).2018年,Zou等[15-16]基于支持向量机发展了4mcPred和4mcPred_SVM 2个预测算法,这2个算法相对于iDNA4mc,对4mC位点的预测能力有了小幅提高,预测准确率大部分位于76.7%~86.0%之间.2019年,Khanal等[17]基于单层卷积神经网络(convolutional neural network, CNN)方法提出了4mcCNN,该算法对6种生物的4mC位点预测准确率在79.7%~87.2%之间.2020年,Yang等[18]基于马尔可夫模型构建了TOMM4mc算法,该算法在第1基准数据集上的4mC位点预测能力优于前几种,预测准确率约在83.6%~91.8%之间,但也只是在大肠杆菌和地杆菌上的预测准确率超过90% .此外,研究者也针对其他数据集发展了一些4mC位点预测算法.如,Manavalan等[19]在2019年基于机器学习方法预测了小鼠基因组中的4mC位点,并开发了4mcPred-el工具,方便研究者对小鼠的4mC位点进行预测,预测准确率在80%左右.2020年,Xu等[20]在第1基准数据集基础上添加了新的4mC位点和非4mC位点数据构建预测数据集 (称为第2基准数据集),同样基于单层卷积神经网络提出了Deep4mC方法,同时利用受试者工作特征(receiver operating characteristic, ROC) 曲线[21-22]下面积 (area under curve, AUC) 评判算法的预测能力,发现该方法对上述6个物种的4mC位点预测能力在90.1%~96.5%之间,平均AUC值为93.6% .
以上算法虽然对4mC位点的预测取得了不错的效果,但基于传统机器学习模型的预测准确率大部分在90% 以下,并且在不同物种上的预测效果相差较大,模型鲁棒性相对较低;而基于单层神经网络的4mcCNN在第1基准数据集上的预测准确率也不超过90%[17].扩大数据集以后,Deep4mC虽然取得了较好的性能,但平均不到95% 的预测能力仍有一些上升空间.一个可能的原因是传统机器学习和单层神经网络对数据特征提取不够.因此,为了更充分地提取序列特征,提出1种基于双卷积层和双池化层的CNN结构,从而提高模型的预测能力.结果表明,在对上述6个物种的4mC位点进行预测时,双层CNN模型优于一般机器学习和单层卷积神经网络模型,有效提高了4mC位点的预测能力.
1 模型介绍
1.1 CNN模型
CNN模型是20世纪60年代由Hubel和Wiesel提出的,随着近年来计算机的发展,CNN已成为各研究领域的热点,在分类识别中发挥着重要作用.一般地,CNN主要由输入层 (input layer)、卷积层 (convolutional layer)、池化层 (pooling layer)、压平层 (flatten layer)、遗忘层 (dropout layer)、全连接层 (dense layer)和输出层 (output layer) 等构成,其核心部分是卷积层、池化层、压平层和全连接层,这4个层涵盖模型的主要功能.
卷积层主要是将卷积核应用到输入数据的所有点上,滑动经过滤波器处理生成的数值.一维卷积运算公式如下:
(1)
池化层能够压缩数据以及参数的量,即是在卷积层提取特征后,池化层就能对特征进行选择和过滤,能够减轻模型的过拟合现象.常用的主要有最大池化 (max-pooling) 和平均池化 (mean-pooling) 2种方式.
压平层是将前面的多维输入转化为一维,是将前面层过渡到全连接层的重要层,使模型能够在后面达到预测分类的目的.
全连接层主要是给其它全连接层传递信号,对整个模型起到分类器的作用.
1.2 双层CNN结构
双层CNN模型结构如图1.
图1 双层卷积神经网络示意图
将输入序列,即核苷酸序列视为由4通道 (A, C, G, T) 组成的具有固定长度的一维序列窗口,并运用2个一维卷积层和2个池化层构建CNN模型.具体构建方法如下:
1) 构建第1卷积层 (the first convolutional layer, Conv1) 和第1最大池化层 (the first max-pooling layer, maxpooling1).将样本序列进行特征编码处理,并将其输入到Conv1.为了模型在训练过程中输出为负数时能够有输出值,卷积层激活函数选用 “elu” 函数,其公式如下:
(2)
在卷积层之后添加了归一化层,归一化过程选用组归一化 (group normalization,GN) 算法[23],能使模型在各批量数据下拥有稳定的性能,相应公式如下:
(3)
(4)
将组归一化层的输出传入maxpooling1,采用的最大池化公式如下:
(5)
2) 构建第2卷积层 (the second convolutional layer, Conv2) 和第2最大池化层 (the second max-pooling, Maxpooling2).在第1次最大池化后将结果重新传入Conv2,并进行第2次卷积和池化,卷积和池化方式与第一次相同.
3) 压平层和遗忘层设置.在进行2次卷积和池化以后,将池化后的结果传入压平层 ,把高维输入变成一维输出;然后将压平层的结果传入遗忘层 ,再将遗忘层结果传入全连接层.此处加入遗忘层是为了防止当数据量过小时出现过拟合的现象.
4) 输出层设置.选用Sigmoid函数作为激活函数,其公式为:
(6)
式中x为前面的层处理输出的值,函数f(x)取值范围为[0,1].对于二分类问题,sigmod函数在模型中一般作为输出层部分.此处选择激活函数f(x)默认的输出进行分类,即当输出值大于0.5时输出为阳性样本,当输出值小于0.5时输出为阴性样本.
2 实验设计
2.1 数据集
为了便于与其他4mC位点预测方法进行比较,实验数据集与其它方法一致,均采用拟南芥、线虫、果蝇、大肠杆菌、地杆菌和嗜碱菌6个物种的4mC位点数据集,称为基准数据集,并取数据集中每条序列长度为41bp[14-15].基准数据集包含4mC位点的阳性样本数据和阴性样本数据,见图2.其中阳性样本数据是指序列包含4mC位点,并且样本序列的中间位置确实是4mC位点C (图2(a)中);而阴性样本数据是指序列不包含4mC位点但序列中间位置是核苷酸C (图2(b) 中).
图2 4mc甲基化位点和非甲基化位点样本示意图
与iDNA4mc、4mCPred、4mcPred_SVM、4mCCNN和TOMM4mC等方法比较时,采用Chen等[14]整理的上述6个物种的4mC位点数据集,即第1基准数据集;与Deep4mc进行比较时,采用Xu等[20]构建的预测数据集,即第2基准数据集.相对于第1基准数据集,第2基准数据集中各个物种的数据量扩大了近10倍.各基准数据集中阳性和阴性样本数据数据量见表1.
表1 6个物种基准数据集的样本数据
续表1
为了使模型性能更加稳定,采用10折交叉验证法将阳性样本和阴性样本随机划分为训练集、验证集和测试集.具体方法为:将总样本数据集随机划分为10等份,其中1份作为测试集,1份作为验证集,其余8份作为训练集,重复10次,最后以这10次所得AUC的平均值为依据对模型性能进行评估.
2.2 特征编码
由于每条样本数据是 41 bp 长度的碱基序列,因此每条序列可以表示成式 (7) 的形式:
RL=N1N2…N20CN21…N40N41
(7)
其中,Ni∈{A、C、G、T},RL的中间位置即第21位为胞嘧啶C.该序列数据不能直接输入到CNN模型中,因此在输入模型之前需对其进行预处理.将A、C、G、T进行编码,令A=(1,0,0,0)T、T=(0,1,0,0)T、C=(0,0,1,0)T、G=(0,0,0,1)T,则每条碱基序列可以表示成一个独热编码 (one-hot enconding) 数值矩阵.例如,假设序列RL=AG…C…TG,则它的one-hot enconding数值矩阵为式 (8).
(8)
2.3 参数设置
卷积过程以及全连接层中,为了防止过拟合,对数据进行正则化处理.利用Python2.7的第3方库keras自带的regularizers正则化器,由于本问题属于分类问题,故选用L2范式正则化(权重衰减)方法,并将kernel_regularizer和bias_regularizers的参数均设置为0.0001.根据前人经验,激活函数在150次迭代后能够使模型得到最佳的训练效果,所以将模型的迭代次数设置为150.模型涉及的参数均根据前人常用参数进行组合选取最优所得[24-26],由于线虫的样本量在6种实验物种中基本居中,故以线虫为依据进行参数调整.
在模型训练过程中,为了对模型梯度加速下降,在模型优化器选择上,选用带动量 (momentum) 的随机梯度下降算法 (stochastic gradient descent,SGD).将SGD优化器中学习率设为0.001,动量参数Momentum设为0.95.在模型训练过程中随着不断迭代,容易出现训练误差不断减少而验证误差先减少后增加的现象.为了防止这种现象,模型采取提前停止 (early stopping) 策略,即在验证误差不再提升时就提前结束训练,无需等验证的误差达到最小值才停止训练,有效地减少了模型训练的时间.
2.4 性能评价指标
主要采用模型对4mC位点识别的准确率ACC 和ROC曲线下面积AUC作为性能的评价指标.ACC的计算公式为式 (9):
(9)
其中,真阳性 (true positive, TP)、假阳性 (false positive, FP)、假阴性 (false negative, FN) 和真阴性 (true negative, TN) 分别代表被正确预测的正样本数、被错误预测的负样本数、被错误预测的正样本数和被正确预测的负样本数.ROC曲线的横坐标是假阳性率(false positive rate),即被错误预测的负样本数的概率;纵坐标是真阳性率(true positive rate),即指被正确预测的正样本数的概率.AUC表示ROC曲线与横坐标轴围成的面积,其取值范围为 [0,1].AUC值与预测性能正相关,AUC值越大,说明模型整体性能越好.模型评价指标函数在代码实现方面调用了Chen等[27-28]预测模型上的封装函数.
3 结果与分析
3.1 模型参数
对前人常用的参数进行组合,并在线虫上进行参数调试,调试结果见表2~4.
表2 卷积层数对预测准确率的影响
表3 滤波数和核大小对预测准确率的影响
表4 学习率对预测结果的影响
从表2和表3可以看出,当模型选用2层卷积网络,并且第1卷积层滤波器个数为16,第2卷积层滤波器个数为32,卷积核尺寸均为2时,能够达到最好的预测效果.
从表4可以发现,虽然学习率为0.01时能够达到最高的AUC值,但此时的损失值达到了0.41,而学习率为0.001时能够达到与学习率0.01时接近的AUC值,且此时的ACC值最高,且损失值最小,因此在模型中选用0.001的学习率对样本进行训练.
最终,得到双层CNN模型的具体网络结构和参数,见表5.
表5 双层CNN网络结构及参数
3.2 第1基准数据集预测结果
为了更直观地展示每次交叉验证的预测效果,将测试集的10折交叉预测结果绘制成ROC曲线图 (图3).从图3可以看出,模型对每个物种的4mC位点预测的平均AUC值都在94% 以上,具体如下:拟南芥(94±3)%、线虫(96±3)%、果蝇(95±1)%、大肠杆菌(95±4)%、地杆菌(97±1)%和嗜碱菌(95±4)%.
由于基于第1基准数据集的算法对模型进行性能评价时主要采用准确率,因此我们用ACC值作为与iDNA4mc、4mCPred、4mcPred_SVM、4mCCNN和TOMM4mC等方法进行比较时的主要指标.表6列出了基于第1基准数据集,各种模型在6个物种上对4mC位点的ACC值.从表6可以得出:iDNA4mc、4mCPred、4mcPred_SVM、4mCCNN和TOMM4mC的平均ACC值分别为80.1%、81.7%、82.7%、84.7%和88.1%,而双层CNN模型的平均预测准确率为91.7%,比上述几种算法提高了3.6%~11.6%;与前人预测准确率最高的TOMM4mc方法相比,双层CNN模型在拟南芥、线虫、果蝇、地杆菌和嗜碱菌5个物种上的ACC值相对于TOMM4mc均有不同程度地提高,提高幅度分别为6%、4.8%、5.2%、2.4% 及5.3%.尽管在大肠杆菌上,双层CNN模型比TOMM4mC的预测效果略差,ACC值低于TOMM4mC方法2.1%,但比其他模型要好很多,如:与同样是基于卷积神经网络 (单层) 的4mCCNN相比,其ACC值高了3.8%.
图3 第1基准集10倍交叉验证的ROC曲线
表6 不同模型在第1基准数据集上的预测准确率ACC的比较
因此,从与不同模型的比较可以发现,双层CNN模型对4mC位点的预测具有较高的准确率.从模型的整体预测效果看,双层CNN模型的平均预测准确率比目前2个最好的预测模型4mCCNN和TOMM4mC分别提高了7% 和3.6%.同时,双层CNN模型对不同物种的4mC位点预测可取得高达94%~97%的AUC值,表明该模型具有较好的预测能力,并且对不同物种具有很强的适应性.
3.3 第2基准数据集预测结果
为了验证提出的模型是否具有较强的稳定性并且能与Deep4mc进行比较,将该模型应用到第2基准数据集.在预测效果比较上,同样选取10折交叉验证的平均结果.在模型预测框架和参数不变的情况下,对6种生物的4mC位点进行预测.结果发现在第2基准数据集上,双层CNN模型的平均AUC值均超过92%,达到了较好的预测效果,具体ROC曲线见图4.由于Deep4mc模型中只给出了预测的AUC值,在此选用AUC值作为模型性能比较的评价指标.表7列出了模型在第2基准数据上的预测AUC值比较结果.从表7可以看出,在对不同物种的4mC位点预测上,双层CNN模型的预测效果都比Deep4mc要好,且模型预测的平均AUC值比Deep4mc高了约2%.这表明双层CNN模型同样适用于对大样本数据的4mC位点预测.
图4 第2基准数据集10倍交叉验证的ROC曲线
表7 不同模型在第2基准数据集上的预测AUC比较
4 结语
文中基于双卷积层和双池化层构建了1种DNA 4mC位点预测的深度学习模型,通过对6个实验物种的4mC位点进行预测发现,无论是基于第1基准数据集还是第2基准数据集,提出的模型在各个物种上都取得了相对较好的ACC值或AUC值.表明该模型不仅具有优良的预测性能并且具有较好的普适性,可应用于不同物种的4mC位点预测.通过与已有方法进行比较发现,该模型的预测能力优于一般的机器学习算法和单层卷积神经网络模型,提高了对4mC位点的预测能力.