4. Analysis modules

The MDAnalysis.analysis module contains code to carry out specific analysis functionality for MD trajectories. It is based on the core functionality (i.e. trajectory I/O, selections etc). The analysis modules can be used as examples for how to use MDAnalysis but also as working code for research projects; typically all contributed code has been used by the authors in their own work. An analysis using the available modules usually follows the same structure

  1. Import the desired module, since analysis modules are not imported by default.
  2. Initialize the module previously imported.
  3. Run the analysis, optionally for specific trajectory slices
  4. Access the analysis from the results attribute
from MDAnalysis.analysis import ExampleAnalysisModule  # (e.g. RMSD)

analysis_obj = ExampleAnalysisModule(universe, ...)
analysis_obj.run(start_frame, stop_frame, step)
print(analysis_obj.results)

Please see the individual module documentation for any specific caveats and also read and cite the reference papers associated with these algorithms.

Additional dependencies

Some of the modules in MDAnalysis.analysis require additional Python packages to enable full functionality. For example, MDAnalysis.analysis.encore provides more options if scikit-learn is installed. If you installed MDAnalysis with pip (see Installing MDAnalysis) these packages are not automatically installed. Although, one can add the [analysis] tag to the pip command to force their installation. If you installed MDAnalysis with conda then a full set of dependencies is automatically installed.

Other modules require external programs. For instance, the MDAnalysis.analysis.hole2.hole module requires an installation of the HOLE suite of programs. You will need to install these external dependencies by following their installation instructions before you can use the corresponding MDAnalysis module.

4.1. Building blocks for Analysis

The building block for the analysis modules is MDAnalysis.analysis.base.AnalysisBase. To build your own analysis class start by reading the documentation.

4.10. Legacy analysis modules

The MDAnalysis.analysis.legacy module contains code that for a range of reasons is not as well maintained and tested as the other analysis modules. Use with care.