You are here

PackRotamersMover in another way

2 posts / 0 new
Last post
PackRotamersMover in another way

I want to design peptides, allowing redesign and side-chain packing, but no backbone changes. So far I'm using PackRotamersMover, but I would like to write my packer with fixbb instead to have more control.


My question basically is: why do the two following snippets of code not do the same? And what have I missed about PackRotamersMover in my version?

code 1:

tf = TaskFactory()
packer = pack_min.PackRotamersMover(scorefxn)


code 2:

tf = TaskFactory()
mm = MoveMap()
fixbb = pyrosetta.rosetta.protocols.denovo_design.movers.FastDesign()


Post Situation: 
Mon, 2022-02-07 07:10

PackRotamersMover does on-rotamer sidechain movement only.

FastDesign is the FastRelax protocol, but allowing the sidechains to change identities. That is, it doesn't just do on-rotamer sidechain movement, but instead (effectively) applies the PackRotamersMover multiple times, each time interspersing it with minimization with a ramping repulsive.

PackRotamersMover gives you exactly as much control of the actual packing rounds that FastDesign does. The difference is that FastDesign is a diffferent algorithm that does more than just PackRotamersMover, so it has more knobs to tweak to give control over those additions stages.

In your protocol you turn off backbone movement for FastDesign, but you still allow sidechain minimization. PackRotamersMover doesn't even consider minimization. Hence the difference with the PackRotamerMover: the FastDesign allows you to sample off-rotamer structures of your sidechains. In addition, it does so with a ramping repulsive, so there's likely to be more extensive consideration of design possibilities which have some clashes in strictly on-rotamer sidechains, but which can be adjusted by relax.

That's particularly important with your settings, which are lacking the -ex1/-ex2 "rotamer explosion" settings, which adds in rotamer subsampling (that is, adding samples at +/- 1 standard deviation for chi 1 and chi 2, in addition to the strictly on-rotamer setting.) If any of the on-rotamer sampling had a clash, PackRotamers wouldn't accept it, even if moving a little to a still-acceptable conformation would fix it. With FastDesign, there's more chance that it would be accepted in the low-repulsive rounds, and then optimized with minimization. You might be able to recover most of the effect with including the extra rotamer sampling settings in the TaskOperation for PackRotamersMover (they're probably not needed and would only slow down FastDesign). Alternatively, you could look at the MinPackMover, which is basically the PackRotamersMover, but where the sidechains are explicitly minimized during the process.

Mon, 2022-02-07 08:57