-
Notifications
You must be signed in to change notification settings - Fork 47
release 2.8.0 blog post #411
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
1972e3c
b71b030
1a48f20
ffe6d0b
61b7656
c4beae7
03f606e
fcc3fe4
b558889
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,219 @@ | ||
| --- | ||
| layout: post | ||
| title: Release 2.8.0 of MDAnalysis | ||
| --- | ||
|
|
||
| We are happy to release version 2.8.0 of MDAnalysis! | ||
|
|
||
| This is a minor release of the MDAnalysis library, which means that it | ||
| contains enhancements, bug fixes, deprecations, and other | ||
| backwards-compatible changes. | ||
|
|
||
| However, in this case *minor* does not quite do justice to what is | ||
| happening in this release, given that we have (at least) three big | ||
| changes/additions: | ||
|
|
||
| 1. The license was changed to the **Lesser General Public License** so | ||
| that MDAnalysis can be used by packages under *any* license while | ||
| keeping the source code itself free and protected. | ||
| 2. We introduce the [Guesser][guesser modules docs] API for | ||
| guessing missing topology attributes such as element or mass in a | ||
| *context-dependent* manner. Until release 3.0, you should not | ||
| notice any differences but under the hood we are getting ready to | ||
| make it easier to work with simulations in a different *context* | ||
| (e.g., with the MARTINI force field) or experimental PDB | ||
| files). With consistent attributes, such as elements, it becomes a | ||
| lot easier to interface with tools like the cheminformatics RDKit | ||
| (via the [converters][converter modules docs]). | ||
|
|
||
| The guessers are the [GSoC 2022 project][] of @aya9aladdin with | ||
| help from @lilyminium, @IAlibay, and @jbarnoud.[^guesserPR] | ||
| 3. We are introducing [parallel analysis][] for tools in | ||
| [MDAnalysis.analysis][] following the simple | ||
| *split-apply-combine* paradigm that we originally prototyped in | ||
| [PMDA][] [^PMDApaper]. What's really exciting is that *any* analysis code | ||
| that is based on [MDAnalysis.analysis.base.AnalysisBase][] can | ||
| enable parallelization with a few lines of extra code---all the | ||
| hard work is done behind the scenes in the base class (in a way | ||
| that is fully backwards compatible!). | ||
|
|
||
| This new feature is the work of @marinegor who brought his | ||
| [GSoC 2023 project][] to completion, with great contributions by | ||
| @p-j-smith, @yuxuanzhuang and @RMeli [^parallelizationPR]. | ||
|
|
||
| Not all MDAnalysis analysis classes have parallelization enabled | ||
| yet but @talagayev has been working tirelessly on already updating | ||
| `GNMAnalysis`, `BAT`, `Dihdedral`, `Ramachandran`, `Janin`, `DSSP` | ||
| (yes, MDAnalysis has _finally_ got DSSP, based on [pydssp][], also | ||
| thanks to @marinegor), `HydrogenBondAnalysis`, in addition to | ||
| `RMSD`. | ||
|
|
||
|
|
||
| ## License change to LGPL | ||
|
|
||
| <a href="https://www.gnu.org/licenses/lgpl-3.0.en.html"> | ||
| <img src="https://www.gnu.org/graphics/lgplv3-with-text-154x68.png" | ||
| title="LGPLv3" alt="LGPLv3 logo" style="float: right"/> | ||
| </a> | ||
|
|
||
| This is the first release of MDAnalysis under the **Lesser General | ||
| Public License**. We have been working towards this license change for | ||
| the last 3 years; this (almost) concludes the process that we | ||
| described in our [licensing update blog post][licensing update]. | ||
|
|
||
|
|
||
| * **All code** is now under [LGPLv2.1 | ||
| license](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html) | ||
| or any higher version. | ||
| * The package is under the [LGPLv3 | ||
| license](https://www.gnu.org/licenses/lgpl-3.0.html) or any higher | ||
| version. However, once we have removed dependencies that prevent | ||
| licensing under LGPLv2.1+ at the moment, we will also license the | ||
| package under the same **LGPLv2.1+** as the code itself. | ||
|
|
||
| We would like to thank all our contributors who granted us permission to | ||
| change the license. We would also like to thank a number of | ||
| institutions who were especially supportive of our open source | ||
| efforts, namely Arizona State University, Australian National | ||
| University, Johns Hopkins University, and the Open Molecular Science | ||
| Foundation. We are also grateful to NumFOCUS for legal support. | ||
|
|
||
| ## Supported environments | ||
|
|
||
| The minimum required NumPy version is 1.23.3. | ||
|
|
||
| Supported Python versions: **3.10, 3.11, 3.12, 3.13**. Support for version | ||
| 3.13 has been added in this release and support for 3.9 has been | ||
| dropped (following [SPEC 0][]) | ||
orbeckst marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Supported Operating Systems: | ||
| - **Linux** (on [x86-64][], [aarch64][]) | ||
orbeckst marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - **Windows** (on [x86-64][]) | ||
| - **MacOS** (on [x86-64][] and [ARM64][]) | ||
|
|
||
|
|
||
| ## Upgrading to MDAnalysis version 2.8.0 | ||
|
|
||
| To update with `mamba` (or `conda`) from the [conda-forge channel][] run | ||
|
|
||
| ```bash | ||
| mamba update -c conda-forge mdanalysis | ||
| ``` | ||
|
|
||
| To update from [PyPi][] with `pip` run | ||
|
|
||
| ```bash | ||
| python -m pip install --upgrade MDAnalysis | ||
| ``` | ||
|
|
||
| For more help with installation see the [installation instructions in the User Guide][]. | ||
| Make sure you are using a Python version compatible with MDAnalysis | ||
| before upgrading (Python >= 3.10). | ||
|
|
||
|
|
||
| ## Notable changes | ||
|
|
||
| For a full list of changes, bugfixes and deprecations see the [CHANGELOG][]. | ||
|
|
||
| #### Enhancements: | ||
|
|
||
| * Added guess_TopologyAttrs() API to the Universe to handle attribute | ||
| guessing (PR #3753) | ||
| * Added the DefaultGuesser class, which is a general-purpose guesser with | ||
| the same functionalities as the existing guesser.py methods (PR #3753) | ||
| * Introduce parallelization API to `AnalysisBase` and to `analysis.rms.RMSD` class | ||
| (Issue #4158, PR #4304) | ||
| * Add `analysis.DSSP` module for protein secondary structure assignment, based on [pydssp](https://github.com/ShintaroMinami/PyDSSP) | ||
| * Improved performance of PDBWriter (Issue #2785, PR #4472) | ||
| * Added parsing of arbitrary columns of the LAMMPS dump parser. (Issue #3504) | ||
| * Implement average structures with iterative algorithm from | ||
| DOI 10.1021/acs.jpcb.7b11988. (Issue #2039, PR #4524) | ||
| * Add support for TPR files produced by Gromacs 2024.1 (PR #4523) | ||
|
|
||
| #### Fixes: | ||
|
|
||
| * Fix Bohrium (Bh) atomic mass in tables.py (PR #3753) | ||
| * Catch higher dimensional indexing in GroupBase & ComponentBase (Issue #4647) | ||
| * Do not raise an Error reading H5MD files with datasets like | ||
| `observables/<particle>/<property>` (part of Issue #4598, PR #4615) | ||
| * Fix failure in double-serialization of TextIOPicklable file reader. | ||
| (Issue #3723, PR #3722) | ||
| * Fix failure to preserve modification of coordinates after serialization, | ||
| e.g. with transformations | ||
| (Issue #4633, PR #3722) | ||
| * Fix PSFParser error when encoutering string-like resids | ||
| (Issue #2053, Issue #4189 PR #4582) | ||
| * Convert openmm Quantity to raw value for KE and PE in OpenMMSimulationReader. | ||
| * Atomname methods can handle empty groups (Issue #2879, PR #4529) | ||
| * Fix bug in PCA preventing use of `frames=...` syntax (PR #4423) | ||
| * Fix `analysis/diffusionmap.py` iteration through trajectory to iteration | ||
| over `self._sliced_trajectory`, hence supporting | ||
| `DistanceMatrix.run(frames=...)` (PR #4433) | ||
|
|
||
|
|
||
| #### Changes: | ||
|
|
||
| * Relicense code contributions from GPLv2+ to LGPLv2.1+ | ||
| and the package from GPLv3+ to LGPLv3+ (PR #4794) | ||
| * only use distopia < 0.3.0 due to API changes (Issue #4739) | ||
| * The `fetch_mmtf` method has been removed as the REST API service | ||
| for MMTF files has ceased to exist (Issue #4634) | ||
| * MDAnalysis now builds against numpy 2.0 rather than the | ||
| minimum supported numpy version (PR #4620) | ||
|
|
||
|
|
||
|
|
||
| #### Deprecations: | ||
orbeckst marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| ## Author statistics | ||
|
|
||
| This release was the work of 22 contributors, **10** of which are **new contributors**. | ||
|
|
||
| Our **new contributors** are: | ||
| - @aditya292002 | ||
| - @pstaerk | ||
| - @kainszs | ||
| - @SampurnaM | ||
| - @leonwehrhan | ||
| - @PythonFZ | ||
| - @kurtmckee | ||
| - @laksh-krishna-sharma | ||
| - @MattTDavies, | ||
| - @talagayev | ||
|
|
||
| ## Acknowledgements | ||
|
|
||
| MDAnalysis thanks [NumFOCUS][] for its continued support as our fiscal sponsor and | ||
| the [Chan Zuckerberg Initiative][] for supporting MDAnalysis under EOSS4 and EOSS5 awards. | ||
|
|
||
| — The MDAnalysis Team | ||
|
||
|
|
||
| [^guesserPR]: Her [PR #3753][] totalled 668 (!) comments. | ||
|
|
||
| [^PMDApaper]: Shujie Fan, Max Linke, Ioannis Paraskevakos, Richard J. Gowers, Michael Gecht, and Oliver Beckstein. *PMDA - Parallel Molecular Dynamics Analysis.* In Chris Calloway, David Lippa, Dillon Niederhut, and David Shupe, editors, *Proceedings of the 18th Python in Science Conference*, 134 – 142. Austin, TX, 2019. SciPy. doi:[10.25080/Majora-7ddc1dd1-013](https://doi.org/10.25080/Majora-7ddc1dd1-013). | ||
|
|
||
| [^parallelizationPR]: See [PR #4162][] with 713 (!) comments. | ||
|
|
||
| [guesser modules docs]: https://docs.mdanalysis.org/stable/documentation_pages/guesser_modules.html | ||
| [converter modules docs]: https://docs.mdanalysis.org/stable/documentation_pages/converters.html | ||
|
|
||
| [GSoC 2022 project]: {{ site.baseurl }}{% post_url 2022-12-9-Aya-gsoc-final-report %} | ||
| [GSoC 2023 project]: {{ site.baseurl }}{% post_url 2024-01-18-gsoc2023_marinegor %} | ||
| [parallel analysis]: https://docs.mdanalysis.org/stable/documentation_pages/analysis/parallelization.html | ||
| [MDAnalysis.analysis.base.AnalysisBase]: https://docs.mdanalysis.org/stable/documentation_pages/analysis/base.html#MDAnalysis.analysis.base.AnalysisBase | ||
| [PR #3753]: https://github.com/MDAnalysis/mdanalysis/pull/3753 | ||
| [PR #4162]: https://github.com/MDAnalysis/mdanalysis/pull/4162 | ||
| [pydssp]: https://github.com/ShintaroMinami/PyDSSP | ||
| [MDAnalysis.analysis]: https://docs.mdanalysis.org/stable/documentation_pages/analysis_modules.html | ||
| [PMDA]: https://github.com/mdanalysis/pmda | ||
| [SPEC 0]: https://scientific-python.org/specs/spec-0000/ | ||
| [x86-64]: https://en.wikipedia.org/wiki/X86-64 | ||
| [aarch64]: https://en.wikipedia.org/wiki/AArch64 | ||
| [ARM64]: https://en.wikipedia.org/wiki/Apple_M1 | ||
| [installation instructions in the User Guide]: https://userguide.mdanalysis.org/stable/installation.html | ||
| [conda-forge channel]: https://anaconda.org/conda-forge/mdanalysis | ||
| [PyPi]: https://pypi.org/project/MDAnalysis/ | ||
| [NumFOCUS]: https://www.numfocus.org | ||
| [CHANGELOG]: https://github.com/MDAnalysis/mdanalysis/blob/release-2.8.0/package/CHANGELOG | ||
| [Chan Zuckerberg Initiative]: https://chanzuckerberg.com/ | ||
| [licensing update]: {{ site.baseurl }}{% post_url 2023-09-22-licensing-update %} | ||
Uh oh!
There was an error while loading. Please reload this page.