ADMET 概述:药物研发的生死线
我入行做药物计算那会儿,老板扔给我一个分子,说活性 IC₅₀ 都到纳摩尔级了,可以推临床了吧?我当时也这么想。结果体内 PK 一测,生物利用度不到 2%,不到半小时就代谢光了。那个分子后来再也没见过天日。从那以后我就明白了一件事:活性高不代表能成药,ADMET 才是真正的筛子。
ADMET 这五个字母,说白了就是分子在身体里的旅行:
- A – Absorption(吸收):药物怎么进去?口服还是注射?
- D – Distribution(分布):药物去了哪儿?血浆还是组织?
- M – Metabolism(代谢):药物怎么被改造?肝脏里的酶在干什么?
- E – Excretion(排泄):药物怎么出去?尿还是胆汁?
- T – Toxicity(毒性):药物有没有搞破坏?
我经常跟团队说,一个候选分子就像一枚火箭——光推力大没用,得能飞得稳、不爆炸、不偏离轨道。ADMET 就是火箭的导航和燃料系统。你想想看,每年药企花几十亿美金做临床试验,失败的主要原因是什么?不是有效性不够,而是 ADMET 不合格。据我看到的统计,约 40% 的临床失败都和安全性与药代相关。
吸收:进门是第一关
口服药物最常见的进入方式。但不是所有分子都能顺畅穿过肠道上皮细胞。这里有几个关键参数我每次都会先看:
| 参数 | 含义 | 理想范围(口服) |
|---|---|---|
| LogP | 脂水分配系数 | 0~3 |
| 分子量 | 分子大小 | <500 Da |
| 氢键供体/受体 | 极性基团数量 | <5 / <10 |
| 渗透性(Caco-2/PAMPA) | 跨膜能力 | Papp > 1×10⁻⁶ cm/s |
这些数字就是 Lipinski 五规则 的底子。我在项目里遇到过分子完美符合所有规则,结果到体内吸收还是很差——后来发现是 P-gp 外排泵在作怪。所以规则只是敲门砖,不能迷信。
分布:别走丢了
药物进入血液后,会分布到全身各种组织。分布的关键指标是 表观分布容积 Vd 和 血浆蛋白结合率。
- Vd 大:说明药物偏好组织,容易在脂肪或器官里蓄积——比如氯喹。
- 血浆蛋白结合率高:游离药物少,药效低,还容易发生药物相互作用。
我见过一个项目,分子血浆蛋白结合率 99.9%,体外活性很好,体内就是没有药效。后来算下来,游离浓度根本不够。嗯,这个坑我踩过,现在每次看到结合率 >95% 都会多留个心眼。
代谢:肝脏是生化工厂
肝脏里的 CYP450 酶系(主要是 CYP3A4, CYP2D6, CYP2C9 等)负责把外来物质氧化降解。有些分子被代谢后活性消失——这叫 首过效应。有些反而变成活性更强的代谢物——比如前药设计。
关键关注点:半衰期(t₁/₂)和代谢稳定性。我建议早期就做人肝微粒体实验,半小时内剩余量低于 30% 的分子基本可以放弃。
我记得有个案例,分子在大鼠肝微粒体里很稳定,到了人肝微粒体却快速代谢。原因是物种差异——大鼠 CYP 亚型跟人不一样。所以 物种间外推 一定要小心,别只盯着一个数据。
排泄:怎么出去
排泄途径主要有两种:肾脏(尿液) 和 胆汁(粪便)。大部分小分子药物以原形或代谢物形式经肾小球滤过或肾小管分泌排出。
关键参数:肾清除率 CLR 和 半衰期 t₁/₂。如果肾清除率超过肾小球滤过率,说明有主动分泌机制。我在做抗生素项目时遇到过,分子被 OAT 转运体主动分泌到尿液中,导致血药浓度很快掉到 MIC 以下——不得不改成一天三次给药。
提示:排泄数据要结合分布容积一起看。低 Vd + 高 CL → 很快洗脱;高 Vd + 低 CL → 组织蓄积风险。
毒性:宁可慢,不要乱
毒性是最难预测的环节。常见的毒性类型:
- hERG 抑制:导致 QT 间期延长,引发心律失常。
- 肝毒性:ALT/AST 升高,严重时肝衰竭。
- 基因毒性:Ames 试验阳性 → 直接出局。
- 磷脂质症:药物在溶酶体里富集,造成组织损伤。
我建议在 先导优化阶段 就用高通量毒性预测把分子过一遍。DeepChem 里集成了不少毒性数据集(比如 Tox21, ClinTox),跑一轮能筛掉明显有问题的。别等到做动物实验才发现毒性——成本太高。
注意:体外毒性阴性不代表体内安全。有些代谢物才有毒性,需要结合代谢数据综合判断。
为什么 ADMET 在 DeepChem 里做?
传统做法:合成 → 实验测试 → 修正 → 再合成。一个周期至少两周,而且只能测几十个分子。而 DeepChem 这样的深度学习框架,可以 用已有数据训练模型,对虚拟库里的数百万分子做快速预测。说白了,就是把无数实验放到计算机里跑,用算法代替一部分湿实验。
我个人习惯在项目启动的第一天就跑一次 ADMET 全流程预测。只用 10 分钟,就能把命中率从千分之一提升到十分之一。剩下时间专心优化那几个有希望的分子。
下面是我常用的一次 ADMET 预检查环境:
import deepchem as dc
print("DeepChem version:", dc.__version__)
# 加载 Tox21 毒性数据集
tox21 = dc.molnet.load_tox21()
train, valid, test = tox21
print("Training samples:", len(train))
这只是个开始。后续章节我会带你一步步搭建预测模型,从分子指纹到图神经网络,从单一任务到多任务。
一张图看懂本章知识体系
我的经验总结
ADMET 不是事后补丁,而是从立项那天就要放进去的约束。用 DeepChem 做快速预测,能让你在虚拟空间里跑几千个迭代,找到那些既有效又安全的分子。
- 早期先跑一遍所有可用模型:哪怕是二分类,都能帮你从一万个分子里挑出三百个苗头。
- 别只看一个指标:比如渗透性好但代谢快,等于白干。要综合评估。
- 数据质量决定模型上限:我在项目里遇到过,训练集全是体外数据,预测体内效果很差。注意域外泛化问题。
一句话:ADMET 预测不是要得到绝对正确的数字,而是要把烂分子拦在合成之前。后面每个章节都会深入具体的预测模型和实操代码。