nma.pdbs {bio3d} | R Documentation |
Ensemble Normal Mode Analysis
Description
Perform normal mode analysis (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, progress = NULL, ...)
## S3 method for class 'enma'
print(x, ...)
Arguments
pdbs |
a numeric matrix of aligned C-alpha xyz Cartesian
coordinates. For example an alignment data structure obtained with
|
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 |
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.
|
x |
an |
progress |
progress bar for use with shiny web app. |
... |
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.
Value
Returns an ‘enma’ object with the following components:
fluctuations |
a numeric matrix containing aligned atomic fluctuations with one row per input structure. |
rmsip |
a numeric matrix of pair wise RMSIP values (only the ten lowest frequency modes are included in the calculation). |
U.subspace |
a three-dimensional array with aligned eigenvectors (corresponding to the subspace defined by the first N non-trivial eigenvectors (‘U’) of the ‘nma’ object). |
L |
numeric matrix containing the raw eigenvalues with one row per input structure. |
xyz |
an object of class ‘xyz’ containing the Cartesian
coordinates in which the calculation was performed. Coordinates are
superimposed to the first structure of the |
full.nma |
a list with a |
Author(s)
Lars Skjaerven
References
Skjaerven, L. et al. (2014) BMC Bioinformatics 15, 399. 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
# Needs MUSCLE installed - testing excluded
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)
}