CREST专题

CREST:核对精化后的能量与排序

从真实xTB优化输出恢复最终能量,重新生成和整理结构集合,避免新坐标配旧能量。

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

计算做完以后,XYZ第二行写着一个能量,并不保证它就是当前坐标的最终能量。本例用三组真实精化数据说明怎样核对、怎样从已有输出修复,整个修复过程不重复结构优化。

1. 读取原始标签与修正结果#

下载完整输入、实际原生输出与读取绘图程序,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd crest-hybrid-refinement
bash read.sh
bash plot.sh

默认读取附带结果,数据在 analysis-read,图片在 figures,不会重新计算。

原始注释的偏差、完整候选恢复和初始/最终能量关系

2. 从一个优化日志开始看#

grep -n -E 'total energy|TOTAL ENERGY' \
  reference-results/gfnff/PROP/TMPCONF1/xtb.out
cat reference-results/gfnff/PROP/TMPCONF1/xtbopt.xyz

同一份xTB日志可能依次出现初始能量、各优化步能量和最后的能量汇总。这个例子中,旧式汇总程序先遇到小写 total energy,取到了初始值;后面还有大写 TOTAL ENERGY 的最终汇总。

本次原始标签与最终几何独立单点的最大偏差约 0.00155 Eh,约0.97 kcal/mol。这类差别可能改变接近能量结构的排序,不宜只因为程序结束就直接使用旧注释。

3. 重建时不要只拿已筛选的记录#

原始后处理可能已经用错误能量筛选过一次。应从 全部 PROP/TMPCONF* 优化输出恢复候选,而不是只修改剩下的几条记录。

本包 relabel-final-energies.py 将每一份最终 xtbopt.xyz 与同目录最后的 TOTAL ENERGY 配对,生成 corrected.xyz 和能量来源表。完整提交脚本已经自动完成;如果接手的是同样目录布局的旧计算,可在独立副本上运行:

module load ase/3.29.0
python3 relabel-final-energies.py work-new

脚本要求目标输出尚未存在,以免把不同次计算混在一起。不要对已经完成整包流程的同一目录重复运行此生成步骤。

4. 再整理集合#

在对应目录中执行,例如:

cd work-new/final-gfnff
~/.local/ys-crest-tools/bin/crest input.xyz \
  --cregen corrected.xyz --noref --T 2
head corrected.xyz.sorted

这一阶段只处理已有结构及能量,不重新优化25个候选。三个基础方法的目录分别整理,随后统一比较GFN2结果。

5. 检查自己的结果#

bash read.sh work-new analysis-read
cat analysis-read/CREST-hybrid-final-refinement.csv

本次14条最终记录的标签与独立GFN2单点最大差约 5.1×10⁻¹¹ Eh。最终数据、原始注释对照和25份原生输出来源表均可下载。

如果自己的目录缺少最终优化日志或几何,就不能用别的结构能量随意补标签;应先找回相应输出,必要时对明确的最终几何重新做匹配方法单点。

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

查看配图

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

100%查看原图 ↗