对接分数能不能代表活性?这是计算化学中最常被问也最容易被误解的问题。答案是:它能提供有用的粗筛信号,但不能作为活性预测——理解为什么,比记住这个结论更重要。
打分函数的三大类
| 类型 | 原理 | 代表 |
|---|---|---|
| 基于力场 | 物理项求和(范德华 + 静电 + 溶剂化) | AutoDock、GoldScore |
| 经验性 | 各项加权求和,权重从实验数据拟合 | Vina、ChemScore、Glide SP |
| 基于知识 | 从结构数据库统计原子对的接触频率 | DrugScore、PMF |
| 机器学习 | 从数据学习打分 | GNINA 的 CNN(见 099《GNINA 论文精读》)、RF-Score |
为什么打分函数不准
- 去溶剂化难以建模。这是最根本的问题。结合需要配体与蛋白都脱去水化壳层,这个代价与体系高度相关,简单的隐式模型难以准确估计;
- 熵贡献几乎被忽略:构象熵损失、水分子释放的熵增——这些对结合自由能贡献很大,但打分函数通常只用可旋转键数做粗糙的近似;
- 忽略蛋白柔性:多数对接把受体当刚性,诱导契合的能量代价不被计入;
- 水分子处理简化:结合位点的水常被完全去掉,而它们可能是相互作用的重要部分(见 091《蛋白口袋 Protein Pocket》);
- 为速度牺牲精度:打分函数必须在毫秒级完成,这限制了物理模型的精细程度;
- 拟合数据的偏倚:经验打分函数的权重从有限的复合物数据拟合,对训练分布外的体系外推能力有限。
系统性偏差:必须知道
# 偏差一:偏好大分子
# 打分函数中范德华项是主要贡献
# → 更多原子 = 更多接触 = 更好的分数
# → 大分子系统性得分更高
#
# 应对:用配体高效性(LE)而非原始分数比较
# LE = -score / 重原子数
#
# 偏差二:偏好高疏水性
# 疏水接触被充分计入,而去溶剂化代价被低估
# → 「又大又油」的分子分数最高
# → 而这类分子往往成药性差
#
# 应对:同时约束 MW 与 logP(见 070)
#
# 偏差三:对高电荷分子的处理不稳
# 静电项的权重与介电模型敏感
#
# 偏差四:低估水介导的相互作用
# 去掉水后,本来通过水桥作用的分子被低估
def ligand_efficiency_from_score(vina_score, n_heavy_atoms):
"""用 LE 纠正大小偏倚"""
return -vina_score / n_heavy_atoms
# 典型的 Vina LE:
# > 0.4 很好
# 0.3~0.4 良好
# < 0.25 效率低
与实测活性的相关性有多低
- 跨靶点的相关性很弱:把不同靶点的复合物混在一起,对接分数与 pKd 的 Pearson 相关系数通常只有 0.4~0.6(这还是在 PDBbind 这类精选数据上);
- 同一靶点内的排序能力也有限:这才是实际关心的场景。对同一系列类似物的排序,相关性常常更低——因为它们的差异细微,超出了打分函数的分辨率;
- 虚拟筛选的富集能力才是实用指标:即使不能准确排序,如果能把活性分子富集到前几个百分位,就有实用价值(见 242《LIT-PCBA》);
- 现实的期望:在真实的筛选基准(如 LIT-PCBA)上,对接的 EF@1% 常常只有 1~3——比随机好一点点。这个数字远低于文献给人的印象。
正确的使用方式
| 用途 | 可靠性 | 说明 |
|---|---|---|
| 姿势生成 | 较好 | 在重对接验证通过的前提下 |
| 大库粗筛(排除明显不行的) | 可用 | 判别力在低端最强 |
| 产生结合模式假设 | 可用 | 需交叉验证 |
| 同系列类似物排序 | 弱 | 需要 FEP 才可靠 |
| 跨骨架活性比较 | 不可靠 | — |
| 预测绝对亲和力 | 不可靠 | — |
核心定位:对接是筛子,不是尺子。它擅长把十万缩小到几百,不擅长告诉你哪个更强。
提高排序质量的分级策略
# 逐级精化,成本递增、数量递减
#
# 第 1 级:Vina 快速对接(百万级 → 前 5%)
# exhaustiveness=8,最快
#
# 第 2 级:CNN 重打分(前 5% → 前 0.5%)
# GNINA rescore(见 099)
#
# 第 3 级:相互作用指纹核对(见 109)
# 能否复现共晶的关键相互作用?
# ← 这是独立于打分的检验维度
#
# 第 4 级:物理有效性检查
# PoseBusters:键长键角、空间冲突
#
# 第 5 级:MM/GBSA(前 500 → 前 100)
# 考虑了溶剂化,比对接分数好一些(见 126)
#
# 第 6 级:FEP(前 30 → 排序)
# 真正可靠的相对亲和力预测(见 127)
# 成本高,只对关键分子做
#
# 第 7 级:人工审查
# 药化专家过一遍
#
# 关键:不要跳过第 3、4、7 级 ——
# 它们提供了独立于打分函数的判据
机器学习打分函数的现状
- 在基准上表现亮眼:CNN、随机森林类打分函数在 PDBbind 等基准上的相关系数常达 0.8 以上;
- 但存在严重的数据泄漏质疑:多项研究发现,只用配体特征、完全不看蛋白,也能取得接近的成绩(见 238《PDBbind》)——说明模型很大程度上在学「配体长什么样与活性的统计关联」,而非蛋白-配体相互作用;
- 必要的对照实验:评估任何基于结构的 ML 打分函数,都必须同时报告「只用配体特征」的基线。差距不大就说明结构信息没被真正利用;
- 姿势预测的改善是实在的:GNINA 的 CNN 重打分确实提高了姿势预测成功率,这部分收益比较扎实。
关键要点
- 打分函数不准的根本原因是去溶剂化与熵贡献难以建模;
- 系统性偏好「大而油」的分子——用配体高效性纠正;
- 对接是筛子不是尺子:擅长粗筛与姿势生成,不擅长排序;
- 评估 ML 打分函数必须设「只用配体特征」的对照基线。
延伸资源
- 姿势判断:096《Binding Pose》;Vina 论文:097《AutoDock Vina 论文精读》;GNINA:099《GNINA 论文精读》;
- 自由能:126《MM/GBSA》、127《FEP、RBFE 与 ABFE》;基准:241《DUD-E》、242《LIT-PCBA》。