You are here

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

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

In the density guided de novo prediction script denovo_density.cc, 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
ahmadkhalifa

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
rmoretti