Opened 6 years ago

Closed 6 years ago

#1949 closed defect (fixed)

Problem reading TIFF planes: index out of range

Reported by: chimerax-bug-report@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Volume Data Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.17134
ChimeraX Version: 0.9 (2019-05-16)
Description
(Describe the actions that caused this problem to occur here)

Log:
UCSF ChimeraX version: 0.9 (2019-05-16)  
© 2016-2019 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open "C:/Users/JKuo/Desktop/worm1_GutUpper-Airyscan Processing-01.czi"

Unrecognized file suffix '.czi'  
Unrecognized file suffix '.czi'  

> open "C:/Users/JKuo/Desktop/New folder/worm1_GutUpper-Airyscan
Processing-01.tif"

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\ui\gui.py",
line 564, in _qt_safe  
run(session, "open " + quote_if_necessary(paths[0]))  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\run.py", line 31, in run  
results = command.run(text, log=log)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2632, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\open.py", line 64, in open  
path_models = session.models.open(paths, format=format, name=name, **kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\models.py", line 602, in open  
session, filenames, format=format, name=name, **kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\core\io.py",
line 473, in open_multiple_data  
models, status = open_func(session, paths, mname, **kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 3581, in open_map_format  
return open_map(session, path, name=name, format=format, **kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 3202, in open_map  
smodels, smsg = open_grids(session, sgrids, name, **kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 3301, in open_grids  
v.update_drawings()  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 708, in update_drawings  
self.image_levels, self.image_colors = self.initial_image_levels()  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 533, in initial_image_levels  
mstats = self.matrix_value_statistics()  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 1590, in matrix_value_statistics  
matrices = self.displayed_matrices(read_matrix)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 1625, in displayed_matrices  
matrices.append(self.matrix(read_matrix))  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 1140, in matrix  
m = self.region_matrix(r, read_matrix)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 1164, in region_matrix  
m = d.matrix(origin, size, step, progress, from_cache_only)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\data\griddata.py", line 248, 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\imagej_tiff.py", line 69, in read_matrix  
a = pi.planes_data(klist, cc, ch, self.time)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\data\imagestack\imagej_tiff.py", line 186, in
planes_data  
a = tif.asarray(key = plist)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 2112, in asarray  
pages = self.pages._getlist(key)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3419, in _getlist  
self.keyframe = next(key)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3259, in keyframe  
self._keyframe = self._getitem(index)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3457, in _getitem  
self._seek(key)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3381, in _seek  
raise IndexError('index out of range')  
IndexError: index out of range  
  
IndexError: index out of range  
  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3381, in _seek  
raise IndexError('index out of range')  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\triggerset.py", line 130, in invoke  
return self._func(self._name, data)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 3551, in _update_drawings  
v.update_drawings()  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 708, in update_drawings  
self.image_levels, self.image_colors = self.initial_image_levels()  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 533, in initial_image_levels  
mstats = self.matrix_value_statistics()  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 1590, in matrix_value_statistics  
matrices = self.displayed_matrices(read_matrix)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 1625, in displayed_matrices  
matrices.append(self.matrix(read_matrix))  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 1140, in matrix  
m = self.region_matrix(r, read_matrix)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\chimerax\map\volume.py",
line 1164, in region_matrix  
m = d.matrix(origin, size, step, progress, from_cache_only)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\data\griddata.py", line 248, 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\imagej_tiff.py", line 69, in read_matrix  
a = pi.planes_data(klist, cc, ch, self.time)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\data\imagestack\imagej_tiff.py", line 186, in
planes_data  
a = tif.asarray(key = plist)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 2112, in asarray  
pages = self.pages._getlist(key)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3419, in _getlist  
self.keyframe = next(key)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3259, in keyframe  
self._keyframe = self._getitem(index)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3457, in _getitem  
self._seek(key)  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3381, in _seek  
raise IndexError('index out of range')  
IndexError: index out of range  
  
Error processing trigger "graphics update": index out of range:  
IndexError: index out of range  
  
File "C:\Program Files\ChimeraX\bin\lib\site-packages\tifffile\tifffile.py",
line 3381, in _seek  
raise IndexError('index out of range')  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 NVIDIA 388.13
OpenGL renderer: GeForce GTX 745/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Change History (2)

comment:1 by pett, 6 years ago

Component: UnassignedVolume Data
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionProblem reading TIFF planes: index out of range

comment:2 by Tom Goddard, 6 years ago

Resolution: fixed
Status: assignedclosed

User was opening an ImageJ TIFF hyperstack > 4 Gbytes in size where ImageJ hacks the TIFF format and puts only one plane in the file, appending all the other raw planes. ChimeraX cannot currently handle this.

I made ChimeraX give a user friendly error message when this kind of file is encountered.

With some work we could probably read these. Tifffile.py has support for it.

Note: See TracTickets for help on using tickets.