CREST专题

CREST:柔性分子的构象聚类

用七碳链的9条实际优化结构运行PCA和k-means,给出完整命令、能量与二面角图。

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

当构象很多、后续计算成本较高时,可以先聚类,选出少量代表结构。本例使用自建七碳链C₇H₁₆候选,先GFN-FF优化,再运行CREST原生二面角PCA/k-means。

1. 先查看实际数据#

下载完整输入、实际结果与读取绘图脚本,保存为 example.zip:

python3 -m zipfile -e example.zip .
cd crest-heptane-clusters
bash read.sh
bash plot.sh

这两步读取附带的实际结果,生成 analysis-read 数据与 figures 图片;不会重新计算。要换成自己的输入,请先阅读下面的流程。

9条优化结构的实际能量、独立二面角可视化和骨架扭转角

橙色柱为原生程序选出的3条代表记录。中间散点图是另做的sin/cos二面角特征投影,不是CREST输出的原生PCA坐标;它用于辅助看结构分布。完整数据见能量与二面角CSV。

2. 准备候选集合#

本例共9条候选记录:一条已计算的全反式结构,加8条新扭转候选。8条新结构实际运行GFN-FF优化后,与原有那一条合并。不是9个不同分子,也没有证明它们属于9个独立最低点。

第一条新候选的完整23原子输入可直接查看:

head -25 inputs/corrected-batch-opt/candidates.xyz

XYZ每条记录第一行为原子数、第二行为注释,后面为Å坐标。尚未计算的候选没有能量标签;优化后才将真实计算能量写入集合。对自己的体系,应保持原子顺序与分子连接关系一致。

3. 优化,再合并,再聚类#

本例使用独立 CREST 3.0.3,GNU Fortran与MKL编译,配套xTB 6.7.1。首次需要个人入口时,在已分配CPU作业中运行 bash build-private.sh,生成 ~/.local/ys-crest-tools/bin/crest。已有本专题该入口可以共用。CPU模板申请56核,程序实际2线程。

在已分配作业内,先优化8条新候选:

~/.local/ys-crest-tools/bin/crest input.xyz \
  --mdopt candidates.xyz --gfnff --T 2 --keepdir

优化得到 crest_ensemble.xyz,各记录含真实能量。将已有有效结构放在 all-trans-previous.xyz 后合并:

cat all-trans-previous.xyz crest_ensemble.xyz > ensemble.xyz
~/.local/ys-crest-tools/bin/crest input.xyz \
  --for ensemble.xyz --cluster 3 --gfnff --T 2 --keepdir

包内已经串好目录和文件传递:

bash submit.sh
# 计算完成后
bash read.sh work-new analysis-read
bash plot.sh

4. 本次实际得到什么#

原生输出实际进行了SVD/PCA,保留4个主成分,归一化贡献约 25.89%、25.31%、24.67%、24.13%;随后按指定数目分成3簇,写出 crest_clustered.xyz。

9条记录的GFN-FF能量范围约 2.3463 kcal/mol。聚类不是只取能量最低的3条;它同时考虑构象描述符。相近能量的记录也可能有不同骨架扭转。

5. 为什么小分子有时没有真正PCA#

二面角描述符太少时,程序可能直接提示数量不足,把全部结构写成代表记录。输出了 crest_clustered.xyz 并不总意味着进行了PCA。本例七碳链有足够骨架扭转描述符,原生日志明确列出主成分和聚类统计。

grep -A5 'principal component eigenvalues' reference-results/cluster-corrected/native.log
grep -A8 'Representative structures' reference-results/cluster-corrected/native.log

参数含义可参考CREST官方聚类选项。选择代表结构后的操作见代表结构与后续计算。

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

查看配图

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

100%查看原图 ↗