Skip to content

Commit

Permalink
Clean up README now that docs are online.
Browse files Browse the repository at this point in the history
  • Loading branch information
jchodera committed May 14, 2017
1 parent 34ce3e9 commit 152bfeb
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 44 deletions.
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2015-2017 Chodera lab // Memorial Sloan Kettering Cancer Center

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
56 changes: 13 additions & 43 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,53 +5,23 @@
[![ReadTheDocs Badge](https://readthedocs.org/projects/openmmtools/badge/?version=latest)](http://openmmtools.readthedocs.io/en/latest/?badge=latest)
[![Zenodo DOI Badge](https://zenodo.org/badge/25416166.svg)](https://zenodo.org/badge/latestdoi/25416166)

# Various Python tools for OpenMM
## OpenMMTools

## Integrators
A batteries-included toolkit for the GPU-accelerated OpenMM molecular simulation engine.

This repository contains a number of additional integrators for OpenMM in `openmmtools.integrators`, including
* `MTSIntegrator` - a multiple timestep integrator
* `DummyIntegrator` - a "dummy" integrator that does not update positions
* `GradientDescentMinimizationIntegrator` - a simple gradient descent minimizer (without line search)
* `VelocityVerletIntegrator` - a velocity Verlet integrator
* `AndersenVelocityVerletIntegrator` - a velocity Verlet integrator with Andersen thermostat using per-particle collisions
* `MetropolisMonteCarloIntegrator` - a Metropolis Monte Carlo integrator that uses Gaussian displacement trials
* `HMCIntegrator` - a hybrid Monte Carlo (HMC) integrator
* `GHMCIntegrator` - a generalized hybrid Monte Carlo (GHMC) integrator
* `VVVRIntegrator` - a velocity Verlet with velocity randomization (VVVR) integrator
``openmmtools`` is a Python library layer that sits on top of `OpenMM <http://openmm.org>`_ to provide access to a variety of useful tools for building full-featured molecular simulation packages.

## Test system suite
Features include:

The `openmmtools.testsystems` module contains a large suite of test systems---including many with simple exactly-computable properties---that can be used to test molecular simulation algorithms
- high-quality Langevin integrators, including `g-BAOAB <http://rspa.royalsocietypublishing.org/content/472/2189/20160138>`_, `VVVR <http://pubs.acs.org/doi/abs/10.1021/jp411770f>`_, and other splittings
- integrators that support nonequilibrium switching for free energy calculations or `nonequilibrium candidate Monte Carlo (NCMC) <http://dx.doi.org/10.1073/pnas.1106094108>`_
- an extensible Markov chain Monte Carlo framework for mixing Monte Carlo and molecular dynamics-based methods
- enhanced sampling methods, including replica-exchange (REMD) and self-adjusted mixture sampling (SAMS)
- factories for generating `alchemically-modified <http://alchemistry.org>`_ systems for absolute and relative free energy calculations
- a suite of test systems for benchmarking, validation, and debugging

## Markov chain Monte Carlo proposal schemes and move compositions
An implementation of an `MCMCMove` encodes how to propagate an OpenMM `System` to generate a new sample. Different `MCMCMove`s can be combined for more advanced schemes.
- `LangevinDynamicsMove`: Langevin dynamics segment as a (pseudo) Monte Carlo move (WARNING: Does not preserve the true target distribution.).
- `HMCMove`: Assigns velocities from the Maxwell-Boltzmann distribution and propagate through velocity Verlet steps.
- `GHMCMove`: Generalized hybrid Monte Carlo Markov chain Monte Carlo.
- `MonteCarloBarostatMove`: Attempts to update the box volume using Metropolis-Hastings Monte Carlo updates.
- `SequenceMove`: Combine multiple `MCMCMove`s to apply in sequence at each iteration.
- `WeightedMove`: At each iteration, select one `MCMCMove`s to apply from a set with given probability.
See the [documentation](http://openmmtools.readthedocs.io) at [ReadTheDocs](http://openmmtools.readthedocs.io).

## States
#### License

The module `openmmtools.states` contains classes to maintain a consistent state of the simulation.
- `ThermodynamicState`: Represent and manipulate the thermodynamic state of OpenMM `System`s and `Context`s.
- `SamplerState`: Represent and cache the state of the simulation that changes when the `System` is integrated.
- `CompoundThermodynamicState`: Extend the `ThermodynamicState` to handle parameters other than temperature and pressure through the implementations of the `IComposableState` abstract class.

## Cache

The module `openmmtools.cache` implements a shared LRU cache for `Context` objects that tries to minimize the number of `Context` in memory at the same time.
- `LRUCache`: A simple LRU cache with a dictionary-like interface. It supports a maximum capacity and expiration.
- `ContextCache`: A LRU cache for OpenMM `Context` objects.
- `global_context_cache`: A shared `ContextCache` that minimizes the number of `Context` creations when employing `MCMCMove`s.

## OpenMM testing scripts

`scripts/` contains a script that may be useful in testing your OpenMM installation is installed:

* `test-openmm-platforms` will test the various platforms available to OpenMM to ensure that all systems in `openmmtools.testsystems` give consistent potential energies.
If differences in energies in excess of `ENERGY_TOLERANCE` (default: 0.06 kcal/mol) are detected, these systems will be serialized to XML for further debugging.

This is installed onto the command line when the repository is installed.
OpenMMTools is distributed under the MIT License.
2 changes: 1 addition & 1 deletion devtools/conda-recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ test:

about:
home: https://github.com/choderalab/openmmtools
license: GNU Lesser General Public License v2 or later (LGPLv2+)
license: MIT License

0 comments on commit 152bfeb

Please sign in to comment.