Hi,

I am working on a decameric protein and want to create disulfide bridge between cysteines of adjacent monomers. I used the following script (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['14:A'],
                                                  self.residues['44:D']))

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  = 'twochain.ali',     # alignment filename
            knowns   = 'em',              # codes of the templates
            sequence = 'query')              # 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



First I tried making only one hydrogen bond between residue 14 of chain A and 44 of chain D but I am getting the following errors:-

H:\Modeller9.13\examples\automodel\Lysine Decarboxylase>mod9.13 model-disulfide.
py
'import site' failed; use -v for traceback
Traceback (most recent call last):
  File "model-disulfide.py", line 26, in ?
    a.make()                            # do the actual homology modeling
  File "H:\Modeller9.13\modlib\modeller\automodel\automodel.py", line 97, in mak
e
    self.homcsr(exit_stage)
  File "H:\Modeller9.13\modlib\modeller\automodel\automodel.py", line 436, in ho
mcsr
    self.make_initial_model(aln)
  File "H:\Modeller9.13\modlib\modeller\automodel\automodel.py", line 450, in ma
ke_initial_model
    self.generate_method(self, aln)
  File "H:\Modeller9.13\modlib\modeller\automodel\generate.py", line 39, in tran
sfer_xyz
    mdl.create_topology(aln)
  File "H:\Modeller9.13\modlib\modeller\automodel\automodel.py", line 677, in cr
eate_topology
    self.special_patches(aln)
  File "model-disulfide.py", line 10, in special_patches
    self.patch(residue_type='DISU', residues=(self.residues['14:A'],
  File "H:\Modeller9.13\modlib\modeller\coordinates.py", line 254, in __getitem_
_
    (self.offset, self.length, self.suffix))
  File "H:\Modeller9.13\modlib\modeller\util\modutil.py", line 23, in handle_seq
_indx
    int_indx = lookup_func(*args)
  File "H:\Modeller9.13\modlib\modeller\coordinates.py", line 318, in _indxres
    raise KeyError("No such residue: %s" % indx)
KeyError: 'No such residue: 44:D'


I even tried giving the residue information as: 14:A and 44:D, but still I am getting the same error (as above).

Just to inform you further my template does not have cysteines for the formation of disulfide bridges, so I also generated a mutant with cysteines and tried the patch.py script:

from modeller import *
from modeller.scripts import complete_pdb

env = environ()
env.io.atom_files_directory = ['../atom_files']
env.libs.topology.read(file='$(LIB)/top_heav.lib')
env.libs.parameters.read(file='$(LIB)/par.lib')

# Create the disulfide bond:
def patches(mdl):
    mdl.patch(residue_type='DISU', residues=(mdl.residues['14:A'],
                                             mdl.residues['44:D']))
# Read the sequence:
code = 'em-2.pdb'
mdl = complete_pdb(env, code, special_patches=patches)

# Create the stereochemical restraints
sel = selection(mdl)
mdl.restraints.make(sel, restraint_type='stereo', spline_on_site=False)

# Calculate the energy to test the disulfide:
sel.energy()


This is the error I got:


H:\Modeller9.13\examples\automodel\Lysine Decarboxylase>mod9.13 patch.py
'import site' failed; use -v for traceback
Traceback (most recent call last):
  File "patch.py", line 19, in ?
    mdl = complete_pdb(env, code, special_patches=patches)
  File "H:\Modeller9.13\modlib\modeller\scripts\complete_pdb.py", line 39, in co
mplete_pdb
    special_patches(mdl)
  File "patch.py", line 15, in patches
    mdl.patch(residue_type='DISU', residues=(mdl.residues['14:A'],
  File "H:\Modeller9.13\modlib\modeller\coordinates.py", line 254, in __getitem_
_
    (self.offset, self.length, self.suffix))
  File "H:\Modeller9.13\modlib\modeller\util\modutil.py", line 23, in handle_seq
_indx
    int_indx = lookup_func(*args)
  File "H:\Modeller9.13\modlib\modeller\coordinates.py", line 318, in _indxres
    raise KeyError("No such residue: %s" % indx)
KeyError: 'No such residue: 44:D'

Can anybody help me in this regard?


Monu