Opened 3 weeks ago

Closed 4 days ago

#19980 closed defect (fixed)

Render by attribute histogram scale not right

Reported by: goddard@… Owned by: Eric Pettersen
Priority: normal Milestone:
Component: Depiction Version:
Keywords: Cc: Willow.Coyote-Maestas@…
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        macOS-26.3.1-arm64-arm-64bit
ChimeraX Version: 1.12.dev202603101758 (2026-03-10 17:58:10 UTC)
Description
Render by attribute histogram scale goes haywire for integer attributes when a threshold is placed less than or greater than the limits of the attribute values.

In the attached session, showing Render by Attribute, Residue attributes, attribute "int_attr" (values 0 - 11), click blue bar, enter -5 for value and press enter, then enter 0 and press enter.  The zero value histogram bar appears  mispositioned between the second and third bar.

Log:
UCSF ChimeraX version: 1.12.dev202603101758 (2026-03-10)  
© 2016-2026 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open 1a0m format mmcif fromDatabase pdb

1a0m title:  
1.1 angstrom crystal structure of A-conotoxin [TYR15]-epi [more info...]  
  
Chain information for 1a0m #1  
---  
Chain | Description | UniProt  
A B | ALPHA-CONOTOXIN [TYR15]-EPI | CXA1_CONEP 1-16  
  
Non-standard residues in 1a0m #1  
---  
NH2 — amino group  
  
8 atoms have alternate locations. Control/examine alternate locations with
Altloc Explorer [start tool...] or the altlocs command.  

> ui tool show Shell

0.00s - Debugger warning: It seems that frozen modules are being used, which
may  
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off  
0.00s - to python to disable frozen modules.  
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to
disable this validation.  

> ui tool show "Render/Select by Attribute"

> color byattribute r:int_attr target csab palette 0,blue:5.5,white:11,red

276 atoms, 76 residues, atom int_attr range 0 to 11  

> color byattribute r:int_attr target csab palette -2.5,blue:5.5,white:11,red

276 atoms, 76 residues, atom int_attr range 0 to 11  

> ui tool show "Render/Select by Attribute"

> color byattribute r:int_attr target csab palette 0,blue:6.34615,white:11,red

276 atoms, 76 residues, atom int_attr range 0 to 11  

> ui tool show "Render/Select by Attribute"

> save /Users/goddard/Desktop/render_by_attr.cxs




OpenGL version: 4.1 Metal - 90.5
OpenGL renderer: Apple M2 Ultra
OpenGL vendor: Apple

Python: 3.11.9
Locale: en_US.UTF-8
Qt version: PySide6 6.10.1, Qt 6.10.1
Qt runtime version: 6.10.1
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: 13822.81.10
      OS Loader Version: 13822.81.10

Software:

    System Software Overview:

      System Version: macOS 26.3.1 (25D2128)
      Kernel Version: Darwin 25.3.0
      Time since boot: 4 days, 1 hour, 47 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 4
      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:
    accessible-pygments: 0.0.5
    aiohappyeyeballs: 2.6.1
    aiohttp: 3.13.1
    aiosignal: 1.4.0
    alabaster: 1.0.0
    annotated-types: 0.7.0
    anyio: 4.12.1
    appdirs: 1.4.4
    appnope: 0.1.4
    asttokens: 3.0.1
    attrs: 25.4.0
    babel: 2.18.0
    beautifulsoup4: 4.13.5
    blockdiag: 3.0.0
    blosc2: 4.0.0
    build: 1.3.0
    certifi: 2025.8.3
    cftime: 1.6.5
    charset-normalizer: 3.4.4
    ChimeraX-AddCharge: 1.5.20
    ChimeraX-AddH: 2.2.8
    ChimeraX-AlignmentAlgorithms: 2.0.2
    ChimeraX-AlignmentHdrs: 3.6.2
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 3.2
    ChimeraX-AlphaFold: 1.0.1
    ChimeraX-AltlocExplorer: 1.2
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Animations: 1.0
    ChimeraX-Aniso: 1.3.2
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.63.0
    ChimeraX-AtomicLibrary: 14.2.3
    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.1
    ChimeraX-ChangeChains: 1.1
    ChimeraX-CheckWaters: 1.5
    ChimeraX-ChemGroup: 2.0.2
    ChimeraX-CiliaBuilder: 1.0.9
    ChimeraX-CircosContacts: 0.3.4
    ChimeraX-Clashes: 2.3
    ChimeraX-ColorActions: 1.0.5
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.8
    ChimeraX-CommandLine: 1.3.1
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.12.dev202603101758
    ChimeraX-CoreFormats: 1.2
    ChimeraX-coulombic: 1.4.5
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DAQplugin: 0.12.0
    ChimeraX-DataFormats: 1.2.4
    ChimeraX-Dicom: 1.2.7
    ChimeraX-DistMonitor: 1.4.2
    ChimeraX-DockPrep: 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.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.8.2
    ChimeraX-Label: 1.3
    ChimeraX-LightingGUI: 1.0
    ChimeraX-ListInfo: 1.3.1
    ChimeraX-Log: 1.2.2
    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-MCPServer: 0.2.0
    ChimeraX-MDcrds: 2.17.2
    ChimeraX-MedicalToolbar: 1.1
    ChimeraX-Meeting: 1.0.1
    ChimeraX-Minimize: 1.3.5
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.16
    ChimeraX-MMTF: 2.2
    ChimeraX-ModelArchive: 1.0
    ChimeraX-Modeller: 1.5.23
    ChimeraX-ModelPanel: 1.6.1
    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.2
    ChimeraX-OpenFold: 1.0
    ChimeraX-OrthoPick: 1.0.1
    ChimeraX-PDB: 2.7.12
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.5
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PredictionExplorer: 1.0
    ChimeraX-PresetMgr: 1.1.4
    ChimeraX-ProfileGrids: 1.5.1
    ChimeraX-PubChem: 2.2
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.8.1
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.3.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.2
    ChimeraX-Scenes: 0.3.1
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0.3
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-Segmentations: 3.5.12
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.17.5
    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-SNFG: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.19.3
    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-TutorialReadFormat: 0.1
    ChimeraX-UI: 1.50.3
    ChimeraX-Umap: 1.0
    ChimeraX-uniprot: 2.3.2
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDock: 1.6
    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
    click: 8.3.1
    colorama: 0.4.6
    coloredlogs: 15.0.1
    comm: 0.2.3
    contourpy: 1.3.3
    coverage: 7.13.4
    cxservices: 1.2.3
    cycler: 0.12.1
    Cython: 3.1.4
    debugpy: 1.8.20
    decorator: 5.2.1
    docutils: 0.21.2
    executing: 2.2.1
    filelock: 3.19.1
    flatbuffers: 25.12.19
    fonttools: 4.61.1
    frozenlist: 1.8.0
    funcparserlib: 2.0.0a0
    glfw: 2.10.0
    grako: 3.16.5
    h11: 0.16.0
    h5py: 3.15.1
    html2text: 2025.4.15
    httpcore: 1.0.9
    httpx: 0.28.1
    httpx-sse: 0.4.3
    humanfriendly: 10.0
    idna: 3.11
    ihm: 2.2
    imagecodecs: 2024.6.1
    imagesize: 1.4.1
    iniconfig: 2.3.0
    ipykernel: 7.1.0
    ipython: 9.9.0
    ipython_pygments_lexers: 1.1.1
    ipywidgets: 8.1.8
    jedi: 0.19.2
    Jinja2: 3.1.6
    jsonschema: 4.26.0
    jsonschema-specifications: 2025.9.1
    jupyter_client: 8.8.0
    jupyter_core: 5.9.1
    jupyterlab_widgets: 3.0.16
    kiwisolver: 1.4.9
    line_profiler: 5.0.0
    lxml: 6.0.2
    lz4: 4.3.2
    Markdown: 3.8.2
    MarkupSafe: 3.0.3
    matplotlib: 3.10.7
    matplotlib-inline: 0.2.1
    mcp: 1.18.0
    mpmath: 1.3.0
    mrcfile: 1.5.4
    msgpack: 1.1.1
    multidict: 6.7.1
    narwhals: 2.16.0
    ndindex: 1.10.1
    nest-asyncio: 1.6.0
    netCDF4: 1.6.5
    networkx: 3.3
    nibabel: 5.2.0
    nptyping: 2.5.0
    numexpr: 2.14.1
    numpy: 2.4.2
    numpy: 1.26.4
    onnxruntime: 1.23.2
    OpenMM: 8.4.0
    openvr: 1.26.701
    packaging: 25.0
    pandas: 2.3.3
    ParmEd: 4.2.2
    parso: 0.8.6
    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.7.1
    plotly: 6.5.2
    pluggy: 1.6.0
    prompt_toolkit: 3.0.52
    propcache: 0.4.1
    protobuf: 6.33.4
    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
    pydantic: 2.12.5
    pydantic-settings: 2.12.0
    pydantic_core: 2.41.5
    pydata-sphinx-theme: 0.16.1
    pydicom: 2.4.4
    Pygments: 2.18.0
    pyKVFinder: 0.9.0
    pynmrstar: 3.5.0
    pynrrd: 1.0.0
    PyOpenGL: 3.1.10
    PyOpenGL-accelerate: 3.1.10
    pyopenxr: 1.1.4501
    pyparsing: 3.3.2
    pyproject_hooks: 1.2.0
    PySide6: 6.10.1
    PySide6_Addons: 6.10.1
    PySide6_Essentials: 6.10.1
    pytest: 9.0.2
    pytest-cov: 7.0.0
    python-dateutil: 2.9.0.post0
    python-dotenv: 1.2.1
    python-multipart: 0.0.22
    pyzmq: 27.1.0
    qtconsole: 5.7.0
    QtPy: 2.4.3
    qtshim: 1.2.1
    RandomWords: 0.4.0
    referencing: 0.37.0
    requests: 2.32.5
    roman-numerals: 4.1.0
    rpds-py: 0.30.0
    scipy: 1.16.3
    scipy: 1.14.0
    setuptools: 80.9.0
    sfftk-rw: 0.8.1
    shiboken6: 6.10.1
    six: 1.17.0
    snowballstemmer: 3.0.1
    sortedcontainers: 2.4.0
    soupsieve: 2.8.3
    Sphinx: 9.0.4
    sphinx-autodoc-typehints: 3.6.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
    sse-starlette: 3.2.0
    stack-data: 0.6.3
    starlette: 0.52.1
    superqt: 0.7.6
    sympy: 1.14.0
    tables: 3.10.2
    tcia_utils: 1.5.1
    tifffile: 2025.3.13
    tinyarray: 1.2.5
    tomlkit: 0.14.0
    tornado: 6.5.4
    traitlets: 5.14.3
    typing-inspection: 0.4.2
    typing_extensions: 4.15.0
    urllib3: 2.6.3
    uvicorn: 0.40.0
    wcwidth: 0.6.0
    webcolors: 24.11.1
    wheel: 0.45.1
    wheel-filename: 1.4.2
    widgetsnbextension: 4.0.15
    yarl: 1.22.0
File attachment: render_by_attr.cxs

render_by_attr.cxs

Attachments (3)

render_by_attr.cxs (22.6 KB ) - added by goddard@… 3 weeks ago.
Added by email2trac
render_by_attr.png (125.9 KB ) - added by Tom Goddard 3 weeks ago.
Screen shot of render by attribute histogram (values 0-11) with bar at 0 in wrong position.
render_by_attr_bad_scale.png (181.7 KB ) - added by Tom Goddard 12 days ago.
Incorrect negative histogram scale value reported by Willow Coyote-Maestas. All histogram values are positive.

Download all attachments as: .zip

Change History (8)

by goddard@…, 3 weeks ago

Attachment: render_by_attr.cxs added

Added by email2trac

comment:1 by Tom Goddard, 3 weeks ago

Component: UnassignedDepiction
Owner: set to Eric Pettersen
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionRender by attribute histogram scale not right

by Tom Goddard, 3 weeks ago

Attachment: render_by_attr.png added

Screen shot of render by attribute histogram (values 0-11) with bar at 0 in wrong position.

comment:2 by Eric Pettersen, 3 weeks ago

Status: assignedaccepted

comment:3 by Tom Goddard, 12 days ago

The histogram scale numbers also are wrong with float attributes when a threshold is set outside the range of values. Willow Coyote-Maestas was confused by this and sent me the following email just now.

Begin forwarded message:

From: "Coyote-Maestas, Willow"
Subject: Re: ChimeraX DMS Scoring Feedback
Date: March 25, 2026 at 11:48:24 AM PDT
To: Tom Goddard

Sorry running into a bunch of bugs... While trying to calculate 'sum absolute' here and ending up with negative numbers... Only guess is it's not actually calculating these scores on the parameter I think (maybe abundance) and isn't taking the absolute value.

Willow

I'll attach the screenshot showing the incorrect negative histogram scale number.

by Tom Goddard, 12 days ago

Incorrect negative histogram scale value reported by Willow Coyote-Maestas. All histogram values are positive.

comment:4 by Tom Goddard, 12 days ago

Cc: Willow.Coyote-Maestas@… added

comment:5 by Eric Pettersen, 4 days ago

Resolution: fixed
Status: acceptedclosed

The first reported problem (marker mispositioned if histogram has been expanded) is fixed. I would need a better method of reproducing the second reported problem (spurious negative values) in order to work on it.

Fix: https://github.com/RBVI/ChimeraX/commit/0770995ba6519ef8ed1daa6d6f7a6bee1fd3ed2c

Note: See TracTickets for help on using tickets.