Skip to content

0.21.0 SAMS and General Multistate Samplers

Choose a tag to compare

@Lnaden Lnaden released this 27 Mar 02:06
8d70ff2

This release represents a major change in the YANK code base

Summary of Release

YANK's sampling scheme now has a generalized scheme and runs on one of four primary samplers:

  • MultiStateSampler: Fixed state sampler where no states mix
  • ReplicaExchange: Dense state sampling with state swapping each iteration
  • ParallelTempering: Special extension of ReplicaExchange which swaps temperatures, with more efficient energy evaluation
  • SAMSSampler: Self-Adjusted Mixture Sampling. Single replica sampler which dynamically samples all thermodynamic states with long enough run time

The samplers are now part of the YANK multistate module and will eventually be ported to OpenMMTools. The YAML syntax has been extended that two new sections can be specified: MCMC Moves, and Samplers. These are fully optional blocks which default to a specific set if not specified. Several old YAML options like number_of_iterations have been moved to the samplers block and replaced with default_X where X is the old setting name.

The old scheme of the single repex.py file housing all sampler and reporter information has been removed and the entire multistate module is designed to be extended and experimented with. Similarly, much of the old analyze.py module has been migrated to multistate and can be extended as well.

Detailed Changes

  • Generalize the Sampler framework into a new multistate module and generalized sampler class structure
  • Analysis suite now general and part of multistate with additional YANK-specific extensions in YANK's analyze.py module
  • Analysis energies have been converted from old u_kln format to u_kn formalism
  • Test suites for samplers refactored to be general and test all samplers
  • Test suites for analysis refactored to be general and test all samplers
  • Samplers now operate on concept of neighborhood to determine which thermodynamic states the energy of a sample was evaluated at
  • Cleaned up language in "replica" (sampler), "state" (thermodynamic state), and "sample" (drawn from replica)
  • Improved online analysis in samplers with general I/O functions in reporter
  • Python notebooks now can serialize their data
  • Added notebook feature to do a free energy trace trying to converge free energies by progressively truncating more data from front and back
  • Restraint factories improved and redundant code cleaned up
  • Generalized utilities for checking function calls
  • Improved storage read speeds by chunking HDF5 data to use the checkpoint interval for per-iteration instead of each iteration
  • Dependencies now defined purely by Conda meta.yaml and no longer through setup.py. pip can no longer check for dependencies because of this
  • Added ability to unbias harmonic restraints during analysis
  • mcmc block added to the YAML syntax
  • samplers block added to the YAML syntax
  • Improved resuming boot up times by requiring newer OpenMMTools features
  • Renamed global option number_of_iterations to default_number_of_iterations.
  • Renamed global option timestep to default_timestep.
  • Renamed global option nsteps_per_iteration to default_nsteps_per_iteration. (docs)
  • The global options collision_rate, mc_displacement_sigma, and integration_splitting are not supported anymore, but they can still be specified in the mcmc_moves block.
  • Added support for automatic determination of processes_per_experiment (now the default).
  • Simulation minimization tries FIRE Minimizer first before falling back to L-BFGS.
  • Fixed bug in Boresch restraints where atoms were not correctly re-randomized when initial pick is numerically unstable

Release Code Name: SAMSon and Delilah