第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性质,就能在早期把高风险化合物筛掉,集中资源推进那些有潜力的分子。但这里有一个关键问题:模型的预测结果到底可不可信?
我见过不少团队,模型建完之后只看一个AUC值,AUC大于0.8就觉得万事大吉。结果在实际应用中发现,模型对某些结构类型的化合物预测偏差非常大。为什么?因为单一指标不能全面反映模型的真实表现。你想想看,如果一个模型对已知化合物预测很准,但对新结构完全不work,那它在筛选阶段反而会误导你。
1.3 ADMET建模与评估的核心流程
一个标准的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}")
1.5 评估中的常见误区
说到误区,我曾经踩过一个很大的坑。那时候做一个CYP450抑制活性预测模型,训练集和测试集用的是同一批化合物数据,只是按比例随机拆分。结果评估指标非常漂亮,AUC到了0.92。我当时还挺得意,结果放到外部测试集上一测,AUC直接掉到0.61。后来一查原因,训练集和测试集里含有非常相似的类似物,导致模型「记住了」结构特征而不是学到了真正的抑制规律。
另一个常见问题是只看单指标决策。有些团队喜欢用R²来评估回归模型,R²达到0.7就觉得模型可以上线。但你想想看,R²高就一定代表预测准吗?不一定。如果测试集的数据范围很窄,R²自然就高,但模型到了新化合物上可能完全失效。所以我的做法是:R²、RMSE和MAE三个指标一起看,再结合残差分布图做综合判断。
说回课程本身,ADMET模型评估不是简单地跑个指标就完事了。你需要理解每个指标背后的含义,知道什么场景下该用什么指标,更要警惕那些「看起来很美」的数字。后面的章节我会逐一拆解每个评估指标的计算逻辑、适用边界和实际案例。嗯,先把基础打牢,后面才好展开。