David L. Bostick wrote:
I have a few follow-up questions. I will enumerate them for clarity: 1) does select_loop_atoms use template-derived restraints if they are available?
No - only the statistical potential is used. Loops generally have no usable template information anyway.
2) does it also use secondary structure restraints if they are defined.. i.e.: SUBROUTINE ROUTINE = 'special_restraints' SET ADD_RESTRAINTS = on MAKE_RESTRAINTS RESTRAINT_TYPE = 'alpha', RESIDUE_IDS = '153' '162' RETURN END_SUBROUTINE
Yes. special_patches is also called, if defined.
3) when I have used select_loopo_atoms in the past, often the loops look "over-refined" as if they don't fit into the context of the protein. Is it possible that I'm using it wrong? ... or is it that the answer to (1) and (2) above is, "no."
You should build multiple loop models, and pick the 'best' one, as the procedure will often give you loops that don't look that great.
4) is it possible to pick multiple segments to refine with select_atoms as well as select_loop_atoms? I have been able to do this with select_loop_atoms, but haven't figured it out with select_atoms.
Sure; the procedure is exactly the same as shown in my previous email.
5) This is probably trivial and I'm a bit embarrassed to ask, but in the python scripts, is is possible to have multiple def statements? For example if I wanted to select atoms for loop modelling, AND impose secondary structure constraints at the same time? For example, I tried something to the effect below, but I don't believe it's correct, because I get complaints about "indentation" or something:: from modeller.automodel import * log.verbose() # Override the 'select_atoms' routine in the 'automodel' class class mymodel(automodel): # select only certain segments for refinement def select_atoms(self): self.pick_atoms(selection_segment=('100:', '103:'), selection_search='segment', pick_atoms_set=1, res_types='all', atom_types='all', selection_from='all', selection_status='initialize') self.pick_atoms(selection_segment=('154:', '177:'), selection_search='segment', pick_atoms_set=1, res_types='all', atom_types='all', selection_from='all', selection_status='add') # special restraints def special_restraints(self, aln): rsr = self.restraints # An alpha-helix: rsr.make(aln, restraint_type='ALPHA', residue_ids=('99', '102'), spline_on_site=False) rsr.make(aln, restraint_type='ALPHA', residue_ids=('153', '179'), spline_on_site=False)
Of course you can - but Python is sensitive to indentation, so you have to make sure that the 'def select_atoms' and 'def special_restraints' lines are both at the same indentation level (i.e. they have the same number of spaces before the 'def').
Ben Webb, Modeller Caretaker -- http://www.salilab.org/modeller/ Modeller mail list: http://salilab.org/mailman/listinfo/modeller_usage