Opened 2 years ago

Closed 2 years ago

#9315 closed defect (fixed)

DICOM: no guardrails on Segmentation cursor size?

Reported by: Elaine Meng Owned by: Zach Pearson
Priority: normal 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.6.7-arm64-arm-64bit
ChimeraX Version: 1.7.dev202304272200 (2023-04-27 22:00:29 UTC)
Description
DICOM: Shift-scroll segmentation cursor allows making it infinitely small

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 2mnr format mmcif fromDatabase pdb

2mnr title:  
Mechanism of the reaction catalyzed by mandelate racemase. 2. Crystal
structure of mandelate racemase At 2.5 angstroms resolution: identification of
the active site and possible catalytic residues [more info...]  
  
Chain information for 2mnr #1  
---  
Chain | Description | UniProt  
A | MANDELATE RACEMASE | MANR_PSEPU 3-359  
  
Non-standard residues in 2mnr #1  
---  
MN — manganese (II) ion  
SO4 — sulfate ion  
  
2mnr mmCIF Assemblies  
---  
1| author_and_software_defined_assembly  
  

> close

> 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

No active segmentation!  
[Repeated 4
time(s)]/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/shape/shape.py:172: RuntimeWarning: divide by zero
encountered in double_scalars  
nz = max(2, int(ceil(nc * height / (sqrt(3)*pi*radius))))  
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 523, in wheelEvent  
self.resize3DSegmentationCursor()  
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 514, in
resize3DSegmentationCursor  
self.segmentation_tool.segmentation_cursors[self.axis].radius =
self.segmentation_overlay.radius * psize / self.scale  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/graphics/drawing.py", line 255, in __setattr__  
super(Drawing, self).__setattr__(key, value)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/graphics/cylinder.py", line 42, in radius  
self.update_geometry()  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/graphics/cylinder.py", line 79, in update_geometry  
nz, nc = _cylinder_divisions(self.radius, self.height, self.divisions)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/shape/shape.py", line 172, in _cylinder_divisions  
nz = max(2, int(ceil(nc * height / (sqrt(3)*pi*radius))))  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
OverflowError: cannot convert float infinity to integer  
  
OverflowError: cannot convert float infinity to integer  
  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/shape/shape.py", line 172, in _cylinder_divisions  
nz = max(2, int(ceil(nc * height / (sqrt(3)*pi*radius))))  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
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 523, in wheelEvent  
self.resize3DSegmentationCursor()  
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 514, in
resize3DSegmentationCursor  
self.segmentation_tool.segmentation_cursors[self.axis].radius =
self.segmentation_overlay.radius * psize / self.scale  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/graphics/drawing.py", line 255, in __setattr__  
super(Drawing, self).__setattr__(key, value)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/graphics/cylinder.py", line 42, in radius  
self.update_geometry()  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/dicom/graphics/cylinder.py", line 79, in update_geometry  
nz, nc = _cylinder_divisions(self.radius, self.height, self.divisions)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/shape/shape.py", line 172, in _cylinder_divisions  
nz = max(2, int(ceil(nc * height / (sqrt(3)*pi*radius))))  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
OverflowError: cannot convert float infinity to integer  
  
OverflowError: cannot convert float infinity to integer  
  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/shape/shape.py", line 172, in _cylinder_divisions  
nz = max(2, int(ceil(nc * height / (sqrt(3)*pi*radius))))  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  
See log for complete Python traceback.  
  
No active segmentation!  

> ui tool show Log




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: 10:07

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 (2)

comment:1 by Elaine Meng, 2 years ago

Component: UnassignedDICOM
Owner: set to Zach Pearson
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionDICOM: no guardrails on Segmentation cursor size?

initial description said "infinitely small" but now I'm not sure whether it was infinitely small or just too big somehow. I accidentally changed size because I was trying to make zooming go faster... it is glacially slow trying to do it with 2-finger scrolling on the trackpad.

comment:2 by Zach Pearson, 2 years ago

Resolution: fixed
Status: assignedclosed

This has actually been fixed since yesterday's daily build! Unless that one had the 2023-04-27 version string too, in which case I need to go look again.

Might also be a good enhancement ticket to figure out the size of the voxels and not let the cursor get smaller than _that_.

Note: See TracTickets for help on using tickets.