diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..eba7475aa --- /dev/null +++ b/LICENSE @@ -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. diff --git a/README.md b/README.md index 77554f11d..04f208ca7 100644 --- a/README.md +++ b/README.md @@ -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 `_ 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 `_, `VVVR `_, and other splittings + - integrators that support nonequilibrium switching for free energy calculations or `nonequilibrium candidate Monte Carlo (NCMC) `_ + - 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 `_ 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. diff --git a/devtools/conda-recipe/meta.yaml b/devtools/conda-recipe/meta.yaml index 00b0562f2..1d8eda378 100644 --- a/devtools/conda-recipe/meta.yaml +++ b/devtools/conda-recipe/meta.yaml @@ -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