想象你拿到一张小区门禁卡,设计目标是这张卡只能打开自家书房门,却打不开同户型的邻居家门。可偏偏开发商偷懒,整层楼用的锁芯几乎一模一样。这就是药物设计里的选择性难题:激酶靶点在 ATP 结合口袋处高度同源,许多小分子抑制剂像万能钥匙,一捅就开很多扇门,临床副作用随之而来。选择性设计要做两件事:先量化“能开多少门”,再通过反筛把所有门试一遍;而 AI 模型则像门禁系统模拟器,从分子结构直接预测它会在整栋楼的哪些门上生效。本文用“专属门禁卡”这把钥匙,梳理由选择性指标、反筛策略到 AI 多任务预测模型,再到 JAK 激酶抑制剂设计案例的完整链路。

岗位关联

掌握选择性设计,意味着你能在创新药研发中直接提升候选分子的安全上限,让 AI 制药团队从“找出有效分子”升级为“找对专一分子”。

目录
  1. 可视化演示
  2. 选择性定义
  3. 选择性指标
  4. 反筛策略
  5. AI预测模型
  6. 数据与训练
  7. 设计案例
  8. 产业价值
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

演示选择性指标SI计算、多任务学习选择性预测、以及AI驱动优化迭代流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

选择性指标 目标靶点高活性 旁系靶点低活性 SI=IC50旁/IC50目 比值越大越优

选择性定义

设计药物很像做一张只在自家书房生效的门禁卡。问题是开发商把整层楼的门锁都做成同一品牌,钥匙齿形稍有相似,就可能刷开邻居家的门。激酶抑制剂正是如此:目标激酶与同家族的旁系激酶,在 ATP 结合口袋上的氨基酸很接近,小分子只要牢牢握住这个口袋,便很容易同时握住一大把相似的锁。

在药物化学里,这种性质被称为选择性。一个选择性好的分子,应当以极低浓度抑制目标靶点,却要在高浓度下才对旁系蛋白产生明显抑制。所谓旁系蛋白,就是与靶点进化关系最近、活性位点最像的那批蛋白。

科学家用 IC50 描述抑制能力。IC50 是抑制 50% 酶活性所需浓度,数值越小说明分子与靶点结合得越强。为了把目标和旁系放在同一把尺上比较,算法上定义选择性指数 SI,它就是旁系 IC50 与目标 IC50 的比值:

回到门禁卡:SI 就是这张卡对自家门和邻居门的敏感度差。差得越大,越不用担心误闯邻居家;差得很小,即使目标活性再漂亮,医生也不敢轻易给病人用。

SI=IC50offIC50on\displaystyle \mathrm{SI} = \frac{\mathrm{IC}_{50}^{\mathrm{off}}}{\mathrm{IC}_{50}^{\mathrm{on}}}
这个公式把“目标活性”和“旁系活性”放在一个除法里:分子越大,说明旁系越难被抑制,门禁卡越专一。
  1. 看分母IC₅₀(目标) 是抑制目标激酶一半所需浓度,分母越小,说明钥匙对自家门越灵敏。
    IC50on\mathrm{IC}_{50}^{\mathrm{on}}
  2. 看分子IC₅₀(旁系) 是抑制旁系激酶一半所需浓度,分子越大,说明邻居门越难被打开。
    IC50off\mathrm{IC}_{50}^{\mathrm{off}}
  3. 做除法两个浓度相除,SI 越高,代表“目标活性强、旁系活性弱”的专一优势越明显。
    IC50offIC50on\frac{\mathrm{IC}_{50}^{\mathrm{off}}}{\mathrm{IC}_{50}^{\mathrm{on}}}

选择性指标

只看一家邻居还不够。小区里可能有几十户同款门,一张卡到底能在多少扇门上刷开,才是物业验收时真正关心的。药物发现里,我们同样需要给整栋激酶楼打一个可比较的分数。

最常用的方法是激酶谱筛选。把候选分子放在包含几十到几百个激酶的活性面板上,在固定浓度下测定每个激酶的剩余活性。若某个激酶的剩余活性低于 10%,相当于被强抑制了 90% 以上,就记作一个 hit。

将所有 hit 数除以受试激酶总数,得到覆盖率 Coverage,也叫 hit 率。覆盖率越低,说明能刷开的门越少,选择性越高。业界常写成 S(10)、S(1) 这类选择性评分,含义一致,都是数值越小越专一:

评价一个候选物不能只看它对目标多强,还要看它在全谱上的覆盖率。门禁卡再精致,若在 100 扇门里刷开了 80 扇,物业绝对不敢放行。

COV=NhitNtested×100%\displaystyle \mathrm{COV} = \frac{N_{\mathrm{hit}}}{N_{\mathrm{tested}}} \times 100\%
这个覆盖率不是看目标抑制多强,而是看分子在旁系面板上有多“博爱”。覆盖率越低,反筛成绩越漂亮。
  1. 数命中N_hit 表示旁系激酶谱里被强抑制的激酶个数,相当于钥匙意外刷开的门数。
    NhitN_{\mathrm{hit}}
  2. 看总数N_tested 是面板中检测过的激酶总数,相当于整栋楼被抽查的门数。
    NtestedN_{\mathrm{tested}}
  3. 换百分比两者相除再乘 100%,得到覆盖率;覆盖率越低,脱靶风险越可控。
    NhitNtested×100%\frac{N_{\mathrm{hit}}}{N_{\mathrm{tested}}} \times 100\%

反筛策略

既然担心误开邻居门,最直接的做法就是拿着一串刚打磨的钥匙,挨家挨户试一遍。这个过程听起来笨,却是药物安全最朴素的防线。所谓反筛,正是相对主筛而言的“反向筛选”。

传统筛选流程以目标靶点为主筛,先找出能抑制目标激酶的分子;接下来用反筛把同一批分子放到旁系激酶面板上,看它们是不是“博爱”。反筛不是只测一两个蛋白,而是测一整组与靶点最相关的激酶,比如 JAK 家族内的四个亚型。

高质量的反筛要设计剂量矩阵:每个激酶至少在多个浓度下测试,这样能拟合出每个旁系激酶的 IC50,而不只是观察一个固定浓度的抑制百分比。得到的多靶点活性谱就像一串数字指纹,后续 AI 建模正需要这种标签。

反筛的代价不低,却很值。它提前告诉我们钥匙会误开哪几扇门,也告诉我们哪些结构修改能让旁系门锁“认出”钥匙不对。这为后面的 AI 模拟器提供了真实世界的标准答案。

AI预测模型

如果每打磨一把钥匙都要先把 400 扇门试一遍,成本太高。AI 的价值是在钥匙还没做出来时,先根据设计图预测它能刷开哪几扇门——这就是门禁系统模拟器。

具体实现上,分子先被编码成机器能读懂的表征:指纹把化学结构变成 0/1 向量,图网络把原子和键画成关系图。这个表征进入多任务学习模型,同一份分子表征被多个预测头共用,每个头负责一个激酶的活性预测。

多任务学习的好处在于:不同激酶的任务会迫使模型学习通用的结构-活性规律,同时每个任务头又能捕捉各自口袋的细微差异。如果训练数据足够,模型几乎可以同时输出目标激酶和几十个旁系激酶的抑制概率:

训练完成后,模拟器从分子设计图到整栋楼的门锁反应只花几毫秒。它不能替代真实反筛,但能把真正值得制作的候选钥匙从一万把缩小到几十把。

L=∑k=1Kwk(y^k−yk)2\displaystyle \mathcal{L} = \sum_{k=1}^{K} w_k \left( \hat{y}_k - y_k \right)^2
这是多任务模型的回归损失:每个激酶任务的预测误差被加权求和,模型要同时把整栋楼的门锁反应都尽量预测准。
  1. 数任务K 是激酶数量,也就是模拟器要预测的门数。
    KK
  2. 看差异ŷ_k 是模型预测第 k 个激酶的活性,y_k 是实验测到的真实活性,两者相减就是误差。
    y^k−yk\hat{y}_k - y_k
  3. 加权求和w_k 表示每个任务的重要程度,把所有任务的平方误差加权相加,得到总损失。
    L\mathcal{L}

数据与训练

模拟器不是天生会认门。它需要看过大量钥匙与门锁的配对记录,才知道什么样的齿形会误开隔壁。数据太少,它就会瞎猜。

公开数据库如 ChEMBL、BindingDB 提供了大量激酶抑制剂活性数据,但数据存在严重稀疏:同一分子测过 JAK2,却没测过 JAK1/TYK2。为了服务于选择性设计,训练样本要把每个分子组织成一个活性向量:该分子在哪些激酶上测过、抑制浓度是多少、缺失值如何标记。

训练策略也需要讲究。数据增强可以给分子图加扰动,让模型看到更多合法变体;迁移学习先用大规模泛激酶数据预训练,再用 JAK 家族小数据微调。最重要的是按骨架划分训练集和验证集,避免同系列分子同时出现在两边,否则模型得分虚高、实战失灵。

一个见过世面的模拟器,才能真正判断新设计的门禁卡。数据和训练策略不是锦上添花,而是选择性预测模型的护城河。

设计案例

JAK 家族是讲选择性的最好课堂。JAK1、JAK2、JAK3、TYK2 四把锁同属一个锁芯平台,但功能却分工明确:JAK2 管造血,JAK3 管免疫,若一个抑制剂把四把锁全部打开,疗效也许有,副作用也很猛。

AI 设计流程大致是:先把已有抑制剂在四个亚型上的活性向量整理成训练集,训练多任务模型;随后对药化团队提出的骨架修饰逐一做虚拟反筛,输出每个候选物对 JAK1、JAK2、JAK3、TYK2 的预测抑制谱。

以设计 JAK1 选择性抑制剂为例,模型会同时给出 JAK1 活性和 JAK2、JAK3、TYK2 旁系活性。项目组按目标与旁系差异排序,只把排序靠前的分子送去合成和激酶谱实测。实测结果再回流到训练集,形成下一轮优化。

案例告诉我们,选择性不是一眼看出来的,而是“预测—合成—反筛—再训练”的闭环结果。每一轮关门,都是向更安全药物靠近一步。

产业价值

门禁系统最终要交付给整个小区,药物最终要面对真实病人。一个误开旁系门的分子,即便目标活性漂亮,也可能在临床阶段因毒性倒下。选择性设计决定了一个候选分子能走多远。

从效率上看,AI 虚拟反筛把大量旁系活性风险提前到合成之前,企业可以减少实体激酶谱筛选的次数,把预算集中在少数高选择性候选分子上。这是典型的降本增效。

从风险上看,越早识别脱靶风险,越能避免晚期临床失败。创新药研发平均周期长、成本高,而选择性预测直接压缩“做完动物实验才发现毒副作用”的悲剧概率。

未来的靶向药竞争,拼的不只是能不能抑癌,更是会不会误伤。把钥匙打磨到只开一扇门,正是 AI 制药全链路里最有温度的一环。

AI 应用场景

虚拟反筛前置到分子设计阶段

阶段:候选分子生成与评估

解决的问题:传统做法是先合成几十个化合物,再做激酶谱筛选,发现脱靶后再回头改结构,周期长、成本高。AI 能在分子尚未合成时,先预测它对 JAK 家族等多靶点的活性谱,把明显的“万能钥匙”提前淘汰。

具体案例:某 JAK 抑制剂项目中,计算团队从 1 万个虚拟类似物中先用多任务模型预测四个亚型活性,再按 JAK1 与 JAK2 的选择性指数排序,最终只挑选 50 个分子进入合成和实验反筛,大幅压缩了药化迭代轮次。

稀疏激酶谱数据的活性补全

阶段:数据准备与活性预测

解决的问题:公开数据库里同一个化合物往往只测过少数激酶,导致“活性矩阵”大量空缺。传统分析难以判断选择性。多任务模型利用不同激酶任务之间的共享规律,可以补全缺失的旁系活性预测。

具体案例:一个新骨架只在 JAK2 上测过活性,模型借助其他 JAK 家族化合物的训练知识,预测出它对 JAK1、JAK3、TYK2 的抑制概率,提前标出潜在脱靶风险。

药物管线风险评审闸门

阶段:候选药物优选定级

解决的问题:临床前候选分子往往因脱靶毒性在晚期被淘汰。用预测选择性指数和覆盖率作为评审闸门,可以在动物实验前识别高风险分子,降低研发沉没成本。

具体案例:项目组对一个候选物做虚拟反筛时,发现其预测激酶覆盖率超过 50%,果断暂停推进,改为优化旁系冲突位点;下一轮设计的选择性评分显著改善。

Python 演示

python66 行
# Multi-task activity prediction and selectivity ranking (JAK family demo)from math import exp JAKS = ["JAK1", "JAK2", "JAK3", "TYK2"]FEATS = ["F", "Cl", "Me", "NH2", "CONH2"] # name: [feature vector, [JAK1..TYK2 inhibition labels]]MOLECULES = [    ("A", [1, 0, 1, 0, 1], [1, 0, 0, 1]),    ("B", [0, 1, 1, 1, 0], [1, 1, 1, 0]),    ("C", [1, 1, 0, 0, 0], [1, 1, 0, 0]),    ("D", [0, 0, 1, 1, 1], [0, 1, 1, 1]),]  def sigmoid(z):    return 1.0 / (1.0 + exp(-z))  def train_task(X, y, epochs=200, lr=0.2):    w = [0.0] * len(FEATS)    b = 0.0    for _ in range(epochs):        for feat, label in zip(X, y):            z = b + sum(w[j] * feat[j] for j in range(len(FEATS)))            err = sigmoid(z) - label            for j in range(len(FEATS)):                w[j] -= lr * err * feat[j]            b -= lr * err    return w, b  def predict(w, b, feat):    z = b + sum(w[j] * feat[j] for j in range(len(FEATS)))    return sigmoid(z)  def main():    X = [m[1] for m in MOLECULES]    models = {}    for idx, kinase in enumerate(JAKS):        y = [m[2][idx] for m in MOLECULES]        models[kinase] = train_task(X, y)     candidates = [        ("cand1", [1, 0, 0, 0, 1]),        ("cand2", [0, 1, 1, 0, 0]),        ("cand3", [0, 0, 0, 1, 1]),    ]     results = []    for name, feat in candidates:        preds = {kinase: predict(*models[kinase], feat) for kinase in JAKS}        target = preds["JAK1"]        off = sum(preds[k] for k in JAKS if k != "JAK1") / 3.0        si = target / (off + 1e-6)        coverage = sum(1 for p in preds.values() if p > 0.5)        results.append((si, coverage, name, preds))     results.sort(reverse=True)    for si, coverage, name, preds in results:        print(name, "SI=%.2f" % si, "coverage=%d" % coverage, preds)  if __name__ == "__main__":    main()
目的:用简化版多任务逻辑回归模拟四个 JAK 亚型的活性预测,并依据预测活性谱计算选择性指数与覆盖率,完成候选分子排序。
  1. models[kinase] = train_task(X, y)每个 JAK 亚型训练一个分类头。
  2. preds = {kinase: predict(*models[kinase], feat) for kinase in JAKS}用同一分子特征一次性输出四个亚型的抑制概率。
  3. si = target / (off + 1e-6)目标预测概率除以旁系平均概率,模拟选择性指数。
  4. coverage = sum(1 for p in preds.values() if p > 0.5)统计预测阳性激酶数,模拟激酶覆盖率。
  5. results.sort(reverse=True)按选择性从高到低排列,方便项目组优先合成最专一的候选物。

常见误区

误区我总以为 IC50 越小越好,看到目标激酶 IC50 是 1 nM 就兴奋得不行,觉得这个分子绝对专一。

正解IC50 只说明对目标锁的开启能力,没告诉我们会误开哪扇邻居门。选择性看的是目标与旁系的差值;如果旁系 IC50 也只有 2 nM,那它就是一把更精致的万能钥匙。

为何常见:我们习惯用单一活性数字判断药效,把“更强”直接等同于“更好”,忽略了选择性是相对值。

误区反筛嘛,找一两个和靶点最像的旁系激酶测一下,没有抑制就说明很安全了。

正解旁系激酶很多,像 JAK 家族、EGFR 家族都有一群同源蛋白。反筛要用足够广的激酶面板,配合多浓度剂量矩阵,否则漏掉的门锁仍然可能造成脱靶毒性。

为何常见:人脑容易用少数代表推断整体,尤其当候选分子在少量旁系上表现很好时,会高估自己的覆盖面。

误区既然多任务模型预测得准,以后就不用做激酶谱实验了,直接看 AI 输出就行。

正解AI 是门禁模拟器,不是真实门锁。它依赖训练数据分布;遇到从未见过的新骨架,预测误差会显著增加。虚拟反筛负责缩窄候选范围,实验反筛负责最终验收。

为何常见:模型在测试集上的高准确率让人产生迷信,忘了真实世界的分布外情况。

误区理想的药物应该一点旁系活性都没有,选择性指数越大越好,最好把所有邻居门都焊死。

正解药物开发追求的是疗效与安全性平衡,不是数字本身。某些肿瘤药恰恰需要一定多靶点效应来增强疗效;完全零脱靶有时伴随更强耐药压力或更窄治疗窗。目标应是选择性曲线满足临床获益风险比。

为何常见:把“专一”标签化,忽略了药物机制和疾病的复杂性。

面试题

Q1. 某化合物对目标激酶 IC50=10 nM,对旁系激酶 IC50=300 nM,其选择性指数约是多少?

单选题 · easy

  • A.约 3 倍左右
  • B.约 10 倍左右
  • C.约 30 倍左右← 正确答案
  • D.约 300 倍左右

答案:C。选择性指数 SI 是旁系 IC50 除以目标 IC50,即 300 ÷ 10 = 30。这个值越高,说明旁系门越难被钥匙打开。

Q2. 反筛实验通常使用一批什么分子体系?

单选题 · easy

  • A.同族激酶组成的活性面板← 正确答案
  • B.不同溶剂的溶解性实验
  • C.不同动物的代谢实验
  • D.不同晶型的稳定性实验

答案:A。反筛的核心是把候选分子放到一整套同族激酶上测试,相当于挨家挨户试门锁,而溶解度、代谢、晶型都不是反筛的核心目标。

Q3. 激酶家族 ATP 结合口袋高度同源,对药物设计最直接的影响是什么?

单选题 · easy

  • A.分子容易同时抑制多个激酶← 正确答案
  • B.分子溶解度显著升高
  • C.分子不再需要药代优化
  • D.分子毒性完全消失

答案:A。同源口袋就像同款锁芯,钥匙只要适配其中一个,很容易顺势打开另一把同款锁,因此脱靶风险天然存在。

Q4. 多任务学习中的“任务”通常指什么?

单选题 · mid

  • A.预测一种激酶的活性← 正确答案
  • B.合成一个化合物的路线
  • C.测量一次动物实验
  • D.提纯一个蛋白质样品

答案:A。在多任务活性预测模型中,每个激酶对应一个预测任务。共享分子表征后,每个任务头专注预测自己负责的那扇门能不能打开。

Q5. 选择性评分 S(10) 越小,通常说明候选分子?

单选题 · mid

  • A.强抑制的激酶比例越低← 正确答案
  • B.强抑制的激酶比例越高
  • C.目标活性一定越弱
  • D.代谢稳定性越来越差

答案:A。S(10) 表示面板中强抑制激酶占受试总数的比例。数值越小,说明被误开的旁系门越少,选择性越好。

Q6. 下面哪些做法能帮助提升激酶抑制剂的选择性?

多选题 · mid

  • A.用多任务模型预测旁系活性← 正确答案
  • B.用激酶谱筛选验证脱靶← 正确答案
  • C.提高筛选浓度到最大
  • D.忽略目标与旁系的差异

答案:AB。AI 虚拟反筛可以提前看活性谱,实验反筛提供真实门锁反馈,两者结合才能逐轮关掉旁系门。提高浓度和忽略差异都会让脱靶风险变大。

Q7. 随机划分训练集可能高估选择性预测模型性能,主要是因为?

单选题 · hard

  • A.相似骨架分子进入验证集← 正确答案
  • B.数据缺失被自动补全
  • C.训练轮数足够多
  • D.损失函数选得合适

答案:A。随机划分时,同系列相似骨架可能同时出现在训练集和验证集,模型只需记忆类似结构就能得高分,却无法泛化到全新骨架。

Q8. 一个多任务激酶活性预测模型的直接输出可以是?

多选题 · hard

  • A.每个激酶的抑制概率← 正确答案
  • B.候选分子的选择性指标← 正确答案
  • C.化合物合成路线图
  • D.激酶晶体结构坐标

答案:AB。多任务模型输出的是活性预测值,据此可以进一步计算选择性指数或覆盖率;它不会直接给合成路线或晶体结构坐标。

Q9. 某候选物通过 400 激酶反筛均无强抑制,但体内研究仍出现脱靶毒性。以下哪项解释最合理?

单选题 · extreme

  • A.反筛面板可能没覆盖致病旁系← 正确答案
  • B.反筛实验做得太严格了
  • C.候选物纯度已经完美无缺
  • D.多任务模型预测完全错误

答案:A。反筛面板再大也不是全蛋白质组。未被覆盖的旁系、代谢产物或非激酶靶点仍可能在体内造成脱靶,说明芯片之外仍有盲区。

Q10. AI 虚拟反筛相对于湿实验反筛的主要优势是?

单选题 · mid

  • A.在合成前就能评估脱靶风险← 正确答案
  • B.完全消除所有实验误差
  • C.不需要任何训练数据
  • D.直接进入人体临床试验

答案:A。AI 模拟器可以零成本地让未合成的分子先在整栋“虚拟门禁楼”里跑一遍,从而把高脱靶风险分子挡在合成之前。但它仍需数据,也无法完全替代实验。