ref2015 评分函数:骨架、权重与变体

好了,各位,我们终于来到了重头戏。ref2015 可以说是 Rosetta 评分函数家族里最经典、应用最广的一个成员了。从蛋白-小分子对接,到蛋白-蛋白复合物结构预测,甚至是抗体设计,你都能看到它的身影。

我个人习惯把 ref2015 看作一把「瑞士军刀」。它不是为某个特定问题设计的,而是力求在多种场景下都给出一个相对合理的能量评估。这一节,我们就把它拆开看看,里面到底装了些什么「零件」。

ref2015 的核心组成

说白了,ref2015 是一个 线性组合 的评分函数。什么意思?就是它把不同类型的能量项加起来,每一项乘以一个权重,最后得到一个总分。

能量总分 = Σ(权重 × 能量项)

ref2015 的能量项可以大致分为三大类:

  • 物理化学项:模拟真实的物理作用力,比如范德华力、静电作用、氢键、溶剂化效应等。
  • 统计势项:从已知的蛋白质结构数据库中统计出来的经验项。比如某些二面角组合出现的频率,用来约束主链和侧链的构象。
  • 参考能量项:这个是 ref2015 名字的由来(reference)。它校正了不同氨基酸在不同环境下的「背景能量」,避免评分函数偏向某种特定的氨基酸类型。

嗯,这里要注意:「参考能量」和「溶剂化」这两个项,是 ref2015 从之前的版本(如 talaris2013)改进的关键。没有它们,评分函数很容易给出不合理的打分。

能量项与权重

下面这张表列出了 ref2015 的主要能量项及其默认权重。这可是实际干活用的参数,我把它们记下来。

能量项 描述 权重 我的理解
fa_atr 全原子吸引性范德华 0.80 模拟原子间的伦敦色散力。我在对接项目中,经常用它来判断配体是否「卡」进了结合口袋。
fa_rep 全原子排斥性范德华 0.44 空间冲突的惩罚项。稍微有点大,结构就会剧烈变化。
fa_sol Lazaridis-Karplus 溶剂化能 1.05 评估原子从气相转移到水相的能量变化。我曾经在优化一个极性配体时,全靠调这项目的经验来改善打分。
fa_elec 全原子静电势 0.70 库仑静电相互作用。
hbond_lr_bb 主链-主链长程氢键 1.17 主要针对蛋白质二级结构中的氢键。
hbond_sr_bb 主链-主链短程氢键 0.585 局部氢键,比如螺旋和片层内的。
hbond_bb_sc 主链-侧链氢键 1.17 侧链官能团与主链形成的氢键。
hbond_sc 侧链-侧链氢键 1.10 侧链之间的直接氢键。
rama Ramachandran 偏好性 0.20 基于统计势,鼓励主链二面角落在允许区域。
omega Omega 二面角偏好性 0.50 肽键平面的顺反异构偏好,主要是反式。
fa_dun 侧链旋转异构体库 0.56 侧链构象的统计势。低分通常意味着侧链「扭」得不自然。
p_aa_pp 氨基酸主链偏好性 0.64 特定氨基酸在 phi/psi 空间的偏好。
ref 参考能量 1.00 这是 ref2015 的「灵魂」。它校正了不同氨基酸的内在能量差异。

你看,氢键相关项就有 4 个不同的权重。这说明 Rosetta 对氢键的刻画非常细致。在做结合亲和力预测时,配体和受体之间的 氢键网络 常常是决定打分高低的关键。我经常建议大家,在分析结果时,不要只看总分,把这几个氢键项单独拉出来看看,往往能发现一些有趣的东西。

权重是固定的吗?

不,当然不是。这些默认权重是经过大量蛋白结构恢复测试和最小化优化得来的。但遇到特殊情况,比如你的体系中存在大量金属离子,或者你在做膜蛋白,那可能就需要调整权重。Rosetta 提供了一套完整的权重调整框架——权重文件。

举个例子,如果你想关掉静电项,可以创建一个自定义权重文件:

# custom.wts 文件内容
fa_atr 0.80
fa_rep 0.44
fa_sol 1.05
fa_elec 0.00   # 把静电权重设为零
hbond_lr_bb 1.17
... (其余保持默认)

然后通过命令行传递这个文件:

$Rosetta/main/source/bin/score_jd2.linuxgccrelease \
    -in:file:s complex.pdb \
    -score:weights custom.wts \
    -out:prefix custom_

不过,我要提醒一句:调整权重是个技术活,而且很容易掉坑里。我曾经为了优化一个体系的打分,把静电项权重提得过高,结果导致结构偏好性打分异常,反而让预测结果变得更差。后来我学乖了,不到万不得已,尽量不动权重。如果真的需要,至少保证其他项不变,一次只调一个。

常见的 ref2015 变体

ref2015 不是孤立的,它有一个「家族」。不同变体针对不同场景做了微调。下面列出几个我常用的:

变体名称 特点 权重来源 我的评价
ref2015 原始版本,通用性强。 标准权重文件 首选,适用于大部分蛋白-配体系。
beta_nov16 beta 版本,改进了一些能量项,特别是溶剂化和参考能量。 独立权重文件 有时候比 ref2015 更准,但不稳定。我在重复一个经典实验时,发现它的氢键项表现更好。
genpot 通用势,尝试平衡不同分子类型的评分。 独立权重文件 用于多肽或小分子对接时,可以考虑。
relax2015 专门用于结构弛豫(relax)的评分函数。 ref2015 微调 内部权重略有调整,更适合在最小化过程中引导结构。
talaris2014 ref2015 的前身。 权重略有不同 历史版本,我一般做回归测试时才会用它。

你会发现,这些变体本质上都是基于 ref2015 的权重调整,或者是针对某些能量项做了重新统计。在 Rosetta 中,你可以通过 -score:weights 参数指定任何一个变体的权重文件。

实战技巧:如果不确定该用哪个变体,就用 ref2015。它经过了最广泛的验证。只有在 ref2015 明显不理想时,再尝试其他变体,比如 beta_nov16。

ref2015 的应用范围

我个人觉得,ref2015 最适合用于 相对结合亲和力的预测。也就是比较一系列类似配体对同一受体的结合能力。举个例子,你设计了一组针对某个激酶抑制剂的类似物,想预测哪个结合得更紧密。这种情况下,ref2015 的评分和实测的 ΔG 往往有不错的线性关系。

但如果你想把 ref2015 的绝对得分直接换算成结合自由能(kcal/mol),那可能就有点想多了。ref2015 的得分是一个「相对能量单位」,不是真正的物理能量值。强行转换的话,误差会比较大。

避坑指南:我曾经看到有人直接把 Rosetta 的分数套到 BindingDB 或 PDBbind 的 pKd 值上做线性回归,结果 R² 很难看。不是说不能做,而是你必须清楚地知道:ref2015 的分数是「能量」,不是「亲和力」。你需要做一系列校准,或者使用专门的自由能预测方法,比如 Rosetta 的 结合自由能计算(binding free energy perturbation)。

ref2015 评分函数架构 ref2015 总能量 物理化学能量项 统计势能量项 参考能量项 fa_atr, fa_rep fa_sol, fa_elec rama, omega fa_dun, p_aa_pp ref 默认权重:物理化学项 (0.44~1.17) + 统计势 (0.20~0.64) + ref (1.00) 常见变体:ref2015、beta_nov16、genpot、relax2015、talaris2014

好了,关于 ref2015 的组成、权重和变体,我们就聊到这里。你可能会觉得,这些东西有点细,有点琐碎。但说实话,要真的用好 Rosetta,理解评分函数的构造是绕不开的一步。下次当你看到一堆能量分数时,至少能分得清它是由什么组成的,哪些项是强项,哪些项可能不靠谱。