Member Site › Forums › PyRosetta › PyRosetta – Applications › Introducing N/C-terminal residues to a pose
- This topic has 2 replies, 2 voices, and was last updated 6 years, 3 months ago by Anonymous.
-
AuthorPosts
-
-
August 23, 2018 at 1:09 pm #2988Anonymous
Hello everyone,
I work with a protein where the crystal structure does not include the first 14 amino acids, which are intrinsically disordered.
I would like to add the missing 14 residues using PyRosetta, and I have therefore looked into the FAQ and tried to find the relevant methods in the documentation. After some considerations I have come up with strategy:
- Build a pose of the missing residues (a peptide) from the sequence (pose_from_sequence), and then align it to roughly overlap with the N-terminal of the crystal structure.
- From a pose of the MX-structure (MX), I can can extract one residue at a time (aa15 = MX.residue(1)), so that I have an instance of the residue object. I am not sure whether I actually produce a copy by the command or simply points to it, but type(aa15) produces ‘pyrosetta.rosetta.core.conformation.Residue’
- Using the pose.append_residue_by_bond, I would then add one residue from the MX-pose to the peptide pose. (There is no prepend_residue… , so I have to append to the peptide)
- The peptide I have prepended to the MX structure is just a straight line, so using the various movers in Pyrosetta, I will vary phi/psi angles, minimize etc., to get an ensemble of conformations of the N-terminal.
I note, that I before attempting above, I have changed seqpos of the residues in the MX-pose, so that the first sequence position is 15. This is to avoid two residues having the same sequence position.
When I try to add the first residue from MX-pose to the peptide pose, I get the following error:
__________________________
num_apo = len(apo.sequence())
test = Pose()
test.assign(peptide)
for num in range(1,num_apo):
aa = apo.residue(num) # apo is the MX-pose
test.append_residue_by_bond(aa)Traceback (most recent call last):
File “<ipython-input-76-fe3dd8794a99>”, line 7, in <module>
test.append_residue_by_bond(aa)
RuntimeError:
File: /Volumes/MacintoshHD3/benchmark/W.fujii/rosetta.Fujii/_commits_/main/source/src/core/conformation/Conformation.cc:1060
Can’t create a polymer bond after residue 15 due to incompatible type: ARG:CtermProteinFull
__________________________
After some googling, I found the ‘mutate_residue’ method from pyrosetta.toolbox. But adding a step that tries to change the type of residue 14 of the peptide pose from ‘ARG:CtermProteinFull’ to simply ‘ARG’, have not worked – the type remains ‘ARG:CtermProteinFull’.
I am running out of ideas of how to add the missing residues, can someone suggest fixes to my current approach or suggest another way to add N -or C-terminal residues to a pose? It would be greatly appreciated
Kind regards,
Martin
Python: 3.6
Pyrosetta: PyRosetta4.Release.python36.mac 2018.24+release
-
August 23, 2018 at 3:59 pm #14403Anonymous
The problem is that the termini have “variants” – the NTermProteinFull and CTermProteinFull you are having problems with.
One solution is to remove the variants. I don’t know the name of the function, it’s probably remove_variants or similar. You’ll definitely need to do this on the protein side for the first addition.
It looks like your problem is on the PEPTIDE side. You can fix that by just not making the peptide pose at all – just make Residue objects individually as you need them and add them to your Pose. When you make a naked Residue it will probably have no variants.
-
August 30, 2018 at 10:57 am #14413Anonymous
Hello smlewis,
Thanks for your reply
my reason for creating the peptide to begin with was to make sure that I had the needed amino acids in the form of pyrosetta residue type (‘pyrosetta.rosetta.core.conformation.Residue’), whith coordinates and angles that make sense. I am sure that there is a method exposed for creating the residues individually with reasonable phi/psi/chi angles, but I am still new to pyrosetta, so thought of it as a short cut.
In the end, I learned that I could just add the residues in pymol and import the full length PDB in pyrosetta for subsequent modeling. This is by far the easiest
Kind regards,
Martin
-
-
AuthorPosts
- You must be logged in to reply to this topic.