OPS Channel Analysis¶
In many cases, more than one channel is available to a system – either because there are multiple channels between two states, or because there are multiple states, and transitions between each pair is a different channel. This module provides tools to identify which paths are in each channel, and to study the statistical behavior of the switching between channels.
Purpose of Module¶
In practical examples, more than one channel (i.e., mechanism) can occur during a path sampling simulation. This is inherently the case if you have multiple stable states, since the transition between each pair of states will be of separate interest. It can also be the case when you have a single pair of states, but multiple channels that connect the states.
This module uses the OPS Ensemble.split
function to study how a simulation
samples these channels. The user must provide a list of possible channels,
described as OPS Ensemble
objects. From this, each path is analyzed, and
various statistical behavior about the sampling process can be determined.
The main object added in this module is the ChannelAnalysis
object,
which performs this analysis and stores the results. Once the analysis has
been performed, several properties can be extracted, including:
switching_matrix
: how many times a switch from one channel to another occurredresidence_times
: the number of MC steps spent with the path in each channel (returns the entire list so the user can calculate distribution properties with, e.g.,numpy
)total_time
: total number of MC steps spent in each channelstatus(step_num)
: the channel the simulation was in for a given step number
In principle, a path might satsify the requirement for more than one channel
at a time. This analysis class allows for that, and gives the user the
option of setting its treat_multiples
attribute:
newest
: use the most recent channel enteredoldest
: use the least recent channel enteredmultiple
: treat multiple channels as a new type of channel, e.g., ‘a’ and ‘b’ because ‘a,b’all
: treat each channel individually, despite overlaps. Forstatus
this is the same as ‘multiple’
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.
Source Code¶
This module has been merged into OpenPathSampling. It is composed of the following pull request: