mktrj.pca() funtion usage for porject.pca() results

Issue #491 resolved
Former user created an issue

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)

  1. Xinqiu Yao

    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.

  2. Barry Grant

    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.

  3. lilianha

    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

  4. Xinqiu Yao

    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 the mktrj.pca() function.

    Hope it helps....

  5. Log in to comment