MD Movie MD Movie icon

MD Movie is a tool for viewing and analysis of trajectories and other ensembles. For examples of use, see the Trajectory and Ensemble Analysis tutorial. See also: Morph Conformations, Molecular Dynamics Simulation, coordset

There are several ways to start MD Movie, a tool in the MD/Ensemble Analysis category.

Several formats are supported:

Format Required Inputs
Amber
  • prmtop (parameter/topology) file, either the older or the newer format (see Appendix E of the Amber 7 Manual)
  • trajectory (coordinates), either formatted or Amber NetCDF, which is binary. Multiple trajectory files can be specified, to be concatenated in the order given. Additional trajectory files can be loaded at a later stage.
Amber residue names are remapped to standard PDB residue names where possible. Partial charges are assigned as the atom attribute named charge. Amber NetCDF support is courtesy of Mingfeng Yang.
CHARMM, NAMD (PSF/DCD), or X-PLOR
  • PSF (protein structure file; X-PLOR-style topology)
  • DCD (binary trajectory). Multiple DCD files can be specified, to be concatenated in the order given. Additional DCD files can be loaded at a later stage.
Partial charges are assigned as the atom attribute named charge. PSF/DCD support is courtesy of MDTools.
NAMD (prmtop/DCD)
  • prmtop (AMBER-style parameter/topology file)
  • DCD (binary trajectory). Multiple DCD files can be specified, to be concatenated in the order given. Additional DCD files can be loaded at a later stage.
Partial charges are assigned as the atom attribute named charge. DCD support is courtesy of MDTools.
GROMACS XTC/TRR support is courtesy of XTC Library.
GROMOS
  • topology
  • coordinates (trajectory)
  • PROMD (PROMD input file used to generate the trajectory)
  • a scale factor to convert the coordinates to angstroms (usually 10.0)
MMTK
particle
PDB, single file
(coordinates for each frame bracketed by MODEL and ENDMDL records)
The name of the file must be supplied. The MODEL numbers are interpreted as frame numbers and should start with 1 or 0 and increment by 1.
PDB, multiple files
(one file per frame)
Starting and ending file names must be supplied. The file names must include frame numbers, and the frames will be ordered by increasing number (not necessarily consecutive; missing numbers will be ignored). The files must not contain END records.
XYZ
(multiple files, one per frame)
Starting and ending file names must be supplied. The file names must include frame numbers, and the frames will be ordered by increasing number (not necessarily consecutive; missing numbers will be ignored).

These input files can be gzipped.

The PDB options generally require coordinates for the same set of atoms to be supplied for each frame. However, if the coordinates supplied for a frame represent only a subset of the atoms in the preceding frame, it will be inferred that the remaining atoms are present but have the same coordinates as in the preceding frame. Changes are cumulated in the forward direction and based on all frames, even when frames are skipped during playback (step size > 1).

All or a contiguous subsegment of a trajectory can be loaded. If pipe is entered as the ending frame number, the input trajectory will be read until it runs out, as long as no other input specifies a smaller ending frame number. For example, for a GROMOS trajectory, the NSTLIM variable in the PROMD file should also be increased to at least the total number of frames expected. When a pipe has been specified, there will be an attempt to load the entire trajectory up front.

A further option is a metafile, simply a text file that specifies the input files/parameters. The first line designates trajectory type (where case is unimportant but any spaces should be stripped, for example, namd(prmtop/dcd) or gromos), and optionally, starting and ending frame numbers of the range to be loaded. A pipe can be specified as described above. If no frame numbers are supplied, the entire trajectory will be loaded; however, if "?" is given for both the starting and ending frame numbers, a dialog for entering this information will appear. The remaining lines specify input files and parameters in the same order as in the dialog. For example:

amber 500 1000
dna.prmtop
dna.mdcrd
or:
pdb
single
108d.pdb
If input files are not in the same directory as the metafile, their pathnames relative to the location of the metafile should be supplied. A metafile can be opened directly from the Command Line (or the system command line upon startup) using the prefix md: or movie:. This will start MD Movie and open the trajectory data.

VIEWING FRAMES

After input files and parameters have been specified, the first set of coordinates will be displayed and the MD Movie controller will appear:

MD Movie controller

If a subsegment was specified, a message about the restricted frame range will be displayed temporarily. The total number of frames in the trajectory (whether loaded or not) will continue to be reported.

For all input formats except PDB and XYZ, the coordinates for a given frame are not read in until that frame is viewed or used for analysis.

From left to right, the buttons mean: play backward continuously; go back one step; stop; go forward one step; and play forward continuously. When the Loop option is on, forward play can wrap from the end to the beginning of the loaded trajectory and reverse play can wrap from the beginning to the end. The rate of continuous play can be adjusted with the Playback speed slider; up to a 1-second delay can be added between frame advances. When continuous play is not in use, the display can also be controlled by moving the pointer (inverted triangle) on the timeline or by entering a new Frame number. The Step size controls the level of sampling for continuous playback. For example, a step size of 3 indicates that only every third frame will be shown; however, when forward play loops from end to beginning, the movie will start at the first frame loaded, and when reverse play loops from beginning to end, the movie will start at the last frame loaded. Frame number and step size changes take effect when return (Enter) is pressed.

Frames can also be navigated by moving the black vertical line on a distance or angle plot or by using the command coordset. Pausing any continuous playback with the dialog is recommended before using these other methods.

** Protein secondary structure assignments are not recomputed automatically over the course of a trajectory. If displaying protein as a ribbon, see the note below. **

The current frame or all frames that have been viewed can be saved as a PDB file with File... Save PDB. The view can be held steady on selected atoms. One can define scripts to be executed at each frame update. A complete menu listing with short descriptions is included below.

Hide closes the interface without exiting from MD Movie; the interface can be reopened using the Tools menu entry for the instance of MD Movie. Quit exits from MD Movie and removes the structure from the Chimera window. Help opens this manual page in a browser window.

RECORDING A MOVIE

Images can be captured during trajectory playback and automatically assembled into a movie file. Manipulations in Chimera can be performed and per-frame scripts executed during the playback/image-saving process. See also: coordset, making movies

File... Record movie opens an interface for specifying image capture and movie assembly parameters: Advanced Options: Clicking Record plays the trajectory and saves image frames according to the specified starting and ending points and step values. The series of images is encoded as a movie file. One duplicate image is included at the end to avoid a “motion blur” at the end of the movie. Stopping playback with the MD Movie controller in the middle of the playback/image-saving process will abort recording without generating a movie file.

Close closes the dialog without initiating recording. Image Tips shows the tips on preparing images, and Help opens this manual page in a browser window.

PER-FRAME SCRIPTS

Per-Frame... Define script allows specification of a script to be executed at each trajectory frame. Scripts can be written in Chimera commands or Python code, and can incorporate trajectory frame numbers. Python scripts can also access the molecule model instance.

Examples:

For Python scripts, the chimera module is automatically imported.

Note: Frame arguments in commands such as roll refer to image frames rather than to unique data (trajectory) frames. For a one-to-one correspondence between image and trajectory frames, the Playback speed slider must be positioned all the way to the right and the viewing step size set to 1. Whereas an MD Movie per-frame script executes at each trajectory frame, commands to be executed at each image frame (independent of any trajectory) can be specified with the perframe command. The rate at which Chimera draws image frames can be controlled with set maxFrameRate.

Insert text file allows browsing to a text file and placing its contents in the script area. Save to file saves the current contents of the script area to a text file.

OK and Apply execute the script with and without closing the dialog, respectively. If the movie is playing, the script will continue to be executed for each trajectory frame until Stop running script is chosen; if the movie is halted on a single frame, the script will be executed for that frame and will not be executed again until a different frame is shown. Clear deletes the contents of the script area. Close closes the dialog without executing the script, and Help opens this manual page in a browser window.

PLOTTING

Analysis... Plot allows plotting values of structure measurements versus frame number:

For distances and angles, the appropriate number of atoms (two, three, or four) should be selected.

RMSD calculations require specifying the atoms of interest and the reference frame number. As in all-by-all RMSD analysis, least-squares-fit RMSD values are calculated without applying any transformation. The atoms can be specified by selection (where lack of selection indicates all atoms) in combination with the options:

Clicking Plot plots the measurement value versus trajectory frame number.

If frames have not yet been viewed/loaded, a dialog will appear with the choices: load all frames (in the range specified in the initial input), load every nth frame, or simply wait until a frame is viewed to load it. Loading via this dialog is faster than viewing/playing the whole trajectory. If not all frames are loaded at this point, the plot will be filled in with additional values as the trajectory is viewed.

All measurements of the same type (for example, distances) are placed in a single plot. The measurements are listed in a table to the right of the plot, with columns: One or more rows (measurements) can be chosen in the table by clicking and dragging; the corresponding atoms will be selected. Ctrl-click toggles the status of a single row. Clicking Delete removes the chosen measurements from the table and plot.

Plots can be hidden individually using the button above the table or collectively by closing the dialog window. In either case, the plots have not been deleted and can be shown again using the MD Movie Analysis... Plot menu.

The current frame is indicated with a vertical black line on the plot. Clicking elsewhere on the plot will reposition the line and jump to the corresponding frame, and playback can be controlled directly by dragging the line. Pausing any continuous playback is recommended to facilitate such manual control over frame viewing.

Below each plot are standard plot navigation icons provided by matplotlib. Images saved via the icon will not include the vertical black line. The Dump Values button at the bottom of the dialog allows saving measurements to a text file, using the number of decimal places specified in Structure Measurements.

OCCUPANCY ANALYSIS

It may be interesting to see which regions of space are highly populated by certain atoms relative to others in the trajectory or ensemble. For example, cations or water hydrogens may tend to occupy space around a negatively charged solute group. Occupancies can be represented as a three-dimensional grid of values, or volume data. Analysis... Calculate occupancy can be used to generate such data and display it with Volume Viewer. The occupancy map can be saved to a file and later reopened in Chimera.

The occupancy values are simply counts of how many times an atom in the specified set falls within a grid cell, except that the weighted-sphere option may award increments of >1 per atom. Both sphere options may increment multiple grid cells per atom.

Usually, one should first define a reference set of atoms to hold steady (the trajectory frames will be transformed to keep these atoms in the same place and orientation, as much as possible). This is accomplished by selecting the desired reference atoms and then choosing Actions... Hold selection steady. When the selection is later changed, the "hold steady" atoms will not change unless Actions... Hold selection steady is used again.

Next, one should select the atoms for which occupancy data will be collected. The atoms in the selection can be combined into a single set of occupancy data, or segregated by atom type.

OK collects occupancy data for the selected atoms according to the specified starting and ending points and step values, with trajectory frames transformed according to a prior hold steady specification, if any. The resulting data grid(s) are displayed with Volume Viewer. The dimensions of an occupancy grid will be the smallest needed to enclose any nonzero values (which could be smaller than the region of data collection). The occupancy map can be saved to a file using File... Save map as in the Volume Viewer menu.

Close closes the dialog without initiating the calculation. Help opens this manual page in a browser window.

RMSD ANALYSIS

Analysis... RMSD map can be used to generate a map of all-by-all pairwise root-mean-square deviations (RMSDs) among specified frames. See also: plotting RMSD (vs. a single reference frame), clustering a trajectory, Ensemble Match, match

OK and Apply initiate the calculations with and without closing the dialog, respectively, while Close simply dismisses the dialog. Help opens this manual page in a browser window.

For each frame-to-frame comparison, the least-squares-fit RMSD between the indicated sets of atoms will be calculated, without applying any transformation. The values will be shown as grayscale squares within an RMSD map. The calculations may require additional frames to be read (frames within the loaded range are not actually read until viewed or otherwise used) and may take several minutes, depending on the size of the system and the number of frames. The Abort button at the bottom of the RMSD map dialog allows termination of a calculation in progress. To decrease computational time, use a sparser sampling of frames (larger step size) and/or fewer atoms in the calculation.

Multiple RMSD maps can be open at the same time. A given map can be recolored (without recalculation of RMSD values) using the map's menu option RMSD... Change thresholds to adjust the white/black threshold settings. When the cursor is placed over a map, the corresponding frame numbers and RMSD value are given below the map. Clicking on a map places the corresponding frame numbers in the Frame fields; clicking Go will show the corresponding frame of the trajectory in the graphics window.

Below the plot are standard navigation icons provided by matplotlib.

Other buttons on the RMSD map dialog:

Alternatively, the Ensemble Match tool can be used to calculate all-by-all pairwise RMSD values for an ensemble read from a single PDB file. The file would need to be opened in a standard way rather than with MD Movie. Unlike MD Movie, Ensemble Match can perform the corresponding pairwise superpositions (i.e. match one structure to another), but its use is impractical for ensembles with very many members.

CLUSTERING

Analysis... Cluster can be used to cluster the trajectory based on pairwise best-fit root-mean-square deviations (RMSDs). A representative frame will be identified for each cluster. For more about the method, see Ensemble Cluster. See also: RMSD analysis

OK and Apply initiate the calculations with and without closing the dialog, respectively, whereas Close simply dismisses the dialog. Help opens this manual page in a browser window.

For each frame-to-frame comparison, the least-squares-fit RMSD between the indicated sets of atoms will be calculated, without applying any transformation. The calculations may require additional frames to be read (frames within the loaded range are not actually read until viewed or otherwise used) and may take several minutes, depending on the size of the system and the number of frames. The Abort button on the progress dialog allows terminating the calculation. To decrease computational time, use a sparser sampling of frames and/or fewer atoms in the calculation.

trajectory cluster dialog

Trajectory Cluster Dialog

Clustering results are shown in a dialog. The top part of the dialog lists the clusters, and for each, the number of Members (how many of the input frames belong to the cluster) and the frame number of the best representative. Different colors are used to show membership in the different clusters within the timeline plot in the bottom part of the dialog. The color used for a cluster can be changed by clicking its color well and using the Color Editor.

Clicking the line for a cluster in the top part of the dialog displays its representative frame in the main window and makes the bars for all of the members of that cluster taller on the timeline plot. The current frame is indicated with an inverted triangle on the plot, and the trajectory can be navigated by moving the triangle, just as in the MD Movie controller dialog. Although more than one cluster can be chosen with the mouse in the top part of the dialog, only one frame can be displayed at a time.

An average structure for a cluster can be calculated by choosing the cluster in the top part of the dialog and clicking Generate average structure for cluster.

Below the plot are standard navigation icons provided by matplotlib.

Save allows writing the clustering information (membership and representatives) to a text file. Close dismisses the cluster dialog. Help opens this manual page in a browser window.

STRUCTURE AVERAGING

An average structure can be computed for the whole trajectory or user-specified frame ranges with Analysis... Average structure in the MD Movie menu, or for a chosen cluster by clicking the Generate average structure... button in the cluster dialog.

A simple average of the Cartesian (x,y,z) coordinates of the biopolymeric components of the trajectory (proteins/peptides and nucleic acids) is calculated and the result opened as a new model. The average structure may be distorted, especially in conformationally variable areas.

Choosing Analysis... Average structure opens a dialog with the following options:

The following also apply to cluster averaging: Clicking OK calculates the average structure and opens it as a new model.

MD MOVIE MENU

File

Actions

Per-Frame

Analysis

ADDING A FORMAT

MD Movie uses the Trajectory module to read the various formats (chimera/share/Trajectory, where chimera is the Chimera installation location). Trajectory contains a subdirectory, formats, which in turn contains subdirectories that each correspond to the Python module for a supported format. By convention, the module (and directory) name for each format is the name of the format with the first letter of each word capitalized and all other letters lowercase. For example, the MMTK module's name is Mmtk.

A format's module is typically structured so that the code that interfaces with Trajectory's generic format handling is in __init__.py, and the code specific to reading a particular format is in another python file, usually named after the format itself (for example, Gromos.py).

__init__.py must support the following:

__init__.py files are very similar from format to format. The simplest way to generate a new __init__.py file is to copy and modify another format's. Gromos format provides a good example, as it involves multiple input files and a non-file parameter.

The format-specific .py file defines an ensemble class that gets instantiated from __init__.py's loadEnsemble function. The ensemble class must support the following methods:


UCSF Computer Graphics Laboratory / September 2015