Re: [modeller_usage] Modeling loop using template from PDB file
To: Modeller Caretaker <>, "" <>
Subject: Re: [modeller_usage] Modeling loop using template from PDB file
From: Markus Heller <>
Date: Wed, 7 Dec 2016 19:39:29 +0000
Accept-language: en-US
Spamdiagnosticmetadata: NSPM
Spamdiagnosticoutput: 1:99
> -----Original Message-----
> From: Modeller Caretaker [">mailto:]
> Sent: Wednesday, December 07, 2016 9:00 AM
> To: Markus Heller;
> 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