Blog

Release 2.7.0 of MDAnalysis

We are happy to release version 2.7.0 of MDAnalysis!

This is a minor update to the MDAnalysis library.

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 can be found in our blog post.

The minimum required NumPy version is 1.22.3.

Supported Python versions: 3.9, 3.10, 3.11, 3.12. Support for version 3.12 has been added in this release.

Supported Operating Systems:

Upgrading to MDAnalysis version 2.7.0

To update with conda from the conda-forge channel run

conda update -c conda-forge mdanalysis

To update from PyPi with pip run

python -m 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:

  • NoJump now properly handles jumps that occur on the second frame of NPT trajectories (PR #4258).
  • Fixed 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 Autodock PDBQT files (PR #4284), GROMACS TPR topologies (PR #4281) and amber prmtop topologies (PR #4007).
  • 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).

Author statistics

This release was the work of 13 contributors, 5 of which are new contributors.

Our new contributors are:

Acknowledgements

MDAnalysis thanks NumFOCUS for its continued support as our fiscal sponsor and the Chan Zuckerberg Initiative for supporting MDAnalysis under EOSS4 and EOSS5 awards.

— The MDAnalysis Team

Moving from Mailing Lists to GitHub Discussions

Dear MDAnalysis community, Our Google groups (mailing lists) have been the main way to ask questions, exchange ideas, and to discuss about development. However, with more modern solutions available we felt a change was needed.

The MDAnalysis Team considered different alternatives and after lengthy discussions we settled on moving the Google groups to GitHub Discussions. This will have multiple advantages, including proper code formatting and cross-linking between issues and discussions.

GitHub Discussions are already enabled on GitHub and can be used right away: please start using the Discussions forum, instead of the Google groups.

GitHub Discussions are divided into categories, and we will have the following (and more):

We hope to see all of you in the new GitHub Discussions forum! The mailing lists will remain open for a bit longer to finish off open discussions, after which they will be archived (accessible as read-only).

- Rocco Meli, on behalf of the MDAnalysis Team

Towards MDAnalysis 3.0

Overview

MDAnalysis is beginning to plan for our 3.0 release! Following discussions at our first UGM, we (the MDAnalysis Core Developers) have decided on a set priorities for this exciting milestone (detailed below). Our primary goals can be divided into several main themes.

A trimmed down core library

As MDAnalysis continues to grow along with the field of molecular simulations, we are aiming to continue to provide a highly functional, easily maintainable package that can be the foundation of a wide variety of downstream tools.

Following the successful introduction of the MDAKits ecosystem (modelled on the SciKit ecosystem, see the MDAKits paper) as part of our EOSS4 work, which provides infrastructure for creating FAIR packages that address specific scientific questions in the analysis of molecular simulation, we are aiming to move some more specialized analyses currently present in the MDAnalysis core library to MDAKits. Several analysis modules, including hole2 (pore and cavity analysis), encore (ensemble similarity analysis), psa (path similarity analysis), helanal (helix orientation) and waterdynamics (water orientation and dynamicss) will become stand-alone MDAKits and are going to be removed from MDAnalysis.analysis in 3.0. Some of these packages are already deployed as MDAKits and are deprecated in the core library.

This change will allow for a reduction in the core dependencies of MDAnalysis and reduce the maintenance burden of specialist analyses in the core library. This will also empower those developing specialist analysis code to rapidly develop and prototype their code in well supported downstream packages. Additionally, core developers will be able to spend more cycles on core competencies, fixing critical issues and planning future improvements, ensuring that MDAnalysis can be easily and effectively maintained for years to come.

For at least the 3.x life cycle, the MDAnalysis development team will fully maintain MDAKits that have been moved out of the core (unless other maintainers take over). We are, however, very much looking for community members who are willing to participate in MDAKit maintenance or want to take over maintenance of a kit. If some functionality is important for your research, work with us: We will teach you the basics of package maintenance and you will perform a great service to the molecular simulation community!

Enhancements

We have identified several areas that we would like to target for future improvement of MDAnalysis across four key themes.

  1. Improving interoperability
    • Add support for new formats
    • Moving converters to MDAKits
    • Improve interoperability with chemoinformatics and simulation software
  2. Scientifically aware operations
    • Improve guessers to enable context-dependent chemical information to be easily inferred
    • Make MDAnalysis more chemoinformatics-aware
    • Improve support for units and unit systems
  3. Support for streaming and cloud storage
    • Add support for generic streams in file readers
    • Enable reading of trajectories and topologies directly from cloud storage (eg AWS S3)
  4. Enhanced parallelism and performance
    • Improve performance of key distance routines with distopia
    • Create a compiled backend for ASCII topology and coordinate readers
    • Redesign precision model in MDAnalysis internals to guarantee user-controlled precision
    • Add support for parallelism via a Dask based parallel backend (continuation of a GSOC project)

We aim to lay the groundwork for these future directions in our work for MDAnalysis 3.0.

User facing API changes

We are also planning to clear up some API inconsistencies scattered across the library that require an API break, including some instances where coordinate readers behave differently relative to each other, renaming some arguments to clearer names and addressing other miscellanea. Additionally, we are aiming to provide a more consistent and usable low-level Cython API surface that compiled extensions can hook into. We are also investigating the feasibility of improving consistency of precision handling in various parts of the MDAnalysis core library, as the use of double and mixed precision has been identified as a key performance bottleneck.

Improving organization structure and formalising roles and responsibilities.

We have identified that assigning direct roles and responsibilities across our Core Developers is a change that will be beneficial for the health of our community going forward. To this end we are workshopping a more formal organization structure that will make our internal processes more transparent and allow more functional redundancy in key roles. Watch this space!

If you have any feedback on this roadmap or would like to discuss our future plans with us, contact us on our Discord or mailing list.

– Hugo MacDermott-Opeskin on behalf of the MDAnalysis Core Developers