CREST:核对精化后的能量与排序
从真实xTB优化输出恢复最终能量,重新生成和整理结构集合,避免新坐标配旧能量。
阅读本篇目录
计算做完以后,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份原生输出来源表均可下载。
如果自己的目录缺少最终优化日志或几何,就不能用别的结构能量随意补标签;应先找回相应输出,必要时对明确的最终几何重新做匹配方法单点。