Hi everybody, I am really hoping that I am not asking a dumb question but
I cannot seem to get the restraints to work on my protein. To try and get to
grips with this I am using a target-template sequence identity of 100%. I have
set the secondary structure as is in the known structure but cannot seem to ‘force’
the restraints through onto the target. I have posted the script below. Any help on this would be
very much appreciated! Many thanks in advance, Tory from modeller import * from modeller.automodel import * class MyModel(automodel): def special_restraints(self, aln): rsr = self.restraints # Addition of 3 disulphides: self.patch(residue_type='DISU',
residues=(self.residues['43'],self.residues['62'])) #Residues 20 through 30
should be an alpha helix: rsr.add(secondary_structure.alpha(self.residue_range('20:',
'37:'))) rsr.add(secondary_structure.alpha(self.residue_range('54:',
'65:'))) rsr.add(secondary_structure.alpha(self.residue_range('75:',
'89:'))) rsr.add(secondary_structure.alpha(self.residue_range('111:',
'115:'))) rsr.add(secondary_structure.alpha(self.residue_range('119:',
'128:'))) rsr.add(secondary_structure.alpha(self.residue_range('137:',
'154:'))) #Two beta-strands: rsr.add(secondary_structure.strand(self.residue_range('13:',
'18:'))) rsr.add(secondary_structure.strand(self.residue_range('42:',
'43:'))) rsr.add(secondary_structure.strand(self.residue_range('66:',
'73:'))) rsr.add(secondary_structure.strand(self.residue_range('102:',
'106:'))) rsr.add(secondary_structure.strand(self.residue_range('132:',
'133:'))) log.verbose() env = environ() # directories for input atom files env.io.atom_files_directory = ['.', '../../atom_files'] a = MyModel(env, alnfile='../tlr1_tir_template.ali', knowns='1fyv', sequence='hTLR1TIR', assess_methods=(assess.DOPE,
assess.normalized_dope, assess.DOPEHR, assess.GA341)) a.starting_model = 1 a.ending_model = 100 # Very thorough VTFM optimization: a.library_schedule = autosched.slow a.max_var_iterations = 300 # Thorough MD optimization: a.md_level = refine.very_slow # Repeat the whole cycle 2 times and do not stop unless
obj.func. > 1E6 a.repeat_optimization = 5 a.max_molpdf = 1e6 a.make() # Get a list of all successfully built models from a.outputs ok_models = filter(lambda x: x['failure'] is None,
a.outputs) # Rank the models by DOPE score key = 'DOPE score' ok_models.sort(lambda a,b: cmp(a[key], b[key])) # Get top model m = ok_models[0] print "Top model 1: %s (DOPE score %.3f)" %
(m['name'], m[key]) m = ok_models[1] print "Top model 2: %s (DOPE score %.3f)" %
(m['name'], m[key]) m = ok_models[2] print "Top model 3: %s (DOPE score %.3f)" %
(m['name'], m[key]) m = ok_models[3] print "Top model 4: %s (DOPE score %.3f)" %
(m['name'], m[key]) m = ok_models[4] print "Top model 5: %s (DOPE score %.3f)" %
(m['name'], m[key]) |