#9302 closed defect (fixed)
clicking Add on the Segmentations dialog for medical images gave traceback
| Reported by: | Elaine Meng | Owned by: | Zach Pearson |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | DICOM | Version: | |
| Keywords: | Cc: | Tom Goddard | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: macOS-12.6.7-arm64-arm-64bit
ChimeraX Version: 1.7.dev202304272200 (2023-04-27 22:00:29 UTC)
Description
clicking Add on the Segmentations dialog for medical images gave traceback
Before that I tried sweeping out an area with the cursor, got error no active segmentation. Maybe it should create the segmentation automatically if none exists?
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.7.dev202304272200 (2023-04-27)
© 2016-2023 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open 1.3.6.1.4.1.14519.5.2.1.3023.4024.306470659673930296837445794244 format
> dicom fromDatabase tcia
Summary of feedback from opening
1.3.6.1.4.1.14519.5.2.1.3023.4024.306470659673930296837445794244 fetched from
tcia
---
note | Opened 4 MR (AXIAL T1 THRU MASS) as #1.1.1, grid size 256,256,46, pixel
0.859,0.859,8.8, shown at step 1, values int16
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 orthoplanes
> dicom view orthoplanes guidelines true
No active segmentation!
[Repeated 1
time(s)]/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/map_data/arrays.py:155: RuntimeWarning: invalid value
encountered in multiply
v = fbc + b * bsize # Center of bin where rank crossed.
Opened segmentation 1 as #5, grid size 256,256,46, pixel 0.859,0.859,8.8,
shown at level nan, step 1, values int16
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/map/volume_viewer.py", line 2729, in update_cb
s.update_histogram(rm, m, rz, delay = 0)
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/map/volume_viewer.py", line 2751, in update_histogram
counts = s.bin_counts(bins)
^^^^^^^^^^^^^^^^^^
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/map_data/arrays.py", line 121, in bin_counts
b0 = int(ceil(fb0))
^^^^^^^^^
ValueError: cannot convert float NaN to integer
ValueError: cannot convert float NaN to integer
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/map_data/arrays.py", line 121, in bin_counts
b0 = int(ceil(fb0))
^^^^^^^^^
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.4.2, Qt 6.4.2
Qt runtime version: 6.4.3
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: 8422.121.1
OS Loader Version: 7459.141.1
Software:
System Software Overview:
System Version: macOS 12.6.7 (21G651)
Kernel Version: Darwin 21.6.0
Time since boot: 1:36
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.2.1
Babel: 2.12.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.2
charset-normalizer: 3.1.0
ChimeraX-AddCharge: 1.5.11
ChimeraX-AddH: 2.2.5
ChimeraX-AlignmentAlgorithms: 2.0.1
ChimeraX-AlignmentHdrs: 3.3.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.9.3
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.3
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.46
ChimeraX-AtomicLibrary: 10.0.7
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.3.2
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.3
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.3.2
ChimeraX-ChangeChains: 1.0.2
ChimeraX-CheckWaters: 1.3.1
ChimeraX-ChemGroup: 2.0.1
ChimeraX-Clashes: 2.2.4
ChimeraX-ColorActions: 1.0.3
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.3
ChimeraX-CommandLine: 1.2.5
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.7.dev202304272200
ChimeraX-CoreFormats: 1.1
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.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-IUPAC: 1.0
ChimeraX-Label: 1.1.7
ChimeraX-ListInfo: 1.2
ChimeraX-Log: 1.1.5
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.2
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
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
ChimeraX-MMTF: 2.2
ChimeraX-Modeller: 1.5.9
ChimeraX-ModelPanel: 1.4
ChimeraX-ModelSeries: 1.0.1
ChimeraX-Mol2: 2.0
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.10.2
ChimeraX-PDB: 2.7.2
ChimeraX-PDBBio: 1.0.1
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-RenderByAttr: 1.1
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.2
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 3.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.1
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.9
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.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.12.1
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.1
ChimeraX-TapeMeasure: 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.30.1
ChimeraX-uniprot: 2.3
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.2.2
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.2
ChimeraX-WebServices: 1.1.1
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.1.3
contourpy: 1.1.0
cxservices: 1.2.2
cycler: 0.11.0
Cython: 0.29.33
debugpy: 1.6.7
decorator: 5.1.1
docutils: 0.19
executing: 1.2.0
filelock: 3.9.0
fonttools: 4.40.0
funcparserlib: 1.0.1
grako: 3.16.5
h5py: 3.9.0
html2text: 2020.1.16
idna: 3.4
ihm: 0.35
imagecodecs: 2023.3.16
imagesize: 1.4.1
ipykernel: 6.23.2
ipython: 8.14.0
ipython-genutils: 0.2.0
ipywidgets: 8.0.6
jedi: 0.18.2
Jinja2: 3.1.2
jupyter-client: 8.2.0
jupyter-core: 5.3.1
jupyterlab-widgets: 3.0.7
kiwisolver: 1.4.4
line-profiler: 4.0.2
lxml: 4.9.2
lz4: 4.3.2
MarkupSafe: 2.1.3
matplotlib: 3.6.3
matplotlib-inline: 0.1.6
msgpack: 1.0.4
nest-asyncio: 1.5.6
netCDF4: 1.6.2
networkx: 2.8.8
nibabel: 5.0.1
nptyping: 2.5.0
numexpr: 2.8.4
numpy: 1.23.5
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: 9.3.0
pip: 23.0
pkginfo: 1.9.6
platformdirs: 3.8.0
prompt-toolkit: 3.0.38
psutil: 5.9.4
ptyprocess: 0.7.0
pure-eval: 0.2.2
py-cpuinfo: 9.0.0
pycollada: 0.7.2
pydicom: 2.3.0
Pygments: 2.14.0
pynrrd: 1.0.0
PyOpenGL: 3.1.6
PyOpenGL-accelerate: 3.1.6
pyparsing: 3.1.0
pyproject-hooks: 1.0.0
PyQt6-commercial: 6.4.2
PyQt6-Qt6: 6.4.3
PyQt6-sip: 13.4.1
PyQt6-WebEngine-commercial: 6.4.0
PyQt6-WebEngine-Qt6: 6.4.3
python-dateutil: 2.8.2
pytz: 2023.3
pyzmq: 25.1.0
qtconsole: 5.4.3
QtPy: 2.3.1
RandomWords: 0.4.0
requests: 2.31.0
scipy: 1.9.3
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.4.1
sphinx: 6.1.3
sphinx-autodoc-typehints: 1.22
sphinxcontrib-applehelp: 1.0.4
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 2.0.1
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.5
stack-data: 0.6.2
tables: 3.8.0
tcia-utils: 1.2.0
tifffile: 2022.10.10
tinyarray: 1.2.4
tomli: 2.0.1
tornado: 6.3.2
traitlets: 5.9.0
typing-extensions: 4.7.1
tzdata: 2023.3
urllib3: 2.0.3
wcwidth: 0.2.6
webcolors: 1.12
wheel: 0.38.4
wheel-filename: 1.4.1
widgetsnbextension: 4.0.7
Change History (12)
comment:1 by , 2 years ago
| Component: | Unassigned → DICOM |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Priority: | normal → high |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → clicking Add on the Segmentations dialog for medical images gave traceback |
comment:2 by , 2 years ago
Looking into it, I just want to note that while working on this ticket I discovered "dicom view fourup guidelines true" doesn't enable the guidelines the first time around and fixed that.
comment:3 by , 2 years ago
The second traceback during after the close command is because the segmentation tool tries to delete its cursors when it closes, but it looks like models are closed before tools when closing a session. I'll add a try-except around that attempt to close, it's harmless if it fails.
comment:4 by , 2 years ago
| Cc: | added |
|---|
As for the first traceback, it's in the volume viewer's histogram code. Other data like the RIDER lung CT don't cause a complaint when we ask for a histogram with 0 bins, so I'm not sure where that NaN is coming from, but maybe it makes sense there for there to be some "if this critical number is NaN it should be 0" clause around there. CCing Tom.
comment:6 by , 2 years ago
I am puzzled and curious, how can you open a map and get 0 bins in the histogram? Even if all the values of the map are the same it still has one bin containing that one value. I have seen this error reported by users before but have never figured out what causes it. Can you provide a simple test case (e.g. a single map) that produces this error when opened?
The error should not be suppressed (changing NaN to 0) just because we don't understand it.
comment:7 by , 2 years ago
If I recall correctly this error may have occurred after other errors (i.e. clicking Add does not always cause this problem). So maybe it was already in a weird state with data structures partially created or destroyed. Just thought I should report all tracebacks in case it was evident how the code could be improved, when possible.
comment:8 by , 2 years ago
I tried saving the empty segmentation and then opening it, but it correctly got one bin. You can reproduce with the following commands:
open 1.3.6.1.4.1.14519.5.2.1.3023.4024.306470659673930296837445794244 format dicom fromDatabase tcia
dicom segmentations add
comment:9 by , 2 years ago
Yes I get the error opening that data. The problem is making a GridData instance with attribute pad_value = 0 and all the values in the volume are 0. This "pad_value" attribute means to ignore those grid points for purposes of computing the data histogram. So all grid points are ignored. The volume code doesn't detect that. I'll make it raise an error. But the real problem is that the dicom segmentation code should not be setting "pad_value = 0" in a volume of all 0 values. I apparently added this pad_value business specifically because DICOM data is sometimes padded. The DICOM code appears to be the only ChimeraX code that uses it.
comment:11 by , 2 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
That seems to have solved it.
comment:12 by , 2 years ago
I made the volume histogram code raise a ValueError if a volume consists only of padding values.
I saw that it did add a segmentations model, or at least there was a listing in the dialog. However, then entering command "close" gave another traceback:
closeTraceback (most recent call last):
TypeError: object of type 'NoneType' has no len()
Error processing trigger "remove models":
TypeError: object of type 'NoneType' has no len()
File "/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/chimerax/core/models.py", line 911, in
mlist.sort(key=lambda m: len(m.id), reverse=True)