Class WeightedEnsembleManager

java.lang.Object
ffx.algorithms.dynamics.WeightedEnsembleManager

public class WeightedEnsembleManager extends Object
This class implements the Weighted Ensemble algorithm. Simulations are ran in parallel with weights assigned evenly to all simulations at the start. After a specified number of stochastic dynamics, the parallel configurations are resampled (merged or split) and their weights are updated accordingly.

Resampling is done by assigning each configuration a bin number. The bin number is determined by some predetermined metric (e.g. RMSD, distance between residues, distance between complexes). The configurations are then sorted by bin number and the configurations with the lowest weights are merged with other configurations in the same bin. The configurations with the highest weights are split into two configurations with half the weight of the parent.

The algorithm is based on the Huber invalid input: '&' Kim original paper and a following theory paper by Zuckerman:

Huber, G. A., invalid input: '&' Kim, S. (1996). Weighted-ensemble Brownian dynamics simulations for protein association reactions. Biophysical journal, 70, 97-110.

Zuckerman, D. M. (2010). The "Weighted Ensemble" path sampling method is statistically exact for a broad class of stochastic processes and binning procedures. The Journal of Chemical Physics, 132.

Since:
1.0
Author:
Matthew Speranza
  • Constructor Details

  • Method Details

    • run

      public void run(long totalSteps, long numStepsPerResample, double temp, double dt)
      Run the Weighted Ensemble algorithm.