Releases: choderalab/yank
0.23.2 - More Multi-Experiment Cleanup
resume_setup
andresume_experiment
areTrue
by default- Fixed bug where yank analyze
extract-trajectory
could not be executed - Further updated multi-analysis docs to reflect multi-experiment changes
0.23.1 - Multi-Experiment and Online Bug
- Fixed bug in MultiExperimentAnalyzer where a path ending in the folder separator (e.g. /) caused all files to write to the same place.
- Fixed bug where increasing number of iterations did not continue experiment if online analysis was turned on and previously hit the max number of iterations
- Fixed bug where online analysis and harmonic unbiasing caused MBAR to not form due to misformed initial_f_k
- MultiExperimentAnalyzer now gracefully traps an error caught by one experiment without crashing others
Fixed bug in MultiStateReporter when there were unsampled thermodynamic states as end-states but they referenced sampled thermodynamic states for their standard system
0.23.0 Multi-Analysis
Analysis can now be parallelized through MPI and targeting a YAML file which generated a YANK experiment.
Features
- Added new
ExperimentAnalyzer
class as API call forauto_analyze
like functions. Supports serialized output to Pickle - Added new
MultiExperimentAnalyzer
class to analyze all experiments found in a YAML input file with theExperimentAnalyzer
. Supported by MPI for parallel action - Unified all
auto_analyze
like objects to go through theExperimentAnalyzer
, such as the API and Jupyter Notebook calls - Existing API calls should remain unchanged and serve as pass-throughs to the new classes
- Major changes to the CLI behavior of
yank analyze
andyank analyze report
to support the new features. These should not affect existing code, only support new features.
Bug fixes
- Fixed bug in
yank selftest
with the OpenEye tests. Also silenced the OpenEye internal tests due to time. Dependency checks are still active
Improvements
- Update API docs
0.22.3 Balance Checkpoint with IO
- Reduced default checkpoint interval to 50 (was 200) to balance disk IO time with time between checkpoints.
- Fixed bug in DSL selection string from YAML
0.22.2 - Topography Property Copy
- Critical bug fix for Topology where ions of charged ligands were considered part of the ligand with respect to restraints.
- Online analysis MBAR failures can no longer halt simulations
- Added ability for analyze CLI (
--fulltraj
) and API (use_full_trajectory=True
) to force use the full trajectory
0.22.1 - Online Analysis Default
- Online analysis will always run by default now, with no target error, run every checkpoint interval, and with at least 200 iterations
- Online analysis can now be a set to the checkpoint interval by setting
online_analysis_interval: "checkpoint"
in the YAML files (application layer, not API) - Checkpoint interval increased from default of 10 to 200
- Analysis now uses the online-analysis data if available by default
0.22.0 RMSD the Casbah
Enhancements and features
- Added RMSD Type restraint, requires OpenMM 7.3 or greater to access. You can have older versions of OpenMM, but this feature is unavailable and will raise a graceful error should you attempt to use it.
- Added more robust last good iteration saving
- Added more robust restore from checkpoint access
- Exposed checkpoint interval iterations in MultiStateReporter
- Generalized the Boresch restraints to a BoreschLike restraint to support new energy functions.
- Boresch restraint automatic atom selection now picks bonded heavy atoms
- Boresch restraints no longer accept standard_state_correction_method as an option
- Added new Haversined Torsion Boresch Torsion (PeriodicTorsionBoresch) Boresch-like restraint where functional form of torsion is periodic support more numerically stable energy functions
- Changed the timeseries analysis to only consider a maximum number of points on which to evaluate "is this equilibrium" to speed up process.
- Implement #848 Use MDTraj Trajectory.save() method instead of inferring function from extension.
- Implement #635 Allow extract-trajectory to handle trajectories with 1 frame.
Bugfixes
- Fix bug #941 where unbiasing the restraint would crash the analysis if using a 32-bit OpenCL platform.
- Fix bug #945 where relative imports of OpenEye tools would cause problems on some systems.
- Temporarily pinned NetCDF4 to 1.3.1 until we can fix the bug introduced in 1.4.0 where masked arrays are always returned. This pin will be lifted in future releases.
- Fix a bug where max_n_iterations was ignored when computing the mixing statistics of the calculation (PR #963).
- Fix bug #944 where ReplicaExchange.create() did not accept a single SamplerState anymore.
- Fix a bug where the box vectors of SamplerStates were initialized incorrectly in MultiStateSampler.create() for NVT calculations (PR #969).
- Fix bug #964 where using the state index argument in extract_trajectory with SAMS calculations would cause a crash.
Backwards compatibility breaks
- Boresch Standard State Correction no longer has an
analytical
correction
0.21.2 - More Post-Sams Bugfixes
0.21.1 - Post-SAMS Bugfixes
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 ofReplicaExchange
which 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
multistate
module and generalized sampler class structure - Analysis suite now general and part of
multistate
with additional YANK-specific extensions in YANK'sanalyze.py
module - Analysis energies have been converted from old
u_kln
format tou_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 throughsetup.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 syntaxsamplers
block added to the YAML syntax- Improved resuming boot up times by requiring newer OpenMMTools features
- Renamed global option
number_of_iterations
todefault_number_of_iterations
. - Renamed global option
timestep
todefault_timestep
. - Renamed global option nsteps_per_iteration to default_nsteps_per_iteration. (docs)
- The global options collision_rate,
mc_displacement_sigma
, andintegration_splitting
are not supported anymore, but they can still be specified in themcmc_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