©️ Copyright 2024 @ Authors
作者:李博文📨
日期:2024-03-01
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 DeePMD-kit:pytorch-dpa-2.0 镜像及 c2_m4_cpu 节点配置,选取DPA2_model(v2) 数据集,稍等片刻即可运行。
在完成这个教程之后,你将能够:
- 学习过渡态理论与过渡态搜索中的基础知识
- 学会通过ASE调用DPA-2模型,通过CI-NEB方法进行过渡态搜索
1. 过渡态与过渡态搜索
过渡态搜索这一部分的理论已经有小伙伴讲解的非常详细,这边就不重复造轮子了~感兴趣的同学可以参考:ATST-Tools | ABACUS,ASE与过渡态理论的碰撞
2. 通过ASE调用DPA-2模型进行过渡态搜索
2.1 导入模型与数据
首先将模型和反应数据复制到我们所在的目录下。
. ├── model │ └── model.pt ├── rxn0 │ ├── neb.traj │ ├── p.xyz │ ├── r.xyz │ └── ts.xyz ├── rxn1 │ ├── p.xyz │ ├── r.xyz
│ └── ts.xyz └── rxn2 ├── p.xyz ├── r.xyz └── ts.xyz 4 directories, 11 files
可以看到有一个训练好的模型和若干实例反应,接下来先安装一些后面数据处理所需的库。
Requirement already satisfied: py3Dmol in /opt/mamba/lib/python3.10/site-packages (2.0.4) Requirement already satisfied: dpdata in /opt/mamba/lib/python3.10/site-packages (0.2.17) Requirement already satisfied: ase in /opt/mamba/lib/python3.10/site-packages (3.22.1) Requirement already satisfied: rmsd in /opt/mamba/lib/python3.10/site-packages (1.5.1) Requirement already satisfied: h5py in /opt/mamba/lib/python3.10/site-packages (from dpdata) (3.10.0) Requirement already satisfied: monty in /opt/mamba/lib/python3.10/site-packages (from dpdata) (2024.2.26) Requirement already satisfied: wcmatch in /opt/mamba/lib/python3.10/site-packages (from dpdata) (8.5) Requirement already satisfied: numpy>=1.14.3 in /opt/mamba/lib/python3.10/site-packages (from dpdata) (1.26.2) Requirement already satisfied: scipy in /opt/mamba/lib/python3.10/site-packages (from dpdata) (1.11.4) Requirement already satisfied: matplotlib>=3.1.0 in /opt/mamba/lib/python3.10/site-packages (from ase) (3.4.3) Requirement already satisfied: pyparsing>=2.2.1 in /opt/mamba/lib/python3.10/site-packages (from matplotlib>=3.1.0->ase) (3.1.1) Requirement already satisfied: cycler>=0.10 in /opt/mamba/lib/python3.10/site-packages (from matplotlib>=3.1.0->ase) (0.12.1) Requirement already satisfied: kiwisolver>=1.0.1 in /opt/mamba/lib/python3.10/site-packages (from matplotlib>=3.1.0->ase) (1.4.5) Requirement already satisfied: python-dateutil>=2.7 in /opt/mamba/lib/python3.10/site-packages (from matplotlib>=3.1.0->ase) (2.8.2) Requirement already satisfied: pillow>=6.2.0 in /opt/mamba/lib/python3.10/site-packages (from matplotlib>=3.1.0->ase) (10.1.0) Requirement already satisfied: bracex>=2.1.1 in /opt/mamba/lib/python3.10/site-packages (from wcmatch->dpdata) (2.4) Requirement already satisfied: six>=1.5 in /opt/mamba/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib>=3.1.0->ase) (1.16.0) WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
导入训练好的DPA-2模型,模型路径为:/root/model/model.pt
2.2 计算分子的能量与力
用ase读取一个xyz文件,并且尝试计算它的能量和力,注意ase默认输出的单位是电子伏特(ev)和埃(Å)。
energy:-8636.717467628849 (ev) forces:[[-1.16979954e-02 -8.11188200e-03 -9.46256525e-05] [ 3.64224220e-02 4.81465264e-02 8.15033011e-03] [ 6.83969372e-03 4.54776803e-02 -3.78356003e-04] [-7.19191241e-02 -1.76068434e-02 1.63492994e-03] [-1.95175025e-02 -3.02620462e-02 -8.43866504e-03] [-3.32095354e-02 -2.73219947e-02 1.32785867e-03] [ 5.96679969e-02 -1.22404825e-02 -2.29667202e-03] [ 3.29042145e-02 -3.23853076e-02 -8.74523257e-03] [ 5.09830203e-04 3.43043498e-02 8.84043258e-03]] (ev/Å)
2.3 进行过渡态的搜索
读取一个反应的反应物和产物,通过CI-NEB方法计算路径上的鞍点,这个点就是我们想要的过渡态。(这一步可能需要1-5分钟,请耐心等待)
Step Time Energy fmax *Force-consistent energies used in optimization. LBFGS: 0 13:19:57 -8633.801599* 5.6959 LBFGS: 1 13:20:08 -8634.239104* 4.0642 LBFGS: 2 13:20:20 -8634.516158* 3.4608 LBFGS: 3 13:20:31 -8634.592346* 1.5398 LBFGS: 4 13:20:42 -8634.639983* 1.2405 LBFGS: 5 13:20:53 -8634.662912* 0.7734 LBFGS: 6 13:21:04 -8634.678395* 0.6354 LBFGS: 7 13:21:15 -8634.692497* 0.9626 LBFGS: 8 13:21:26 -8634.694729* 0.8859 LBFGS: 9 13:21:38 -8634.693292* 0.5709 LBFGS: 10 13:21:49 -8634.695464* 0.5142 LBFGS: 11 13:22:00 -8634.696080* 0.3178 LBFGS: 12 13:22:11 -8634.695762* 0.3383 LBFGS: 13 13:22:22 -8634.696360* 0.2134 LBFGS: 14 13:22:33 -8634.696628* 0.1762 LBFGS: 15 13:22:45 -8634.696702* 0.1438 LBFGS: 16 13:22:56 -8634.696782* 0.1188 LBFGS: 17 13:23:07 -8634.696765* 0.0643 LBFGS: 18 13:23:18 -8634.696781* 0.0520 LBFGS: 19 13:23:29 -8634.696781* 0.0505 LBFGS: 20 13:23:40 -8634.696771* 0.0363
True
绘制能量变化的折线图,将路径上能量最高点的结构保存为xyz文件。
2.4 分析NEB路径最高点与真实过渡态的差异
看下标准过渡态结构和NEB路径上的能量最高点结构是否一致 (按住鼠标左键拖动,可以让分子在空间中旋转)
/root/rxn0/ts.xyz
/root/rxn0/neb_ci.xyz
计算NEB最高点的结构与标准过渡态的几何误差(单位:埃),对于小分子而言RMSD小于0.1就已经非常相似了。
0.00417101261925496
查看NEB计算得到的反应路径,感受化学反应的变化过程。
计算得到的路径与标准路径的能垒误差
rxn0/1/2的实际能垒:47.35/46.78/45.68kcal/mol
/root/rxn0的预测能垒:46.598 (kcal/mol)
量子御坂