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