#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 , 23 months 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 , 22 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 , 22 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.