推荐 | 首个“生物医药+机器学习”资源数据集社区TDC的诞生

引言

由美国多所著名大学(哈佛大学,乔治亚理工大学,麻省理工学院,卡耐基梅隆大学,斯坦福大学,伊利诺伊大学厄巴纳 – 香槟分校)的研究人员,与医疗数据公司 IQVIA 合作,发布了医疗领域内首个面向疗法的统一机器学习开源框架 ——Therapeutics Data Commons (TDC)。

简介

Therapeutics Data Commons (TDC) 是第一个系统地整合和评估生物医学领域的机器学习框架。目前包含了20多个任务,和70多个高质量数据集。机器学习在生物医学方面的应用是一个十分令人兴奋的领域,前景广阔。TDC中的数据集、学习任务和基准的收集是领域和机器学习科学家的一个会议点。TDC可以大大加快机器学习模型的开发、验证以及向临床转变。

推荐 | 首个“生物医药+机器学习”资源数据集社区TDC的诞生

图1. TDC的数据集

图片来源于TDC官网 (https://tdcommons.ai/start/)

数据集

TDC的核心是收集与整理机器学习任务及其相关数据集,这些数据集包含各个领域。任务和数据集具有以下特点:

(1) 包含领域广:TDC涵盖了从湿实验生物靶点识别到生物医学产品制造的各种学习任务。

(2)与时俱进的学习任务和数据集:TDC定期更新,以添加新的数据集和学习任务,例如抗体治疗和基因编辑。

(3) 对机器学习良好的支持:在每个数据集中,TDC都提供了生物实体信息的丰富展示。特征信息是经过精心处理的。

TDC中的学习任务

TDC学习任务涵盖一系列治疗产品和管道。它跨越了小分子和生物制剂(抗体、肽、小RNA等)。此外,这些任务对应的药物研发管道如下:

(1) 靶点发现管道:旨在确定候选的药物靶点。

(2) 活性建模管道:旨在筛选,产生,或者从头开始设计单独的或者组合的候选药物。

(3) 有效性和安全性管道:旨在优化hits的特性,以便药物能够安全地有效地到达作用部位。

(4) 制造管道:目的在于合成。

推荐 | 首个“生物医药+机器学习”资源数据集社区TDC的诞生

图2. TDC中的学习任务

图片来源于TDC官网 (https://tdcommons.ai/start/)

TDC 功能

TDC实现了生物医学中机器学习方面常用的功能,可以方便,简单的进行使用。大体上,可以分为以下四大类:

(1) 模型评估:TDC包括一系列的度量函数,用于评估生物医学ML任务中的模型,以便模型可以应用到真实场景中。

(2) 数据分割:TDC包括各种数据分割 (data splits) 方案,以提高泛化能力。

(3) 数据处理:由于生物医学机器学习领域有很多复杂的数据,并包含了许多可以重复使用的函数,所以,TDC提供了方便使用的封装。

(4) 预测机 (Molecule Generation Oracles):分子设计任务需要预测函数 (oracle functions) 来度量生成分子的质量。迄今为止,TDC提供了17个预测机,每一个预测机都是为特定的目标制作的。

推荐 | 首个“生物医药+机器学习”资源数据集社区TDC的诞生

图3. TDC的功能

图片来源于TDC官网 (https://tdcommons.ai/start/)

安装以及使用

安装

可以直接使用pip进行安装

pip install PyTDC

使用

(1) 导入数据集

  • In [12]: from tdc.single_pred import ADME
  • ...: data = ADME(name = 'Caco2_Wang')
  • ...: df = data.get_data()
  • ...: splits = data.get_split()
  • Downloading...
  • 100%|██████████████████████████████████████| 82.5k/82.5k [00:00<00:00, 166kiB/s]
  • Loading...
  • Done!
  • # 数据将会以dataframe形式储存
  • In [13]: df
  • Out[13]:
  • Drug_ID ... Y
  • 0 (-)-epicatechin ... -6.220000
  • 1 (2E,4Z,8Z)-N-isobutyldodeca-2,4,10-triene-8 -y... ... -3.860000
  • 2                                           codeine  ... -4.090000   
  • 3                                         creatinine ... -5.935409
  • 4                                            danazol ... -4.840000
  • .. ... ... ...
  • 905                     Capric acid (decanoic acid) ... -4.680000
  • 906                                 Apometzgerin (2) ... -4.950000
  • 907                                                3 ... -5.080000
  • 908                                              51d ... -5.300000
  • 909                                    Cycloheximide ... -4.840000
  • [910 rows x 3 columns]
  • # 而split则提供分割好的train以及testIn [14]: splits
  • Out[14]:
  • {'train':
  •                                                       Drug_ID ... Y
  • 0                                     (-)-epicatechin ... -6.22
  • 1      (2E,4Z,8Z)-N-isobutyldodeca-2,4,10-triene-8 -y... ... -3.86
  • 2                                            codeine ... -4.09
  • 3                                            danazol ... -4.84
  • 4                      dexamethasone b D glucuronide ... -6.12
  • .. ... ... ...
  • 632                                               13h ... -5.36
  • 633                                           (Z)-19f ... -5.32
  • 634                                  Ac-C8-Enk-NH (3) ... -5.97
  • 635                                  Apometzgerin (2) ... -4.95
  • 636                                     Cycloheximide ... -4.84
  • [637 rows x 3 columns],
  • 'valid':                     Drug_ID ...          Y
  • 0              Raloxifene HCl ... -5.722754
  • 1                          13 ... -4.699485
  • 2                           5 ... -5.647924
  • 3                           - ... -5.190000
  • 4                          4b ... -6.000000
  •                          ... ... ... ...
  • 86                   atropine ... -4.700000
  • 87                  Guanabenz ... -4.330000
  • 88                          4 ... -4.958607
  • 89   20(S)-camptothecin (CPT) ... -4.331849
  • 90             hexapeptide 07 ... -5.820000
  • [91 rows x 3 columns],
  • 'test':               Drug_ID ... Y
  • 0                           D ... -5.489058
  • 1                   Angelol-B ... -4.849929
  • 2                     Flavone ... -3.920108
  • 3                   enalapril ... -5.672000
  • 4                Furazolidone ... -4.990000
  • ..                        ... ... …
  • 177                        22 ... -5.229574
  • 178                        21 ... -5.000000
  • 179                     PB-27 ... -5.797940
  • 180                 Gefitinib ... -4.480000
  • 181    5-chlorosalicylic acid ... -4.98000
  • [182 rows x 3 columns]}

(2) 预测机

例:Synthetic Accessibility (SA) 合成可及性分析

合成可及性分数代表合成一个分子合成方面的难易程度。TDC中的预测机是通过RDKit计算的。

In [4]: from tdc import Oracle

...: oracle = Oracle(name = 'SA')

...: 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'])

...: # [2.706977149048555, 2.8548373344538067, 2.659973244931228]

Downloading Oracle...

100%|█████████████████████████████████████| 9.05M/9.05M [00:05<00:00, 1.55MiB/s]Done!

Out[4]: [2.706977149048555, 2.8548373344538067, 2.659973244931228]

总结

TDC的优势在与其集中了生物医学方面的数据集,包含了各个管线,从靶点预测到ADMET分析,其同样也提供了一些简单的方便使用的函数用于进行数据处理,模型度量等等。同时,其预测机集成了了一些作者认为比较重要的度量分子的指标,这使的用户可以简单的输入SMILES便可以拿到想要的输出。

官方网站

https://tdcommons.ai/start/

工具下载

https://tdcommons.ai/start/

参考文献

Kexin Huang, Tianfan Fu, Wenhao Gao, Yue Zhao, Yusuf Roohani, Jure Leskovec, Connor W. Coley, Cao Xiao, Jimeng Sun, Marinka Zitnik, Therapeutics Data Commons: Machine Learning Datasets and Tasks for Therapeutics, 2021, preprint.