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!