[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[modeller_usage] secondary structure assignment and patching



The template for one of my models has a large region in the middle of its sequence that shares no homology to my target sequence.  Fortunately this region does not interact with the catalytic region in which I am interested, so I am able to remove this segment from the model.  This means than my final model is composed of two chains.  

The problem I am having is with the secondary structure assignment to the second chain of the model.  Without any explicit special secondary structure assignment the first chain of my model faithfully replicates the secondary structures of the template, while the second chain is lacking most if not all secondary structure.  I know I could fix this problem by adding special restraints, but would rather have the model pick up secondary structure from the template.
 
I am doing this modelling with default patching off. After a lot of testing, it seems that the N and C terminal patches are the cause of this loss in secondary structure to only the second chain of my model.  If I comment out the patches to the protein termini but keep the patches I'm making to the DNA in my model, then I get the results I am looking for.  Anyone have an idea why this is happening?

Here is my input file:

      from modeller import *
      from modeller.automodel import *    

      log.verbose()    
      env = environ()  
      env.patch_default = False
      env.io.hydrogen = env.io.hetatm = True

      env.io.atom_files_directory = './:~/homology'
  
      class mymodel(automodel):
              def special_patches(self, aln):    
                      self.patch(residue_type='5MC2', residues=(self.residues['253:C']))
                      self.patch(residue_type='DEO1', residues=(self.residues['248:C']))
                      ...
                      self.patch(residue_type='5PHO', residues=(self.residues['248:C']))
                      self.patch(residue_type='5PHO', residues=(self.residues['260:D']))
                      # adjust 3' hydroxyl terminals of DNA strands
                      self.patch(residue_type='3TER', residues=(self.residues['259:C']))
                      self.patch(residue_type='3TER', residues=(self.residues['271:D']))
                      # manually patch N termini
                      self.patch(residue_type='NTER', residues=(self.residues['1:A']))
                      self.patch(residue_type='ACE ', residues=(self.residues['166:B']))
                      # manually patch C termini
                      self.patch(residue_type='CTER', residues=(self.residues['165:A']))
                      self.patch(residue_type='CTER', residues=(self.residues['247:B']))
   
      a = mymodel(env,
                  alnfile  = 'alignment.ali',        
                  knowns   = ('template1','template2'),
                  sequence = 'model3')           
      a.starting_model= 1
      a.ending_model  = 1                    
 
      a.make() 

I'd appreciate any help.  Thanks!

ryan