周豐豐,牛甲昱
(1. 吉林大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 長春 130012;2. 吉林大學(xué)符號計算與知識工程教育部重點實驗室 長春 130012)
自從30 多年前第一個細(xì)胞穿膜肽(cell penetrating peptides, CPPs)被發(fā)現(xiàn)以來,CPPs 已經(jīng)在醫(yī)學(xué)領(lǐng)域得到了廣泛應(yīng)用[1]。CPPs 具有能夠攜帶各種物質(zhì)(包括小分子物質(zhì)和蛋白質(zhì)等)直接進(jìn)入細(xì)胞而不會顯著損傷細(xì)胞膜的特性[2]。這種特性使它們可以成為將物質(zhì)轉(zhuǎn)運到細(xì)胞中的藥物遞送劑,目前已被制藥公司應(yīng)用于多種治療分子的局部和全身給藥的臨床實驗中[3]。因為CPPs 的實用性,識別CPPs 也成為了一個有價值的研究領(lǐng)域。
傳統(tǒng)的實驗方法費時費力,當(dāng)前生物序列預(yù)測領(lǐng)域采用更加省時高效的計算方法對序列進(jìn)行預(yù)測[4-5]。目前,已有不少識別CPPs 的算法模型,其中大多基于機(jī)器學(xué)習(xí)算法。如文獻(xiàn)[6]鑒定了111 種已知的CPPs 和34 種已知的non-CPPs,并使用基于不同生化特性的特征表示算法和支持向量機(jī)(support vector machine, SVM)對CPP 進(jìn) 行 分類。文獻(xiàn)[7]提出了一種同樣基于SVM 的預(yù)測方法CellPPD,它的改進(jìn)之處在于使用了更多的特征表示算法和更大的數(shù)據(jù)集。文獻(xiàn)[8]提出的C2Pred使用基于二肽的特征提取方法,降維后用SVM 分類器對CPP 進(jìn)行了分類,也取得了很好的結(jié)果。文獻(xiàn)[9]構(gòu)建了一個基于隨機(jī)森林分類器的兩層預(yù)測模型,該模型不僅可以對CPPs 和non-CPPs 進(jìn)行分類,還可以預(yù)測CPPs 的吸收效率高低。文獻(xiàn)[10]開發(fā)了CPPred FL,該模型使用了19 種不同的特征表示算法和多種不同的機(jī)器學(xué)習(xí)分類器。
最近也有一些研究者使用深度學(xué)習(xí)方法來進(jìn)行CPPs 的識別,如文獻(xiàn)[11]基于Transformer 模型提出了CPPFormer,該算法根據(jù)CPPs 序列較短的特征重構(gòu)了Transformer 網(wǎng)絡(luò)模型,并結(jié)合了多種基于生化特性的特征表示算法進(jìn)行分類。文獻(xiàn)[12]提出了DeepCPPred,是一種基于多級深度神經(jīng)網(wǎng)絡(luò)的兩層預(yù)測模型。
目前基于不同的蛋白質(zhì)序列特征編碼算法已經(jīng)有了多種識別方法,識別精度也在逐步提高。本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的特征表示算法ConvCPP,獲得了更好的特征表示能力。ConvCPP的創(chuàng)新之處在于首次使用了基于卷積神經(jīng)網(wǎng)絡(luò)的算法進(jìn)行細(xì)胞穿膜肽的特征表示工作,且在卷積神經(jīng)網(wǎng)絡(luò)加入了注意力模塊以更好地提取序列特征。算法的主要流程為將蛋白質(zhì)序列中的氨基酸編碼為不同的向量,然后將編碼后的序列輸入到卷積神經(jīng)網(wǎng)絡(luò)中,提取網(wǎng)絡(luò)的最后一層作為特征表示。最后,將卷積網(wǎng)絡(luò)提取到的特征和一些傳統(tǒng)特征表示方法得到的特征相結(jié)合,并集成了多種分類器得到最終的結(jié)果。實驗結(jié)果表明,ConvCPP 在SN、SP、ACC、MCC 這4 項指標(biāo)上分別達(dá)到了0.950、0.935、0.943 和0.885,在預(yù)測精確度ACC 上相對當(dāng)前主流分類算法有2.2%的提升,具有更好的分類性能。本文將模型做成了CPPs 預(yù)測軟件包,可在網(wǎng)址鏈接:https://pan.baidu.com/s/1Lx60bAQe_MfFa0QDKJ_rcw?pwd=hilb 下載使用。
ConvCPP 的流程如圖1 所示。其中,特征表示分為兩部分,一部分是經(jīng)過改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò),另一部分是基于蛋白質(zhì)理化性質(zhì)的傳統(tǒng)特征表示算法,每部分得到的特征向量都使用了T 檢驗進(jìn)行特征選擇。在分類算法部分,本文使用了樸素貝葉斯(naive Bayes, NBayes)、隨機(jī)森林(random forest, RF)、 SVM、 K-最 近 鄰 算 法 (K-nearest neighbor, KNN)和極限梯度推進(jìn)算法(extreme gradient boosting, XGBoost)進(jìn)行分類,并用投票方式集成其結(jié)果作為最終分類結(jié)果。

圖1 ConvCPP 模型框架
卷積神經(jīng)網(wǎng)絡(luò)最初被發(fā)明應(yīng)用于計算機(jī)視覺領(lǐng)域,后來逐漸在自然語言處理領(lǐng)域得到了廣泛應(yīng)用[13],鑒于蛋白質(zhì)序列和文本序列在形式上的相似性,考慮用卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行特征提取。本文模型結(jié)構(gòu)參考了TextCNN 的標(biāo)準(zhǔn)結(jié)構(gòu),并在其基礎(chǔ)上進(jìn)行了改進(jìn)。
首先,需要對蛋白質(zhì)序列中每個氨基酸進(jìn)行編碼,使用了隨機(jī)編碼的方式將20 種氨基酸編碼為一維向量,設(shè)其長度為d,則長度為s的蛋白質(zhì)序列可被表示為s×d維的向量矩陣。
在將向量矩陣輸入卷積層之前,加入了注意力機(jī)制來更好地獲取序列的位置信息。當(dāng)前注意力機(jī)制在序列數(shù)據(jù)處理領(lǐng)域已經(jīng)得到了廣泛應(yīng)用[14-16],本文使用的是多頭注意力機(jī)制,表示如下:

式中,W0是權(quán)重矩陣;hi表 示第i個注意力頭的計算結(jié)果,每個注意力頭都是一個擁有不同權(quán)重矩陣的自注意力計算流程。其計算流程如下:首先,每行輸入向量xi, 分別和3 個權(quán)重矩陣Wq,Wk,Wv相乘,得到向量qi,ki,vi。 之后計算注意力權(quán)重ai,公式如下:

之后對a1進(jìn)行Softmax 歸一化,最后計算得到最終的輸入向量zi:

注意力層運算完畢之后,將結(jié)果輸入卷積層。在卷積層,模型使用了多個卷積核,卷積核的個數(shù)可以作為超參數(shù)進(jìn)行調(diào)整,卷積核的寬度固定為輸入向量矩陣A的 寬度d,不同的卷積核可以設(shè)置為不同的高度。設(shè)卷積核w的 大小為h×d,則卷積操作的輸出oi可以表示為:

式中,A[i:i+h?1]表 示輸入向量矩陣A的 第i行到第i+h?1行 。之后疊加偏置b, 經(jīng)過激活函數(shù)f得到特征圖c,其中:

在池化層,經(jīng)典結(jié)構(gòu)使用的是1-max pooling方法,即每個卷積核只取特征圖中的最大值,最后將每個卷積核所得的值拼接,得到最終的特征向量。但是這種方法只取最大值,容易丟失信息,因此,本文將池化層改為動態(tài)k-max pooling 方法。這種方法根據(jù)序列的長度不同,動態(tài)保留前k個最大值,盡可能的保留了序列的特征信息。
整個卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2 所示,模型共包含一個注意力層、一個卷積層和一個池化層,池化層的結(jié)果作為序列的特征輸出。

圖2 卷積神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
除了利用卷積神經(jīng)網(wǎng)絡(luò)得到的特征,本文還結(jié)合了3 種利用蛋白質(zhì)理化性質(zhì)的特征表示算法。
1)氨基酸組成(amino acid composition, AAC)是最簡單且常用的蛋白質(zhì)序列特征表示算法之一[10]。此算法主要利用了每種類型的氨基酸在蛋白質(zhì)序列中出現(xiàn)的頻率,如下所示:

式中,n1表 示第i種氨基酸在蛋白質(zhì)序列中出現(xiàn)的頻率,即出現(xiàn)次數(shù)除以序列的長度。對于給定的蛋白質(zhì)序列,通過分別計算其中20 種不同氨基酸的頻率,可以得到一個20 維的特征向量。
2)重疊屬性表示算法,文獻(xiàn)[17]發(fā)現(xiàn)每種氨基酸通常具有不只一種物理化學(xué)性質(zhì),因此,該文根據(jù)10 種理化性質(zhì)將標(biāo)準(zhǔn)氨基酸分為10 組,每組可能有重疊。用10 維的0/1 向量對每個氨基酸進(jìn)行編碼,其中向量的每個位置代表一個氨基酸組。如果氨基酸屬于相應(yīng)的氨基酸組,則向量的位置設(shè)置為1,否則設(shè)置為0。最后,對長度為L的蛋白質(zhì)序列進(jìn)行編碼,得到1 0×L大小的特征向量。
3) 20 位表示算法,文獻(xiàn)[7]將20 種氨基酸分別用one-hot 編碼方式編碼,則每個氨基酸可以用20 維的一維向量來表示,則一條長度為L的蛋白質(zhì)序列可以表示為一個2 0×L的二維向量。
在實驗中,本文使用的Python 版本為3.6.13,Pytorch 框架的版本為1.3.1,numpy 庫的版本為1.19.2,scipy 庫的版本為1.5.4,pandas 庫版本為1.1.5。實驗使用的顯卡型號為NVIDIA Tesla P100,16 GB,驅(qū)動版本為450.80.02,CUDA 版本為11.0。
本文進(jìn)行特征提取的卷積網(wǎng)絡(luò)超參數(shù)的取值設(shè)置參見表1。

表1 模型超參數(shù)設(shè)置
為了便于與現(xiàn)有方法進(jìn)行比較,本文使用了最常用的CPPs 數(shù)據(jù)集CPP924[18],包含924 個蛋白質(zhì)序列,其中包括462 個CPPs 和462 個non-CPPs。CPP924 數(shù)據(jù)集中的數(shù)據(jù)都來自目前最大的CPPs數(shù)據(jù)集CPPsite v2.0,且其中任意兩個序列的序列相似性均小于80%。這一點非常重要,因為過高的序列相似性可能會使模型的預(yù)測性能表現(xiàn)受到影響。
本文用到的評價指標(biāo)包括敏感性值(sensitivity,SN)、特異性值(specificity, SP)、準(zhǔn)確率(accuracy,ACC)和馬修斯相關(guān)系數(shù)(Mathew’s correlation coefficient, MCC)。其計算公式分別如下:

為了驗證本文對卷積神經(jīng)網(wǎng)絡(luò)模型改進(jìn)的有效性,本文做了消融實驗來驗證各模塊的必要性。圖3 展示了消融實驗的結(jié)果,將改進(jìn)分為注意力機(jī)制模塊和池化層改進(jìn)模塊,其中模型1 表示引入注意力機(jī)制模塊和池化層改進(jìn)模塊的模型,模型2 表示只引入注意力機(jī)制模塊的模型,模型3 表示只引入池化層改進(jìn)模塊的模型,模型4 表示未經(jīng)修改的原始模型。實驗數(shù)據(jù)采用10 倍交叉驗證獲得。4 組實驗考察了注意力模塊和池化模塊的不同組合方式。

圖3 模型消融實驗結(jié)果
圖3 的數(shù)據(jù)表明,注意力模塊和池化模塊對卷積神經(jīng)網(wǎng)絡(luò)原始模型具有較好的性能提升,且二者聯(lián)合使用會對原始模型的改進(jìn)程度更大。注意力模塊將原始模型準(zhǔn)確率(ACC)提升了0.011,而池化模塊將原始模型準(zhǔn)確率(ACC)提升了0.009。本文提出的ConvCPP算法整合了注意力模塊和池化模塊的優(yōu)勢功能,將原始模型的準(zhǔn)確率提升了0.023。原始模型的馬修斯相關(guān)系數(shù)(MCC)也提升了0.047。
為了驗證兩種特征表示方法都是有效的,本文分別將只用卷積網(wǎng)絡(luò)得到的特征和只用利用理化性質(zhì)算法得到的特征進(jìn)行分類,實驗結(jié)果如圖4 所示。其中特征集1 包括兩種方法得到的特征,特征集2 表示用卷積網(wǎng)絡(luò)得到的卷積特征,特征集3 表示利用理化性質(zhì)算法得到的理化特征。圖4 顯示特征集1 的結(jié)果在4 個指標(biāo)上都是最好的,表明兩種方法得到的特征都是有效的,而特征集2 取得的準(zhǔn)確率(ACC)優(yōu)于特征集3 至少0.016。這表明本文提出的卷積特征提取算法相對于利用理化性質(zhì)的特征表示算法,能更好地利用序列中各氨基酸之間的內(nèi)在關(guān)聯(lián)信息來發(fā)現(xiàn)CPP 特異的序列特性。實驗數(shù)據(jù)采用10 倍交叉驗證獲得。本實驗考察了從序列數(shù)據(jù)中提取出來的理化特征和卷積特征對CPP 預(yù)測問題的性能貢獻(xiàn)。

圖4 不同特征集合的實驗結(jié)果
本文使用5 種分類器,通過投票方式集成為最終分類結(jié)果。這5 種分類器包括NBayes[19]、RF[20-21]、SVM[22]、KNN[23-24]、和XGBoost[25]。每種分類器各自的性能結(jié)果以及集成后模型的分類結(jié)果如表2 所示。可以看出,SVM 和XGBoost 是效果相對較好的分類器,均取得了0.930 以上的準(zhǔn)確率(ACC),后續(xù)如需優(yōu)化分類器數(shù)量可保留這兩個分類器。其中XGBoost 取得了最好的準(zhǔn)確率0.938,而集成后的分類精確度指標(biāo)是最優(yōu)的(ACC=0.942),比性能最好的獨立分類器XGBoost 的準(zhǔn)確率還要高0.006。實驗結(jié)果說明,本文采用的投票集成法可以有效利用優(yōu)勢互補(bǔ)的各個分類器預(yù)測結(jié)果。

表2 不同分類器的結(jié)果對比
為了消除兩種不同特征提取方式的信息冗余,本文采用了最大相關(guān)?最小冗余(mRMR)和T 檢驗兩種不同的特征選擇算法,分別對拼接后的特征向量進(jìn)行特征選擇,實驗結(jié)果如圖5 所示,使用mRMR 算法進(jìn)行特征選擇,特征數(shù)為125 時得到了最優(yōu)分類效果(ACC=0.943),達(dá)到了消除冗余和優(yōu)化分類結(jié)果的目的。實驗數(shù)據(jù)采用10 倍交叉驗證獲得。本實驗測試了兩種不同特征選擇算法對分類準(zhǔn)確率的影響。

圖5 兩種不同特征選擇算法的實驗結(jié)果
為了證明本文提出的ConvCPP 算法的有效性,本文和已發(fā)表的其他CPPs 預(yù)測模型的結(jié)果進(jìn)行了對比。這些模型都是基于CPP924 數(shù)據(jù)集進(jìn)行的預(yù)測,包括CPPred-RF[9]、文獻(xiàn)[26]提出的算法模 型、SkipCPP-Pred[18]、CellPPD 和CPPred-FL。其中,CellPPD 根據(jù)不同的特征提取算法被分為3 個不同的模型,分別稱為CellPPD-1、CellPPD-2 和CellPPD-3。實驗的驗證方法均為十折交叉驗證,驗證指標(biāo)包括敏感性值(SN)、特異性值(SP)、準(zhǔn)確率(ACC)和馬修斯相關(guān)系數(shù)(MCC)。表3 給出了4 個分類性能指標(biāo)??梢钥闯觯疚奶岢龅腃onvCPP 模型在4 個指標(biāo)上,都優(yōu)于其他模型。準(zhǔn)確率ACC 至少被改進(jìn)了0.022,綜合性能指標(biāo)MCC 也至少被改進(jìn)了0.043。足以證明本文算法模型的有效性與精確性。

表3 與其他模型的結(jié)果對比 /%
本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的細(xì)胞穿膜肽識別算法ConvCPP,結(jié)合了引入注意力機(jī)制的卷積神經(jīng)網(wǎng)絡(luò)和利用蛋白質(zhì)理化性質(zhì)的兩種特征表示方法獲取的蛋白質(zhì)序列特征,并結(jié)合了多種分類器進(jìn)行了最終分類。經(jīng)實驗驗證,ConvCPP 在各項指標(biāo)上都達(dá)到了最佳結(jié)果,預(yù)測準(zhǔn)確率ACC相對當(dāng)前其他分類算法提升了2.2%。相關(guān)實驗結(jié)果表明,深度卷積網(wǎng)絡(luò)可以有效提取蛋白質(zhì)序列的隱含模式信息,具有優(yōu)秀的對細(xì)胞穿膜肽的檢測能力。