Skip to content

Releases: MDAnalysis/mdanalysis

Release 2.8.0 of MDAnalysis

22 Nov 20:59
1cfe404
Compare
Choose a tag to compare

Release 2.8.0 of MDAnalysis

This a minor release of MDAnalysis.

As of this release MDAnalysis is packaged under a LGPLv3+ license, and all code contributions are provided under the LGPLv2.1+ license.

This release supports NumPy 2.0+ and offers backwards compatibility through to NumPy 1.23.2

Supported Python versions:

  • 3.10, 3.11, 3.12, 3.13

Major features

See the CHANGELOG and our release blog post for more details.

  • The MDAnalysis package license has changed from GPLv3+ to LGPLv3+ and all code contributions are now under LGPLv2.1+
  • MDAnalysis now has a brand new guesser API (PR #3753). See the DefaultGuesser class for more information. Please note that default guessing of types and masses will change in MDAnalysis v3.0.
  • DSSP analysis analysis.DSSP module for protein secondary structure assignment, based on pydssp was added.
  • An iterative average structure method was added to analysis.align based on DOI 10.1021/acs.jpcb.7b11988.
  • The TPR reader has been updated to support Gromacs 2024.
  • The AnalysisBase class was enhanced through the introduction of a parallelization API (Issue #4158, PR #4304). Various analyses now support parallel computation, including; RMSD, GNMAnalysis, BAT, dihdral calculations, DSSP, and HydrogenBondAnalysis.

Notable changes / upcoming deprecations

  • MMTF support is now deprecated and will be removed in MDAnalysis v3.0. The fetch_mmtf method has been disabled as it no longer works.
  • MDAnalysis.analysis.hole2 has been moved to its own mdakit (mdahole2) and will be fully removed from the core library in MDAnalysis v3.0.
  • MDAnalysis.analysis.encore has been deprecated in favour of its own mdakit (mdaencore) and will be removed in MDAnalysis v3.0.
  • MDAnalysis.analysis.waterdynamics has been deprecated in favour of its own mdakit (waterdynamics) and will be removed in MDAnalysis v3.0.
  • MDAnalysis.analysis.psa has been deprecated in favour of its own mdakit (PathSimAnalysis) and will be removed in MDAnalysis v3.0.
  • The guess_bonds, vdwradii, fudge_factor, and lower_bound kwargs are deprecated for bond guessing during Universe creation.
    Instead, pass ("bonds", "angles", "dihedrals") into to_guess or force_guess during Universe creation, and the associated vdwradii, fudge_factor, and lower_bound kwargs into Guesser creation. Alternatively, if vdwradii, fudge_factor, and lower_bound are passed into Universe.guess_TopologyAttrs, they will override the previous values of those kwargs.
  • MDAnalysis.topology.guessers and MDAnalysis.topology.tables are deprecated in favour of the new Guessers API and will be removed in MDAnalysis v3.0.
  • Unknown masses are set to 0.0 for current version, this will be depracated in MDAnalysis v3.0.0 and replaced by :class:Masses' no_value_label attribute (np.nan).

Release 2.7.0 of MDAnalysis

27 Dec 00:11
aaa4456
Compare
Choose a tag to compare

Release 2.7.0 of MDAnalysis

This a minor release of MDAnalysis.

This release of MDAnalysis is packaged under a GPLv3+ license, additionally all contributions made from commit 44733fc214dcfdcc2b7cb3e3705258781bb491bd onwards are made under the LGPLv2.1+ license.

The minimum supported NumPy version is 1.22.3.

Supported Python versions:

  • 3.9, 3.10, 3.11, 3.12

Major changes:

See the CHANGELOG and our release blog post for more details.

Fixes:

  • NoJump now properly handles jumps that occur on the second frame of NPT trajectories, PR #4258
  • Fix charge reading from PDBQT files. PR #4283
  • Fixed a case where qcprot.CalcRMSDRotationalMatrix would return a RMSD of None. PR #4273

Enhancements:

  • Support was added for reading chainID from prmtop AMBER topologies (PR #4007)
  • Added support for Python 3.12 (PR #4309, #4300, #4301, #4319, #4325, #4327, #4329)
  • Added support for reading chainID from PDBQT files (PR #4284)
  • TPR reader now sets chainID from molblock (PR #4281)
  • Various improvements to the organization and performance of Major and Minor Pair analyses (PR #3735)
  • C distance backend is now exposed via libmdanalysis.pxd (PR #4342)
  • Added a GROMOS11 Reader (PR #4294)

Changes:

  • Added mda_xdrlib as a core dependency to replace the now deprecated Python xdrlib code (PR #4271)
  • ConverterBase has been moved to MDAnalysis.converters.base (PR #4253)
  • networkx is now an optional dependency of MDAnalysis (PR #4331)
  • BioPython is now an optional dependency of MDAnalysis (PR #4332)
  • Results for WatsonCrickDist nucleic acids analysis are now stored in analysis.nucleicacids.WatsonCrickDist.results.distances (PR #3735)

Deprecations:

  • Importing ConverterBase from MDAnalysis.coordinates.base will not be possible after MDAnalysis 3.0 (PR #4253)
  • Deprecation with intent of removal in MDAnalysis v3.0 of the X3DNA legacy code (PR #4333)
  • Deprecation with intent of removal in MDAnalysis v3.0 of the TRZ reader and writer (PR #4335)
  • Deprecation with intent of removal in MDAnalysis v3.0 of the MDAnalysis.lib.util.which method (PR #4340)
  • The asel argument of the timeseries attribute of Readers is now deprecated in favour of the atomgroup argument (PR #4343)
  • In nucleicacids.WatsonCrickDist, accepting lists of Residue objects was deprecated in favor of using ResidueGroup: using List[Residue] will be removed in release 3.0.0; instead use a ResidueGroup (PR #3735)
  • In nucleicacids.WatsonCrickDist the result results.pair_distances was deprecated and will be removed in 3.0.0; use results.distances instead (PR #3735)

New Contributors

Release 2.6.1 of MDAnalysis

29 Aug 02:18
93c4a97
Compare
Choose a tag to compare

Release 2.6.1 of MDAnalysis

This is a bugfix release of the 2.6.x version branch of MDAnalysis, it serves as an amendment to the earlier released version 2.6.0.

See the CHANGELOG for more details.

Bug fixes and changes

  • Reverting the v2.6.0 behaviour, builds are now again made using the oldest supported NumPy version (NumPy 1.22.3 for Python 3.9-3.10, and 1.22.3 for Python 3.11) [PR #4261]
  • Uses of numpy in1d have been replaced with isin in prepartion for NumPy 2.0 [PR #4255]
  • Cython DEF statements have been replaced with compile time integer constants as DEF statements are now deprecated in Cython 3.0 [Issue #4237, PR #4246]
  • Fix to element guessing code to more accurately interpret atom names split by numbers (i.e. N0A is now recognised as N rather than NA) [Issue #4167, PR #4168]
  • Clarification of SurvivalProbability function documentation [Issue #4247, PR #4248]1

New Contributors

Release 2.6.0 of MDAnalysis

15 Aug 23:14
a603475
Compare
Choose a tag to compare

Release 2.6.0 of MDAnalysis

This a minor release of MDAnalysis.

This release of MDAnalysis is packaged under a GPLv3+ license, additionally all contributions made from commit 44733fc onwards are made under the LGPLv2.1+ license. More details about these license changes will be provided in an upcoming blog post.

The minimum supported NumPy version has been raised to 1.22.3 as per NEP29. Please note that package builds are now made with NumPy 1.25+ which offer backwards runtime compatibility with NEP29 supported versions of NumPy.

Supported Python versions:

  • 3.9, 3.10, 3.11

Major changes:

See the CHANGELOG and our release blog post for more details.

Fixes:

  • The -ffast-math compiler flag is no longer used by default at build time, avoiding inconsistent (although still scientifically correct) results seen in Intel MacOS systems when calling `AtomGroup.center_of_charge(..., unwrap=True). This also avoids potentially incorrect floating point results as detailed here. (#4220)
  • DATAWriter, CRD, PQR, and PDBQT files can now be correctly written to compressed files. Before this change, any attempt to write to a compressed format (gzip or bzip2) would lead to writing out an uncompressed file. (#4163)
  • Prevent accidental merging of bond/angle/dihedral types when they are defined as LAMMPS style string integers instead of tuples. This was leading to an incorrect number of bond/angle/dihedral types being written to lammps data files. (#4003)

Enhancements:

  • An exclude_same argument has been added to InterRDF allowing pairs of atoms that share the same residue, segment or chain to be excluded from the calculation. (#4161)
  • LAMMPS reader now supports the continuous ChainReader option. (#4170)
  • AtomGroup representation now returns atom indices in the same order as they are stored in the AtomGroup. (#4191)

Changes:

  • Package builds now use NumPy 1.25 or higher instead of the lowest supported NumPy version. (#4198)
  • As per NEP29, the minimum supported runtime version of NumPy has been increased to 1.22.3. (#4160)
  • The GSD package is now an optional dependency. (#4174)
  • The MDAnalysis package now only supports GSD versions 3.0.1 or above. (#4153)
  • MDAnalysis no longer officially supports 32 bit installations. (they are no longer tested in our continuous integration pipelines). Note: no code changes have been made to disable 32 bit, although it is known that new versions of most MDAnalysis core dependencies no longer release 32 bit compatible versions. (#4176)
  • The package license has been updated to GPLv3+ to better reflect the compatibility of GPLv2+ with Apache and GPLv3 licensed codes. Additionally all new contributions from commit 44733fc onwards are made under the LGPLv2.1+ license. (#4219)

Deprecations:

  • The misspelt Boltzman_constant entry in MDAnalysis.units is now deprecated in favour the correctly spelt Boltzmann_constant. (#4230 and #4214)
  • MDAnalysis.analysis.hole2 is now deprecated in favour of a new HOLE2 MDAKit. (#4200)

New Contributors

Release 2.5.0 of MDAnalysis

27 May 20:44
95fedb5
Compare
Choose a tag to compare

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 for WaterBridgeAnalysis
    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 of HydrogenBondAnalysis
    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)

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 method empty() in
    MDAnalysis.core.universe, enabling creation of a blank Universe 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 to AnalysisBase.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 in MDA.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 the results attribute of
    analysis.nucleicacids' NucPairDist and WatsonCrickDist classes has been
    removed. Please use the results.pair_distances and times 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.

New Contributors

MDAnalysis 2.4.3

30 Mar 01:38
59f4e39
Compare
Choose a tag to compare

Release 2.4.3 of MDAnalysis

This is a bugfix release of the 2.4.x version of MDAnalysis, it serves as an amendment to the earlier released version 2.4.2.

Bug fixes

  • Fixed DCD reading for large (>2Gb) files (Issue #4039). This was broken for versions 2.4.0, 2.4.1 and 2.4.2.
  • Fix element parsing from PSF files tests read via Parmed (Issue #4015)

MDAnalysis 2.4.2

04 Jan 23:41
5948963
Compare
Choose a tag to compare

Release 2.4.2 of MDAnalysis

This is a bugfix release of the 2.4.x version of MDAnalysis, it serves as an amendment to the earlier released version 2.4.1.

Bug fixes

  • Fixed an issue where the arguments passed to np.histogramdd in MDAnalysis.analysis.DensityAnalysis were not compatible with the 1.24 release of NumPy (PR #3976)
  • Fixed upcoming incompatibilities with NumPy 1.25 in MDAnalysis.visualization.streamlines_3D and MDAnalysis.visualization.streamlines where incorrect comparison of the truth of arrays would have led to failures (PR #3977)

MDAnalysis 2.4.1

17 Dec 17:25
c5cbc25
Compare
Choose a tag to compare

Release 2.4.1 of MDAnalysis

This is a bugfix release of the 2.4.x version of MDAnalysis, it serves as an amendment to the earlier released version 2.4.0.

Bug fixes

  • The minimum version of biopython has been raised to 1.80 for pip installs
  • pytng has been added as an optional dependency

MDAnalysis 2.4.0

16 Dec 17:15
da77f2b
Compare
Choose a tag to compare

Release 2.4.0 of MDAnalysis

This a minor release of MDAnalysis, as per our once-every-three-months schedule.

The minimum NumPy and Python versions remain largely unchanged, however the minimum version of biopython has been raised to 1.80. This is also the first release to officially support Python 3.11.

Supported Python versions:

  • 3.8, 3.9, 3.10, 3.11

Major changes:

See the CHANGELOG and our release blog post for more details.

Fixes:

Enchancements:

  • As part of their outreachy project @umak has started adding type annotations throughout the MDAnalysis codebase
  • As part of their GSoC project @BFedder has added an auxialliary reader for EDR files (PR #3749)
  • As part of their GSoC project @aya9aladdin has fixed various issues with guessing and and attribute reading. This will be followed by the introduction of a new guesser system in a future release.
  • A reader for TNG files has been added by @hmacdope, follow up on his previous GSoC 2020 work on creating a python library for reading TNG files (PR 3765)
  • Addition of a new isolayer selection method (PR #3846)
  • Various enchancements and fixes to the LAMMPS DUMP Parser (allowing box translation on reading, allowing coordinates to be unwrapped based on dump image flags, and importing of forces and velocities) (PR #3844)
  • All readers now have a timeseries attribute (PR #3890)
  • ReaderBase file formats now accept pathlib inputs (PR #3935)
  • Added ability for hbond analysis to use types when resnames are not present (PR #3848)

Changes:

  • The deprecated setup.py extra_requires AMBER entry has been removed in favor of extra_formats (PR #3810)
  • Various issues with the auxilliary reader, this should not be much more robust (PR #3749)
  • The Cython headers have been moved to MDAnalysis.lib.libmdanalysis (PR #3913)
  • The MDAnalysis.analysis.align.sequence_alignment now uses Bio.Align.PairwiseAligner instead of the deprecated Bio.pairwise2 (PR #3951)

Deprecations:

  • The MemoryReader's timeseries inclusive indexing will be changed to exclusive in version 3.0.0 (PR #3894)
  • The sequence_aligment() method has been deprecated and will be removed in version 3.0.0 (PR #3951)
  • MDAnalysis.analysis.nucleicacids' direct indexing of selection indices to obtain pair distances results has been deprecated in favor of accessing results.pair_distances (PR #3958)

New Contributors

MDAnalysis 2.3.0

30 Aug 20:42
c56e8df
Compare
Choose a tag to compare

Release 2.3.0 of MDAnalysis

This a minor release of MDAnalysis, as per our once-every-three-months schedule.

The minimum NumPy version has been raised to 1.20.0 (1.21 for macosx-arm64) in line with NEP29.

Supported python versions:

  • 3.8, 3.9, 3.10

Major changes:

See the CHANGELOG and our release blog post for more details.

Fixes:

  • Fixed reading error when dealing with corrupt PDB CONECT records, and an issue where MDAnalysis would write out unusable CONECT records with index>100000 (Issue #988).

Enhancements:

  • Formal charges are now read from PDB files and stored in a formalcharge attribute (PR #3755).
  • A new normalizing norm parameter for the InterRDF and InterRDF_s analysis methods (Issue #3687).
  • Improved Universe serialization performance (Issue #3721, PR #3710).

Changes:

  • To install optional packages for different file formats supported by MDAnalysis, use pip install ./package[extra_formats] (Issue #3701, PR #3711).

Deprecations:

  • The extra_requires target AMBER for pip install ./package[AMBER] will be removed in 2.4.0. Use extra_formats (Issue #3701, PR #3711).

CZI EOSS Performance Improvements:

A series of performance improvements to the MDAnalysis library's backend have been made as per planned work under MDAnalysis' CZI EOSS4 grant. Further details about these will be provided in a future blog post.

  • MDAnalysis.lib.distances now accepts AtomGroups as well as NumPy arrays (PR #3730).
  • Timestep has been converted to a Cython Extension type (PR #3683).