mktrj.pca() funtion usage for porject.pca() results
Hi
I was wondering if the mktrj.pca() function can generates a PDB format trajectory for results derived from project.pca() function as it does for pca.xyz() function. I would like to compare the conformers differences between apo and holo trajectories of my protein. In this case I have been projected the holo trajectory onto a subset, i.e., the first two, eigenvectors of the apo trajectory.
Is there is any way to tackle this issue?
Thanks
Lilian
Comments (5)
-
-
Hmm... Remember that your PCs themselves will be same as you are projecting on the original PCs not generating new ones for the new trajectory. Just double checking that this is clear.
-
- changed status to resolved
closing due to inactivity
-
Sorry for the delayed reply
Indeed, I would like to see the differences in ranges of motion between apo and holo forms
I have a script that may be an example of this issue.
########################################################## #!/usr/bin/env Rscript
library(bio3d)
read in calpha trajectories
apo <- read.dcd("Apo_traj.dcd") holo <- read.dcd("holo_traj.dcd")
superimpose (same number of calpha atoms)
xyz1 <- fit.xyz(apo[1, ], apo) xyz2 <- fit.xyz(apo[1, ], holo)
perform PCA
pc <- pca.xyz(xyz1)
#write displacement traj
mktrj.pca(pc, pc=1, file="apo_pc1.pdb") mktrj.pca(pc, pc=2, file="apo_pc2.pdb")
project holo traj to PCs
proj2 <- project.pca(xyz2, pc)
#here I can't generate the motions #mktrj.pca(proj2, pc=1, file="holo_pc1.pdb")
blues for apo
cols1 <- densCols(pc$z[,1:3])
yellow-orange for holo
cr <- colorRampPalette(c("#FCFF00", "#FF9400", "#FF3100")) cols2 <- densCols(proj2[,1:3], colramp=cr)
tiff("proj_S3_ZINC83627668_2.tiff", width = 2200, height = 1600, units = "px", res=300)
plot(pc$z[, 1:3], pc.axes=1:3, col=cols1, pch=16) points(proj2[, 1:3], pc.axes=1:3, col=cols2, pch=16)
dev.off() q()
Thanks in advance
-
As mentioned above,
project.pca()
doesn't give you new movement. You can compare how similar or different the conformational samplings of the apo and holo states are based on the PC1-PC2 plot, and interpret what the physical meaning of the difference is by looking at the motions represented by PC1 or PC2, using themktrj.pca()
function.Hope it helps....
- Log in to comment
mktrj.pca() generates a trajectory to display PCs (eigenvectors) of PCA. It does not directly work on results of project.pca(). If you just want to show the different ranges of motion in apo and holo along e.g. PC1, generate a trajectory using mktrj.pca() on pca.xyz() results that cover the whole range of the projection plot along PC1 (check the "mag" argument in mktrj.pca()), and then pick up PDB frames in the trajectory for each state.
I can make more specific suggestions if you could provide an example.