计算化学公社

 找回密码 Forget password
 注册 Register
Views: 1759|回复 Reply: 2
打印 Print 上一主题 Last thread 下一主题 Next thread

[其它程序] openmm-g96-reporter:让 OpenMM 保存 GROMACS 兼容的 g96 格式轨迹的 reporter

[复制链接 Copy URL]

91

帖子

7

威望

2611

eV
积分
2842

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 mizu-bai 于 2024-2-28 10:49 编辑

openmm-g96-reporter:让 OpenMM 保存 GROMACS 兼容的 g96 格式轨迹的 reporter
author: mizu-bai
一、简介

笔者之前一直在用 GROMACS 跑分子动力学,最近出于某些原因开始使用 OpenMM 跑。如果说 GROMACS 是自动档的话,OpenMM 简直是给一堆零件自己去搭。在 OpenMM 中如果要保存轨迹的话,需要对 simulation 添加 reporter。目前 OpenMM 支持的 reporter 有 PDBReporter,DCDReporter,XTCReporter 等。笔者想偷懒使用之前分析 GROMACS 写的代码,就想了个办法让 OpenMM 导出 GROMOS 的 g96 文件,再转成 GROMACS 的 trr 与 xtc 格式。代码在 GitHub 以 BSD-2 协议开源 https://github.com/mizu-bai/openmm-g96-reporter

二、安装

由于 OpenMM 在使用时主要用 Python API,这里笔者假定使用者会 Python。进入安装了 OpenMM 的环境后,可以直接使用 pip 安装

  1. $ pip install git+https://github.com/mizu-bai/openmm-g96-reporter
复制代码

如果机器不联网的话,可以把代码压缩包上传后解压,进入目录后运行如下命令

  1. $ cd openmm-g96-reporter
  2. $ pip install .
复制代码

三、使用

使用方法基本和其他 reporter 一样,在构建完模拟用的 simulation 后,把 G96Reporter 添加进去即可

  1. from g96reporter import G96Reporter

  2. simulation.reporters.append(G96Reporter("traj.g96", 1000))
复制代码

模拟完成后,可以使用 GROMACS 将 g96 文件转为 trr 或 xtc。g96 文件里同时包括坐标和速度,如果不需要速度,可以在转换为 trr 时指定。同时也可以添加 -pbc 等 gmx trjconv 支持的选项对轨迹进行处理。由于 g96 文件是纯文本文件,占地面积比较大,可以考虑转换为 trr 或 xtc 后删除。

  1. $ gmx trjconv -f traj.g96 -o traj.trr # keep positions and velocities
  2. $ gnx trjconv -f traj.g96 -o traj.trr -novel # positions only
  3. $ gmx trjconv -f traj.g96 -o traj.xtc
复制代码

四、例子

代码包的 examples 目录下有一个例子,是 OpenMM 官方的从 PDB 构建模拟系统的,笔者把原本的 PDBReporter 换成了 G96Reporter,完成模拟并将轨迹转为 trr 或 xtc 后,可以正常用 VMD 或 PyMOL 打开查看。

openmm-g96-reporter-0.0.1.tar.gz (184.26 KB, 下载次数 Times of downloads: 4)

评分 Rate

参与人数
Participants 3
威望 +1 eV +10 收起 理由
Reason
JinxrDK + 5 谢谢
sobereva + 1
wxsxjj + 5 GJ!

查看全部评分 View all ratings

69

帖子

0

威望

945

eV
积分
1014

Level 4 (黑子)

2#
发表于 Post on 2025-11-14 20:23:21 | 只看该作者 Only view this author
可惜的是,会严重削弱速度,约50%(仅从笔者经历来看)。
改正错误有两个途径,一是别人发现,听取别人的批评;二是自我发现,进行自我批评。

91

帖子

7

威望

2611

eV
积分
2842

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2025-11-15 15:56:56 | 只看该作者 Only view this author
AxiEJohn 发表于 2025-11-14 20:23
可惜的是,会严重削弱速度,约50%(仅从笔者经历来看)。

确实……因为只会写 Python Fortran 不会 C++,能直接写 trr 肯定是最好的,速度和轨迹大小都会有很大提升

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-1-24 05:41 , Processed in 0.245815 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list