#17890 closed defect (fixed)
Foldseek: index is out of bounds
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Structure Comparison | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: macOS-13.6-arm64-arm-64bit
ChimeraX Version: 1.10rc202505310246 (2025-05-31 02:46:39 UTC)
Description
This happens with certain PDB's on the similarity search.
Log:
UCSF ChimeraX version: 1.10rc202505310246 (2025-05-31)
© 2016-2025 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open 8g33 fromDatabase pdb format mmcif
8g33 title:
Activated form of a CDCL long protein [more info...]
Chain information for 8g33 #1
---
Chain | Description | UniProt
A | Hemolysin | A0A1T3IZT7_9FLAO 24-516
> ui tool show "Similar Structures"
> foldseek /A
Found 49 similar structures to 8g33 #1/A in pdb database using foldseek, name
fs1
> foldseek /A database afdb50
Found 1000 similar structures to 8g33 #1/A in afdb database using foldseek,
name fs2
> close #1
> open 7n52 fromDatabase pdb format mmcif
Summary of feedback from opening 7n52 fetched from pdb
---
note | Fetching compressed mmCIF 7n52 from http://files.rcsb.org/download/7n52.cif
7n52 title:
Structure of a bacterial gasdermin from Runella zeae [more info...]
Chain information for 7n52 #1
---
Chain | Description
A B C D | Gasdermin
7n52 mmCIF Assemblies
---
1| author_defined_assembly
2| author_defined_assembly
3| author_defined_assembly
4| author_defined_assembly
> foldseek /A database afdb50
Found 1000 similar structures to 7n52 #1/A in afdb database using foldseek,
name fs1
Traceback (most recent call last):
File
"/Applications/ChimeraX-1.10-rc2025.06.03.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/core/triggerset.py", line 149, in invoke
return self._func(self._name, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/Applications/ChimeraX-1.10-rc2025.06.03.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/similarstructures/foldseek_search.py", line 215, in <lambda>
lambda *args, q=result_queue: self._check_for_results_from_thread(q))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/Applications/ChimeraX-1.10-rc2025.06.03.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/similarstructures/foldseek_search.py", line 238, in
_check_for_results_from_thread
self.report_results(r)
File
"/Applications/ChimeraX-1.10-rc2025.06.03.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/similarstructures/foldseek_search.py", line 94, in
report_results
show_similar_structures_table(self.session, results)
File
"/Applications/ChimeraX-1.10-rc2025.06.03.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/similarstructures/gui.py", line 497, in
show_similar_structures_table
ssp.show_results(results)
File
"/Applications/ChimeraX-1.10-rc2025.06.03.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/similarstructures/gui.py", line 261, in show_results
results.compute_rmsds(self.alignment_cutoff_distance)
File
"/Applications/ChimeraX-1.10-rc2025.06.03.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/similarstructures/simstruct.py", line 206, in compute_rmsds
p, rms, npairs = align_xyz_transform(hxyz[hi], query_xyz[qi],
~~~~~~~~~^^^^
IndexError: index 249 is out of bounds for axis 0 with size 249
Error processing trigger "new frame":
IndexError: index 249 is out of bounds for axis 0 with size 249
File
"/Applications/ChimeraX-1.10-rc2025.06.03.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/similarstructures/simstruct.py", line 206, in compute_rmsds
p, rms, npairs = align_xyz_transform(hxyz[hi], query_xyz[qi],
~~~~~~~~~^^^^
See log for complete Python traceback.
OpenGL version: 4.1 Metal - 83.1
OpenGL renderer: Apple M1 Max
OpenGL vendor: Apple
Python: 3.11.4
Locale: UTF-8
Qt version: PyQt6 6.8.1, Qt 6.8.2
Qt runtime version: 6.8.2
Qt platform: cocoa
Hardware:
Hardware Overview:
Model Name: Mac Studio
Model Identifier: Mac13,1
Model Number: Z14J0006UX/A
Chip: Apple M1 Max
Total Number of Cores: 10 (8 performance and 2 efficiency)
Memory: 32 GB
System Firmware Version: 10151.1.1
OS Loader Version: 8422.141.2
Software:
System Software Overview:
System Version: macOS 13.6 (22G120)
Kernel Version: Darwin 22.6.0
Time since boot: 14 days, 11 hours, 23 minutes
Graphics/Displays:
Apple M1 Max:
Chipset Model: Apple M1 Max
Type: GPU
Bus: Built-In
Total Number of Cores: 24
Vendor: Apple (0x106b)
Metal Support: Metal 3
Displays:
PHL 273B9:
Resolution: 1920 x 1080 (1080p FHD - Full High Definition)
UI Looks like: 1920 x 1080 @ 75.00Hz
Main Display: Yes
Mirror: Off
Online: Yes
Rotation: Supported
Installed Packages:
alabaster: 1.0.0
appdirs: 1.4.4
appnope: 0.1.4
asttokens: 3.0.0
auditwheel: 6.4.0
babel: 2.17.0
beautifulsoup4: 4.13.3
blockdiag: 3.0.0
blosc2: 3.3.4
build: 1.2.2.post1
certifi: 2023.11.17
cftime: 1.6.4.post1
charset-normalizer: 3.4.2
ChimeraX-AddCharge: 1.5.18
ChimeraX-AddH: 2.2.7
ChimeraX-AlignmentAlgorithms: 2.0.2
ChimeraX-AlignmentHdrs: 3.6.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.20.1
ChimeraX-AlphaFold: 1.0.1
ChimeraX-AltlocExplorer: 1.1.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Aniso: 1.1.4
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.60.7
ChimeraX-AtomicLibrary: 14.1.18
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.4
ChimeraX-BasicActions: 1.1.3
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 3.0.0
ChimeraX-Boltz: 1.0
ChimeraX-BondRot: 2.0.4
ChimeraX-BugReporter: 1.0.2
ChimeraX-BuildStructure: 2.13.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.5.1
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.4
ChimeraX-ChangeChains: 1.1
ChimeraX-CheckWaters: 1.5
ChimeraX-ChemGroup: 2.0.2
ChimeraX-Clashes: 2.3
ChimeraX-ColorActions: 1.0.5
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.8
ChimeraX-CommandLine: 1.3
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.10rc202505310246
ChimeraX-CoreFormats: 1.2
ChimeraX-coulombic: 1.4.5
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.4
ChimeraX-Dicom: 1.2.7
ChimeraX-DistMonitor: 1.4.2
ChimeraX-DockPrep: 1.1.4
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ESMFold: 1.0
ChimeraX-FileHistory: 1.0.1
ChimeraX-FunctionKey: 1.0.1
ChimeraX-Geometry: 1.3
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.4.1
ChimeraX-Hbonds: 2.5.1
ChimeraX-Help: 1.3
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.3
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-IUPAC: 1.0
ChimeraX-KVFinder: 1.6.2
ChimeraX-Label: 1.1.14
ChimeraX-ListInfo: 1.2.2
ChimeraX-Log: 1.2
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.9.1
ChimeraX-Map: 1.3
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0.1
ChimeraX-MapFilter: 2.0.1
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1.1
ChimeraX-Markers: 1.0.1
ChimeraX-Mask: 1.0.2
ChimeraX-MatchMaker: 2.2.1
ChimeraX-MCopy: 1.0
ChimeraX-MDcrds: 2.10.1
ChimeraX-MedicalToolbar: 1.1
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.16
ChimeraX-MMTF: 2.2
ChimeraX-ModelArchive: 1.0
ChimeraX-Modeller: 1.5.19
ChimeraX-ModelPanel: 1.5.1
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0.3
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.2
ChimeraX-MouseModes: 1.2
ChimeraX-Movie: 1.0
ChimeraX-MutationScores: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nifti: 1.2
ChimeraX-NMRSTAR: 1.0.2
ChimeraX-NRRD: 1.2
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.14.1
ChimeraX-OrthoPick: 1.0.1
ChimeraX-PDB: 2.7.10
ChimeraX-PDBBio: 1.0.1
ChimeraX-PDBLibrary: 1.0.4
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1.3
ChimeraX-ProfileGrids: 1.1.2
ChimeraX-PubChem: 2.2
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.2
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.6.3
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.3.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 4.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5.1
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0.3
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-Segmentations: 3.5.7
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.17.1
ChimeraX-Shape: 1.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.2.1
ChimeraX-ShowSequences: 1.0.3
ChimeraX-SideView: 1.0.1
ChimeraX-SimilarStructures: 1.0.1
ChimeraX-Smiles: 2.1.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.19.1
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.2.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.5.2
ChimeraX-TapeMeasure: 1.0
ChimeraX-TaskManager: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.2.3
ChimeraX-ToolshedUtils: 1.2.4
ChimeraX-Topography: 1.0
ChimeraX-ToQuest: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.45.1
ChimeraX-Umap: 1.0
ChimeraX-uniprot: 2.3.1
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.4.4
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-vrml: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.2
ChimeraX-WebServices: 1.1.5
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.2.2
contourpy: 1.3.2
coverage: 7.8.2
cxservices: 1.2.3
cycler: 0.12.1
Cython: 3.0.12
debugpy: 1.8.14
decorator: 5.2.1
docutils: 0.21.2
executing: 2.2.0
filelock: 3.18.0
fonttools: 4.58.1
funcparserlib: 2.0.0a0
glfw: 2.9.0
grako: 3.16.5
h5py: 3.13.0
html2text: 2024.2.26
idna: 3.10
ihm: 2.2
imagecodecs: 2024.6.1
imagesize: 1.4.1
iniconfig: 2.1.0
ipykernel: 6.29.5
ipython: 8.26.0
ipywidgets: 8.1.7
jedi: 0.19.1
Jinja2: 3.1.6
jupyter_client: 8.6.3
jupyter_core: 5.8.1
jupyterlab_widgets: 3.0.15
kiwisolver: 1.4.8
line_profiler: 4.2.0
lxml: 5.3.1
lz4: 4.4.4
MarkupSafe: 3.0.2
matplotlib: 3.10.1
matplotlib-inline: 0.1.7
msgpack: 1.1.0
ndindex: 1.10.0
nest-asyncio: 1.6.0
netCDF4: 1.6.5
networkx: 3.3
nibabel: 5.2.0
nptyping: 2.5.0
numexpr: 2.10.2
numpy: 1.26.4
OpenMM: 8.2.0
openvr: 1.26.701
packaging: 24.2
ParmEd: 4.2.2
parso: 0.8.4
pep517: 0.13.1
pexpect: 4.9.0
pickleshare: 0.7.5
pillow: 10.4.0
pip: 25.0.1
pkginfo: 1.11.1
platformdirs: 4.3.8
pluggy: 1.6.0
prompt_toolkit: 3.0.51
psutil: 7.0.0
ptyprocess: 0.7.0
pure_eval: 0.2.3
py-cpuinfo: 9.0.0
pycollada: 0.8
pydicom: 2.4.4
pyelftools: 0.32
Pygments: 2.18.0
pynmrstar: 3.3.5
pynrrd: 1.0.0
PyOpenGL: 3.1.9
PyOpenGL-accelerate: 3.1.9
pyopenxr: 1.1.4501
pyparsing: 3.2.3
pyproject_hooks: 1.2.0
PyQt6-commercial: 6.8.1
PyQt6-Qt6: 6.8.2
PyQt6-WebEngine-commercial: 6.8.0
PyQt6-WebEngine-Qt6: 6.8.2
PyQt6_sip: 13.10.0
pytest: 8.4.0
pytest-cov: 6.1.1
python-dateutil: 2.9.0.post0
pytz: 2025.2
pyzmq: 26.4.0
qtconsole: 5.5.2
QtPy: 2.4.3
qtshim: 1.1
RandomWords: 0.4.0
requests: 2.32.3
roman-numerals-py: 3.1.0
scipy: 1.14.0
setuptools: 78.1.0
sfftk-rw: 0.8.1
six: 1.16.0
snowballstemmer: 3.0.1
sortedcontainers: 2.4.0
soupsieve: 2.7
Sphinx: 8.2.3
sphinx-autodoc-typehints: 3.1.0
sphinxcontrib-applehelp: 2.0.0
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 2.0.0
sphinxcontrib-htmlhelp: 2.1.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 2.0.0
sphinxcontrib-serializinghtml: 2.0.0
stack-data: 0.6.3
superqt: 0.7.1
tables: 3.10.2
tcia_utils: 1.5.1
tifffile: 2025.3.13
tinyarray: 1.2.4
tornado: 6.5.1
traitlets: 5.14.3
typing_extensions: 4.14.0
tzdata: 2025.2
urllib3: 2.4.0
wcwidth: 0.2.13
webcolors: 24.11.1
wheel: 0.45.1
wheel-filename: 1.4.2
widgetsnbextension: 4.0.14
Change History (5)
comment:1 by , 5 months ago
| Component: | Unassigned → Structure Comparison |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Foldseek: index is out of bounds |
comment:2 by , 5 months ago
comment:4 by , 5 months ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed.
I updated ChimeraX to assume new Foldseek server results include all amino acids. Also made it still handle old saved foldseek results (ChimeraX .sms files) with the former exclusion of unknown non-standard residues. What a mess.
comment:5 by , 5 months ago
Thank you. I appreciate the effort.
Kind regards
Michelle
\ufeffOn 5/6/2025, 9:39 am, "ChimeraX" <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
External email: Please exercise caution
#17890: Foldseek: index is out of bounds
-------------------------------------------+-------------------------
Reporter: michelle.christie@\u2026 | Owner: Tom Goddard
Type: defect | Status: closed
Priority: normal | Milestone:
Component: Structure Comparison | Version:
Resolution: fixed | Keywords:
Blocked By: | Blocking:
Notify when closed: | Platform: all
Project: ChimeraX |
-------------------------------------------+-------------------------
Changes (by Tom Goddard):
* resolution: => fixed
* status: assigned => closed
Comment:
Fixed.
I updated ChimeraX to assume new Foldseek server results include all amino
acids. Also made it still handle old saved foldseek results (ChimeraX
.sms files) with the former exclusion of unknown non-standard residues.
What a mess.
--
Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/17890#comment:4>
ChimeraX <https://www.rbvi.ucsf.edu/chimerax>
ChimeraX Issue Tracker
Note:
See TracTickets
for help on using tickets.
This error is because the P1L residue in 7n52 used to be ignored by Foldseek as an unknown non-standard residue but newer Foldseek does not ignore it. ChimeraX had a table of the residue Foldseek ignored which is now incorrect.
It appears that the Foldseek server was updated to use a newer Foldseek which includes this code change from Nov 28, 2024 that changes the Foldseek's treatment of non-standard amino acids:
https://github.com/steineggerlab/foldseek/commit/b43e63d7a0b5a0d5efec68bdc80d6bf75d70b364#diff-7439cb9223589a676dcecf46f13b18f061310b1b79f36def6094a356cbfa7241
My reading of this change is that while before Foldseek excluded from the sequence and search any amino acids not recognized by GemmiWrapper. GemmiWrapper had a list of 69 3-letter residue codes it accepted. ChimeraX used that list to interpret the sequence alignments returned by foldseek. After the above change all amino acid residues are used if they are part of atom or hetatm records and are either polymer or unknown entity types. I suspect this means all amino acids in the query will be used now. I'm not sure because I don't know how the Gemmi library determines entity type.