Committor Analysis in OpenPathSampling¶
Authors: David W.H. Swenson
This module adds a simulator to perform committor analysis in OpenPathSampling, given a set of initial points to shoot from.
Purpose of Module¶
The committor for a given configuration (in the context of some transition ) is defined as , the probability that a trajectory beginning at configuration will reach state before state . The isosurfaces of the committor are a good definition of the reaction coordinate (the probability of ending in the product state is certainly a measure of the progress of the reaction). The transition state will have an equal chance of going to either state, so configurations with a committor of approximately 50% are said to make up the “transition state ensemble.” As a result, a committor simulation is essential both for the definition of the reaction coordinate and for the identification of a proposed transition state. This module provides a straightforward way of calculating the committor for a given set of initial conditions.
In addition to calculating the committor, this module can be used to generate more physical transition trajetories from unphysical ones. A trajectory that connects the two states and has the same initial configuration could be a good candidate for an initial path sampling trajectory. The only unphysical aspect of such a trajectory is the sudden kink in velocities, which usually be removed after a short equilibration with path sampling.
The implementation in this module includes:
SnapshotModifier
abstract class to change a snapshot, along with concrete subclassesNoModification
(used in testing) andRandomVelocities
(used for committor analysis). This same class of object will be reused for two-way shooting.- A
CommittorSimulation
subclass ofPathSimulator
to run the committor simulation. - A generic
TransformedDict
object which acts as a dictionary, but applies an arbitrary key-altering function before accessing the keys. SnapshotByCoordinateDict
, a subclass ofTransformedDict
, which uses the coordinates of a snapshot as the internal keys. Thus multiple snapshots with the same coordinates can map to the same values, regardless of their velocities.ShootingPointAnalysis
, a subclass ofSnapshotByCoordinateDict
, which performs the analysis of shooting points. This includes calculating the committor and making 1D and 2D histograms of the committor (mapped with arbitrary axes).
Background Information¶
This module builds on OpenPathSampling, a Python package for path sampling simulations. To learn more about OpenPathSampling, you might be interested in reading:
- OPS documentation: http://openpathsampling.org
- OPS source code: http://github.com/openpathsampling/openpathsampling
Testing¶
Tests in OpenPathSampling use the nose package.
This module has been included in the OpenPathSampling core. Its tests can
be run by setting up a developer install of OpenPathSampling and running
the command nosetests
from the root directory of the repository.
Examples¶
- OPS docs committor example [Committor GitHub | Committor Docs]
- Alanine dipeptide committor example [Alanine dipeptide committor GitHub | Alanine dipeptide committor Docs]
Source Code¶
This module has been merged into OpenPathSampling. It is composed of the following pull requests:
- https://github.com/openpathsampling/openpathsampling/pull/450
- https://github.com/openpathsampling/openpathsampling/pull/454
- https://github.com/openpathsampling/openpathsampling/pull/466
- https://github.com/openpathsampling/openpathsampling/pull/601
- https://github.com/openpathsampling/openpathsampling/pull/618
- https://github.com/openpathsampling/openpathsampling/pull/647