PyTDC(Therapeutics Data Commons)是一个用于治疗性机器学习任务的 Python 包,通过 import tdc 使用。本技能围绕官方 PyTDC 发行版,帮助发现治疗性 ML 任务、加载经批准的数据集、应用任务适配的数据划分、评估预测结果,并使用精选的基准测试组。
用途 PyTDC 面向治疗性机器学习研究,提供任务与数据集的注册表、数据加载器、划分工具、评估器以及基准测试组。本技能强调以包元数据而非复制来的数据集列表为准,并在构建任何加载器之前先规划网络与存储影响。
主要能力
- 元数据发现:通过 tdc.metadata 或 scripts/discover_metadata.py 在不下载数据的情况下发现任务、数据集、基准测试组和评估器。
- 数据加载与划分:使用 tdc.single_pred(ADME、Tox)、tdc.multi_pred(DDI、DTI)、tdc.generation(MolGen、Reaction、RetroSyn)等模块加载数据,并支持 random、scaffold、cold_split、combination、time 等划分方法。
- 评估器:通过 tdc.Evaluator 使用注册的指标名称,如 MAE、ROC-AUC、PCC,以及 micro-f1、macro-f1、kappa 等多分类指标。
- 基准测试组:使用 tdc.benchmark_group 中的专用类(如 admet_group)进行单次评估或排行榜聚合。
- 分子生成与 oracle:提供分子语料、评估器和 oracle,支持有界的本地或检查点评分。
使用方式 建议使用隔离的 CPython 3.11 环境并固定版本: uv venv --python 3.11 .venv-pytdc uv pip install --python .venv-pytdc/bin/python "setuptools==80.9.0" "PyTDC==1.1.15" 临时命令示例: uv run --python 3.11 --with "setuptools==80.9.0" --with "PyTDC==1.1.15" python scripts/discover_metadata.py --kind tasks 数据与网络策略:先发现(读取元数据不下载)、再规划(记录任务/数据集、官方页面、许可、预期大小、缓存目录、划分、指标、随机种子)、下载前询问用户、批准后执行、保持输出有界。
适用场景 适用于治疗性机器学习的数据集探索、基准测试、模型评估与分子性质评分等研究场景。
限制
- PyTDC 1.1.15 不提供通用缓存配额、淘汰策略或数据集级校验和清单。
- 数据集与任务许可各异,从 Creative Commons 到非商业限制或“未指定”不等,需在下载、再分发、发表或商业使用前核实具体数据集页面与原始来源条款。
- 上游未发布 GitHub 标签/发行版或维护的变更日志,未记录的迁移声明应视为不确定。
- 文档站点 tdc.readthedocs.io 仍标识为 TDC 0.4.1,仅可作为 API 交叉参考,不能作为版本证据。
- 部分 oracle(如 LogP、SA、DRD2、GSK3B、JNK3、CYP3A4_Veith)需要额外下载。
- 网络传输、本地存储、解压、解析、特征生成、对接和外部服务调用均可能产生时间或金钱成本。
相关技能:deepchem(分子机器学习,提供多种特征化器和预构建数据集)。