Modeling loop using template from PDB file
Hello,
I have a structure (A) which is missing a stretch of a dozen or so residues. I also have the structure of the protein from a different organism which has said stretch of residues resolved (B). Now I'd like to take the coordinates of A and model the missing residues using the relevant coordinates (i.e. for these residues only) from B.
How would I go about doing this?
Thanks Markus
On 12/6/16 3:54 PM, Markus Heller wrote: > I have a structure (A) which is missing a stretch of a dozen or so > residues. I also have the structure of the protein from a different > organism which has said stretch of residues resolved (B). Now I'd > like to take the coordinates of A and model the missing residues > using the relevant coordinates (i.e. for these residues only) from > B. > > How would I go about doing this?
Just make an alignment containing both proteins A and B, and align the missing region with B and the rest with A, as per https://salilab.org/modeller/FAQ.html#1
If you're happy with the A coordinates and don't want them to move at all, select only the B region in select_atoms(): https://salilab.org/modeller/9.17/manual/node23.html
Ben Webb, Modeller Caretaker
> -----Original Message----- > From: Modeller Caretaker [mailto:modeller-care@salilab.org] > Sent: Wednesday, December 07, 2016 9:00 AM > To: Markus Heller; modeller_usage@salilab.org > Subject: Re: [modeller_usage] Modeling loop using template from PDB > file > > On 12/6/16 3:54 PM, Markus Heller wrote: > > I have a structure (A) which is missing a stretch of a dozen or so > > residues. I also have the structure of the protein from a different > > organism which has said stretch of residues resolved (B). Now I'd > > like to take the coordinates of A and model the missing residues > using > > the relevant coordinates (i.e. for these residues only) from B. > > > > How would I go about doing this? > > Just make an alignment containing both proteins A and B, and align the > missing region with B and the rest with A, as per > https://salilab.org/modeller/FAQ.html#1 > > If you're happy with the A coordinates and don't want them to move at > all, select only the B region in select_atoms(): > https://salilab.org/modeller/9.17/manual/node23.html
I have it working with modeling for 1 chain with the following class definition:
class MyModel(automodel): def select_atoms(self): # Select residues 1 and 2 (PDB numbering) return selection(self.residue_range('339:A', '372:A'))
I can't get it to work for both chains.
This
class MyModel(automodel): def select_atoms(self): # Select residues 1 and 2 (PDB numbering) return selection(self.residue_range('339:A', '372:A', '809:B', '842:B'))
gives:
TypeError: residue_range() takes exactly 3 arguments (5 given)
Each chain is 470 AA, so 339:A and 372:A should be 809:B and 842:B in modeller nnumbering.
On the other hand, this, assuming we're using PDB numbering here, according to which 339 through 372 exist in both chains,
class MyModel(automodel): def select_atoms(self): # Select residues 1 and 2 (PDB numbering) return selection(self.residue_range('339:', '372:'))
gives
KeyError: 'No such residue: 339:'
What's my mistake?
Thanks Markus
On 12/7/16 11:39 AM, Markus Heller wrote: > I can't get it to work for both chains. ... > return selection(self.residue_range('339:A', '372:A', '809:B', '842:B'))
As the error points out, you can only give two residue numbers (the start and end) to residue_range() (the third implicit argument is the class, self). But the selection object can take multiple objects, so what you actually want is
return selection(self.residue_range('339:A', '372:A'), self.residue_range('809:B', '842:B'))
Ben Webb, Modeller Caretaker
participants (2)
-
Markus Heller
-
Modeller Caretaker