As each stage of AbInitio protocol call a different function (score0, score1, score2, score5 e score3), it appears to me that use a single cst_weight in my command line doesn't make sense (a single weight for every single stage). For that reason, I would like to test different weights for cst in each stage of Abinitio.
For doing so, for example, I have created for stage0 a score0.wts_patch and added to the command line the flag -stage1_patch with this file. When I don't input a cst_file, the stage0 returns the weight from the *patch file. For example, atom_pair_constraint (weight) 0.1. However, once the cst_file is provide the default weight of 1.0 "overwrites" what is in the *patch file. Note that there is no cst_weight flag when I run this example. If I change de vdw weight for example in the *patch file, the vdw weight is hold while the cst weight is overwritten.
So, how to provide a cst_file and have different constraints weight to each stage I am interested in?
What you describe sounds like it should have worked. I assume you've found a bug.
Try editing the .wts files directly in the database, instead of using a patch file, and see if that changes anything?
oh, try this first instead. Find this code, it's line 1614-1618 of AbrelaxApplication.cc in my copy of Rosetta:
if ( cstset_ && cstset_->has_residue_pair_constraints() ) {
scorefxn->set_weight( core::scoring::atom_pair_constraint, option[ OptionKeys::constraints::cst_weight ]() );
scorefxn->set_weight( core::scoring::angle_constraint, option[ OptionKeys::constraints::cst_weight ]() );
scorefxn->set_weight( core::scoring::dihedral_constraint, option[ OptionKeys::constraints::cst_weight ]() );
}
You can see how this will be resetting constraint weights to 1 (the default for cst_weight). Just make that "if (false) instead to disable it. Then recompile and see what it does.