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>
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 :)
Pyrosetta: PyRosetta4.Release.python36.mac 2018.24+release