Opened 15 months ago
Closed 15 months ago
#15715 closed defect (duplicate)
White pixel artifacts
Reported by: | Owned by: | Zach Pearson | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Volume Data | 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-14.5-arm64-arm-64bit ChimeraX Version: 1.9.dev202407310607 (2024-07-31 06:07:26 UTC) Description Default thresholds in projection mode give "hot pixel" appearance with EM maps. Hi, When I use the projection display in the Map toolbar, it looks good except that there are some "hot/white" voxels - even in cases where the map is symmetric and they shouldn't be there. I suspect this is some artefact, as reducing the last (right most) threshold in Vol viewer removes them. Would it be possible to adjust the default thresholds so that this doesn't happen? As an example, try EMD-9118. Log: Startup Messages --- note | available bundle cache has not been initialized yet > runscript /Users/oc2188/Dropbox/chimera_startup/chimerax_startup.py > camera ortho > cofr centerOfView > mousemode alt rightMode "contour level" > mousemode rightMode clip > mousemode alt leftMode "translate selected models" > mousemode shift leftMode "rotate selected models" > mousemode alt control leftMode "pick blobs" > alias cofron cofr centerofview showpivot 7,0.25 > alias cofroff cofr centerofview showpivot false > alias symclip cofr centerofview; clip near -$1 far $1 position cofr > alias cootmode set bgColor black; surface cap false; surface style solid; > lighting flat; graphics silhouettes false; style stick; ~rib; color > ##num_residues gold; color byhet ; disp; ~disp @H*; style ions ball; style > solvent ball; size ballscale 0.2; size stickradius 0.07; transparency 70; > cofr centerofview; clip near -10 far 10 position cofr; color ~##num_residues > cornflower blue > alias cootmode_mesh surface cap false; surface style mesh; lighting flat; > graphics silhouettes false; style stick; ~rib; color ##num_residues gold; > color byhet ; disp; ~disp @H*; style solvent ball; style ions ball; size > ballscale 0.2; size stickradius 0.07; cofr centerofview; clip near -10 far > 10 position cofr; color ~##num_residues #3d60ffff; transparency 50 > alias project_map set bgColor black; lighting depthcue false; volume $1 > style image sdlevel 0,0 color white sdlevel 100,0.15 color white > projectionmode 3d maximumIntensityProjection false dimTransparentVoxels > false btcorrection true showOutlineBox false linearinterpolation true > alias ca_and_sidechains ~rib $1; ~surf $1; ~disp $1; disp @CA&protein&$1; > disp @P&nucleic&$1; style $1 stick; disp sidechain&$1; disp > ~backbone&nucleic&$1; size stickradius 0.1; size pseudobondradius 0.1 > alias ca_trace ~rib $1; ~surf $1; ~disp $1; disp @CA&protein&$1; disp > @P&nucleic&$1; style $1 stick; size stickradius 0.1; size pseudobondradius > 0.1 > alias map_sphere_15 volume unzone ~##num_residues; sel; close #10000; marker > #10000 position cofr; sel ~sel; volume zone ~##num_residues nearAtoms sel > minimalBounds true range 15; close #10000 > alias map_unsphere volume unzone ~##num_residues > alias default_mol_display ~disp; rib; rainbow chain palette RdYlBu-5; > lighting soft > alias hidemaps surface unzone ~##num_residues; sel; close #10000; marker > #10000 position cofr; sel ~sel; surface zone ~##num_residues nearAtoms sel > distance 0; close #10000 > alias showmaps surface unzone ~##num_residues > alias caps_off surface cap false > alias caps_on surface cap true > alias open_vseries "open browse vseries true" > alias selbetween ks ri > alias helix setattr $1 res is_helix true > alias strand setattr $1 res is_strand true > alias coil setattr $1 res is_strand false; setattr $1 res is_helix false > alias rock_movie cofr showpivot false; movie record; rock y 30; wait 136; > movie encode ~/Desktop/rock_movie.mp4; stop > buttonpanel Shortcuts rows 3 columns 5 > buttonpanel Shortcuts add Vol_Viewer command "tool show 'Volume Viewer'" > buttonpanel Shortcuts add Model_Panel command "tool show Models" > buttonpanel Shortcuts add Log command "tool show Log" > buttonpanel Shortcuts add default_disp command default_mol_display > buttonpanel Shortcuts add map_sphere command map_sphere_15 > buttonpanel Shortcuts add map_unsphere command map_unsphere > buttonpanel Shortcuts add cofron command cofron > buttonpanel Shortcuts add cofroff command cofroff > buttonpanel Shortcuts add cootmode command cootmode > buttonpanel Shortcuts add mark_cofr command "marker #20000 position cofr > radius 1" > buttonpanel Shortcuts add hidemaps command hidemaps > buttonpanel Shortcuts add showmaps command showmaps > buttonpanel Shortcuts add reset_mouse command "mousemode alt right contour ; > mousemode right clip ; mousemode alt left 'translate selected models' ; > mousemode shift left 'rotate selected models' ; mousemode alt control left > 'pick blobs'; help https://github.com/olibclarke/chimerax- > trimmings/blob/main/default_mousemodes.md" > buttonpanel Shortcuts add previous_model command prevmodel > buttonpanel Shortcuts add next_model command nextmodel > volume defaultvalues limitVoxelCount false voxelLimitForPlane > 1000000000000000 voxelLimitForOpen 1000000000000000 saveSettings true Saved volume settings UCSF ChimeraX version: 1.9.dev202407310607 (2024-07-31) © 2016-2024 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open /Users/oc2188/Downloads/cryosparc_P35_J287_002_volume_map.mrc format > mrc Opened cryosparc_P35_J287_002_volume_map.mrc as #1, grid size 128,128,128, pixel 6.6, shown at level 1.25, step 1, values float32 > volume region all imageMode "full region" > volume unzone > mousemode rightMode "crop volume" > volume projectionMode rays > volume projectionMode 3d > volume projectionMode 2d-xyz > volume projectionMode rays > ui mousemode right windowing > symclip 100 > volume step 2 > volume projectionMode 3d > volume step 1 > view orient > close all > open > /Users/oc2188/Downloads/cryosparc_P48_J708_00117_volume_series/J708_class_04_00117_volume.mrc > format mrc Opened J708_class_04_00117_volume.mrc as #1, grid size 100,100,100, pixel 2.82, shown at level 0.214, step 1, values float32 > volume region all imageMode "full region" > volume unzone > mousemode rightMode "crop volume" > volume appearance initial > tool show 'Volume Viewer' > volume #1 level -0.0226,0 level 0.2135,0.8 level 1.797,0.9853 > close all > open /Users/oc2188/Downloads/cryosparc_P35_J287_002_volume_map.mrc format > mrc Opened cryosparc_P35_J287_002_volume_map.mrc as #1, grid size 128,128,128, pixel 6.6, shown at level 1.25, step 1, values float32 > volume region all imageMode "full region" > volume unzone > mousemode rightMode "crop volume" > volume appearance initial > tool show 'Volume Viewer' > volume #1 level -0.09246,0 level 1.25,0.8 level 2.515,0.9853 > close all > open emdb:9118 Opened emdb 9118 as #1, grid size 192,192,192, pixel 1.23, shown at level 0.04, step 1, values float32, fit PDB 6mhu > volume region all imageMode "full region" > volume unzone > mousemode rightMode "crop volume" > tool show 'Volume Viewer' [Repeated 1 time(s)] > volume #1 level -0.01442,0 level 0.03924,0.8 level 0.2998,1 > volume #1 level -0.01442,0 level 0.03924,0.8 level 0.2998,0.9706 OpenGL version: 4.1 Metal - 88.1 OpenGL renderer: Apple M2 Max OpenGL vendor: Apple Python: 3.11.4 Locale: UTF-8 Qt version: PyQt6 6.7.0, Qt 6.7.1 Qt runtime version: 6.7.2 Qt platform: cocoa Hardware: Hardware Overview: Model Name: MacBook Pro Model Identifier: Mac14,5 Model Number: Z17J00171LL/A Chip: Apple M2 Max Total Number of Cores: 12 (8 performance and 4 efficiency) Memory: 64 GB System Firmware Version: 10151.121.1 OS Loader Version: 10151.121.1 Software: System Software Overview: System Version: macOS 14.5 (23F79) Kernel Version: Darwin 23.5.0 Time since boot: 15 minutes, 40 seconds Graphics/Displays: Apple M2 Max: Chipset Model: Apple M2 Max Type: GPU Bus: Built-In Total Number of Cores: 30 Vendor: Apple (0x106b) Metal Support: Metal 3 Displays: Color LCD: Display Type: Built-in Liquid Retina XDR Display Resolution: 3024 x 1964 Retina Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: Yes Connection Type: Internal Installed Packages: alabaster: 0.7.16 appdirs: 1.4.4 appnope: 0.1.4 asttokens: 2.4.1 Babel: 2.15.0 beautifulsoup4: 4.12.3 blockdiag: 3.0.0 blosc2: 2.0.0 build: 1.2.1 certifi: 2023.11.17 cftime: 1.6.4 charset-normalizer: 3.3.2 ChimeraX-AddCharge: 1.5.17 ChimeraX-AddH: 2.2.6 ChimeraX-AlignmentAlgorithms: 2.0.2 ChimeraX-AlignmentHdrs: 3.5 ChimeraX-AlignmentMatrices: 2.1 ChimeraX-Alignments: 2.14 ChimeraX-AlphaFold: 1.0.1 ChimeraX-AltlocExplorer: 1.1.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.1 ChimeraX-Atomic: 1.58.4 ChimeraX-AtomicLibrary: 14.1.3 ChimeraX-AtomSearch: 2.0.1 ChimeraX-AxesPlanes: 2.4 ChimeraX-BasicActions: 1.1.2 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 2.4.6 ChimeraX-BondRot: 2.0.4 ChimeraX-BugReporter: 1.0.1 ChimeraX-BuildStructure: 2.13 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.2.7 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.4 ChimeraX-ChemGroup: 2.0.1 ChimeraX-Clashes: 2.2.4 ChimeraX-ColorActions: 1.0.5 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5.6 ChimeraX-CommandLine: 1.2.5 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0.1 ChimeraX-Core: 1.9.dev202407310607 ChimeraX-CoreFormats: 1.2 ChimeraX-coulombic: 1.4.4 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0.1 ChimeraX-DataFormats: 1.2.3 ChimeraX-DeepMutationalScan: 1.0 ChimeraX-Dicom: 1.2.4 ChimeraX-DiffPlot: 1.0 ChimeraX-DistMonitor: 1.4.2 ChimeraX-DockPrep: 1.1.3 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ESMFold: 1.0 ChimeraX-FileHistory: 1.0.1 ChimeraX-Foldseek: 1.0.1 ChimeraX-FunctionKey: 1.0.1 ChimeraX-Geometry: 1.3 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.4 ChimeraX-Hbonds: 2.4 ChimeraX-Help: 1.3 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.10 ChimeraX-ListInfo: 1.2.2 ChimeraX-Log: 1.1.7 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.9.1 ChimeraX-Map: 1.3 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.5 ChimeraX-MCopy: 1.0 ChimeraX-MDcrds: 2.7.1 ChimeraX-MedicalToolbar: 1.1 ChimeraX-Meeting: 1.0.1 ChimeraX-MLP: 1.1.1 ChimeraX-mmCIF: 2.14.1 ChimeraX-MMTF: 2.2 ChimeraX-Modeller: 1.5.17 ChimeraX-ModelPanel: 1.5 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.2 ChimeraX-NMRSTAR: 1.0.2 ChimeraX-NRRD: 1.2 ChimeraX-Nucleotides: 2.0.3 ChimeraX-OpenCommand: 1.13.5 ChimeraX-OrthoPick: 1.0.1 ChimeraX-PDB: 2.7.6 ChimeraX-PDBBio: 1.0.1 ChimeraX-PDBLibrary: 1.0.4 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0.1 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.1.2 ChimeraX-PubChem: 2.2 ChimeraX-ReadPbonds: 1.0.1 ChimeraX-Registration: 1.1.2 ChimeraX-RemoteControl: 1.0 ChimeraX-RenderByAttr: 1.4.2 ChimeraX-RenumberResidues: 1.1 ChimeraX-ResidueFit: 1.0.1 ChimeraX-RestServer: 1.3 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-Segmentations: 3.1.6 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.13 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0.1 ChimeraX-Shortcuts: 1.2.0 ChimeraX-ShowSequences: 1.0.3 ChimeraX-SideView: 1.0.1 ChimeraX-Smiles: 2.1.2 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.18 ChimeraX-STL: 1.0.1 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 1.2.1 ChimeraX-Struts: 1.0.1 ChimeraX-Surface: 1.0.1 ChimeraX-SwapAA: 2.0.1 ChimeraX-SwapRes: 2.5 ChimeraX-TapeMeasure: 1.0 ChimeraX-TaskManager: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.2.3 ChimeraX-ToolshedUtils: 1.2.4 ChimeraX-Topography: 1.0 ChimeraX-ToQuest: 1.0 ChimeraX-Tug: 1.0.1 ChimeraX-UI: 1.39.8 ChimeraX-uniprot: 2.3.1 ChimeraX-UnitCell: 1.0.1 ChimeraX-ViewDockX: 1.4.3 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.4 ChimeraX-Zone: 1.0.1 colorama: 0.4.6 comm: 0.2.2 contourpy: 1.2.1 cxservices: 1.2.2 cycler: 0.12.1 Cython: 3.0.10 debugpy: 1.8.2 decorator: 5.1.1 docutils: 0.20.1 executing: 2.0.1 filelock: 3.13.4 fonttools: 4.53.1 funcparserlib: 2.0.0a0 glfw: 2.7.0 grako: 3.16.5 h5py: 3.11.0 html2text: 2024.2.26 idna: 3.7 ihm: 1.3 imagecodecs: 2024.6.1 imagesize: 1.4.1 ipykernel: 6.29.5 ipython: 8.26.0 ipywidgets: 8.1.3 jedi: 0.19.1 Jinja2: 3.1.4 jupyter_client: 8.6.2 jupyter_core: 5.7.2 jupyterlab_widgets: 3.0.11 kiwisolver: 1.4.5 line-profiler: 4.1.2 lxml: 5.2.1 lz4: 4.3.3 MarkupSafe: 2.1.5 matplotlib: 3.9.1 matplotlib-inline: 0.1.7 msgpack: 1.0.8 nest-asyncio: 1.6.0 netCDF4: 1.6.5 networkx: 3.3 nibabel: 5.2.0 nptyping: 2.5.0 numexpr: 2.10.1 numpy: 1.26.4 openvr: 1.26.701 packaging: 23.2 ParmEd: 4.2.2 parso: 0.8.4 pep517: 0.13.1 pexpect: 4.9.0 pillow: 10.4.0 pip: 24.1.2 pkginfo: 1.10.0 platformdirs: 4.2.2 prompt_toolkit: 3.0.47 psutil: 5.9.8 ptyprocess: 0.7.0 pure_eval: 0.2.3 py-cpuinfo: 9.0.0 pycollada: 0.8 pydicom: 2.4.4 Pygments: 2.17.2 pynmrstar: 3.3.4 pynrrd: 1.0.0 PyOpenGL: 3.1.7 PyOpenGL-accelerate: 3.1.7 pyopenxr: 1.0.3401 pyparsing: 3.1.2 pyproject_hooks: 1.1.0 PyQt6-commercial: 6.7.0 PyQt6-Qt6: 6.7.2 PyQt6-sip: 13.6.0 PyQt6-WebEngine-commercial: 6.7.0 PyQt6-WebEngine-Qt6: 6.7.2 PyQt6-WebEngineSubwheel-Qt6: 6.7.2 python-dateutil: 2.9.0.post0 pytz: 2024.1 pyzmq: 26.0.3 qtconsole: 5.5.2 QtPy: 2.4.1 RandomWords: 0.4.0 requests: 2.32.3 scipy: 1.14.0 setuptools: 70.3.0 setuptools-scm: 8.0.4 sfftk-rw: 0.8.1 six: 1.16.0 snowballstemmer: 2.2.0 sortedcontainers: 2.4.0 soupsieve: 2.5 Sphinx: 7.2.6 sphinx-autodoc-typehints: 2.0.1 sphinxcontrib-applehelp: 2.0.0 sphinxcontrib-blockdiag: 3.0.0 sphinxcontrib-devhelp: 2.0.0 sphinxcontrib-htmlhelp: 2.1.0 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 2.0.0 sphinxcontrib-serializinghtml: 2.0.0 stack-data: 0.6.3 superqt: 0.6.3 tables: 3.8.0 tcia_utils: 1.5.1 tifffile: 2024.7.24 tinyarray: 1.2.4 tornado: 6.4.1 traitlets: 5.14.2 typing_extensions: 4.12.2 tzdata: 2024.1 urllib3: 2.2.2 wcwidth: 0.2.13 webcolors: 1.13 wheel: 0.43.0 wheel-filename: 1.4.1 widgetsnbextension: 4.0.11 File attachment: Screenshot 2024-08-01 at 1.40.25 PM.png
Attachments (1)
Change History (6)
by , 15 months ago
Attachment: | Screenshot 2024-08-01 at 1.40.25 PM.png added |
---|
comment:1 by , 15 months ago
Cc: | added |
---|---|
Component: | Unassigned → Volume Data |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → White pixel artifacts |
comment:2 by , 15 months ago
I don't see an issue with making the last threshold 0.999999 instead of 1 in the default colormap. What do you think, Tom?
comment:3 by , 15 months ago
The problem is that rendering opacity is very sensitive to that brightness/opacity curve value near the top (value 1.0). It would be nice to work out an interface or calculation that is not so sensitive and there is a longstanding ticket about this already #8183
I do not think it should be hacked by changing the default thresholds from 1 to 0.999.... That doesn't address the main issue that when you hand adjust to get best appearance the sensitivity makes it very difficult to get the apperance you want.
All that said, that problem has received little attention because the use of volume rendering in EM is minimal, so there are usually about 100 higher priority problems to work on.
One small tip. To fix the bright pixels it is generally easier to move the height 1.0 part of the curve to a higher threshold level by typing in a new value than to try to adjust its height with the mouse or a command. So for EMDB 9118 the largest intensity is 0.2998, and if you click on the right most node on the brightness curve in Volume Viewer and type in 0.3 for its level that removes the hot spot. I agree you should not have to do this tweak. But really the variation of the brightness at values near 1 needs to vary in a different way to improve the entire visualization. The current way it works took months of development 20 years ago, and it could certainly be done better.
comment:4 by , 15 months ago
One more thought to explain why I think the problem needs more then some tweek to get rid of hotspots. If you try to adjust the display for EMDB 9118 to show a more informative view you mostly end up moving around the middle node of the yellow curve on the histogram. If you move it up towards the top you get some interesting and useful variation in intensity, but it is so extremely sensitive to how high you move it that you can't get the best appearance. In fact it needs something other than the current linear opacity variation, and the right way to vary the opacity and the right shape of brightness curve (most serious photo editting software uses smooth splines, not piecewise linear curves as in Volume Viewer), is substantial problem, the subject of ticket #8183.
comment:5 by , 15 months ago
Resolution: | → duplicate |
---|---|
Status: | assigned → closed |
Thanks for the thorough explanation! Let's call this a duplicate of #8183 and add Oli to the cclist of that ticket.
Added by email2trac