You are here

How to put rdc data in refinement protocol?

14 posts / 0 new
Last post
How to put rdc data in refinement protocol?


Is it possible to refine structures with RDC data in 'relax.linuxgccrelease'? My version is rosetta3.1. Thanks a lot.



Post Situation: 
Tue, 2012-11-20 03:55

Sure - use constraints: for 3.1:

I am going to strongly suggest you upgrade to Rosetta 3.4. I no longer maintain a copy of 3.1 for user support purposes so I will have a lot of trouble debugging any errors you run in to.

Convert your RDC data into atom-atom pair distances (use AtomPairConstraint and probably BOUNDED func). You may be able to use the orientation data as Angle or Dihedral constraints as well. See also this recent thread for tips on setting up "capping constraints" if you are worried about constraints overpowering the scorefunction:

I can't help with the conversion of RDC data into distances/angles/dihedrals but I can offer more in-depth help with creating the Rosetta constraint file if you need it. Basically you'll convert RDC distances into a list of constraints like so:

AtomPair H 6 HA 134 BOUNDED 1.80 5.25 0.50 0.5 RDC
AtomPair H 5 H 45 BOUNDED 2.80 7.25 0.50 0.5 RDC

That will go into a file "constraints.txt", and you'll pass into relax mode the flags -cst_fa_file constraints.txt -cst_fa_weight ### (where ### is some numeric weight). I remember that there was a bug related to these flags in 3.1, so if you don't upgrade to 3.4 let me know and I'll figure the flags out.

Tue, 2012-11-20 07:25

The other option is to use the rdc machinery in Rosetta directly.

Just pass your RDC data file to -in:file:rdc. The file should be formatted like

3 N 3 H -3.65 1.00

Where "3 N 3 H" specifies that atoms N and H on residue 3 (Rosetta sequential pose numbering) define the vector to use, -3.65 is the RDC value, and 1.00 is the weight for that particular RDC (probably 1.00 for most).

You'll also need to turn on the rdc scoreterm in your scorefunction by adding a line like

rdc = 10.0

to your weights file or to a loaded patch file. Note the scoreterm is based on the difference between the calculated and observed RDCs, so depending on your system you may need to adjust the weight to the rdc terms, if the RDCs aren't being satisfied or if the rest of the protein is being messed up. There is also a number of other tweaks you can do with the -rdc group of command line options. (See - section rdc)

Tue, 2012-11-20 11:12

Hi,I tried the rdc data in '-in:file:rdc' in rosetta 3.3 but the rdc scores for all generated structures are the same. Is it reasonable? What is wrong with the command or data? Thanks a lot.

Tue, 2012-11-27 10:00

Just to confirm, you mean that the rdc scores are the same non-zero value, right? (If they're all zero, it probably indicates an issue loading them or not getting the patch weight correct.)

If you're getting non-zero rdc scores, the only reason Lei and I can think of that you might be getting the same value is that if the portion of the protein that the rdcs correspond with aren't changing between structure - e.g. you're providing backbone rdcs and generating the different structures with a fixed-backbone protocol.

If neither of those cases apply, then it would help if you posted what you need to reproduce a (small) example. (e.g. the file with the rdcs, the weights/patch file you're using, a sample of two-or-so structures which should score differently but aren't, the command and flags file that you used, etc.) That way I can poke about locally and try to debug the example.

Tue, 2012-11-27 10:57


Yes, I mean it is a non-zero value and mine is backbone rdcs. It looks the backbones are fixed during refinement. The following is my command,

relax -in:file:s complex.pdb -in:file:rdc complex_rdc -database $database -relax:fast -nstruct 10 -relax:bb_move 1 -relax:minimize_mainchain_bond_lengths 1 -relax:jump_move 1 -relax:minimize_bond_lengths 1 -relax:minimize_bond_angles 1 -relax:minimize_mainchain_bond_angles 1 -relax:wobblemoves 1 -rdc:correct_NH_length 1 -constant_seed -jran 10 -out:pdb -out:path:pdb ./rdc_test/ -score:patch ./rdc_test/score12_rdc_patch -out:file:scorefile ./rdc_test/

The patch file and the wts file are attached. Thanks a lot.

Wed, 2012-11-28 09:14

Everything looks fine, as far as I can tell. The ten output structures you're getting should have at least small differences in their non-zero rdc scores, from what I understand.

In order to debug things further, I would need to see your "complex_rdc" rdc file as well as the "complex.pdb" structure you're using. (If you're hesitant to release them on a publicly accessible forums, you can contact me privately through the little envelope icon to the left of my post.)

Wed, 2012-11-28 11:00

Thanks. I have sent you a message.

Wed, 2012-11-28 14:29

I can't seem to replicate the issue.

Using the pdb and rdc files you emailed me, with the patch file from above, and the command line:

${ROSETTA}/rosetta_source/bin/relax.static.linuxgccrelease -database ${ROSETTA}/rosetta_database -in:file:s complex.pdb -in:file:rdc complex_rdc -relax:fast -nstruct 2 -relax:bb_move 1 -relax:minimize_mainchain_bond_lengths 1 -relax:jump_move 1 -relax:minimize_bond_lengths 1 -relax:minimize_bond_angles 1 -relax:minimize_mainchain_bond_angles 1 -relax:wobblemoves 1 -rdc:correct_NH_length 1 -constant_seed -jran 10 -out:pdb -out:path:pdb ./ -score:patch ./score12_rdc_patch.txt -out:file:scorefile ./

using a version of Rosetta that should correspond to the 3.4 release version, I get two PDBs with completely different structures and different total scores. One has an rdc value of 309.492, the other 337.988:

SCORE: total_score dslf_ca_dih dslf_cs_ang dslf_ss_dih dslf_ss_dst fa_atr fa_dun fa_intra_rep fa_pair fa_rep fa_sol hbond_bb_sc hbond_lr_bb hbond_sc hbond_sr_bb omega p_aa_pp pro_close rama rdc ref description
SCORE: 910.381 0.000 0.000 0.000 0.000 -800.806 121.874 3.379 -5.862 888.427 408.053 -4.616 -1.449 -2.171 -38.995 59.361 -15.996 36.209 3.261 309.492 -49.780 complex_0001
SCORE: 2841.769 0.000 0.000 0.000 0.000 -1109.087 159.459 25.232 -10.054 2807.784 553.888 -3.882 -0.414 -1.586 -12.304 91.211 -14.280 61.904 5.691 337.988 -49.780 complex_0002


Now, the relax protocol completely blew the structures apart, but that's a separate issue. (To fix that one, I might recommend doing a constrained relax to prep the starting structure and remove the clashes that are likely resulting in the structure falling apart. See and for details)

Thu, 2012-11-29 12:23

Hi, another question on the rdc computed-vs-experimental-RDC-value file. I notice that in the later part of the file the computed values are becoming closer to the experimental value. What other types of information can be extracted from such a large file? For example, what is the meaning of the header:

TAG empty_taEXP 0 2.73378 12.0805 2.5
Da Drrhombicity
1.15 -1.10 -0.96
AL.EVAL 2.29 -2.79 0.50
AL.EVEC 0.92 0.28 -0.28
AL.EVEC -0.30 0.95 -0.02
AL.EVEC 0.26 0.11 0.96

Besides, can I match each value list to a generated structure?

Thank you very much for help.

Thu, 2012-12-06 10:12

I forwarded your question to Lei, who's done some work with RDC's, and here's what he said:

"The later part of the file shows the agreement of calculation with expriment.
The beginning of the file is the information of the Saupe order matrix that is associated with the fitting. Usually the agreement is what people are interested in. In the log file, there is the Q factor (similar to R factor) of the fitting quality."

Thu, 2012-12-06 13:40

Thank you very much for the help. Is Lei's full name Shi Lei? I can find Shi Lei's contact info on the website of your lab.

Thu, 2012-12-06 14:09

That's him.

Fri, 2012-12-07 10:42

Hi, Thanks all. I will upgrade to 3.4 version first.

Wed, 2012-11-21 01:33