|
Project Information
Featured
Downloads
Links
|
MDAnalysis is an object-oriented python toolkit to analyze molecular dynamics trajectories generated by CHARMM, Gromacs, NAMD, LAMMPS, or Amber. It allows one to read molecular dynamics trajectories and access the atomic coordinates through numpy arrays. This provides a flexible and relatively fast framework for complex analysis tasks. In addition, CHARMM-style atom selection commands are implemented. Trajectories can also be manipulated (for instance, fit to a reference structure) and written out. A typical usage pattern is to iterate through a trajectory and analyze coordinates for every frame. In the following example the end-to-end distance of a protein and the radius of gyration of the backbone atoms are calculated: import MDAnalysis
from MDAnalysis.tests.datafiles import PSF,DCD # test trajectory
import numpy.linalg
u = MDAnalysis.Universe(PSF,DCD) # always start with a Universe
nterm = u.s4AKE.N[0] # can access structure via segid (s4AKE) and atom name
cterm = u.s4AKE.C[-1] # ... takes the last atom named 'C'
bb = u.selectAtoms('protein and backbone') # a selection (a AtomGroup)
for ts in u.trajectory: # iterate through all frames
r = cterm.pos - nterm.pos # end-to-end vector from atom positions
d = numpy.linalg.norm(r) # end-to-end distance
rgyr = bb.radiusOfGyration() # method of a AtomGroup; updates with each frame
print "frame = %d: d = %f Angstroem, Rgyr = %f Angstroem" % (ts.frame, d, rgyr)Availability and InstallingFrom SourceFind the latest source release under Downloads or obtain the development version from the git repository. Note that this is still considered experimental software (although a number of people have been using it successfully for published work). Please report problems through the Issues tracking service. The file INSTALL in the package itself and the wiki pages Install and InstallRecipes should help you compiling and installing MDAnalysis. Debian/Ubuntu binary packagesSince 0.7.4, we also provide deb packages. See detailed instructions under Installing Binary Debian/Ubuntu Packages. Python packagesThe package is also listed on PyPI (the Python package index) and should be installable with easy_install or pip, e.g. easy_install -U MDAnalysis or pip install MDAnalysis Learning MDAnalysisSee the Online Documentation for more information on how to use MDAnalysis and the TableOfContents for a general overview of the available documentation on the Wiki. The paper on MDAnalysis contains a high-level description of the structure and philosophy of the library together with examples of its use. MDAnalysis also comes with example scripts and fairly general analysis modules, available as MDAnalysis.analysis – you can use that code as a starting point for your own analysis scripts. Finally, you can also ask for advice or help on the mdnalysis-discussion mailing list. CitationWhen using MDAnalysis in published work, please cite
(If you are reading the HTML version of the paper, have a look at the PaperErrata.) Included algorithmsIf you use the RMSD alignment code that uses the QCProt module please also cite
If you use the helix analysis algorithm HELANAL in MDAnalysis.analysis.helanal please cite
If you use the GNM trajectory analysis code in MDAnalysis.analysis.gnm please cite
Thanks! Historical, Technical and Artistic RemarksMDAnalysis was originally inspired by the Schulten Group's MDTools for Python, and the DCD reading code is derived from VMD's catdcd. MDAnalysis is GPL licensed, except for some 3rd party code that is included under GPL-compatible licenses; for instance the dcd reading code is under the UIUC Open Source Licence. See the files AUTHORS and LICENSE in the distribution for details. Some time-critical routines are written in C or cython and require a working C compiler. The minimum required version of Python is 2.5. MDAnalysis has been successfully used on Linux and Mac OS X. The MDAnalysis 'Atom' Logo was designed by Christian Beckstein and is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License. |