陳 鵬,鮑天嘉智,余肖生
(三峽大學(xué) 計(jì)算機(jī)與信息學(xué)院,湖北 宜昌 443002)
藥物重定位(drug repurposing),俗稱“老藥新用”,是指通過現(xiàn)有的技術(shù)手段將已經(jīng)產(chǎn)生適應(yīng)癥的藥物重新定位,尋找其新的適應(yīng)癥[1]。藥物重定位這一概念自被提出以來,國(guó)內(nèi)外學(xué)者對(duì)該方向算法的研究投入了巨大的精力[2-3]。張永祥等認(rèn)為藥物重定位是網(wǎng)絡(luò)藥理學(xué)的重要應(yīng)用領(lǐng)域,介紹了基于小分子特征、基于蛋白靶點(diǎn)特征等方法[4]。謝達(dá)菲等提出了利用藥物-靶標(biāo)關(guān)系、藥物-藥物關(guān)系和藥物-疾病關(guān)系分析等方法進(jìn)行藥物重定位的計(jì)算預(yù)測(cè)[5]。文獻(xiàn)[6]將深度學(xué)習(xí)的方法應(yīng)用于藥物重定位。Luo等人提出了一種基于綜合相似度和隨機(jī)游走的藥物重定位算法[7-8],通過將藥物和疾病特征信息與已知的藥物-疾病關(guān)系相結(jié)合,首次提出了藥物與疾病相似性的綜合相似度計(jì)算方法。文獻(xiàn)[9-11]提出了基于多數(shù)據(jù)源融合的藥物重定位算法。文獻(xiàn)[12-15]提出了一系列基于協(xié)同過濾的藥物重定位算法研究,從多源數(shù)據(jù)的角度出發(fā),通過協(xié)同過濾來計(jì)算藥物-疾病對(duì)應(yīng)關(guān)系預(yù)測(cè)值。
由于數(shù)據(jù)稀疏性對(duì)協(xié)同過濾的影響較大,所以現(xiàn)階段基于協(xié)同過濾的藥物重定位算法大多通過融合多種數(shù)據(jù)源進(jìn)行計(jì)算的方法來減小影響,但在計(jì)算過程中僅使用了藥物相似度,忽略了疾病相似度的作用。
綜上所述,傳統(tǒng)的基于協(xié)同過濾的藥物重定位算法雖然有一定的效果,但仍有很大的進(jìn)步空間。該文提出了一種基于多相似度融合的藥物重定位推薦算法(MSF),首先由藥物-疾病數(shù)據(jù)源計(jì)算出疾病相似度,其他三種數(shù)據(jù)源計(jì)算出的三種相似度融合為藥物相似度,再分別利用基于項(xiàng)目和基于用戶的協(xié)同過濾進(jìn)行藥物與疾病對(duì)應(yīng)關(guān)系的預(yù)測(cè)值計(jì)算,并通過融合方法將兩種預(yù)測(cè)值融合為最終的藥物-疾病關(guān)系預(yù)測(cè)值。MSF算法在充分利用多源數(shù)據(jù)的前提下,將計(jì)算出的相似度和預(yù)測(cè)值融合,降低了數(shù)據(jù)稀疏性對(duì)協(xié)同過濾的影響。
藥物重定位已經(jīng)成為醫(yī)學(xué)領(lǐng)域研究的一大熱門?,F(xiàn)階段,由于藥物和疾病數(shù)據(jù)的大量增長(zhǎng),從不同角度進(jìn)行藥物重定位研究的案例也越來越多。為證明本文對(duì)藥物重定位的研究角度是切實(shí)可行的,從藥物與疾病的關(guān)系、藥物化學(xué)結(jié)構(gòu)、藥物靶蛋白和藥物副作用四個(gè)方面進(jìn)行討論。
Chiang等人[16]提出了一種從疾病的角度看待藥物重定位的觀點(diǎn),當(dāng)兩種疾病可以被多種相同的藥物治療時(shí),認(rèn)為兩種疾病是相似的。如果存在一種藥物只對(duì)其中一種疾病有治療效果,則認(rèn)為該藥對(duì)另一種疾病也存在潛在的治療關(guān)系,可以作為治療該疾病的候選藥物。藥物的化學(xué)結(jié)構(gòu)被認(rèn)為可以用來度量藥物間相似性,Dudley等人[17]提出藥物的化學(xué)性質(zhì)與其治療效果有密切的關(guān)系,藥物的化學(xué)結(jié)構(gòu)和生物活性之間存在定量關(guān)系,所以藥物的化學(xué)結(jié)構(gòu)可以作為藥物重定位的研究方向。藥物靶蛋白是藥物治療疾病的關(guān)鍵因素,含有相似靶蛋白的藥物也可能會(huì)有類似的作用效果[18],因此靶蛋白可以作為藥物重定位中度量藥物相似性的一個(gè)研究角度。同樣,與藥物對(duì)疾病的治療效果類似,藥物產(chǎn)生的副作用提供了人類的表型特征,因此從藥物的副作用角度進(jìn)行藥物重定位的研究也是可行的[19]。
通過上述討論證明從藥物與疾病的關(guān)系、藥物化學(xué)結(jié)構(gòu)、藥物靶蛋白和藥物副作用這四個(gè)角度進(jìn)行藥物重定位研究是可行的。但是上述文獻(xiàn)提供的方法都是從多個(gè)角度中的一類或兩類進(jìn)行藥物重定位研究,可能會(huì)導(dǎo)致預(yù)測(cè)值的偏差,因此,該文從四個(gè)角度綜合考慮并進(jìn)行研究,減小了預(yù)測(cè)結(jié)果的有偏性,更具有實(shí)際應(yīng)用價(jià)值。
協(xié)同過濾算法在近幾年被廣泛應(yīng)用于各大電商行業(yè)以及影視平臺(tái)的應(yīng)用推薦中[20-21]。傳統(tǒng)基于鄰域的協(xié)同過濾算法分為兩種,即基于用戶的和基于項(xiàng)目的,兩種算法的本質(zhì)都是通過選取k個(gè)最相似的鄰居進(jìn)行評(píng)分預(yù)測(cè)。
協(xié)同過濾的基本流程為:先通過余弦相似度、皮爾遜相關(guān)系數(shù)、谷本系數(shù)等相似度度量方法計(jì)算用戶或項(xiàng)目的相似度。再利用計(jì)算出的相似度找到相似度最高的k個(gè)鄰居,由對(duì)應(yīng)的兩種公式求出預(yù)測(cè)分?jǐn)?shù):
(1)
(2)定義rui為用戶u對(duì)項(xiàng)目i的評(píng)分,D為項(xiàng)目i的鄰居集合,simij表示項(xiàng)目i和j的相似度,ruj為用戶u對(duì)項(xiàng)目j的評(píng)分,基于項(xiàng)目的預(yù)測(cè)值計(jì)算如式(2):
(2)
傳統(tǒng)的基于協(xié)同過濾的藥物重定位算法僅使用藥物相似度進(jìn)行預(yù)測(cè)值計(jì)算,往往忽略了疾病相似度在藥物重定位中的作用且研究角度比較單一,而由于單個(gè)數(shù)據(jù)源的稀疏問題,導(dǎo)致計(jì)算出的有效藥物、疾病相似度較少,許多項(xiàng)目無法找到合適的鄰居,因而計(jì)算出的預(yù)測(cè)值偏差較大[22]。該文提出了MSF算法,即:首先由藥物-疾病數(shù)據(jù)源計(jì)算出疾病相似度,再通過藥物-化學(xué)結(jié)構(gòu)、藥物-靶蛋白以及藥物-副作用數(shù)據(jù)源計(jì)算出三種相似度融合為藥物相似度,使用疾病相似度和藥物相似度計(jì)算兩種預(yù)測(cè)值并融合為最終的預(yù)測(cè)值,整體流程如圖1所示。
2.1.1 疾病相似度
疾病相似度通過藥物-疾病數(shù)據(jù)進(jìn)行計(jì)算。藥物-疾病治療關(guān)系數(shù)據(jù)從UMLS[23]中的NDF-RT(national drug file-reference terminology)進(jìn)行采樣,其中藥物與疾病有作用關(guān)系則值為1,若無關(guān)系則為0。這種藥物-疾病數(shù)據(jù)集在文獻(xiàn)[11]中被認(rèn)為是藥物重定位的“金”標(biāo)準(zhǔn)數(shù)據(jù)集。基于文獻(xiàn)[16]的思想,該文對(duì)于疾病相似度的計(jì)算只考慮藥物與疾病是否有對(duì)應(yīng)的治療關(guān)系,而不考慮治療效果的優(yōu)劣,所以疾病相似度通過谷本系數(shù)進(jìn)行,與使用余弦相似度等方法相比,在不影響相似度準(zhǔn)確性的情況下,簡(jiǎn)化了計(jì)算的復(fù)雜程度。疾病相似度的計(jì)算公式如式(3):
(3)
其中,sim(ia,ib)表示疾病a和疾病b的相似度,Ia表示可以治療疾病a的藥物數(shù)量,Ib表示可以治療疾病b的藥物數(shù)量,|Iab|表示可以同時(shí)治療疾病a和疾病b的藥物數(shù)量。sim(ia,ib)的值應(yīng)該在區(qū)間[0,1]之間。
圖1 算法流程
2.1.2 藥物相似度
在文獻(xiàn)[17-19]的基礎(chǔ)上,該文認(rèn)為通過藥物-化學(xué)結(jié)構(gòu)、藥物-靶蛋白和藥物-副作用三種數(shù)據(jù)源計(jì)算出的藥物相似度可以通過一定的權(quán)重融合為最終的藥物相似度,其中藥物-化學(xué)結(jié)構(gòu)數(shù)據(jù)從PubChem[24]進(jìn)行采樣,藥物-靶蛋白數(shù)據(jù)從UniPort Knowledgebase[25]中采樣,藥物-副作用數(shù)據(jù)從SIDER[26]數(shù)據(jù)庫(kù)中采樣。融合相似度的方法有效緩解了單個(gè)數(shù)據(jù)源因?yàn)閿?shù)據(jù)稀疏而導(dǎo)致計(jì)算出的有效相似度較少的問題,并且通過融合減少了計(jì)算最終預(yù)測(cè)值所需要的步驟。由于采用相似度融合的方法,所以三種數(shù)據(jù)源應(yīng)該選用同一種相似度計(jì)算方法。與計(jì)算疾病相似度類似,用于藥物相似度計(jì)算的三種數(shù)據(jù)源中只考慮藥物與三種屬性的對(duì)應(yīng)關(guān)系,所以同樣采用谷本系數(shù)進(jìn)行相似度的計(jì)算,如式(4):
(4)
其中,sim(da,db)表示藥物a和藥物b的相似度,(a)在使用藥物-化學(xué)結(jié)構(gòu)數(shù)據(jù)源的計(jì)算過程中,Da表示藥物a包含的化學(xué)結(jié)構(gòu)數(shù)量,Db表示藥物b包含的化學(xué)結(jié)構(gòu)數(shù)量,|Dab|表示藥物a和藥物b包含的相同化學(xué)結(jié)構(gòu)數(shù)量;(b)在使用藥物-靶蛋白數(shù)據(jù)源的計(jì)算過程中,Da表示藥物a對(duì)應(yīng)的靶蛋白數(shù),Db表示藥物b對(duì)應(yīng)的靶蛋白數(shù),|Dab|表示藥物a和藥物b對(duì)應(yīng)的相同靶蛋白數(shù);(c)在使用藥物-副作用數(shù)據(jù)源的計(jì)算過程中,Da表示藥物a會(huì)產(chǎn)生的副作用數(shù),Db表示藥物b會(huì)產(chǎn)生的副作用數(shù),|Dab|表示藥物a和藥物b產(chǎn)生的相同副作用數(shù)。同樣,sim(da,db)的值也應(yīng)該在區(qū)間[0,1]之間。
simd表示由三種相似度融合得到的最終藥物相似度,sims表示由藥物-化學(xué)結(jié)構(gòu)算出的相似度,simp表示由藥物-靶蛋白算出的相似度,simf表示由藥物-副作用算出的相似度。使用式(5)進(jìn)行計(jì)算:
simd=αsims+βsimp+γsimf
(5)
其中,α+β+γ=1。
相似度融合的權(quán)值計(jì)算采用試探法,以0.1為步長(zhǎng)進(jìn)行試探,通過多次實(shí)驗(yàn)確定一組能使效果最優(yōu)的權(quán)值。試探法的優(yōu)點(diǎn)是使用簡(jiǎn)單且較為準(zhǔn)確,缺點(diǎn)是運(yùn)行效率較低,但在設(shè)置合適的步長(zhǎng)時(shí)可以在一定的時(shí)間范圍內(nèi)得到預(yù)期的結(jié)果。通過試探法得出當(dāng)α=0.2,β=0.4,γ=0.4時(shí),效果達(dá)到最優(yōu)。
通過兩種相似度計(jì)算方法得到疾病相似度和藥物相似度后,為了融合兩類相似度計(jì)算出的預(yù)測(cè)結(jié)果,提出預(yù)測(cè)值融合的方法,如式(6):
(6)
(7)
(8)
由于兩種預(yù)測(cè)值也要進(jìn)行融合,為了保持?jǐn)?shù)據(jù)的一致性,兩類算法中選取的鄰居數(shù)應(yīng)該為相同值。根據(jù)多次實(shí)驗(yàn)結(jié)果,設(shè)置ω1=0.6,ω2=0.4。
Step1:將四種數(shù)據(jù)源轉(zhuǎn)換成對(duì)應(yīng)的矩陣,藥物-疾病矩陣通過式(3)計(jì)算疾病相似度,其他三種數(shù)據(jù)源得出的矩陣通過式(4)計(jì)算出相似度。
Step2:由Step1算出四種相似度,將通過式(4)算出的相似度用式(5)融合成藥物相似度,通過式(3)得出的相似度作為疾病相似度。
Step3:得出的疾病相似度通過式(7)計(jì)算出藥物與疾病對(duì)應(yīng)關(guān)系的預(yù)測(cè)值,藥物相似度則通過式(8)計(jì)算出預(yù)測(cè)值。
Step4:用式(6)將兩類預(yù)測(cè)值融合得到最終的藥物與疾病對(duì)應(yīng)關(guān)系預(yù)測(cè)值。
為了驗(yàn)證算法的有效性,該文采用的數(shù)據(jù)集是文獻(xiàn)[9]中的數(shù)據(jù),該數(shù)據(jù)集是通過UMLS、PubChem、UniPort Knowledgebase和SIDER中的數(shù)據(jù)進(jìn)行人工處理和清洗獲得的,其中包括藥物-疾病數(shù)據(jù)、藥物-化學(xué)結(jié)構(gòu)數(shù)據(jù)、藥物-靶蛋白數(shù)據(jù)和藥物-副作用數(shù)據(jù)。四種數(shù)據(jù)均采用二進(jìn)制表示對(duì)應(yīng)的關(guān)系:0表示無相關(guān)對(duì)應(yīng)關(guān)系,1表示有對(duì)應(yīng)關(guān)系。數(shù)據(jù)集包括536種藥物,以及對(duì)應(yīng)的578種疾病、881種藥物化學(xué)結(jié)構(gòu)、1 385種副作用和775種對(duì)應(yīng)靶蛋白。其對(duì)應(yīng)的數(shù)據(jù)稀疏程度分別為:0.992 0,0.859 2,0.945 5,0.995 4。稀疏程度主要用于觀察數(shù)據(jù)集中無作用的數(shù)據(jù)占總數(shù)據(jù)的比例,從得出的數(shù)據(jù)可以看出四種數(shù)據(jù)源的稀疏程度都比較高,無作用數(shù)據(jù)占總數(shù)據(jù)的比例較大。
圖2 藥物-疾病對(duì)應(yīng)數(shù)量關(guān)系
從藥物-疾病數(shù)據(jù)源中可以算出每一種藥物對(duì)應(yīng)可以治療的疾病數(shù),如圖2所示,可以看出大約只有50種(10%)藥物可以治療10種以上疾病,大部分藥物(75%)只能治療5種以下的疾病。
文中將藥物重定位算法當(dāng)作一個(gè)二分類問題來看待,對(duì)于每種藥物,如果疾病可以治療則為1,反之則為0,為了保證實(shí)驗(yàn)的準(zhǔn)確性和健壯性,使用十折交叉驗(yàn)證法進(jìn)行實(shí)驗(yàn)。該文采用準(zhǔn)確率、召回率、F-score和ROC曲線來進(jìn)行算法效果好壞的判斷。為了給出這四種分類指標(biāo)的準(zhǔn)確定義,首先定義一個(gè)二分類問題的混淆矩陣,如表1所示。
表1 混淆矩陣
通過混淆矩陣可以對(duì)精確率、召回率、F-score進(jìn)行定義,如下:
(9)
(10)
(11)
為了確定計(jì)算中最相似的鄰居數(shù)k使預(yù)測(cè)值最精確,提供了每種數(shù)據(jù)源在不同鄰居數(shù)情況下的精確率表現(xiàn),如圖3所示。通過觀察每種數(shù)據(jù)源各自的精確率變化,確定一個(gè)使算法效果最好的k值。通過觀察可以看出當(dāng)k=25時(shí),各數(shù)據(jù)源保持在精確率比較高的穩(wěn)定狀態(tài),雖然在k>25時(shí),藥物-化學(xué)結(jié)構(gòu)和藥物-疾病數(shù)據(jù)源的精確率會(huì)有小幅度的提升,但是藥物-靶蛋白和藥物-副作用數(shù)據(jù)源的精確率會(huì)有大幅的下降,所以該文將鄰居數(shù)選取為25。
圖3 各數(shù)據(jù)源在不同鄰居數(shù)下的精確率
在確定鄰居數(shù)k后,通過圖4、圖5對(duì)比MSF算法和其他算法的效果。在觀察圖4(ROC曲線)時(shí)發(fā)現(xiàn),所有數(shù)據(jù)源的AUC值都很高,這是由于藥物重定位是一個(gè)高度不平衡問題,所有的數(shù)據(jù)源都是稀疏的,即使假正例的數(shù)量變化很大,也會(huì)因?yàn)檎娣蠢幕鶖?shù)大,而假正率只發(fā)生極小的變化[9]。所以在ROC曲線和AUC值對(duì)于區(qū)分算法效果表現(xiàn)較差的情況下,采用了P-R曲線(見圖5)和精確率、召回率、F-score(見表2)來進(jìn)一步證明MSF算法優(yōu)于傳統(tǒng)藥物重定位算法。
圖4 基于單個(gè)數(shù)據(jù)源的傳統(tǒng)藥物重定位算法和MSF算法的ROC曲線比較
圖5 單個(gè)數(shù)據(jù)源的傳統(tǒng)藥物重定位算法和MSF算法的P-R圖比較
表2 單個(gè)數(shù)據(jù)源與MSF算法指標(biāo)對(duì)比
通過P-R曲線可以看出,MSF算法的P-R曲線包裹了所有單個(gè)數(shù)據(jù)源的P-R曲線。通過表2可以看出,只有通過藥物-疾病數(shù)據(jù)源得出的召回率比MSF算法略高,但是在精確率和F-score方面MSF算法都表現(xiàn)得更好,據(jù)此可以得出MSF優(yōu)于基于單個(gè)數(shù)據(jù)源的藥物重定位推薦算法。
表3展示了MSF算法與其他兩種算法(SLAMS算法[9]和DRCFFS算法[14])的比較??梢钥闯雠cSLAMS算法和DRCFFS相比,MSF算法在三種指標(biāo)上都有較大的提升。
表3 算法效果比較
通過上述幾種不同指標(biāo)的對(duì)比表明,MSF算法在P-R曲線以及各項(xiàng)指標(biāo)上都有良好的表現(xiàn),可以得到更精確的藥物重定位預(yù)測(cè)結(jié)果。
藥物重定位算法的目的是預(yù)測(cè)舊藥物的新用途,為了證明提出的算法是有實(shí)效的和現(xiàn)實(shí)意義的,表4給出了利用MSF算法預(yù)測(cè)的一些藥物-疾病組合,其中頭孢西丁臨床證明可以治療由敏感菌導(dǎo)致的呼吸道感染等疾病,這與可以治療支氣管炎的預(yù)測(cè)相符合。厄他培南對(duì)肺炎的治療作用在文獻(xiàn)[27]中已經(jīng)得到證實(shí)。文獻(xiàn)[28]中進(jìn)行了頭孢克洛治療鼻竇炎的臨床實(shí)驗(yàn),治愈率達(dá)到15.5%。文獻(xiàn)[29]中給出了利用美羅培南治療皮膚軟組織感染的實(shí)例。
表5給出了甲狀腺腫大治療預(yù)測(cè)值前五的藥物,其中甲硫咪唑和丙硫氧嘧啶已經(jīng)得到臨床驗(yàn)證[30],剩下三種藥物尚未得到臨床證明,但在文獻(xiàn)[31]中雙硫侖被證明對(duì)甲狀腺治療有一定作用。
綜上所述,MSF算法可以預(yù)測(cè)出一些已經(jīng)得到臨床認(rèn)證的藥物-疾病組合,并且也能發(fā)現(xiàn)一些尚未證明有臨床意義的藥物-疾病組合,但是藥物的治療效果與疾病相關(guān)癥狀對(duì)應(yīng)。通過一系列的案例證明,MSF算法具有可行性,對(duì)于臨床藥物重定位具有一定的輔助作用。
表4 預(yù)測(cè)藥物-疾病治療
表5 甲狀腺腫大治療預(yù)測(cè)值前五的藥物
提出了一種基于多相似度融合的藥物重定位推薦算法(MSF算法),實(shí)驗(yàn)結(jié)果顯示MSF算法與SLAMS算法和DRCFFS相比,在三種指標(biāo)(精確率、召回率和F-score)上的表現(xiàn)更好。綜上所述,提出的MSF算法優(yōu)于傳統(tǒng)的藥物重定位算法,可以預(yù)測(cè)有治療效果的藥物-疾病組合,為更好地發(fā)揮藥物治療效果、提升藥物利用價(jià)值起到一定的作用。但是,MSF算法也有一定的缺陷,比如:通過試探法計(jì)算相似度融合的權(quán)值耗時(shí)較長(zhǎng),計(jì)算疾病相似度所采用的數(shù)據(jù)源較少。在后續(xù)的研究過程中應(yīng)當(dāng)對(duì)相似度融合的方法進(jìn)行改進(jìn)并且在疾病相似度的計(jì)算上使用多種數(shù)據(jù)源。