Dear Modeller,
I am trying to put secondary structure restraints (strand and sheet) to the MODELLER modeling. However, I found that most of the specified hydrogen-bonds between strands have not been satisfied in the final model. I understand that MODELLER tries to satisfy ALL the restraints and there may be some conflicts between my hydrogen-bond and other restraints.
My questions are: 1. do I have a way to make some restraints stronger than other restraints? 2. do I have a way to force some important restraints (like the beta-sheet) no matter whether they are conflicted with others?
Thank you very much!
The following is the python file I am using (please kindly point out any error in the file):
from modeller import * from modeller.automodel import * log.verbose() env = environ()
env.io.atom_files_directory = './:../atom_files'
class mymodel(automodel): def special_restraints(self, aln): rsr = self.restraints at = self.atoms rsr.append(file='distCA.rsr')
rsr.add(secondary_structure.strand(self.residue_range('10:', '15:'))) rsr.add(secondary_structure.strand(self.residue_range('19:', '23:'))) rsr.add(secondary_structure.strand(self.residue_range('30:', '31:'))) rsr.add(secondary_structure.strand(self.residue_range('39:', '41:'))) rsr.add(secondary_structure.strand(self.residue_range('44:', '49:'))) rsr.add(secondary_structure.strand(self.residue_range('55:', '66:'))) rsr.add(secondary_structure.strand(self.residue_range('69:', '74:'))) rsr.add(secondary_structure.strand(self.residue_range('78:', '85:'))) rsr.add(secondary_structure.strand(self.residue_range('93:', '94:'))) rsr.add(secondary_structure.strand(self.residue_range('98:', '101:'))) rsr.add(secondary_structure.strand(self.residue_range('110:', '116:'))) rsr.add(secondary_structure.strand(self.residue_range('127:', '131:'))) rsr.add(secondary_structure.strand(self.residue_range('135:', '136:'))) rsr.add(secondary_structure.sheet(at['O:11'], at['N:23'],sheet_h_bonds=-4)) rsr.add(secondary_structure.sheet(at['O:20'], at['N:47'],sheet_h_bonds=-3)) rsr.add(secondary_structure.sheet(at['O:39'], at['N:115'],sheet_h_bonds=-2)) rsr.add(secondary_structure.sheet(at['O:44'], at['N:112'],sheet_h_bonds=-2)) rsr.add(secondary_structure.sheet(at['N:61'], at['O:71'],sheet_h_bonds=-2)) rsr.add(secondary_structure.sheet(at['O:56'], at['N:100'],sheet_h_bonds=-2)) rsr.add(secondary_structure.sheet(at['N:70'], at['O:82'],sheet_h_bonds=-5)) rsr.add(secondary_structure.sheet(at['O:81'], at['N:116'],sheet_h_bonds=-4))
a = mymodel(env, alnfile='alignment.ali', knowns=('pdb1','pdb2','pdb3'), sequence='target', ) a.starting_model = 1 a.ending_model = 3
a.make()
--------------------------------- Never miss a thing. Make Yahoo your homepage.