Return to RosettaScripts

MetropolisHastings (Overview)

The Metropolis-Hastings mover is the core of the canonical sampling framework in Rosetta. A call to apply of this mover performs a trajectory of a (canonical) Monte Carlo simulation. This can be used to estimate the thermodynamic distribution of conformational states for a given score function. See the Metropolis–Hastings algorithm page on Wikipedia for more information.

ThermodynamicMovers

The move set for the monte-carlo simulation is defined by adding instances of various ThermodynamicMovers (a special case of the general Mover) to the MetropolisHastingsMover before the simulation commences. The probability that any given move will be chosen during the simulation can be controlled using the sampling_weight parameter. The sampling weights for all movers are automatically normalized to 1. ThermodynamicMovers specify additional behavior on top of normal movers:

  • Movers must have an option to obey detailed balance, which is automatically turned on by MetropolisHastings when they are added.
  • Movers must return the ratio of the probability of making the previous move and reversing the previous move.
  • Movers may have initialization and finalization functions, which are called before and after the Monte Carlo loop.
  • Movers may have a callback that is used to gather statistics about performance after the Metropolis criterion is evaluated.
  • Multi-trial movers, which have an internal Monte Carlo loop with a potentially different score function and temperature, must return the overall change in internal score function during the move divided by the internal temperature.

Only a limited subset of movers currently fulfill these requirements and are subclasses of ThermodynamicMover. They include:

TemperatureControllers

A set of Plug-ins (TemperatureController) allow to access various types of sampling schemes:

  • SimulatedAnnealing --- (not implemented) allow ramping of temperature during the trajectory following a preset schedule
  • Tempering
    • SimulatedTempering --- stochastic switching of temperatures in a serial trajectory [1]
    • ParallelTempering --- (aka replica exchange) switching of temperatures between parallel replicas [2]
    • HamiltonianExchange --- (soon to be implemented) switching of score-weights and temperature between parallel replicas

ThermodynamicObservers

ThermodynamicObservers are plug-ins that support recording of trajectories and other statistics over the course of a simulation. ThermodynamicObservers are Mover subclasses, and have a subset of the additional behaviors:

  • Movers may have initialization and finalization functions, which are called before and after the Monte Carlo loop.
  • Movers may have a callback that is used to gather statistics about performance after the Metropolis criterion is evaluated.

There are a number of ThermodynamicObservers: