You are here

Problems with disulphide bonds during KIC

6 posts / 0 new
Last post
Problems with disulphide bonds during KIC


I am new to Rosetta. I am trying to build a model of my protein but my disulphide bond seems to break after centroid stage (I am quessing here). The disulphide thats breaking is in the loop region I am trying to model. I have googled around and found some suggestions but nothing seems to work for me. Here are my flags:


-nstruct 5000
-loops:remodel perturb_kic_with_fragments
-loops:refine refine_kic_with_fragments
-rebuild_disulf true
-in:detect_disulf true
-loops:loop_file 4MWF.loops
-constraints:cst_fa_file 4MWF_full.fa.cst
-constraints:cst_fa_weight 10000.0
-constraints:cst_file 4MWF.cst
-constraints:cst_weight 1000.0
#-packing:resfile 4MWF.resfile
-in::file::frag3 3mers.txt
-in::file::frag9 9mers.txt
-loops:frag_sizes 9 3 1
-loops:frag_files /d/as12/u/sl002/rosett/run/loop/run_5/9mers.txt /d/as12/u/sl002/rosett/run/loop/run_5/3mers.txt none



If anybody has any idea I would be eternally grateful. Thank you

Post Situation: 
Tue, 2017-11-28 03:11

Does it break the disulfide and replace with non-disulfide cysteines, or does it leave it 'in place' but with an impossible bond length and a bad score?

If you have one end of the disulfide IN the loop, and one end OUT of the loop, then it can't be done as a matter of the algorithm: you have a loop with three endpoints, and none of the loop modeling code can handle that, the algorithms only work for two endpoints.  Probably the best way to address this is a constraint / filter on the disulfide being closed, and just doing a lot of sampling.

If you have a disulfide contained entirely within the loop, then GenKIC can close "through" the disulfide and then you can sample the intervening subloop separately, or you can arrange to set the movemap to false for the intervening stretch and again sample it separately as a subloop.  I'm not confident either of these solutions are available from command line, but let's cross that bridge if we get to it.

Tue, 2017-11-28 11:37

Rosetta developer chat reports:


KIC with fragments and disulfide constraints worked for us

`executable: loopmodel.linuxgccrelease
-in:file:s dimer_loop.pdb
-in:detect_disulf true
-out:path:all [output path]
-out:file:scorefile [scorefile name]
-database [database path]
-constraints:cst_fa_file disulfide.cst (shown below)
-constraints:cst_fa_weight 1
Loop Specifications
-loops:remodel perturb_kic_with_fragments
-loops:refine refine_kic_with_fragments
-loops:loop_file loop_defs.loops (shown below)
-loops: max_kic_build_attempts 200
-loops:frag_sizes 9 3
-loops:frag_files [path_to_9mer_frags] [path_to_3mer_frags]
-multiple_processes_writing_to_one_directory true
-nstruct 10000

Contents of disulfide.cst

AtomPair SG 98 SG 626 HARMONIC 2.05 .5

Contents of loop_defs.loops

LOOP 87 110 99 0 1
LOOP 615 638 627 0 1` (edited)

it produced pretty decent loop conformations, but the loop was also pretty long

Tue, 2017-11-28 12:56

Hi, thank you for the quick answer.

I had this problem a while ago but the same flags ect worked for another person well. The both disulphides are within the loop. I will check out the constraints if it starts messing up again.

It was breaking disulphide bonds even after I just loaded a crystal structure up and someone suggested there might be something wrong with the version of Rosetta I am using. I have got the new version installed today and it seems to be working so far. Fingers crossed.


Can I ask a different question though? I am trying to understand what the random seed is exactly for (I understand it is to generate different models but I want a depeer understanding of it) and where exactly does it come to play in Rosetta. Could you explain it or cite a paper that should do (I am not a physics graduate).


I also tried to find a seminal paper explaining Rosetta but cannon really find anything. Do you know of any good paper, describing Rosetta in a detail?


Thank you


Tue, 2017-11-28 14:12

Random seed:

Rosetta uses Metropolis Monte Carlo for most of its protocols.  This relies on regular random number generation.  Computers cannot produce truly random numbers on their own, but they can produce very good pseudo-random numbers where the links between numbers in the chain is weak.  The algorithm that produces the random numbers needs a starting point - and since it is an algorithm, starting from one starting point always produces the same sequence of "random" numbers.  Thus when using Rosetta in parallel on many copies of the same problem, the different processes must be given different random number seeds so they'll have different sets of random numbers and thus different results.

Understanding Rosetta:

Nobody understands all of Rosetta.  It's 3 million lines of code.  It's much better to think about the problem in terms of understanding modules - in your case perhaps loop closure, in which case look for papers out of the Kortemme lab.  Start here for the biggest broadest papers:



Wed, 2017-11-29 10:04

Thank you very much for this!

Thu, 2017-12-07 06:12