We want to implement a general MCMC sampler to construct joint distributions from different probability density functions. We can use this base implementation to discuss design decisions early on.
This PR introduces the following modules with their functionality:
potential.py implements the NeuralNetworkPotential (a trained potential) and a set of analytic potentials (LJPotential, HarmonicOscillatorPotential).
integrators.py implements a LangevinDynamics integrator
states.py implements two classes that can be used to keep track of the sampler state (SamplerState) and deinfes the thermodynamic ensemble and state (ThermodynamicState). This is similar to the openmmtools classes, but temperature is only present in the ThermodynamicState and the positions are only saved in SamplerState.
mcmc.py implements a GibbsSampler class (that takes several move types and States and performs simulations using them (currently onlyLangevinDynamicsMoves and MCMetropolisDisplacementMove are implemented).
A good starting point for the current API and functionality are the tests here: chiron/tests/test_mcmc.py
Note:
We will take the Topology class from openMM and the testsystems from openmmtools.
Description
We want to implement a general MCMC sampler to construct joint distributions from different probability density functions. We can use this base implementation to discuss design decisions early on.
This PR introduces the following modules with their functionality:
potential.py
implements theNeuralNetworkPotential
(a trained potential) and a set of analytic potentials (LJPotential, HarmonicOscillatorPotential).integrators.py
implements a LangevinDynamics integratorstates.py
implements two classes that can be used to keep track of the sampler state (SamplerState
) and deinfes the thermodynamic ensemble and state (ThermodynamicState
). This is similar to theopenmmtools
classes, buttemperature
is only present in theThermodynamicState
and the positions are only saved inSamplerState
.mcmc.py
implements aGibbsSampler
class (that takes several move types andStates
and performs simulations using them (currently onlyLangevinDynamicsMoves
andMCMetropolisDisplacementMove
are implemented).A good starting point for the current API and functionality are the tests here: chiron/tests/test_mcmc.py
Note:
We will take the
Topology
class fromopenMM
and thetestsystems
fromopenmmtools
.Status