引言
由美国多所著名大学(哈佛大学,乔治亚理工大学,麻省理工学院,卡耐基梅隆大学,斯坦福大学,伊利诺伊大学厄巴纳 – 香槟分校)的研究人员,与医疗数据公司 IQVIA 合作,发布了医疗领域内首个面向疗法的统一机器学习开源框架 ——Therapeutics Data Commons (TDC)。
简介
Therapeutics Data Commons (TDC) 是第一个系统地整合和评估生物医学领域的机器学习框架。目前包含了20多个任务,和70多个高质量数据集。机器学习在生物医学方面的应用是一个十分令人兴奋的领域,前景广阔。TDC中的数据集、学习任务和基准的收集是领域和机器学习科学家的一个会议点。TDC可以大大加快机器学习模型的开发、验证以及向临床转变。
图1. TDC的数据集
图片来源于TDC官网 (https://tdcommons.ai/start/)
数据集
TDC的核心是收集与整理机器学习任务及其相关数据集,这些数据集包含各个领域。任务和数据集具有以下特点:
(1) 包含领域广:TDC涵盖了从湿实验生物靶点识别到生物医学产品制造的各种学习任务。
(2)与时俱进的学习任务和数据集:TDC定期更新,以添加新的数据集和学习任务,例如抗体治疗和基因编辑。
(3) 对机器学习良好的支持:在每个数据集中,TDC都提供了生物实体信息的丰富展示。特征信息是经过精心处理的。
TDC中的学习任务
TDC学习任务涵盖一系列治疗产品和管道。它跨越了小分子和生物制剂(抗体、肽、小RNA等)。此外,这些任务对应的药物研发管道如下:
(1) 靶点发现管道:旨在确定候选的药物靶点。
(2) 活性建模管道:旨在筛选,产生,或者从头开始设计单独的或者组合的候选药物。
(3) 有效性和安全性管道:旨在优化hits的特性,以便药物能够安全地有效地到达作用部位。
(4) 制造管道:目的在于合成。
图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个预测机,每一个预测机都是为特定的目标制作的。
图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...
82.5k/82.5k [00:00<00:00, 166kiB/s]
Loading...
Done!
# 数据将会以dataframe形式储存
In [13]: df
:
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
rows x 3 columns]
# 而split则提供分割好的train以及testIn [14]: splits
:
:
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
rows x 3 columns],
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
rows x 3 columns],
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
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.