Code Monkey home page Code Monkey logo

gmso's Introduction

GMSO: General Molecular Simulation Object

Build Status codecov

GMSOis a flexible storage of chemical topology for molecular simulation. With a few lines of GMSO code, together with mBuild and foyer, users can rapidly prototype arbitrary parameterized chemical systems and generate data files for a wide variety of simulation engines.

To learn more, get started, or contribute, check out our Documentation.

GMSO within the MoSDeF Ecosystem

GMSO within the MoSDeF Ecosystem

This is an example using mBuild and Foyer to build a GMSO topology through ParmEd and write out to LAMMPS.

import foyer
from mbuild.lib.molecules import Ethane
from gmso.external.convert_parmed import from_parmed
from gmso.formats.lammpsdata import write_lammpsdata
# Start with a mBuild compound
mb_ethane = Ethane()
oplsaa = foyer.Forcefield(name='oplsaa')
# atomtype the system with foyer, and convert the resulting structure to a topology
typed_ethane = from_parmed(oplsaa.apply(mb_ethane))
typed_ethane.name = 'ethane'
# Write out lammps datafile
write_lammpsdata(typed_ethane, filename='ethane.lammps', atom_style='full')

Introduction

GMSO is designed to be a general and flexible representation of chemical topolgies for molecular simulation. With an emphasis on assuming as little as possible about the chemical system, model, or engine, GMSO can enable support for a variety of systems. GMSO is a part of the MoSDeF (Molecular Simulation and Design Framework) ecosystem, and is intended to be the backend replacement for the foyer package. Libraries in the MoSDeF ecosystem are designed to provide utilities neccessary to streamline a researcher's simulation workflow. When setting up simulation studies, we also recommend users to follow the TRUE (Transparent, Reproducible, Usable-by-others, and Extensible) standard, which is a set of common practices meant to improve the reproducibility of computational simulation research.

Goals and Features

GMSO's goal is to provide a flexible backend framework to store topological information of a chemical system in a reproducible fashion. Topology in this case is defined as the information needed to initialize a molecular simulation. Depending on the type of simulation performed, this ranges from:

  • particle positions
  • particle connectivity
  • box information
  • forcefield data
    • functional forms defined as sympy expressions
    • parameters with defined units
    • partial charges
    • tabulated data
    • etc.
  • Other optional data
    • particle mass
    • elemental data
    • etc.

With these driving goals for GMSO, the following features are enabled:

  1. Supporting a variety of models in the molecular simulation/computational chemistry community_: No assumptions are made about an interaction site representing an atom or bead, instead these can be atomistic, united-atom/coarse-grained, polarizable, and other models!

  2. Greater flexibility for exotic potentials: The AtomType (and analogue classes for intramolecular interactions) uses sympy to store any potential that can be represented by a mathematical expression.

  3. Adaptable for new engines: by not being designed for compatibility with any particular molecular simulation engine or ecosystem, it becomes more tractable for developers in the community to add glue for engines that are not currently supported.

  4. Compatibility with existing community tools: No single molecular simulation tool will ever be a silver bullet, so GMSO includes functions to convert between various file formats and libraries. These can be used in their own right to convert between objects in-memory and also to support conversion to file formats not natively supported at any given time. Currently supported conversions include:

  5. Native support for reading and writing many common file formats: We natively have support for:

Installation

For full, detailed instructions, refer to the documentation for installation

conda installation quickstart

GMSO is available on conda and can be installed as:

conda install -c conda-forge gmso

pip installation quickstart

Note: GMSO is not on pypi currently, but its dependencies are.

git clone  https://github.com/mosdef-hub/gmso.git
cd gmso
pip install -r requirements.txt
pip install -e .

pip quickstart will install GMSO in editable mode, which means that as you edit the source code of GMSO those edits will be reflected in your installation.

Documentation

The full documentation can be found at gmso.mosdef.org.

gmso's People

Contributors

ahy3nz avatar argon1999 avatar bdice avatar calcraven avatar daico007 avatar justingilmer avatar mattwthompson avatar pre-commit-ci[bot] avatar rmatsum836 avatar rsdefever avatar rwsmith7531 avatar umesh-timalsina avatar uppittu11 avatar zijiewu3 avatar

Watchers

 avatar

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.