会员 :访客
特色栏目
关于我们

本内特算法(BAR)怎么算自由能:原理、适用条件和容易踩的坑

本内特接受比(Bennett Acceptance Ratio,BAR)是计算两个热力学状态间自由能差(ΔG)的方法。核心思路:分别对状态A和状态B做平衡采样

本内特接受比, 简称BAR, 是一个用来计算两个热力学状态之间的自由能差值ΔG的方法。其核心思路是分别针对状态A和状态B进行平衡采样。接着用最大似然估计从两组势能数据中倒推ΔG。这个方法不需要考虑中间态的路径。它比较适合ΔG在±5 kJ/mol范围内的场景。

同时也要求两个状态的构型空间存在重叠的情况。如果两种状态之间几乎不出现重叠的情况, 像蛋白质突变前后侧链完全发生翻转这种现象, 那么 BAR 方法就会失效,此时需要将计算方法更换为热积分方法, 或者采用自适应方法进行计算。

核心原理:两个状态的自由能差怎么来

BAR基于两个状态的玻尔兹曼分布。设 u_A(x) 和 u_B(x) 分别为状态A、B在构型x下的势能,自由能差可写成:

ΔG = −kT·ln⟨exp[−(u_B − u_A)/kT]⟩_A

但是, 如果直接把那个平均量求出来, 在数值处理方面会表现出一种不稳定的状态。Bennett这个人他在1976年提出了一个关键性的改造办法: 他先把A这个状态里头有N_A个那么多采样点, 还有B这个状态里头的N_B个采样点, 这两组东西混在一起。

然后他去构造一个叫做似然函数的东西。接着对于每一个被混合在一起的点来说, 都得去计算一下它实际上是属于A还是属于B的一个后验概率。这个后验概率是需要依赖ΔG这一项参数的。而最终找到的那个最优的ΔG值, 是能够让所有这些点的后验概率相乘之后所得到的结果达到最大的那一回事。

具体的操作步骤是自洽迭代这个方式, 先选取吉布斯自由能变化量的初始数值, 这里经常用的数字是零或者是通过TI方法粗算出来的那个值,接着去计算空间里面每一个点对应的后验概率, 然后再次求出吉布斯自由能变化量的结果, 最后不停地重复做这些动作, 直到数值的变化量小于十的负六次方焦耳每摩尔为止, 在这一整个期间, 完全不用涉及中间状态这种东西, 也用不着非平衡拉扯的技术手段。

适用条件和参数范围

BAR这个方法的运行, 有一个非常严格的先决条件, 那就是两态构型空间的必须得有相当程度的重叠现象发生。

根据实际积累的经验和规律, 具体的数值门槛是, u_B减去u_A在这个A态进行的采样活动中的标准差, 大概要小于或者等于5 kJ每摩尔, 在温度是300 K的这个状况下, 这大概相当于2 kT的量级。

如果超出了这个范围的限制, 那么统计层面带来的误差就会快速地、大幅度地膨胀起来, 最终导致算出来的结果变得非常不可靠, 没法让人相信。

关键参数:

参数建议范围说明
采样点数 N_A, N_B各 ≥ 5000 独立构型独立 = 帧间隔 > 自相关时间
温度298–310 K与目标体系一致
迭代收敛判据ΔG变化 < 10⁻⁶ kJ/mol同时检查后验概率分布不变
有效样本量(ESS)约为名义样本量的 1/10–1/5用块平均估计

如果 ESS < 500, 结果置信区间会非常宽, 建议延长模拟, 或加重复。

实操中容易踩的坑

重叠不足时硬用。

去把u_B减去u_A的值放在A状态和B状态的分布里画成直方图, 就是让这两张直方图叠在一起放, 如果它们重叠的面积小于百分之五十, 那么在数值的计算上虽然可能已经收敛了, 但是在物理意义上其实是完全没有意义的, 这种情况下应当去改为使用分段的热力学积分方法或者是自适应的SAMPL方法来重新计算。

采样未达平衡。 MD轨迹相邻帧高度相关。直接取10000帧当10000个独立样本会严重低估误差。必须做自相关分析, 可以用GROMACS的 gmx trjcor 或者脚本去计算, 然后取间隔大于1.5倍自相关时间的帧。

势能函数版本出现了不一致的问题。 在进行 u_A(x) 这个计算的时候, 所使用的那些力场参数, 包括非键参数以及键角约束, 都必须和生成 A 态轨迹那个步骤时候的情况保持完全一致。

关于 u_B(x) 的计算, 也需要按照同样的原则来执行。假如你混用了 OPLS-AA 2020 版本的参数和 OPLS-AA 2003 版本的参数, 那么结果之中就会引入系统偏差, 这个系统偏差的大小大概在 1–3 kJ/mol 左右。

初值离真实值太远。自洽迭代可能往局部最优的地方收敛。建议你先用粗力场 TI, 或者用自由能面做一轮粗略的扫描来获取初值。这种情况下, 误差控制在 2 kJ/mol以下就够用了。

BAR与TI、PMF的取舍

方法需要中间态对重叠度要求适用ΔG范围计算成本
BAR(本内特)否中等(±5 kJ/mol内)±5–10 kJ/mol低(两套平衡模拟)
TI(热积分)是(λ 0→1)低(可分5–10段)无硬性上限高(多窗口多轨迹)
PMF / 多维扫描否低多维自由能面高(大量构型网格)

当ΔG的结果被控制在±5 kJ/mol这个区间之内, 并且两种状态之间的重叠情况还算是比较好的时候, 使用BAR这种方法来进行计算, 往往能够获得最高的性价比。一旦超出了上述所说的范围, 那么分段TI这种计算方法就会显得更加稳健一些, 但是它所需要承担的代价就是必须进行好几倍数量的轨迹运算工作。

问题: BAR这个东西和那个叫“Bennett equation”的东西, 它们是同一个东西吗?

答是。在计算化学的那个领域里面。Bennutt这个英文单词写成的方程。说的就是那个名为Bennett Acceptance Ratio的东西。

也就是通常简称为BAR的那一种方法。这个方法是由一位名叫C. F. Bennett的人他在1976年的年提出了。然后这两种不一样的说法指代的其实就是同一种计算方法。

问题是, 只拥有从一个方向到另一个方向的单向不平衡的MD数据(也就是说是从状态A转移到状态B的数据), 这样的情况下面, 还能不能够来进行BAR方法的计算和使用呢。

不能实现。因为 BAR 这个方法, 它要求的必须同时拥有 A 态的平衡采样数据, 还有 B 态的平衡采样数据。如果遇到了单向的非平衡轨迹情况的话, 就需要换一种处理方式了。也就是说, 需要改用 Jarzynski 等式, 或者改用 Crooks 涨落定理来进行处理才行。

关于结果误差究竟该如何进行估算, 这是一个需要具体明确的情况。

这里列出了三种常用的方法, 第一种叫做块平均的意思就是把轨迹分成若干部分, 然后对各个部分分别计算 ΔG 的数值, 接下来再取标准差。

第二种方法要求至少进行五次独立的重复模拟, 在此基础上计算标准差。第三种方法是使用 Kofke(2004)所提供的解析误差公式。在报告最终结果的时候, 务必把误差棒加上。

那个关于力场参数更新后, 旧的轨迹数据可以直接拿来计算新的ΔG吗? 这个问题。

A 回答说不能这样做。因为力场参数发生了变化, 这意味着 u_A(x)与 u_B(x) 的函数形式已经改变了。所以旧的轨迹就不再对应新的势能面了。必须使用新的参数来重新进行平衡模拟。

参考资料

1. C. F. Bennett 在一九七六年发表的论文里, 详细记录了使用蒙特卡洛方法, 如何计算出通过一个小孔的理想气体流速降低的数值计算过程, 这篇学术文章被刊登在《分子物理》杂志上, 该期的卷号是第二十三卷, 期号是第四期, 具体的页码范围是从第九百三十九页到第九百五十五页结束, 其对应的数字-object-标识符DOI为10.1080/0026881750010204。

2. Kofke, K. R. (2004). "Accuracy of free energy differences determined by the maximum overlap method, Bennett acceptance ratio, and thermodynamic integration." J. Phys. Chem. B, 108(5), 1579–1586.

3. GROMACS Manual (2024). Free Energy Calculation. https://manual.gromacs.org/2024/user-guide/analysis-free-energy.html

本文是依据公开文献来整理的, 参数范围需要以各模拟软件当前版本的手册为准。因为力场还有软件版本的更新会导致数值有变化, 所以请以最新文档作为最终的依据。假如发现数据有误的话, 是欢迎指正的。


(来源:爱搜体育网编辑部)

相关标签:

分享到:

4
联赛数据
数据加载中...
数据来源:懂球帝
免责声明:网所有文字、图片、视频、音频等资料均来自互联网,不代表本站赞同其观点,内容仅提供用户参考,若因此产生任何纠纷,本站概不负责,如有侵权联系本站删除!

请联系我们邮箱:207985384@qq.com

宁波阿君网络科技有限公司 版权所有

备案号:浙ICP备2026031558号

QQ

微信

Telegram

Whats

分享本页

aisoboke