How does Rosetta calculate rms?

Member Site Forums Rosetta++ Rosetta++ – General How does Rosetta calculate rms?

Viewing 5 reply threads
  • Author
    Posts
    • #338
      Tim Whitehead
      Participant

        I tried a pertubation run on two proteins. When I look in de full atom score file Rosetta produced, I see rms values that I don’t understand. Rosetta for example calculates rms values of 15 A between a decoy and a native. When I recalculate this rms myself in several programs (pymol , vmd) I find values of 5 A. I fitted the largest structure on its native complex. Then I calcuated the rms between the Ca atoms of smallest structures of the decoy and the native. What do I do wrong?

        Thanks in advance,

      • #3978
        Anonymous

          I think Rosetta calculates the rms of a complex in a different way. It aligns the whole decoy complex over the native complex by superimposing the center of masses of both the complexes. Then rotates the decoy to get the best alignment with the native structure. Then RMSD is calculated.

          While in your method, you have superimposed the bigger structure over the native one and the RMSD for that unit will be ~0. Whatever RMSD you get comes only from the smaller unit of the complex. Apart from that pymol also tends to get rid of some residues which do not align and give RMSD of only those residues which align to some extent. You will see following comment on pymol
          “34 atoms rejected during cycle 1” etc…

          Hope that helps.

          > I tried a pertubation run on two proteins. When I look in de full atom score file Rosetta produced, I see rms values that I don’t understand. Rosetta for example calculates rms values of 15 A between a decoy and a native. When I recalculate this rms myself in several programs (pymol , vmd) I find values of 5 A. I fitted the largest structure on its native complex. Then I calcuated the rms between the Ca atoms of smallest structures of the decoy and the native. What do I do wrong?
          >
          > Thanks in advance,

        • #8872
          Anonymous

            I have the same problem,

            When I calculate the RMSD in Pymol it is 1.2,
            but when I calculate it in Rosetta it becomes 15

            I did not understand this.

          • #9145
            Anonymous

              Recently I encountered a similar issue, I’m running abinitorelax in Rosetta 3.4 on a ~100 aa protein. The RMS scores in the silent output file are ~12, when I picked a few random decoys and checked them in Pymol the RMS is ~2-4. I tried to rescore the silent output with the score application, same result as with abinitio.
              I double checked the native PDB and the input given to abinitio.

              Are there different ways in abinitio to calculate the RMS?

            • #9155
              Anonymous

                Thanks!
                I downloaded the fasta file and the PDB file for a PDB entry from the RCSB site. The sequence in the fasta and PDB file are not identical. The PDB files starts with residue 8, i.e. the first 7 amino acids are missing, and also the last 4 amino acids.
                I wrote a python script which just cuts off the “excessive” tails from the silent files. When I compared one of those truncated decoy files with the reference PDB file Rosetta and Pymol agree (+- 0.006). Another lesson learned…..

                Is there a more elegant way to fix this issue?

              • #10415
                Anonymous

                  It is possible to calculate the rms-value for 1000 structure in pymol in a easy way?!

                • #8873
                  Anonymous

                    There are many RMSD methods in Rosetta. What application are you using to calculate it?

                  • #9150
                    Anonymous

                      Unless you use the -in::file::native_exclude_res option, the score application will use the standard Calpha rmsd to the native structure (the one passed to -in:file:native). The algorithm used should be the one by Wolfgang Kabsch in Acta Cryst (1976) A32 page 922; as modified by ACTA CRYST(1978) A34 PAGE 827. (References from the code comments.) This should involve finding the optimal rotational/translational transform to superimpose the Calpha pairs, and then calculating the rmsd from that transform.

                      These rmsd routines are heavily used, so I’m somewhat doubtful that there are errors in them. Much more likely is that there is some sort of register shift issue going on. The score and abinitio routines assume that there is a 1-to-1 relationship between the residues in the two poses. If the native happens to be missing one or more residues (especially at the beginning or the middle), the residue pairing will be off, resulting in large rmsd values. I believe the typical way in pymol is much more forgiving, doing a sequence alignment prior to the rmsd calculations. If you’re getting the rmsd from a structural alignment command, it can be even more forgiving, as they typically use multiple cycles, excluding residues from consideration if they are too far apart (Basically only giving you the rmsd over the core, aligned residues.)

                      If you’re still having problems, please post an example: the native PDB, one decoy PDB showing the problem, the command you used to obtain the Rosetta rmsd, and the command you used in Pymol to obtain the rmsd. I can better help you troubleshoot if I have an example to play around with.

                    • #9160
                      Anonymous

                        Any way you do it, it looks like you’re going to have to match the number of native residues to the number of structure residues. But it looks like you can put in “fake” coordinates for those residues, and then limit the number of residues over which the rmsd comparison is run. For both the score and abinitio application, you should be able to use the aforementioned -in::file::native_exclude_res option, listing the residues (in sequential, starting-from-one, pose numbering) you wish to exclude from the rmsd calculation. I haven’t tested this, though, so I may be wrong in how well it works.

                      • #10424
                        Anonymous

                          You would likely have better success asking this question in a PyMol forum, but my suggestion would be to avoid loading all the structures at once, but instead load and unload the structures one at a time. (In my experience, PyMol tends to bog down with a large number of structures simultaneously open.) You would likely want to use PyMol’s Python scripting ability (see http://www.pymolwiki.org/index.php/Simple_Scripting for a start) to automate loading structures, calculating the rmsd, and then unloading (deleting) the structures.

                      Viewing 5 reply threads
                      • You must be logged in to reply to this topic.