[R] "squashed" domains when doing PCA with bio3d
Bianca Ihrig
biancai at bii.a-star.edu.sg
Tue Jan 14 03:48:15 CET 2014
Hi everyone,
I have been doing PCA using bio3d. My protein of interest has two
domains and there are two crystal structures, one in a closed (domains
are close together) and one in an open state (domains are nearly
opposite each other). I ran MD simulations on both states and did PCA.
When doing PCA on either of the trajectories it is working fine but when
I combine the two trajectories and all the frames to only one of the
domains (as I would like to see the motion of the other domain for
closed vs. open state).
But when doing so the second domain (the one I am not align to) is
"squashed" when viewing the vectors in pymol. I dont understand why and
I dont know how to fix it.
Many thanks in advance for your time and help!
This is the command I am using:
R
library(bio3d)
#read pdb file for open structure
pdbo <- read.pdb("ref-open(fr1800).pdb")
#to check: print(pdbo)
#read pdb file for closed structure
pdbc <- read.pdb("ref-closed(fr9990).pdb")
#read traj files
tc <- read.ncdf("A2-closed-1001fr-100ns.nc")
to <- read.ncdf("A2-open-100ns-1000fr.nc")
#combine the two traj (to and tc) into one called t2
t2 <- rbind(tc[2:1001,],to[2:1001,]) # 2000 frames 10413 coordinates
#Select residues of 1st domain (WHA) for alignment
whacac <- atom.select(pdbc,
resno="9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,47,48,49,50,51,52,53,54,56,55,57,58,59,60,61,62,63,64,66,67,68,69,70,78,79,80,81,82",
elety = "CA")
#Select CA of the two pdb files
cao <- atom.select(pdbo, elety = "CA") # 215 atoms
cac <- atom.select(pdbc, elety = "CA") # 215 atoms
# align the combined trajs to 1st domain of closed structure
xyz <- fit.xyz(fixed = pdbc$xyz, mobile = t2, fixed.inds = whacac$xyz,
mobile.inds = whacac$xyz)
#to check use command: write.ncdf()
#####-- Do PCA over CA of the whole protein (not only domain 1)
pc <- pca.xyz(xyz[, cac$xyz])
png("pca_open-closed.png")
pc1 <- plot(pc)
dev.off()
#view pc vector in pymol
view.modes(pc, mode = 1, outprefix = "pc1", scale = 30, dual = FALSE,
launch = TRUE)
Many thanks! Your help is much appreciated!
More information about the R-help
mailing list