# NOT RUN {
# PDB server connection required - testing excluded
#### NMR-ensemble example
## Read a multi-model PDB file
pdb <- read.pdb("1d1d", multi=TRUE)
## Find domains and write PDB
gs <- geostas(pdb, fit=TRUE)
## Plot a atomic movement similarity matrix
plot.geostas(gs, contour=FALSE)
## Fit all frames to the 'first' domain
domain.inds <- gs$inds[[1]]
xyz <- pdbfit(pdb, inds=domain.inds)
#write.pdb(pdb, xyz=xyz, chain=gs$atomgrps)
# }
# NOT RUN {
# }
# NOT RUN {
#### NMA example
## Fetch stucture
pdb <- read.pdb("1crn")
## Calculate (vibrational) normal modes
modes <- nma(pdb)
## Find domains
gs <- geostas(modes, k=2)
## Write NMA trajectory with domain assignment
mktrj(modes, mode=7, chain=gs$grps)
## Redo geostas domain clustering
gs <- geostas(modes, amsm=gs$amsm, k=5)
#### Trajectory example
## Read inn DCD trajectory file, fit coordinates
dcdfile <- system.file("examples/hivp.dcd", package = "bio3d")
trj <- read.dcd(dcdfile)
xyz <- fit.xyz(trj[1,], trj)
## Find domains
gs <- geostas(xyz, k=3, fit=FALSE)
## Principal component analysis
pc.md <- pca.xyz(xyz)
## Visualize PCs with colored domains (chain ID)
mktrj(pc.md, pc=1, chain=gs$grps)
#### X-ray ensemble GroEL subunits
# Define the ensemble PDB-ids
ids <- c("1sx4_[A,B,H,I]", "1xck_[A-B]", "1sx3_[A-B]", "4ab3_[A-B]")
# Download and split PDBs by chain ID
raw.files <- get.pdb(ids, path = "raw_pdbs", gzip = TRUE)
files <- pdbsplit(raw.files, ids, path = "raw_pdbs/split_chain/")
# Align structures
pdbs <- pdbaln(files)
# Find domains
gs <- geostas(pdbs, k=4, fit=TRUE)
# Superimpose to core region
pdbs$xyz <- pdbfit(pdbs, inds=gs$fit.inds)
# Principal component analysis
pc.xray <- pca(pdbs)
# Visualize PCs with colored domains (chain ID)
mktrj(pc.xray, pc=1, chain=gs$grps)
##- Same, but more manual approach
gaps.pos <- gap.inspect(pdbs$xyz)
# Find core region
core <- core.find(pdbs)
# Fit to core region
xyz <- fit.xyz(pdbs$xyz[1, gaps.pos$f.inds],
pdbs$xyz[, gaps.pos$f.inds],
fixed.inds=core$xyz,
mobile.inds=core$xyz)
# Find domains
gs <- geostas(xyz, k=4, fit=FALSE)
# Perform PCA
pc.xray <- pca.xyz(xyz)
# Make trajectory
mktrj(pc.xray, pc=1, chain=gs$grps)
# }
Run the code above in your browser using DataLab