Opened 3 years ago
Closed 3 years ago
#8010 closed defect (can't reproduce)
Image stack:tuple index out of range
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Volume Data | Version: | |
| Keywords: | Cc: | Eric Pettersen | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Windows-10-10.0.19044
ChimeraX Version: 1.5rc202211091945 (2022-11-09 19:45:07 UTC)
Description
Tried to load a volume from a collection of images (pattern image_{t}_{c}_{z}.
Received error:
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map_data\imagestack\imagestack_format.py", line 90, in <listcomp> a = imread([self.paths[k] for k in klist]) IndexError: tuple index out of range
which then reported
Exception ignored in: <function Texture.__del__ at 0x000001897FD49430> Traceback (most recent call last): File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\graphics\opengl.py", line 3034, in __del__ raise OpenGLError('OpenGL texture was not deleted before graphics.Texture destroyed') chimerax.graphics.opengl.OpenGLError: OpenGL texture was not deleted before graphics.Texture destroyed
Log:
UCSF ChimeraX version: 1.5rc202211091945 (2022-11-09)
© 2016-2022 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open z:\src\microscope_ui\chimerax\image_{t}_{c}.tiff
Opened multichannel map series image_{t}_{c}.tiff as #1, 3 channels, 57 images
per channel, grid size 10100,3,1, pixel 1, shown at step 1, values uint8
> volume #1.1.1 level 163,0 level 180,0.8 level 191,1
> volume #1.1.1 level 80.01,0 level 180,0.8 level 191,1
> volume #1.2.1 level 201,0 level 219,0.8 level 225,1
> volume #1.2.1 level 93.23,0.03077 level 219,0.8 level 225,1
> volume #1.3.1 level 213,0 level 231,0.8 level 238,1
> volume #1.3.1 level 101.6,0 level 231,0.8 level 238,1
> close all
> open z:\src\microscope_ui\chimerax\image_{t}_{c}_{z}.tiff
Opened multichannel map series image_{t}_{c}_{z}.tiff as #1, 3 channels, 19
images per channel, grid size 11300,10100,3, pixel 1, shown at step 4, values
uint8
An error occurred in drawing the scene. Redrawing graphics is now stopped to
avoid a continuous stream of error messages. To restart graphics use the
command "graphics restart" after changing the settings that caused the error.
tuple index out of range
Traceback (most recent call last):
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\updateloop.py", line 73, in draw_new_frame
view.draw(check_for_changes = False)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\graphics\view.py", line 177, in draw
self._draw_scene(camera, drawings)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\graphics\view.py", line 254, in _draw_scene
draw_transparent(r, transparent_drawings)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\graphics\drawing.py", line 1543, in draw_transparent
r.draw_transparent(
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\graphics\opengl.py", line 1252, in draw_transparent
draw()
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\graphics\drawing.py", line 1545, in <lambda>
lambda: _draw_multiple(drawings, r, Drawing.TRANSPARENT_DRAW_PASS))
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\graphics\drawing.py", line 1551, in _draw_multiple
d.draw(renderer, draw_pass)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 773, in draw
bi.draw(renderer, draw_pass)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 1364, in draw
Image3d.draw(self, renderer, draw_pass)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 783, in draw
pd = self._update_planes(renderer)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 551, in _update_planes
pd = self._update_2d_texture_planes(view_dir)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 559, in _update_2d_texture_planes
pd = self._texture_2d_planes(axis)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 585, in _texture_2d_planes
pd = self._make_planes(axis)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 713, in _make_planes
d = Texture2dPlanes(self, axis)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 984, in __init__
self._update_textures(planes)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 1056, in _update_textures
textures = [self._plane_texture(k, axis) for k,axis in planes]
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 1056, in <listcomp>
textures = [self._plane_texture(k, axis) for k,axis in planes]
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 1063, in _plane_texture
self._fill_plane_texture(k, axis, t)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 1082, in _fill_plane_texture
data = ir._color_plane(plane, axis)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 1378, in _color_plane
dp = ir._color_plane(k, axis, color_3d=color_3d, require_color=True)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 234, in _color_plane
m = self._matrix_plane(plane, axis)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\image3d.py", line 209, in _matrix_plane
m = self._data.matrix(ijk_origin, ijk_size, ijk_step)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map_data\griddata.py", line 306, in matrix
m = self.read_matrix(ijk_origin, ijk_size, ijk_step, progress)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map_data\imagestack\imagestack_grid.py", line 48, in
read_matrix
m = s.read_matrix(ijk_origin, ijk_size, ijk_step, self.channel, progress)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map_data\imagestack\imagestack_format.py", line 106, in
read_matrix
return self.read_tiff_matrix(ijk_origin, ijk_size, ijk_step, channel,
progress)
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map_data\imagestack\imagestack_format.py", line 90, in
read_tiff_matrix
a = imread([self.paths[k] for k in klist])
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map_data\imagestack\imagestack_format.py", line 90, in
<listcomp>
a = imread([self.paths[k] for k in klist])
IndexError: tuple index out of range
Exception ignored in: <function Texture.__del__ at 0x000001897FD49430>
Traceback (most recent call last):
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\graphics\opengl.py", line 3034, in __del__
raise OpenGLError('OpenGL texture was not deleted before graphics.Texture
destroyed')
chimerax.graphics.opengl.OpenGLError: OpenGL texture was not deleted before
graphics.Texture destroyed
OpenGL version: 3.3.0 NVIDIA 516.40
OpenGL renderer: NVIDIA GeForce RTX 3080 Ti/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Python: 3.9.11
Locale: en_US.cp1252
Qt version: PyQt6 6.3.1, Qt 6.3.1
Qt runtime version: 6.3.2
Qt platform: windows
Manufacturer: System manufacturer
Model: System Product Name
OS: Microsoft Windows 10 Pro (Build 19044)
Memory: 68,649,721,856
MaxProcessMemory: 137,438,953,344
CPU: 32 AMD Ryzen 9 3950X 16-Core Processor
OSLanguage: en-US
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
asttokens: 2.1.0
Babel: 2.11.0
backcall: 0.2.0
blockdiag: 3.0.0
build: 0.8.0
certifi: 2022.9.24
cftime: 1.6.2
charset-normalizer: 2.1.1
ChimeraX-AddCharge: 1.4
ChimeraX-AddH: 2.2.1
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2.1
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.6
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.3
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.41.5
ChimeraX-AtomicLibrary: 8.0.3
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.3
ChimeraX-BasicActions: 1.1.2
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.2
ChimeraX-BondRot: 2.0.1
ChimeraX-BugReporter: 1.0.1
ChimeraX-BuildStructure: 2.7.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.2
ChimeraX-ButtonPanel: 1.0.1
ChimeraX-CageBuilder: 1.0.1
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.3.1
ChimeraX-ChangeChains: 1.0.2
ChimeraX-CheckWaters: 1.3
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.2.4
ChimeraX-ColorActions: 1.0.3
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.2
ChimeraX-CommandLine: 1.2.4
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.5rc202211091945
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.3.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.2
ChimeraX-Dicom: 1.1
ChimeraX-DistMonitor: 1.3
ChimeraX-DockPrep: 1.0
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0.1
ChimeraX-FunctionKey: 1.0.1
ChimeraX-Geometry: 1.2
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.1
ChimeraX-Hbonds: 2.4
ChimeraX-Help: 1.2.1
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.1
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-Label: 1.1.7
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.5
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.2
ChimeraX-Map: 1.1.2
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0.1
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1.1
ChimeraX-Markers: 1.0.1
ChimeraX-Mask: 1.0.1
ChimeraX-MatchMaker: 2.0.9
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.2
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.8
ChimeraX-MMTF: 2.2
ChimeraX-Modeller: 1.5.6
ChimeraX-ModelPanel: 1.3.6
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0
ChimeraX-Mole: 1.0
ChimeraX-Morph: 1.0.1
ChimeraX-MouseModes: 1.1.1
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.9.1
ChimeraX-PDB: 2.6.8
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1
ChimeraX-PubChem: 2.1
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0.1
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
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.7.2
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.1.1
ChimeraX-ShowSequences: 1.0.1
ChimeraX-SideView: 1.0.1
ChimeraX-Smiles: 2.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.10
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.1.3
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1.2
ChimeraX-ToolshedUtils: 1.2.1
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.24.3
ChimeraX-uniprot: 2.2.1
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.1.4
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0.1
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0.1
ChimeraX-WebServices: 1.1.0
ChimeraX-Zone: 1.0.1
colorama: 0.4.5
comtypes: 1.1.10
cxservices: 1.2
cycler: 0.11.0
Cython: 0.29.32
debugpy: 1.6.3
decorator: 5.1.1
docutils: 0.19
entrypoints: 0.4
executing: 1.2.0
filelock: 3.7.1
fonttools: 4.38.0
funcparserlib: 1.0.1
grako: 3.16.5
h5py: 3.7.0
html2text: 2020.1.16
idna: 3.4
ihm: 0.33
imagecodecs: 2022.7.31
imagesize: 1.4.1
importlib-metadata: 5.0.0
ipykernel: 6.15.3
ipython: 8.4.0
ipython-genutils: 0.2.0
jedi: 0.18.1
Jinja2: 3.1.2
jupyter-client: 7.3.4
jupyter-core: 5.0.0
kiwisolver: 1.4.4
line-profiler: 3.5.1
lxml: 4.9.1
lz4: 4.0.2
MarkupSafe: 2.1.1
matplotlib: 3.5.2
matplotlib-inline: 0.1.6
msgpack: 1.0.4
nest-asyncio: 1.5.6
netCDF4: 1.6.0
networkx: 2.8.5
numexpr: 2.8.4
numpy: 1.23.1
openvr: 1.23.701
packaging: 21.3
ParmEd: 3.4.3
parso: 0.8.3
pep517: 0.13.0
pickleshare: 0.7.5
Pillow: 9.2.0
pip: 22.2.2
pkginfo: 1.8.3
platformdirs: 2.5.3
prompt-toolkit: 3.0.32
psutil: 5.9.1
pure-eval: 0.2.2
pycollada: 0.7.2
pydicom: 2.3.0
Pygments: 2.12.0
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.9
PyQt6-commercial: 6.3.1
PyQt6-Qt6: 6.3.2
PyQt6-sip: 13.4.0
PyQt6-WebEngine-commercial: 6.3.1
PyQt6-WebEngine-Qt6: 6.3.2
python-dateutil: 2.8.2
pytz: 2022.6
pywin32: 303
pyzmq: 24.0.1
qtconsole: 5.3.1
QtPy: 2.3.0
RandomWords: 0.4.0
requests: 2.28.1
scipy: 1.9.0
setuptools: 65.1.1
sfftk-rw: 0.7.2
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
Sphinx: 5.1.1
sphinx-autodoc-typehints: 1.19.1
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 2.0.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.5
stack-data: 0.6.0
tables: 3.7.0
tifffile: 2022.7.31
tinyarray: 1.2.4
tomli: 2.0.1
tornado: 6.2
traitlets: 5.3.0
urllib3: 1.26.12
wcwidth: 0.2.5
webcolors: 1.12
wheel: 0.37.1
wheel-filename: 1.4.1
WMI: 1.5.1
zipp: 3.10.0
Change History (5)
comment:1 by , 3 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Volume Data |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Image stack:tuple index out of range |
comment:2 by , 3 years ago
The error happens when it is trying to find the paths to 2D images for 3 z-planes at one time and for one channel. My guess is that maybe some time/channel did not have all 3 z-planes. It doesn't look like the code sanity checks to make sure all the expected 2D files exist. If some are missing it will just cause an error like the one observed.
open z:\src\microscope_ui\chimerax\image_{t}_{c}_{z}.tiff
follow-up: 3 comment:3 by , 3 years ago
Makes sense (I was experimenting with various alternatives of {t}, {c}, and
{z}, but can you print the missing files in the log?
On Mon, Nov 14, 2022 at 11:54 AM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:
comment:4 by , 3 years ago
You could put in some debugging code in the file that finds all the 2D files here
ChimeraX.app/Contents/lib/python3.9/site-packages/chimerax/map_data/imagestack/init.py
Here t is time, c is channel and path_list with be the paths to the z-plane images. You could put in a print statement if the length of path_list is ever not 3.
tc_paths = paths_by_time_and_channel(paths)
grids = []
for t,c,path_list in tc_paths:
grids.extend(open_stack(path_list, t, c, log=log))
It would be nice if ChimeraX sanity checked that the same number of channels and same number of z plane images for every time were specified. But I've got about 1000 other things to work on.
comment:5 by , 3 years ago
| Resolution: | → can't reproduce |
|---|---|
| Status: | assigned → closed |
Probably requires an incomplete set of files to reproduce this.
Reported by David Konerding (hi David!)