Understanding MDAnalysis: A Comprehensive Guide to File Writing, Trajectories, and Analysis

Meiers Dixon

Hatched by Meiers Dixon

May 30, 2024

4 min read


Understanding MDAnalysis: A Comprehensive Guide to File Writing, Trajectories, and Analysis


MDAnalysis is a powerful toolkit for the analysis of molecular dynamics simulations. In this guide, we will delve into the various aspects of MDAnalysis, including file writing, trajectories, and analysis. By the end of this article, you will have a solid understanding of how to effectively use MDAnalysis in your scientific research.

File Writing with MDAnalysis:

The most straightforward way to write to a file in MDAnalysis is by using the write() method of any AtomGroup. MDAnalysis determines the output file format based on the file extension. For example, to write only the Cα (C-alpha) atoms to a file in GRO format, you can use the following code:


ca = u.select_atoms('name CA')



This allows you to selectively write specific atoms to a file in a desired format.

Trajectories in MDAnalysis:

To write out trajectories in MDAnalysis, you can follow a standard procedure. First, open a trajectory Writer and specify the number of atoms a frame will contain. Then, iterate through the trajectory and write coordinates frame-by-frame using the Writer.write() method. If you don't use the context manager and the with statement, you will need to manually close the trajectory using .close().

For example, to write out the Cα atoms to a trajectory in the XTC format, you can use the following code:


ca = u.select_atoms('name CA')

with mda.Writer('calphas.xtc', ca.n_atoms) as w:

for ts in u.trajectory:

  • w.write(ca)


This code snippet demonstrates how to write the Cα atoms to a trajectory file in the XTC format.

Analysis with MDAnalysis:

MDAnalysis provides a diverse set of analysis modules and the flexibility to implement your own analysis methods. The majority of analysis modules follow a common interface. Here's a step-by-step breakdown of the typical analysis workflow in MDAnalysis:

  • 1. Initialize the analysis with a Universe and other required parameters.
  • 2. Run the analysis using the .run() method. You can specify optional arguments such as start frame index, stop frame index, step size, and verbosity.
  • 3. Results are stored within the class, allowing access to the analyzed data.
  • 4. Often, a function is available to operate on single frames. However, it's essential to check the documentation for each specific analysis.

It's worth noting that not all analysis modules are imported by default in MDAnalysis. You may need to explicitly import the desired analysis modules.

RMSD Analysis in MDAnalysis:

RMSD (Root Mean Square Deviation) analysis is one of the commonly used analysis methods in molecular dynamics simulations. MDAnalysis provides the rms module for calculating RMSD between two numpy arrays of coordinates. Here's an example of how to perform RMSD analysis in MDAnalysis:


from MDAnalysis.analysis import rms

bb = u.select_atoms('backbone')

  • u.trajectory[0] # first frame

first = bb.positions

  • u.trajectory[-1] # last frame

last = bb.positions

rms.rmsd(first, last)


In this example, we calculate the RMSD between the first and last frames of the trajectory.

MDAnalysis also offers an RMSD class for analyzing trajectories. To use this class, you need to provide the AtomGroup or Universe for which the RMSD is calculated. The class allows you to align the trajectory and compute RMSD for specific atom selections.


  • u.trajectory[0] # set to first frame

rmsd_analysis = rms.RMSD(u, select='backbone', groupselections=['name CA', 'protein'])



In this code snippet, we create an RMSD analysis object and specify the selections for backbone atoms, Cα atoms, and protein atoms. The .run() method computes the RMSD for the trajectory.

The results of the RMSD analysis are stored in the results.rmsd attribute, which is an array containing the RMSD values for each frame of the trajectory. You can easily convert this array to a pandas DataFrame for further analysis and visualization.

Actionable Advice:

  • 1. Familiarize yourself with the different file formats supported by MDAnalysis. Understanding how to write specific atom selections to different file formats can be incredibly useful for data analysis and visualization.
  • 2. Explore the wide range of analysis modules provided by MDAnalysis. Each analysis module follows a common interface, making it easier to integrate different analysis methods into your research.
  • 3. Take advantage of the RMSD analysis capabilities in MDAnalysis. RMSD analysis is a fundamental tool in molecular dynamics simulations, and MDAnalysis offers both basic RMSD calculations and advanced trajectory analysis options.


MDAnalysis is a versatile toolkit that simplifies the analysis of molecular dynamics simulations. In this guide, we covered the essentials of file writing, trajectories, and analysis using MDAnalysis. By following the provided examples and incorporating the actionable advice, you can effectively leverage MDAnalysis to gain valuable insights from your simulation data.

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)