I'm docking a short peptide fragment (2 residues) into a small binding pocket that only accommodates one residue. Since the binding pocket is hydrophobic and binds hydrophobic peptides, I expected that Rosetta would give a poor score to peptide mutant such as lys, his, arg. But it scores these quite well. If I don't dock, but just score after using the fixed backbone protocol to make the mutants, the results are quite good. However, sometimes there is a lot of clashing, and the peptide's side chain is pointed out of the binding pocket. Is there any way to restrict the type of docking to be less aggressive, perhaps less backbone movement?
I'm not quite sure where the problem is - is it that fixbb CAN discriminate, but it can't after docking? Or neither can discriminate? (I'm not sure if "the results are quite good" means "I like them" or "all results say good binding"). Or is it that you don't like how the docking results drift from the pocket? If you can see that the hits are clashing or out of the pocket, then you know they're not real binding orientations, so you know that sequence is bad...
Yeah, I can see your confusion...
The problem is that after docking too many peptides have good scores... they are "overfitted". The protein is known not to bind these peptides experimentally and they get fairly low energy scores.
How do the scores and structures look before docking? Peptides that 'should' fit in the pocket are positioned out (they are mutants back to a wildtype identity which is known to bind). For instance, Trp (which is known to fit quite nicely into this pocket from structural studies) is usually pointed outside the pocket. Other residues that should not bind have bad scores as I would expect. This last part is what I meant by "the results are quite good".
So yes, fixbb CAN discriminate among quite a bit of peptides, but it performs poorly for certain classes of peptides. My attempts to solve this problem with docking have resulted in known non-binders being predicted to bind.
My experience with Rosetta is that it *always* predicts things will bind if you look at absolute scores. The scorefunction was created via folded, compact, crystallizable structures, and so Rosetta tries to force everything to mimic that. It can't predict that things won't bind, it can only predict that the best binding orientation available is weak.
In a case I've studied, Rosetta predicts binding energies (via InterfaceAnalyzer) of -30 for mutants that do bind, and -24 or so for mutants that do NOT bind experimentally. Both are 'good' scores in absolute terms, but in relative terms -30 is clearly better and in practice, the -30 works and the -20 doesn't. It may be useful to try to analyze your scores in that light.
I don't know that it's possible to tune down flexpepdock per se. If you want no-backbone-motion docking, why not try minimization-only docking? I don't have access to it now, but Monday I'll attach an options file and RosettaScripts file that does minimization-only at the interface. (You can build it yourself pretty quick - just put PackRotamersMover with all positions packable followed by MinMover with all positions chi, bb, and jump minimizable, followed by InterfaceAnalyzerMover for binding analysis).
NM Monday, here they are now. These are not quite what I described but they're what I use for minimization-only protein-protein interface docking. They'll need some tweaking of course, let me know if you don't know what it's doing...
The approach that some people have used to discriminate binders from non-binders (not necessarily with FlexPepDock) is to do random docking. You take the ligand you want to dock (assuming you're doing a constant ligand against a set of possible receptors), and dock it against a set of proteins where you know it shouldn't bind (or at least where there is a large majority of non-binders, so you don't need to be limited by the availability of experimental data). You can then look at the distribution of scores you get from the putative non-binders, and then you would estimate that any binders should be several standard deviations from that average. (Note that different sizes and types of ligands will likely have different average random docking energies, so if you have several ligands, you may need to repeat the average docking multiple times.)
For example, in your docking to non-binders, you might see the binding energy is -24 +/- 2 REU. You would then expect a true binder would hopefully have a binding energy of less than something like -28 REU: -30 is probably good, -26 is likely questionable, -20 is probably very bad. This doesn't always work, as you will often run into cases where a known non-binder will get a really good energy, or a known binder will somehow give a really bad energy, but it gives you a better feel of what the numbers "should" be.