You are here

De novo density assembly weights don't add up to a 100

4 posts / 0 new
Last post
De novo density assembly weights don't add up to a 100

In the density guided de novo prediction script, there is this block of code here:

FragmentAssemblyMover::FragmentAssemblyMover() {
	overlap_wt_ = 4.0;
	clash_wt_ = 20.0;
	close_wt_ = 6.0;
	dens_wt_ = 0.85;  //fd

	if ( option[ assembly_weights ].user() ) {
		overlap_wt_ = option[ assembly_weights ]()[1];
		clash_wt_ = option[ assembly_weights ]()[2];
		close_wt_ = option[ assembly_weights ]()[3];

	null_frag_ = option[ null_weight ]();


I wonder why the total weight doesn't add up to a 100 (4, 20, 6 and 0.85?). Why isn't there an option to specify density weight as well in the assembly_weights parameters? What is is "//fd", I understand it's a comment, what does it mean?

Post Situation: 
Fri, 2018-08-03 12:07

The reason the weights don't add up to 100 is because they're not fractional weights. Similarly to the main Rosetta scorefunction, these weights are simply being used as the coefficient in a linear sum which makes up the fragment assembly score, which is effectively: overlap_wt_ * (overlap subscore) + clash_wt_ * (clash subscore) + close_wt_ * (close subscore) + dens_wt_ * (density subscore)  -- Generally speaking, the absoulte magnitude of these sorts of scores don't matter (it's just the relative difference between two structures) so you don't really need to normalize the weights to add up to anything. (Additionally, these scores are often on different magnitude scales, resulting in things like the vast difference between the size of the clash weight and the density weight.)


Why there isn't an option to control the dens_wt_ is a little bit harder to say. In practice, I'm guessing it's because the density subscore was added to the protocol a bit later than the others, and at the time it was added there didn't seem to be a need to adjust the magnitude of the density subscore in the scoring function.


`fd` is simply the initials of Frank DiMaio, the author of much fo the density fitting code.  People sometimes label lines of code with their initials to mark the fact that they're the ones responsible for it. It's somewhat unnecessary with the source control tools we have, but it acts like a logical validation rather than a technical one. -- Basically, "Frank was the one who set the value to 0.85, and in his opinion this is the best default value. (Please consult him if you change it permanently.)"

Fri, 2018-08-03 12:37

Hi I am new user of Rosetta and I am going through the "Rosetta tool for structure determination in cryoEM" tutorial.

At the 4C step, we define again the assembly weights ( 4 20 6).

I am wondering why we have to define them again, since they are already in the above code? 

thanks a lot in advance!!

Mon, 2019-10-21 16:12

You might not need to, if the values you're using match the defaults, but they're likely provided as an option in the tutorial itself because one may want to tweak these weights, and their presence indicates how you would do this.

The tutorials aren't necessarily giving the minimal command lines, but rather typically give examples of how one might use the protocol in practice, and examples of the command line options one might want to adjust for actual conditions.  (That said, I'd highly recommend starting out with the default/example values, and only tweaking them if you encounter issues where you have reason to believe that adjusting them would help.)

Tue, 2019-10-22 07:05