Releases: choderalab/pymbar
4.2.0 Disable JAX Acceleration with an Environmental Variable
This release allows a user to set PYMBAR_DISABLE_JAX=TRUE to disable JAX acceleration.
This enables disabling JAX at runtime.
Previously, the only way to control JAX was to install or uninstall the jax package, which made it difficult for users to actually disable JAX since some packages depended on the pymbar package which on conda-forge installs the jax package.
See the README.md for more details.
We will be improving accelerator selection in future releases.
conda-forge Package Notes
Previous versions of pymbar pinned numpy < 2.3 due to a change in numpy 2.3 where glibc implementations of some math functions are used where previously numpy's built in implementations were used. See #556 and alchemistry/alchemlyb#431 (review) for some more details.
However, this pin prevents pymbar from working with python 3.14 since there are no numpy <2.3 builds that work with python 3.14. So we have decided to relax the numpy pin. Within our own testing framework we have not observed any differences between numpy version. While there are numerical differences, for our tests, those differences are within our tolerance. You can still install this version of pymbar with an older numpy version, it just won't work with python 3.14. For example conda install -c conda-forge "pymbar==4.2.0" "numpy<2.3" "python=3.13" will work.
Changelog for robots 👇
What's Changed
- switch from master to main by @mikemhenry in #567
- update README to reflect change in default branch name by @mikemhenry in #568
- disable jax if PYMBAR_DISABLE_JAX is set by @mikemhenry in #569
Full Changelog: 4.1.0...4.2.0
4.1.0 Bugfix Release
This release fixes some typos in documentation and adds some clarity.
Some bugs that affected users have been fixed:
- Index error in
subsample_correlated_data#552 Verbose=Truewith MBAR results in an error for alternative input types ofu_kn#538- Make MBAR bootstrapping deterministic independent of verbose flag #551
Details below 👇
What's Changed
- fix minor typos by @schuhmc in #527
- Issue gitignore by @jaclark5 in #537
- Use self.u_kn when verbose=True in MBAR by @jaclark5 in #539
- Issue docstring harmonic by @jaclark5 in #541
- Clarify
n_bootstrapsdocstring by @IAlibay in #549 - Correct Defaults in MBAR Docstring and Fix Typos by @badisa in #550
- Fix issue 552 by @mikemhenry in #558
- Fix PyPI package name by @k-ujihara in #559
- Make MBAR bootstrapping deterministic independent of verbose flag by @badisa in #551
- Fix version info and modernize some things by @mikemhenry in #562
New Contributors
- @schuhmc made their first contribution in #527
- @jaclark5 made their first contribution in #537
- @IAlibay made their first contribution in #549
- @k-ujihara made their first contribution in #559
Full Changelog: 4.0.3...4.1.0
4.0.3 Support for Python 3.12 and Jax 0.3.25+
Updates the builds to work against Python 3.8 through and including Python 3.12. Also fixes some upstream JAX and CI dependency issues.
What's Changed
Full Changelog: 4.0.2...4.0.3
4.0.2 Optional JAX build
What's Changed
- Do not use removed
numpy.boolby @mattwthompson in #485 - switch to using mamba for rtd building by @mikemhenry in #494
- Minor docstring exp fix by @ijpulidos in #492
- Make JAX an optional dependency by @Lnaden in #503
- Warn about JAX bitsize changes by @Lnaden in #504
- Correctly stagger JIT until first call by @Lnaden in #505
- Correct docstring default value by @badisa in #507
- Wrap the preconditioned jit by @Lnaden in #506
- fixes RTD build by @mikemhenry in #510
- Fix a small bug in the timeseries test, test against min and max versions by @Lnaden in #512
New Contributors
- @mattwthompson made their first contribution in #485
- @ijpulidos made their first contribution in #492
- @badisa made their first contribution in #507
Full Changelog: 4.0.1...4.0.2
3.1.1
What's Changed
- Add bootstrap_solver_tolerance argument by @zhang-ivy in #482 which allows the user to specify separate solver tolerances to use for computing the free energy vs bootstrapping to get a better estimate of the uncertainty..
The former is specified using solver_tolerance and the latter is specified using bootstrap_solver_tolerance.
Full Changelog: 3.1...3.1.1
pymbar 3.1 LTS Release
What's New
We now support computation of bootstrapped uncertainties for MBAR free energies -- just specify n_bootstraps=n_desired_bootstraps when initializing MBAR(), where n_desired_bootstraps is the number of bootstrap iterations you'd like to run, and uncertainty_method='bootstrap' when calling getFreeEnergyDifferences().
What's Changed
- Fix for expectations of very small numbers by @mrshirts in #441
- Noticed one bug in setlogzero commit by @mrshirts in #443
- Getting CI working on the current default branch by @mikemhenry in #449
- Bootstrap uncertainties first pass by @mrshirts in #302
- Fix divide by zero warning in pymbar3 by @zhang-ivy in #470
- sphinx.ext.pngmath is now sphinx.ext.imgmath by @mikemhenry in #471
New Contributors
- @zhang-ivy made their first contribution in #470
Full Changelog: 3.0.7...3.1
4.0.1
Breaking Changes Ahead!
This pymbar release has several API changes and some exciting new features (such as JAX acceleration and support)
See this guide on how to migrate from pymbar 3.x to pymbar 4.x.
pymbar 3.x support
We will still support the pymbar 3.x version line as a long term support release. We encourage new pymbar users to use the 4.x version, but due to the considerable infrastructure build around pymbar 3.x, we will continue to provide maintenance support. Don't expect new features to be backported, but we will fix bugs.
What's Changed
- Fixed return type of multiple values to dict-like object by @mrshirts in #325
- Move CI to GHA and start upgrade to Cookiecutter style by @Lnaden in #328
- Convert to PyTest by @Lnaden in #333
- Reused the gradient calculation in the adaptive algorithm. by @mrshirts in #336
- Add CodeCov by @Lnaden in #344
- Replace
np.matrixcalls and other warnings by @Lnaden in #334 - Fix formatting by @mrshirts in #342
- Reduce the cost of check for duplicate states by @mrshirts in #337
- Revamping of PMF by @mrshirts in #327
- Start Coverage Improvements (Mbar.py) by @Lnaden in #347
- Bar.py and exp.py tests by @mrshirts in #350
- cleaning up examples by @mrshirts in #352
- Remove 2.01 compatible calls for exp and bar. by @mrshirts in #354
- Even more coverage! by @Lnaden in #357
- From print to logging by @jaimergp in #360
- Add linting to CI by @jaimergp in #367
- Apply black to the whole package by @jaimergp in #371
- camelCase -> snake_case by @jaimergp in #372
- Make Pylint less noisy by @Lnaden in #375
- Modernize examples by @jaimergp in #374
- Refactoring pmf code by @mrshirts in #385
- Better dimension checking by @mrshirts in #386
- Bin edges support by @mrshirts in #387
- Apply Black to examples/ too by @jaimergp in #392
- Updated heat capacity example by @mrshirts in #394
- Replace "potential of mean force" with "free energy surface" by @mrshirts in #397
- Update GHA to use Conda-Incubator by @Lnaden in #410
- Bump conda-incubator in GHA to v2 by @Lnaden in #411
- Clean out old Omnia references for Pymbar 4.0 branch by @Lnaden in #412
- Modernize setup.py and versioning by @jaimergp in #413
- Fix for expectations of very small numbers by @mrshirts in #441
- Noticed one bug in setlogzero commit by @mrshirts in #443
- Syncing Pymbar4 with master by @mrshirts in #444
- Getting CI working on the current default branch by @mikemhenry in #449
- Pymbar 4.0 adaptive logic by @mrshirts in #446
- Pymbar4 add adaptivity by @mrshirts in #453
- Convert JAX JIT to Decorators by @Lnaden in #451
- Align namespaces to work if JAX is not installed by @Lnaden in #454
- Pymbar4 bootstrapping by @mrshirts in #448
- Remove old_mbar.py by @mrshirts in #457
- Pymbar4 with jax (real try now) by @mrshirts in #447
- Pymbar 4.0 by @mrshirts in #458
- [WIP] Pymbar4 documentation by @mrshirts in #455
- remove special character for now. by @mrshirts in #460
- switch to napoleon for better output formatting. by @mrshirts in #461
- More working on doc appearance. by @mrshirts in #462
- Update classifier to match PyPi expectations. by @Lnaden in #465
- Further improve RTD and previous versions. by @mrshirts in #466
Full Changelog: 3.0.7...4.0.1
4.0.0
Breaking Changes Ahead!
This pymbar release has several API changes and some exciting new features (such as JAX acceleration and support)
See this guide on how to migrate from pymbar 3.x to pymbar 4.x.
pymbar 3.x support
We will still support the pymbar 3.x version line as a long term support release. We encourage new pymbar users to use the 4.x version, but due to the considerable infrastructure build around pymbar 3.x, we will continue to provide maintenance support. Don't expect new features to be backported, but we will fix bugs.
What's Changed
- Fixed return type of multiple values to dict-like object by @mrshirts in #325
- Move CI to GHA and start upgrade to Cookiecutter style by @Lnaden in #328
- Convert to PyTest by @Lnaden in #333
- Reused the gradient calculation in the adaptive algorithm. by @mrshirts in #336
- Add CodeCov by @Lnaden in #344
- Replace
np.matrixcalls and other warnings by @Lnaden in #334 - Fix formatting by @mrshirts in #342
- Reduce the cost of check for duplicate states by @mrshirts in #337
- Revamping of PMF by @mrshirts in #327
- Start Coverage Improvements (Mbar.py) by @Lnaden in #347
- Bar.py and exp.py tests by @mrshirts in #350
- cleaning up examples by @mrshirts in #352
- Remove 2.01 compatible calls for exp and bar. by @mrshirts in #354
- Even more coverage! by @Lnaden in #357
- From print to logging by @jaimergp in #360
- Add linting to CI by @jaimergp in #367
- Apply black to the whole package by @jaimergp in #371
- camelCase -> snake_case by @jaimergp in #372
- Make Pylint less noisy by @Lnaden in #375
- Modernize examples by @jaimergp in #374
- Refactoring pmf code by @mrshirts in #385
- Better dimension checking by @mrshirts in #386
- Bin edges support by @mrshirts in #387
- Apply Black to examples/ too by @jaimergp in #392
- Updated heat capacity example by @mrshirts in #394
- Replace "potential of mean force" with "free energy surface" by @mrshirts in #397
- Update GHA to use Conda-Incubator by @Lnaden in #410
- Bump conda-incubator in GHA to v2 by @Lnaden in #411
- Clean out old Omnia references for Pymbar 4.0 branch by @Lnaden in #412
- Modernize setup.py and versioning by @jaimergp in #413
- Fix for expectations of very small numbers by @mrshirts in #441
- Noticed one bug in setlogzero commit by @mrshirts in #443
- Syncing Pymbar4 with master by @mrshirts in #444
- Getting CI working on the current default branch by @mikemhenry in #449
- Pymbar 4.0 adaptive logic by @mrshirts in #446
- Pymbar4 add adaptivity by @mrshirts in #453
- Convert JAX JIT to Decorators by @Lnaden in #451
- Align namespaces to work if JAX is not installed by @Lnaden in #454
- Pymbar4 bootstrapping by @mrshirts in #448
- Remove old_mbar.py by @mrshirts in #457
- Pymbar4 with jax (real try now) by @mrshirts in #447
- Pymbar 4.0 by @mrshirts in #458
- [WIP] Pymbar4 documentation by @mrshirts in #455
- remove special character for now. by @mrshirts in #460
- switch to napoleon for better output formatting. by @mrshirts in #461
- More working on doc appearance. by @mrshirts in #462
Full Changelog: 3.0.7...4.0.0
Bugfix Release
What's Changed
- Fix #427 : Add BAR compute overlap method by @jchodera in #430
- Add warning about unstable API by @mikemhenry in #432
Full Changelog: 3.0.6...3.0.7
Bugfix Release
What's Changed
- Fixes sanity check for empty bins in computePMF by @tuckerburgin in #324
- Change anaconda channel from omnia to conda-forge by @chrisjonesBSU in #404
- Update README installation instructions from -c omnia to -c conda-forge. by @bdice in #418
- Forward maximum_iterations from MBAR constructor by @maxentile in #425
- Removed travis CI config file by @mikemhenry in #426
New Contributors
- @tuckerburgin made their first contribution in #324
- @chrisjonesBSU made their first contribution in #404
- @bdice made their first contribution in #418
- @maxentile made their first contribution in #425
- @mikemhenry made their first contribution in #426
Full Changelog: 3.0.5...3.0.6