Releases: choderalab/openmmtools
0.24.0 - pyMBAR Behavior Changes + HIP Platform Added
0.24.0 - pyMBAR Behavior Changes + HIP Platform Added
Bug Fixes
- Update docstring default for
alchemical_pme_treatment
(Pull Request #644).
Behavior Changes
- Use
robust
solver forpyMBAR
by default.
pyMBAR
3 & 4 used two different solvers by default.
Now, therobust
solver is used as the default regardless of thepyMBAR
version.
The solver specified inanalysis_kwargs
(e.g.,analysis_kwargs["solver_protocol"] = "robust"
) is still respected, but if no solver is specified, it defaults torobust
.
This change aims to improve convergence performance (Pull Request #735).
Enhancements
-
HIP Platform for OpenMM:
Added OpenMM's "HIP" platform as a selectable option.
With OpenMM 8.2, the "HIP" platform is now available for compatible AMD GPUs.
This enablesopenmmtools
to automatically select the HIP platform if available (Pull Request #753). -
effective_length
inMultiStateSamplerAnalyzer
:
Added theeffective_length
feature (Pull Request #589). -
New
alchemy
Subpackage:
Created a subpackage for alchemical computations (Pull Request #721).
Testing
-
Framework Overhaul:
Migrated testing framework topytest
.
Flaky tests are now automatically re-run (Pull Request #714, Pull Request #746, Pull Request #749, Pull Request #751). -
GPU Testing:
Testing on GPUs now uses OMSF'sgha-runner
.
0.23.1
Bugfix
- Fix issue where if
None
was used foronline_analysis_interval
an error would be thrown by @mikemhenry in #710
CI
- update self hosted runner to use new setup by @mikemhenry in #670
Full Changelog: 0.23.0...0.23.1
0.23.0
0.23.0 - latest numba support and real time stats enhancements
Please note that there is an API breaking change. To ensure consistency of the data when appending real time stats make sure that you make the online_analysis_interval
of your MultiStateSampler
object match the checkpoint_interval
of your MultiStateReporter
. It will error if this is not the case.
Enhancements
Bugfixes
- Fix metadata for netcdf files, specifying openmmtools for the
program
metadata (issue #694, PR #704). - Real time statistics YAML file gets appended instead of overwritten when extending or resumimng simulations (issue #691, PR #692).
- Error when resuming simulations with numba 0.57 fixed by avoiding using
numpy.MaskedArray
when deserializing.nc
files (issue #700, PR #701)
Full Changelog: 0.22.1...0.23.0
0.22.1
Bugfixes
- Fix NaN-catching text in MultiStateSampler by @dwhswenson in #684
Full Changelog: 0.22.0...0.22.1
0.22.0
Highlights:
- Support for new pymbar 4 branch.
- Gentle equilibration utility function.
- Support for newer netcdf versions (1.6 branch)
Detailed information as follows:
Enhancements
- Openmmtools now supports both Pymbar 3 and 4 versions. (PR #659)
- Gentle equilibration protocol utility function available in
openmmtools.utils.gentle_equilibration
(PR #669). - Timing information for multiple state sampler is now reported by default (PRs #679 and #671).
Bugfixes
- Users were not able to distinguish the exceptions caught during dynamics. Warnings are now raised when an exception is being caught (Issue #643 PR #658).
- Deserializing MCMC moves objects from versions <=0.21.4 resulted in error finding the key. Fixed by catching the exception and raising a warning when key is not found (Issue #618 PR #675).
- Different improvements in documentation strings and readthedocs documentation generation (Issues #620 #641 #548. PR #676)
- Support for newer NetCDF versions (1.6 branch) by not using zlib compression for varying length variables. (PR #654).
Full Changelog: 0.21.5...0.22.0
0.21.5
What's changed
Changed behaviors
LangevinDynamicsMove
now usesopenmm.LangevinMiddleIntegrator
(a BAOAB integrator) instead ofopenmm.LangevinIntegrator
(an OBABO integrator). Issue #599 (PR #600).
Bugfixes
- Velocities were being incorrectly updated as zeros when resuming simulations or broadcasting from different mpi processes. Fixed by specifying
ignore_velocities=False
in_propagate_replica
. Issue #531 (PR #602). - Bug in equilibration detection 1: The user was allowed to specify
statistical_inefficiency
without specifyingn_equilibration_iterations
, which doesn't make sense, asn_equilibration_iterations
andn_effective_max
cannot be computed fromstatistical_inefficiency
alone. Fixed by preventing user from specifyingstatistical_inefficiency
withoutn_equilibration_iterations
. Issue #609 (PR #610). - Bug in equilibration detection 2: If the user specified
n_equilibration_iterations
but notstatistical_inefficiency
, the returnedn_equilibration_iterations
did not include number of equilibration iterations as computed from_get_equilibration_data_per_sample()
. Fixed by always including the_get_equilibration_data_per_sample()
result in in the returnedn_equilibration_iterations
. Issue #609 (PR #610). - Bug in equilibration detection 3:
get_equilibration_data_per_sample
returns 0 forn_equilibration_iterations
. Fixed by always discarding the first time origin returned byget_equilibration_data_per_sample
. To control the amount of data discarded by the first time origin, the user can now specifymax_subset
when initializingMultiStateSamplerAnalyzer
. Issue #609 (PR #610). - Deserializing simulations from
openmmtools<0.21.3
versions resulted in error. Fixed by catching the missing key,KeyError
exception, when deserializing. Issue #612, PR #613. - Not specifying a subdirectory for the reporter file resulted in
PermissionError
when writing the real time analysis file. Fixed by usingos.path.join
for creating the output paths. Issue #615, PR #616.
Enhancements
LangevinDynamicsMove
now allowsconstraint_tolerance
parameter and public attribute, for specifying the fraction of the constrained distance within which constraints are maintained for the integrator (Refer to Openmm's documentation for more information). Issue #608, PR #611.- Platform is now reported in the logs in DEBUG mode. Issue #583, PR #605.
Full Changelog: 0.21.4...0.21.5
0.21.4
Bugfixes
- Bug in statistical inefficiency computation where
self.max_n_iterations
wasn't being used was fixed (#577). - Bug in estimated performance in realtime yaml file fixed by iterating through all MCMC moves (#578)
- Potential bug fixed by explicitly updating and broadcasting thermodynamic states in replicas, when used in an MPI (distributed) context.
Issue #579 (#587). - Bug in handling unsampled states in realtime/offline analysis fixed by using
MultiStateSampler._unsampled_states
to build the mbar estimate array.
Issue #592 (#593)
Enhancements
0.21.3
What's Changed
Bugfixes
- Bug in replica mixing in MPI multi-GPU runs--where some replicas were simulated in incorrect states--was fixed (#449) & (#562).
- Velocities are now stored in the checkpoint file to eliminate issue with "cold restart". Fixes issue #531 (#555).
- Documentation now correctly builds via CI. Fixes issue #548 (#554).
- Failing windows CI (issue #567) is fixed. (#573)
Enhancements
- Real time MBAR analysis and timing information is now produced in yaml format at user-specified intervals (#565), (#561) & (#572).
- Information of what CUDA devices are available is now provided in log output (#570).
- Replica exchanges are now attempted during equilibration phase to enhance mixing (#556).
- An example of resuming a MultiStateSampler simulation using API is now provided (#569)
New Contributors
Full Changelog: 0.21.2...0.21.3
Bugfix Release v0.21.2
What's Changed
- Add test to check platform precision using a string + fix error by @mikemhenry in #551
Full Changelog: 0.21.1...0.21.2
0.21.1
What's Changed
- More streamlined context caches usage by @ijpulidos in #547
Full Changelog: 0.21.0...0.21.1