想象一座城市。每位到访的游客无论多受欢迎,最终都要离开——有人坐高铁去机场,有人被垃圾清运车带走,还有人从城郊小路悄悄溜走。药物在人体里的命运,就像这群游客:肝脏先给陌生面孔“登记改造”(代谢),排泄系统再把改造后的产物送出城外。预测药物何时离开、从哪扇门离开,就是排泄预测。让一位阅人无数的“水务总工程师”——AI 模型——只看一眼游客的身份证(分子结构),就报出“他大概会待 3 小时,走肾脏那条路”,这正是现代 AI 制药里激动人心的一幕。今天我们就用这座城市的视角,把排泄预测从原理、模型到产业价值完整走一遍。
对 AI 从业者:排泄预测是 ADMET 全链路中决定“药能否成药”的关键关卡,掌握从数据、建模到验证的完整打法,是你切入 AI 制药赛道最值钱的能力之一。
可视化演示
展示药物排泄途径(肾/胆汁)、PK建模(过滤-分泌-重吸收)、清除率预测和给药频率设计,含流动波形背景和发光动画。
本节配有交互动效(进入视口后自动加载,约 3KB)。
排泄途径概览
游客要离开一座城市,很少只走同一个出口。赶飞机的走机场高速,行李超重的坐货运专线,徒步爱好者则可能从城郊小路绕出去。药物离开人体也一样“条条大路通罗马”:最主要的出口是肾脏这条机场高速,其次是胆汁这条货运专线,还有汗液、呼气等小路。
药代动力学把所有去路统称排泄途径。水溶性药物及其代谢产物主要走肾排泄;分子量大、脂溶性高的药物往往在肝脏代谢后经胆汁进入肠道排出;少数药物会从汗液、呼气甚至乳汁中悄悄离开,虽然占比小,对哺乳期用药却很重要。
每条途径的通行能力叫“途径清除率”,把所有途径相加就得到总清除率 \( CL_{\text{total}} \)。它是描述药物“离城速度”的第一个核心数字,也是后续半衰期计算与给药频率设计的出发点。AI 排泄预测的首要任务,正是把这三段流量估准。
就像水务局先摸清所有出口的容量再规划预案,ADMET 科学家也先把“每条路走多少”量化清楚,才能决定这颗候选分子值不值得继续投入。
- 肾清除率肾脏这条路排除药物的能力,单位时间内有多少体积血浆被完全洗得干干净净。
- 胆汁清除率胆汁这条货运专线的清运能力,主要服务大分子和肝脏代谢产物。
- 其他清除率汗液、呼气、乳汁等小路的份额,大多数药物在这里占比很小。
- 总清除率把三条路相加,得到药物整体从体内消失的总速度,是后续一切计算的地基。
肾脏三过程
机场高速(肾排泄)并不是一条直路,进站要过三道闸。净水厂里进水格栅挡杂物、排污泵主动排渣、回收滤网捞回可用物质,药物在肾脏里的命运,由类似的三道工序接力决定。
第一道是肾小球过滤。血液流经肾小球时,分子量小、蛋白结合率低的药物被滤压“挤”进原尿,这是被动过程。第二道是肾小管分泌,有机阴离子和阳离子转运蛋白像主动泵,把特定药物从血液“泵”进肾小管。第三道是肾小管重吸收,脂溶性好、非离子化的药物又能穿回血液。
最终从尿里排出多少,是三个过程叠加的结果:过滤和分泌是往外推,重吸收是往回捞。有些药过滤量很大,却因为几乎 100% 被重吸收而排泄缓慢——只看第一步会得出完全错误的结论。
三道闸各自的开度,正是 AI 建模最想预测的中间量,因为它们决定了“净流出”这个最终答案。
- 肾小球过滤速率血液经肾小球时,小分子药物被血压压进原尿的速度,相当于格栅放行量。
- 肾小管分泌速率转运蛋白消耗能量,把药物从血液主动泵入肾小管的速度,相当于排污泵流量。
- 重吸收速率药物从肾小管穿回血液的速度,是回收系统往体内捞回的那部分。
- 净排泄速率过滤和分泌是正贡献,重吸收是负贡献,三者叠加才是最终从尿液排出的速度。
药代动力学基础
给游客发一张“离境追踪卡”,每小时统计一次城里还剩多少人,把数字画出来,就得到一条越走越缓的指数下降曲线。这就是药代动力学里最常用的一室模型。
一室模型假设药物进入血液后立刻全身混匀,随后以固定比例离开。这个比例叫消除速率常数 \( k_e \)。清除率 \( CL \) 与表现分布容积 \( V_d \) 的比值正是 \( k_e \):排水管道越粗、蓄水池越浅,水位下降就越快。
半衰期 \( t_{1/2} \) 指浓度降到一半所需时间,与 \( k_e \) 成反比。它不依赖给药剂量的绝对值,是医生定给药间隔的首选参数。AI 预测半衰期,本质上是预测这条指数曲线的斜率。
有了半衰期,医生才能回答“一天吃几次”;这条曲线的一端连着排泄预测,另一端就连着药方。
- 半衰期的含义药物浓度从给药后降到初始一半所花费的时间,是衡量离城速度的最直观指标。
- 常数 0.693这是自然对数 \( \ln 2 \) 的数值,指数衰减中浓度正好降一半对应的天然比例。
- 消除速率常数描述药物每秒消失的比例,数值越大曲线越陡,半衰期自然越短。
- 代入清除率表达把 \( k_e = CL / V_d \) 代入,得到用清除率和分布容积直接计算的实用版本。
AI特征与数据
总工程师凭什么一眼预判游客去留?因为他翻过成千上万份档案:身高、体重、饮食习惯、签证类型,全部登记在册。AI 眼里的档案,就是分子的结构描述符。
分子描述符包括分子量、脂水分配系数 \( \log P \)、氢键供体/受体数、极性表面积等,它们决定了药物与转运蛋白、肾小管膜的相互作用强度。训练数据来自已发表的动物与人清除率实验,这类数据散落在文献和公共数据库里,需要清洗成统一格式。
清除率数值能跨越三个数量级,直接回归会让大样本的极端值主导损失,所以通常把标签取对数;特征之间量纲不同,还要做标准化。这两步相当于把所有档案装订成同一版式的表格,模型才读得懂。
档案整理得越像样,总工程师的直觉就越准。数据质量决定了 AI 预测的天花板,后面所有模型都只是逼近这个天花板。
- 原始特征值某个分子的原始描述符数值,比如它的 \( \log P = 3.5 \)。
- 均值中心化减去该特征在所有样本上的均值,把整个分布的圆心挪到原点。
- 按标准差缩放除以标准差,消掉量纲差异,让分子量和 \( \log P \) 不再以大欺小。
- 标准化特征最终得到无单位的“标准分数”,描述该样本相对整体分布的位置高低。
预测模型构建
档案读多了,总工程师脑中自然长出“经验法则”:看到某类签证号段,立刻浮现对应的离城时间。机器学习不是手写规则,而是让算法在数据里自己长出规则。
排泄预测最常用的算法是随机森林和梯度提升树这类集成模型,它们像召集一群见习工程师投票,比任何一个人的单独判断都稳;当任务与分子拓扑强相关时,还会用图神经网络把原子当节点、化学键当连线,直接学习分子图。
输出可以有两种形态:回归给出清除率或半衰期的数值,分类给出“胆汁排泄高/低”的标签。集成模型将 \( M \) 棵树的预测做平均,单棵树的过拟合被相互抵消,这正是它擅长对付稀疏 ADMET 数据的原因。
一群见习工程师投票,常常胜过一位固执的名师——集成学习的朴素智慧,在排泄预测里体现得淋漓尽致。
- 单棵树预测随机森林里第 \( m \) 棵回归树,对同一个特征向量给出自己的预测。
- 收集全部意见从第 1 棵加到第 \( M \) 棵,把森林里所有树木的判断汇总。
- 取平均除以树的棵数,单棵树的随机波动被摊平,方差显著下降。
- 集成预测值最终输出的清除率对数或半衰期预测值,比任何单棵树都稳健。
模型验证评估
总工程师的预测手册不能直接上岗,得先闭卷考试:在从未见过的历史案卷上盲测,分数合格才配谈实战。
最常见的考法是 K 折交叉验证:把数据切成 K 份,轮流留一份当考题、其余当教材。更严苛的是外部测试集——用时间上更新、或化学结构上真正“没见过”的数据考试,防止模型靠背答案拿高分。
回归任务看两个分数:\( R^2 \) 衡量模型解释了多大幅度的真实波动,RMSE 给出预测误差的日常尺度。还要注意适用域(Applicability Domain),模型只在训练数据覆盖的化学空间里“有把握”,出了这个圈子,再高的 \( R^2 \) 也救不了现场。
考试分数高不代表上场必胜,但至少把“拍脑袋”变成了“有据可依”,这正是 AI 方法对传统经验的最大改进。
- 真实值与预测值\( y_i \) 是实验测得的清除率对数,\( \hat{y}_i \) 是模型给出的预测。
- 残差平方和把每个样本预测与真实的偏差平方后累加,代表模型犯错的总体量。
- 总平方和真实值围绕均值 \( \bar{y} \) 波动的总和,代表“一律猜均值”这个笨办法的基准误差。
- 决定系数用 1 减去误差占比,越接近 1 说明模型解释的波动越多,0 相当于原地踏步。
不确定性分析
再资深的总工程师,拿到一份从未见过的小众签证也会皱眉:“我没把握,得留安全余量。”AI 预测同样必须回答:这次估算到底有多可信?
排泄数据天生稀疏:某些化学结构类型的实验样本极少,模型在这些区域容易“飘”;实验标签本身带噪声;从动物外推到人还叠加物种差异。三个来源叠加,让点估计变得危险。
解决办法是给预测配一根“误差拐杖”:用集成模型各棵树预测值的标准差估出波动幅度,给出“预测值 ± 区间”;再做敏感性分析,找出哪个描述符在主导预测。决策时用区间代替点值,可以避免“看似精准、实则离谱”的坑。
“大概八成把握”不是谦辞,而是科学决策的起点。在一款药的安全与疗效面前,承认不确定性与给出预测同等珍贵。
- 点预测值模型对清除率对数的中心估计,是所有树的平均意见。
- 预测标准差各棵树预测值的离散程度,波动越大说明这群工程师分歧越严重。
- 置信系数对应置信水平的 \( z \) 值,95% 置信水平下约等于 1.96。
- 置信区间中心估计上下浮动一个安全边界,告诉决策者真值大概落在哪个范围。
给药与产业应用
知道了游客平均停留时长,城市就能安排补给节奏:走得快的街区勤补货,走得慢的少补货。吃药这件事也一样,给药间隔要跟着半衰期走。
维持剂量公式把排泄能力、目标稳态浓度 \( C_{ss} \) 和给药间隔 \( \tau \) 串在一起。排泄快的药半衰期短,若按 24 小时给药一次,血药浓度会在两次服药之间跌出治疗窗,所以得缩短间隔或改用缓释剂型。
产业视角下,AI 排泄预测的威力在“早”。候选分子还在图纸上,模型就能预告它的清除率与半衰期,帮助团队淘汰“走得实在太快”或“赖着不走”的分子,把资源集中在可开发性强的候选上,从根上降低临床阶段失败率。
从城市水务到给药方案,排泄预测的终点不是一张漂亮的曲线图,而是把“什么时候吃、吃多少”变成一门可计算、可验证的科学。
- 维持剂量每个给药周期需要补充的单次药量,让浓度既不掉出治疗窗也不蓄积中毒。
- 清除率代表城市排水的吞吐能力,CL 越大,单位时间被清理掉的药物越多。
- 稳态浓度目标希望长期维持的血药浓度参考值,通常取治疗窗中部的安全水平。
- 给药间隔τ 是两次服药的时间间隔,排泄越快、半衰期越短,τ 就得压得越紧。
AI 应用场景
创新药早期候选分子筛选
阶段:药物发现(先导化合物优化)
解决的问题:传统上要逐一合成类似物做动物 PK 实验测排泄参数,单个化合物成本高、周期长、失败率高。AI 排泄预测模型基于分子结构秒级给出肾清除率与半衰期的估计,把“先做实验再看”变成“先筛后做”,大幅压缩进入实验的候选数量。
具体案例:某药企对 50 个 PDE 抑制剂类似物做排泄预测,模型提示 12 个分子半衰期不足 1 小时、难以维持药效,直接淘汰;剩余分子进动物实验后,DMPK 通过率从约 20% 提升到 45%。
肾功能不全人群的给药调整
阶段:临床药理与个体化用药
解决的问题:肾功能不全患者肾清除率下降,按常规剂量给药会蓄积中毒。传统做法依赖人群 PK 大样本,难以覆盖特殊人群;模型可结合肌酐清除率与药物肾排泄比例,推算个体化的给药间隔。
具体案例:某抗生素说明书中“eGFR 低于 30 时延长给药间隔至每 48 小时一次”的建议,正是基于排泄预测与 PK 模型制定的剂量表。
新药申报的 DMPK 资料支持
阶段:监管申报与注册
解决的问题:申报材料需要写明药物的排泄途径、清除率与半衰期。AI 预测可作为先验参考,指导放射标记实验和胆汁排泄实验的设计,缩短 DMPK 报告周期。
具体案例:某创新药 IND 申报中,团队用预测的胆汁排泄比例设计动物胆管插管实验的时间点,一次实验便拿到了清晰的排泄平衡数据。
Python 演示
import numpy as npfrom math import log, expfrom sklearn.ensemble import RandomForestRegressorfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import r2_score rng = np.random.default_rng(42) # 模拟 200 个候选分子的结构描述符: 分子量 MW, 脂水分配系数 logP, 氢键供体数 HBDn = 200MW = rng.uniform(150, 700, n)logP = rng.uniform(-2.0, 6.0, n)HBD = rng.integers(0, 6, n)X = np.column_stack([MW, logP, HBD]) # 生成真实肾清除率 (mL/min/kg): 分子量越小, logP 越低, 清除率越高CL_true = 20.0 / (1.0 + np.exp((MW - 400) / 80.0)) + 1.5 * np.maximum(0.0, 1.0 - logP) + 0.3 * HBDy = np.log(CL_true + rng.normal(0, 0.4, n)) # 取对数作为预测目标, 降低量纲差异 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=7) model = RandomForestRegressor(n_estimators=120, max_depth=8, random_state=7)model.fit(X_train, y_train) y_pred = model.predict(X_test)print("R2:", round(r2_score(y_test, y_pred), 3)) VD = 0.6 # 假设表现分布容积 L/kg def predict_halflife(mw, lp, hbd): """输入分子描述符, 返回预测的半衰期 (小时) 和清除率 (mL/min/kg)""" cl = float(exp(model.predict([[mw, lp, hbd]])[0])) # 指数还原清除率 cl_lh = cl * 60.0 / 1000.0 # mL/min/kg -> L/h/kg t_half = 0.693 * VD / cl_lh return cl, t_half for mw, lp, hbd in [(180, 0.5, 2), (450, 3.5, 1), (620, 5.0, 4)]: cl, th = predict_halflife(mw, lp, hbd) print("MW=%d logP=%.1f HBD=%d -> CL=%.1f mL/min/kg, t1/2=%.2f h" % (mw, lp, hbd, cl, th))
X = np.column_stack([MW, logP, HBD])把分子量、logP、氢键供体数拼成特征矩阵,相当于给每位“游客”建档案。y = np.log(CL_true + rng.normal(0, 0.4, n))清除率跨数量级,取对数后回归目标更平稳,叠加噪声模拟实验误差。X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=7)留出 20% 数据当“闭卷考试”,防止模型记住答案。model = RandomForestRegressor(n_estimators=120, max_depth=8, random_state=7)120 棵回归树投票平均,单树波动被摊平。y_pred = model.predict(X_test)在测试集上给出预测,与真实值对比算出考试分数。cl = float(exp(model.predict([[mw, lp, hbd]])[0]))模型输出的是 log 清除率,指数还原成 mL/min/kg 单位。t_half = 0.693 * VD / cl_lh用文章里的半衰期公式把清除率换算成“离城时间”。
常见误区
误区药物排得越干净越安全,清除率越大说明这药越优秀,应该优先选它。
正解排泄是把双刃剑。清除率过高,药效还没起作用就被排出体外,患者得一天吃好几次才能维持药效,依从性大受影响;清除率过低则会蓄积中毒。理想药物不是“排得快”,而是半衰期与给药方案刚好匹配,像城市补给节奏要配合游客流速一样。
为何常见:“排干净 = 安全”符合日常直觉,但忽略了吃药的目标是维持有效浓度,而不是把自己“排干净”。
误区肾小球过滤是肾排泄的第一步,所以过滤量大的药物,尿排泄速度一定快。
正解肾排泄由过滤、分泌、重吸收三股力量叠加。如果某种药物的重吸收率接近 100%,即使过滤量很大,净排泄依然可能很低。只看过滤量这一关,就像只看净水厂的进水口而忽略回收滤网,结论会完全相反。
为何常见:过滤是肾排泄流程里第一个被讲到的环节,初学者很容易把它当成全过程的代言人。
误区模型在测试集上 R² 达到 0.9,说明它非常厉害,随便给它一个全新结构的分子都能信。
正解R² 只描述训练数据分布内的平均表现。当新分子落在训练数据从未覆盖的化学空间(适用域之外)时,预测照样会翻车。必须结合外部测试集表现和适用域判断,就像总工程师对没见过的小众签证也不敢打包票。
为何常见:指标好看容易给人安全感,人们常常忘记统计指标的适用范围有时比数值本身更重要。
误区AI 模型算得又快又便宜,以后动物实验和临床实验都可以取消,全部交给模型拍板。
正解排泄数据天生稀疏、标签带噪声,模型在不熟悉的化学区域并不可靠。AI 的真正价值是快速缩小候选范围、优化实验设计,减少无效实验的次数,但最终裁决仍然需要实验数据验证,这也是监管申报的硬性要求。
为何常见:媒体常把 AI 能力渲染得无所不能,让人误以为算力可以跳过实证科学的基本流程。
面试题
Q1. 药物最主要的排泄途径是哪一条?
- A.肾脏排泄← 正确答案
- B.皮肤排泄
- C.呼气排泄
- D.唾液排泄
答案:A。水溶性药物及其代谢产物主要通过肾脏随尿液排出,这与城市里大多数人走机场高速一个道理。皮肤、呼气等途径占比很小,通常只对特定药物有意义。
Q2. 肾脏排泄中,属于“主动泵出”过程的是哪一个?
- A.肾小球过滤
- B.肾小管分泌← 正确答案
- C.肾小管重吸收
- D.肾血浆流量
答案:B。肾小管分泌依靠转运蛋白消耗能量,把药物从血液主动泵进肾小管,类似净水厂的排污泵;过滤是被动“挤”过去,重吸收是往回捞,血浆流量只是供血条件。
Q3. 某药清除率 CL=5 L/h,表现分布容积 Vd=50 L,其消除半衰期约为多少?
- A.3.5 h
- B.6.9 h← 正确答案
- C.10 h
- D.20 h
答案:B。ke = CL / Vd = 0.1 /h,t1/2 = 0.693 / ke ≈ 6.9 h。就像城市排水能力固定时,水池越大水放完越慢:分布容积大或清除率低都会延长半衰期。
Q4. 哪种性质的药物更容易被肾小管重吸收?
- A.分子量小且亲水性强
- B.脂溶性较高且易透膜← 正确答案
- C.强酸性且带正电荷
- D.蛋白结合率非常高
答案:B。肾小管细胞膜是脂质双分子层,脂溶性高、非离子化的药物容易穿膜被重新吸收回血液,相当于回收站更青睐“好入口”的分子;带电荷、亲水的分子难以穿膜,反而排泄更快。
Q5. 建模时为什么常把清除率取对数作为预测目标?
- A.数据更接近正态分布← 正确答案
- B.分子量变得更规整
- C.减少特征数量维度
- D.省去模型训练环节
答案:A。清除率跨几个数量级,直接回归会被大数值主导且残差分布偏斜;取对数后数据分布更对称、接近正态,回归目标更平稳,模型学起来更容易。
Q6. 对排泄预测模型进行验证时,常用手段包括哪些?
- A.交叉验证法评估← 正确答案
- B.外部测试集评估← 正确答案
- C.回归指标检验← 正确答案
- D.直接上市验证
答案:ABC。交叉验证和外部测试集都是“闭卷考试”,回归指标(R²、RMSE)是考试分数;直接上市验证违背研发流程,模型必须先经过验证并满足监管要求才能用于决策支持。
Q7. 关于模型适用域(Applicability Domain)的说法,正确的是?
- A.任何化学结构都精确可测
- B.训练数据覆盖范围才可靠← 正确答案
- C.模型参数越多越可信
- D.适用域与数据完全无关
答案:B。适用域指训练数据覆盖的化学空间,模型只在“见过”的区域可靠;参数多少与可信度无关,任何结构都精确可测是不切实际的幻想。超出适用域的预测必须标注不确定性。
Q8. 排泄预测的不确定性来源包括哪些?
- A.训练数据稀疏← 正确答案
- B.实验标签噪声← 正确答案
- C.物种外推差异← 正确答案
- D.分子式写法差异
答案:ABC。某些化学区域实验样本稀缺、实测值本身有噪声、从动物到人的外推都存在误差;分子式写法只是记录方式,不影响药物性质,不是不确定性来源。
Q9. 设计给药间隔时,最关键的药代参数组合是?
- A.半衰期与治疗窗口← 正确答案
- B.药品的颜色外观
- C.药片的形状大小
- D.生产批号与批次
答案:A。半衰期决定药物衰减速度,治疗窗决定浓度上下限;给药间隔要保证浓度在治疗窗内震荡。颜色、形状、批号只影响制剂外观与追溯,与给药方案无关。
Q10. AI 排泄预测在制药产业中的价值体现在哪些方面?
- A.早期筛选候选分子← 正确答案
- B.支持给药方案设计← 正确答案
- C.降低临床失败成本← 正确答案
- D.替代全部动物实验
答案:ABC。早期筛选出可开发性强的分子、支持给药间隔设计、减少后期临床失败,都是实打实的降本增效;但 AI 仍需实验验证,无法替代全部动物与临床试验。