[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [modeller_usage] modelling multiple loops



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