第4章 打分函数:半经验力场、基于知识的打分与一致性评分
打分函数是分子对接的“裁判员”。对接算法负责给配体找姿势,打分函数负责判断哪个姿势靠谱。你想想看,姿势生成得再多,评分不准也是白搭。我个人习惯把打分函数看作整个对接流程的“命门”——选对了,对接结果才有参考价值;选错了,后面做虚拟筛选基本就是碰运气。
本章咱们就聊三种主流的打分思路:AutoDock 自带的半经验力场、从已知结构里“学”出来的基于知识的打分,以及把多种打分揉在一起的一致性评分。我会结合自己踩过的坑和项目中的经验来拆解,希望能帮你建立起选型直觉。
4.1 打分函数到底在算什么?
简化到骨子里,打分函数就是在估算结合自由能 ΔG。ΔG 越负,结合越强。但你我都知道,真正的自由能计算(比如 FEP)成本太高,对接场景下根本跑不动。所以打分函数做了大量近似——用几个关键能量项的组合来逼近 ΔG。
我在做早期药物发现项目时遇到过一种情况:对接排名前 10 的化合物,湿实验测出来只有 2 个有活性。后来排查发现,是打分函数对某些官能团的去溶剂化惩罚算偏了。从那以后我就明白,打分函数的每一项都有物理意义,不能只盯着总分看。
目前主流打分函数可以归为三大类,我画了一张图帮你直观对比:
4.2 半经验力场:AutoDock 的看家本领
AutoDock 4 用的是半经验力场,我做了这么多年对接,最常用的还是它。为啥?因为它把物理项和经验修正结合得比较平衡,跑得快,结果也稳。
打分函数长这样:
ΔG = ΔG_vdw + ΔG_hbond + ΔG_elec + ΔG_desolv + ΔG_tors
每一项拆开来看:
- ΔG_vdw — 范德华力。用 Lennard-Jones 12-6 或 8-4 势能算。我在做激酶抑制剂项目时发现,配体在疏水腔里的 VDW 项往往占了总分的 60% 以上,这步算不准后面全白搭。
- ΔG_hbond — 氢键。方向性和距离都有要求,AutoDock 用了一个平滑的 12-10 势能来模拟。记得别把距离容忍设得太大,我一般取 3.5 Å 以内。
- ΔG_elec — 静电。基于库仑定律,需要配体和受体都有部分电荷。电荷来源我建议用 Gasteiger,和 AutoDock 的兼容性最好。
- ΔG_desolv — 去溶剂化能。配体从水溶液进入结合口袋,得脱掉表面水分子,这个惩罚项很重要。我曾经因为忘调去溶剂化参数,导致一批极性化合物打分虚高,后来排查了整整两天……
- ΔG_tors — 扭转自由能。配体越柔顺,结合时的熵损失越大。可旋转键每多一根,惩罚大约增加 0.3–0.5 kcal/mol。
这些项通过实验数据拟合出来的系数加权求和。AutoDock 4 的默认系数是从 188 个已知复合物拟合得到的,覆盖了大部分药物-靶点类型。
4.3 基于知识的打分:让数据说话
另一种思路是干脆不假设物理公式,直接从已知的蛋白-配体结构里“学”出规律。这就是基于知识的打分,也叫统计势方法。
核心操作:统计每个原子对(比如 C-O、N-H)在结合界面出现的频率,用 Boltzmann 公式倒推出势能。
W(r) = -kBT · ln[ ρ(r) / ρ*(r) ]
其中 ρ(r) 是实际结构中原子对在距离 r 出现的概率密度,ρ*(r) 是参考状态下的概率。比值为正说明在该距离下排斥,为负说明吸引。
典型的代表有 PMF、DrugScore、ITScore。这些工具不依赖对接软件内部的力场参数,独立性强。我在做含铋化合物的虚拟筛选时用过 PMF,效果出乎意料——因为半经验力场对重金属描述很弱,反而统计势从已知结构中学到了配位规律。
和半经验力场对比,区别很明显:
| 对比维度 | 半经验力场 | 基于知识的打分 |
|---|---|---|
| 理论基础 | 物理化学 + 经验参数 | 统计力学 + 结构数据库 |
| 计算速度 | 快(毫秒级) | 较快(微秒级) |
| 可解释性 | 高,每项有物理意义 | 中,依赖训练集分布 |
| 对金属离子 | 弱,需要特殊处理 | 强,如果训练集包含金属蛋白 |
| 外推能力 | 较强,物理项通用 | 弱,受限于训练集空间 |
4.4 一致性评分:别把鸡蛋放一个篮子里
我遇到过不少同学,拿着一种打分函数的结果就直接下单合成,结果合成出来没有活性,项目白白浪费两个月。一个更聪明的做法是一致性评分。
一致性评分不是一种新的打分函数,而是一种策略——把多个打分函数的结果综合起来,降低单一函数的偏差。
常见的方式有三种:
- 加权平均法 — 每个打分函数给一个权重(可以通过验证集优化),然后算加权总分。权重怎么定?我习惯用已知活性化合物的排名一致性来反推。
- 排序融合法 — 对每个打分函数分别排序,然后取各化合物排名位置的均值或中位数作为最终排序。这种方法对异常值不敏感,我在实际项目中最常用。
- 投票法 — 设定一个阈值,比如前 10% 算“合格”,然后看一个化合物被多少个打分函数选为合格。得票多的优先考虑。
举个例子,我去年做一个虚拟筛选项目,用了三种打分函数:AutoDock 的半经验力场、PMF、X-Score。单个函数 top 50 的重合度只有 30% 左右,但一致性评分 top 30 的化合物在湿实验中的命中率达到了 67%,比单个函数提升了近一倍。
4.5 实践建议:选型三部曲
聊了这么多理论,最后给你一套我自己的选型思路:
- 第一步:看靶点。普通激酶、GPCR、蛋白酶,用 AutoDock 半经验力场足够了。金属酶、核受体等特殊体系,准备一个基于知识的打分做辅助。
- 第二步:看数据量。几十个化合物可以跑细致的一致评分;几千个化合物,先用半经验力场粗筛,再对 top 做一致评分。
- 第三步:看决策。如果对接结果要支撑合成决策,至少用两种不同原理的打分函数交叉验证。我见过太多项目因为单一打分函数“看起来很美”而翻车。
最后再叮嘱一句:打分函数是工具,不是真理。它帮你缩小候选范围,但不能替代湿实验。理解每个能量项在算什么,比盲目追求高分重要得多。嗯,这一章就聊到这儿,希望下次你打开 AutoDock 的时候,能对那个最终分数有更深一层的理解。