Member Site › Forums › PyRosetta › PyRosetta – General › Unpredictible amino acid replacements
- This topic has 6 replies, 3 voices, and was last updated 12 years, 1 month ago by
Anonymous.
-
AuthorPosts
-
-
May 9, 2012 at 4:21 pm #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
-
May 9, 2012 at 4:26 pm #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.
-
July 25, 2012 at 7:17 pm #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
-
July 25, 2012 at 8:41 pm #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?
-
July 25, 2012 at 9:00 pm #7462
Anonymous
Exactly the protein sequence is changing.
-
July 25, 2012 at 9:07 pm #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)
-
July 25, 2012 at 10:40 pm #7464
Anonymous
Thanks smlewis! now my script works as intended.
-
-
AuthorPosts
- You must be logged in to reply to this topic.