### ### Examples from NMA Vignette ### ### Authors Lars Skjaerven ### Xin-Qiu Yao ### Barry J Grant ### require(bio3d); require(graphics); pause <- function() { cat("Press ENTER/RETURN/NEWLINE to continue.") readLines(n=1) invisible() } ############################################# ## # ## Basic usage # ## # ############################################# ### Read PDB and Calculate Normal Modes pdb <- read.pdb("1hel")Note: Accessing on-line PDB filemodes <- nma(pdb)Building Hessian... Done in 0.046 seconds. Diagonalizing Hessian... Done in 0.132 seconds.pause()Press ENTER/RETURN/NEWLINE to continue.### Print a summary print(modes)Call: nma.pdb(pdb = pdb) Class: VibrationalModes (nma) Number of modes: 387 (6 trivial) Frequencies: Mode 7: 0.018 Mode 8: 0.019 Mode 9: 0.024 Mode 10: 0.025 Mode 11: 0.028 Mode 12: 0.029 + attr: modes, frequencies, force.constants, fluctuations, U, L, xyz, mass, temp, triv.modes, natoms, callpause()Press ENTER/RETURN/NEWLINE to continue.### Plot the nma object for a quick overview plot(modes)
pause()Press ENTER/RETURN/NEWLINE to continue.### Calculate cross-correlations cm <- dccm(modes)|======================================================================| 100%pause()Press ENTER/RETURN/NEWLINE to continue.### Plot correlation map plot(cm, sse=pdb)
pause()Press ENTER/RETURN/NEWLINE to continue.### Calculate modes with force field ANM modes.anm <- nma(pdb, ff="anm")Building Hessian... Done in 0.043 seconds. Diagonalizing Hessian... Done in 0.134 seconds.pause()Press ENTER/RETURN/NEWLINE to continue.### Investigate modes similarity with RMSIP r <- rmsip(modes, modes.anm) pause()Press ENTER/RETURN/NEWLINE to continue.### Plot RMSIP results plot(r, xlab="ANM", ylab="C-alpha FF")
pause()Press ENTER/RETURN/NEWLINE to continue.################################################ ## # ## Ensemble NMA # ## (requires the 'muscle' program installed) # ## # ################################################ pause()Press ENTER/RETURN/NEWLINE to continue.### Set temp dir to store PDB files tmp.dir <- tempdir() ### Download a set of DHFR structures ids <- c("1rx2_A", "1rx4_A", "1rg7_A", "3fyv_X", "3sgy_B") ### Download and split by chain ID raw.files <- get.pdb(ids, path=tmp.dir) pause()Press ENTER/RETURN/NEWLINE to continue.### Split PDB files by chain ID files <- pdbsplit( raw.files, ids, path=tmp.dir)|======================================================================| 100%pause()Press ENTER/RETURN/NEWLINE to continue.### Align structures pdbs <- pdbaln(files)Reading PDB files: /tmp/RtmpTDihxb/1rx2_A.pdb /tmp/RtmpTDihxb/1rx4_A.pdb /tmp/RtmpTDihxb/1rg7_A.pdb /tmp/RtmpTDihxb/3fyv_X.pdb /tmp/RtmpTDihxb/3sgy_B.pdb PDB has ALT records, taking A only, rm.alt=TRUE ..... Extracting sequences pdb/seq: 1 name: /tmp/RtmpTDihxb/1rx2_A.pdb PDB has ALT records, taking A only, rm.alt=TRUE pdb/seq: 2 name: /tmp/RtmpTDihxb/1rx4_A.pdb pdb/seq: 3 name: /tmp/RtmpTDihxb/1rg7_A.pdb pdb/seq: 4 name: /tmp/RtmpTDihxb/3fyv_X.pdb pdb/seq: 5 name: /tmp/RtmpTDihxb/3sgy_B.pdbpause()Press ENTER/RETURN/NEWLINE to continue.### View sequence identity summary( c(seqidentity(pdbs)) )Min. 1st Qu. Median Mean 3rd Qu. Max. 0.3590 0.3590 1.0000 0.6923 1.0000 1.0000pause()Press ENTER/RETURN/NEWLINE to continue.### Calculate modes of aligned proteins modes <- nma(pdbs)Details of Scheduled Calculation: ... 5 input structures ... storing 462 eigenvectors for each structure ... dimension of x$U.subspace: ( 468x462x5 ) ... coordinate superposition prior to NM calculation ... aligned eigenvectors (gap containing positions removed) ... estimated memory usage of final 'eNMA' object: 8.3 Mb |======================================================================| 100%pause()Press ENTER/RETURN/NEWLINE to continue.## Print a summary print(modes)Call: nma.pdbs(pdbs = pdbs) Class: enma Number of structures: 5 Attributes stored: - Root mean square inner product (RMSIP) - Aligned atomic fluctuations - Aligned eigenvectors (gaps removed) - Dimensions of x$U.subspace: 468x462x5 Coordinates were aligned prior to NMA calculations + attr: fluctuations, rmsip, U.subspace, L, full.nma, xyz, callpause()Press ENTER/RETURN/NEWLINE to continue.### Plot fluctuations plot(modes, pdbs)Extracting SSE from pdbs$sse attribute
pause()Press ENTER/RETURN/NEWLINE to continue.### Cluster Modes simiarlity heatmap(1-modes$rmsip, labCol=ids)
unlink(tmp.dir)