biotite-dev / biotite

A comprehensive library for computational molecular biology
https://www.biotite-python.org
BSD 3-Clause "New" or "Revised" License
641 stars 101 forks source link

Issue retrieving residue info for 3UQ #578

Closed xvlaurent closed 4 months ago

xvlaurent commented 4 months ago

Hello!

When I try to retrieve infos for residue '3UQ' using residue(res_name), I have the following issue:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/ubuntu/.pyenv/versions/3.11.5/envs/bump/lib/python3.11/site-packages/biotite/structure/info/atoms.py", line 75, in residue
    component = get_component(get_ccd(), res_name=res_name)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/.pyenv/versions/3.11.5/envs/bump/lib/python3.11/site-packages/biotite/structure/io/pdbx/convert.py", line 1067, in get_component
    atom_i = np.where(array.atom_name == atom1)[0][0]
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: index 0 is out of bounds for axis 0 with size 0

maybe an issue with the bundeled component.bcif?

Thanks for your work!

padix-key commented 4 months ago

Hi, I checked the entry in the CCD. The problem is that coordinates are missing for some atoms.

_chem_comp_atom.comp_id
_chem_comp_atom.atom_id
_chem_comp_atom.alt_atom_id
_chem_comp_atom.type_symbol
_chem_comp_atom.charge
_chem_comp_atom.pdbx_align
_chem_comp_atom.pdbx_aromatic_flag
_chem_comp_atom.pdbx_leaving_atom_flag
_chem_comp_atom.pdbx_stereo_config
_chem_comp_atom.model_Cartn_x
_chem_comp_atom.model_Cartn_y
_chem_comp_atom.model_Cartn_z
_chem_comp_atom.pdbx_model_Cartn_x_ideal
_chem_comp_atom.pdbx_model_Cartn_y_ideal
_chem_comp_atom.pdbx_model_Cartn_z_ideal
_chem_comp_atom.pdbx_component_atom_id
_chem_comp_atom.pdbx_component_comp_id
_chem_comp_atom.pdbx_ordinal
3UQ  RU   RU   RU  1  0  N  N  N  7.967  2.989  2.658  ?  ?  ?  RU   3UQ   1  
3UQ  CC1  CC1  C   0  1  Y  N  N  7.247  2.427  4.665  ?  ?  ?  CC1  3UQ   2  
3UQ  CC2  CC2  C   0  1  Y  N  N  8.155  3.525  4.783  ?  ?  ?  CC2  3UQ   3  
3UQ  CC3  CC3  C   0  1  Y  N  N  7.601  4.638  4.070  ?  ?  ?  CC3  3UQ   4  
3UQ  CC4  CC4  C   0  1  Y  N  N  6.134  2.862  3.880  ?  ?  ?  CC4  3UQ   5  
3UQ  CC5  CC5  C   0  1  Y  N  N  6.350  4.227  3.513  ?  ?  ?  CC5  3UQ   6  
3UQ  CA1  CA1  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA1  3UQ   7  
3UQ  CA2  CA2  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA2  3UQ   8  
3UQ  CA3  CA3  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA3  3UQ   9  
3UQ  CA4  CA4  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA4  3UQ  10  
3UQ  CA5  CA5  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA5  3UQ  11  
3UQ  CA6  CA6  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA6  3UQ  12  
3UQ  CA7  CA7  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA7  3UQ  13  
3UQ  CA8  CA8  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA8  3UQ  14  
3UQ  CA9  CA9  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA9  3UQ  15  
3UQ  CA0  CA0  C   0  1  Y  Y  N      ?      ?      ?  ?  ?  ?  CA0  3UQ  16  
3UQ  HC1  HC1  H   0  1  N  N  N  7.482  1.380  4.908  ?  ?  ?  HC1  3UQ  17  
3UQ  HC2  HC2  H   0  1  N  N  N  9.194  3.454  5.136  ?  ?  ?  HC2  3UQ  18  
3UQ  HC3  HC3  H   0  1  N  N  N  8.151  5.549  3.792  ?  ?  ?  HC3  3UQ  19  
3UQ  HC4  HC4  H   0  1  N  N  N  5.385  2.197  3.425  ?  ?  ?  HC4  3UQ  20  
3UQ  HC5  HC5  H   0  1  N  N  N  5.794  4.770  2.735  ?  ?  ?  HC5  3UQ  21  
3UQ  HA1  HA1  H   0  1  N  Y  N      ?      ?      ?  ?  ?  ?  HA1  3UQ  22  
3UQ  HA2  HA2  H   0  1  N  Y  N      ?      ?      ?  ?  ?  ?  HA2  3UQ  23  
3UQ  HA3  HA3  H   0  1  N  Y  N      ?      ?      ?  ?  ?  ?  HA3  3UQ  24  
3UQ  HA4  HA4  H   0  1  N  Y  N      ?      ?      ?  ?  ?  ?  HA4  3UQ  25  
3UQ  HA7  HA7  H   0  1  N  Y  N      ?      ?      ?  ?  ?  ?  HA7  3UQ  26  
3UQ  HA8  HA8  H   0  1  N  Y  N      ?      ?      ?  ?  ?  ?  HA8  3UQ  27  
3UQ  HA9  HA9  H   0  1  N  Y  N      ?      ?      ?  ?  ?  ?  HA9  3UQ  28  
3UQ  HA0  HA0  H   0  1  N  Y  N      ?      ?      ?  ?  ?  ?  HA0  3UQ  29  

For this reason the compiled components.bcif omits the residue. So it is correct behavior, that it does not work. However, the error message is not very meaningful due to a bug in a check. I created a fix for that.

padix-key commented 4 months ago

Thanks for reporting!