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

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

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

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

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

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