You are here

How to make FastRelax use smaller number of rotamers from PyRosetta app?

2 posts / 0 new
Last post
How to make FastRelax use smaller number of rotamers from PyRosetta app?
#1

I am using FastRelax from PyRosetta. When I run it from PyRosetta, the number of rotamers built are way more than the number of rotamers when I run it with C++ relax binary. For instance: I use the following to relax a pdb with movemap in PyRosetta as follows:

def relax_pdb_with_movemap(self, pose, movemap):
        relax = FastRelax()
        relax.set_scorefxn(get_fa_scorefxn())
        relax.set_movemap(movemap)
        relax.apply(pose)
        return pose

In C++ I give the following command:

relax.linuxgccrelease -s test.pdb -in:file:movemap test.movemap

The same files (test.pdb and test.movemap) are passed to the PyRosetta function. But I see different outputs:

PyRosetta output:

protocols.relax.FastRelax: ================== Using default script ==================
core.scoring.ScoreFunctionFactory: SCOREFUNCTION: ref2015
protocols.relax.FastRelax: CMD: repeat  2688.76  0  0  0.55
core.pack.task: Packer task: initialize from command line() 
core.pack.pack_rotamers: built 2045 rotamers at 38 positions.
core.pack.interaction_graph.interaction_graph_factory: Instantiating DensePDInteractionGraph
core.pack.interaction_graph.interaction_graph_factory: IG: 4124016 bytes
core.pack.annealer.FixbbSimAnnealer: pack_rotamers run final: YYEKHTHVDTLYRYHYYITKWVQLYTWYRGPGRAFVTI, best_energy: -236.068

C++ output:

protocols.relax.FastRelax: ================== Using default script ==================
core.scoring.ScoreFunctionFactory: SCOREFUNCTION: ref2015
protocols.relax.FastRelax: CMD: repeat  2395.51  0  0  0.55
core.pack.task: Packer task: initialize from command line() 
core.pack.pack_rotamers: built 598 rotamers at 38 positions.
core.pack.interaction_graph.interaction_graph_factory: Instantiating DensePDInteractionGraph
core.pack.interaction_graph.interaction_graph_factory: IG: 412404 bytes

 

How to make PyRosetta build same number of rotamers as that of C++ relax app?

Thank you very much.

Category: 
Post Situation: 
Tue, 2018-08-21 15:55
sn

IDK the "real" answer but I would guess that in PyRosetta you are getting -ex1 -ex2 turned on by default. (You can try passing those flags to the C++ and seeing if the resulting number of rotamers matches).  -ex1 and -ex2 mean "extra rotamers for chi 1 and chi 2" respectively.

 

You can set up your own TaskFactory/ PackerTask in pyrosetta and pass that to the relax mover, probably.  You'll need to set it to repack only - I forget the name of the TaskOperation / PackerTask function for that, if poking through the documentation for repack_only and similar strings doesn't work I'll look it up.

Wed, 2018-08-22 12:35
smlewis