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

The MD Movie controller dialog will be restored along with a trajectory from a saved session file if the trajectory had been fully loaded (all frames read in) before saving. If only some of the frames had been read in, the dialog will not be restored, but those frames can still be accessed with the command 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
  • portable binary "run input" file with topology, starting coordinates, and simulation parameters (.tpr)
  • portable binary trajectory (.trr)
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 files for all intermediate frames must also be present. 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 files for all intermediate frames must also be present.

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, 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. Pausing any continuous playback is recommended to facilitate such manual control over frame viewing.

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: 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. 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.

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 DISTANCES AND ANGLES

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

In each case, selecting the appropriate number of atoms (two, three, or four) and clicking Plot will plot the measurement value versus 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.

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: clustering a trajectory, Ensemble 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.

Below the plot are standard navigation icons provided by matplotlib.

Close dismisses the cluster dialog. Help opens this manual page in a browser window.

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 / November 2011