next up previous contents index
Next: Comparative modeling class reference Up: More advanced usage Previous: Fully automated alignment and   Contents   Index


Loop optimization

The new loop optimization method relies on a scoring function and optimization schedule adapted for loop modeling [Fiser et al., 2000]. It is used automatically to refine comparative models if you use the loopmodel class rather than automodel; see the example below.

Example: examples/automodel/model-loop.py


# Homology modelling by the automodel class

from modeller.automodel import *    # Load the automodel class

log.verbose()
env = environ()

# directories for input atom files
env.io.atom_files_directory = './:../atom_files'

a = loopmodel(env,
              alnfile  = 'alignment.ali',     # alignment filename
              knowns   = '5fd1',              # codes of the templates
              sequence = '1fdx')              # code of the target
a.starting_model= 1                 # index of the first model 
a.ending_model  = 1                 # index of the last model
                                    # (determines how many models to calculate)
a.md_level = None                   # No refinement of model

a.loop.starting_model = 1           # First loop model
a.loop.ending_model   = 4           # Last loop model
a.loop.md_level       = refine.fast # Loop model refinement level

a.make()                            # do homology modelling

After generating the standard model(s), a number of loop models are generated for each model, from loopmodel.loop.starting_model to loopmodel.loop.ending_model. Each loop model is written out with the .BL extension. See section 6.5 for more information.

The loopmodel class can also be used to refine a region of an existing PDB file, without comparative modeling, as in the example below. Note that this example also redefines the loopmodel.select_loop_atoms routine. This is necessary in this case, as the default selection selects all gaps in the alignment for refinement, and in this case no alignment is available. You can also redefine this routine in the above case if you want to select a different region for optimization.

Example: examples/automodel/loop.py


# Loop refinement of an existing model

from modeller.automodel import *

log.verbose()
env = environ()

# directories for input atom files
env.io.atom_files_directory = './:../atom_files'

# Create a new class based on 'loopmodel' so that we can redefine
# select_loop_atoms (necessary)
class myloop(loopmodel):
    # This routine picks the residues to be refined by loop modeling
    def select_loop_atoms(self):
        # 4 residue insertion (1st loop)
        self.pick_atoms(selection_segment=('19:', '28:'),
                        selection_status='INITIALIZE')

m = myloop(env,
           inimodel='1fdx.B99990001.pdb', # initial model of the target
           sequence='1fdx')               # code of the target

m.loop.starting_model= 20           # index of the first loop model 
m.loop.ending_model  = 23           # index of the last loop model
m.loop.md_level = refine.very_fast  # loop refinement method

m.make()


next up previous contents index
Next: Comparative modeling class reference Up: More advanced usage Previous: Fully automated alignment and   Contents   Index
Ben Webb 2006-02-28