You are here

How does Rosetta calculate rms?

10 posts / 0 new
Last post
How does Rosetta calculate rms?
#1

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,

Thu, 2008-05-15 07:41
rwn

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,

Fri, 2008-05-23 07:23
yiliu

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.

Fri, 2013-06-07 07:32
berk

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

Fri, 2013-06-07 08:08
jadolfbr

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?

Sun, 2013-07-28 13:11
Ashafix

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.

Mon, 2013-07-29 11:59
rmoretti

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?

Mon, 2013-07-29 15:58
Ashafix

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.

Wed, 2013-07-31 12:53
rmoretti

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

Thu, 2014-10-09 07:09
masterofpuppets

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.

Tue, 2014-10-14 08:05
rmoretti