Release 2.5.0 of MDAnalysis
This a minor release of MDAnalysis.
The minimum Python version has been raised to 3.9 and NumPy to 1.21.0 as per NEP29. We also now package wheels for both linux and osx arm64 machines on PyPi.
Supported Python versions:
- 3.9, 3.10, 3.11
Major changes:
See the CHANGELOG and our release blog post for more details.
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 returnedNone
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)
Enchancements:
- 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()
in
MDAnalysis.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 a1.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
forcalc_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
and
STANDARDIZATION_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 (
New Contributors
- @mglagolev made their first contribution in #3959
- @chrispfae made their first contribution in #4009
- @ooprathamm made their first contribution in #4010
- @MeetB7 made their first contribution in #4022
- @v-parmar made their first contribution in #4032
- @MoSchaeffler made their first contribution in #4049
- @jandom made their first contribution in #4043
- @xhgchen made their first contribution in #4037
- @DrDomenicoMarson made their first contribution in #4074
- @AHMED-salah00 made their first contribution in #4059
- @schlaicha made their first contribution in #4076
- @jvermaas made their first contribution in #4031
- @SophiaRuan made their first contribution in #4072
- @marinegor made their first contribution in #4085
- @g2707 made their first contribution in #4089
- @DanielJamesEvans made their first contribution in #4109