|
|
本帖最后由 student0618 于 2025-10-24 16:13 编辑
0. 前言
最近需要批量进行几百个体系,含多于一个柔性分子的团簇构型搜索和分子构象搜索。由于已知特定要保留的相互作用,使用packmol建模后加了平底势用GROMACS跑、再转换成给Molclus用的traj.xyz。要在集群用VMD 转换几百个轨迹太麻烦,找grok辅助写了个python小脚本作批量处理,在此分享一下。
xtc2xyz.py
(2.08 KB, 下载次数 Times of downloads: 9)
1. 脚本框架
- 读取分别写有tpr文件路径及xtc文件路径的tprfiles.dat及xtcfiles.dat
- 检查两者是否一致
- 每一个tpr/xtc组合,用MDAnalysis加载拓朴及轨迹
- 让MDAnalysis从原子名猜元素名
- 让MDAnalysis将xyz轨迹写入tpr/xtc文件同一子目录的traj.xyz
2. 使用方法
2.1. 用Packmol建模、GROMACS跑模拟,具体模拟方法不是重点先跳过,有需要者请搜论坛相关帖文。重点是:
- 每个模拟请分开放一个自己的子目录。
- 为方便处理文件名最好统一。
- 轨迹先处理好,批量trjconv不难的。
2.2. 确保Python 3及MDAnalysis库已正确安装。
- 测试用版本为Linux中Conda环境的Python 3.12及MDAnalysis 2.7.0
2.3 生成xtcfiles.dat及tprfiles.dat:- 示例中,所有的gmx tpr文件爲放在任何子目录的search.tpr,search.xtc爲任何子目录中已经处理好的xtc文件
- find -name search.tpr > tprfiles.dat
- find -name search.xtc > xtcfiles.dat
复制代码- 关于拓朴及轨迹文件格式
- 除了tpr拓朴,也可以用e.g. pdb或gro拓朴,这在部分情况可能较方便。例如用显式溶剂时compressed-x-grps只输出团簇轨迹、可以直接用没加溶剂的pdb/gro当拓朴省去转换的步骤。不过跑gmx一定会用到tpr,所以示例就当是用真空跑的搜索直接用tpr。
- 理论上,这一个脚本可处理任何MDAnalysis支持的拓朴+轨迹组合而不用作任何修改,只需把拓朴路径连文件名放tprfiles.dat、轨迹路径连文件名放xtcfiles.dat。
- 运行脚本
- 进度会在Terminal输出。
- 成功后,各traj.xyz文件可以在tpr/xtc同一子目录找到。
3. 结语
以上分享了一个批量转换子目录中指定xtc轨迹爲traj.xyz的python脚本,希望可以帮到大家。如有问题请不吝指出。
4. 参考资料
5. 鸣谢
- 感谢Grok4辅助、写logging info及解决MDAnalysis 找不到tpr中element的问题。
6. 备注
6.1. 使用各程序需正确引用:
- 脚本调用MDAnalysis库需正确引用相关文章。
- 如果使用Packmol请正确引用相关文章。
- 如果使用GROMACS请正确引用相关文章。
- 后续使用Molclus及Multiwfn都要正确引用。
- 后续使用xtb/MOPAC/Orca/Gaussian都要正确引用。
6.2. 更新
(Oct 24, 2025) 其他格式: 测试了pdb及gro拓朴,补充用法后从备注移至正文。
|
评分 Rate
-
查看全部评分 View all ratings
|