Opened 3 years ago

Closed 3 years ago

#8064 closed defect (fixed)

clicking Model Panel Info to show DICOM Browser either gives traceback (Patient) or blank dialog (Study, Series)

Reported by: Elaine Meng Owned by: Zach Pearson
Priority: major Milestone: 1.5
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.1-arm64-arm-64bit
ChimeraX Version: 1.6.dev202211190159 (2022-11-19 01:59:55 UTC)
Description
opened a DICOM, in Model Panel highlighted the top-level model (Patient), clicked Info

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.6.dev202211190159 (2022-11-19)  
© 2016-2022 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> usage esmfold

esmfold fetch mgnifyId [colorConfidence true or false] [alignTo a chains
specifier] [trim true or false] [pae true or false] [ignoreCache true or
false] [version an integer]  
— Fetch ESM Metagenomic Atlas database model for a MGnify identifier  
mgnifyId: a text string

esmfold pae [structure] [file name of a file to open/read; a name of 'browse'
will bring up a file browser] [mgnifyId a text string] [palette a colormap]
[range range] [plot true or false] [dividerLines true or false] [colorDomains
true or false] [connectMaxPae a number] [cluster a number] [minSize an
integer] [version an integer]  
— Show ESMFold predicted aligned error  
range: some numbers or full

esmfold predict sequence [subsequence subsequence] [residueRange residueRange]
[chunk an integer] [overlap an integer]  
— Predict a structure with ESMFold  
sequence: sequence  
subsequence: some integers  
residueRange: some integers  

> open "/Users/meng/dicom/tcia/RIDER Lung CT/RIDER-1129164940" format dicom

Summary of feedback from opening /Users/meng/dicom/tcia/RIDER Lung
CT/RIDER-1129164940  
---  
notes | Opened 4 CT (No Description) as #1.1.1, grid size 512,512,236, pixel
0.576,0.576,1.25, shown at step 1, values int16  
Opened 8 CT (No Description) as #1.1.2, grid size 512,512,213, pixel
0.588,0.588,1.25, shown at step 1, values int16  
Opened 1000 SEG (QIN CT challenge: alg02 run1segmentation result) as #1.1.3,
grid size 512,512,236, pixel 0.576,0.576,1.25, shown at step 1, values uint8  
Opened 1000 SEG (QIN CT challenge: alg02 run3segmentation result) as #1.1.4,
grid size 512,512,236, pixel 0.576,0.576,1.25, shown at step 1, values uint8  
Opened 1000 SEG (QIN CT challenge: alg01 run1segmentation result) as #1.1.5,
grid size 512,512,236, pixel 0.576,0.576,1.25, shown at step 1, values uint8  
Opened 1000 SEG (QIN CT challenge: alg03 run3segmentation result) as #1.1.6,
grid size 512,512,236, pixel 0.576,0.576,1.25, shown at step 1, values uint8  
Opened 1000 SEG (QIN CT challenge: alg01 run3segmentation result) as #1.1.7,
grid size 512,512,236, pixel 0.576,0.576,1.25, shown at step 1, values uint8  
4 messages similar to the above omitted  
  
Traceback (most recent call last):  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/model_panel/tool.py", line 89, in <lambda>  
mf([self.models[row] for row in [self._items.index(i)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/model_panel/tool.py", line 409, in info  
m.show_info()  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/dicom/dicom_hierarchy.py", line 87, in show_info  
return DICOMBrowserTool(self)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/dicom/ui/dicom_browser.py", line 58, in __init__  
super().__init__(session, name)  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/tools.py", line 88, in __init__  
session.tools.add([self])  
AttributeError: 'Patient' object has no attribute 'tools'  
  
AttributeError: 'Patient' object has no attribute 'tools'  
  
File
"/Users/meng/Desktop/ChimeraX_Daily.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/tools.py", line 88, in __init__  
session.tools.add([self])  
  
See log for complete Python traceback.  
  




OpenGL version: 4.1 Metal - 76.3
OpenGL renderer: Apple M1 Pro
OpenGL vendor: Apple

Python: 3.9.11
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: 8419.41.10
      OS Loader Version: 7459.141.1

Software:

    System Software Overview:

      System Version: macOS 12.6.1 (21G217)
      Kernel Version: Darwin 21.6.0
      Time since boot: 4:00

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.12
    appdirs: 1.4.4
    appnope: 0.1.3
    asttokens: 2.1.0
    Babel: 2.11.0
    backcall: 0.2.0
    blockdiag: 3.0.0
    build: 0.8.0
    certifi: 2021.10.8
    cftime: 1.6.2
    charset-normalizer: 2.1.1
    ChimeraX-AddCharge: 1.5.5
    ChimeraX-AddH: 2.2.3
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.3
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.8
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.0.3
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.43.4
    ChimeraX-AtomicLibrary: 8.0.4
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.3
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.1.2
    ChimeraX-BondRot: 2.0.1
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.7.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.2
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.3.1
    ChimeraX-ChangeChains: 1.0.2
    ChimeraX-CheckWaters: 1.3
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.2.4
    ChimeraX-ColorActions: 1.0.3
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.2
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.6.dev202211190159
    ChimeraX-CoreFormats: 1.1
    ChimeraX-coulombic: 1.3.2
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.2
    ChimeraX-Dicom: 1.1
    ChimeraX-DistMonitor: 1.3
    ChimeraX-DockPrep: 1.0.1
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ESMFold: 1.0
    ChimeraX-ExperimentalCommands: 1.0
    ChimeraX-FileHistory: 1.0.1
    ChimeraX-FunctionKey: 1.0.1
    ChimeraX-Geometry: 1.2
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 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-Label: 1.1.7
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.5
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.2
    ChimeraX-Map: 1.1.2
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0.1
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1.1
    ChimeraX-Markers: 1.0.1
    ChimeraX-Mask: 1.0.1
    ChimeraX-MatchMaker: 2.0.9
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.2
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1
    ChimeraX-mmCIF: 2.9
    ChimeraX-MMTF: 2.2
    ChimeraX-Modeller: 1.5.7
    ChimeraX-ModelPanel: 1.3.6
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.1
    ChimeraX-MouseModes: 1.1.1
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.9.3
    ChimeraX-PDB: 2.6.9
    ChimeraX-PDBBio: 1.0
    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.0
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0.1
    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
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.8
    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
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.10
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.1
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.1.3
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1.2
    ChimeraX-ToolshedUtils: 1.2.1
    ChimeraX-Topography: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.25.2
    ChimeraX-uniprot: 2.2.1
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.1.6
    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.1
    ChimeraX-WebServices: 1.1.0
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.5
    cxservices: 1.2
    cycler: 0.11.0
    Cython: 0.29.32
    debugpy: 1.6.3
    decorator: 5.1.1
    docutils: 0.19
    entrypoints: 0.4
    executing: 1.2.0
    filelock: 3.7.1
    fonttools: 4.38.0
    funcparserlib: 1.0.1
    grako: 3.16.5
    h5py: 3.7.0
    html2text: 2020.1.16
    idna: 3.4
    ihm: 0.33
    imagecodecs: 2022.7.31
    imagesize: 1.4.1
    importlib-metadata: 5.0.0
    ipykernel: 6.15.3
    ipython: 8.4.0
    ipython-genutils: 0.2.0
    jedi: 0.18.1
    Jinja2: 3.1.2
    jupyter-client: 7.3.4
    jupyter-core: 5.0.0
    kiwisolver: 1.4.4
    line-profiler: 3.5.1
    lxml: 4.9.1
    lz4: 4.0.2
    MarkupSafe: 2.1.1
    matplotlib: 3.5.2
    matplotlib-inline: 0.1.6
    msgpack: 1.0.4
    nest-asyncio: 1.5.6
    netCDF4: 1.6.0
    networkx: 2.8.5
    numexpr: 2.8.4
    numpy: 1.23.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: 9.2.0
    pip: 22.2.2
    pkginfo: 1.8.3
    platformdirs: 2.5.4
    prompt-toolkit: 3.0.33
    psutil: 5.9.1
    ptyprocess: 0.7.0
    pure-eval: 0.2.2
    pycollada: 0.7.2
    pydicom: 2.3.0
    Pygments: 2.12.0
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 3.0.9
    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: 2022.6
    pyzmq: 24.0.1
    qtconsole: 5.3.1
    QtPy: 2.3.0
    RandomWords: 0.4.0
    requests: 2.28.1
    scipy: 1.9.0
    setuptools: 65.1.1
    setuptools-scm: 7.0.5
    sfftk-rw: 0.7.2
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    Sphinx: 5.1.1
    sphinx-autodoc-typehints: 1.19.1
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 2.0.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.5
    stack-data: 0.6.1
    tables: 3.7.0
    tifffile: 2022.7.31
    tinyarray: 1.2.4
    tomli: 2.0.1
    tornado: 6.2
    traitlets: 5.3.0
    typing-extensions: 4.4.0
    urllib3: 1.26.12
    wcwidth: 0.2.5
    webcolors: 1.12
    wheel: 0.37.1
    wheel-filename: 1.4.1
    zipp: 3.10.0

Change History (3)

comment:1 by Elaine Meng, 3 years ago

Component: UnassignedDICOM
Platform: all
Priority: normalmajor
Project: ChimeraX
Summary: ChimeraX bug report submissionclicking Model Panel Info to show DICOM Browser either gives traceback (Patient) or blank dialog (Study, Series)

choosing a Study or Series model and clicking Info gives a blank DICOM Browser dialog, except for the buttons which we would still hope to coalesce into one button as per discussion in email Oct 11, 2022.

comment:2 by Elaine Meng, 3 years ago

Milestone: 1.5
Owner: set to Zach Pearson
Status: newassigned

Same problem in ChimeraX 1.5 release candidate rc2022.11.18

comment:3 by Zach Pearson, 3 years ago

Resolution: fixed
Status: assignedclosed

This should be fixed tomorrow. The DICOM browser was rewritten to make it react to model added/removed triggers. The DICOM bundle now:

  • merges patients on open by patient ID
  • When patients are merged, studies are merged by study UID
  • when studies are merged, only unique series are kept because series UIDs are unique

If a problem arises with this logic it is a trivial change to prefer newer data.

When DICOM data is opened it is added or removed from the DICOM browser automatically.

All DICOM patients, studies, and series are shown in the DICOM browser by default. Highlighting a patient will narrow the data in the Studies and Series tables to Studies and Series for that patient.

Same for Studies: clicking a Study narrows the data in the Series table to just the series of that study.

The DICOM browser is now a singleton and the Info buttons correctly reflect that behavior.

The DICOM metadata viewer can now be called from the Model info panel like before.

The DICOM browser's 3 buttons have been consolidated into 1 that only deals with Series (I'll keep looking for a way to tell which table was the last one focused and take that into account to e.g. open all the series for a patient).

Note: See TracTickets for help on using tickets.