pytdc
治疗数据共享平台。提供面向人工智能的药物发现数据集(如ADME、毒性、药物靶点相互作用)、基准测试、骨架分割、分子预测模型,服务于治疗性机器学习和药理学预测。
分类
AI 技能开发安装
热度:9
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
下载并安装这个技能 https://openskills.cc/api/download?slug=k-dense-ai-scientific-skills-pytdc&locale=zh&source=copy
PyTDC 药物发现数据集技能
技能概述
PyTDC(Therapeutics Data Commons)是一个专为治疗性机器学习提供AI就绪药物发现数据集和标准化基准测试的开源平台,覆盖从药物吸收代谢(ADME)到毒性预测、药物-靶点相互作用和分子生成的完整治疗管线。
适用场景
1. 药物发现与机器学习研究
当你需要获取经过预处理的、带有标准化评估指标的数据集来训练和测试药物发现AI模型时,PyTDC提供了超过100个 curated 数据集,涵盖单实例预测(分子属性)、多实例预测(药物-靶点/药物-药物相互作用)和生成任务(分子设计、逆合成)三大类别。
2. 模型基准测试与评估
当你需要使用公平、可复现的协议来评估药物发现模型的性能时,PyTDC提供了多个benchmark group(如ADMET组包含22个数据集),支持scaffold split、cold split等专业数据分割策略,并内置ROC-AUC、PR-AUC、RMSE等多种评估指标。
3. 分子生成与优化
当你需要进行目标导向的分子生成或需要评估分子属性时,PyTDC提供了17+个分子oracles(如GSK3B、DRD2、JNK3等靶点),可以计算分子与特定生物靶点的结合亲和力,用于分子属性优化和生成模型评估。
核心功能
1. AI就绪的药物发现数据集
提供覆盖完整治疗管线的curated数据集,包括ADME(吸收/分布/代谢/排泄)、毒性(hERG、AMES、DILI)、药物-靶点相互作用(BindingDB包含50万+结合数据)、药物-药物相互作用、高通量筛选(HTS)、量子力学性质等。所有数据集已预处理,可直接用于机器学习训练,支持多种格式输出(DataFrame、PyG图、DGL图等)。
2. 专业数据分割与基准测试
支持scaffold split(基于分子骨架的化学多样性分割)、cold split(测试集包含未见药物/靶点)、temporal split(时间序列分割)等专业分割策略。提供benchmark group功能,如ADMET group包含22个数据集,支持多种子(5 seeds)评估协议,确保模型评估的公平性和可复现性。
3. 分子生成评估与数据处理工具
内置17+个分子oracles用于评估分子与特定靶点的结合亲和力,支持目标导向的分子生成和优化。提供11个核心数据处理工具,包括分子格式转换(SMILES、PyG、DGL、ECFP等)、分子过滤(PAINS、药物相似性)、标签转换、数据平衡、负采样等功能。
常见问题
PyTDC是什么,和ChEMBL有什么区别?
PyTDC是Therapeutics Data Commons的Python库,它整合了包括ChEMBL在内的多个药物数据库,并进行了统一预处理、添加了标准化评估指标和专业数据分割(如scaffold split)。与原始数据库不同,PyTDC的数据集是"AI就绪"的,可以直接用于机器学习训练,无需额外的清洗和格式转换。
如何安装PyTDC并加载第一个数据集?
使用
uv pip install PyTDC 或 pip install PyTDC 安装。加载数据非常简单:from tdc.single_pred import ADME; data = ADME(name='Caco2_Wang'); split = data.get_split(method='scaffold')。这会返回包含train、valid、test的字典,每个元素都是pandas DataFrame格式。PyTDC的scaffold split为什么重要?
Scaffold split基于分子骨架结构进行数据分割,确保测试集包含与训练集不同骨架的化合物。这能更好地模拟真实药物发现场景(预测全新化学骨架的化合物性质),避免模型过度学习特定子结构模式,是评估模型泛化能力的gold standard分割策略。
PyTDC数据集可以用于商业用途吗?
可以。PyTDC采用MIT许可证,允许商业用途。但需要注意的是,PyTDC整合的某些原始数据集可能有各自的使用条款,建议在使用前查看具体数据集的引用和授权信息。
如何获取PyTDC中所有可用的数据集列表?
使用
from tdc.utils import retrieve_dataset_names; adme_datasets = retrieve_dataset_names('ADME') 可以获取特定任务(如ADME)的所有数据集名称。也可以查看技能包中的 references/datasets.md 文件,它包含所有数据集的详细目录。