第1章 ADMET概述与模型评估的重要性

做ADMET建模这些年,我有个很深的体会:模型建得再好,评估这关过不了,一切都是白搭。很多团队花大量精力调算法、堆特征,最后却因为评估指标选错或者解读不到位,做出了错误的决策。说白了,ADMET模型评估就是给计算结果「打分」的过程——分打对了,后续的药物决策才有底气。

1.1 什么是ADMET?

ADMET是五个英文单词的首字母缩写。它们决定了候选化合物能不能从实验室走到患者手里。

  • A – Absorption(吸收):药物从给药部位进入血液循环的过程。口服药能不能被肠道吸收?吸收多少?这是第一个关卡。
  • D – Distribution(分布):药物进入血液后,怎么分布到全身各个组织?能不能到达靶器官?这决定了药效能不能发挥。
  • M – Metabolism(代谢):药物在体内被酶系转化的过程。代谢太快,药效维持不了;代谢太慢,可能产生毒性中间体。
  • E – Excretion(排泄):药物及其代谢物怎么排出体外?肾排泄还是胆汁排泄?这影响药物的清除速率和半衰期。
  • T – Toxicity(毒性):药物对机体产生的不良影响。没有安全性的药,疗效再好也不敢用。

我记得参与过一个项目,有个化合物体外活性数据特别漂亮,IC50达到纳摩尔级别。团队上下都很兴奋,结果一测代谢稳定性,大鼠肝微粒体半衰期不到两分钟。嗯,这个化合物后来就没能进入临床。ADMET任何一个环节出问题,都可能导致整个项目折戟。

1.2 为什么ADMET模型评估如此重要?

药物研发的失败率有多高?临床阶段90%的候选药物最终会被淘汰,其中约50%是因为ADMET性质不合格。说白了,你花了几年时间、几千万美金找到一个活性化合物,结果因为毒性太大或者代谢太差被毙掉,前面的投入全部打水漂。

如果能用计算机模型提前预测ADMET性质,就能在早期把高风险化合物筛掉,集中资源推进那些有潜力的分子。但这里有一个关键问题:模型的预测结果到底可不可信?

核心观点:模型评估是连接「计算预测」与「药物决策」的桥梁。评估指标不达标,预测结果就不能用于决策。ADMET模型评估不仅仅是一个技术环节,它直接决定了整个计算辅助药物设计流程的可信度。

我见过不少团队,模型建完之后只看一个AUC值,AUC大于0.8就觉得万事大吉。结果在实际应用中发现,模型对某些结构类型的化合物预测偏差非常大。为什么?因为单一指标不能全面反映模型的真实表现。你想想看,如果一个模型对已知化合物预测很准,但对新结构完全不work,那它在筛选阶段反而会误导你。

1.3 ADMET建模与评估的核心流程

一个标准的ADMET建模与评估流程,大致可以分为五个阶段。下面的图展示了这个知识体系的核心逻辑。

ADMET模型评估知识体系 ADMET模型评估 ADMET五要素 吸收 · 分布 · 代谢 排泄 · 毒性 评估指标体系 分类:AUC · 敏感度 · 特异度 回归:R² · RMSE · MAE 核心应用场景 早期筛选 · 候选优化 风险预警 · 机制研究 关键挑战 数据质量 · 可解释性 泛化能力 · 标准化 ADMET模型评估是连接计算预测与药物决策的核心桥梁

整个流程可以从数据准备开始,到特征工程、模型训练,最终落到评估与决策。我在项目里经常遇到的情况是:数据质量不过关,后面所有工作都是徒劳。所以评估的第一步,其实是评估数据本身——样本量够不够?实验数据有没有噪声?正负样本是否平衡?这些都会直接影响后续的模型表现。

1.4 核心评估指标速览

ADMET模型面对的预测任务一般分两类:分类(比如有毒/无毒)和回归(比如预测溶解度具体数值)。两类任务用到的评估指标不同。下面这张表总结了最常用的几个指标。

任务类型 指标名称 缩写 适用场景 参考标准
分类 ROC曲线下面积 AUC-ROC 二分类模型整体表现 > 0.7 可接受,> 0.8 良好
敏感度(召回率) Sensitivity 毒性预测:尽可能不漏掉毒物 > 0.8
特异度 Specificity 安全性筛选:减少假阳性 > 0.8
回归 决定系数 R² 模型拟合优度 > 0.6
均方根误差 RMSE 预测误差的绝对大小 越小越好,结合业务判断
平均绝对误差 MAE 误差的直观度量 越小越好,单位与预测值一致

举个例子,计算AUC-ROC在Python里其实就几行代码。

from sklearn.metrics import roc_auc_score

y_true = [0, 1, 1, 0, 1]
y_pred = [0.1, 0.9, 0.8, 0.2, 0.7]
auc = roc_auc_score(y_true, y_pred)
print(f"AUC = {auc:.3f}")
实用建议:我个人习惯在项目开始时就把所有评估指标的基线值定好。比如对于毒性分类模型,AUC低于0.7的模型不进入候选池。这样做的好处是,能避免后期因为「这个模型看起来还行」而做出主观判断。

1.5 评估中的常见误区

说到误区,我曾经踩过一个很大的坑。那时候做一个CYP450抑制活性预测模型,训练集和测试集用的是同一批化合物数据,只是按比例随机拆分。结果评估指标非常漂亮,AUC到了0.92。我当时还挺得意,结果放到外部测试集上一测,AUC直接掉到0.61。后来一查原因,训练集和测试集里含有非常相似的类似物,导致模型「记住了」结构特征而不是学到了真正的抑制规律。

避坑提醒:千万不要用随机拆分来评估ADMET模型!化合物的结构相似性会导致数据泄露。建议使用基于骨架(scaffold)或时间戳的拆分方式,这样更能反映模型在实际筛选场景中的表现。

另一个常见问题是只看单指标决策。有些团队喜欢用R²来评估回归模型,R²达到0.7就觉得模型可以上线。但你想想看,R²高就一定代表预测准吗?不一定。如果测试集的数据范围很窄,R²自然就高,但模型到了新化合物上可能完全失效。所以我的做法是:R²、RMSE和MAE三个指标一起看,再结合残差分布图做综合判断。

说回课程本身,ADMET模型评估不是简单地跑个指标就完事了。你需要理解每个指标背后的含义,知道什么场景下该用什么指标,更要警惕那些「看起来很美」的数字。后面的章节我会逐一拆解每个评估指标的计算逻辑、适用边界和实际案例。嗯,先把基础打牢,后面才好展开。