Dynamics Analysis
This module defines classes and functions for protein dynamics analysis.
Dynamics Models
The following classes are designed for modeling and analysis of protein dynamics:
ANM- Anisotropic network model, for coarse-grained NMA
GNM- Gaussian network model, for coarse-grained dynamics analysis
PCA- Principal component analysis of conformation ensembles
EDA- Essential dynamics analysis of dynamics trajectories
NMA- Normal mode analysis, for analyzing data from external programs
RTB- Rotations and Translation of Blocks method
Usage of these classes are shown in anm, gnm, pca, and eda examples.
The following classes are for analysis of individual modes or subsets of modes:
Customize ENMs
The following classes allow for using structure or distance based, or other custom
force constants and cutoff distances in ANM and GNM
calculations:
Gamma- base class for developing property custom force constant calculation methods
GammaStructureBased- secondary structure based force constants
GammaVariableCutoff- atom type based variable cutoff function
Membrane Models
The following classes are designed for modeling and analysis of protein dynamics in membranes:
Usage of these classes are shown in exanm and imanm examples.
Signature Dynamics (SignDy)
The following classes are designed for signature dynamics analysis of protein/domain families, together with those in the database module:
calcEnsembleENMs()- perform NMA on a protein family ensemble using ENMs
ModeEnsemble- handle outputs of ensemble NMA, an ensemble of normal modes
sdarray- handle signature dynamics data in an array based on a numpy array
There are many other functions starting showSignature or calcSignature for plotting and analysis. There are also load and save functions for mode ensembles and signature arrays.
Usage of these classes are shown in signdy-overview, signdy-core, and signdy-class examples.
Function library
Dynamics of the functions in this library accept a modes argument (may also appear in different names), which may refer to one or more of the following:
Some of these functions may also accept Vector instances as mode
argument. These are noted in function documentations.
Analyze models
The following functions are for calculating atomic properties from normal modes:
calcCollectivity()- degree of collectivity of a mode
calcCovariance()- covariance matrix for given modes
calcCrossCorr()- cross-correlations of fluctuations
calcFractVariance()- fraction of variance explained by a mode
calcPerturbResponse()- response to perturbations in positions
calcProjection()- projection of conformations onto modes
calcSqFlucts()- square-fluctuations
calcTempFactors()- temperature factors fitted to exp. data
Compare models
The following functions are for comparing normal modes or dynamics models:
calcOverlap()- overlap (correlation) between modes
calcCumulOverlap()- cumulative overlap between modes
calcSubspaceOverlap()- overlap between normal mode subspaces
calcCovOverlap()- covariance overlap between models
printOverlapTable()- formatted overlap table printed on screen
Generate conformers
The following functions can be used to generate conformers along normal modes:
deformAtoms()- deform atoms along a mode
sampleModes()- deform along random combination of a set of modes
traverseMode()- traverse a mode along both directions
Adaptive ANM
The following class and its functions can be used to generate conformers using adaptive ANM:
AdaptiveANM- generate transitions between two conformers using best overlapping modes
ENM-MD hybrid methods
The following classes and functions can be used to generate conformers using ENM-MD hybrid methods:
ClustENM- generate conformers by exploring combinations of modes and clustering, using minimisation and optionally MD:function:`.ANMD` - generate conformers by traversing a number of individual modes, applying minimisation to each conformer
Essential Site Scanning Analysis (ESSA)
The following class and its functions can be used to perform Essential Site Scanning Analysis:
ESSA2
Editing models
The following functions can be used to reduce, slice, or extrapolate models:
sliceMode()- take a slice of the normal mode
extendMode()- extend a coarse-grained mode to all-atoms
sliceModel()- take a slice of a model
extendModel()- extend a coarse-grained model to all-atoms
reduceModel()- reduce a model to a subset of atoms
sliceVector()- take a slice of a vector
extendVector()- extend a coarse-grained vector to all-atoms
Parse/write data
The following functions are parsing or writing normal mode data:
parseArray()- numeric arrays, e.g. coordinates, eigenvectors
parseModes()- normal modes
parseNMD()- normal mode, coordinate, and atomic data for NMWiz
parseSparseMatrix()- matrix data in sparse coordinate list format
writeArray()- numeric arrays, e.g. coordinates, eigenvectors
writeModes()- normal modes
writeNMD()- normal mode, coordinate, and atomic data
writeOverlapTable()- overlap between modes in a formatted table
writeBILD()- normal mode and coordinate data for ChimeraX
Save/load models
Dynamics objects can be efficiently saved and loaded in later Python sessions using the following functions:
loadModel(),saveModel()- load/save dynamics models
loadVector(),saveVector()- load/save modes or vectors
Short-hand functions
Following allow for performing some dynamics calculations in one function call:
Plotting functions
Plotting functions are called by the name of the plotted data/property
and are prefixed with “show”. Function documentations refers to the
matplotlib.pyplot function utilized for actual plotting.
Arguments and keyword arguments are passed to the Matplotlib functions.
showMode()- mode shape
showOverlap()- overlap between modes
showSqFlucts()- square-fluctuations
showEllipsoid()- depict projection of a normal mode space on another
showContactMap()- contact map based on a Kirchhoff matrix
showProjection()- projection of conformations onto normal modes
showOverlapTable()- overlaps between two models
showScaledSqFlucts()- square-fluctuations fitted to experimental data
showNormedSqFlucts()- normalized square-fluctuations
showCrossProjection()- project conformations onto modes from different models
showCrossCorr()- cross-correlations between fluctuations in atomic positions
showCumulOverlap()- cumulative overlap of a mode with multiple modes from another model
showFractVars()- fraction of variances
showCumulFractVars()- cumulative fraction of variances
resetTicks()- change ticks in a plot
Heat Mapper support
The following functions can be used to read, write, and plot VMD plugin Heat Mapper files.
Visualize modes
Finally, normal modes can be visualized and animated using VMD plugin nmwiz. The following functions allow for running NMWiz from within Python:
viewNMDinVMD()- run VMD and load normal mode data
pathVMD()- get/set path to VMD executable