MDAnalysis is a Python library for the analysis of computer simulations of many-body systems at the molecular scale, spanning use cases from interactions of drugs with proteins to novel materials. It is widely used in the scientific community and is written by scientists for scientists.
It works with a wide range of popular simulation packages including Gromacs, Amber, NAMD, CHARMM, DL_Poly, HooMD, LAMMPS and many others — see the lists of supported trajectory formats and topology formats. MDAnalysis also includes widely used analysis algorithms in the MDAnalysis.analysis module.
The MDAnalysis project uses an open governance model and is fiscally sponsored by NumFOCUS. Consider making a tax-deductible donation to help the project pay for developer time, professional services, travel, workshops, and a variety of other needs.
This project is bound by a Code of Conduct.
If you use MDAnalysis in your project consider letting your users and the world know about it by displaying the MDAnalysis badge! Embedding code is available for different markups.
import MDAnalysis as mda
# Load simulation results with a single line
u = mda.Universe('topol.tpr','traj.trr')
# Select atoms
ag = u.select_atoms('name OH')
# Atom data made available as Numpy arrays
ag.positions
ag.velocities
ag.forces
# Iterate through trajectories
for ts in u.trajectory:
print(ag.center_of_mass())
New users should read the Quickstart Guide and might want to look at our videos, in which core developers explain various aspects of MDAnalysis.
All users should read the User Guide.
Developers may also want to refer to the MDAnalysis API docs.
A growing number of tutorials are available that explain how to conduct RMSD calculations, structural alignment, distance and contact analysis, and many more.
The latest release can be installed via pip or conda as described in the Installation Quick Start.
Source code is hosted in a git repository at https://github.com/MDAnalysis/mdanalysis and is packaged under the GNU Lesser General Public License, version 3 or any later version (LGPLv3+). Invidiual source code components are provided under the GNU Lesser General Public License, version 2.1 or any later version (LGPLv2.1+). Please see the file LICENSE for more information.
Please report bugs or enhancement requests through the Issue Tracker. Questions can also be asked on GitHub Discussions.
If you are a new developer who would like to start contributing to MDAnalysis get in touch on GitHub Discussions. To set up a development environment and run the test suite read the developer guide.
When using MDAnalysis in published work, please cite the following two papers:
- R. J. Gowers, M. Linke, J. Barnoud, T. J. E. Reddy, M. N. Melo, S. L. Seyler, D. L. Dotson, J. Domanski, S. Buchoux, I. M. Kenney, and O. Beckstein. MDAnalysis: A Python package for the rapid analysis of molecular dynamics simulations. In S. Benthall and S. Rostrup, editors, Proceedings of the 15th Python in Science Conference, pages 102-109, Austin, TX, 2016. SciPy. doi: 10.25080/Majora-629e541a-00e
- N. Michaud-Agrawal, E. J. Denning, T. B. Woolf, and O. Beckstein. MDAnalysis: A Toolkit for the Analysis of Molecular Dynamics Simulations. J. Comput. Chem. 32 (2011), 2319--2327. doi: 10.1002/jcc.21787
For citations of included algorithms and sub-modules please see the references.