Good afternoon, I am trying to model missing residues into my crystal structure following the method on the website: https://salilab.org/modeller/wiki/Missing_residues. I am also trying to restrain the crystal coordinates so that only missing residues move (and the rest of the original crystal coordinates remain the same) during refinement using the select_atoms method. However when I compare my final models produced by my script to my original crystal structure, I find that the side chains of several amino acids three of four amino acids away from the missing residues have been flipped. How can I ensure that only the missing residues are refined and the crystal coordinates remain the same? I am wondering if I’ve missed something important out of my script. See my script below. Many thanks. from modeller import * # Load standard Modeller classes from modeller.automodel import * # Load the AutoModel class log.verbose() # Create log file env = Environ() # directories for input atom files env.io.atom_files_directory = ['.', '../atom_files'] env.io.water = True # Only refine/move missing residues - restrain crystal coordinates class MyModel(LoopModel): #picks residues to be refined by loop modelling def select_loop_atoms(self): #refines residue ranges defined simultaneously return Selection(self.residue_range('5:A', '13:A'), self.residue_range('99:B', '105:B'), self.residue_range('251:D', '256:D')) # redefine the special_patches routine to include additional disulfides def special_patches(self,aln): self.patch(residue_type='DISU',residues=(self.residues['26:A'],self.residues['199:C'])) self.patch(residue_type='DISU',residues=(self.residues['29:A'],self.residues['201:C'])) a = MyModel(env, alnfile = 'alignment.ali', # alignment file knowns = 'xxx', # aa sequence of original template - crystal coordinates sequence = 'xxx_fill', # aa sequence of original template with missing residues filled in loop_assess_methods = (assess.DOPE, assess.DOPEHR, assess.GA341)) a.starting_model= 1 # Index of the first model a.ending_model = 1 # Index of the last model a.loop.starting_model = 1 # First loop refined model a.loop.ending_model = 10 # Last loop refined model a.loop.md_level = refine.fast # Loop model refinement level a.make() # Do modelling
Good afternoon, I am trying to model missing residues into my crystal structure following the method on the website:
https://salilab.org/modeller/wiki/Missing_residues. I am also trying to restrain the crystal coordinates so that only missing residues move (and the rest of the original crystal coordinates remain
the same) during refinement using the select_atoms method. However when I compare my final models produced by my script to my original crystal structure, I find that the side chains of several amino acids three of four amino acids away from the missing residues
have been flipped. How can I ensure that only the missing residues are refined and the crystal coordinates remain the same? I am wondering if I’ve missed something important out of my script. See my script below. Many thanks. from modeller
import *
# Load standard Modeller classes from modeller.automodel
import *
# Load the AutoModel class log.verbose()
# Create log file env = Environ() # directories for input atom files env.io.atom_files_directory = ['.',
'../atom_files'] env.io.water =
True # Only refine/move missing residues - restrain crystal coordinates class
MyModel(LoopModel):
#picks residues to be refined by loop modelling
def
select_loop_atoms(self):
#refines residue ranges defined simultaneously
return Selection(self.residue_range('5:A',
'13:A'),
self.residue_range('99:B',
'105:B'),
self.residue_range('251:D',
'256:D'))
# redefine the special_patches routine to include additional disulfides
def
special_patches(self,aln):
self.patch(residue_type='DISU',residues=(self.residues['26:A'],self.residues['199:C']))
self.patch(residue_type='DISU',residues=(self.residues['29:A'],self.residues['201:C']))
a = MyModel(env, alnfile =
'alignment.ali',
# alignment file
knowns =
'xxx',
# aa sequence of original template - crystal coordinates
sequence =
'xxx_fill',
# aa sequence of original template with missing residues filled in
loop_assess_methods = (assess.DOPE,
assess.DOPEHR,
assess.GA341)) a.starting_model= 1 # Index of the first model a.ending_model = 1 # Index of the last model a.loop.starting_model = 1 # First loop refined model a.loop.ending_model = 10 # Last loop refined model a.loop.md_level = refine.fast # Loop model refinement level a.make() # Do modelling |