Hello Isabel thank you for your message:).
Did you superimpose the before and after structures in Pymol and then align them to generate an RMSD? If so whats the RSD Value?
Thanks:)
On Mon, Oct 16, 2023 at 5:56 PM Isabel Elliott I.G.Elliott@soton.ac.uk wrote:
> Hi, > > > > Thanks. I followed all the steps sequentially i.e. first produced a .seq > file from my pdb file. Then I created an alignment.ali file with gap > characters for the missing residues and the full sequence and finally I ran > the script: > > > > 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 > > > > > > *From: *Joel Subach mjsubach@alumni.ncsu.edu > *Date: *Monday, October 16, 2023 at 4:52 PM > *To: *Isabel Elliott I.G.Elliott@soton.ac.uk > *Cc: *Isabel Elliott via modeller_usage modeller_usage@salilab.org > *Subject: *Re: [modeller_usage] Missing residues - restrain crystal > coordinates > > *CAUTION:* This e-mail originated outside the University of Southampton. > > Hi Isabel thank you for your email:), I superficially looked at your > messages, did you follow all of the steps sequentially > > from the link or did you skip steps? Thanks:) > > > > On Mon, Oct 16, 2023 at 5:36 PM Isabel Elliott I.G.Elliott@soton.ac.uk > wrote: > > Hi, > > > > Thank you very much for your quick response. > > > > I have used the select_loop_atoms function within my LoopModel class to > define the specific residues that are allowed to move (see script in > initial email). I assumed based on this tutorial > https://salilab.org/modeller/wiki/Missing_residues that only the defined > residues would be allowed to move, whilst any residues not defined would be > restrained in their original positions. Is there something else I need to > add to my script to ensure all the residues which have not been modelled in > are restrained? I’ve checked my script several times and the numbering of > my starting structure compared to the final models and they all match up so > I’m unsure what’s going wrong. > > > > Thanks, > > Isabel > > > > *From: *Joel Subach mjsubach@alumni.ncsu.edu > *Date: *Monday, October 16, 2023 at 4:23 PM > *To: *Isabel Elliott I.G.Elliott@soton.ac.uk > *Cc: *Isabel Elliott via modeller_usage modeller_usage@salilab.org > *Subject: *Re: [modeller_usage] Missing residues - restrain crystal > coordinates > > *CAUTION:* This e-mail originated outside the University of Southampton. > > Hi Isabel thank you for your inquiry, if you restrain certain residues > they should not move, maybe double-check to be sure > > that you properly coded these residues to be restrained, thanks > > > > On Mon, Oct 16, 2023 at 5:15 PM Isabel Elliott via modeller_usage < > modeller_usage@salilab.org> wrote: > > 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 > > > > > > _______________________________________________ > modeller_usage mailing list > modeller_usage@salilab.org > https://salilab.org/mm/postorius/lists/modeller_usage.salilab.org/ > >