In the selection of binders from a library and their affinity maturation, a trade-off between affinity of the binder and its stability frequently can be observed. Starting from a binder library based on a very stable framework allows for high sequence diversity in the randomised positions of the putative binding site, and therefore stringent selection for high affinity, as very significant destabilisation would be needed to bring the stability of the binder down to a level where this stability significantly affects the fraction of folded molecules and therefore the outcome of selection. To direct selection towards stability/folding of the binder, selection conditions have to be adjusted such that stability/folding of the binder becomes limiting, by destabilising the framework, temperature or denaturant challenges, while the selection pressure on the binding interface are kept low by high ligand concentrations and short, mild washing steps, thus altering the balance between binder stability and interface affinity by varying the selection conditions.
Trying to reproduce these experiments in silicio, I find that stringent filtering for interface area and ddG (Rosetta3.5, RosettaScripts, based on demo "design_raf_rac_interface" but explicitly listing interacting residues in a residue file) is not sufficient to recover the sequence diversity of the binding site observed in real experiments, as the results of repacking the interface appear to depend more on the sequence preference of the empty binding pocket on the binder than on the sequence of the peptide ligand. Apparently too much of the sequence diversity in the binding site to create a ligand-specific interface is already lost in the packing/design step and cannot be recovered by stringent filtering. To get a more reasonable approximation to what is happening, it would be necessary to play around with the balance between intramolecular stabilisation of binder and ligand and the intermolecular terms describing the interaction between binder in ligand and therefore their binding affinity, thus amplifying the contribution of the intermolecular interaction terms to the total score.
From the description in the supplemental material to Nature 501, 212–216, I presume that the ProteinLigandInterfaceUpweighter does for the design of the interaction between a small molecule ligand and a protein what I would like to do for the interaction between a protein and its peptide ligand.
Is such a thing possible for a protein-protein interface? How would I approach this?
There isn't anything that is immediately availible for general use.
If you're willing to write/look at C++ code, I would suggest using ResidueGroupIGEdgeUpweighter from main/source/src/protocols/toolbox/IGEdgeReweighters.hh You then need to add the reweighter to the PackerTask. You can look at ProteinLigandInterfaceUpweighter in src/protocols/enzdes/EnzdesTaskOperations.cc for an example of how that's done. (The ProteinLigandInterfaceUpweighter is a TaskOperation, which typically gets added to a TaskFactory.)
It might be easier for you to do your new protocol in PyRosetta, which makes adding such functionality a little bit easier than with C++.
Thank you for your answer. I suspected that this would be the case, and you confirmed my suspicion. Unluckily, I am a biochemist by training, and my programming knowledge is too limited for me to tamper with the rosetta code and expect to get it working within a reasonable timeframe. I will therefore seek for collaboration on this project, since the type of protein libraries and selections we are doing are investigating how the affinity responds to single-mutation perturbation on the side of the ligand and to what extent we can compensate by sequence changes on the side of the binder. If you know of anybody who might be interested in such a collaboration and has the required knowledge of the internals of rosetta, please let me know!