一、简介
笔者课题组一直用 VENUS96 跑 QCT,之前都是直接改 VENUS96 的源码把坐标打印出来保存成多帧的 xyz 文件,改那个 FORTRAN77 代码挺折寿的。最近笔者出于一些目的需要把 VENUS96 跑的轨迹扔给 GROMACS 续跑,以及方便可视化与分析,写了这个 venus2gro 的脚本。代码已在 GitHub 以 BSD-2-Clause 协议开源,仓库地址 https://github.com/CQPES/venus2gro,欢迎 star, fork, issue, pr。
二、使用方法
先确保装好了 Python 与 numpy,其中 Python 版本至少要 3.7 及以上,推荐 3.9。先看一下 help 文档:
- $ python3 venus2gro.py -h
- usage: venus2gro.py [-h] -v VENUS -g GRO [-o OUTPUT] [-r REORDER] [--no-split]
- Convert trajectory in VENUS96 output to gro format with coordinates and velocities included.
- optional arguments:
- -h, --help show this help message and exit
- -v VENUS, --venus VENUS
- VENUS96 output file
- -g GRO, --gro GRO Template gro file (optional)
- -o OUTPUT, --output OUTPUT
- Output gro file (optional, defaults to traj_idx.gro)
- -r REORDER, --reorder REORDER
- Reorder map (optional)
- --no-split If specified, write all trajectories in one file. (optional)
复制代码1. 选项 -v 或 --venus 指定 VENUS96 的输出文件;
2. 选项 -g 或 --gro 选择拿来当模板的 gro 文件,因为 VENUS96 输出里只有坐标和动量,所以需要从这里读残基和原子的相关信息;
3. 选项 -o 或 --output 指定输出文件的名字,不指定默认为 traj.out,如果有多条轨线,会输出为 traj_0.gro, traj_1.gro, ...
4. 选项 -r 或 --reorder 指定重新排序原子文件,如果不需要重新排序使 VENUS96 里的原子顺序与模板 gro 文件里的一致,就不用指定。如果 VENUS96 中 CH4 分子的顺序是 H H H H C,模板 gro 文件里的是 C H H H H,这个文件里就写 5 1 2 3 4,一行只写一个,即 VENUS96 中的第 5 个原子在第 1 行,映射到模板 gro 文件中的第 1 个原子;
5. 选项 --no-split 指定不拆分轨迹,把所有 VENUS96 跑出来的轨迹写到一个文件里去。
三、例子
压缩包(其实就是打包好的 GitHub 仓库)里有个 example 文件夹,里面有这几个文件:
1. ch4.dt5 这是 VENUS96 的输入文件,里面定义了跑 5 条轨线,每个轨线跑 50,000 步,时间步长 0.1 fs;
2. ch4.out 这是 VENUS96 的输出文件,里面有 5 条轨线的速度和动量,等下要提取出来;
3. template.gro 模板 gro 文件,里面的坐标用不到,如果写了速度也用不到。
4. reorder.txt 重新排序用的索引文件,VENUS96 里的原子顺序是 H H H H C,模板 gro 文件里的 C H H H H。
运行如下命令,就可以得到 5 个 ch4_traj_序号.gro 文件,可以直接用 VMD 或者 PyMOL 打开来看,拿来分析。
- $ python3 ../src/venus2gro.py -v ch4.out -g template.gro -o ch4_traj.gro -r reorder.txt
复制代码
这是 VENUS96 输出文件的画风
转成 gro 文件(只看第 1 条轨线)
PyMOL 也能正常打开
四、参考
(1) Hase, W. L.; Duchovic, R. J.; Hu, X.; Komornicki, A.; Lim, K. F.; Lu, D.-H.; Peslherbe, G. H.; Swamy, K. N.; Vande Linde, S. R.; Varandas, A., Wang, H.; Wolf, R. J. VENUS96: A general chemical dynamics computer program, Quantum Chemical Program Exchange (QCPE) Bulletin, 1996, 16 (4), 671.
https://www.depts.ttu.edu/chemistry/Venus/index.php(2) Abraham, M. J.; Murtola, T.; Schulz, R.; Páll, S.; Smith, J. C.; Hess, B.; Lindahl, E. GROMACS: High Performance Molecular Simulations through Multi-Level Parallelism from Laptops to Supercomputers. SoftwareX 2015, 1–2, 19–25.
https://doi.org/10.1016/j.softx.2015.06.001.