I found that there are optimize_weights directory in the protocol directory in the rosetta 3.3 and 3.4. What's the function of this protocol and how to use it? I think this is for weights optimization. If I understand correct In this case, if I have 1 more energy term(suppose this term is totally new), how do I use ”optimize_weights“ to optimize the weights? Thank you very much！
I don't think the application that goes with that (OptE) is released yet. I've asked its author for comment. See also http://www.rosettacommons.org/node/1916
In this case, what's the function of "rosetta_source/src/protocols/optimize_weights/"? Thank you
It's the OptE code. The application itself is unreleased; the underlying library is released in a technical sense, but it's unusable without an application that calls it. There's a huge amount of stuff in protocols/ that isn't linked to any of the existing applications, but is instead linked to applications we haven't released yet (the apps/pilot folder, which is empty for you, is huge in the developer verison).
OptE is not released yet and is not yet documented. A manuscript describing it is in preparation.
While the automatic OptE proceedure isn't released yet, you can still optimize weights the "old fashion" way, by hand.
The technique is to pick one or more metrics you wish to optimize against (I'd recommend using several so you don't accidentally get stuck with a value which is optimal for one, but very sub-optimal for others). You then do your Rosetta runs (whatever protocol you want to optimize against - again, you may want to include several) using slightly different values of whatever weights you want to optimize, and then compute the metrics for each weight set. You simply repeat the proceedure until you find a set of weights that you believe maximizes/minimizes the tradeoffs between the various metrics you've chosen.
Like it sounds, this can be a lot of work (hence the development of an automated protocol), so the recommendation is to limit the number of variables you're changing. Generally, you'll want to keep most of the standard weights at their default values, although depending on how much they overlap with your new term, you may want to play around with tweaking them. (For example, if your new term is related to hydrogen bonding, you may want to also adjust the weights on the hydrogen bonding term, so you don't overemphasize the contribution of hydrogen bonding.)
Thank you for your reply. Let's say I have a new term related to hydrogen bonding (TERM H) and the old terms are all rosetta terms (TERM R + TERM related to hydrogen bonding, TERM RH). Then I implement the new term to the rosetta program, then I adjust the weights of term H and term RH to optimize the energy. Is that correct? Thank you
Basically, yes. Although more precisely it's not really the energy itself you are optimizing, but the performance of your chosen Rosetta protocols with respect to your chosen metrics (which may or may not include energy recapitulation).