Re: [modeller_usage] Disulfide bridge between residues into different monomers
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 classfrom modeller import * # Load standard Modeller classesfrom 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 outputenv = environ() # create a new MODELLER environment to build this model in # directories for input atom filesenv.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 targeta.starting_model= 1 # index of the first modela.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 tracebackTraceback (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 make self.homcsr(exit_stage) File "H:\Modeller9.13\modlib\modeller\automodel\automodel.py", line 436, in homcsr self.make_initial_model(aln) File "H:\Modeller9.13\modlib\modeller\automodel\automodel.py", line 450, in make_initial_model self.generate_method(self, aln) File "H:\Modeller9.13\modlib\modeller\automodel\generate.py", line 39, in transfer_xyz mdl.create_topology(aln) File "H:\Modeller9.13\modlib\modeller\automodel\automodel.py", line 677, in create_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 restraintssel = 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 tracebackTraceback (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 complete_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
On 12/11/2014 11:39 PM, bharat lal wrote: > I am working on a decameric protein and want to create disulfide bridge > between cysteines of adjacent monomers. ... > KeyError: 'No such residue: 44:D'
Not sure how this message could be any more clear - you don't have a residue 44 in chain D. Remember that Modeller always numbers from 1. Try building a model without any bridges and look at the output file to see the numbering.
Ben Webb, Modeller Caretaker
participants (2)
-
bharat lal
-
Modeller Caretaker