Problem loading RNA models generated by mktrj.pca into pymol or vmd

Issue #821 resolved
Yuba Bhandari created an issue

I am analyzing RNA conformations using bio3D. I find that  RNA models generated by mktrj.pca (for PCA analysis) cannot be loaded into Pymol/VMD as it complains of unusual covalent geometry. Any suggestions highly appreciated.

Comments (5)

  1. Xinqiu Yao

    I’m not sure how well Bio3D supports RNA. Can you provide a short example for us to reproduce the error? So, we may find out if it is easy to fix.

  2. Yuba Bhandari reporter

    Hi Xinqiu,

    Please find attached the zipped files including my script and RNA PDBs to generate the trajectory “pc1_traj.pdb” using mktrj.pca. I was not able to load the trajectory to PyMol most likely due to unusual geometry of the RNA structure.

  3. Xinqiu Yao

    Hi,

    I’ve checked your files. All data and the script look fine. I notice that you use all the atoms to do PCA. Usually, this will generate distorted bonds/bond angles during the extrapolation along with PCs and so be complained by PyMol. This may happen not just to RNA but to proteins as well.

    There are two possible ways to solve it.

    1. If you really want the all-atom PCA, you may need to “relax” each structure in the PC1 trajectory file using, for example, some steps of energy minimization, and so the trajectory looks more “physical”. This is similar to the so-called ‘adiabatic mapping’ to find the energy cost of the transition between states along a reaction coordinate (McCammon and Harvey. Dynamics of Proteins and Nucleic Acids. Cambridge, 1988).
    2. As in proteins, use some backbone atoms instead. For example, C3', C4', C5', and P. You can define it by yourself. In the code snippet below, I used the above four and it seems to work. A snapshot of the “coarse-grained” structure is also attached.

      ```r ca.inds = atom.select(pdb, resno = xtal.res, elety=c("C3'", "C4'", "C5'", "P"))

      align against the Crystal structure

      xyz <- fit.xyz(fixed = pdb$xyz, mobile=pdb.df, fixed.inds=ca.inds$xyz, mobile.inds=ca.inds$xyz)

      PCA calculation

      pc.xray = pca.xyz(xyz[, ca.inds$xyz], use.svd = TRUE)

      Write out the interpolated trajectory

      mktrj.pca(pc.xray, pc=1, pdb = trim(pdb, ca.inds), step = 0.3, file = "pc1_bb_traj.pdb")

      ```

  4. Yuba Bhandari reporter

    Thank you Xinqiu for your message. The backbone atom rendering looks great. Your help is highly appreciated.

  5. Log in to comment