PDBeurope / arpeggio

Calculation of interatomic interactions in molecular structures

Home Page:http://biosig.unimelb.edu.au/arpeggioweb/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Arpeggio crashing for low occupancy ligands

JavierSanchez-Utges opened this issue · comments

I have been having issues with some structures and realised the common element between all of them is the presence of low-occupancy ligands. This is not even a multiple altloc problem, I think, because I removed them and kept only the highest ones, however, the problem still remains. Here are some examples:

7adw_bio.cif -s /E/504/ /EA/504/

7tiy_bio.cif -s /B/401/ /BA/401/

7aol_bio.cif -s /D/403/ /DA/403/

7aga_bio.cif -s /B/401/ /BA/401/

7lzz_bio.cif -s /B/401/ /BA/401/ /C/402/ /CA/402/

7lzt_bio.cif -s /C/402/ /CA/402/ /D/403/ /DA/403/

7ap6_bio.cif -s /B/401/ /BA/401/

7aws_bio.cif -s /B/401/ /BA/401/

7mng_bio.cif -s /B/401/ /BA/401/

The _bio.cif is how I name the preferred assemblies for each PDB, see selections are included as well. This issue is related to this older one: harryjubb/arpeggio#7 , which I think was solved by using the clean_pdb.py script. I think this script only works with PDB and not CIF format.

I think they are related as the problem seems to be the same: the mapping between OB atoms and BioPython atoms crashes. The atom that crashes the mapping is the first ligand atom with occupancy < 1.0, and this happens because it is not on the serial_to_bio dictionary nor in the self.s_atoms iterator.

This is the command I ran:

python pdbe-arpeggio 7mng_bio.cif -s /B/401/ /BA/401/ -o ./arpeggio

Here is the traceback for reference:

Traceback (most recent call last):
  File "arpeggio/core/interactions.py", line 2007, in _establish_structure_mappping
    biopython_atom = serial_to_bio[serial]
KeyError: 4925

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "pdbe-arpeggio", line 8, in <module>
    sys.exit(main())
  File "arpeggio/scripts/process_protein_cli.py", line 150, in main
    run_arpeggio(args)
  File "arpeggio/scripts/process_protein_cli.py", line 159, in run_arpeggio
    i_complex = InteractionComplex(
  File "arpeggio/core/interactions.py", line 96, in __init__
    self._establish_structure_mappping()
  File "arpeggio/core/interactions.py", line 2012, in _establish_structure_mappping
    raise OBBioMatchError(serial)
arpeggio.core.exceptions.OBBioMatchError: 4925

Many thanks!