陸行政,林暢然,李智健,唐德玉
(廣東藥科大學(xué)醫(yī)藥信息工程學(xué)院,廣州 510000)
藥物研發(fā)是現(xiàn)代社會(huì)中的一個(gè)重要課題,藥物重定位是指發(fā)現(xiàn)現(xiàn)有藥物的新用途,其生物學(xué)基礎(chǔ)是一藥多靶和一靶多藥[1]。基于計(jì)算方法對(duì)藥物-靶標(biāo)相互作用(drug-target interaction,DTI)進(jìn)行預(yù)測(cè),以發(fā)現(xiàn)某個(gè)藥物的多個(gè)潛在靶標(biāo)或某個(gè)靶標(biāo)的多個(gè)藥物,從而實(shí)現(xiàn)對(duì)現(xiàn)有藥物的重定位,可以顯著減少后期過程(如臨床試驗(yàn))的負(fù)荷,節(jié)省大量資源和時(shí)間[2]。
研究人工智能的藥物研發(fā)輔助系統(tǒng),可以提高新藥研發(fā)的速度和精度。楊朔等[3]通過引入高維分子指紋和蛋白質(zhì)描述符并應(yīng)用概率矩陣分解算法生成負(fù)樣本集,構(gòu)建一個(gè)高效的藥物-靶標(biāo)相互作用預(yù)測(cè)分類模型,訓(xùn)練不同的機(jī)器學(xué)習(xí)模型來預(yù)測(cè)DTI; Yamanishi 等[4]基于藥物的理化性質(zhì)和藥物-靶標(biāo)相互作用網(wǎng)絡(luò)的拓?fù)湫再|(zhì),提出了基于支持向量機(jī)的方法,挖掘可能的藥物-靶標(biāo)相互作用; Mizutani 等[5]基于藥物-靶標(biāo)相互作用譜和副作用譜,定義稀疏典型相關(guān)分析進(jìn)行預(yù)測(cè)。然而由于缺少負(fù)樣本數(shù)據(jù),使得監(jiān)督學(xué)習(xí)方法預(yù)測(cè)效果不夠理想,而且大部分有監(jiān)督預(yù)測(cè)方法的時(shí)間復(fù)雜度較高[6];同時(shí),這些方法都嚴(yán)重依賴于藥物的化學(xué)結(jié)構(gòu)相似性和靶標(biāo)的序列相似性。
為了緩解這些問題,我們使用了一種改進(jìn)的洗牌蛙跳算法(Shuffled Frog Leaping Algorithm,SFLA)——演化蛙跳算法(evolutionary frog leaping algorithm,EFLA)預(yù)測(cè)藥物-靶標(biāo)相互作用,此算法由Tang 等[7]提出,但此算法并未應(yīng)用于藥物-靶標(biāo)相互作用預(yù)測(cè),本文的創(chuàng)新之處在于運(yùn)用此算法解決藥物-靶標(biāo)相互作用預(yù)測(cè)難題。
本文所用的數(shù)據(jù)來自Yamanishi 等[4]提供的來自人類酶(enzyme,EN)、離子通道(ion channels of biomembrane,IC)、G 蛋白偶聯(lián)受體(G Protein-Coupled Receptors, GPCR)、 核受體(nuclear receptor,NR)的藥物、靶標(biāo)及其相互作用數(shù)據(jù)。四個(gè)數(shù)據(jù)集的信息見表1。

表1 藥物靶標(biāo)數(shù)據(jù)
各數(shù)據(jù)集中主要包括三種矩陣:Sd、St 和DTI。藥物相似性矩陣Sd:表示某種藥物與其他藥物相似性。靶標(biāo)相似性矩陣St:表示某靶標(biāo)與其他靶標(biāo)的相似性。藥物-靶標(biāo)相互作用矩陣DTI:表示某藥物對(duì)某靶標(biāo)是否具有相互作用,有相互作用的為1,無相互作用為0。
對(duì)于數(shù)據(jù)源的處理,我們嘗試以藥物與靶標(biāo)的相似性作為預(yù)測(cè)藥物-靶標(biāo)相互作用關(guān)系的指標(biāo)。將EN、GPCR、IC、NR 的Sd、St 以及DTI 矩陣分別合并成用于SVM 分類預(yù)測(cè)的藥物靶標(biāo)復(fù)合矩陣。合并原理如圖1 所示,以1 號(hào)藥物與3 號(hào)靶標(biāo)為例,根據(jù)DTI 矩陣,1 號(hào)藥物與3 號(hào)靶標(biāo)是有相互作用的,將表示1 號(hào)藥物與其他藥物的相似性的一行與表示3號(hào)靶標(biāo)與其他靶標(biāo)的相似性的一行合并,作為新矩陣上的一行,并在最后加上一列,表示類標(biāo)號(hào),類標(biāo)號(hào)“1”表示藥物對(duì)該靶標(biāo)有相互作用;類標(biāo)號(hào)“0”表示無相互作用。由于無相互作用的藥物靶標(biāo)數(shù)量遠(yuǎn)大于有相互作用的藥物靶標(biāo)數(shù)量,因此合并時(shí)會(huì)先找出全部有相互作用的藥物靶標(biāo),再隨機(jī)找出同等數(shù)量無相互作用的藥物靶標(biāo)來進(jìn)行合并。最后得到用來分類預(yù)測(cè)的藥物靶標(biāo)復(fù)合矩陣,其中每一行為一個(gè)樣本,每一列為一個(gè)特征。運(yùn)用隨機(jī)獲取的辦法選擇負(fù)樣本。

圖1 合并原理
預(yù)測(cè)藥物-靶標(biāo)相互作用的機(jī)器學(xué)習(xí)模型之一是支持向量機(jī)(SVM),支持向量機(jī)是一種有監(jiān)督的機(jī)器學(xué)習(xí)方法,它能有效解決小樣本學(xué)習(xí)、高維及非線性問題,并表現(xiàn)出較強(qiáng)的泛化能力,在模式識(shí)別、分類等領(lǐng)域有著廣泛的應(yīng)用。支持向量機(jī)的兩個(gè)主要參數(shù)極大程度上決定了其學(xué)習(xí)精度和泛化能力[8]。通常而言,比較重要的參數(shù)是gamma(-g)跟cost(-C)。C是懲罰系數(shù),理解為調(diào)節(jié)優(yōu)化方向中兩個(gè)指標(biāo)(間隔大小、分類準(zhǔn)確度)偏好的權(quán)重,即對(duì)誤差的寬容度,C越高,說明越不能容忍出現(xiàn)誤差,容易過擬合;C越小,容易欠擬合,C過大或過小,泛化能力變差。g是選擇RBF 函數(shù)作為kernel后,該函數(shù)自帶的一個(gè)參數(shù)。隱含地決定了數(shù)據(jù)映射到新的特征空間后的分布,g越大,支持向量越少;g值越小,支持向量越多。支持向量的個(gè)數(shù)影響訓(xùn)練與預(yù)測(cè)的速度。
具體實(shí)現(xiàn)步驟如下。
Step1:選取SVM 模型訓(xùn)練樣本和檢驗(yàn)樣本,進(jìn)行樣本歸一化處理,設(shè)定懲罰因子C、核函數(shù)參數(shù)g和不敏感系數(shù)ε的搜尋范圍[9]。
Step2:確定各算法的適應(yīng)度函數(shù)。適應(yīng)度函數(shù)是描述種群個(gè)體優(yōu)劣程度的主要指標(biāo),本文選用均方誤差作為適應(yīng)度函數(shù),見方程:
其中:yi代表第i個(gè)樣本實(shí)測(cè)值;?代表第i個(gè)樣本模擬值。
Step3:基于EFLA 算法操作流程獲得待優(yōu)化懲罰因子C、核函數(shù)參數(shù)g和不敏感系數(shù)ε值。
SFLA 可以描述如下:首先,初始種群是隨機(jī)產(chǎn)生的,并按降序排列分成m個(gè)子模塊。洗牌過程可表示為公式(2),其中popsize(popsize=m×n)是一個(gè)整數(shù),表示種群大小,m表示子群的數(shù)量,n表示每個(gè)子群中青蛙的數(shù)量。第i只青蛙的適應(yīng)度f(i)可以評(píng)估并按降序排序,形成m個(gè)memeplex:H1,H2,…,Hb,…,Hm,它們可以通過以下方式構(gòu)建:
其中:H是一個(gè)memeplex 中的解決方案的集合,Xi表示一個(gè)解決方案,它是一個(gè)矢量。
但在SFLA 中,青蛙只有跳躍行為來傳播信息,這不足以模擬它們的社會(huì)行為。因此,可以通過模擬互動(dòng)學(xué)習(xí)特征來模擬青蛙的社會(huì)行為。演化蛙跳算法是由Tang 等[7]提出的一個(gè)SFLA 的兩階段搜索框架,在第一個(gè)搜索階段,用量子進(jìn)化算子來實(shí)現(xiàn)局部搜索,它模擬了青蛙在量子空間中的跳躍行為。在第二階段的搜索中,利用自適應(yīng)特征向量進(jìn)化算子實(shí)現(xiàn)全局搜索,模擬了青蛙的交互學(xué)習(xí)特征。該算法根據(jù)EFLA 算法實(shí)現(xiàn),該框架使SFLA 的開發(fā)和探索更加平衡。以下介紹量子進(jìn)化算子和自適應(yīng)特征向量進(jìn)化算子:
量子進(jìn)化算子:量子進(jìn)化算子在不同的子元叢中通過打亂過程實(shí)現(xiàn),如方程(2),因此可以被認(rèn)為是一種局部搜索過程。量子進(jìn)化算子是根據(jù)勢(shì)阱模型通過蒙特卡羅方法實(shí)現(xiàn)的。在方程(3)中,考慮到收斂性,Xi(t) →Pi(t) ,當(dāng)t→∞時(shí),其中Pi被視為勢(shì)阱。基本的量子進(jìn)化算子只使用一個(gè)勢(shì)阱,從而加速搜索速度,但容易陷入局部最優(yōu)解。為此,我們提出了帶有記憶的第二個(gè)勢(shì)阱來增強(qiáng)量子進(jìn)化的搜索能力。我們嘗試使用該算法優(yōu)化SVM 的C、g參數(shù)來優(yōu)化SVM 的模型訓(xùn)練。算法第一階段通過提出一個(gè)具有記憶的潛在阱優(yōu)化了量子模擬方法的參數(shù),增強(qiáng)了SFLA 算法的搜索能力,使算法不容易落入局部最優(yōu)解。新的搜索算子可以用方程式(4)表示。
其中:Pi表示第一個(gè)勢(shì)阱,表示第二個(gè)勢(shì)阱,g是搜索參數(shù),popsize是種群大小。rand表示[0,1]中的均勻分布的隨機(jī)數(shù)。Pi是D 維空間中的一個(gè)向量。在D 維空間中,也是其中的一個(gè)向量。
自適應(yīng)特征向量進(jìn)化算子:互動(dòng)學(xué)習(xí)行為是在整個(gè)群體中實(shí)現(xiàn)的,而不是在局部群體中。因此,它是一個(gè)全球搜索過程,表示為以下公式:
在一個(gè)D 維空間中,Xi、Xv和Xo是對(duì)應(yīng)于三只青蛙的三個(gè)向量。i、v和o(i≠v≠o)是集合中的三個(gè)不同整數(shù),其中popsize是種群大小。Xi是解向量,可以通過Xv和Xo之間的差異進(jìn)行更新。rand表示[0,1]均勻分布的隨機(jī)數(shù)。是種群中所有Xi的均值,是種群中所有Xj的均值。
為了計(jì)算特征向量基,我們將協(xié)方差矩陣cov(Y)分解為正則形式如下:
其中:Q是方形矩陣(D行和D列),其第1 列是cov(Y)的特征向量qi。Λ是對(duì)角線矩陣,其對(duì)角線元素是相應(yīng)的特征值。特征向量進(jìn)化算子可表示為
其中:Xi(或Yi)表示一個(gè)個(gè)體,它是一個(gè)有一列和D行的向量,QT是一個(gè)由D行和D列組成的方形矩陣。D表示解決方案矢量的維度。因此,[QT-Xi](或[QT-Yi])表示一個(gè)新的個(gè)體,它是一個(gè)有一列和D行的向量。Ui是一個(gè)整數(shù)集合,包括從1 到D的所有整數(shù),表示個(gè)體([QT·Yi])隨機(jī)選擇的r行數(shù)據(jù),其中r也是從{1,2,3,…,D}這個(gè)集合中隨機(jī)選取的整數(shù)。
當(dāng)用特征向量作為基礎(chǔ)更新解決方案時(shí),更新行為會(huì)在自然基礎(chǔ)上變得具有旋轉(zhuǎn)不變性。為了減少具有旋轉(zhuǎn)不變性的算子()無效行為的風(fēng)險(xiǎn),我們引入了一種自適應(yīng)選擇策略,以選擇原始算子和特征向量進(jìn)化算子。
其中:rand為[0, 1]中均勻分布的隨機(jī)數(shù),p為自適應(yīng)選擇參數(shù)值。它可以表示如下:
鑒于現(xiàn)實(shí)世界優(yōu)化問題的復(fù)雜性,原算子和特征向量進(jìn)化算子將根據(jù)其成功率交替運(yùn)行,并通過公式(10)和(11)的自適應(yīng)選擇機(jī)制來實(shí)現(xiàn)。在一定程度上降低所處理的多元數(shù)據(jù)的維數(shù),加快訓(xùn)練速度以及一些無用信息的剔除。
Step4:將獲得的優(yōu)化參數(shù)值作為SVM 的最佳學(xué)習(xí)參數(shù)對(duì)預(yù)測(cè)樣本進(jìn)行預(yù)測(cè)。
圖2為上訴方法的算法流程圖。

圖2 EFLA算法流程
設(shè)置算法參數(shù),包括種群大小、迭代次數(shù)等;初始化一個(gè)由ps只青蛙組成的種群X,并計(jì)算適應(yīng)度。在fes≤max_fes的循環(huán)中,先進(jìn)行局部搜索,將種群X按適應(yīng)度排序,然后對(duì)每個(gè)memeplex 中的n只青蛙,根據(jù)公式計(jì)算出兩個(gè)最佳位置,計(jì)算潛在的兩個(gè)最佳位置,并更新位置。
然后進(jìn)行全局搜索:對(duì)每個(gè)青蛙,根據(jù)公式計(jì)算出新位置Yi,并根據(jù)條件隨機(jī)選擇標(biāo)準(zhǔn)搜索或特征向量搜索,根據(jù)成功率更新概率p,重復(fù)以上步驟直至達(dá)到最大迭代次數(shù),最終輸出全局最佳解。
本實(shí)驗(yàn)使用核受體預(yù)測(cè)數(shù)據(jù),把演化蛙跳算法與KNN 算法、樸素貝葉斯算法、決策樹和隨機(jī)森林進(jìn)行分析比較,所得結(jié)果見表2。

表2 算法比較
各算法的使用參數(shù)見表3。

表3 算法使用參數(shù)
分析表2的預(yù)測(cè)結(jié)果可以得知,演算蛙跳算法雖然預(yù)測(cè)時(shí)間較長(zhǎng),但準(zhǔn)確率要遠(yuǎn)好于其他方法。與KNN 算法相比,準(zhǔn)確率提高了14 個(gè)百分點(diǎn);與樸素貝葉斯算法和決策樹算法相比,準(zhǔn)確率均提高了34 個(gè)百分點(diǎn);與隨機(jī)森林算法相比,準(zhǔn)確率提高了11個(gè)百分點(diǎn)。
基于演算蛙跳算法的SVM 模型訓(xùn)練因?yàn)樾枰煌S?xùn)練模型之后進(jìn)行比較從而取得最好的參數(shù),所以相比于其他常見的機(jī)器學(xué)習(xí)算法訓(xùn)練花費(fèi)的時(shí)間較長(zhǎng),但是訓(xùn)練的結(jié)果相比于其他算法的準(zhǔn)確率普遍高出10個(gè)百分點(diǎn)。
在藥物研發(fā)領(lǐng)域,藥物靶標(biāo)相互作用一直是一個(gè)重要的課題,以往的實(shí)驗(yàn)挖掘研究方法既耗時(shí)又費(fèi)力,所以采用不同的數(shù)學(xué)分析模型來預(yù)測(cè)藥物靶標(biāo)是否具有相互作用,可以大大降低藥物研發(fā)的風(fēng)險(xiǎn)和成本。
本文的研究是在大數(shù)據(jù)背景下,以人工智能新技術(shù)為基礎(chǔ),為新藥的研發(fā)提供理論指導(dǎo)。作為人工智能的一個(gè)重要分支,群體智能算法已解決了很多機(jī)器學(xué)習(xí)中普遍存在的問題,大大提高了機(jī)器學(xué)習(xí)的性能。因此,本文重點(diǎn)以疾病-通路-靶標(biāo)-藥物的分子網(wǎng)絡(luò)為基礎(chǔ),使用群體智能算法為主的機(jī)器學(xué)習(xí)方法,對(duì)新藥物研發(fā)具有實(shí)際意義:
(1)對(duì)于指定的疾病,可以高效地識(shí)別新的藥物-藥物、藥物與靶標(biāo)的相互關(guān)系。可以在藥理實(shí)驗(yàn)之前,對(duì)新的藥物、靶標(biāo)、通路及疾病的關(guān)系完成理論分析,為后面的理論實(shí)驗(yàn)奠定基礎(chǔ)。
(2)本文的研究進(jìn)一步擴(kuò)展了傳統(tǒng)的藥物分析方法,完善了傳統(tǒng)藥物網(wǎng)絡(luò)分析方法的不足。建立多源同構(gòu)的藥物團(tuán)分析模型,并以進(jìn)化計(jì)算的方法對(duì)其求解。
(3)對(duì)于很多復(fù)雜疾病,盡管組合藥物臨床療效顯著,在醫(yī)藥界有一定的發(fā)展,但由于組合藥物的作用機(jī)制不明,限制了組合藥物的設(shè)計(jì)和研發(fā)。本文算法的提出和發(fā)展,為組合藥物的研制和開發(fā)提供了強(qiáng)有力的理論支撐。
本文嘗試將演算蛙跳算法運(yùn)用于藥物靶標(biāo)預(yù)測(cè)。通過與其他算法比較,演算蛙跳算法的訓(xùn)練時(shí)間較長(zhǎng),但準(zhǔn)確率高于一般常見的機(jī)器學(xué)習(xí)算法10個(gè)百分點(diǎn)以上。