0.21.0 SAMS and General Multistate Samplers
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 mixReplicaExchange: Dense state sampling with state swapping each iterationParallelTempering: Special extension ofReplicaExchangewhich swaps temperatures, with more efficient energy evaluationSAMSSampler: 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
multistatemodule and generalized sampler class structure - Analysis suite now general and part of
multistatewith additional YANK-specific extensions in YANK'sanalyze.pymodule - Analysis energies have been converted from old
u_klnformat tou_knformalism - 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.yamland no longer throughsetup.py.pipcan no longer check for dependencies because of this - Added ability to unbias harmonic restraints during analysis
mcmcblock added to the YAML syntaxsamplersblock added to the YAML syntax- Improved resuming boot up times by requiring newer OpenMMTools features
- Renamed global option
number_of_iterationstodefault_number_of_iterations. - Renamed global option
timesteptodefault_timestep. - Renamed global option nsteps_per_iteration to default_nsteps_per_iteration. (docs)
- The global options collision_rate,
mc_displacement_sigma, andintegration_splittingare not supported anymore, but they can still be specified in themcmc_movesblock. - 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