## need abind package
if(!require(abind)) {
install.packages("abind")
require(abind)
}
## load example data
pdbfile <- system.file("examples/hivp.pdb", package="bio3d")
pdb <- read.pdb(pdbfile)
trtfile <- system.file("examples/hivp.dcd", package="bio3d")
trj <- read.dcd(trtfile, verbose=FALSE)
## split the trj example in two
num.of.frames <- dim(trj)[1]
trj1 <- trj[1:(num.of.frames/2),]
trj2 <- trj[((num.of.frames/2)+1):num.of.frames,]
## Lets work with Calpha atoms only
ca.inds <- atom.select(pdb, "calpha")
#noh.inds <- atom.select(pdb, "noh")
## calculate single contact map matrices
cm.1 <- cmap(trj1[,ca.inds$xyz], pcut=0.3, scut=0, dcut=7, mask.lower=FALSE)
cm.2 <- cmap(trj2[,ca.inds$xyz], pcut=0.3, scut=0, dcut=5, mask.lower=FALSE)
## create a 3D contact matrix from 3 simulations
cm.all <- abind(cm.1, cm.2, along=3)
## calculate average contact matrix
cm.filter <- cmap.filter(cm=cm.all, cutoff.sims=2)
## plot the result
par(pty="s", mfcol=c(1,3))
image(cm.1, col=c(NA,"black"))
image(cm.2, col=c(NA,"black"))
image(cm.filter, col=c(NA,"black"))
Run the code above in your browser using DataLab