Codar
下载

QSAR 与 QSPR 建模

QSAR(定量结构-活性关系)和 QSPR(定量结构-性质关系)用一组化合物的结构特征去预测它们的生物活性或理化性质。做法是把每个分子转成数值表示——物理化学描述符或分子指纹,再用回归或分类模型拟合实测值。典型数据是一张表:每行一个化合物,含 SMILES 和一个实测终点,如同一靶点的 IC50、溶解度、logP 或渗透性。QSAR 的价值在于对未测化合物做排序和筛选,而不是给出精确数值;它的可靠性高度依赖训练集的化学空间覆盖,超出这个范围的预测没有意义,所以适用域评估是结果的一部分,而不是附加项。

什么时候用

  • 一个靶点已有几百到几千条活性数据,想给新设计的分子排序
  • 合成能力有限,需要先筛掉大概率低活性的候选
  • 想找出哪些结构特征与活性或某个性质相关
  • 需要为虚拟筛选的命中结果加一层活性预测过滤
  • 预测溶解度、logD、代谢稳定性等理化或 ADMET 相关终点
  • 比较不同分子表示方式在同一数据上的预测能力

不适合的情况

  • 数据只有几十条且骨架单一:模型学不到可迁移的规律,容易拟合噪声
  • 活性数据来自多种不相容的实验体系:标签本身不一致,拟合得再好也无意义
  • 要解释作用机制或结合模式:QSAR 给相关性,机制要靠结构方法

需要准备的数据

化合物结构表
CSV,含 SMILES 或 InChI 和化合物 ID。需去盐、中和电荷、统一互变异构写法,并去重
活性或性质标签
同一终点、同一单位。IC50、Ki 建议统一转为 pIC50、pKi(对摩尔浓度取负对数)
实验来源标注
记录 assay 类型、细胞系、文献或数据库来源,用于判断能否合并和解释离群点
外部测试集
建模前划出、全程不参与任何调参的化合物;来自新批次或新骨架时更有参考价值

分析步骤

  1. 1

    整理与清洗结构

    统一 SMILES 标准化流程:去除抗衡离子和溶剂、统一电荷状态、规范互变异构、去掉混合物和无机物。标准化后再按规范 SMILES 去重,同一化合物多条测值时取中位数并记录离散程度,差异过大的直接剔除。

  2. 2

    统一活性终点

    把 IC50、EC50 转成 pIC50,使分布接近对称并让误差在对数尺度上均匀。带不等号的审查数据(如大于 10 μM)不能当精确值用,常见做法是在回归里剔除、在分类里作为非活性类。记录活性范围跨几个对数单位。

  3. 3

    计算描述符与指纹

    常用两类表示:物理化学描述符(分子量、cLogP、TPSA、氢键供受体、可旋转键、芳香环数等)和指纹(Morgan/ECFP 按半径和位数生成,MACCS 为固定结构键)。描述符可解释,指纹对局部结构更敏感,可以分别建模比较。

  4. 4

    特征过滤

    去掉常数列和近常数列,去掉缺失率高的列,对高度相关的描述符保留一个。用指纹时去掉在整个数据集中出现次数极少的位。过滤规则只能在训练集上确定,再套用到测试集,否则会泄露信息。

  5. 5

    选择拆分策略

    随机拆分会让同一骨架的类似物同时出现在训练和测试集,指标虚高。建议用骨架拆分(按 Bemis-Murcko 骨架分组)或时间拆分,评估模型对新骨架的外推能力。两种拆分的结果都报告,差距大小本身就是重要信息。

  6. 6

    训练与调参

    回归可从随机森林、梯度提升、支持向量回归起步,线性模型作为基线。所有调参在训练集内部用交叉验证完成,常用 5 折。测试集只在最后评估一次,反复看测试集调模型等于把它变成了验证集。

  7. 7

    定义适用域

    用训练集刻画模型适用范围:常见做法是计算待测分子与训练集最近邻的指纹相似度,低于阈值的标为域外;描述符模型可用杠杆值配合残差做 Williams 图。预测结果必须带上是否在域内的标记。

  8. 8

    稳健性检验

    做 y 随机化:打乱标签重训多次,看指标是否降到随机水平。如果打乱标签后仍有不错的相关性,说明流程存在信息泄露或评价方式有问题。再检查残差最大的化合物,判断是标签错误还是活性悬崖。

关键参数与决策

指纹半径与位数

Morgan 指纹的半径决定考虑多大的局部环境,半径 2(常称 ECFP4)是常用起点;位数越大碰撞越少但维度更高。半径加大会让模型更依赖特定子结构,对新骨架泛化变差,建议比较几组设置。

拆分方式

骨架拆分比随机拆分严格得多,更接近真实使用场景。若两者差距很大,说明模型主要靠记住类似物。文献里报告的高 R² 常来自随机拆分,自己的模型要与之对比时需确认拆分方式一致。

适用域阈值

以最近邻 Tanimoto 相似度为准时,阈值常取 0.3 到 0.5 之间,具体值应由训练集内部的相似度分布决定而非照搬。阈值放松会让更多分子进入预测范围,但域边缘的预测误差明显增大。

活性阈值(分类任务)

把回归转成分类时需要一个活性界限,常用 1 μM 或 10 μM 等与项目目标匹配的值。阈值靠近数据中位数时类别较平衡;设得太极端会造成严重不平衡,此时准确率失去意义,要看召回和精确率。

重复测值的合并方式

同一化合物多来源测值常取中位数,比均值更抗离群。合并前先检查极差,跨 1 个对数单位以上通常意味着实验体系不同,应按来源分层或整条剔除,而不是硬平均。

常见错误

  • 先用全量数据做特征选择或标准化再拆分:测试集信息泄露,指标会明显偏高且无法复现。
  • 随机拆分加上大量同系列类似物:模型只是在找近邻,骨架拆分后性能往往大幅下降,报告的指标不代表外推能力。
  • 把带不等号的活性当成精确值:阈值处堆积出一群假的相同数值,回归线被这些点拉偏,高活性区预测随之失准。
  • 不做适用域判断就给全库打分:域外分子的预测值与随机猜测接近,却常被当作候选优先合成。
  • 合并来自不同实验体系的 IC50:标签噪声超过结构带来的信号,模型拟合的其实是实验来源差异。
  • 只报告交叉验证的 R² 不做 y 随机化:无法排除数据泄露或评价方式造成的虚假相关,指标再高也说明不了问题。

结果怎么看

预测值与实测值散点图

横轴实测、纵轴预测,附对角线。点应沿对角线分布;若预测值集中在均值附近形成一条水平带,说明模型几乎没学到信号。两端出现系统性回缩是回归常见现象,报告时要说明高活性区会被低估。

指标汇总表

回归看 RMSE、MAE、R² 和 Spearman 相关;分类看 AUC、精确率、召回和混淆矩阵。同时列出交叉验证与外部测试集的结果,两者差距大说明过拟合或拆分方式过于宽松。

残差与适用域图

把残差对最近邻相似度或杠杆值作图。正常情况下相似度越低残差越大;若域内也有大量大残差,模型本身能力不足,调阈值解决不了问题。

特征重要性

描述符模型可列出贡献最大的描述符,指纹模型可映射回具体子结构。看这些特征是否与已知构效关系吻合;若最重要的特征是分子量或原子数,模型可能主要在拟合分子大小。

和相近方法怎么选

描述符模型与指纹模型

描述符维度低、可解释性好,适合理化性质类终点和需要讲清趋势的场合;指纹对局部结构变化更敏感,在同一靶点的活性预测上通常更准,但单个位难以解释。实践中两者都建,若结论一致可信度更高。

QSAR 与基于结构的虚拟筛选

QSAR 依赖已有活性数据,只能在相近化学空间内排序,不需要靶点结构;基于结构的筛选需要蛋白结构和口袋,可以处理全新骨架。常见组合是先用对接扩大搜索范围,再用 QSAR 对命中结果做活性排序。

QSAR 与分子活性深度模型

树模型在几百到几千条数据上通常稳定且调参成本低;图神经网络或预训练分子模型在数据量大时可能更好,但小数据上优势不明显且方差大。数据规模有限时建议以树模型为基线,证明深度模型确有提升再采用。

常见问题

QSAR 建模最少需要多少化合物

没有统一硬门槛,关键看化学多样性而非条数。只有几十条且骨架单一时,模型往往只能区分同一系列内的强弱,对新骨架无外推能力。实践中常见的做法是先看骨架数量和活性跨度:骨架太少或活性跨度不到一个对数单位,建模价值都有限。

为什么交叉验证很好,预测新化合物却不准

最常见的原因是随机拆分让类似物分布在训练和测试两边,指标反映的是内插能力;真实使用时面对的是新骨架,属于外推。其次是没有做适用域判断,把域外分子的预测当作可信结果。改用骨架拆分重新评估,指标通常更接近真实水平。

活性悬崖会影响 QSAR 吗

会。活性悬崖指结构非常相似但活性差好几个数量级的分子对,它们违背相似性原理,使任何依赖相似度的模型在这些点上必然出错。处理方式不是删掉它们,而是单独标出来,在报告里说明模型在这些系列附近不可靠,并结合骨架与构效关系分析解释原因。

适用域一定要算吗

要。不带适用域的预测相当于不带误差范围的测量值。常见做法是给每个预测附上最近邻相似度和域内外标记,域外的分子只作参考不进入优先合成名单。这一步成本很低,却能避免把模型完全没见过的化学空间当成可信结果。

在 Codar 里怎么做

在生信模式里给出化合物活性数据和建模目标,Codar 会确认终点与拆分方式,再完成结构标准化、分子描述符与指纹计算、QSAR 或 QSPR 模型训练与交叉验证、适用域评估,交付指标汇总表、预测与实测散点图、特征重要性、带域内外标记的预测结果和可复现脚本。

可以这样提问
我有一张 1200 个化合物的 CSV,含 SMILES 和某靶点 IC50,想建一个活性预测模型,用骨架拆分评估,并给我一批新分子的预测值和适用域判断。
了解AI 药物发现插件