CREST:pKa自由能与经验校正
读取真实溶液电子能、RRHO和Ecorr,重建pKa并演示带明确校正含义的集合文件重读。
阅读本篇目录
pKa 输出里有电子能、溶剂项、RRHO 和经验校正,不能把它们重复相加。本篇读取乙酸例子的实际分项,解释怎样保持同一计算口径。
1. 读取与画图#
下载完整输入、实际结果、CSV和读取绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd crest-pKa-acetic-acid
bash read.sh
bash plot.sh
默认读取 reference-results,生成 analysis-read 和 figures。数据也可单独下载:CREST-pKa-FER.csv、CREST-pKa-components.csv。
本例使用独立 CREST 3.0.3,GNU Fortran 与 MKL 编译,配套 xTB 6.7.1。需要重算且尚未建立个人 3.0.3 程序时,在已分配的 CPU 作业内先运行 bash build-private.sh;首次构建需访问源码仓库。程序放在 ~/.local/ys-crest-tools/bin/crest,其他本专题使用此入口的教程可以共用。已有该入口则直接使用。CPU 提交模板申请 56 核整节点,实际使用 2 线程。

2. 先分清电子能和自由能#
grep -E 'TOTAL ENERGY|TOTAL FREE ENERGY|G\(RRHO\)' reference-results/full-pka/ACIDcalc/xtb.out
grep -E 'TOTAL ENERGY|TOTAL FREE ENERGY|G\(RRHO\)' reference-results/full-pka/BASEcalc/xtb.out
head -5 analysis-read/CREST-pKa-components.csv
本例 TOTAL ENERGY 已包含 ALPB 溶液贡献,不要再加一次 Gsolv。G(RRHO) contrib. 是包含零点与热化学贡献的相应校正,和电子能相加得到本例的溶液自由能:
| 物种 | 溶液电子能/Eh | RRHO贡献/Eh | 溶液G/Eh |
|---|---|---|---|
| 乙酸 | −14.47194210 | 0.03162053 | −14.44032157 |
| 乙酸根 | −14.27353761 | 0.02017466 | −14.25336294 |
同几何独立 GFN2/ALPB 单点与原生电子能相差约 2.2×10⁻¹⁰ Eh以内;这是分项与读取的一致性,不代表模型的化学精度。
3. 为什么还要Ecorr#
本例原始自由能差为 0.18695863 Eh,原生 Ecorr 约 0.2456712446 Eh,进入该经验关系的有效能量差约 0.43262987 Eh。
grep -E 'Ecorr|pKa|c0|c1|c2|c3' reference-results/full-pka/native.log
head -3 analysis-read/CREST-pKa-FER.csv
程序按298.15 K和其固定 GFN2 参数计算多项式,独立重建约6.53,与原生输出一致。这一套校正与参数要配套使用;它并不是通用、可搬到其他分子的固定加数,也不要再额外混入一套不同定义的质子自由能。
4. 集合文件重读怎样保持同一口径#
本包 effective-energy-ensemble 示例仅有一个实际酸结构和一个实际碱结构。酸注释行使用本次溶液G;碱注释行明确使用 G(base)+Ecorr,作为这一套经验关系的有效输入能量,不能再称其为未经校正的原始溶液自由能。
在已分配的作业环境,核心调用为:
~/.local/ys-crest-tools/bin/crest input.xyz --pka 5 \
--pkaensemble acid-ensemble.xyz base-ensemble.xyz --gfn2 --T 1
实际重读同样得到6.53。本例没有添加虚构构象,也没有把单结构重读当成完成了集合采样。
head -3 reference-results/effective-energy-ensemble/acid-ensemble.xyz
head -3 reference-results/effective-energy-ensemble/base-ensemble.xyz
cat reference-results/effective-energy-ensemble/EXECUTION.json
文件中的账目同时保存原始 GB_raw_Eh、Ecorr_used_Eh 和 effective_GB_Eh。作为对照,若把未经相应校正的原始两列G直接送入这一参数口径,虽然程序仍会输出有限数值,却不能复现完整流程;本包把这种输入放在单独的 raw-G-no-correction-control 目录,不作为有效化学预测。
5. 换成自己的集合前#
先统一计算方法、溶剂、温度、标准态、校正及构象简并度,再组织酸碱集合。不能把本例的 Ecorr 复制到别的分子,也不能把气相电子能放进要求溶液自由能的注释行。
bash submit.sh
# 完成后读取本次新结果
bash read.sh work-new analysis-read
bash plot.sh
本包的完整流程会为自己的输入重新计算相应分项;独立绘图只处理已有结果,不再次优化结构。
参数参考:该固定版本附带的CREST命令手册。具体操作和结果见上面的实际输入。