Opened 4 weeks ago
Closed 4 weeks ago
#19076 closed defect (fixed)
Deep mutational scan histogram scrolling to zoom is wonky
| 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-15.6.1-arm64-arm-64bit
ChimeraX Version: 1.11.dev202510070226 (2025-10-07 02:26:44 UTC)
Description
Scrolling (two finger drag on Mac trackpad) on a mutation score histogram with logarithmic scale does something bad pushing the bottom of the histogram out of view below the plot, and reversing the scroll does not fix it. Right mouse for translating the plot also behaves weird with the logarithmic y-axis.
Log:
UCSF ChimeraX version: 1.11.dev202510070226 (2025-10-07)
© 2016-2025 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open /Users/goddard/ucsf/people/howard/lilace_scores_wide_all.csv
Summary of feedback from opening
/Users/goddard/ucsf/people/howard/lilace_scores_wide_all.csv
---
note | Plotted 7827 mutations with effect_Buprenorphine on x-axis and effect_C6guano on y-axis
Opened deep mutational scan data for 7830 mutations of 399 residues with score
names effect_Buprenorphine, effect_C6guano, effect_DAMGO, effect_FSK,
effect_Morphine, effect_Naloxone, effect_PZM21, effect_TRV130,
effect_carfentanil, effect_fentanyl, effect_mitragynine, effect_surface, pos.
> select clear
> mutationscores histogram effect_FSK mutationSet lilace_scores_wide_all
Plotted 7828 scores having range -1.51 to 0.516 for effect_FSK
/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/interfaces/graph.py:125: UserWarning: Attempt to set non-
positive ylim on a log-scaled axis will be ignored.
a.set_ylim(ny0, ny1)
/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/interfaces/graph.py:107: UserWarning: Attempt to set non-
positive ylim on a log-scaled axis will be ignored.
a.set_ylim(ny0, ny1)
> select clear
> mutationscores histogram effect_FSK mutationSet lilace_scores_wide_all
Plotted 7828 scores having range -1.51 to 0.516 for effect_FSK
/Users/goddard/ucsf/chimerax/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/interfaces/graph.py:107: UserWarning: Attempt to set non-
positive ylim on a log-scaled axis will be ignored.
a.set_ylim(ny0, ny1)
OpenGL version: 4.1 Metal - 89.4
OpenGL renderer: Apple M2 Ultra
OpenGL vendor: Apple
Python: 3.11.9
Locale: en_US.UTF-8
Qt version: PyQt6 6.9.1, Qt 6.9.0
Qt runtime version: 6.9.2
Qt platform: cocoa
Hardware:
Hardware Overview:
Model Name: Mac Studio
Model Identifier: Mac14,14
Model Number: Z1800003VLL/A
Chip: Apple M2 Ultra
Total Number of Cores: 24 (16 performance and 8 efficiency)
Memory: 64 GB
System Firmware Version: 11881.140.96
OS Loader Version: 11881.140.96
Software:
System Software Overview:
System Version: macOS 15.6.1 (24G90)
Kernel Version: Darwin 24.6.0
Time since boot: 48 days, 21 hours, 54 minutes
Graphics/Displays:
Apple M2 Ultra:
Chipset Model: Apple M2 Ultra
Type: GPU
Bus: Built-In
Total Number of Cores: 60
Vendor: Apple (0x106b)
Metal Support: Metal 3
Displays:
PHL 278B1:
Resolution: 3840 x 2160 (2160p/4K UHD 1 - Ultra High Definition)
UI Looks like: 1920 x 1080 @ 60.00Hz
Main Display: Yes
Mirror: Off
Online: Yes
Rotation: Supported
Installed Packages:
alabaster: 1.0.0
appdirs: 1.4.4
appnope: 0.1.4
asttokens: 3.0.0
babel: 2.17.0
beautifulsoup4: 4.13.5
blockdiag: 3.0.0
blosc2: 3.10.0
build: 1.3.0
certifi: 2025.8.3
cftime: 1.6.4.post1
charset-normalizer: 3.4.3
ChimeraX-AddCharge: 1.5.20
ChimeraX-AddH: 2.2.8
ChimeraX-AlignmentAlgorithms: 2.0.2
ChimeraX-AlignmentHdrs: 3.6.1
ChimeraX-AlignmentMatrices: 2.1
ChimeraX-Alignments: 3.0.2
ChimeraX-AlphaFold: 1.0.1
ChimeraX-AltlocExplorer: 1.1.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Aniso: 1.3.2
ChimeraX-Arrays: 1.1
ChimeraX-Atomic: 1.60.17
ChimeraX-AtomicLibrary: 14.2
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.4
ChimeraX-BasicActions: 1.1.3
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 3.0.0
ChimeraX-Boltz: 1.1
ChimeraX-BondRot: 2.0.4
ChimeraX-BugReporter: 1.0.2
ChimeraX-BuildStructure: 2.13.1
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.6.0
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.5
ChimeraX-ChemGroup: 2.0.2
ChimeraX-Clashes: 2.3
ChimeraX-clix: 0.2.4
ChimeraX-ColorActions: 1.0.5
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.8
ChimeraX-CommandLine: 1.3.0
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0.1
ChimeraX-Core: 1.11.dev202510070226
ChimeraX-CoreFormats: 1.2
ChimeraX-coulombic: 1.4.5
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0.1
ChimeraX-DataFormats: 1.2.4
ChimeraX-Dicom: 1.2.7
ChimeraX-DistMonitor: 1.4.2
ChimeraX-DockPrep: 1.1.4
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.4.1
ChimeraX-Hbonds: 2.5.3
ChimeraX-Help: 1.3
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.1
ChimeraX-ImageFormats: 1.2
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0.4
ChimeraX-ItemsInspection: 1.0.1
ChimeraX-IUPAC: 1.0
ChimeraX-KVFinder: 1.7.1
ChimeraX-Label: 1.2
ChimeraX-ListInfo: 1.2.2
ChimeraX-Log: 1.2.1
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.9.2
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.2.2
ChimeraX-MCopy: 1.0
ChimeraX-MDcrds: 2.17.1
ChimeraX-MedicalToolbar: 1.1
ChimeraX-Meeting: 1.0.1
ChimeraX-Minimize: 1.3.1
ChimeraX-MLP: 1.1.1
ChimeraX-mmCIF: 2.16
ChimeraX-MMTF: 2.2
ChimeraX-ModelArchive: 1.0
ChimeraX-Modeller: 1.5.22
ChimeraX-ModelPanel: 1.6
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.1
ChimeraX-MutationScores: 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.15.1
ChimeraX-OrthoPick: 1.0.1
ChimeraX-PDB: 2.7.11
ChimeraX-PDBBio: 1.0.1
ChimeraX-PDBLibrary: 1.0.5
ChimeraX-PDBMatrices: 1.0
ChimeraX-PhenixUI: 1.3.9
ChimeraX-PickBlobs: 1.0.1
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1.3
ChimeraX-ProfileGrids: 1.4
ChimeraX-PubChem: 2.2
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1.2
ChimeraX-RemoteControl: 1.0
ChimeraX-RenderByAttr: 1.6.5
ChimeraX-RenumberResidues: 1.1
ChimeraX-ResidueFit: 1.0.1
ChimeraX-RestServer: 1.3.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 4.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.5.2
ChimeraX-Scenes: 0.2.2
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0.3
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0.1
ChimeraX-Segmentations: 3.5.10
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.17.2
ChimeraX-Shape: 1.1
ChimeraX-Shell: 1.0.1
ChimeraX-Shortcuts: 1.2.1
ChimeraX-ShowSequences: 1.0.3
ChimeraX-SideView: 1.0.1
ChimeraX-SimilarStructures: 1.0.1
ChimeraX-Smiles: 2.1.2
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.19.1
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.2
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.48.4
ChimeraX-Umap: 1.0
ChimeraX-uniprot: 2.3.1
ChimeraX-UnitCell: 1.0.1
ChimeraX-ViewDock: 1.5.1
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.5
ChimeraX-Zone: 1.0.1
colorama: 0.4.6
comm: 0.2.3
contourpy: 1.3.3
coverage: 7.10.7
cxservices: 1.2.3
cycler: 0.12.1
Cython: 3.1.4
debugpy: 1.8.17
decorator: 5.2.1
docutils: 0.21.2
executing: 2.2.1
filelock: 3.19.1
fonttools: 4.60.1
funcparserlib: 2.0.0a0
glfw: 2.10.0
grako: 3.16.5
h5py: 3.14.0
html2text: 2025.4.15
idna: 3.10
ihm: 2.2
imagecodecs: 2024.6.1
imagesize: 1.4.1
iniconfig: 2.1.0
ipykernel: 6.30.1
ipython: 9.5.0
ipython_pygments_lexers: 1.1.1
ipywidgets: 8.1.7
jedi: 0.19.2
Jinja2: 3.1.6
joblib: 1.5.0
jupyter_client: 8.6.3
jupyter_core: 5.8.1
jupyterlab_widgets: 3.0.15
kiwisolver: 1.4.9
line_profiler: 5.0.0
llvmlite: 0.44.0
lxml: 6.0.2
lz4: 4.3.2
Markdown: 3.8.2
MarkupSafe: 3.0.3
matplotlib: 3.10.3
matplotlib: 3.10.5
matplotlib-inline: 0.1.7
msgpack: 1.1.1
narwhals: 2.6.0
ndindex: 1.10.0
nest-asyncio: 1.6.0
netCDF4: 1.6.5
networkx: 3.3
nibabel: 5.2.0
nptyping: 2.5.0
numba: 0.61.2
numexpr: 2.13.1
numpy: 2.2.6
numpy: 1.26.4
OpenMM: 8.2.0
openvr: 1.26.701
packaging: 25.0
ParmEd: 4.2.2
parso: 0.8.5
pep517: 0.13.1
pexpect: 4.9.0
pickleshare: 0.7.5
pillow: 11.3.0
pip: 25.2
pkginfo: 1.12.1.2
platformdirs: 4.5.0
plotly: 6.3.1
pluggy: 1.6.0
prompt_toolkit: 3.0.52
psutil: 7.0.0
ptyprocess: 0.7.0
pure_eval: 0.2.3
py-cpuinfo: 9.0.0
pybind11: 3.0.1
pycollada: 0.8
pydicom: 2.4.4
Pygments: 2.18.0
pyKVFinder: 0.8.3
pynmrstar: 3.3.6
pynndescent: 0.5.13
pynrrd: 1.0.0
PyOpenGL: 3.1.10
PyOpenGL-accelerate: 3.1.10
pyopenxr: 1.1.4501
pyparsing: 3.2.5
pyproject_hooks: 1.2.0
PyQt6: 6.9.1
PyQt6-Qt6: 6.9.2
PyQt6-WebEngine: 6.9.0
PyQt6-WebEngine-Qt6: 6.9.2
PyQt6_sip: 13.10.2
pytest: 8.4.2
pytest-cov: 7.0.0
python-dateutil: 2.9.0.post0
pytz: 2025.2
pyzmq: 27.1.0
qtconsole: 5.7.0
QtPy: 2.4.3
qtshim: 1.2
RandomWords: 0.4.0
requests: 2.32.5
roman-numerals-py: 3.1.0
scikit-learn: 1.6.1
scipy: 1.14.0
Send2Trash: 1.8.3
setuptools: 80.9.0
sfftk-rw: 0.8.1
six: 1.17.0
snowballstemmer: 3.0.1
sortedcontainers: 2.4.0
soupsieve: 2.8
Sphinx: 8.2.3
sphinx-autodoc-typehints: 3.2.0
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.7.6
tables: 3.10.2
tcia_utils: 1.5.1
threadpoolctl: 3.6.0
tifffile: 2025.3.13
tinyarray: 1.2.5
tomlkit: 0.13.3
tornado: 6.5.2
tqdm: 4.67.1
traitlets: 5.14.3
typing_extensions: 4.15.0
tzdata: 2025.2
umap-learn: 0.5.7
urllib3: 2.5.0
wcwidth: 0.2.14
webcolors: 24.11.1
wheel: 0.45.1
wheel-filename: 1.4.2
widgetsnbextension: 4.0.14
Change History (3)
comment:1 by , 4 weeks ago
| Component: | Unassigned → UI |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Deep mutational scan histogram scrolling to zoom is wonky |
comment:2 by , 4 weeks ago
comment:3 by , 4 weeks ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed.
Made scrolling mutation score histogram only zoom x axis. Currently there is no mouse mode to zoom the y axis.
Note:
See TracTickets
for help on using tickets.
Zooming by scrolling on the plots was intended for plots that maintain an aspect ratio of 1, meaning x and y scales are the same number of units per distance on the plot. It was done for the interfaces tool that show 2-d plots of chains or residues, and scatter plots of DMS data.
For histograms the vertical axis is counts and horizontal is DMS score. We probably want to independently control zooming on x and y axes. And zoom in a logarithmic y axis should keep the 0 count at the bottom and change the range of the scale, while zoom along the x-axis should probably keep the center of the plot fixed and expand or contract horizontally.
Disabling scroll zooming on histograms would probably be better than the current behavior where scrolling messes up the plot bounds with no way to restore them.