Unpredictible amino acid replacements

Member Site Forums PyRosetta PyRosetta – General Unpredictible amino acid replacements

Viewing 2 reply threads
  • Author
    Posts
    • #1273
      Anonymous

        During loop modeling using loop_modeling.py from http://www.pyrosetta.org/scripts
        and using my frag3 file for my protein I found that unpredictable amino acid replacements occur for my protein.
        Could you please tell me why it is happened and how to avoid this situation,
        as I do not want to change my amino acids during loop modeling.

        Thank you,

        Victor

      • #7092
        Anonymous

          The PackerTask, which is the object that controls what residues get packed and to what they can mutate, starts with the assumption that all residues can mutate, and winnows down from there. You need to instruct it you want no mutations.

          I can see in the python script you mention that it already has a line “task_pack.restrict_to_repacking() # prevents design, packing only”, which is the sort of code you need to prevent the design you don’t want. I don’t know why it would behave otherwise; it may be some sort of version mismatch between the script and the version of pyrosetta. I’ll ask Sergey to take a look at it.

        • #7460
          Anonymous

            I think I have the same problem described by Victor. I am posting a minimal version of the loop_modeling.py script. The problem seems to be related with the mover “LoopMover_Refine_CCD”. A very weird observation is that the mutations are not restricted to the loop I have defined. Maybe I am incorrectelly defining the loop. What I am trying to do is to move the residues 11, 12 and 13 (12 is the cutpoint) while keeping the rest of the protein without moving.

            At the begginig of the run I get the message:
            protocols.loops.loops_main: Pose fold tree FOLD_TREE EDGE 1 7 -1 EDGE 7 12 -1 EDGE 7 17 1 EDGE 17 13 -1 EDGE 17 56 -1
            I guess the content of the message indicates I am correctly defining the loop I (I have a 56 amino acid lenght protein):

            Here Is the code:

            from rosetta import *
            rosetta.init()

            pose = pose_from_pdb(‘test.pdb’)
            scorefxn_standard = create_score_function(‘standard’)

            loop_A = Loop(9, 15, 12)
            sample_loops = Loops()
            sample_loops.add_loop(loop_A)
            set_single_loop_fold_tree(pose, loop_A)
            loop_refine = LoopMover_Refine_CCD(sample_loops)

            for ite in range(0, 10):

            loop_refine.apply(pose)

            pose.dump_pdb(‘test_%03d.pdb’ % ite)

            Thanks

          • #7461
            Anonymous

              I want to clarify your problem: the backbone of your output structures is behaving as expected; the only problem is that the protein _sequence_ is drifting from the correct sequence?

            • #7462
              Anonymous

                Exactly the protein sequence is changing.

              • #7463
                Anonymous

                  LoopMover_refine_CCD (assuming that’s the C++ object loops::loop_mover::refine::LoopMover_CCD) has set_task_factory. So, create a TaskFactory, give it a RestrictToRepacking operation, and load it into the Mover. I don’t know the python, only the C++; python will look something like this:

                  rr = RestrictToRepacking() #or whatever the name of the constructor for this operation is
                  tf = standard_task_factory()
                  tf.push_back(rr)
                  loop_refine.set_task_factory(tf)

                  You can also try defining -pack:repack_only as true in the options system (setting things in the option system is covered in other topics on these boards)

                • #7464
                  Anonymous

                    Thanks smlewis! now my script works as intended.

                Viewing 2 reply threads
                • You must be logged in to reply to this topic.