[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [modeller_usage] Error message: attempting superposition based on a subset of positions



I was able to determine the source of the error: I had to specify the chain:

atmsel = selection(mdl1.residue_range('19:L', '23:L'), mdl1.residue_range('35:L', '39:L')).only_atom_types('CA')

The initial set of examples on http://salilab.org/modeller/manual/node216.html showed only residue selections, but the later examples included the format listed above. I humbly withdraw my question.

Jake

On Fri, Apr 18, 2008 at 4:47 PM, Jake Gunn-Glanville <">> wrote:
I have an input alignment, two structures, and a subset of residues I would like to use to perform a superposition. When I perform the superposition using all residues in the alignment I am successful. However, when I attempt to perform the superposition using a subset, I get error messages:

The script:

from modeller import *
env = environ()
log.very_verbose()
env.io.atom_files_directory = '.'
aln = alignment(env, file='reference.1dlf_L.pir', align_codes=('1ck0', '1dlf'))
mdl1 = model(env, file='1ck0', model_segment=aln['1ck0'].range)
mdl2 = model(env, file='1dlf', model_segment=aln['1dlf'].range)
atmsel = selection(mdl1.residue_range('19', '23'), mdl1.residue_range('35', '39'))
r = atmsel.superpose(mdl2, aln)
mdl2.write(file='1dlf.subset.pdb')

The alignment:
>P1;1ck0
structureX:1ck0:FIRST:L:LAST:L:Ab:species::
DIQLTQSPS-SLAVSAGEKVTMNCKSSQNLLHSITR--KNYLAWYRQKPGQSPKLLIYW---ASTRGSGVPDRFTGSGSGTDFTLTISSVQAEDLAVYYC---KQSYNL-YTFGGGTKLEIKRADAAPTVSIFPPSSEQLTSGGASVVCFLNNFYPKDINVKWKIDGSERQNGVLNSWTDQDSKDSTYSMSSTLTLTKDEYERHNSYTCEATHKTSTSPIVKSFNR
*
>P1;1dlf
structureX:1dlf:FIRST:L:LAST:L:Ab:species::
DVVMTQ-TPLSLPVSLGNQASISCRSSQS---LVHSNGNTYLHWYLQKPGQSPKLLIYK---VSNRFSGVPDRFSGSGSGTDFTLKISRVEAEDLGVYFC---SQSTHVPFTFGSGTKLEIKR-------------------------------------------------------------------------------------------------------
*

The Error:

Traceback (most recent call last):
  File "modelscript.1ck0.1dlf.py", line 10, in ?
    atmsel = selection(mdl1.residue_range('19', '23'), mdl1.residue_range('35', '39'))
  File "/usr/lib/modeller9v3/modlib/modeller/coordinates.py", line 71, in residue_range
    start = self.residues[start]._num
  File "/usr/lib/modeller9v3/modlib/modeller/coordinates.py", line 198, in __getitem__
    (self.offset, self.length, self.suffix))
  File "/usr/lib/modeller9v3/modlib/modeller/util/modutil.py", line 19, in handle_seq_indx
    int_indx = lookup_func(*args)
  File "/usr/lib/modeller9v3/modlib/modeller/coordinates.py", line 56, in _indxres
    raise KeyError("No such residue: %s" % indx)
KeyError: 'No such residue: 19'