Skip to content

Releases: choderalab/yank

0.23.2 - More Multi-Experiment Cleanup

24 Jul 19:05
9428822
Compare
Choose a tag to compare
  • resume_setup and resume_experiment are True 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

12 Jul 20:59
e6faa36
Compare
Choose a tag to compare
  • 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

03 Jul 16:13
5f1e828
Compare
Choose a tag to compare

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 for auto_analyze like functions. Supports serialized output to Pickle
  • Added new MultiExperimentAnalyzer class to analyze all experiments found in a YAML input file with the ExperimentAnalyzer. Supported by MPI for parallel action
  • Unified all auto_analyze like objects to go through the ExperimentAnalyzer, 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 and yank 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

15 Jun 15:54
155687f
Compare
Choose a tag to compare
  • 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

30 May 20:30
377c09d
Compare
Choose a tag to compare
  • 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

25 May 16:46
95cbdf0
Compare
Choose a tag to compare
  • 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

12 May 23:27
26f5b7d
Compare
Choose a tag to compare

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

20 Apr 19:02
3fc6843
Compare
Choose a tag to compare
  • Fix analysis on 32-bit platforms OS agnostic (#942).
  • More robust analysis tests (#942).
  • Pin Cerberus to 1.1 as 1.2 breaks some schemas (#952). Proper fix in a later version.
  • UML Diagrams added to docs (#953).
  • Fix API bug for resuming simulations without specifying how many iterations to run (#955).

0.21.1 - Post-SAMS Bugfixes

30 Mar 18:56
cffaf09
Compare
Choose a tag to compare
  • Fix bug in FIRE minimizer logging (#932).
  • Fix Cray environment variables (#932).
  • Make tests more robust to undersampled analysis results (#932,#934,#936).
  • Fix molecule imaging incorrectly in trajectory extraction (#933).

0.21.0 SAMS and General Multistate Samplers

27 Mar 02:06
8d70ff2
Compare
Choose a tag to compare

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