Including disulfide bridges
Keywords: manual

Next: Providing your own restraints Up: More advanced usage Previous: Refining only part of Contents Index

##
Including disulfide bridges

If there is an equivalent disulfide bridge in any of the templates aligned with the target, `automodel` will automatically generate appropriate disulfide bond restraints2.2 for you (by using the model.patch_ss_templates() command).

Explicit manual restraints can be added by the model.patch() command using the CHARMM topology file DISU patching residue. You must redefine the automodel.special_patches() routine to add these or other patches.

It is better to use model.patch_ss_templates() rather than model.patch() where possible because the dihedral angles are restrained more precisely by using the templates than by using the general rules of stereochemistry.

Some CHARMM parameter files have a multiple dihedral entry for the disulfide dihedral angle that consists of three individual entries with periodicities of 1, 2 and 3. This is why you see three feature restraints for a single disulfide in the output of the selection.energy() command.

Example: examples/automodel/model-disulfide.py

      # Homology modeling by the automodel class
      from modeller import *              # Load standard Modeller classes
      from modeller.automodel import *    # Load the automodel class

      # Redefine the special_patches routine to include the additional disulfides
      # (this routine is empty by default):
      class mymodel(automodel):
          def special_patches(self, aln):
              # A disulfide between residues 8 and 45:
              self.patch(residue_type='DISU', residues=(self.residues['8'],
                                                        self.residues['45']))

      log.verbose()    # request verbose output
      env = environ()  # create a new MODELLER environment to build this model in

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

      a = mymodel(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.make()                            # do the actual homology modeling

Next: Providing your own restraints Up: More advanced usage Previous: Refining only part of Contents Index