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 a wide range of popular simulation packages including Gromacs, Amber, NAMD, CHARMM, DL_Poly, HooMD, LAMMPS and many other — 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.
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())
There are a number of tutorials on the MDAnalysis homepage that explain how to conduct RMSD calculations, Alignment and many more features of MDAnalysis.
Source code is hosted in a git repository at
https://github.com/MDAnalysis/mdanalysis
and is available under the GNU General Public License, version 2 (see the file LICENSE).
This is the top level of the master repository. It contains
the MDAnalysis toolkit source files in the directory
package/
the unit tests together with any input files required for running those tests in the directory
testsuite/
The directory maintainer
contains scripts only needed for
maintaining releases and are not generally useful for the user or the
typical developer.
(For more details on the directory layout see Issue 87 on the MDAnalysis issue tracker.)
To setup a development environment and run the testsuite you can use this guide. If you are a new developer who would like to start contributing to MDAnalysis as a start you can increase our code coverage, the guides explain how to find uncovered code.
[*] | build: Unit testing is for the whole package; coverage is shown for the core library modules and the analysis modules. |