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

Re: [modeller_usage] modelling multiple loops



David L. Bostick wrote:
I have searched the archives of the discussion forum for this and found a
few questions, but no answers.  I wish to impart the template structure to
a sequence exactly, and select only the loops for refinement. I am using
modeller 7v7, and have not switched to 8 yet.  I would be interested in
ways to do this for both versions, but most interested in 7v7.

You can use TOP scripts with both Modeller 7v7 and Modeller 8.

SUBROUTINE ROUTINE = 'select_atoms'
 PICK_ATOMS SELECTION_SEGMENT='100:' '105:', SELECTION_SEARCH='segment', ;
             PICK_ATOMS_SET=1, RES_TYPES='all', ATOM_TYPES='all', ;
             SELECTION_FROM='all', SELECTION_STATUS='initialize'
  RETURN
END_SUBROUTINE

but I have no idea how to extend this to do multiple loop modelling all at
the same time... i.e. segment 100-105, 158-164, 200-206, etc...  all at
once.

First, you use select_loop_atoms, not select_atoms, for loop refinement.

You can simply call PICK_ATOMS multiple times; every time after the first, set SELECTION_STATUS to 'add':

SUBROUTINE ROUTINE = 'select_loop_atoms'
 PICK_ATOMS SELECTION_SEGMENT='100:' '105:', ;
            SELECTION_SEARCH='segment', PICK_ATOMS_SET=1, ;
            RES_TYPES='all', ATOM_TYPES='all', ;
            SELECTION_FROM='all', SELECTION_STATUS='initialize'
 PICK_ATOMS SELECTION_SEGMENT='158:' '164:', ;
            SELECTION_SEARCH='segment', PICK_ATOMS_SET=1, ;
            RES_TYPES='all', ATOM_TYPES='all', ;
            SELECTION_FROM='all', SELECTION_STATUS='add'
 PICK_ATOMS SELECTION_SEGMENT='200:' '206:', ;
            SELECTION_SEARCH='segment', PICK_ATOMS_SET=1, ;
            RES_TYPES='all', ATOM_TYPES='all', ;
            SELECTION_FROM='all', SELECTION_STATUS='add'
 RETURN
END_SUBROUTINE

...and so on. For Python with Modeller 8v1, use the loop.py example at
http://salilab.org/modeller/manual/node33.html as your base and use a select_loop_atoms routine similar to the following:

def select_loop_atoms(self):
  stat = 'INITIALIZE'
  for segs in (('100:', '105:'), ('158:', '164:'),
               ('200:', '206:')):
    self.pick_atoms(selection_segment=segs,
                    selection_search='segment',
                    pick_atoms_set=1,
                    res_types='all',
                    atom_types='all',
                    selection_from='all',
                    selection_status=stat)
    stat = 'ADD'

	Ben Webb, Modeller Caretaker
--
             http://www.salilab.org/modeller/
Modeller mail list: http://salilab.org/mailman/listinfo/modeller_usage