陳鵬輝,徐權峰,李榮庭,王 煜,胡 夢,喻文霞,李慧敏,唐 軼
(云南民族大學 數學與計算機科學學院,云南 昆明 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位點的預測能力.
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種方式.
壓平層是將前面的多維輸入轉化為一維,是將前面層過渡到全連接層的重要層,使模型能夠在后面達到預測分類的目的.
全連接層主要是給其它全連接層傳遞信號,對整個模型起到分類器的作用.
雙層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時輸出為陰性樣本.
為了便于與其他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的平均值為依據對模型性能進行評估.
由于每條樣本數據是 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)
卷積過程以及全連接層中,為了防止過擬合,對數據進行正則化處理.利用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) 策略,即在驗證誤差不再提升時就提前結束訓練,無需等驗證的誤差達到最小值才停止訓練,有效地減少了模型訓練的時間.
主要采用模型對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]預測模型上的封裝函數.
對前人常用的參數進行組合,并在線蟲上進行參數調試,調試結果見表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網絡結構及參數
為了更直觀地展示每次交叉驗證的預測效果,將測試集的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值,表明該模型具有較好的預測能力,并且對不同物種具有很強的適應性.
為了驗證提出的模型是否具有較強的穩定性并且能與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比較
文中基于雙卷積層和雙池化層構建了1種DNA 4mC位點預測的深度學習模型,通過對6個實驗物種的4mC位點進行預測發現,無論是基于第1基準數據集還是第2基準數據集,提出的模型在各個物種上都取得了相對較好的ACC值或AUC值.表明該模型不僅具有優良的預測性能并且具有較好的普適性,可應用于不同物種的4mC位點預測.通過與已有方法進行比較發現,該模型的預測能力優于一般的機器學習算法和單層卷積神經網絡模型,提高了對4mC位點的預測能力.