You are here

Interface rmsd calculation Irms

6 posts / 0 new
Last post
Interface rmsd calculation Irms
#1

Hi can you please shed some light on how Irms (reported in the score.fasc file produced as rosetta dock results) is calculated?

I tried looking at residues of the "ligand protein" that have any heavy atoms within 4 angstroms of the "receptor protein" heavy atoms in the decoy and computing Calpha rmsd shift from the original input versus the decoy. The values I compute are too big by a factor of about 2.

Please let me know how Irms is defined. Thank you.

Wed, 2010-07-07 18:24
mahajanr

I can't find an lrms field in the normal scorefile. The rms field is filled by a function called "calc_Lrmsd", so I'm guessing that's what you mean?

The function appears to be defined at line 557 of src/protocols/docking/DockingProtocol.cc. Its internal comments do not shed much light. It appears to get the RMSD of the entire mobile side half the dimer against its position in the "native pose" - it's not limited to interface residues. Does this solve your problem?

> Hi can you please shed some light on how Irms (reported in the score.fasc file produced as rosetta dock results) is calculated?
>
>
> I tried looking at residues of the "ligand protein" that have any heavy atoms within 4 angstroms of the "receptor protein" heavy atoms in the decoy and computing Calpha rmsd shift from the original input versus the decoy. The values I compute are too big by a factor of about 2.
>
> Please let me know how Irms is defined. Thank you.

Thu, 2010-07-08 07:10
smlewis

Hi, thanks for the prompt reply. Perhaps the Irms field only shows up in the score file when certain flags are present? I am using the fake_native flag among my input flags. I am including below the first few lines of the score.fasc file produced (sorry about the loss of formatting. the fields should be lined up with total score lining with -1155.903, rms lining up with 2.926....etc) Irms can be found as the 5th field with a value of 1.469.

"SEQUENCE:

SCORE: total_score rms Fnat I_sc Irms dslf_ca_dih dslf_cs_ang dslf_ss_dih dslf_ss_dst fa_atr fa_dun fa_rep fa_sol hack_elec hbond_bb_sc hbond_lr_bb hbond_sc hbond_sr_bb description

SCORE: -1155.903 2.926 0.585 -3.126 1.469 0.000 0.000 0.000 0.000 -2160.134 126.749 84.863 1012.043 -15.000 -34.537 -94.060 -21.210 -54.618 ./RESULTS//outdir_93/CL0_0122.pdb"

the flags I am using are:

-database /usr/global/rosetta/rosetta3.1/rosetta_database
-l names.txt
-nstruct 500
-no_optH false
-docking:docking_local_refine
-docking:partners ABCD_EF
-fake_native
-ex1
-ex2aro
-packing:use_input_sc
-docking:dock_mcm_trans_magnitude .4
-docking:dock_mcm_rot_magnitude .2
-mute core.util.prof
-out:output
-out:pdb
-out:file:fullatom
-out:path:pdb ./RESULTS
-out:show_accessed_options

Looking in the file "src/protocols/docking/DockingProtocol.cc" I notice on line 470 "score_map_["Irms"] = calc_Irmsd(pose, *get_native_pose());"

Later on line 577, calc_Irmsd is defined. I have tried looking through the code here and at src/core/conformation/Interface.cc but can't seem to make out how the Irmsd is being calculated. Please let me know what you think. Thanks again for your help.

Fri, 2010-07-09 11:05
mahajanr

Hi,

not sure how the Irms is calculated but I see it as well although I haven't used the fake_native flag. I think the "rms" column is the Ca rms of the "ligand" unit.

> Hi can you please shed some light on how Irms (reported in the score.fasc file produced as rosetta dock results) is calculated?
>
>
> I tried looking at residues of the "ligand protein" that have any heavy atoms within 4 angstroms of the "receptor protein" heavy atoms in the decoy and computing Calpha rmsd shift from the original input versus the decoy. The values I compute are too big by a factor of about 2.
>
> Please let me know how Irms is defined. Thank you.

Mon, 2010-07-12 08:16
sudhar

So, it turns out, the first problem is, I was looking for lrms with an L, not Irms with a capital I. So much for sans-serif fonts.

You have found the correct code for the calculation. The calculation line is rmsd_with_super_subset, which will take two proteins, superpose over a subset of atoms (the interface), and calculate rmsd over the same subset (the interface).

The interface distance here is hardcoded to be 8 angstroms. The Interface class is being used to determine what residues (it's residue-based, not atom based) are in the interface. I'm not a fan of how this class works. It's a long story, but this 8 angstroms is measured between the "neighbor atoms" which are atoms designated separately for each residue type. It examines the EnergyGraph for the Pose, looks at all the graph Edges across the interface (meaning, between chains), and checks that the Edge's distance (distance between "neighbor atoms") is >= 8 angstroms.

The easiest way to figure out what's in the interface is modify the calc_Irmsd function to spit out what residues it thinks are in the interface, after interface->calculate but before rmsd_with_super_subset.

You could then superimpose/calculate on those and see if it matches Rosetta?

Mon, 2010-07-12 09:09
smlewis

Thanks for your help.

Tue, 2010-07-13 16:16
mahajanr