GithubHelp home page GithubHelp logo

spiwokv / gmxapi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kassonlab/gmxapi

0.0 2.0 0.0 1.01 MB

Gromacs API

License: GNU Lesser General Public License v2.1

CMake 5.75% Shell 0.66% Dockerfile 0.33% C++ 71.67% Python 21.58%

gmxapi's Introduction

The gmxapi project provides interfaces for managing and extending molecular dynamics simulation workflows. In this repository, a Python package provides the gmx module for high-level interaction with GROMACS. gmx.core provides Python bindings to the gmxapi C++ GROMACS external API.

The project is hosted on GitHub and includes the gmxapi repository along with supporting respositories. The gromacs-gmxapi repository includes a modified version of GROMACS that supports the latest gmxapi features not yet available through an official GROMACS distribution. A sample repository illustrates how to implement a GROMACS plugin that applies restrained-ensemble forces to a loosely-coupled ensemble of simulation trajectories.

The whole thing is driven at the highest level by a simple Python interface.

See the latest gmxapi documentation at http://gmxapi.readthedocs.io/en/latest/

Reference:

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

Current master branch

Build Status Documentation Status

Development branch

Build Status Documentation Status

Note: automated documentation generation may not be up to date for development branch.

Running simulations from Python

To run a simulation as you would with the gmx command-line tool, a gmxapi Python script would look simply like the following.

    import gmx
    md = gmx.workflow.from_tpr('myTPRfile.tpr')
    gmx.run(md)

With a plugin, such as the sample ensemble-restraint, you can run a coupled ensemble of simulations that collectively refine a bias potential. Assuming tpr_list is a Python list of input files defining the ensemble, and params is a Python dictionary of keyword arguments,

    import gmx
    import myplugin

    md = gmx.workflow.from_tpr(tpr_list)
    potential = gmx.workflow.WorkElement(
        namespace="myplugin",
        operation="ensemble_restraint",
        depends=[],
        params=params)
    potential.name = "ensemble_restraint_1"
    md.add_dependency(potential)
	gmx.run(md)

Currently, given an MPI environment, gmxapi would run the above workflow on a number of nodes equal to the length of the tpr_list array, parallelizing each simulation across a single node, periodically sharing data via MPI calls across the ensemble.

gmxapi is just entering beta, so many more features and more flexibility are to come. Feel free to make suggestions or describe your own priorities and research needs in the issue tracking system.

Installation and getting started

A compatible version of GROMACS must either be already installed or may be installed as part of package installation. See gromacs-gmxapi

We recommend installing gmxapi in a Python virtual environment. See docs/install.rst for details or refer to the online user documentation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.