Skip to content

Commit ffc5e5b

Browse files
orbeckstIAlibay
andauthored
release 2.8.0 blog post (#411)
* release 2.8.0 blog post * changelog 280 * Update _posts/2024-11-22-release-2.8.0.md Co-authored-by: Irfan Alibay <[email protected]> * added more recognition * links + fixes * finalized blog post - all deprecations - links to role list instead of role description - MDAKits with links * untabified * no cf package for py13 Co-authored-by: Irfan Alibay <[email protected]> --------- Co-authored-by: Irfan Alibay <[email protected]>
1 parent bcebb97 commit ffc5e5b

File tree

1 file changed

+290
-0
lines changed

1 file changed

+290
-0
lines changed

_posts/2024-11-22-release-2.8.0.md

Lines changed: 290 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,290 @@
1+
---
2+
layout: post
3+
title: Release 2.8.0 of MDAnalysis
4+
---
5+
6+
We are happy to release version 2.8.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+
However, in this case *minor* does not quite do justice to what is
13+
happening in this release, given that we have (at least) three big
14+
changes/additions:
15+
16+
1. The [license was changed](#license-change-to-lgpl) to the **GNU
17+
Lesser General Public License** so that MDAnalysis can be used by
18+
packages under *any* license while keeping the source code itself
19+
free and protected.
20+
2. We introduce the **[Guesser][guesser modules docs] API** for
21+
guessing missing topology attributes such as element or mass in a
22+
*context-dependent* manner. Until release 3.0, you should not
23+
notice any differences but under the hood we are getting ready to
24+
make it easier to work with simulations in a different *context*
25+
(e.g., with the MARTINI force field or experimental PDB
26+
files). With consistent attributes, such as elements, it becomes a
27+
lot easier to interface with tools like the cheminformatics RDKit
28+
(via the [converters][converter modules docs]).
29+
30+
The guessers are the [GSoC 2022 project][] of @aya9aladdin with
31+
help from @lilyminium, @IAlibay, and @jbarnoud.[^guesserPR]
32+
3. We are introducing **[parallel analysis][]** for tools in
33+
[MDAnalysis.analysis][] following the simple
34+
*split-apply-combine* paradigm that we originally prototyped in
35+
[PMDA][] [^PMDApaper]. What's really exciting is that *any* analysis code
36+
that is based on [MDAnalysis.analysis.base.AnalysisBase][] can
37+
enable parallelization with a few lines of extra code---all the
38+
hard work is done behind the scenes in the base class (in a way
39+
that is fully backwards compatible!).
40+
41+
This new feature is the work of @marinegor who brought his
42+
[GSoC 2023 project][] to completion, with great contributions by
43+
@p-j-smith, @yuxuanzhuang and @RMeli [^parallelizationPR].
44+
45+
Not all MDAnalysis analysis classes have parallelization enabled
46+
yet but @talagayev has been working tirelessly on already updating
47+
`GNMAnalysis`, `BAT`, `Dihedral`, `Ramachandran`, `Janin`, `DSSP`
48+
(yes, MDAnalysis has _finally_ got DSSP, based on [pydssp][], also
49+
thanks to @marinegor), `HydrogenBondAnalysis`, in addition to
50+
`RMSD`.
51+
52+
Read on for more details on the license change and the usual
53+
information on [supported environments](#supported-environments),
54+
[upgrading](#upgrading-to-mdanalysis-version-280) your version of MDAnalysis, and a
55+
[summary of the most important changes](#notable-changes).
56+
57+
58+
## License change to LGPL
59+
60+
<a href="https://www.gnu.org/licenses/lgpl-3.0.en.html">
61+
<img src="https://www.gnu.org/graphics/lgplv3-with-text-154x68.png"
62+
title="LGPLv3" alt="LGPLv3 logo" style="float: right"/>
63+
</a>
64+
65+
This is the first release of MDAnalysis under the **Lesser General
66+
Public License**. We have been working towards this license change for
67+
the last 3 years; this release (almost) concludes the process that we
68+
described in our [licensing update blog post][licensing update].
69+
70+
71+
* **All code** is now under [LGPLv2.1
72+
license](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
73+
or any higher version.
74+
* The package is under the [LGPLv3
75+
license](https://www.gnu.org/licenses/lgpl-3.0.html) or any higher
76+
version. However, once we have removed dependencies that prevent
77+
licensing under LGPLv2.1+ at the moment, we will also license the
78+
package under the same **LGPLv2.1+** as the code itself.
79+
80+
We would like to thank all our contributors who granted us permission to
81+
change the license. We would also like to thank a number of
82+
institutions who were especially supportive of our open source
83+
efforts, namely Arizona State University, Australian National
84+
University, Johns Hopkins University, and the Open Molecular Science
85+
Foundation. We are also grateful to [NumFOCUS][] for legal
86+
support. The [relicensing team][roles] was lead by @IAlibay and @orbeckst.
87+
88+
## Supported environments
89+
90+
The minimum required NumPy version is 1.23.3; MDAnalysis now builds
91+
against NumPy 2.0.
92+
93+
Supported Python versions: **3.10, 3.11, 3.12, 3.13**. Support for version
94+
3.13 has been added in this release and support for 3.9 has been
95+
dropped (following [SPEC 0][]).
96+
97+
Please note that Python 3.13 is limited to [PyPi][] for now, the [conda-forge channel][] installs only provide support for Python 3.10 to 3.12.
98+
99+
Supported Operating Systems:
100+
- **Linux** (on [x86-64][])
101+
- **Windows** (on [x86-64][])
102+
- **MacOS** (on [x86-64][] and [ARM64][])
103+
104+
105+
## Upgrading to MDAnalysis version 2.8.0
106+
107+
To update with `mamba` (or `conda`) from the [conda-forge channel][] run
108+
109+
```bash
110+
mamba update -c conda-forge mdanalysis
111+
```
112+
113+
To update from [PyPi][] with `pip` run
114+
115+
```bash
116+
python -m pip install --upgrade MDAnalysis
117+
```
118+
119+
For more help with installation see the [installation instructions in the User Guide][].
120+
Make sure you are using a Python version compatible with MDAnalysis
121+
before upgrading (Python >= 3.10).
122+
123+
124+
## Notable changes
125+
126+
For a full list of changes, bugfixes and deprecations see the [CHANGELOG][].
127+
128+
#### Enhancements:
129+
130+
* Added `guess_TopologyAttrs()` API to the Universe to handle attribute
131+
guessing (PR #3753)
132+
* Added the `DefaultGuesser` class, which is a general-purpose guesser with
133+
the same functionalities as the existing guesser.py methods (PR #3753)
134+
* Introduce parallelization API to `AnalysisBase` and to `analysis.rms.RMSD` class
135+
(Issue #4158, PR #4304)
136+
* Add `analysis.DSSP` module for protein secondary structure assignment, based on [pydssp](https://github.com/ShintaroMinami/PyDSSP)
137+
* Improved performance of PDBWriter (Issue #2785, PR #4472)
138+
* Added parsing of arbitrary columns of the LAMMPS dump parser. (Issue #3504)
139+
* Implement average structures with iterative algorithm from
140+
DOI 10.1021/acs.jpcb.7b11988. (Issue #2039, PR #4524)
141+
* Add support for TPR files produced by Gromacs 2024.1 (PR #4523)
142+
143+
#### Fixes:
144+
145+
* Fix Bohrium (Bh) atomic mass in tables.py (PR #3753)
146+
* Catch higher dimensional indexing in GroupBase & ComponentBase (Issue #4647)
147+
* Do not raise an Error reading H5MD files with datasets like
148+
`observables/<particle>/<property>` (part of Issue #4598, PR #4615)
149+
* Fix failure in double-serialization of TextIOPicklable file reader.
150+
(Issue #3723, PR #3722)
151+
* Fix failure to preserve modification of coordinates after serialization,
152+
e.g. with transformations
153+
(Issue #4633, PR #3722)
154+
* Fix PSFParser error when encountering string-like resids
155+
(Issue #2053, Issue #4189 PR #4582)
156+
* Convert openmm Quantity to raw value for KE and PE in OpenMMSimulationReader.
157+
* Atomname methods can handle empty groups (Issue #2879, PR #4529)
158+
* Fix bug in PCA preventing use of `frames=...` syntax (PR #4423)
159+
* Fix `analysis/diffusionmap.py` iteration through trajectory to iteration
160+
over `self._sliced_trajectory`, hence supporting
161+
`DistanceMatrix.run(frames=...)` (PR #4433)
162+
163+
164+
#### Changes:
165+
166+
* Relicense code contributions from GPLv2+ to LGPLv2.1+
167+
and the package from GPLv3+ to LGPLv3+ (PR #4794)
168+
* only use distopia < 0.3.0 due to API changes (Issue #4739)
169+
* The `fetch_mmtf` method has been removed as the REST API service
170+
for MMTF files has ceased to exist (Issue #4634)
171+
* MDAnalysis now builds against numpy 2.0 rather than the
172+
minimum supported numpy version (PR #4620)
173+
174+
175+
176+
#### Deprecations:
177+
178+
* Deprecations of old guessing functionality (in favor of the new
179+
Guesser API)
180+
* `MDAnalysis.topology.guessers` is deprecated in favour of the new
181+
Guessers API and will be removed in version 3.0 (PR #4752)
182+
* The `guess_bonds`, `vdwradii`, `fudge_factor`, and `lower_bound`
183+
kwargs are deprecated for bond guessing during Universe
184+
creation. Instead, pass `("bonds", "angles", "dihedrals")` into
185+
`to_guess` or `force_guess` during Universe creation, and the
186+
associated `vdwradii`, `fudge_factor`, and `lower_bound` kwargs
187+
into `Guesser` creation. Alternatively, if `vdwradii`,
188+
`fudge_factor`, and `lower_bound` are passed into
189+
`Universe.guess_TopologyAttrs`, they will override the previous
190+
values of those kwargs. (Issue #4756, PR #4757)
191+
* `MDAnalysis.topology.tables` is deprecated in favour of
192+
`MDAnalysis.guesser.tables` and will be removed in version 3.0 (PR #4752)
193+
* Element guessing in the `ITPParser` is deprecated and will be removed in version 3.0
194+
(Issue #4698)
195+
* **Unknown masses are still set to 0.0 for current version**, this
196+
will be changed **in version 3.0.0 and replaced by
197+
`Masses` "no_value_label" attribute (`np.nan`)** (PR #3753)
198+
* A number of analysis modules have been moved into their own
199+
[MDAKits][], following the [3.0 roadmap towards a trimmed down core
200+
library][roadmap]. Until release 3.0, these modules are still
201+
available through `MDAnalysis.analysis` (either as an import of the
202+
MDAKit as an automatically installed dependency of the MDAnalysis
203+
package or as the original code) but from 3.0 onwards, users must
204+
install the MDAKit explicitly and then import it by themselves.
205+
206+
* The `MDAnalysis.analysis.encore` module has been deprecated in
207+
favour of the [mdaencore]() MDAKit and will be removed in version
208+
3.0.0 (PR #4737)
209+
* The `MDAnalysis.analysis.waterdynamics` module has been deprecated in favour
210+
of the [waterdynamics][] MDAKit and will be removed in version 3.0.0 (PR #4404)
211+
* The `MDAnalysis.analysis.psa` module has been deprecated in favour of
212+
the [PathSimAnalysis][] MDAKit and will be removed in version 3.0.0
213+
(PR #4403)
214+
* The MMTF Reader is deprecated and will be removed in version 3.0 as
215+
the MMTF format is no longer supported (Issue #4634).
216+
217+
218+
219+
## Author statistics
220+
221+
This release was the work of 22 contributors, **10** of which are **new contributors**.
222+
223+
Our **new contributors** are:
224+
- @aditya292002
225+
- @pstaerk
226+
- @kainszs
227+
- @SampurnaM
228+
- @leonwehrhan
229+
- @PythonFZ
230+
- @kurtmckee
231+
- @laksh-krishna-sharma
232+
- @MattTDavies,
233+
- @talagayev
234+
235+
## Acknowledgements
236+
237+
MDAnalysis thanks [NumFOCUS][] for its continued support as our fiscal sponsor and
238+
the [Chan Zuckerberg Initiative][] for supporting MDAnalysis under EOSS4 and EOSS5 awards.
239+
240+
@IAlibay ([release manager][roles]) on behalf of the [MDAnalysis Team][]
241+
242+
243+
----
244+
245+
246+
[^guesserPR]: The Guesser API was a _big_ undertaking: Her merged [PR
247+
#3753][] totalled 668 (!) comments. We look forward to the
248+
community providing Guessers for specific context.
249+
250+
[^PMDApaper]: Shujie Fan, Max Linke, Ioannis Paraskevakos, Richard
251+
J. Gowers, Michael Gecht, and Oliver Beckstein. *PMDA - Parallel
252+
Molecular Dynamics Analysis.* In Chris Calloway, David Lippa,
253+
Dillon Niederhut, and David Shupe, editors, *Proceedings of the
254+
18th Python in Science Conference*, 134 – 142. Austin,
255+
TX, 2019. SciPy. doi:[10.25080/Majora-7ddc1dd1-013](https://doi.org/10.25080/Majora-7ddc1dd1-013).
256+
257+
[^parallelizationPR]: Adding parallelization in a transparent manner
258+
was quite a difficult undertaking that touched many parts of the
259+
analysis code and required a lot of thought. Feedback is very
260+
welcome! See [PR #4162][] with 713 (!) comments.
261+
262+
[guesser modules docs]: https://docs.mdanalysis.org/stable/documentation_pages/guesser_modules.html
263+
[converter modules docs]: https://docs.mdanalysis.org/stable/documentation_pages/converters.html
264+
265+
[GSoC 2022 project]: {{ site.baseurl }}{% post_url 2022-12-9-Aya-gsoc-final-report %}
266+
[GSoC 2023 project]: {{ site.baseurl }}{% post_url 2024-01-18-gsoc2023_marinegor %}
267+
[parallel analysis]: https://docs.mdanalysis.org/stable/documentation_pages/analysis/parallelization.html
268+
[MDAnalysis.analysis.base.AnalysisBase]: https://docs.mdanalysis.org/stable/documentation_pages/analysis/base.html#MDAnalysis.analysis.base.AnalysisBase
269+
[PR #3753]: https://github.com/MDAnalysis/mdanalysis/pull/3753
270+
[PR #4162]: https://github.com/MDAnalysis/mdanalysis/pull/4162
271+
[pydssp]: https://github.com/ShintaroMinami/PyDSSP
272+
[MDAnalysis.analysis]: https://docs.mdanalysis.org/stable/documentation_pages/analysis_modules.html
273+
[PMDA]: https://github.com/mdanalysis/pmda
274+
[SPEC 0]: https://scientific-python.org/specs/spec-0000/
275+
[x86-64]: https://en.wikipedia.org/wiki/X86-64
276+
[ARM64]: https://en.wikipedia.org/wiki/Apple_M1
277+
[installation instructions in the User Guide]: https://userguide.mdanalysis.org/stable/installation.html
278+
[conda-forge channel]: https://anaconda.org/conda-forge/mdanalysis
279+
[PyPi]: https://pypi.org/project/MDAnalysis/
280+
[NumFOCUS]: https://www.numfocus.org
281+
[CHANGELOG]: https://github.com/MDAnalysis/mdanalysis/blob/release-2.8.0/package/CHANGELOG
282+
[Chan Zuckerberg Initiative]: https://chanzuckerberg.com/
283+
[licensing update]: {{ site.baseurl }}{% post_url 2023-09-22-licensing-update %}
284+
[roles]: {{ site.baseurl }}/pages/team/#roles
285+
[MDAnalysis Team]: {{ site.baseurl }}/pages/team
286+
[MDAKits]: https://mdakits.mdanalysis.org/
287+
[roadmap]: {{ site.baseurl }}{% post_url 2023-10-25-towards_3.0 %}#a-trimmed-down-core-library
288+
[mdaencore]: https://mdakits.mdanalysis.org/mdaencore.html
289+
[waterdynamics]: https://mdakits.mdanalysis.org/waterdynamics.html
290+
[PathSimAnalysis]: https://mdakits.mdanalysis.org/PathSimAnalysis.html

0 commit comments

Comments
 (0)