Opened 3 years ago

Closed 3 years ago

#8010 closed defect (can't reproduce)

Image stack:tuple index out of range

Reported by: dakoner@… 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 Eric Pettersen, 3 years ago

Cc: Eric Pettersen added
Component: UnassignedVolume Data
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionImage stack:tuple index out of range

Reported by David Konerding (hi David!)

comment:2 by Tom Goddard, 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

in reply to:  3 ; comment:3 by dakoner@…, 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 Tom Goddard, 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 Tom Goddard, 3 years ago

Resolution: can't reproduce
Status: assignedclosed

Probably requires an incomplete set of files to reproduce this.

Note: See TracTickets for help on using tickets.