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

Member Site Forums PyRosetta PyRosetta – Applications How to make FastRelax use smaller number of rotamers from PyRosetta app?

Viewing 1 reply thread
  • Author
    Posts
    • #2985
      Anonymous

        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.

      • #14402
        Anonymous

          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.

      Viewing 1 reply thread
      • You must be logged in to reply to this topic.