You are here

Failure appending a residue

3 posts / 0 new
Last post
Failure appending a residue
#1

On my system, the following produces memory errors 3/5 of the time at the third or fourth insertion step, segmentation faults 1/5, and finishes without problems 1/5. Deleting and inserting one residue always works, but the scripts become increasingly unreliable with increasing numbers of residues deleted and inserted. If this problem is not due to a correctable mistake on my part, could someone please suggest how I might dock two domains of a protein without interference from their interdomain linker, and then restore the linker (presumably by building a loop). The regularized pdb file contains a total of 436 residues, in two polypeptide chains.

from rosetta import *
rosetta.init()

pose = pose_from_pdb("regularized.pdb")

b = pose.residue(320)
c = pose.residue(321)
d = pose.residue(322)
e = pose.residue(323)

pose.delete_polymer_residue(323)
pose.delete_polymer_residue(322)
pose.delete_polymer_residue(321)
pose.delete_polymer_residue(320)

pose.append_polymer_residue_after_seqpos(b, 319, 1)
pose.append_polymer_residue_after_seqpos(c, 320, 1)
pose.append_polymer_residue_after_seqpos(d, 321, 1)
pose.append_polymer_residue_after_seqpos(e, 322, 1)

Post Situation: 
Thu, 2011-06-16 10:53
rfschleif

I think it may be because as you are deleting and adding residues, the residue numbers begin to change internally to rosetta to keep them from 1 to X. So, if you delete 323, 322 actually becomes the new 323; so loop around and keep deleting 323 to delete 323 - 320. Also, after you fix this, if you can't get append_polymer_residue_after_seqpos, try pose.prepend_polymer_residue_before_seqpos(res, res#, bool).

-J

Fri, 2011-06-17 08:56
jadolfbr

Rosetta is great at adding residues in order and mediocre at adding them out of order or deleting them. What you are doing is not necessarily tricky, but it requires careful handling of the atom tree.

First, before you start deleting residues, make sure you know where the cutpoint between the chains is. There has to be a cutpoint someplace or you can't dock. Just deleting residues out of the middle won't make a cutpoint, Rosetta will just connect the loose ends and pretend it's a bizarre-geometry peptide bond. You presumably did some fold_tree fiddling at some point to take care of this?

Second, do the docking.

Third, when you reinsert the linker, make sure that you are popping off terminus variants as you go - Rosetta may have given you protein terminus or protein cutpoint patches on the end, which makes it impossible to add the residues.

Fourth, after you're done, make sure to revert to a linear fold tree. You can try doing this BEFORE you start reinserting residues, it will make the reinsertions cleaner (but you'll have to strip terminus variants before you can re-linearize the fold tree anyway).

Fri, 2011-06-17 14:24
smlewis