1. 课程介绍:批次效应与ADMET概述
大家好,我是你们这门课的老伙计。
先跟大家说说心里话。我记得刚开始做ADMET预测那会儿,啥也不懂,觉得把数据丢进模型,跑个分数出来就完事了。结果呢?被项目坑了好几次。有一次,一个化合物体外实验数据明明很好,换了批次再测,结果完全对不上。当时我盯着两份报告,差点以为实验室换了批试剂。嗯,后来我才明白,这背后其实就是我们今天要聊的主角——批次效应。
1.1 ADMET到底是什么?
先解决第一个问题:ADMET这四个字母代表什么?说白了,它们是药物研发里几个最让人头疼的关卡。
| 缩写 | 全称 | 通俗解释 |
|---|---|---|
| A | 吸收 | 药吃进去,能不能进到血液里 |
| D | 分布 | 药到了血液,能不能跑到目标组织 |
| M | 代谢 | 身体会把药分解成什么?会不会有毒 |
| E | 排泄 | 药跟它的代谢物,怎么排出去 |
| T | 毒性 | 这药会不会伤肝、伤肾、伤心脏 |
你可能觉得,这几个词听起来就是教科书上的概念。但我告诉你,在实际项目里,它们是一环扣一环的。你想想看,一个化合物吸收很好,但代谢太快,血药浓度上不去,照样白搭。
1.2 批次效应是怎么溜进来的?
好了,那我们得搞清楚,这个叫“批次效应”的坏蛋,到底是怎么混进ADMET数据里的。
我个人习惯把批次效应叫做“实验里的幽灵”。你看不见它,但它无处不在。它产生的原因其实挺多的,我归纳了几条最常见的:
- 试剂批次不同:同一个厂家,不同批次的血清、缓冲液,活性可能差10%以上。我在项目中遇到过,就因为这个,一组IC50数据整体漂移了半个数量级。
- 仪器校准偏差:两台质谱仪,或者同一台仪器在周一和周五的校准状态不一样。数据就会出现系统性误差。
- 操作者差异:实验室A的师兄和实验室B的师妹,加样手法肯定不一样。这也会形成批次效应。
- 环境因素:温度、湿度,甚至哪天做实验的人心情好不好,都可能影响数据。
避坑指南:我曾经在一次跨实验室合作中,发现两个实验室对同一个化合物库的Caco-2渗透性数据,相关系数竟然只有0.3。当时大家互相怀疑对方的实验水平。后来仔细排查,发现只是两个实验室用的转运培养基批次不同。你看,就这么一点差异,差点让一个合作项目黄了。
1.3 为什么做ADMET研究,要特别在意批次效应?
讲到这儿,可能有人会问:那我做分子对接、做MD模拟,有批次效应吗?老实说,计算模拟这块没有实验批次的问题。但是——一旦涉及实验数据建模、QSAR模型训练,批次效应就是个绕不开的坎。
我举个例子。假如你要训练一个预测肝毒性的模型。训练数据来自5个不同的实验室,每个实验室提供了200个化合物的数据。你直接把5个实验室的数据堆在一起,放到模型里训练。你猜会发生什么?
模型很可能学到的不是“什么结构会导致肝毒性”,而是“实验室A的数据长什么样,实验室B的数据长什么样”。这就是典型的批次效应干扰建模。你用这样的模型去预测新化合物,结果绝对靠不住。
更现实的情况是,很多公开数据库,比如ChEMBL、PubChem,都是汇集了全世界不同机构的数据。这些数据里,批次效应简直就是家常便饭。
重点:批次效应如果不处理,会直接拉低模型的泛化能力。说白了,就是你模型在训练集上表现很好,一换到新数据上就崩盘。
1.4 批次效应长什么样?怎么发现它?
那我们怎么知道数据里有没有批次效应呢?总得有个检查的办法吧?
我个人比较常用的方法,是画“主成分分析图”或者“t-SNE图”。你想想看,如果数据没有批次效应,那么不同批次的样本应该像盐撒进水里一样,均匀混合在一起。如果出现明显的聚类——比如第一批次的数据全聚在左边,第二批次的全聚在右边,那八成就有问题了。
# R语言示例:快速检查批次效应
# 假设你的数据框叫 admet_data
# 其中列 Batch 标记了样本来自哪个批次
# 对数据进行PCA
pca_result <- prcomp(admet_data[, -c(1,2)], scale. = TRUE)
# 绘制PCA图,按批次着色
plot(pca_result$x, col = admet_data$Batch, pch = 19)
legend("topright", legend=unique(admet_data$Batch), col=1:length(unique(admet_data$Batch)), pch=19)
有时候,批次效应也会直接体现在数值分布上。比如,我们可以比较不同批次下同一个ADMET指标的均值、中位数或者四分位间距。
提示:我自己有个习惯,拿到新数据集,第一个动作就是检查批次效应。哪怕数据是公开的,也绝不默认它没有问题。你信我,这个习惯能帮你省掉后面一大堆麻烦。
1.5 我们这门课要讲什么?
好了,到了这一步,你应该能明白我们这门课是干什么的了。它不是给你讲ADMET的基础知识——那些教科书上都有。我们这门课,聚焦的就是一件事:怎么在ADMET数据处理和建模中,识别、量化和消除批次效应。
接下来的章节,我们会一步步深入。从数据预处理开始,讨论各种检测批次效应的统计方法;然后讲经典的批次校正算法,比如ComBat、limma;再深入到深度学习中的批次效应处理技巧;最后结合几个实际的药物研发案例,把整套流程串起来。
你想想看,把这些东西吃透了,以后不管是从公开数据库捞数据,还是处理自己实验室的数据,心里都会更有底。
本章小结:
- ADMET 是药物研发的五道关卡,每一关的数据都可能被批次效应污染。
- 批次效应 来源于试剂、仪器、操作者、环境等多方面,是个系统性偏差。
- 后果 是模型学坏特征,泛化能力大打折扣。
- 路 是检测、校正、验证,三管齐下。
好,这一章我们就聊到这儿。后面的内容会更具体、更硬核。你准备好了吗?