Opened 3 years ago
Last modified 15 months ago
#8183 assigned enhancement
Volume image opacity is too sensitive where brightness curve is near top of histogram
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Volume Data | Version: | |
| Keywords: | Cc: | Zach Pearson, olibclarke@… | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description (last modified by )
The following bug report has been submitted:
Platform: macOS-12.6-x86_64-i386-64bit
ChimeraX Version: 1.6.dev202211082330 (2022-11-08 23:30:49 UTC)
Description
Opacity changes in image style volume rendering are too sensitive when many planes are shown (e.g. 100) and the transfer function is near 1 (top of histogram). It goes from rather transparent to fully opaque with just a tiny change of height of the brightness curve on the histogram.
The per-plane opacity is determined as alpha_plane = 1 - (1-alpha_curve)**(1/nplanes). The nplanes equals the number of displayed planes times the transparency depth parameter (default 0.5). If nplanes = 100 and alpha_curve = 0.99 then alpha_plane = 0.045. To get alpha_plane close to 1 requires an absurdly close alpha_curve value to 1, for instance alpha_curve = 1 - 1e-30 gives alpha_plane = 0.5.
The interactive adjustment of the brightness curve height works very poorly to control opacity near height 1.
Log:
Could not find tool "Tabbed Toolbar"
UCSF ChimeraX version: 1.6.dev202211082330 (2022-11-08)
© 2016-2022 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open /Users/goddard/ucsf/data/isonet/neuron/synapse-bin4-5i-demo.rec format
> imodmap
Opened synapse-bin4-5i-demo.rec as #1, grid size 530,831,214, pixel 4, shown
at level 66, step 2, values int8
> volume #1 style image region 0,0,106,529,830,106 step 1 showOutlineBox true
> volume #1 level 46,0 level 68,0.8 level 115,1
> volume #1 level 46,0 level 65.26,0.9853 level 115,1
> ui mousemode right "crop volume"
> volume #1 region 0,0,106,529,830,132
> volume #1 level 46,0 level 61.76,0.7941 level 115,1
> volume #1 level 46,0 level 63.51,0.1471 level 115,1
> volume #1 level 46,0 level 63.51,0.9853 level 115,1
> volume #1 region 0,0,106,529,830,195
> volume #1 level 46,0 level 61.8,1 level 115,1
> volume #1 level 46,0 level 61.8,0.8971 level 115,1
> volume #1 level 46,0 level 61.12,0.8971 level 115,1
> volume #1 level 46,0 level 61.46,0.8824 level 115,1
> volume #1 transparencydepth 0.1
Expected a keyword
> help volume
> volume #1 transparency .1
> volume #1 level 46,0 level 63.17,0.6912 level 115,1
> volume #1 level 46,0 level 61.8,0.9265 level 115,1
> volume #1 transparency .5
> volume #1 transparency .1
> volume #1 level 55.89,0 level 61.8,0.9265 level 115,1
> volume #1 level 55.89,0 level 62.83,1 level 115,1
> volume #1 level 54.53,0.02941 level 62.83,1 level 115,1
> volume #1 transparency 1
> volume #1 level 54.53,0.02941 level 64.53,0.9706 level 115,1
> volume #1 level 44.64,0.05882 level 64.53,0.9706 level 115,1
OpenGL version: 4.1 ATI-4.8.101
OpenGL renderer: AMD Radeon Pro 580 OpenGL Engine
OpenGL vendor: ATI Technologies Inc.
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: iMac
Model Identifier: iMac18,3
Processor Name: Quad-Core Intel Core i7
Processor Speed: 4.2 GHz
Number of Processors: 1
Total Number of Cores: 4
L2 Cache (per Core): 256 KB
L3 Cache: 8 MB
Hyper-Threading Technology: Enabled
Memory: 32 GB
System Firmware Version: 451.140.1.0.0
OS Loader Version: 540.120.3~22
SMC Version (system): 2.41f2
Software:
System Software Overview:
System Version: macOS 12.6 (21G115)
Kernel Version: Darwin 21.6.0
Time since boot: 83 days 23:08
Graphics/Displays:
Radeon Pro 580:
Chipset Model: Radeon Pro 580
Type: GPU
Bus: PCIe
PCIe Lane Width: x16
VRAM (Total): 8 GB
Vendor: AMD (0x1002)
Device ID: 0x67df
Revision ID: 0x00c0
ROM Revision: 113-D000AA-931
VBIOS Version: 113-D0001A1X-025
EFI Driver Version: 01.00.931
Metal Family: Supported, Metal GPUFamily macOS 2
Displays:
iMac:
Display Type: Built-In Retina LCD
Resolution: Retina 5K (5120 x 2880)
Framebuffer Depth: 30-Bit Color (ARGB2101010)
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.0.8
Babel: 2.10.3
backcall: 0.2.0
blockdiag: 3.0.0
build: 0.8.0
certifi: 2022.9.24
cftime: 1.6.2
charset-normalizer: 2.1.1
ChimeraX-AddCharge: 1.4
ChimeraX-AddH: 2.2
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2.2
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 2.7
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.4
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.6.dev202211082330
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
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.3
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.6
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.1
ChimeraX-PDB: 2.6.8
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
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.7.3
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.1
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.24.2
ChimeraX-uniprot: 2.2.1
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDockX: 1.1.3
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
contourpy: 1.0.6
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.1.1
filelock: 3.7.1
fonttools: 4.37.4
funcparserlib: 1.0.0
grako: 3.16.5
h5py: 3.7.0
html2text: 2020.1.16
idna: 3.4
ihm: 0.35
imagecodecs: 2022.9.26
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: 4.11.2
kiwisolver: 1.4.4
line-profiler: 3.5.1
lxml: 4.9.1
lz4: 4.0.2
MarkupSafe: 2.1.1
matplotlib: 3.6.2
matplotlib-inline: 0.1.6
msgpack: 1.0.4
nest-asyncio: 1.5.6
netCDF4: 1.6.0
networkx: 2.8.8
numexpr: 2.8.3
numpy: 1.23.5
openvr: 1.23.701
opt-einsum: 3.3.0
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: 22.2.2
pkginfo: 1.8.3
prompt-toolkit: 3.0.31
psutil: 5.9.4
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: 6.3.1
PyQt6-Qt6: 6.3.2
PyQt6-sip: 13.4.0
PyQt6-WebEngine: 6.3.1
PyQt6-WebEngine-Qt6: 6.3.2
python-dateutil: 2.8.2
pytz: 2022.5
pyzmq: 24.0.1
qtconsole: 5.3.1
QtPy: 2.2.1
RandomWords: 0.4.0
requests: 2.28.1
scipy: 1.9.3
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.5.1
tables: 3.7.0
tifffile: 2022.10.10
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.9.0
Change History (3)
comment:1 by , 3 years ago
| Component: | Unassigned → Volume Data |
|---|---|
| Description: | modified (diff) |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Volume image opacity is too sensitive where brightness curve is near top of histogram |
| Type: | defect → enhancement |
comment:2 by , 3 years ago
I don't have a good idea about how to improve the opacity sensitivity when many planes are shown (> 30). It needs to both handle the high opacity region and also give useful opacity variation in linear ramps from 0 to 1. It will need more study. Also if the user switches from subsampling step 4 to 2 to 1 it should give similar appearances. The thickness of objects in the 3D image and other properties of the image data are likely to influence what the best opacity curve interpretation is.
If I come up with a better way to interpret the brightness/opacity curve there is the additional issue of how to allow past sessions to still reproduce the old behavior while new sessions give the improved behavior.
comment:3 by , 15 months ago
| Cc: | added |
|---|---|
| Description: | modified (diff) |
Setting the transparency depth to be a smaller fraction of the total thickness (default is 0.5)
has the bad effect of making the linear part of the brightness curve ramping from 0 up to 1 much more opaque. Also almost no user is aware of this parameter so having them directly modify it is not feasible.