Blog

Release 2.9.0 of MDAnalysis

We are happy to release version 2.9.0 of MDAnalysis!

This is a minor release of the MDAnalysis library, which means that it contains enhancements, bug fixes, deprecations, and other backwards-compatible changes.

Supported environments

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.

Supported Operating Systems:

Upgrading to MDAnalysis version 2.9.0

To update with mamba (or conda) from the conda-forge channel run

mamba 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.10).

Notable changes

For a full list of changes, bug fixes and deprecations see the CHANGELOG.

Enhancements:

  • Support for Gromacs v2024.4 and v2025 TPR files.
  • A new “water” keyword for selecting water residues.
  • Support for distopia 0.4.0 as an optional distance library backend that now supports many more distance functions for all box types (including general triclinic unit cells).

    On supported x86-64 platforms, install distopia with

    mamba install -c conda-forge distopia
    

    You can then enable distopia as a backend to make use of the optimized distopia code for compute-intensive distance calculations, such as distance_array():

    protein = u.select_atoms("protein and not name H*")
    lipids = u.select_atoms("resname POPC CHOL and not name H*")
    d = MDAnalysis.lib.distances.distance_array(protein, lipids,
                                                box=u.dimensions, 
                                                backend="distopia")
    

    If you want to see if distopia is available as a backend in a running program, check that the variable MDAnalysis.lib.distances.HAS_DISTOPIA is True.

  • Parallel analysis support for MDAnalysis.analysis.nucleicacids, MDAnalysis.analysis.contacts, and MDAnalysis.analysis.density.
  • XYZ writer can now write positions up to a user-supplied precision via the precision keyword argument.

Changes:

  • MDAnalysis.analysis.hole2, MDAnalysis.analysis.psa, and MDAnalysis.analysis.waterdynamics, are now only available via optional dependencies (the mdahole2, pathsimanalysis, and waterdynamics MDAKits). By default these will not be installed, you will need to install them separately if you wish to use them from within MDAnalysis.analysis. Please note that in v3.0 theses modules will be removed completely from the MDAnalysis core library and you will need to use the MDAKits directly.
  • fasteners dependency has been switched to filelock.
  • Codebase is now formatted with black (version 24)

Author statistics

This release was the work of 10 contributors, 3 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.

@IAlibay and @p-j-smith (release managers) on behalf of the MDAnalysis Team


Google Summer of Code 2025

Google Summer of Code with
MDAnalysis 2025

MDAnalysis has been accepted as an organization for Google Summer of Code (GSoC) 2025! If you are interested in working with us and you are new to open source, please read the advice and links below to learn how you can apply to participate in GSoC 2025 with MDAnalysis.

The application window deadline is April 8, 2025 - 18:00 UTC. As part of the application process you must familiarize yourself with Google Summer of Code 2025, including eligibility requirements, timelines, and generally how the program works.

We are looking forward to all applications from any new and beginner open source contributors or students over 18 years old; see a full list of the eligibility requirements in the GSoC FAQ. Projects are scoped as either 90-hour (small), 175-hour (medium) or 350-hour (large) size. The duration can be extended from the standard 8 weeks to up to 12 weeks (for small projects), or from the standard 12 weeks up to 22 weeks (for medium or large projects).

Potential GSoC Contributors are expected to familiarize themselves with application requirements and mentoring organizations as soon as possible. If you are interested in working with us, please read on to learn about MDAnalysis project ideas and MDAnalysis-specific requirements for putting together your application.

Project Ideas

If you have your own idea about a potential project we’d love to work with you to develop this idea; please write to us on the GSoC with MDAnalysis discussion forum to discuss it there.

We also have listed several possible projects for you to work on. Our initial list of ideas (see summaries in the table below) contains various projects of different scope and with different skill requirements. However, check the ideas page — we might add more ideas after the posting date of this post.

Our experience shows that having the listed skills increases the chances that a project will be completed successfully, so we use them as part of our decision criteria in choosing GSoC contributors.

This year, MDAnalysis is joining forces with three other open source projects to offer even more far-reaching collaborative projects: WESTPA, Molecular Nodes, and ProLIF (an MDAKit).

project name difficulty project size description skills mentors
1 Integrating MDAnalysis streaming analysis within WESTPA propagators medium 175 hours Integrate MDAnalysis with WESTPA to analyze streamed trajectory data Python (multiprocessing), Networking (TCP/IP), MD Engines @jeremyleung521, @ltchong, @fiona-naughton, @orbeckst
2 Dashboard for tracking WESTPA simulation progress easy 90 hours Create a graphical user interface to report MD trajectory progress Python (frontend UI, multiprocessing), Networking (TCP/IP) @jeremyleung521, @ltchong, @fiona-naughton, @talagayev
3 Lazy trajectory analysis with Dask and a Lazy Timeseries API medium 175 hours Build out a lazy reader and timestep interface Dask or lazy computation paradigm, Object-oriented programming, Writing analysis code classes/scripts, Experience with a numpy-like-interface @ljwoods2, @orbeckst, @yuxuanzhuang
4 Better interfacing of Blender and MDAnalysis medium 350 hours Improve how Blender and Molecular Nodes interface with MDAnalysis to import and animate MD trajectories Python, MDAnalysis, Blender (and programming via its Python API) @yuxuanzhuang, @bradyajohnston
5 HBond interactions from implicit hydrogens medium 175/350 hours Make interaction fingerprints analysis with ProLIF (an MDAKit) more accessible and faster to run Python, RDKit, SMARTS, compchem @cbouy, @talagayev
6 Continuous (i.e., non-binary) interaction fingerprints (IFPs) hard 350 hours Define thresholds for interactions and implement continuous encoding for interactions Python, RDKit, compchem @cbouy, @talagayev
7 Improving ProLIF’s 2D interaction visualizations medium 90/175 hours Improve ProLIF’s “LigNetwork” plot and add 2D visualizations to summarize information in IFPs Python, JavaScript @cbouy, @talagayev
8 Benchmarking and performance optimization easy/medium 175/350 hours Write benchmarks for automated performance analysis and address performance bottlenecks Python/ASV, Cython @orbeckst, @ljwoods2
9 Integrating OpenFolds’ structural prediction confidence metrics into the topology system easy/medium 90 hours Expose the predicted local distance difference test metric (pLDDT) via the MDAnalysis topology system OpenFold or structural prediction tools more generally, Python, Solving parsing problems @ljwoods2, @orbeckst

Information for prospective GSoC Contributors

You must meet our own requirements if you want to be a GSoC Contributor with MDAnalysis this year (read all the docs behind these links!) and read the points below for the application process. You must also meet the GSoC eligibility criteria. Our GSoC FAQ collects common questions from applicants.

In short:

  1. Agree to be bound by our Code of Conduct (and WESTPA’s Code of Conduct if you are applying for a WESTPA collaboration project [i.e., Project 1, Project 2]);
  2. Familiarize yourself with MDAnalysis and relevant partner projects;
  3. Submit a short pre-proposal
  4. If you have been invited to proceed with your application (based on your pre-proposal) have a pull request merged in MDAnalysis or a partner organization.

Code of Conduct

The MDAnalysis community values diversity and is committed to providing a productive, harassment-free environment to every member. Our Code of Conduct explains the values that we as a community uphold. Every community member (and every GSoC Contributor) agrees to follow the Code of Conduct.

Familiarize yourself with MDAnalysis and relevant partner projects

As a start to get familiar with MDAnalysis and open source development you should follow these steps:

  1. Watch the MDAnalysis Trailer
  2. Complete the Quick Start Guide
  3. If applicable to the project idea you are interested in, learn more about WESTPA, Molecular Nodes, and/or ProLIF.

Watch the MDAnalysis Trailer

The MDAnalysis Trailer on YouTube is a one minute introduction to MDAnalysis.

There are also additional introductory videos available to give you an idea of what problems MDAnalysis is solving.

Complete the Quick Start Guide

Start by installing the MDAnalysis package. We have a Quick Start Guide explaining the basics of MDAnalysis. You should go through it at least once to understand how MDAnalysis is used. Continue reading the User Guide to learn more.

Learn More About WESTPA, Molecular Nodes and ProLIF

As some of the project ideas represent collaboration between MDAnalysis and other partner software projects, you should follow the recommended steps linked here to familiarize yourself (as relevant) with WESTPA, Molecular Nodes and/or ProLIF.

Submit a pre-proposal

We ask you to submit a short pre-proposal so that we can evaluate your understanding of the proposed project. In this pre-proposal you tell us what project you’d like to work on, what you consider the major challenges, and how you plan to solve the problem. MDAnalysis developers will review your proposal and then either invite you to continue with your application and work on an issue to get involved in the code development or tell you that we will not consider your application. Please note that this decision is final, and applicants should only submit one pre-proposal. A rejection is not a judgment on you or your abilities but an assessment of how well you fit the specific requirements of MDAnalysis as a scientific software package — we much rather you spend your energies on contributing to another exciting GSoC project than being rejected later by MDAnalysis.

We require GSoC applicants to submit a pre-proposal that will determine who is then invited to contribute a pull request for evaluation (see below). If you are invited to contribute a pull request and ultimately submit a full application, the pre-proposal will help you gather some of the information you will need to include.

Submit your pre-proposal via this submission form as soon as possible, but no later than March 21, 2025. You should prepare the following information for your pre-proposal:

  • Email address
  • GitHub handle
  • Real name (optional)
  • Basic information on your background (e.g., education, relevant experience with MDAnalysis and molecular dynamics or computational physics/chemistry/materials)
  • Project title
  • Project size (90h, 175h, 350h)
  • Problem: Describe the problem to be solved. What is the background? What is the overarching question? You can also comment on why this is an interesting or difficult problem. Clearly define the overall goal of what you want to find out.
  • Approach: Describe how you are going to reach your goal (i.e., answer the overarching question). Which algorithms are you going to use? Are there any libraries or other packages you want to use? Do you need to research different solutions? Be as concrete as possible; you want to convince your audience that it is feasible to solve this problem and you have an idea how to tackle it.
  • Objectives: Use a numbered list to state 3–5 measurable non-trivial outcomes that you need to achieve in order to reach the overall goal. These are the milestones that you have to reach; they are possibly dependent on each other. For each objective it must be clear how to decide if you fulfilled it or not. Objectives are formulated in terms of actions and deliverables.

Have a pull request merged (by invitation)

Based on your pre-proposal we may invite you to contribute a pull request.

GSoC contributors with MDAnalysis will need to demonstrate that they have been seriously engaged with the MDAnalysis project and/or the partner software projects (WESTPA, Molecular Nodes, ProLIF) by having a pull request (PR) merged prior to submitting their full GSoC application on the GSoC website. Submit the PR in one of the repositories under the MDAnalysis org or, for projects related to Molecular Nodes (i.e., Project 4) or ProLIF (i.e., Project 5, Project 6, Project 7), in the relevant repositories (MolecularNodes: BradyAJohnston/MolecularNodes, ProLIF: chemosim-lab/ProLIF).

You must have at least one commit merged in one of the organizations to be eligible. Note that the earlier you submit your pre-proposal (which are reviewed on a rolling basis), the more time you may have to work on having code merged!

We have a list of easy bugs and suggested GSOC Starter issues to work on in our issue tracker on GitHub. We only accept one GSOC Starter issue per applicant so that all contributors invited to attempt pull requests get a chance. If you want to dive deeper, we encourage you to tackle some of the other issues in our issue tracker. We also appreciate contributions which add more tests or update/improve our documentation. Note that some of the project ideas include related issues that you might want to explore.

To start developing for MDAnalysis have a look at our guide on contributing to MDAnalysis and write to us on the GSoC with MDAnalysis discussion forum if you have more questions about setting up a development environment or how to contribute.

Final remarks

Submit your pre-proposal before March 21, 2025, but the earlier the better! We will then let you know via the email you provide in the pre-proposal submission form if you have been selected to attempt an issue on GitHub and ultimately submit a full application; we strive to inform you of a decision within a week of your submission. The GSoC contributor application period opens on March 24, 2025.

Feel free to ask any questions on the discussion forum. We are also happy to chat on our MDAnalysis Discord server in the #gsoc channel (join with the public invitation link). Please note that MDAnalysis as an organization highly values transparency and therefore we strive to conduct all discussions in public forums so please ask questions publicly and not via direct messages or emails.

We look forward to working with you in GSoC 2025!

MDAnalysis GSoC mentors and organization administrators (GitHub @MDAnalysis/gsoc-mentors, Discord @gsoc-mentor)

Meet our New Core Developers!

We are thrilled to announce that MDAnalysis has elected three new Core Developers to the project: @BradyAJohnston, @marinegor, and @p-j-smith. We thank each of them for the many contributions they have already made to the MDAnalysis project, and look forward to having them help shape the future direction of the project. Keep reading to learn more about Brady, Egor, and Paul, as well as the process behind becoming a Core Developer of MDAnalysis.

Introductions

Brady Johnston (@BradyAJohnston)

Brady Johnston

I originally did my PhD in structural biology at the University of Western Australia. Starting out doing crystallography, I became interested instead with ways to better visualise molecular data instead of collecting it. I created Molecular Nodes (MN) for cinematic visualisation of molecular data inside of the 3D modelling and animation program Blender. Molecular Nodes relies heavily on MDAnalysis for import and handling of molecular dynamics (MD) datasets, with projects going forward also allowing Blender to become a tool for analysing MD trajectories. I have now left academia and do freelance scientific illustration and development full time. You can contact me on on BlueSky, GitHub, Discord and LinkedIn as @bradyajohnston, or see my website. I’m always excited to chat about anything related to Blender and data visualisation.

Egor Marin (@marinegor)

Egor Marin

I started my career as a scientist from macromolecular crystallography, and during my PhD slowly moved towards structural bioinformatics and relevant machine learning methods.

I am currently employed at ENPICOM B.V. as Machine Learning Scientist, and continue contributing to open-source as much as I can.

You can find me as @marinegor almost everywhere, and check out marinegor.dev for some short-form tech posts about my research and open-source work.

Paul Smith (@p-j-smith)

Paul Smith

I did my PhD in computational biophysics at King’s College London, using molecular dynamics simulations to study the biophysics of lipid membranes. During my PhD, I began contributing to open-source scientific software, including MDAnalysis. I created LiPyphilic - an open-source Python package for analysing simulations of lipid membranes, built on top of MDAnalysis.

I’m now a Research Software Engineer at University College London, working on projects broadly related to medical imaging. I’m excited to join the Core Developer team, and always happy to chat about biophysics and open-source software. You can get in touch with me on LinkedIn or GitHub.

Becoming a Core Developer

MDAnalysis is a dynamic, ever-changing community, with many new contributors joining continuously. It is important to us that the leadership of MDAnalysis reflects the community that builds it. Therefore, the MDAnalysis Core Developer team regularly holds elections for new core developers, as described in our governance section. While this voting process is conducted in private, we are publishing and formalizing what we consider when voting, in the interests of transparency.

Firstly, potential Core Developers are identified based on their past contributions to MDAnalysis and potential to move the MDAnalysis project forward. Contributions we account for include both those that are technical in nature, and also less quantifiable ones which add value to the MDAnalysis organization. Examples include:

  • Fixing bugs
  • Adding features
  • Adding or fixing documentation
  • Reviewing pull requests (PRs)
  • Interacting with the community on GitHub or our Discord server
  • Participating in discussions in PRs and issues
  • Organizing workshops or events
  • Mentoring either in an official capacity (e.g., Google Summer of Code) or unofficially (e.g., through reviewing PRs)
  • Promoting a culture which reflects the core values of MDAnalysis, as detailed in our Code of Conduct (e.g., promoting diversity and inclusion within our community)
  • Involvement in ongoing community projects (e.g., applying for grants) and liaising with other organisations, such as our fiscal sponsor, NumFOCUS

If a candidate has shown a history of participating in these activities, they are put forward for election. The Core Developer team reviews the candidate and votes on whether or not they wish to elect an individual, following our standard voting procedures.

Finally, being an active Core Developer requires some amount of active participation in meetings, decisions, and other administrative business. As MDAnalysis does not have any guaranteed long-term funding, this work is usually unpaid. Therefore, the final decision to accept or decline the election is left to the developers themselves: do they have the time and willingness to keep contributing?

If you are interested in becoming a Core Developer, we highly encourage you to participate in some of the activities listed above, especially reviewing pull requests and mentoring other developers. Learn more about the many roles MDAnalysis community members take on to move the project forward on our MDAnalysis team page, and reach out to us on our GitHub discussions forum or Discord server (join the server using the invitation link, https://discord.gg/fXTSfDJyxE. On our end, the MDAnalysis Core Developer team will, to the best of its abilities, aim to offer mentorship and other opportunities to people who express an interest in becoming a Core Developer.

Being a Core Developer is work, but it’s also a fantastic opportunity to work with and for a wonderful and welcoming community. As part of our mission, we welcome anyone who cares for this community and wants to help it grow.

@MDAnalysis/coredevs