3. 热力学循环与自由能变化:构建热力学循环,计算结合自由能差

好,我们接着往下聊。

上一节我们说了自由能是什么,也提到了结合自由能差这东西很关键。但问题来了——你总不能真的在实验室里把蛋白质和配体按上、按下,然后直接读出能量差吧?这玩意儿不是测电压。好在,我们有热力学这个老朋友帮忙。

3.1 为什么要绕一圈?

说白了,我们没法直接精确计算结合自由能的绝对值。模型误差、力场的近似,还有采样不充分,都会让直接算出来的数漂移得厉害。

但我们可以换一种思路。

热力学有一个很优雅的性质:状态函数的变化只取决于初态和终态,跟你走的路径没关系。这就是热力学循环的核心思想。

结合自由能差ΔΔG,说白了就是比较两个相似配体结合能力的差异。我们算的不是ΔG_bind本身,而是两个配体的ΔG_bind之差。这个差值,通过构造一个循环,可以拆成几个我们更容易算的项。

核心公式

ΔΔG = ΔG2 - ΔG1 = (ΔGwater) - (ΔGprotein)

换句话说,在蛋白中把一个配体“改造”成另一个所需要的自由能,减去在水环境中做同样改造所需的自由能,两者之差就是结合自由能差。

3.2 构建一个标准的双顶热力学循环

这是最常用的套路。我们来看一个具体的例子:

假设你有两个配体,A是参考化合物,B是修饰后的候选化合物。你想知道B比A的结合力强还是弱。

  1. 状态1: 蛋白 + 配体A (在水里)
  2. 状态2: 蛋白 + 配体B (在水里)
  3. 状态3: 蛋白-配体A复合物 (在水里)
  4. 状态4: 蛋白-配体B复合物 (在水里)

循环路径有两个方向:

  • 水平方向: 配体A和B在蛋白环境中互相转化(ΔGprotein)
  • 垂直方向: 配体与蛋白的结合过程(ΔGbind)
  • 另一个水平方向: 配体A和B在水环境中互相转化(ΔGwater)

现在,根据热力学循环闭合原理:

ΔG_bind(A) + ΔG_protein = ΔG_water + ΔG_bind(B)

所以:
ΔΔG = ΔG_bind(B) - ΔG_bind(A)
     = ΔG_protein - ΔG_water

看出门道了吗?你根本不需要直接算ΔG_bind。你只需要算两个“相对简单”的东西:在蛋白口袋里把A变成B需要多少能量,在水里把A变成B需要多少能量。两者相减,就是答案。

3.3 这个循环到底怎么用?

光知道公式不行,得动手。我一般会分三步走。

第一步:设置两个独立的模拟体系

一个体系是“蛋白 + 配体A”的复合物,另一个体系是纯水溶液中的配体A。

然后,在两个体系中,我都要把配体A“变成”配体B。

具体做法是引入一个耦合参数λ(lambda)。λ从0变到1,就代表配体从A变成了B。比如前处理时,两个体系的拓扑文件里都包含一个带有λ参数的混合势能。

一个小经验

我曾经在设置两个体系的溶剂盒子大小时偷懒,结果蛋白体系的盒子偏小,水体系盒子偏大,导致最后计算的ΔGprotein和ΔGwater的统计误差不对等。后来我就统一用相同体积的盒子,减少了一个系统误差来源。

第二步:跑多窗口的FEP/MD模拟

λ不能直接从0跳到1,中间要切很多个窗口。常见的做法是设11-21个窗口(λ = 0.0, 0.1, 0.2, ... 1.0)。每个窗口独立跑一段平衡和生产模拟。

模拟完后,要用工具提取相邻窗口的能量差。比如用BAR(Bennett Acceptance Ratio)或WHAM方法处理。

第三步:能量解析与差值计算

从蛋白体系得到ΔGprotein,从水体系得到ΔGwater。然后:

ΔΔG = ΔG_protein - ΔG_water

如果ΔΔG < 0,说明B比A结合得更强(负值更大)。
如果ΔΔG > 0,说明B比A结合得更弱。

避坑指南:

我曾经犯过一个低级错误——把ΔGprotein和ΔGwater的符号搞反了。结果算出一个漂亮的负值,欣喜若狂拿去汇报,后来发现B根本结合不上。符号问题在自由能计算中非常致命,每次跑完流水线我都建议做一次“双盲验证”:让实习生或同事独立算一遍,或者至少把路径反过来(B→A)重跑一遍,看ΔΔG是否变号。

3.4 热力学循环的优势与局限

对比项 直接计算法(不行) 热力学循环法(可行)
误差来源 多种:力场、采样、溶剂化 主要来自配体改造的“相对”变化
采样需求 需大量采样覆盖构象空间 相对小,因为两个配体相似
适用场景 理论上可以,实际不实用 先导化合物优化、骨架跃迁等
计算量 极大 适中,但需要多窗口

这个循环也不是万能药。比如当A和B的结构差异很大(比如加了一个大环)时,λ路径太陡,导致高能量阻碍,采样会崩溃。这时候就需要引入中间状态(软核势、分段微扰),但本质上还是热力学循环的变种。

3.5 把整件事串起来:一张图说明一切

下面这张SVG图把热力学循环直观地画了出来。你一看就明白我们到底在算什么。

热力学循环:计算结合自由能差 (ΔΔG) 蛋白 + 配体A (在水环境) 蛋白 + 配体B (在水环境) 水环境 + 配体A (无蛋白) 水环境 + 配体B (无蛋白) ΔGprotein ΔGwater ΔGbind(A) ΔGbind(B) 结果:ΔΔG = ΔGprotein − ΔGwater 负值 → 配体B结合更强;正值 → 配体A结合更强

你看,我们把一个复杂的结合问题,拆成了两个相对简单的“配体改造”问题。一个在蛋白里改,一个在水里改。两者之差抵消了大量系统误差,留下的就是精确的结合自由能差。

嗯,这就是热力学循环的妙处。绕了一圈,反而更准了。你想想看,是不是这个道理?