Releases 2.5.0 and 2.4.x of MDAnalysis
05 Jun 2023We are happy to release the version 2.5.0 of MDAnalysis!
This is a minor update to the MDAnalysis library.
In line with NEP 29, the minimum required Python and NumPy versions have been raised to 3.9 and 1.21.0 respectively.
Supported Python versions: 3.9, 3.10, 3.11
Supported Operating Systems:
-
Linux (on x86-64, aarch64)
- Note: aarch64 and ppc64le can only be installed via pip for now
- Windows (on x86-64)
- MacOS (on x86-64 and Apple M1)
Note: this release also adds wheels for aarch64 and Apple M1 architectures for pip installations.
Upgrading to MDAnalysis version 2.5.0
To update with conda
from the conda-forge channel run
conda update -c conda-forge mdanalysis
To update from PyPi with pip
run
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.9).
Notable changes
For a full list of changes, bugfixes and deprecations see the CHANGELOG.
Fixes:
- Fixed an issue where transformations were not being properly applied to Universes with multiple trajectories (i.e. using the ChainReader) (Issue #3657 #4008 PR #3906)
- Fixed an issue with the the
heavy
distance_type forWaterBridgeAnalysis
where distance was not correctly assigned when more than one hydrogen was bonded to a heavy atom (Issue #4040, PR #4066). - PDB topology parser no longer fails when encountering unknown formal charges and instead simply does not populate attribute (Issue #4027)
- Fixed an issue where using the
between
keyword ofHydrogenBondAnalysis
led to incorrect donor-atom distances being returned (PR #4092, Issue #4091) - Fixed an issue where chi1_selections() ignored atom names CG1 OG OG1 SG
and incorrectly returned
None
for amino acids CYS, ILE, SER, THR, VAL (Issue #4108, PR #4109) - Fix H5MD reader to read box vectors rather than returning
None
as the dimensions (Issue #4075, PR #4076) - Fix to allow reading NetCDF trajectories which do not have the
time
variable defined (Issue #4073, PR #4074) - Allows shape_parameter and asphericity to yield per residue quantities (Issue #3002, PR #3905)
- Fix EDRReader failing when parsing single-frame EDR files (Issue #3999)
- Add ‘PairIJ Coeffs’ to the list of sections in LAMMPSParser.py (Issue #3336)
- PDBReader now defaults atom values for ts.data[‘occupancy’] to 0.0, rather than the previous default of 1.0. This now matches the default used when setting Universe Topology attributes using the first frame’s information (PR #3988)
Enhancements:
- ARM64 (osx and linux) wheels are now provided via PyPi (Issue #4054)
- Addition of a new analysis class
analysis.atomicdistances.AtomicDistances
to provide distances between two atom groups over a trajectory. (Issue #3654, PR #4105) - Add kwarg
n_frames
to class methodempty()
inMDAnalysis.core.universe
, enabling creation of a blankUniverse
with multiple frames (PR #4140) - PDBReader now populates ts.data[‘tempfactor’] with the tempfactor for
each atom for each frame. If an entry is missing for a given atom,
this will default to a
1.0
value. Note, this does not affect the topology, i.e.AtomGroup.tempfactors
is not dynamically updated. (Issue #3825, PR #3988) - Add writing u.trajectory.ts.data[‘molecule_tag’] as molecule tags to LAMMPS data file (Issue #3548)
- Add
progressbar_kwargs
parameter toAnalysisBase.run
method, allowing to modify description, position etc of tqdm progressbars. (PR #4085) - Add a nojump transformation, which unwraps trajectories so that particle paths are continuous. (Issue #3703, PR #4031)
- Added AtomGroup TopologyAttr to calculate gyration moments (Issue #3904, PR #3905)
- Add support for TPR files produced by Gromacs 2023 (Issue #4047)
- Add distopia distance calculation library bindings as a selectable backend
for
calc_bonds
inMDA.lib.distances
. (Issue #3783, PR #3914) - AuxReaders are now pickle-able and copy-able (Issue #1785, PR #3887)
- Add pickling support for Atom, Residue, Segment, ResidueGroup and SegmentGroup. (PR #3953)
Changes:
- As per NEP29 the minimum supported Python version has been raised to 3.9 and NumPy has been raised to 1.21 (note: in practice later versions of NumPy may be required depending on your architecture, operating system, or Python version) (PRs #4115 and #3983).
- Add progress bars to track the progress of
mds.EinsteinMSD
_conclude()
methods (_conclude_simple()
and_conclude_fft()
) (Issue #4070, PR #4072) - The deprecated direct indexing and
times
from theresults
attribute of analysis.nucleicacids’ NucPairDist and WatsonCrickDist classes has been removed. Please use theresults.pair_distances
andtimes
attributes instead (Issue #3744) - RDKitConverter changes (part of Issue #3996):
- moved some variables (
MONATOMIC_CATION_CHARGES
andSTANDARDIZATION_REACTIONS
) out of the related functions to allow users fine tuning them if necessary. - changed the sorting of heavy atoms when inferring bond orders and charges: previously only based on the number of unpaired electrons, now based on this and the number of heavy atom neighbors.
- use RDKit’s
RunReactantInPlace
for the standardization reactions, which should result in a significant speed improvement as we don’t need to use bespoke code to transfer atomic properties from the non-standardized mol to the standardized one.
- moved some variables (
Author statistics
This release was the work of 25 contributors, 15 of which are new contributors.
Our new contributors are:
@mglagolev @chrispfae @ooprathamm @MeetB7 @v-parmar @MoSchaeffler @xhgchen @DrDomenicoMarson @AHMED-salah00 @schlaicha @jvermaas @SophiaRuan @marinegor @g2707 @DanielJamesEvans
MDAnalysis 2.4.x
MDAnalysis 2.4.0 and three follow up bug fix releases were made earlier this year.
A full list of changes can be seen in the 2.4.x Changelog.
The 2.4.x branch was the work of 13 contributors, including the following 3 new contributors:
@jaclark5 @jfennick @Hakarishirenai
Acknowledgements
MDAnalysis thanks NumFOCUS for its continued support as our fiscal sponsor and the Chan Zuckerberg Initiative for supporting MDAnalysis under an EOSS4 award.
— The MDAnalysis Team