CREST:产物身份与反应端点重算
先用坐标区分同分异构体,再统一优化乙醇、乙烯、水、乙烯醇和H₂,实际计算两条端点能差。
阅读本篇目录
接续MSREACT 候选生成。候选枚举结束后,先确认分子的连接方式,再用统一条件计算反应物和产物。分子式相同不等于同一异构体,目录名也不能代替结构判断。
1. 下载、提取与绘图#
下载实算输入、端点结果和绘图包,在 crest-msreact-ethanol-products/ 中:
module load ase/3.29.0
bash read.sh
bash plot.sh
cat analysis-read/CREST-MSREACT-species-identity.csv

2. 本例 C₂H₄O 是乙烯醇#
python3 identity.py
默认检查本例优化后的 C₂H₄O,输出:
Formula: C2H4O
C1: attached H = 2
C2: attached H = 1
O3: attached H = 1
C1-C2: 1.321316 Angstrom
C2-O3: 1.363571 Angstrom
它是 CH₂=CH–OH,乙烯醇,不是 CH₃–CHO 乙醛。两个碳各连 2、1 个 H,氧连 1 个 H;C=C 和 C–O 距离也与这一连接方式一致。identity.py 用 ASE 读取真实坐标,报告单分子中 H 与最近重原子的连接及重原子距离,作为结构检查的辅助,不是任意复杂体系的自动命名器。
检查自己的 XYZ:
python3 identity.py molecule.xyz
不要把乙烯醇的能量填入乙醛的反应式。本例数据文件使用 vinyl-alcohol 明确标记身份。
3. 五个端点统一计算#
实际优化以下中性闭壳层分子:乙醇、乙烯、水、乙烯醇、H₂。统一用 xTB 6.7.1、GFN2、300 K 电子温度、tight 优化,然后读取完整原子梯度。
ls inputs/endpoints-300K
cat inputs/endpoints-300K/vinyl-alcohol/input.xyz
完整包的 bash submit.sh 会先运行 MSREACT,再执行同条件独立候选计算和五个端点。仅参考单个端点的终端命令时,在已申请 CPU 的独立计算目录运行:
module load xtb/6.7.1
xtb input.xyz --gfn 2 --etemp 300 --chrg 0 --uhf 0 --opt tight --json --norestart -P 1 > optimize.log 2>&1
优化后,在新目录对 xtbopt.xyz 做最终梯度:
mkdir force-components
cp xtbopt.xyz force-components/input.xyz
cd force-components
xtb input.xyz --gfn 2 --etemp 300 --chrg 0 --uhf 0 --grad --json --norestart -P 1 > gradient.log 2>&1
新的候选搜索可能改变产物编号。本例端点输入是已确认身份的实际分子,独立存放,不会因某次随机搜索把 p2、p3 改了顺序就换成别的化学物种。
4. 实际能量与力#
cat analysis-read/CREST-MSREACT-300K-endpoints.csv
cat analysis-read/CREST-MSREACT-300K-reaction-energies.csv
| 分子 | 本例电子能量 Eh |
|---|---|
| 乙醇 | −11.39433901 |
| 乙烯 | −6.27126015 |
| 水 | −5.07054434 |
| 乙烯醇 | −10.34183074 |
| H₂ | −0.98268617 |
五个端点的实际最大原子力均低于 0.02 eV/Å。数据表同时保留整体梯度范数和逐原子力;它们不是同一个量,不能把整体范数直接当作某一个原子的最大力。
反应式逐个检查 C、H、O 原子守恒:
C2H6O -> C2H4 + H2O
C2H6O -> CH2=CHOH + H2
DeltaE = sum(E_products) - E_ethanol
| 端点组合 | ΔE eV | ΔE kcal/mol |
|---|---|---|
| 乙醇→乙烯+水 | 1.429537 | 32.965913 |
| 乙醇→乙烯醇+H₂ | 1.899956 | 43.814034 |
正值只说明在本例统一计算条件下,给定孤立产物的电子能量之和更高。它不表示反应路径和过渡态已经找到,也没有给出温度下的反应自由能、平衡常数或质谱峰强度。
5. 换成自己的体系#
保留原生候选坐标与分数,先用结构和连接关系确认物种,再统一方法、电子温度、电荷、自旋和优化标准。带电碎片尤其要检查电荷之和,开壳层碎片要使用相应自旋。
若需要 ΔG,再对适用的端点计算频率及统一热力学校正、标准态和溶剂;若需要势垒,应进一步寻找并确认反应路径和过渡态。MSREACT 提供候选入口,后面的物性需要对应的计算步骤。