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])
On 4/7/10 7:42 AM, Offord, Victoria wrote: > 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 see only one problem with your script itself, and that should be unrelated: special_restraints() is called *after* the system topology is set up, so patching the topology will have no affect there. To add your disulfide bridges, add those calls to patch() to the special_patches() method instead.
Note that restraints created in special_restraints() are *added* to the list of all restraints; they don't replace existing restraints. So, if there is a conflict between your restraints and the default set of restraints, Modeller will not be able to satisfy them. In your case, this effect will actually be at its most pronounced, because you have a 100% identical template, so the template-derived restraints will be extremely strong. Secondary structure restraints are rather weak, so they're only likely to work in regions of the structure where you have low sequence identity (or no template at all).
Ben Webb, Modeller Caretaker
participants (2)
-
Modeller Caretaker
-
Offord, Victoria