|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: Release 2.9.0 of MDAnalysis |
| 4 | +--- |
| 5 | + |
| 6 | +We are happy to release version 2.9.0 of MDAnalysis! |
| 7 | + |
| 8 | +This is a minor release of the MDAnalysis library, which means that it |
| 9 | +contains enhancements, bug fixes, deprecations, and other |
| 10 | +backwards-compatible changes. |
| 11 | + |
| 12 | + |
| 13 | +## Supported environments |
| 14 | + |
| 15 | +This release supports NumPy 2.0+ and offers backwards compatibility |
| 16 | +through to NumPy 1.23.2. |
| 17 | + |
| 18 | +Supported Python versions: **3.10, 3.11, 3.12, 3.13**. |
| 19 | + |
| 20 | +Supported Operating Systems: |
| 21 | + - **Linux** (on [x86-64][]) |
| 22 | + - **Windows** (on [x86-64][]) |
| 23 | + - **MacOS** (on [x86-64][] and [ARM64][]) |
| 24 | + |
| 25 | + |
| 26 | +## Upgrading to MDAnalysis version 2.9.0 |
| 27 | + |
| 28 | +To update with `mamba` (or `conda`) from the [conda-forge channel][] run |
| 29 | + |
| 30 | +```bash |
| 31 | +mamba update -c conda-forge mdanalysis |
| 32 | +``` |
| 33 | + |
| 34 | +To update from [PyPi][] with `pip` run |
| 35 | + |
| 36 | +```bash |
| 37 | +python -m pip install --upgrade MDAnalysis |
| 38 | +``` |
| 39 | + |
| 40 | +For more help with installation see the [installation instructions in the User Guide][]. |
| 41 | +Make sure you are using a Python version compatible with MDAnalysis |
| 42 | +before upgrading (Python >= 3.10). |
| 43 | + |
| 44 | + |
| 45 | +## Notable changes |
| 46 | + |
| 47 | +For a full list of changes, bug fixes and deprecations see the [CHANGELOG][]. |
| 48 | + |
| 49 | +#### Enhancements: |
| 50 | + |
| 51 | +* Support for Gromacs v2024.4 and v2025 TPR files. |
| 52 | +* A new "water" keyword for selecting water residues. |
| 53 | +* Support for **[distopia][] 0.4.0** as an optional distance library |
| 54 | + backend that now supports [many more distance |
| 55 | + functions](https://docs.mdanalysis.org/stable/documentation_pages/lib/distances.html#id2) |
| 56 | + for *all box types* (including general triclinic unit cells). |
| 57 | + |
| 58 | + On supported [x86-64][] platforms, install *distopia* with |
| 59 | + ```bash |
| 60 | + mamba install -c conda-forge distopia |
| 61 | + ``` |
| 62 | + |
| 63 | + You can then [enable *distopia* as a |
| 64 | + backend](https://docs.mdanalysis.org/stable/documentation_pages/lib/distances.html#use-of-the-distopia-library) |
| 65 | + to make use of the optimized *distopia* code for |
| 66 | + compute-intensive distance calculations, such as |
| 67 | + [`distance_array()`](https://docs.mdanalysis.org/stable/documentation_pages/lib/distances.html#MDAnalysis.lib.distances.distance_array): |
| 68 | + |
| 69 | + ```python |
| 70 | + protein = u.select_atoms("protein and not name H*") |
| 71 | + lipids = u.select_atoms("resname POPC CHOL and not name H*") |
| 72 | + d = MDAnalysis.lib.distances.distance_array(protein, lipids, |
| 73 | + box=u.dimensions, |
| 74 | + backend="distopia") |
| 75 | + ``` |
| 76 | + |
| 77 | + If you want to see if *distopia* is available as a backend in a running |
| 78 | + program, check that the variable `MDAnalysis.lib.distances.HAS_DISTOPIA` is |
| 79 | + `True`. |
| 80 | + |
| 81 | +* Parallel analysis support for `MDAnalysis.analysis.nucleicacids`, `MDAnalysis.analysis.contacts`, and `MDAnalysis.analysis.density`. |
| 82 | +* XYZ writer can now write positions up to a user-supplied precision via the `precision` keyword argument. |
| 83 | + |
| 84 | + |
| 85 | +#### Changes: |
| 86 | + |
| 87 | +* `MDAnalysis.analysis.hole2`, `MDAnalysis.analysis.psa`, and |
| 88 | + `MDAnalysis.analysis.waterdynamics`, are now only available via |
| 89 | + optional dependencies (the mdahole2, pathsimanalysis, and |
| 90 | + waterdynamics [MDAKits][]). By default these will not be installed, you |
| 91 | + will need to install them separately if you wish to use them from |
| 92 | + within `MDAnalysis.analysis`. Please |
| 93 | + note that *in v3.0* theses modules will be *removed completely from the |
| 94 | + MDAnalysis core library* and you will need to use the MDAKits |
| 95 | + directly. |
| 96 | +* `fasteners` dependency has been switched to `filelock`. |
| 97 | +* Codebase is now formatted with black (version 24) |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | +## Author statistics |
| 102 | + |
| 103 | +This release was the work of 10 contributors, **3** of which are **new contributors**. |
| 104 | + |
| 105 | +Our **new contributors** are: |
| 106 | + |
| 107 | +* @ChiahsinChu |
| 108 | +* @tanishy7777 |
| 109 | +* @jauy123 |
| 110 | + |
| 111 | + |
| 112 | +## Acknowledgements |
| 113 | + |
| 114 | +MDAnalysis thanks [NumFOCUS][] for its continued support as our fiscal sponsor and |
| 115 | +the [Chan Zuckerberg Initiative][] for supporting MDAnalysis under EOSS4 and EOSS5 awards. |
| 116 | + |
| 117 | +— @IAlibay and @p-j-smith ([release managers][roles]) on behalf of the [MDAnalysis Team][] |
| 118 | + |
| 119 | + |
| 120 | +---- |
| 121 | + |
| 122 | + |
| 123 | +[SPEC 0]: https://scientific-python.org/specs/spec-0000/ |
| 124 | +[x86-64]: https://en.wikipedia.org/wiki/X86-64 |
| 125 | +[ARM64]: https://en.wikipedia.org/wiki/Apple_M1 |
| 126 | +[installation instructions in the User Guide]: https://userguide.mdanalysis.org/stable/installation.html |
| 127 | +[conda-forge channel]: https://anaconda.org/conda-forge/mdanalysis |
| 128 | +[PyPi]: https://pypi.org/project/MDAnalysis/ |
| 129 | +[NumFOCUS]: https://www.numfocus.org |
| 130 | +[CHANGELOG]: https://github.com/MDAnalysis/mdanalysis/blob/release-2.9.0/package/CHANGELOG |
| 131 | +[Chan Zuckerberg Initiative]: https://chanzuckerberg.com/ |
| 132 | +[roles]: {{ site.baseurl }}/pages/team/#roles |
| 133 | +[MDAnalysis Team]: {{ site.baseurl }}/pages/team |
| 134 | +[MDAKits]: https://mdakits.mdanalysis.org/ |
| 135 | +[distopia]: https://github.com/MDAnalysis/distopia |
0 commit comments