GROMACS专题

GROMACS WHAM与径向PMF实操

对应TPR与窗口轨迹,查看重叠、去除谐偏置,并解释三维距离的径向几何修正。

更新于 2026-10-30约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载完整输入、实际拉伸与窗口轨迹、WHAM和绘图脚本。解压进入资料包目录,先处理已有结果:

bash analyze.sh

图片在 reference/figures,CSV和完整统计在 reference/analysis。想重新计算整套流程,在新解压目录执行:

bash submit.sh

脚本依次提交拉伸取结构、16个窗口数组任务、WHAM与绘图;每个窗口任务顺序跑两组种子。每个模拟任务申请1张P100、2个CPU核心,不要在登录节点运行模拟。最后的分析任务主要用CPU,附件模板仍按相应GPU分区分配资源与计费;已有结果可以直接提取,无需重新跑MD。

使用 gromacs/2026.4-p100-threadmpi,GNU13.3、CUDA12.8、thread-MPI/OpenMP、混合精度构建;数据分析使用ASE3.29.0环境中的Python、NumPy/SciPy和Matplotlib。生产阶段短程相互作用与PME使用GPU,坐标更新、约束和部分其他计算仍在CPU执行。这里的750 ps拉伸和32个窗口/种子条件组成一个多步工作流,不是33种独立性质。

1 WHAM输入为什么要一一对应#

每条窗口轨迹来自各自的偏置中心和力常数,WHAM需要同时读取TPR与pullx。顺序错了,即使程序正常结束,所去除的偏置也可能不对。

本资料包分析前,按每行实际时间保留100–1000 ps的4501条距离记录;原始 md_pullx.xvg 完整保留。操作只需:

module purge
module load gromacs/2026.4-p100-threadmpi
python3 -B run_wham.py reference

重跑数据将 reference 换成 work。脚本建立三组TPR/pullx列表:seed1、seed2、pooled,输出在 native-wham;列表行顺序来自同一份窗口清单。

2 原生WHAM命令#

在 reference/native-wham 中,单组命令可以写成:

gmx wham -it seed1-tpr.dat -ix seed1-pullx.dat \
  -b 0 -min 0.2 -max 1.2 -bins 200 -temp 300 \
  -tol 1e-8 -zprof0 0.9 -unit kJ \
  -o manual.xvg -hist manual-hist.xvg

先在资料包根目录运行 bash analyze.sh,列表便会按当前解压位置重建。上述命令与资料包使用相同的0.2–1.2 nm范围、200个bin和接近0.9 nm的零点,便于不同种子和采样时间比较。筛选文件已经保留100–1000 ps,所以命令不再第二次截掉100 ps。

WHAM从TPR读取谐偏置,按各窗口的采样数重建未加偏置的分布。它不能自动补足没有访问的构象,也不能用程序收敛替代分子动力学采样收敛。

3 先看直方图,再读曲线#

实际16个窗口及相邻直方图重叠

左图是两次种子合并后的真实有偏分布。中心间距0.05 nm,输入k=1500 kJ mol⁻¹ nm⁻²,使相邻窗口仍有重叠。右图的诊断定义为两个归一化直方图逐格取较小值再求和;完全相同分布给1,本例最小约0.382。它不是通用MBAR重叠矩阵,不能与别的诊断阈值直接混用。

若相邻窗口之间几乎没有重叠,应增加中间窗口、调整合适的力常数,并检查起点和慢构象。曲线端点尤其容易受到少量样本支配。

4 距离坐标自由能与两粒子径向平均力势#

对本例三维距离坐标,直接重建的是:

F(r) = -RT ln P(r) + constant

球壳的可及体积随r²增大。若要去掉这部分几何熵,得到两粒子的径向PMF,可写为:

w(r) = -RT ln[P(r)/(4πr²)] + constant
     = F(r) + 2RT ln r + constant

这里是加 2RT ln r。对Cartesian的z坐标等其他反应坐标,几何因子不同,不能机械套用这条公式。

实际距离坐标自由能和径向修正后的PMF

图统一在r=0.8975 nm的bin中心设为0;PMF的加性常数是任意的。下表列实际合并数据的径向PMF和50 ps块重采样标准差:

r / nm w(r) / kJ mol⁻¹ 块标准差 / kJ mol⁻¹
0.2825 -7.3278 0.5438
0.3825 4.1186 0.3695
0.4825 -2.4390 0.3137
0.6325 -0.2776 0.2710
0.8325 -0.0153 0.1534
0.8975 0.0000 0.0000
1.0325 0.1385 0.1675

这些是当前短轨迹和模型的结果;接触区仍随采样时间变化,不能把四位小数理解为真实物理精度。它也没有给出标准态缔合自由能:若要从径向PMF求缔合常数,还需定义结合区域、做带球壳体积权重的积分并处理标准态。

5 空bin与数据精度怎样处理#

本例200个bin中,合并数据有187个bin实际出现样本。原生输出在零直方图区间也可能显示普通数字,不能把这些数字解释成物理平台或势垒。配套CSV将未采样区标为无数据,图仅展示合并样本数不少于20的bin;完整原始直方图和原生曲线保留。

脚本按当前混合精度构建的分箱约定核对原生结果,并另存普通双精度分箱的对照。刚好位于bin边界的有限打印精度数据可落入相邻格;正式比较时要统一边界、bin宽和输出精度。

6 导出曲线与全部统计#

bash analyze.sh
head reference/analysis/PMF-profile.csv
head reference/analysis/umbrella-states.csv

CSV同时保留径向坐标F、修正后的w、样本数和时间块误差,不能只保留一条平滑的最终曲线。原生用法见 gmx wham官方说明;方法原文见 Hub等,2010。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗