药物模型概述:常见的药物模型类型

做药物研发的朋友应该都有体会——光靠实验筛选,周期太长、成本太高。所以过去十几年里,计算模型几乎渗透到了每一个环节。我最早接触这个领域时,觉得「模型」无非就是跑个回归预测活性,后来发现远远不止。ADMET、QSAR、分子生成……每一种模型背后都有一套完全不同的建模逻辑和超参数调优策略。

今天这一章,我带大家把这些常见模型捋一遍。你不需要记住所有细节,但得清楚每种模型解决什么问题、输入输出是什么、调优时重点关注哪些参数。后面十多章的超参数调优实战,全都是建立在今天这个框架上的。

ADMET 预测模型

先聊 ADMET。这四个字母代表吸收、分布、代谢、排泄、毒性。说白了就是「这分子在人体里能不能活得好、待得住、排得掉、有没有毒」。我有个项目曾经筛出一批体外活性极好的分子,结果 ADMET 一跑,半数以上因肝脏代谢快被淘汰。幸亏当时提前做了预测,不然白花几百万合成费。

ADMET 模型的输入通常是分子结构(SMILES 或分子指纹),输出是各类性质的概率或数值。常见模型包括:

  • 口服生物利用度预测(是否满足 Lipinski 五规则)
  • 血浆蛋白结合率预测(影响分布体积)
  • CYP450 代谢抑制预测(药物相互作用风险)
  • hERG 毒性预测(心脏毒性)
  • 急性毒性 LD50 预测

从建模角度看,ADMET 数据多为不平衡分类问题(比如毒性样本少),超参数调优时需要注意类别权重、阈值调整。我个人习惯在验证集上使用 F2-score 而非准确率,因为漏掉一个毒性分子比误判一个无毒分子风险更大。

QSAR 模型

QSAR(定量构效关系)可能是药物建模里最经典的一类。它的核心假设:分子的结构特征(理化性质、拓扑指数、分子指纹)与其生物活性之间存在定量关系。你给它一个训练集——比如 200 个化合物及其 IC50 值——它就能学到一套映射关系。

QSAR 模型的输入是分子描述符向量,输出是连续值(回归)或类别(分类)。常见算法包括:

  • 随机森林 / 梯度提升树(GBDT)
  • 支持向量机(SVM)
  • 深度学习(图神经网络、Transformer)

这里超参数调优的空间非常大。举个栗子:我做过一个激酶活性的 QSAR 项目,随机森林的 n_estimators 从 100 调到 500,R² 从 0.65 升到 0.72 就不再提升了。而 max_features 反而在 sqrt(p) 附近最好。嗯,这里建议你第一步先对树的数量做粗调,再用贝叶斯优化精调其他参数。

小提示: 不要一开始就上深度学习。对于样本量不足 1000 的数据,GBDT 往往比复杂的 GNN 效果好,而且超参数更少、调优更快。

下面是一个用随机森林做 QSAR 回归的代码片段,可以看到描述符计算和模型训练的基本流程:

from rdkit import Chem
from rdkit.Chem import Descriptors
import numpy as np
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split

# 构建分子描述符
def calc_descriptors(smiles_list):
    descs = []
    for smi in smiles_list:
        mol = Chem.MolFromSmiles(smi)
        if mol is None:
            descs.append([0.0]*len(Descriptors.descList))
            continue
        vals = list(Descriptors.CalcMolDescriptors(mol).values())
        descs.append(vals)
    return np.array(descs)

X = calc_descriptors(smiles_train)
y = ic50_train

# 随机森林回归,不调优时的基线
rf = RandomForestRegressor(n_estimators=200, max_depth=10,
                           min_samples_leaf=5, random_state=42)
rf.fit(X, y)
print("R²:", rf.score(X, y))

分子生成模型

如果说 QSAR 是「筛选」,分子生成就是「创造」。这类模型的目标是:给定一个靶点或一系列约束,自动产生新的、有潜力的分子结构。2018 年之后,深度生成模型(VAE、GAN、强化学习)几乎统治了这个方向。

常见的分子生成方法:

  • 变分自编码器(VAE):学习分子结构的连续潜在空间,然后采样解码
  • 生成对抗网络(GAN):生成器与判别器对抗训练,但分子 GAN 训练不稳定
  • 强化学习(RL):把分子生成视为序列决策,用打分函数(对接打分、ADMET 预测)作为奖励
  • 扩散模型:2023 年后兴起,在 3D 分子生成上表现惊艳

超参数调优在分子生成中常被忽视,但影响巨大。比如 VAE 的 β 值(KL 项权重)直接决定生成多样性与有效性的平衡。我试过 β=0.001 时生成的所有分子都不合法,β=1.0 时生成合法但跟训练集一模一样,调了十几次才找到 0.1 的 sweet spot。

注意: 分子生成模型对超参数非常敏感,尤其是学习率和潜在维度。建议使用 wandb 或 optuna 做自动调优,切勿手撸网格搜索——我当年手动试了 36 个组合,差点累得放弃科研。

其他常见模型

除了上面三种,还有几个也值得了解:

  • 分子对接(Docking):模拟配体与蛋白的结合模式,虽非严格「模型」但常搭配打分函数使用,其打分函数的参数就是超参数(如 Amber 力场参数优化)
  • 药效团模型:基于空间特征(氢键供体/受体、疏水中心)筛选化合物
  • 自由能微扰(FEP):高精度结合自由能计算,计算量巨大,但超参数主要与模拟步长、力场有关
  • 代谢位点预测:基于图注意力网络预测分子何处容易被代谢

这些模型虽然各有侧重,但都有一个共同点:它们都需要在精度与速度之间做 trade-off。而超参数调优,正是找到那个平衡点的关键手段。

模型类型 输入 输出 典型超参数 我的经验重点
ADMET 分子指纹 / 图 分类概率或回归值 类别权重、threshold 特别关注毒性类别不平衡
QSAR 描述符向量 活性值或类别 树数量、深度、学习率 描述符选择比模型更重要
分子生成 随机噪声或片段 SMILES / 图 / 3D坐标 潜在维度、β、学习率 合法性筛选与多样性奖励
分子对接 配体+蛋白结构 对接打分 / 构象 格点尺寸、搜索算法参数 打分函数的选择比搜参更关键

模型类型之间的关系

为了更直观地看到这些模型在药物研发流程中的位置,我画了一张简图:

药物模型类型总览 先导化合物发现与优化 ADMET 预测 QSAR / 活性预测 分子生成 吸收 分布 代谢/排泄 毒性(hERG/LD50) 回归 分类 图神经网络 描述符选择 VAE GAN 强化学习 扩散模型 关键要点 · 超参数调优在每种模型中都有独特挑战:ADMET 重视类别平衡,QSAR 重视描述符筛选,分子生成重视表征维度与奖励设计。 · 实际项目中经常混合使用多种模型(如分子生成 + ADMET 过滤),调优策略需要联动考虑。
总结一下: 药物模型三大主流方向各有特点,但超参数调优的底层思路相通——理解数据、理解模型、理解评估指标。从下一章开始,我将带着具体的案例和代码,一步步教你用贝叶斯优化、遗传算法这些方法搞定每个模型的实际调优任务。

嗯,这一章的内容就是这些。你可以先对照表格和结构图,在脑海中搭好框架,后面实战时才不会迷路。