Online Training Workshop Series

MDAnalysis is excited to be kicking off a series of free online training workshops in Fall 2023. The first will be held on October 25, 2023 from 15:00-18:30 UTC.

This online workshop will consist of an introduction to the MDAnalysis Python library, as well as an opportunity for hands-on learning through basic MDAnalysis tutorials. The workshop will be delivered to a small group to allow interactive discussions, questions, and participant engagement. It is designed for beginners to MDAnalysis who already have a working knowledge of Python and know how use shell and notebook environments.

Register soon (places limited)

If you are interested in participating in this workshop, fill out this short application form before September 30, 2023. Selected participants will be notified in early October.

We have a small number of bursaries to enable participation for researchers from underrepresented groups who are facing financial barriers; these can be applied for when completing the application form.

We are looking into organizing the next workshop for Australasian time zones, so also keep an eye out for announcements of future workshops!

— The MDAnalysis Team

UGM 2023 Keynote Speaker Introduction - Cédric Bouysset

We are excited to introduce our next keynote speaker for the MDAnalysis user group meeting (UGM), Dr. Cédric Bouysset (@cbouy), who was a 2020 Google Summer of Code (GSoc) student with MDAnalysis! To learn more about his work on the interoperability between MDAnalysis and RDKit, see his GSoC report.

There is still time to register and submit your abstract (Abstract Deadline: July 7, 2023). An Outstanding Talk Travel Award will be awarded to the best talk given at the UGM to offset travel and accommodation costs. In addition, if you are facing financial barriers to attendance of the UGM, submit your bursary application with your registration form by Friday, June 23, 2023.

Dr. Cédric Bouysset Speaker Card

Releases 2.5.0 and 2.4.x of MDAnalysis

We 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:

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.


  • 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 (Issue #3336)
  • PDBReader now defaults atom values for[‘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)


  • 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[‘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[‘molecule_tag’] as molecule tags to LAMMPS data file (Issue #3548)
  • Add progressbar_kwargs parameter to 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)


  • 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.

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


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