ChimeraX docs icon

Command: morph

morph  model-spec  [ frames  N ] [ method  corkscrew | independent | linear ] [ rate  function ] [ coreFraction  f ] [ minHingeSpacing  M ] [ colorSegments  true | false ] [ colorCore  color ] [ cartesian  true | false ] [ same  true | false ] [ hideModels  true | false ] [ play  true | false ]

The morph command creates a trajectory that morphs between two or more atomic models. The trajectory can be played back with the command coordset. See also: making movies

Before morphing, the atomic models should be superimposed (such as with matchmaker). In the morph command, the models should be specified in the order desired for morphing. Although the same model number cannot be given more than once, a given structure can be opened multiple times to give copies with different model numbers. Examples:

morph #3,1,2 frames 40
morph #1.1-20 same t
morph #2,5 core 0.1 frames 30

Only the atoms in common among the input structures will be included in the resulting trajectory. The models can have different numbers of residues or different sequences (homologs or mutants can be compared), but currently they must contain equal numbers of chains. Chains are paired by chain ID if the sets of IDs are identical, otherwise by order of occurrence in the input files. Extra chains in the input models should be deleted beforehand or split into separate models not used in morphing (see limitations).

Each sequential pair of input structures serves as the starting and ending points of one stage of the trajectory, and a morph trajectory can have multiple stages. Within each stage, intermediate coordinate sets are generated by interpolating the positions of the atoms in common. Interpolation includes:

  1. rigid-body transformations of atom groups partitioned by hinge regions. Hinges are identified as described in Krebs and Gerstein, Nucleic Acids Res 28:1665 (2000).
  2. coordinate changes within the atom groups

The frames option (default N = 20) indicates generating N–1 intermediate coordinate sets per stage, giving a total number of frames in the trajectory = 1 + N(number of stages).

The method option controls how to calculate the rigid-body transformations:

The rate option controls the temporal distribution of conformational changes within a stage, with possible values: The coreFraction f (default 0.5) is what fraction of the residues in a chain to group in the first step of hinge detection. The best-matching fraction f of residues (best-fitting between the starting and ending structures) comprises one group and the remaining (1–f) a second group. Going through the residues in order, hinges are added between consecutive residues where there is a change from one group to the other, as long as a hinge is at least minHingeSpacing M residues away from the previous hinge (does not create a segment shorter than M residues, default 6). The colorSegments option (default false) shows the resulting segments in different colors (chosen automatically), whereas colorCore uses the specified color for residues in the initial core. Although segments are recomputed at each stage of a multistage morph, segment coloring only shows the first set.

The cartesian option (default false) indicates whether within-group coordinate changes should be interpolated strictly in Cartesian space. Otherwise, internal coordinates will be used for the interpolation where possible. Using internal coordinates is slower but produces less distortion. A trajectory made with Cartesian forcing may be acceptable if few atomic details will be shown (for example, if only ribbons will be displayed).

The same option (default false) indicates whether to assume that the input structures have the same sequences, atom names, residue numbering, and chain IDs. Although this is typically the case for members of an NMR ensemble, it is not necessarily so for different structures of the same biopolymer. If true, atoms are paired by atom name, residue number, and chain ID (all must match). If false, atoms are paired as described below. Setting same to true may make the calculation slightly faster, but otherwise there is little harm in staying with the default if there is any doubt as to whether numbering/naming are the same.

Coordinates for the atoms in common from the stage endpoints (input structures) and the coordinate sets comprise the frames of the trajectory, which is opened as a separate model. The hideModels option (default true) hides the input models, and the play option (default true) plays through the resulting trajectory a single time. Regardless of the play option, the coordset command can be used to replay the trajectory.

Atoms in Common

Coordinate sets are generated by interpolating between starting and ending structures. Interpolation requires a pairing of atoms in the starting structure with atoms in the ending structure. Only atoms common to both stage endpoints are included in the morph trajectory.

The structures must contain equal numbers of biopolymer chains (see limitations). Unless same is true, atoms are paired as follows:

If the sets of chain IDs are identical (for example, each structure contains chains A and B), the IDs will be used to indicate pairing; if they differ (for example, one structure contains chains A and B, whereas another contains chains A and D), the chains will be paired by their order of occurrence in the input files. Residues are paired by aligning the chain sequences. The sequence alignment is performed using the matchmaker defaults (Needleman-Wunsch algorithm, BLOSUM-62 matrix, secondary structure reassignment with dssp, 30% secondary structure scoring, etc.), except that the Nucleic matrix is used for nucleic acids. Only the sequence alignment stage of matchmaker is performed, not the superposition of structures.

HET residues such as ligands and ions are only included if they are present in both structures and attached to the same atom(s) in the paired chains by at least one “covalent” bond or pseudobond.

Once residues are paired, atoms in common within those residues are paired. In paired residues of the same type, atom pairing is straightforward. In paired residues of different types, only atoms with the same names are paired, and only a single connected fragment is kept per residue. For example (disregarding hydrogens), phenylalanine and tyrosine have in common all atoms of phenylalanine.


Secondary structure is not automatically re-evaluated during playback. Protein cartoon (ribbon) display depends on which residues are in helices and strands, but these secondary structure assignments are not recomputed automatically as the coordinates change. The computeSS option of coordset or an alternative approach should be used to update the assignments.

Structures with different numbers of chains are not handled. Currently, a morph trajectory can only be generated from input structures with equal numbers of biopolymer chains. Extra chains in the input models should be deleted beforehand or split into separate models not used in morphing.

Sequences should be easy to align. The sequences of the structures must be aligned to determine the atoms in common for interpolation. When the sequences are dissimilar, parts of the sequence alignment may be wrong, leading to a jumbled and unattractive morph trajectory.

UCSF Resource for Biocomputing, Visualization, and Informatics / May 2017