PLUMED专题

PLUMED OPES重加权:用原生命令提取自由能

READ与REWEIGHT_BIAS实际读取四组轨迹,按相同丢弃区间和分箱重建已知自由能。

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

得到增强采样轨迹后,不能直接把受偏置的坐标直方图当成无偏自由能。本篇接着OPES模型运行,先用PLUMED原生命令生成对数权重,再统计自由能,与已知解析曲线比较。

1. 先用现成结果学习#

下载OPES运行、重加权与STATE资料包,保存为example.zip:

python3 -m zipfile -e example.zip .
cd plumed-opes-complete
bash results.sh
bash read.sh
bash plot.sh

这几条命令读取已保存的实际结果,生成analysis-read/与figures/,不重跑MD。

cat data/OPES-summary.csv
head reference-results/extra-checks/opes_metad-797101-weights/WEIGHTS

2. 原生重加权输入#

在保存COLVAR的后处理目录中,使用:

UNITS NATURAL
x: READ FILE=COLVAR VALUES=d.x IGNORE_TIME IGNORE_FORCES
bias: READ FILE=COLVAR VALUES=b.bias IGNORE_TIME IGNORE_FORCES
w: REWEIGHT_BIAS ARG=bias.bias TEMP=1
PRINT ARG=x.x,bias.bias,w STRIDE=1 FILE=WEIGHTS FMT=%24.16e

这里有两个容易混淆的地方:

  • 原文件字段叫d.x,读取后完整引用名为x.x;原字段b.bias读取后是bias.bias。要按输出组件名引用。
  • 本模型的physical: BIASVALUE承担真实物理势,不能再作为需要消除的增强采样偏置;因此明确只用ARG=bias.bias。

核心终端命令:

"$plumed_prefix/bin/plumed" driver   --plumed plumed.dat --noatoms --timestep 0.05

它读取已有的每0.05自然时间单位一行的COLVAR,不重新运行MD。run.sh已为四组案例执行这一步,输出在work/extra-checks/*-weights/WEIGHTS。

3. 从权重到自由能#

本例kBT=1,原生w列是对数权重V_bias/kBT。独立读取程序逐行检查全部80004个输出值,并用exp(w−max(w))避免数值溢出。

按同一规则比较四组案例:

  1. 丢弃前50000步,即时间不大于250的帧。
  2. 每组保留15000个实际输出样本。
  3. 在[-1.5,1.5]分成60箱,计算加权直方图。
  4. 用F=−kBT ln P得到曲线,并在|x|≤1.25区间对齐任意能量常数。
bash read.sh
head data/OPES-reweighted-FES.csv
bash plot.sh

原生权重重建的自由能

4. 本次实际结果#

方法 种子 保留区间的x=0穿越计数 FES RMSE / kBT 最终压缩核数
OPES_METAD 797101 169 0.1450 54
OPES_METAD 797202 140 0.1139 52
OPES_METAD_EXPLORE 797101 135 0.1115 28
OPES_METAD_EXPLORE 797202 114 0.1377 25

解析参考为F(x)=4(x²−1)²+常数。这里只比较同一教学模型、同一分箱和同一有限区间;穿越次数不是反应速率,两个种子也不足以证明任意材料自由能已经收敛。

COLVAR中的rct是供观察的诊断量。按OPES官方说明,本例不把它减入重加权公式。对于存在其他真实增强采样偏置的任务,需要按物理定义一起处理,不能一律照搬本模型的单偏置选择。

另外,(Σw)²/Σw²只是本次保存样本的名义权重有效数,没有消除时间自相关;不要把它当成独立样本数量或收敛证明。

自己的新结果使用:

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

查看配图

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

100%查看原图 ↗