Learn R Programming

bio3d (version 2.1-2)

nma.pdbs: Ensemble Normal Mode Analysis

Description

Perform NMA on an ensemble of aligned protein structures.

Usage

## S3 method for class 'pdbs':
nma(pdbs, fit = TRUE, full = FALSE, subspace = NULL,
         rm.gaps = TRUE, varweight=FALSE, 
         outpath = NULL, ncore = 1, \dots)

## S3 method for class 'enma': print(x, \dots)

Arguments

pdbs
a numeric matrix of aligned C-alpha xyz Cartesian coordinates. For example an alignment data structure obtained with read.fasta.pdb or pdbaln.
fit
logical, if TRUE coordinate superposition is performed prior to normal mode calculations.
full
logical, if TRUE return the complete, full structure, nma objects.
subspace
number of eigenvectors to store for further analysis.
rm.gaps
logical, if TRUE obtain the hessian matrices for only atoms in the aligned positions (non-gap positions in all aligned structures). Thus, gap positions are removed from output.
varweight
logical, if TRUE perform weighing of the pair force constants. Alternatively, provide a NxN matrix containing the weights. See function var.xyz.
outpath
character string specifing the output directory to which the PDB structures should be written.
ncore
number of CPU cores used to do the calculation. ncore>1 requires package parallel installed.
x
an enma object obtained from nma.pdbs.
...
additional arguments to nma, aa2mass, and print.

Value

  • Returns an enma object with the following components:
  • fluctuationsa numeric matrix with aligned atomic fluctuations.
  • rmsipa numeric matrix of RMSIP values between all pairs of mode subsets.
  • U.subspacea three-dimensional array with aligned eigenvectors (corresponding to the subspace defined by the first N non-trivial eigenvectors (U) of the nma object).
  • Lnumeric matrix containing the raw eigenvalues.
  • xyzan object of class xyz containing the Cartesian coordinates in which the calculation was performed. Coordinates are superimposed to the first structure of the pdbs object when fit=TRUE.
  • full.nmaa list with a nma object for each input structure.

Details

This function performs normal mode analysis (NMA) on a set of aligned protein structures obtained with function read.fasta.pdb or pdbaln. The main purpose is to provide aligned atomic fluctuations and mode vectors in an automated fashion.

The normal modes are calculated on the full structures as provided by object pdbs. With the input argument full=TRUE the full nma objects are returned together with output U.subs providing the aligned mode vectors. When rm.gaps=TRUE the unaligned atoms are ommited from output. With default arguments rmsip provides RMSIP values for all pairwise structures. See examples for more details.

References

Grant, B.J. et al. (2006) Bioinformatics 22, 2695--2696.

See Also

For normal mode analysis on single structure PDB: nma.pdb For the analysis of the resulting eNMA object: mktrj.enma, dccm.enma, plot.enma, cov.enma. Similarity measures: sip, covsoverlap, bhattacharyya, rmsip. Related functionality: pdbaln, read.fasta.pdb.

Examples

Run this code
## NOTE: FOLLOWING EXAMPLE NEEDS MUSCLE INSTALLED
if(check.utility("muscle")) {

## Fetch PDB files and split to chain A only PDB files
ids <- c("1a70_A", "1czp_A", "1frd_A", "1fxi_A", "1iue_A", "1pfd_A")
files <- get.pdb(ids, split = TRUE, path = tempdir())

## Sequence Alignement
pdbs <- pdbaln(files, outfile = tempfile())

## Normal mode analysis on aligned data
modes <- nma(pdbs, rm.gaps=FALSE)

## Plot fluctuation data
plot(modes, pdbs=pdbs)

## Cluster on Fluctuation similariy
sip <- sip(modes)
hc <- hclust(dist(sip))
col <- cutree(hc, k=3)

## Plot fluctuation data
plot(modes, pdbs=pdbs, col=col)

## Remove gaps from output
modes <- nma(pdbs, rm.gaps=TRUE)

## RMSIP is pre-calculated
heatmap(1-modes$rmsip)

## Bhattacharyya coefficient
bc <- bhattacharyya(modes)
heatmap(1-bc)

}

Run the code above in your browser using DataLab