#10204 closed defect (fixed)
Segmentations tool divide-by-zero when open DICOM only has SEG (no CT or other medical image)
| Reported by: | Elaine Meng | Owned by: | Zach Pearson |
|---|---|---|---|
| Priority: | low | Milestone: | |
| Component: | DICOM | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: macOS-12.7.1-arm64-arm-64bit
ChimeraX Version: 1.8.dev202311180238 (2023-11-18 02:38:49 UTC)
Description
Segmentations tool divide-by-zero when open DICOM only has SEG (no CT or other medical image)
This is an edge case and unlikely to occur, so low priority.
Commands to reproduce:
open 1.2.276.0.7230010.3.1.3.0.8180.1415310847.593766 fromDatabase tcia format dicom
ui tool show Segmentations
dicom view fourup
Log:
> open /Users/meng/Desktop/startup.cxc
> alias reset view orient; view initial
> alias start tool show $1
> alias whereprefs info path user unversioned config
> alias captut open help:user/tutorials/binding-sites.html#cap-example
> alias previewts toolshed url https://cxtoolshed-
> preview.rbvi.ucsf.edu;toolshed reload available
> alias normalts toolshed url https://cxtoolshed.rbvi.ucsf.edu;toolshed reload
> available
> alias btut open
> https://www.cgl.ucsf.edu/home/meng/chimerax/vdocs/user/tutorials/binding-
> sites.html; ui dockable false "Help Viewer"
> alias stut open https://www.rbvi.ucsf.edu/chimerax/data/conservation-
> coloring/conservation-coloring.html; ui dockable false "Help Viewer"
> alias ltut open https://www.rbvi.ucsf.edu/chimerax/data/loop-modeling/loop-
> modeling.html; ui dockable false "Help Viewer"
> alias mtut open https://www.rbvi.ucsf.edu/chimerax/data/mole-channel/mole-
> channel.html; ui dockable false "Help Viewer"; windowsize 600 800
executed startup.cxc
UCSF ChimeraX version: 1.8.dev202311180238 (2023-11-18)
© 2016-2023 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open "/Users/meng/dicom/tcia/RIDER Lung
> CT/RIDER-1129164940/11-06-2014-1-96508/1000-QIN CT challenge alg03
> run3segmentation result-60335" format dicom
Summary of feedback from opening /Users/meng/dicom/tcia/RIDER Lung
CT/RIDER-1129164940/11-06-2014-1-96508/1000-QIN CT challenge alg03
run3segmentation result-60335
---
note | Opened 1000 SEG (QIN CT challenge: alg03 run3segmentation result) as
#1.1.1, grid size 512,512,236, pixel 0.576,0.576,1, shown at level 0.5, step
2, values uint8
> close
> ui tool show "Download DICOM"
> open 1.2.276.0.7230010.3.1.3.0.8180.1415310847.593766 fromDatabase tcia
> format dicom
Summary of feedback from opening
1.2.276.0.7230010.3.1.3.0.8180.1415310847.593766 fetched from tcia
---
note | Opened 1000 SEG (QIN CT challenge: alg01 run1segmentation result) as
#1.1.1, grid size 512,512,236, pixel 0.576,0.576,1, shown at level 0.5, step
2, values uint8
Images from TCIA may be rotated so that flat planes appear invisible. If the
screen looks black but no error message has been issued, try rotating the
model into view with your mouse.
> ui tool show Segmentations
> dicom view fourup
Traceback (most recent call last):
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/ui/orthoplanes.py", line 733, in mouseMoveEvent
self.moveSegmentationPuck(x, y, record_seg = (b == Qt.MouseButton.LeftButton))
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/ui/orthoplanes.py", line 673, in moveSegmentationPuck
rel_top, rel_bottom, rel_left, rel_right =
self.mousePercentOffsetsFromEdges(x, y)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/ui/orthoplanes.py", line 640, in
mousePercentOffsetsFromEdges
percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) -
bottom) / (top - bottom))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
ZeroDivisionError: float division by zero
ZeroDivisionError: float division by zero
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/ui/orthoplanes.py", line 640, in
mousePercentOffsetsFromEdges
percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) -
bottom) / (top - bottom))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
See log for complete Python traceback.
Traceback (most recent call last):
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/ui/orthoplanes.py", line 733, in mouseMoveEvent
self.moveSegmentationPuck(x, y, record_seg = (b == Qt.MouseButton.LeftButton))
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/ui/orthoplanes.py", line 673, in moveSegmentationPuck
rel_top, rel_bottom, rel_left, rel_right =
self.mousePercentOffsetsFromEdges(x, y)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/ui/orthoplanes.py", line 640, in
mousePercentOffsetsFromEdges
percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) -
bottom) / (top - bottom))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
ZeroDivisionError: float division by zero
ZeroDivisionError: float division by zero
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/ui/orthoplanes.py", line 640, in
mousePercentOffsetsFromEdges
percent_offset_from_bottom = (((self.scale * (self.view.window_size[1] - y)) -
bottom) / (top - bottom))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
See log for complete Python traceback.
OpenGL version: 4.1 Metal - 76.3
OpenGL renderer: Apple M1 Pro
OpenGL vendor: Apple
Python: 3.11.2
Locale: UTF-8
Qt version: PyQt6 6.3.1, Qt 6.3.1
Qt runtime version: 6.3.2
Qt platform: cocoa
Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro18,1
Chip: Apple M1 Pro
Total Number of Cores: 10 (8 performance and 2 efficiency)
Memory: 16 GB
System Firmware Version: 10151.41.12
OS Loader Version: 7459.141.1.701.1
Software:
System Software Overview:
System Version: macOS 12.7.1 (21G920)
Kernel Version: Darwin 21.6.0
Time since boot: 5:10
Graphics/Displays:
Apple M1 Pro:
Chipset Model: Apple M1 Pro
Type: GPU
Bus: Built-In
Total Number of Cores: 16
Vendor: Apple (0x106b)
Metal Family: Supported, Metal GPUFamily Apple 7
Displays:
Color LCD:
Display Type: Built-in Liquid Retina XDR Display
Resolution: 3456 x 2234 Retina
Main Display: Yes
Mirror: Off
Online: Yes
Automatically Adjust Brightness: Yes
Connection Type: Internal
Installed Packages:
alabaster: 0.7.13
appdirs: 1.4.4
appnope: 0.1.3
asttokens: 2.4.1
Babel: 2.13.1
backcall: 0.2.0
beautifulsoup4: 4.11.2
blockdiag: 3.0.0
blosc2: 2.0.0
build: 0.10.0
certifi: 2022.12.7
cftime: 1.6.3
charset-normalizer: 3.3.2
ChimeraX-AddCharge: 1.5.12
ChimeraX-AddH: 2.2.5
ChimeraX-AlignmentAlgorithms: 2.0.1
ChimeraX-AlignmentHdrs: 3.4.2
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.12.1
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.1.1
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.51
ChimeraX-AtomicLibrary: 12.1.2
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.4
ChimeraX-BasicActions: 1.1.2
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.2
ChimeraX-BondRot: 2.0.4
ChimeraX-BugReporter: 1.0.1
ChimeraX-BuildStructure: 2.10.5
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.2.2
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.3.2
ChimeraX-ChemGroup: 2.0.1
ChimeraX-Clashes: 2.2.4
ChimeraX-ColorActions: 1.0.3
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.5
ChimeraX-CommandLine: 1.2.5
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.8.dev202311180238
ChimeraX-CoreFormats: 1.2
ChimeraX-coulombic: 1.4.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.3
ChimeraX-Dicom: 1.2
ChimeraX-DistMonitor: 1.4
ChimeraX-DockPrep: 1.1.2
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.1.1
ChimeraX-Hbonds: 2.4
ChimeraX-Help: 1.2.2
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-IUPAC: 1.0
ChimeraX-Label: 1.1.8
ChimeraX-ListInfo: 1.2.1
ChimeraX-Log: 1.1.6
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.9.1
ChimeraX-Map: 1.1.4
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.1.2
ChimeraX-MCopy: 1.0
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.2
ChimeraX-Meeting: 1.0.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.12.1
ChimeraX-MMTF: 2.2
ChimeraX-Modeller: 1.5.13
ChimeraX-ModelPanel: 1.4
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-Neuron: 1.0
ChimeraX-Nifti: 1.1
ChimeraX-NRRD: 1.1
ChimeraX-Nucleotides: 2.0.3
ChimeraX-OpenCommand: 1.13
ChimeraX-PDB: 2.7.2
ChimeraX-PDBBio: 1.0.1
ChimeraX-PDBLibrary: 1.0.3
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.2
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.2
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.2
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.2
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.11
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.1.1
ChimeraX-ShowSequences: 1.0.2
ChimeraX-SideView: 1.0.1
ChimeraX-Smiles: 2.1.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.13
ChimeraX-STL: 1.0.1
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.1.2
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0.1
ChimeraX-SwapAA: 2.0.1
ChimeraX-SwapRes: 2.2.2
ChimeraX-TapeMeasure: 1.0
ChimeraX-TaskManager: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1.2
ChimeraX-ToolshedUtils: 1.2.4
ChimeraX-Topography: 1.0
ChimeraX-ToQuest: 1.0
ChimeraX-Tug: 1.0.1
ChimeraX-UI: 1.33.3
ChimeraX-uniprot: 2.3
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.3.2
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.3
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.2.0
contourpy: 1.2.0
cxservices: 1.2.2
cycler: 0.12.1
Cython: 0.29.33
debugpy: 1.8.0
decorator: 5.1.1
docutils: 0.19
executing: 2.0.1
filelock: 3.9.0
fonttools: 4.44.3
funcparserlib: 2.0.0a0
glfw: 2.6.3
grako: 3.16.5
h5py: 3.10.0
html2text: 2020.1.16
idna: 3.4
ihm: 0.38
imagecodecs: 2023.9.18
imagesize: 1.4.1
ipykernel: 6.23.2
ipython: 8.14.0
ipython-genutils: 0.2.0
ipywidgets: 8.1.1
jedi: 0.18.2
Jinja2: 3.1.2
jupyter-client: 8.2.0
jupyter-core: 5.5.0
jupyterlab-widgets: 3.0.9
kiwisolver: 1.4.5
line-profiler: 4.0.2
lxml: 4.9.2
lz4: 4.3.2
MarkupSafe: 2.1.3
matplotlib: 3.7.2
matplotlib-inline: 0.1.6
msgpack: 1.0.4
nest-asyncio: 1.5.8
netCDF4: 1.6.2
networkx: 3.1
nibabel: 5.0.1
nptyping: 2.5.0
numexpr: 2.8.7
numpy: 1.25.1
openvr: 1.23.701
packaging: 21.3
ParmEd: 3.4.3
parso: 0.8.3
pep517: 0.13.0
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 10.0.1
pip: 23.0
pkginfo: 1.9.6
platformdirs: 4.0.0
prompt-toolkit: 3.0.41
psutil: 5.9.5
ptyprocess: 0.7.0
pure-eval: 0.2.2
py-cpuinfo: 9.0.0
pycollada: 0.7.2
pydicom: 2.3.0
Pygments: 2.16.1
pynrrd: 1.0.0
PyOpenGL: 3.1.7
PyOpenGL-accelerate: 3.1.7
pyopenxr: 1.0.2801
pyparsing: 3.0.9
pyproject-hooks: 1.0.0
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: 2023.3.post1
pyzmq: 25.1.1
qtconsole: 5.4.3
QtPy: 2.4.1
RandomWords: 0.4.0
requests: 2.31.0
scipy: 1.11.1
setuptools: 67.4.0
setuptools-scm: 7.0.5
sfftk-rw: 0.7.3
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
soupsieve: 2.5
sphinx: 6.1.3
sphinx-autodoc-typehints: 1.22
sphinxcontrib-applehelp: 1.0.7
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.5
sphinxcontrib-htmlhelp: 2.0.4
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.6
sphinxcontrib-serializinghtml: 1.1.9
stack-data: 0.6.3
superqt: 0.5.0
tables: 3.8.0
tcia-utils: 1.5.1
tifffile: 2023.7.18
tinyarray: 1.2.4
tomli: 2.0.1
tornado: 6.3.3
traitlets: 5.9.0
typing-extensions: 4.8.0
tzdata: 2023.3
urllib3: 2.1.0
wcwidth: 0.2.10
webcolors: 1.12
wheel: 0.38.4
wheel-filename: 1.4.1
widgetsnbextension: 4.0.9
Change History (6)
comment:1 by , 2 years ago
| Component: | Unassigned → DICOM |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Priority: | normal → low |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Segmentations tool divide-by-zero when open DICOM only has SEG (no CT or other medical image) |
comment:2 by , 2 years ago
comment:3 by , 2 years ago
Yup, that's what it is. It happens if those panels open up but they have no good data to show -- volumes that are not DICOMs or are SEGs don't show up in the window. I'll figure out how to make it render just the background and not try to do math on an image that isn't there.
comment:4 by , 2 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
I've made the plane viewers do something sensible when there's no source data to show. This is a difficult state to get into (open seg tool, draw one, close the tool, close the source data), but now they simply draw the background.
comment:5 by , 23 months ago
Actually it was not a difficult state to get into. The few commands to do it were given in the original bug report (open SEG series, start Segmentations, which shows fourup view). It is true I don't get that error any more, but now I get a different traceback just from the first two commands. Guess I will make a separate ticket using Report a Bug.
comment:6 by , 23 months ago
OH wait, maybe it is the same error still. Sorry, I'm confused. The bottom of the error said something else, I though. Well, the new one is #10397, can close it if you'd rather reopen this one.
Maybe it's not the Segmentations tool per se, but the fourup view.