计算化学公社

标题: openmm-g96-reporter:让 OpenMM 保存 GROMACS 兼容的 g96 格式轨迹的 reporter [打印本页]

作者
Author:
mizu-bai    时间: 2024-2-28 10:45
标题: openmm-g96-reporter:让 OpenMM 保存 GROMACS 兼容的 g96 格式轨迹的 reporter
本帖最后由 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 打开查看。

(, 下载次数 Times of downloads: 4)

作者
Author:
AxiEJohn    时间: 2025-11-14 20:23
可惜的是,会严重削弱速度,约50%(仅从笔者经历来看)。
作者
Author:
mizu-bai    时间: 2025-11-15 15:56
AxiEJohn 发表于 2025-11-14 20:23
可惜的是,会严重削弱速度,约50%(仅从笔者经历来看)。

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




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3