Opened 2 years ago
Last modified 2 years ago
#9859 assigned enhancement
"positive contour" mousemode
Reported by: | Owned by: | Tom Goddard | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | UI | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: macOS-13.5.2-arm64-arm-64bit ChimeraX Version: 1.7.dev202309270131 (2023-09-27 01:31:04 UTC) Description Hi, I use the "contour" mousemode a lot, and it is extremely convenient. One issue I run into is that I often accidentally drag to a negative contour without realizing, resulting in uninterpretable density. For EM maps, there is almost never reason to inspect the map with a negative contour. Would it be possible to add a "positive contour" mousemode, that limits thresholds to positive values? One might also consider a "negative contour" mousemode - the two together could be useful for difference maps. Cheers Oli Log: > 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 true > 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 surface unzone ##~num_residues; sel; close #10000; > marker #10000 position cofr; sel ~sel; surface zone ##~num_residues > nearAtoms sel distance 15; close #10000 > alias map_unsphere surface 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 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 > buttonpanel Shortcuts rows 3 columns 4 > 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 #10000 position cofr" > buttonpanel Shortcuts add hidemaps command hidemaps > buttonpanel Shortcuts add showmaps command showmaps > volume defaultvalues limitVoxelCount false voxelLimitForPlane > 1000000000000000 voxelLimitForOpen 1000000000000000 saveSettings true Saved volume settings UCSF ChimeraX version: 1.7.dev202309270131 (2023-09-27) © 2016-2023 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open > /Users/oc2188/Downloads/rosie_flvcr2/FLVCR2_OFS_cryosparc_P153_J256_005_volume_map_sharp_z_flipped.mrc > format mrc Opened FLVCR2_OFS_cryosparc_P153_J256_005_volume_map_sharp_z_flipped.mrc as #1, grid size 360,360,360, pixel 0.83, shown at level 0.0693, step 1, values float32 > volume #1 level 0.1857 OpenGL version: 4.1 Metal - 83.1 OpenGL renderer: Apple M2 Max OpenGL vendor: Apple Python: 3.11.2 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: 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: 8422.141.2 OS Loader Version: 8422.141.2 Software: System Software Overview: System Version: macOS 13.5.2 (22G91) Kernel Version: Darwin 22.6.0 Time since boot: 4 days, 16 hours, 15 minutes 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.13 appdirs: 1.4.4 appnope: 0.1.3 asttokens: 2.4.0 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.2.0 ChimeraX-AddCharge: 1.5.11 ChimeraX-AddH: 2.2.5 ChimeraX-AlignmentAlgorithms: 2.0.1 ChimeraX-AlignmentHdrs: 3.4.1 ChimeraX-AlignmentMatrices: 2.1 ChimeraX-Alignments: 2.11.1 ChimeraX-AlphaFold: 1.0 ChimeraX-AltlocExplorer: 1.1.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.1 ChimeraX-Atomic: 1.48 ChimeraX-AtomicLibrary: 10.1 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.5 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.3 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.4 ChimeraX-CommandLine: 1.2.5 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0.1 ChimeraX-Core: 1.7.dev202309270131 ChimeraX-CoreFormats: 1.2 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.2 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.8 ChimeraX-ListInfo: 1.2.1 ChimeraX-Log: 1.1.6 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.9.1 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.2 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.1 ChimeraX-MMTF: 2.2 ChimeraX-Modeller: 1.5.12 ChimeraX-ModelPanel: 1.4 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.1 ChimeraX-NRRD: 1.1 ChimeraX-Nucleotides: 2.0.3 ChimeraX-OpenCommand: 1.11 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.2 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: 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.1 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0.1 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.10 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0.1 ChimeraX-Shortcuts: 1.1.1 ChimeraX-ShowSequences: 1.0.2 ChimeraX-SideView: 1.0.1 ChimeraX-Smiles: 2.1.2 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.12.2 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.2 ChimeraX-TapeMeasure: 1.0 ChimeraX-TaskManager: 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.32.2 ChimeraX-uniprot: 2.3 ChimeraX-UnitCell: 1.0.1 ChimeraX-ViewDockX: 1.3.1 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.2 ChimeraX-Zone: 1.0.1 colorama: 0.4.6 comm: 0.1.4 contourpy: 1.1.1 cxservices: 1.2.2 cycler: 0.11.0 Cython: 0.29.33 debugpy: 1.8.0 decorator: 5.1.1 docutils: 0.19 executing: 1.2.0 filelock: 3.9.0 fonttools: 4.42.1 funcparserlib: 1.0.1 glfw: 2.6.2 grako: 3.16.5 h5py: 3.9.0 html2text: 2020.1.16 idna: 3.4 ihm: 0.38 imagecodecs: 2023.7.10 imagesize: 1.4.1 ipykernel: 6.23.2 ipython: 8.14.0 ipython-genutils: 0.2.0 ipywidgets: 8.1.1 jedi: 0.18.2 Jinja2: 3.1.2 jupyter-client: 8.2.0 jupyter-core: 5.3.1 jupyterlab-widgets: 3.0.9 kiwisolver: 1.4.5 line-profiler: 4.0.2 lxml: 4.9.2 lz4: 4.3.2 MarkupSafe: 2.1.3 matplotlib: 3.7.2 matplotlib-inline: 0.1.6 msgpack: 1.0.4 nest-asyncio: 1.5.8 netCDF4: 1.6.2 networkx: 3.1 nibabel: 5.0.1 nptyping: 2.5.0 numexpr: 2.8.7 numpy: 1.25.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: 10.0.0 pip: 23.0 pkginfo: 1.9.6 platformdirs: 3.10.0 prompt-toolkit: 3.0.39 psutil: 5.9.5 ptyprocess: 0.7.0 pure-eval: 0.2.2 py-cpuinfo: 9.0.0 pycollada: 0.7.2 pydicom: 2.3.0 Pygments: 2.16.1 pynrrd: 1.0.0 PyOpenGL: 3.1.7 PyOpenGL-accelerate: 3.1.7 pyopenxr: 1.0.2801 pyparsing: 3.0.9 pyproject-hooks: 1.0.0 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: 2023.3.post1 pyzmq: 25.1.1 qtconsole: 5.4.3 QtPy: 2.4.0 RandomWords: 0.4.0 requests: 2.31.0 scipy: 1.11.1 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.5 sphinx: 6.1.3 sphinx-autodoc-typehints: 1.22 sphinxcontrib-applehelp: 1.0.7 sphinxcontrib-blockdiag: 3.0.0 sphinxcontrib-devhelp: 1.0.5 sphinxcontrib-htmlhelp: 2.0.4 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.6 sphinxcontrib-serializinghtml: 1.1.9 stack-data: 0.6.2 superqt: 0.5.0 tables: 3.8.0 tcia-utils: 1.5.1 tifffile: 2023.7.18 tinyarray: 1.2.4 tomli: 2.0.1 tornado: 6.3.3 traitlets: 5.9.0 typing-extensions: 4.8.0 tzdata: 2023.3 urllib3: 2.0.5 wcwidth: 0.2.6 webcolors: 1.12 wheel: 0.38.4 wheel-filename: 1.4.1 widgetsnbextension: 4.0.9
Change History (5)
comment:1 by , 2 years ago
Component: | Unassigned → UI |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → "positive contour" mousemode |
Type: | defect → enhancement |
comment:2 by , 2 years ago
comment:3 by , 2 years ago
This would need a more convincing argument for its utility.
I don't understand how you can easily change to negative contour levels and not notice. With most maps it is visually obvious as you transition through 0 because you get a massive mess of contours. I'm inclined to think restricting to positive level is very rarely useful. I can't see devoting user interface space to such a feature. If it is not in the user interface it is unlikely anyone will use it.
comment:4 by , 2 years ago
My point was more that we almost never need negative contours, and I’m not sure when transitioning through zero is useful, at least with EM maps. So to me, restricting the range of values makes sense, because then I can scroll down to the end of the range and hit zero, rather than ending up, as you say, in a massive mess of contours. Zero is the natural end point IMO, and we will often want to be close to but not below zero - so I would rather that it were made easier not to overshoot. If it was a command line option for the contour mouse mode, I would use it by default, and I can guarantee that other EM folks who are made aware of its existence would too. Negative density in an EM map that is not a difference map is very rarely of any value for visualization purposes - maybe I am missing something though? Cheers Oli
comment:5 by , 2 years ago
Before you hit 0 you reach the mass of contours. In general in ChimeraX we try not to block users from doing things (e.g. going to negative contour levels). The idea is to rely on their skill in using the software rather than restricting them so they don't shoot themselves in the foot. ChimeraX users look at many different kinds of maps, some where negative levels are of use, even with EM, for instance tomograms often use signed values and the negative values are the high density regions. ChimeraX has no way to distinguish a tomogram from a single-particle map. Making positive contours only a command option is possible, but I believe almost no one will find this or use it. Your opinion may differ. But we have a vast number of features people request, and ones that will be extensively used get the most attention.
Reported by Oli Clarke