楊書新, 湯達榮
(江西理工大學 信息工程學院, 贛州 341000)
在全基因組關聯(lián)研究中已經發(fā)現(xiàn)人類的許多疾病和癥狀與遺傳變體相關[1],但由于這些復雜疾病受到多種遺傳和環(huán)境因素的綜合影響,導致鑒定與之相關的遺傳變體一直是緩慢且困難的[2]。大部分的遺傳變體存在于非編碼區(qū),但已有的大部分注釋方法是基于蛋白編碼區(qū)域的變體,并且這些編碼區(qū)域的基因只占整個基因組的大約2%[3]。近期提出的基于支持向量機(SVM)的聯(lián)合注釋依賴耗盡(CADD)[4]算法,該方法客觀地將多種不同注釋整合到每個變體的單個度量中。但是CADD中的SVM方法性能受限,由于它只能學到線性的數(shù)據特征。
近年來,深度學習[5]成為機器學習最熱的方向之一,在圖像識別、語音識別和自然語言處理領域取得了突破性進展[6-7],而且在生物信息學中也有不少成功應用[8-11]。深度學習在高通量生物學中潛力巨大,它擅長處理龐大高維的數(shù)據,通過訓練多層網絡學到數(shù)據之間的內部結構,對了解生物數(shù)據的結構增加了解釋性[12-13]。
基于深度學習方法眾多的優(yōu)點,本文設計了一個模型,該模型由3個卷積神經網絡和4個全連接神經網絡構成。卷積網絡擅長于數(shù)據的降維和特征提取[14],它的另一個優(yōu)點是權值共享,大大地減少了網絡中的參數(shù)。全連接網絡充當一個分類器。使用訓練集訓練模型,使用模擬和真實的測試集評估模型的預測準確率,以期能很好地捕獲特征之間的非線性關系。
本文所有數(shù)據均來自文獻[9],其中模擬數(shù)據有33 255 550條,分成了訓練集(Training set)26 602 000條,驗證集(Validation set)3 326 977條和測試集(Testing set)3 326 573條,真實數(shù)據集(ClinVar and ESP set)有61 406條。所有數(shù)據都是以numpy[15]二進制的格式存儲的。
1.2.1 模型建立
數(shù)據的特征維度高達949,而卷積神經網絡(CNN)擅長降維。CNN包含卷積層和池化層。如果網絡能夠有效提取特征,那么高維數(shù)據就能映射到低維的空間。為了預測輸出結果,必須再接一個充當分類器的全連接神經網絡(FNN)。在FNN中,每個節(jié)點都受上一層網絡全部節(jié)點的影響。本文設計了一個包含3個CNN和4個FNN的混合深度神經網絡。

其中的虛線圓圈表示擴展節(jié)點,通常填充為0
The dotted circle expansion node, which is usually filled with 0
圖1CNN的基本結構
Figure 1 Structure of basic CNN

圖 2 FNN的基本結構
1.2.2 模型訓練
在訓練網絡的時候,考慮到模型有許多的網絡層,為了防止梯度消失以及其他情況導致訓練壞死,本文采用了許多先進的技術。
1)激活函數(shù)。
整個模型利用了2個激活函數(shù)。
(1)

(2)
為了加快訓練速度,最后一層網絡不使用激活函數(shù),而是在真正計算預測時使用公式(1),其余的網絡層都是用公式(2)函數(shù)激活。
2)損失函數(shù)。
損失函數(shù)定義為交叉信息熵。
H(p,q)=-∑xp(x)logq(x)
(3)
其中P是預測值,q是真實值。但是最后一層網絡輸出的值是概率分布,實際計算時需要用公式(1)轉換。
3)其他策略。
為了訓練整個模型和更新參數(shù),使用前饋算法計算每層的輸出,梯度下降和反向傳播算法[16]被用于最小化損失函數(shù)。本文還采用了一些優(yōu)化技術:使用mini-batch[17]加快訓練速度;為了避免梯度過大過小,使用adam[18]算法來動態(tài)調節(jié)學習速率;為了防止過擬合采用batch-normolization[19]方法。
1.2.3 性能指標
(4)
(5)
(6)
(7)
(8)
TPR=Recall
(9)
(10)
其中TP=true positive,FP=false positive,TN=true negative和FN=false negative。為了更好地評估分類器的性能,本文繪制了ROC曲線,它的橫坐標為負正類率(FPR),縱坐標為真正類率(TPR),并且計算了曲線的AUC面積。所有這些指標都是通過一個python包scikit-learn[20]計算的。
本文提出的模型是用python3.6實現(xiàn)的,稱之為深度卷積全連接(DCF),深度學習平臺采用的是Google開源平臺tensorflow[21]。本文同樣訓練了Logistic Regression(LR)和CADD的SVM模型作為對比。LR的實現(xiàn)采用的是開源python包scikit-learn。本文沒有直接使用CADD提供的SVM模型,因為它的模型一次只能評估100 000變體而且已經在測試集中訓練過了。而是使用LIBOCAS[22]庫中的SVM作為替代,它們的分類效果相當。3個模型均使用訓練集進行訓練,同時在訓練過程中用驗證集對分類器進行驗證。訓練完之后,分別在測試集和真實數(shù)據集進行預測。在測試集上,DCF、LR和SVM的分類準確率分別是66.44%、59.77%和58.18%(表1)。文獻[9]提出的DANN在該數(shù)據集的正確率是66.1%。其他的性能指標見表1和表2。

表 1 DCF、LR和SVM在模擬測試集上的性能比較

表2 DCF、LR和SVM在真實數(shù)據集上的性能比較
為了更直觀的對比它們的性能,先計算了真陽性率(TPR)和假陽性率(FPR),繪制了ROC曲線,然后計算了曲線下的面積AUC。如圖3-a所示,在測試集中,DCF的AUC面積比LR高了約10%,但是在真實集中則略低,具體如圖3-b。這樣的結果表明了本文方法能夠學習到數(shù)據特征之間的非線性關系,同樣表明了在大數(shù)據量下深度學習會更具優(yōu)勢。所有這3種模型都大大提高了AUC度量標準,LR和DCF模型的性能優(yōu)于SVM。然而,模型之間的性能差距遠小于測試集的差距。
CADD比其他廣泛使用的注釋優(yōu)先處理功能性和致病性變體更好,但也有一些局限性,可能會限制其在某些分析中的有用性或可能代表需要改進的地方[4]。DANN改進了線性方法,但其準確率仍不令人滿意,可能主要是由于訓練采用的是模擬數(shù)據,這樣的數(shù)據在生物學功能上有欠缺[9]。從圖3-b的ROC曲線可以看出,盡管模型是用模擬數(shù)據訓練的,但在真實數(shù)據集中預測依然有效。如果需要進一步提高預測的準確率,首先應該建立更加標準的數(shù)據集,模擬的數(shù)據將更多的生物學因素考慮進去;其次建立統(tǒng)一的評價標準,給注釋方法羅列更全面具體的評估參數(shù);再就是引入更加先進的機器學習方法和工具,比如說當前的深度學習。

虛線是輔助線,曲線都在虛線之上,曲線的AUC面積都大于0.5
the dotted line is auxiliary line, curves is above the dotted line, AUC area of the curve is greater than 0.5
圖3DCF和LR的ROC曲線對比
Figure 3 ROC curves comparing performances of DCF and LR
相比于CADD的SVM方法,我們提出的方法已經有了很大的改進。在線性分類器中,LR實現(xiàn)了更好的性能。DCF實現(xiàn)了最佳的整體性能,在測試集的精度和分離方面大大改善了線性方法。這使得DCF成為最有用的注釋算法之一,因為絕大多數(shù)人類基因變體都是在非編碼區(qū)。DCF也有一些限制,可能會限制它在某些分析中的用處,或者可能代表需要改進的地方。基因組非編碼區(qū)的標準數(shù)據還很缺乏,這限制了更好注釋方法的開發(fā)和驗證預測的能力。但是鑒于DCF在注釋包含絕大多數(shù)遺傳變異的非編碼變體方面的卓越表現(xiàn),我們預計DCF在全基因組關聯(lián)研究和單核苷酸變異組合挖掘中將發(fā)揮重要的作用。