CREST:MSREACT 碎片与异构体候选
用实际乙醇流程生成碎片候选,说明私有版本、终端操作、结构文件、分子质量和候选分数。
阅读本篇目录
MSREACT 通过键畸变、可选原子扰动和几何优化,产生异构体与碎片组合候选。本篇实际使用乙醇,展示从输入到候选文件的操作。它用于生成候选化学结构,不能直接把这些文件当成实验质谱峰强度、反应势垒或产率。
1. 下载并看实际产物#
下载完整输入、原生候选、独立计算、数据和图片,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd crest-msreact-ethanol-products
module load ase/3.29.0
bash read.sh
bash plot.sh
默认读参考结果,不重新枚举候选。本次实际完成 7 组畸变和 1 次随机原子扰动,保留 8 个候选,包括 1 个异构体候选、7 组碎片对,最终选出 3 个示例目录。

2. 先准备程序与输入#
本例使用固定维护源码的 CREST 3.0.3、GNU Fortran、MKL,并通过 xTB 6.7.1 计算候选。私有程序加入一行显式 CREGEN 接口声明,适配该源码的可选参数接口;计算方法、候选算法和阈值保持原设置。它与公共 crest/3.0.2 分开。
若只看数据,不必构建。要运行本例,先在已申请的 CPU 环境构建到自己的家目录:
bash build-private.sh
脚本固定源码提交 62ff2c32ce6d4d6840c1e5b5a0e2f6c3eb186de9,程序安装到 ~/.local/ys-crest-msreact/bin/crest。完整补丁随包提供,只有 use cregen_interface 一行,不修改公共安装。
cat msreact-explicit-interface.patch
cat inputs/native-msreact/input.xyz
输入是中性闭壳层 C₂H₆O,9 个原子。若自己的分子带电或开壳层,应同步调整电荷、自旋与所有独立端点,而不是只改 XYZ 注释。
3. 提交原生流程#
在算例根目录:
bash submit.sh
squeue -u "$USER"
作业模板在 cpu-8173m 申请 56 核整节点,MSREACT 使用 2 线程。实际原生命令为:
crest input.xyz --msreact --msnbonds 1 --msnshifts 1 --msnshifts2 0 --msnfrag 3 --mslargeprint --gfn2 --chrg 0 --T 2
脚本会使用刚构建的私有程序。--msnbonds 1 限定用于枚举的键拓扑距离;它不是“整个分子最多只断一根键”的保证。--msnshifts 1 加入一次随机扰动;--mslargeprint 保留 MSDIR 与中间文件;--msnfrag 3 要求输出三个选择示例,不是总共只生成三个候选。
本输入已实际运行;极小分子或可用候选很少时不要盲目套用同样的输出数量。随机扰动重跑后的目录编号和候选集合可能变化,先核对结构,再做后续计算。
作业结束后:
bash read.sh work-new analysis-read
bash plot.sh
4. 哪个文件保存什么#
参考结果在 reference-results/native-msreact/;新任务对应 work-new/native-msreact/。
ls reference-results/native-msreact/MSDIR
head -12 reference-results/native-msreact/crest_allproducts.xyz
head -12 reference-results/native-msreact/crest_msreact_products.xyz
MSDIR/Pair_* 保存畸变相关计算,Distortion_1 是随机扰动分支。crest_allproducts.xyz 是候选集合,crest_unique_products.xyz 参与筛选,crest_msreact_products.xyz 保存处理后的产物结构。保留中间目录有助于核对原始几何和分数对应关系。
本次选择示例:
| 目录 | 实际结构 | 分子质量 g/mol |
|---|---|---|
| p1 | 乙醇同分子式的异构体候选 | 见 molmass |
| p2f1、p2f2 | C₂H₄ + H₂O | 28.05323 + 18.01529 |
| p3f1、p3f2 | C₂H₄O + H₂ | 44.05264 + 2.01588 |
cat reference-results/native-msreact/p2f1/mass
cat reference-results/native-msreact/p2f2/mass
head reference-results/native-msreact/p2f1/fragment.xyz
head reference-results/native-msreact/p2/pair.xyz
图中为了看清每个分子,对不同碎片做了刚性平移;分子内部坐标来自实际输出。
5. 候选分数为什么不能直接写成反应能#
cat reference-results/native-msreact/MSDIR/Pair_1/.xc2
head -5 data/CREST-MSREACT-raw-candidates.csv
原生候选搜索在这里使用 5000 K 电子温度和有限步数的 crude 优化。这不是分子核温度,也不是要求实验加热到 5000 K。程序为了展示碎片,还会改变不同片段之间的间距;移动后的显示坐标不代表自动做了一次新能量计算。
本例对 8 个原始、未作碎片展示平移的候选几何,使用同样 GFN2 和 5000 K 电子温度独立计算,最大能量差约 1.64×10⁻⁷ eV。这个对照用于确认分数的计算约定,不会把粗略候选变成充分优化的稳定产物。
下一篇核对产物身份并统一重算端点给出实际操作和两条原子守恒的电子能差。可参阅 CREST 官方 MSREACT 命令手册。