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()