前言
深度學(xué)習(xí)算法在很多領(lǐng)域已經(jīng)可以成功落地,并且效果很好肤视,例如以卷積神經(jīng)網(wǎng)絡(luò)為例徙赢,該算法以及衍生的系列算法在圖像處理領(lǐng)域效果甚佳字柠,例如圖像分類,目標(biāo)檢測等狡赐,而以循環(huán)神經(jīng)網(wǎng)絡(luò)為代表的算法在序列處理領(lǐng)域有非常好的效果窑业,例如在機器翻譯,語音識別枕屉,以及文本生成常柄,音樂生成方面都取得了很大的進步。
對于藥物發(fā)現(xiàn)這個領(lǐng)域而言搀擂,很多時候?qū)τ谒幬镩_發(fā)是一個非常耗時以及繁瑣的過程西潘,而且中間充滿著各種不確定性,試錯成本和代價也很大哨颂,如果能夠通過深度學(xué)習(xí)的相關(guān)技術(shù)去操縱分子數(shù)據(jù)并從中發(fā)現(xiàn)見解喷市,或者進行藥物研發(fā)環(huán)節(jié)中的各種模擬,將很大程度上縮減時間周期以及試錯成本威恼。例如分子數(shù)據(jù)最常見的表示方式品姓,一種是以類似分子式的序列表示方式,可以很好的對其進行序列建模箫措,而深度學(xué)習(xí)中的經(jīng)典的RNN模型就可以解決類似的問題腹备,包括近年來的seq2seq或者transformer架構(gòu)都給這項任務(wù)提供了豐富的操作空間。而另一種斤蔓,以圖形方式表示的分子數(shù)據(jù)植酥,則可以借用CNN系的算法去同樣解決類似的問題。
本人在藥物研究所的工作經(jīng)歷附迷,以及國內(nèi)外近年來深度學(xué)習(xí)在各個領(lǐng)域的應(yīng)用惧互,讓我相信,藥物研發(fā)借助于AI去助力是必經(jīng)之路喇伯, 這也是我開這個博客的初衷之一喊儡。 另外大學(xué)時期在醫(yī)學(xué)工程學(xué)院的藥物研發(fā)知識以及畢業(yè)后從事醫(yī)藥與數(shù)據(jù)挖掘交叉領(lǐng)域的工作,使我逐漸認(rèn)識到算法的美妙和醫(yī)藥對于當(dāng)前社會的重要性稻据。因此我想通過這個博客艾猜,去記錄我個人對于這兩個領(lǐng)域融合的所見所想买喧,以及分享相關(guān)該領(lǐng)域的最前沿的進展,一方面匆赃,主要是個人工作的匯總淤毛,另一方面也會通過體系的教程去幫助到其他對該領(lǐng)域感興趣的人。
關(guān)于這篇綜述算柳,我會從三個核心方面去進行介紹低淡,后期,我會對每一塊內(nèi)容進行更詳細(xì)的介紹瞬项。那么關(guān)于深度學(xué)習(xí)在藥物發(fā)現(xiàn)領(lǐng)域的應(yīng)用我認(rèn)為主要包括以下三個部分蔗蹋。
- 分子的表示方式
- 藥物與靶標(biāo)的相互作用預(yù)測
- 新藥設(shè)計
分子表示方式
機器學(xué)習(xí)問題大體上分為三類,監(jiān)督學(xué)習(xí)囱淋,半監(jiān)督學(xué)習(xí)猪杭,強化學(xué)習(xí)。例如以藥物性質(zhì)預(yù)測任務(wù)來講妥衣,我們可以把它劃分一個二分類的監(jiān)督學(xué)習(xí)任務(wù)皂吮。
那么此時對于模型的輸出,只有兩種結(jié)果(0税手,1)蜂筹,也即是否該藥物具有某種性質(zhì)。有則為1冈止,無則為0狂票。
而對于模型的輸入,則有多種表示方式熙暴。對于機器學(xué)習(xí)算法而言闺属,如果該特征本身是數(shù)值變量那么可以使用它本身作為輸入,對于類別變量而言周霉,最直接的方式便是通過one-hot encoding的方式進行表示掂器,那么同樣的,對于一個化合物分子俱箱,不管是大分子還是小分子国瓮,其均有相應(yīng)的結(jié)構(gòu)與之依附,那么對這些結(jié)構(gòu)的不同表示方式狞谱,也就決定了模型的特征表示方式乃摹。總體主要包括如下四個分類跟衅。
Fingerprint
其中表示藥物的一種方法是分子指紋孵睬。 指紋的最普遍類型是一系列二進制數(shù)字(位),代表分子中是否存在特定的子結(jié)構(gòu)伶跷。 因此掰读,藥物(小化合物)被描述為0和1的向量(數(shù)組)秘狞。如下圖所示:
這種表示方式的優(yōu)點是簡單快速,而且也在文獻中被廣泛使用1蹈集。 但是烁试,很明顯,將分子編碼為二進制向量不是一個可逆的過程(這是有損的轉(zhuǎn)化)拢肆。 即减响,我們可以將一個能夠表示結(jié)構(gòu)信息的分子式編碼成分子指紋,但是卻不可以從分子指紋中推斷出該分子有怎樣的結(jié)構(gòu)善榛。
表示一個小分子可以有很多不同的指紋辩蛋。 可以按照RDKit官方文檔[2]進一步了解它們呻畸。
SMILES
表示分子的另一種方法是將結(jié)構(gòu)編碼為文本移盆。 這是
將圖結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換為文本內(nèi)容,并在機器學(xué)習(xí)輸入管道中使用文本(編碼字符串)作為輸入伤为。 Simplified Molecular-Input Line-Entry System(SMILES)是標(biāo)準(zhǔn)和最受歡迎的表示之一咒循。 轉(zhuǎn)換后,我們可以使用自然語言處理(NLP)的相關(guān)算法來處理藥物绞愚,例如叙甸,預(yù)測其性質(zhì),副作用甚至化合物之間的相互作用 [3]位衩。
有關(guān)SMILES的更多信息裆蒸,可以單擊此鏈接4。
InChIKey
盡管SMILES在化學(xué)家和機器學(xué)習(xí)研究人員中非常受歡迎糖驴,但它并不是唯一可用于表示藥物的基于文本的表示形式僚祷。 InChIKey是您可以在文獻中找到的另一種流行的表示形式。InChI國際化合物標(biāo)識是(國際化合物標(biāo)識)International Chemical Identifier的縮寫. InChI編碼是一串由斜杠(/)隔開的有層級關(guān)系的數(shù)字組成的贮缕。每個InChI編碼都是由InChI版本號開始辙谜,接著一個主層號。主層下包括含化學(xué)分子式層感昼、原子關(guān)系層和固定氫原子子層装哆。基于分子結(jié)構(gòu)的主層后往往接著一個附加的層定嗓,如電荷層蜕琴、立體化學(xué)層(和/或)同位素信息層。
以維生素C的國際化合物標(biāo)識碼為例
InChI=1S/C6H8O6/c7-1-2(8)5-3(9)4(10)6(11)12-5/h2,5,7-10H,1H2/t2-,5+/m0/s1
InChI Key:CIWBSHSKHKDKBQ-JLAZNSOCSA-N
InChIKey 是對 InChI 運用 SHA-256 算法處理后得到的哈希值宵溅,它的出現(xiàn)是為了解決 InChI 長度不定的問題凌简。與 InChI 相比,InChIKey 具有這樣幾個特點:
- 長度固定层玲,永遠是27個字母
- 與 InChI 幾乎一一對應(yīng)号醉,但有很小的概率(1/10億)出現(xiàn)兩個 InChi 對應(yīng)同一個InChIKey
- 不可讀反症,字符串本身沒有意義,必須轉(zhuǎn)換回 InChI 才能讀
- 在實際使用中畔派,可以用InChIKey 作為關(guān)鍵字檢索出對應(yīng)的 InChI铅碍,再做進一步的使用。
SELFIES
為了解決SMILES的表示方法有時候不能對應(yīng)有效的分子线椰, Mario Krenn et al.5 提出了一種新的分子表示方法胞谈, 即SELFIES(SELF-referencIng Embedded Strings),它是基于字符串的表示形式憨愉。每個SELFIES字符串都對應(yīng)一個有效分子烦绳。
Graph
深度學(xué)習(xí)盛行于圖結(jié)構(gòu)化數(shù)據(jù),例如圖卷積網(wǎng)絡(luò) [6]使直接使用圖數(shù)據(jù)作為深度學(xué)習(xí)管道的輸入成為可能配紫。
例如径密,可以將化合物視為圖,其中頂點是原子躺孝,原子之間的化學(xué)鍵是邊享扔。 圖神經(jīng)網(wǎng)絡(luò)領(lǐng)域中,有專門用于此工作的庫植袍,如Deep Graph Library惧眠,PyTorch-Geometric,PyTorch-BigGraph
藥物與靶標(biāo)的相互作用預(yù)測
蛋白質(zhì)在生物中起著核心作用于个。即氛魁,蛋白質(zhì)是生物細(xì)胞內(nèi)部和外部大部分功能的關(guān)鍵參與者。例如厅篓,有些蛋白質(zhì)負(fù)責(zé)細(xì)胞凋亡秀存,細(xì)胞分化和其他關(guān)鍵功能。同時贷笛,蛋白質(zhì)的功能直接取決于其三維結(jié)構(gòu)应又。即,改變蛋白質(zhì)的結(jié)構(gòu)可以顯著改變蛋白質(zhì)的功能乏苦,這是藥物發(fā)現(xiàn)的重要依據(jù)之一株扛。許多藥物(小分子)被設(shè)計與特定蛋白質(zhì)結(jié)合,改變其結(jié)構(gòu)汇荐,從而改變其功能洞就。此外掀淘,至關(guān)重要的一點是,僅改變一種蛋白質(zhì)的功能就可以對細(xì)胞功能產(chǎn)生巨大影響倾贰。蛋白質(zhì)直接彼此相互作用匆浙,并且某些蛋白質(zhì)還充當(dāng)轉(zhuǎn)錄因子首尼,這意味著它們可以抑制或激活細(xì)胞中其他基因的表達软能。因此查排,改變一種蛋白質(zhì)的功能可以對細(xì)胞產(chǎn)生巨大的影響雹嗦,并可以改變不同的細(xì)胞通路了罪。
那么聪全,藥物發(fā)現(xiàn)中的一個重要問題是預(yù)測特定藥物是否可以結(jié)合特定蛋白質(zhì)娃圆。而藥物-靶標(biāo)相互作用(DTI)預(yù)測任務(wù)讼呢,近年來受到了極大的關(guān)注悦屏。
我們可以像下面這樣構(gòu)造DTI預(yù)測任務(wù):
描述:預(yù)測化合物與蛋白質(zhì)結(jié)合親和力的二元分類(可以形式化為回歸任務(wù)或二元分類)輸入:化合物和蛋白質(zhì)表示向量
輸出:0-1或[0-1]中的實數(shù)
Qingyuan Feng[7]提出了一種基于深度學(xué)習(xí)的藥物-靶標(biāo)相互作用預(yù)測框架础爬。 用于DTI預(yù)測的大多數(shù)深度學(xué)習(xí)框架都將化合物和蛋白質(zhì)信息作為輸入看蚜,但是不同之處在于它們用于輸入神經(jīng)網(wǎng)絡(luò)的輸入表示方法的不同渴逻。 正如我在上一節(jié)中提到的裸卫,化合物可以多種方式表示(分子指紋墓贿,SMILES聋袋,從圖卷積網(wǎng)絡(luò)提取的特征)幽勒,蛋白質(zhì)也可以具有不同的表示啥容。 根據(jù)不同的表示咪惠,可以使用各種網(wǎng)絡(luò)架構(gòu)來處理DTI預(yù)測遥昧。
例如,如果我們要對化合物和蛋白質(zhì)都使用基于文本的表示形式(化合物和氨基酸的SMILES代碼或蛋白質(zhì)的其他基于序列的描述符)鞋仍,那么基于RNN的體系結(jié)構(gòu)就是我想到的第一件事威创。
Matthew Ragoza等那婉。 提出了一種用卷積神經(jīng)網(wǎng)絡(luò)進行蛋白質(zhì)配體評分的方法[8]。 他們沒有使用基于文本的表示呛谜,而是利用了蛋白質(zhì)配體的三維(3D)表示隐岛。 因此聚凹,使用可以作用于此3D結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)彼哼,并提取有意義和適當(dāng)?shù)奶卣饕灶A(yù)測蛋白質(zhì)配體結(jié)合親和力敢朱。
最近拴签,Bo Ram Beck等人。 使用分子的SMELIES表示并使用用雙向編碼器表示的transformer架構(gòu)(BERT), 開發(fā)了一種可以篩選對2019-nCoV病毒蛋白起作用的市售藥物的模型-Molecule Transformer Drug Target Interaction (MT-DTI)杖剪。
盡管提出深度學(xué)習(xí)算法用于DTI預(yù)測已成為一種大趨勢洛巢,并且在某些情況下已經(jīng)取得了令人印象深刻的結(jié)果稿茉,但論文非常相似恃慧,而我發(fā)現(xiàn)的唯一創(chuàng)新就是選擇了輸入表示的不同痢士。 因此茂装,對于該項任務(wù)總結(jié)如下:
- 查找包含有關(guān)化合物和目標(biāo)物以及它們是否相互作用的信息的數(shù)據(jù)庫(例如STITCH數(shù)據(jù)庫)
- 在DTI預(yù)測中,最常見的網(wǎng)絡(luò)是將一對化合物和蛋白質(zhì)作為輸入
- 選擇適合化合物和蛋白質(zhì)的表示形式
- 根據(jù)選擇的表示形式,選擇合適的神經(jīng)網(wǎng)絡(luò)模型來處理輸入豆茫。 根據(jù)經(jīng)驗,對于輸入肤京, 如果是基于文本的表示,可以使用基于RNN的體系結(jié)構(gòu)(GRU妒峦,LSTM等)和transformer肯骇,對于圖像或3D結(jié)構(gòu),可以使用卷積神經(jīng)網(wǎng)絡(luò)。
- 該問題可以看作是二元分類(化合物是否結(jié)合到靶標(biāo))或回歸(預(yù)測化合物與蛋白質(zhì)之間的親和力強度)笨鸡。
以上是DTI預(yù)測的大致內(nèi)容哥桥。 起初,也許這似乎是一項艱巨的任務(wù)已卸,但是借助deep learning算法可以以非常簡單的技術(shù)和策略來解決這一問題。
輸入表示:input representation
新藥設(shè)計
到目前為止奥吩,我們僅涉及到了判別式算法霞赫。 即甘改,給定一種藥物抵代,該算法可以預(yù)測其副作用和其他相關(guān)特性,或者給定化合物-蛋白質(zhì)對,則可以預(yù)測它們是否可以結(jié)合。
但是邑闺,如果我們對設(shè)計具有某些特性的化合物感興趣呢抵乓? 例如,我們要設(shè)計一種化合物,該化合物可以與特定蛋白質(zhì)結(jié)合,修飾某些通路,并且不與其他通路相互作用,并且還具有某些物理性質(zhì),例如特定的溶解度范圍鸥印。
上一部分介紹的工具鏈?zhǔn)菬o法解決這個問題的狂鞋。 這個問題最好在生成模型的領(lǐng)域中實現(xiàn)。自回歸算法(Autoregressive)潜的,變分自編碼器(VAE)和生成對抗網(wǎng)絡(luò)(GAN)等生成模型已經(jīng)在機器學(xué)習(xí)社區(qū)中得到了廣泛普及骚揍。 但是,在新藥物設(shè)計任務(wù)中的應(yīng)用還不是很久啰挪。
顯而易見信不,產(chǎn)生具有某些所需特性的化合物比上一節(jié)中討論的其他兩個問題難⊥龊牵可供搜索的化學(xué)分子的空間非常大抽活,在該空間中進行搜索以找到合適的藥物非常耗時且?guī)缀跏遣豢赡艿娜蝿?wù)。 盡管有些文獻中有一些不錯的結(jié)果锰什,但該領(lǐng)域尚處于起步階段下硕,需要更成熟的方法丁逝。 在這里,我將回顧我在該領(lǐng)域閱讀的一些最佳論文梭姓。
很多論文中提及霜幼, 生成SMILES作為輸出,最后將SMILES轉(zhuǎn)換到化學(xué)空間誉尖,獲取其分子結(jié)構(gòu)罪既。例如,
Rafael Gomez-Bombarelli等释牺, 提出了一種使用數(shù)據(jù)驅(qū)動的分子連續(xù)表示進行自動化學(xué)設(shè)計的方法[9]萝衩。
他們使用VAE算法生成分子。 輸入表示和輸出表示都是SMILES没咙。本文的一個不錯的技巧是在潛在空間(它是一個連續(xù)空間)中使用高斯過程達到具有所需化學(xué)性質(zhì)的點猩谊。然后,使用解碼器將潛在空間中的此點轉(zhuǎn)換(解碼)為SMILES代碼祭刚。 該論文寫得很好牌捷,絕對是推薦讀物。但是涡驮,問題在于SMILES代碼與分子之間沒有一一對應(yīng)的關(guān)系暗甥。 也就是說,并非所有產(chǎn)生的代碼都可以轉(zhuǎn)換回原始(化學(xué))空間捉捅,因此撤防,產(chǎn)生的SMILES代碼通常與有效分子符。
SMILES是非常流行的表示形式棒口,但它們也具有一個很大的缺點:SMILES并不是可靠的表示形式寄月。 即,更改SMILES中的一個字符(字符突變)可以將分子從有效更改為無效无牵。
Matt J. Kusner等漾肮。通過Grammer VAE專門解決上述提到的“產(chǎn)生與有效分子不對應(yīng)的SMILES代碼問題”[10]。
他們沒有將SMILES字符串直接輸入到網(wǎng)絡(luò)并生成SMILES代碼茎毁,而是將SMILES代碼轉(zhuǎn)換為解析樹(通過使用SMILES上下文無關(guān)的語法)克懊。 使用語法,它們可以生成語法上更有效的分子七蜘。 此外谭溉,作者指出:
Surprisingly, we show that not only does our model more often generate valid outputs, it also learns a more coherent latent space in which nearby points decode to similar discrete outputs.
最近,Mario Krenn等人橡卤。 提出了另一種基于VAE和SELFIES表示的分子生成方法[5]夜只。 SELFIES的主要優(yōu)點是堅固性。
下圖主要涵蓋了使用不同的分子表示方法蒜魄,以及不同的生成算法的相關(guān)論文研究扔亥。
總結(jié)
在這篇綜述中,回顧了深度學(xué)習(xí)在藥物發(fā)現(xiàn)中的一些應(yīng)用谈为。 顯然旅挤,這篇評論還沒有完成,我會在后續(xù)繼續(xù)補充更多的內(nèi)容伞鲫。我希望這篇文章能鼓勵你為該領(lǐng)域做出貢獻粘茄,以使藥物發(fā)現(xiàn)的工作多一點方便,少一點乏味秕脓。
引用
<div id="refer-anchor"></div>
[1] Database fingerprint (DFP): an approach to represent molecular databases
[3] DeepCCI: End-to-end Deep Learning for Chemical-Chemical Interaction Prediction
[6] GRAPH CONVOLUTIONAL NETWORKS, Thomas Kipf
[7] PADME: A Deep Learning-based Framework for Drug-Target Interaction Prediction, Qingyuan Feng et al.
[8] Protein-Ligand Scoring with Convolutional Neural Networks, Matthew Ragoza et al.
[10] Grammar Variational Autoencoder, Matt J. Kusner et al.
[12] Junction Tree Variational Autoencoder for Molecular Graph Generation, Wengong Jin et al.
[13] Deep learning enables rapid identification of potent DDR1 kinase inhibitors, Alex Zhavoronkov et al.
[15] [A Model to Search for Synthesizable Molecules, John Bradshaw et al.](John Bradshaw et al)