TDC:機器學習+生物醫藥{數據集+LB}

  • 2020 年 12 月 31 日
  • AI

生物醫藥是機器學習最重要的應用場景之一。但是生物醫藥涵蓋各種各樣的任務,數據非常的複雜,而且數據的獲得和處理需要很多專業知識。這導致了很多機器學習的研究者只能在少量比較有名但是被研究的很多了的任務上做方法的研究,而忽略了大量的有意義的,但是非常的缺乏機器學習方法研究的任務。為了解決這個問題,我們一幫來自Harvard,MIT,Stanford,CMU,UIUC,Georgia Tech,IQVIA的學生和教授一起發起了Therapeutics Data Commons (TDC),第一個機器學習在生物醫藥的大規模數據集

TDC目前包含了20+有意義的任務,和70多個高質量數據集,從靶蛋白的發現,藥物動力學,安全性,藥物生產都有包含到。而且不僅僅是小分子,還有抗體,疫苗,miRNA等。之後也會加入CRISPR,Clinical Trials等等。這些數據都是處理成可以直接輸入進機器學習模型的。而且大部分都是新坑!我們也提供了一些leaderboard來提供模型SOTA對比。

歡迎大家使用TDC和提供建議!更多信息,請訪問網站GitHub

網站zitniklab.hms.harvard.edu

GitHubgithub.com/mims-harvard

引用

@misc{tdc,
 author={Huang, Kexin and Fu, Tianfan and Gao, Wenhao and Zhao, Yue and  Roohani, Yusuf and Leskovec, Jure and Coley, Connor and Xiao, Cao and Sun, Jimeng and Zitnik, Marinka},
 title={Therapeutics Data Commons: Machine Learning Datasets for Therapeutics},
 howpublished={\url{zitniklab.hms.harvard.edu}},
 month=nov,
 year=2020
}

團隊:哈佛大學,佐治亞理工,麻省理工學院,卡內基梅隆大學,斯坦福大學,IQVIA,伊利諾伊大學香檳分校


背景

近幾年來,機器學習(Machine Learning, ML)在生物醫藥領域有了非常多的發展和應用,比如最近的AlphaFold2在蛋白質結構預測上的大幅效果提升[1],ML預測出來的強力抗生素Halicin[2]等。但是,獲取和處理原始生物醫藥數據到ML-Ready數據需要很多專業知識,對於機器學習的研究者來說,很難快速精準的處理出來。而且生物醫藥是個巨大的領域,很多數據集都分散在各個角落,沒有一個中心的平台來整理和獲取這些數據。因為這些原因,現在的ML研究者在方法研究上只關注非常少的幾個任務來在幾個小數據集上來增進結果的幾個點,然而大量的有意義的任務都還沒有被前沿的ML方法所研究。這個極大的降低了ML在生物醫藥領域的研究進度。

TDC 介紹

TDC Team

為了解決這個問題, @Kexin from Havard和@futianfan from Georgia Tech, MIT的Wenhao, 以及我自己,Stanford的Yusuf,以及我們的導師們Connor, Jure, Jimeng, Danica和Marinka,一起發起了Therapeutics Data Commons(TDC), 第一個大規模的ML在生物醫藥上面的數據集和基準。

TDC Overview

在第一個版本里,我們整理了ML在生物醫療上的20多個非常有意義的任務和70多個數據集,從靶蛋白的發現,藥物動力學,安全性,藥物生產都有包含到。而且不僅僅是小分子,還有抗體,疫苗,miRNA等。除了數據本身,我們在平時做研究的時候注意到有很多經常用到的數據函數,於是我們也提供了很多函數來支持ML在生物醫藥的研究。所有ML-ready數據和data functions都只用三行代碼就可以獲得!

TDC Vision

通過TDC,我們想達到的最終目的是作為一個連接點:生物醫藥行業的人發現有意義的領域問題,TDC把它變成ML的任務以及處理成ML-ready的數據,然後ML的研究者可以快速的使用TDC來設計前沿的ML方法。通過這樣,我們希望可以幫助ML社區的人關注在解決有現實意義和有價值的生物醫藥問題上。

TDC Modular Design

TDC的結構

接下來我來詳細的介紹一下TDC。TDC的目的是涵蓋多種多樣的任務,而每一個任務有不一樣的數據結構。因此,我們提出了一個三層階級式的架構—我們叫它TDC 「Central Dogma」(中心法則)。據我們所知,這是系統評估機器學習在整個生物醫藥領域中的首次嘗試。

第一層是問題 Problem,我們把所有的任務歸納成3個大的ML問題:

  • Single-instance prediction(單實例預測): 預測單個實體(比如分子,蛋白)的某些性質。

  • Multi-instance prediction(多實例預測): 預測多個實體之間的某些性質(比如反應類型)

  • Generation(生成): 已知一系列的實體,生成新的擁有某些性質的實體(比如優化後的分子)

第二層是學習任務 Task。每個任務都屬於其中一個問題類型。這些任務是從生物醫藥的角度去定義的。在應用中的改進範圍包括設計新的抗體,識別個性化的組合療法,改善疾病的診斷以及尋找新的治療新疾病的方法。

最後,在TDC的第三層中,每個任務都通過多個數據集 Dataset 實例化。

總結一下,就是有三個問題,每個問題有很多學習任務,每個學習任務又有很多數據集。這個三層結構讓我們很清晰的去整理和使用TDC。

TDC的編程框架

在TDC的編程框架里,我們給每一個Problem設計了一個基礎的Data Loader(數據加載)class,然後每一個Task繼承了這個base class。所以假設你想要檢索問題「 Z」類里的學習任務「 Y」里的數據集「 X」,你只要輸:

from tdc.Z import Ydata = Y(name = 'X')splits = data.split()

舉個例子,假設你想要獲取藥物ADME預測任務中的Bioavailability Dataset,你可以直接輸

from tdc.single_pred import ADMEdata = ADME(name = 'Bioavailability_Ma')split = data.get_split()

這個split里就包含了三個Pandas DataFrame,每一行是最通用的藥物分子輸入格式SMILES String(可以理解為藥物分子圖的字符表達式)以及Bioavailability值。

TDC的數據

TDC Datasets Snapshot.

就像剛開始說的,你可以就只用這三行代碼來獲取70多個有意義來自20多個重要的生物醫藥任務的數據集!很多任務在ML方法研究里都是全新任務或者全新的數據集(未挖掘的新坑)!舉幾個例子:

  • ADMET預測:ADMET包含了一系列重要的藥物指標來衡量的一個藥物分子從口服下去以後能不能安全且有效的達到想要的靶點上。準確的預測這些指標可以節省葯企很多資源。之前有很多網頁服務器來做ADMET預測,可數據都是非公開的。TDC從很多小數據庫和零散的期刊等等來源收集了20多個藥廠里都實際在用的重要的指標,所有數據全部開源!

  • 精準組合藥物:有兩個比較大的趨勢是一,同樣的藥物根據不一樣的病人個體,效果會不一樣,特別是腫瘤方面的葯。因此ML來預測葯在不一樣的病人的基因表達下的效果很重要。 TDC從GDSC[3]里處理出來一個大數據集,裏面每一個數據點對應一個藥物分子和Cell Line的基因表達,和它們之間的反應效果。另外一個趨勢是很多藥物分子的組合會比單個藥物分子有更好的效果(drug synergy),而且能夠大量的節省研發時間。所以如果能夠預測出兩個藥物之間會不會有組合效應,是非常有意義的。TDC處理了兩個大數據集(來自Merck[4]以及NCI[5]),每一個數據點包含2個藥物分子結構和cell line expressions,以及他們的synergy effect。

  • 生物葯(Biologics)。近幾年來ML在小分子上有很多不錯的工作,可是在大分子生物葯上沒有很多工作。TDC於是包含了6個生物藥方面的任務,比如抗體和抗原的親和力預測,多肽和MHC的親和力預測,miRNA和靶點的反應預測等等。

我們最近也在準備包含一些3D的藥物分子和蛋白任務,CRISPR基因編輯方面的任務(off-target,repair outcome),和clinical trials方面的任務。如果你有新的有意思的任務,也請聯繫我們!

TDC Leaderboard

Absorption Category in ADMET Benchmark Group

在這些數據集的基礎上,TDC也提供各種各樣的Leaderboard來給ML研究者們對比模型預測效果。TDC的每個數據集都可以作為一個基準。但是我們觀察到要真正使用一個ML模型在很多生物醫藥問題上,這個ML模型必須在一系列的數據集和任務上達到好效果。因此,我們合併很多子基準來形成一個基準組合(Benchmark Group)。一個組合里的所有子基準都圍繞着一個有意義的生物醫療問題,所有的衡量標準和訓練測試分割方式我們都設計過來模擬實際生物醫藥的應用場景。舉個例子,我們第一個基準組合是ADMET性質預測。一個好ML模型不僅僅要對於某一個ADMET的性質預測好,而是要對所有的性質都有好效果。所以在這個組合里,我們有22個ADMET性質預測子基準。我們也用scaffold split去模擬實際藥廠的應用場景。

對於一個Benchmark Group,TDC提供了一個編程框架去快速的讓ML研究者去搭建和評估模型。比如用ADMET group作為例子,

from tdc import BenchmarkGroupgroup = BenchmarkGroup(name = 'ADMET_Group', path = 'data/')predictions = {}for benchmark in group:name = benchmark['name']train, valid, test = benchmark['train'], benchmark['valid'], benchmark['test']## --- train your model --- ##predictions[name] = y_predgroup.evaluate(predictions)# {'caco2_wang': {'mae': 0.234}, 'hia_hou': {'roc-auc': 0.786}, ...}

你也可以獲取每一個子基準:

benchmark = group.get('Caco2_Wang')predictions = {}name = benchmark['name']train, valid, test = benchmark['train'], benchmark['valid'], benchmark['test']## --- train your model --- ##predictions[name] = y_predgroup.evaluate(predictions)# {'caco2_wang': {'mae': 0.234}}

除了提供最標準的一個train/valid/test分割,你也可以獲得很多不一樣的train/valid splits,來測試模型的魯棒性:

out = group.get_auxiliary_train_valid_split(seed = 42, benchmark = 'Caco2_Wang')train, valid = out['train'], out['valid']## --- train your model --- ##group.evaluate(y_pred_val, y_true_val, benchmark = 'Caco2_Wang')# {'mae': 0.234}

TDC第一個leaderboard 關於ADMET已經發佈!ADMET非常的重要,而且是個非常適合沒有任何生物醫藥背景的ML研究者起步的任務。歡迎大家提交結果!我們網站里有更多的信息。

TDC的數據處理函數

TDC Data Functions

除了核心的數據集以及Leaderboard以外,TDC也包含了各種各樣的functions。現在主要有四塊:

  • 模型評估:TDC提供了一個只要3行代碼的評估函數,來評估TDC里的任務。

  • 數據分割:一些訓練和測試集的分割方法,來模擬實際的生物醫藥場景。比如scaffold split。

  • 數據處理:一些helpers比如可視化,標籤的轉化,binarization等等。

分子生成任務
  • 分子生成Oracles:在分子生成任務中,一般的目標是去產生新的藥物分子有更好的性質,然後這個性質是通過一個默認gold label函數(oracle)來產生的。所以一個oracle就定義了一個分子生成的任務。TDC收集了20多個有意義的oracles,全部都只要3行代碼。舉個例子:

from tdc import Oracleoracle = Oracle(name = 'GSK3B')oracle(['CC(C)(C)[C@H]1CCc2c(sc(NC(=O)COc3ccc(Cl)cc3)c2C(N)=O)C1', \'CCNC(=O)c1ccc(NC(=O)N2CC[C@H](C)[C@H](O)C2)c(C)c1', \'C[C@@H]1CCN(C(=O)CCCc2ccccc2)C[C@@H]1O'])# [0.03, 0.0, 0.0]

之後我們會逐步添加更多有意義的data functions,比如各種分子格式之間的轉化,更有實際意義的oracles(比如之後會提供docking score,逆合成步數)等等。

安裝TDC

TDC的核心數據只有非常少的環境要求,你可以通過pip來安裝它:

pip install PyTDC

對於一些比較具體的data functions,TDC需要更加多的環境。你可以通過conda-forge安裝:

conda install -c conda-forge pytdc

TDC是一個開源社區

TDC的初衷就是連接生物醫藥和ML的研究者們來加速ML在生物醫藥方面的應用。所以非常歡迎任何對這方面感興趣的人來加入我們給TDC提供任何形式的貢獻,你可以直接知乎私聊我,或者發我email:[email protected]

TDC網站和GitHub

TDC Website

所有的詳細信息都在TDC的網站里,zitniklab.hms.harvard.edu

也歡迎大家star TDC的GitHub github.com/mims-harvard 來看TDC的最新消息!

有任何問題,歡迎評論或者私聊 @Kexin 或者我!

Reference

[1] AlphaFold: a solution to a 50-year-old grand challenge in biology. AlphaFold: a solution to a 50-year-old grand challenge in biology

[2] Stokes, Jonathan M., et al. “A deep learning approach to antibiotic discovery.”Cell. 180.4 (2020): 688-702.

[3] Yang, Wanjuan, et al. 「Genomics of Drug Sensitivity in Cancer (GDSC): a resource for therapeutic biomarker discovery in cancer cells.」 Nucleic acids research 41.D1 (2012): D955-D961.

[4] O』Neil, Jennifer, et al. 「An unbiased oncology compound screen to identify novel combination strategies.」 Molecular cancer therapeutics 15.6 (2016): 1155-1162.

[5] Zagidullin, Bulat, et al. 「DrugComb: an integrative cancer drug combination data portal.」 Nucleic acids research 47.W1 (2019): W43-W51.