3. ADMET 关键参数与数据特点
3.1 那些绕不开的核心参数
咱们做 ADMET 预测,说白了就是跟几个关键物理化学参数打交道。这些参数就像是化合物的身份证,每一项都指向它在体内到底会怎么走一遭。
我做了这么多年,见过不少新同事一上来就堆特征,结果模型过拟合得一塌糊涂。其实你抓住下面这几类核心指标,基本就抓住了 80% 的信息量:
| 参数类别 | 关键指标 | 它告诉你什么 | 我见过的坑 |
|---|---|---|---|
| 吸收 (A) | LogP, LogD, TPSA, Solubility | 膜渗透性和水溶性 | LogP 不是越大越好,要落在成药区间里 |
| 分布 (D) | PPB (血浆蛋白结合), Vd (表观分布容积) | 药物在体内分布广不广 | PPB 太高容易导致药物相互作用 |
| 代谢 (M) | CYP450 抑制 (特别是 3A4, 2D6), Clearance | 药物会不会快速被清除 | CYP 抑制搞不好就是黑框警告级别的问题 |
| 排泄 (E) | 半衰期 (t½), 清除率 (CL) | 药物在体内存多久 | 半衰期太短意味着一天得吃好几次 |
| 毒性 (T) | hERG 抑制, AMES 致突变性, 肝毒性 | 会不会引起安全问题 | hERG 是导致药物撤市的前三位原因之一 |
经验之谈: 我个人习惯在项目初期,先盯住 LogD (pH 7.4)、CYP 3A4 抑制、hERG 的 IC50 这三个数。如果这三关过不去,后面的优化基本都会非常难受。
3.2 数据的特点——说白了就是“怪脾气”
ADMET 数据跟常规的生物信息学数据不太一样。你想想看,它既有体外干巴巴的实验数值,又有体内复杂的生理反馈。它的“怪脾气”主要体现在这几个方面:
- 高噪声且不完整: 不同实验室、不同批次的检测结果可能差好几倍。缺失值也是家常便饭。
- 多源异构: IC50 是一个数,Caco-2 渗透率是一个数,临床副作用是文本描述。怎么把这些不同类型的数字捏在一起,很伤脑筋。
- 非线性关系明显: 不是 LogP 越高吸收就越好。往往存在一个“窗口效应”,过高或过低都不行。
避坑指南: 我曾经接手过一批公开数据,其中 LogP 值的分布出现了两个明显的峰。后来一查,发现是数据来自两个不同的实验平台,一个用摇瓶法,一个用 HPLC 法。这就是典型的批次效应,如果不做校正,模型学出来的全是实验方法的差异,而不是真正的分子性质差异。
3.3 批次效应是怎么暗中捣乱的
刚才提到多源异构,批次效应就喜欢在这种混乱中钻空子。它本质上是一种 技术变异,而不是生物学变异。
举个例子,同样的化合物,在 A 实验室测的清除率是 5 mL/min/kg,在 B 实验室可能是 15 mL/min/kg。这种差异不是化合物变了,而是实验条件变了。
我通常会在拿到数据后,先用 PCA 或 t-SNE 对特征做一下聚类,看看样本是不是按实验批次聚在一起。如果是,那就说明批次效应很严重,必须处理。
3.4 一张图讲透关键参数与批次效应
下面这张图,是我自己梳理的 ADMET 关键参数与批次效应影响路径。你可以把它当做本章的一个小地图,搞清楚数据是怎么一步步“变质”的:
你从这张图可以看到,批次效应就像是一颗“暗雷”,埋在数据集成那一层。它不直接改变化合物的结构,而是把那几个核心参数的值 整体抬升或压低。模型如果只学表面数字,就学不到真正的规律。
3.5 怎么尽早发现批次效应
既然数据这么复杂,怎么判断手头的数据集有没有被污染?我通常会在数据清洗阶段,做几个简单的“体检”:
- 分布对比: 把不同来源的同一个参数(比如 LogP)画直方图。如果分布形态差异很大,一定有猫腻。
- 相关性热图: 如果同批样本之间的相关性普遍高于跨批样本,说明批次标签在数据里占了主导。
- 构建简单分类器: 试试能不能用模型(比如 LightGBM)直接根据特征预测出样本来自哪个批次。如果预测精度很高(比如 AUC > 0.9),那说明批次效应非常严重,不修正的话后面做的所有分析基本都得打问号。
一个提升模型稳健性的小技巧: 我个人习惯在训练集里显式地将 Batch_ID 作为一个特征丢进去,或者用 Leave-One-Batch-Out 的交叉验证方式。这么做能帮你直观感受模型到底能不能抗住批次的变化。
3.6 关于数据标准化的警告
有时候我们会在数据预处理阶段,用 StandardScaler 或 MinMaxScaler 对参数进行标准化。这里有个很多人会踩的坑:
- 错误做法: 对所有批次的同一个参数,用一个统一的均值和方差去做标准化。这样批次之间的偏移依然存在,只是被压缩了,并没有消除。
- 正确思路: 如果检测到批次效应,需要先进行校正(比如使用 ComBat 或基于回归的方法),让数据分布对齐之后,再做下游建模。
记住一句话:批次效应是所有 ADMET 建模里必须优先解决的“房间里的大象”。你可以有最酷的模型结构,但如果喂进去的数据是脏的,结果一定是一团乱麻。