Currently I am running Rosetta flexible backbone design (ver. 3.3) to create novel proteins. My problem is, when I add PSSM as a favourable sequence profile, sometimes negative/positive weights behave strangely. The below is my XML code.
[Reweight scoretype=res_type_constraint weight=1.0/]
[FlxbbDesign name=flxbb ncycles=3 constraints_sheet=100.0 sfxn_design=SFXN1 sfxn_relax=SFXN1 clear_all_residues=0/]
[FavorSequenceProfile name=seq weight=1.0 pssm="some_protein.pssm" scorefxns=SFXN1/]
Here I imposed 1.0 as a weight value. For some proteins, "1.0" produces highly sequence identical proteins whereas "-1.0" is beneficial for some proteins. Moreover, in some proteins, whatever values I use (1.0/-1.0), it does not matter. Does anybody have this problem?
I also saw that there is an option called "negative_better" in ver. 3.4. Does it deal with this problem? If so, does it exist it in ver. 3.3 as well?
Oops, my XML code is not shown completely.
For future reference, you can attach it as a text file. (In the meantime, I can see it using admin powers).
I don't know if negative_better is in 3.3, but it is unlikely to matter - I think all it does is invert the +/- symbols as it reads the profiles in.
I can't say if this behavior is normal or not, but the manual for 3.3 (http://www.rosettacommons.org/manuals/archive/rosetta3.3_user_guide/Movers_(RosettaScripts).html) implies that it is pretty complicated. Do you see anything in the description there that helps? Unfortunately the 3.4 description says it's changed a bit since 3.3, meaning probably nobody remembers how it worked in 3.3 to debug it.
There was an uninitilized variable bug with FavorSequenceProfile that was fixed in the time between 3.3 and 3.4. If I recall correctly, the problem was mostly confined to use of the matrix option - I think that reading and using pssm files should be okay. (The negative_better() was added during the cleanup to reduce the confusion in the code - before that there was a profile_from_pssm_file_ variable which served a similar purpose.)
I would suggest looking at the PSSM you're using and making sure that the sense of the values in the matrix are the same for all of them (i.e. in the PSSM file, entries with large positive values should be best).
I would also recommend examining the per-residue scoring information for the res_type_constraint term (you can use the DumpPdb mover with the scorefxn option), and checking that the scores being assigned to the residues are the ones you expect them to be. Note that in the dumped pdb, large negative scores are the favorable ones.