Normal Mode

Demonstration: elastic network normal mode

NormalModeApp.class

Usage:

  1. Click "Compute" to compute normal modes.
  2. Modify the index (≥ 7, modes 1-6: translations / rotations) of a mode below "Mode:", press Enter.
  3. Click "Play" to see the motion along the mode.
  4. For larger balls representation: set "Ball size" to 3.0; for Cα trace only, set "Ball size" to 0.

Source Code

Download this applet: NormalModeApp.java.

Note: when embedded a webpage, the applet cannot download remote PDB due to Java security reasons. To enable this function, do either of the follows:

Explanation

In the above demonstration, each amino acid residue is represented by its α carbon (Cα) atom.

We add a spring to every residue pair within a certain cutoff (as controlled by the text box below Cutoff). For each pair of residues, the equilibrium length of the spring is taken from the distance in the reference structure. The Hamiltonian (energy function) E is the sum of energy from all springs.

To preserve local geometry, we make springs of neighboring residues really stiff (its stiffness is controlled by the text box below K (nb.)). Here two residues are defined as neighbors if their residue indices differ by no more than 3 (corresponding to effective chemical bonds, bond angles and dihedrals). The number 3 can be adjusted by the text box below Nres. (nb.)

The Hamiltonian E is then approximated as a quadratic function of local displacements, denoted by a vector u, as

E = ½ uT A u,
where A is called the Hessian matrix (basically generalized spring constants).

By solving the eigenvalues and eigenvectors of the Hessian matrix A, we obtain a set of modes. For each mode, the eigenvector gives the direction of motion; the eigenvalue represents the stiffness.

A low-frequency mode usually invokes a large-scale global motion (and thus of functional importance), while a high-frequency mode is usually jiggling.