244

TDC ADMET Group:ADMET 预测任务集合

TDC ADMET Group 把 22 个 ADMET 终点打包成标准任务与排行榜,是 ADMET 建模的首选数据。这篇给出终点清单、评测流程与各终点的实际难度。

TDC ADMET Benchmark Group 把吸收、分布、代谢、排泄、毒性五大类共 22 个终点打包成统一的任务集,配有固定划分、官方指标和公开排行榜。做 ADMET 预测,它是目前最合适的公开起点——比 MoleculeNet 更规范、覆盖更全、评测更严谨。

22 个终点

类别 终点 类型 指标
吸收 A Caco2_Wang(细胞通透性) 回归 MAE
HIA_Hou(人肠吸收) 分类 AUROC
Pgp_Broccatelli(P-gp 底物) 分类 AUROC
Bioavailability_Ma(口服生物利用度) 分类 AUROC
Lipophilicity / Solubility_AqSolDB 回归 MAE
分布 D BBB_Martins(血脑屏障) 分类 AUROC
PPBR_AZ(血浆蛋白结合率) 回归 MAE
VDss_Lombardo(分布容积) 回归 Spearman
代谢 M CYP2C9/2D6/3A4 抑制与底物(6 个) 分类 AUPRC / AUROC
排泄 E Half_Life_Obach(半衰期) 回归 Spearman
Clearance_Hepatocyte/Microsome_AZ 回归 Spearman
毒性 T hERG(心脏毒性) 分类 AUROC
AMES(致突变性) 分类 AUROC
DILI(药物性肝损伤) 分类 AUROC
LD50_Zhu(急性毒性) 回归 MAE

标准评测流程

from tdc.benchmark_group import admet_group
import numpy as np

group = admet_group(path="data/")
predictions_list = []

for seed in [1, 2, 3, 4, 5]:            # 官方要求 5 个种子
    predictions = {}
    for benchmark in group:
        name = benchmark["name"]
        train_val, test = benchmark["train_val"], benchmark["test"]
        train, valid = group.get_train_valid_split(
            benchmark=name, split_type="scaffold", seed=seed)

        model = train_your_model(train, valid)      # 你的模型
        predictions[name] = model.predict(test["Drug"])
    predictions_list.append(predictions)

results = group.evaluate_many(predictions_list)     # 返回均值与标准差
for k, v in results.items():
    print(f"{k:35s} {v[0]:.3f} ± {v[1]:.3f}")

evaluate_many 要求提供 5 个种子的预测,直接返回均值和标准差——官方把「必须多种子」写进了评测协议,这是它比 MoleculeNet 严谨的地方。

各终点的实际难度

  • 相对容易:AMES、CYP 抑制、hERG、BBB。数据量较大(数千到上万),机制相对单一,AUROC 通常能到 0.85 以上。
  • 中等:Caco2、溶解度、亲脂性。回归任务,受实验条件影响,MAE 难以进一步压低。
  • 很难:半衰期、清除率、分布容积、生物利用度。这些是体内综合参数,受吸收、代谢、转运、蛋白结合等多因素共同决定,Spearman 能到 0.4~0.5 就算不错。数据量也小(几百条)。
  • DILI 特别难:肝损伤机制多样(免疫介导、代谢产物毒性、线粒体毒性),且标签本身基于临床观察,噪声大。

不要期待所有终点都能做到同样好。体外单一机制的终点可以预测得不错,体内综合参数的预测能力至今有限——这不是模型不够好,是问题本身的复杂度决定的。

用于实际项目时

  • 公开模型只做粗筛:TDC 数据来自不同实验室,与你自家的测定条件不同。公开模型的绝对预测值不可直接采信,用于排序和风险提示更合适。
  • 用内部数据微调:有自家 ADMET 数据时,用公开数据预训练 + 内部数据微调,通常明显优于任一单独使用。
  • 关注适用域:预测新化学型时务必看不确定性,落在训练分布外的预测不该采信。
  • 多任务往往有帮助:ADMET 各终点间有相关性,多任务学习可以让数据少的终点从数据多的终点受益。

上手提示

  • 官方评测协议要求 5 个种子,直接返回均值 ± 标准差,纪律性优于 MoleculeNet;
  • 体外单机制终点(hERG、CYP、AMES)好做,体内综合参数(半衰期、清除率)很难;
  • 公开模型只做粗筛与排序,绝对值不可直接采信;
  • 有内部数据时,「公开预训练 + 内部微调」通常是最优组合。

延伸资源