GROMACS管理和扩展接口

简单的介绍一些关于管理和扩展GROMACS工作流程的第三方接口

gmxapi

介绍

gmxapi是一个python接口,主要目的是为了更加方便灵活的管理GROMACS的整个工作流程,提供对GROMACS2019及以后版本的支持。

安装

主要的安装流程分为两个方面,首先是对GROMACS进行相应的配置和编译;其次是安装gmxapi

GROMACS重新编译

因为这个外部的python接口需要调用gmx进行工作,因此首先也需要对GROMACS进行相应的设置。主要是在进行cmake阶段的时候添加一个-DGMXAPI=ON选项,这表明你已经打开了外部API接口。默认情况下是关闭的,然后重新编译gmx即可,并且已经将source /path/to/gromacs/bin/GMXRC添加到了~/.bashrc

gmxapi安装

  • 下载源码。主要可以通过两种方式下载,一种是直从它的Github仓库下载;另外你也可以通过git方式下载,比如执行如下命令:

    1
    git clone https://github.com/kassonlab/gmxapi.git
  • 编译并安装。首先进入目录,然后安装依赖包,最后执行安装,通常的命令如下:

    1
    2
    3
    cd gmxapi
    pip install -r requirements.txt
    pip install .

注意事项:有两个值得注意的地方,其一,你的系统必须有Python3,因为gmxapi需要安装networkx>=2.0其二,对于国内用户来说,你可以适当的调整一下pip安装命令的源,因为默认的国外安装源会导致依赖包下载十分的缓慢并且容易失败,你可以通过执行pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple来手动指定清华镜像源。

  • 测试
    可以通过如下命令测试是否正确的安装了gmxapi并调用GROMACS
    1
    pytest src/gmx/test/

通过Python运行

简单的运行单个或者多个tpr文件

  • 通过以下命令运行单个tpr

    1
    2
    3
    import gmx
    md = gmx.workflow.from_tpr("/path/to/md.tpr")
    gmx.run(md)
  • 通过以下命令运行多个tpr:

    1
    2
    3
    import gmx
    md = gmx.workflow.from_tpr(["/path/to/md1.tpr", "/path/to/md2.tpr", ...])
    gmx.run(md)

未完待续…

GRO2LAM

介绍

GRO2LAM是一个转换Gromacs输入文件为Lammps的工具。能够做一些简单体系的转换,并且直接用于Lammps模拟。

安装

  • GRO2LAM是一个基于Python-tk的图形界面软件,首先需要安装python-tk,Ubuntu系统安装则十分的简单,直接执行sudo apt install python-tk即可。然后下载软件包并解压,执行python setup即可完成安装。

  • Lammps的安装。网上有很多教程可以帮助你编译各种版本的程序。这里我为了省事直接按照如下命令安装:

    1
    2
    3
    sudo add-apt-repository ppa:gladky-anton/lammps
    sudo apt update
    sudo apt install lammps-daily

使用

使用方式直接执行./run即可。会出来如下界面:

可以看到上面两行是需要指定GROMACS格式文件的.gro(坐标)和.top(拓扑);接着三行是指定力场文件和参数的位置,最后一行是原子样式。我简单的用它Examples文件夹下的例子,然后点击Convert按钮,进入下面的对话框,如下图:

主要是一些Lammps参数的设置,我保持默认,然后点击Create按钮,进入下一个对话框,如下图:

主要是设置Lammps的版本和使用的CPU核心数,我设置为4,然后选择lammps-daily,点击Run按钮即可运行。

注意事项: 这里调用的是名为lmp_dailylammps程序。可以看到正常运行:

看起来还是挺方便的,不知道模拟的结果是否一致。

自己的体系

未完待续…

参考文献

[1] Irrgang, M. E., Hays, J. M., & Kasson, P. M. gmxapi: a high-level interface for advanced control and extension of molecular dynamics simulations. Bioinformatics 2018. DOI: 10.1093/bioinformatics/bty484
[2] Hernán Chávez Thielemann, Annalisa Cardellini, Matteo Fasano, Luca Bergamasco, Matteo Alberghini, Gianmarco Ciorra, Eliodoro Chiavazzo, Pietro Asinari. From GROMACS to LAMMPS: GRO2LAM A converter for molecular dynamics software. Journal of Molecular Modeling (2019) 25: 147. DOI: 10.1007/s00894-019-4011-x