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