Opened 3 days ago

Last modified 2 days ago

#19203 accepted defect

REST server attempting to encode Atom into response

Reported by: rohou.alexis@… Owned by: Eric Pettersen
Priority: normal Milestone:
Component: Input/Output Version:
Keywords: Cc: Tom Goddard, Zach Pearson
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        macOS-14.7.6-arm64-arm-64bit
ChimeraX Version: 1.11.dev202510210057 (2025-10-21 00:57:00 UTC)
Description
This is in the process of testing the MCP bridge. Below is the prompt I gave the agent:

Using ChimeraX, open PDB 7MSA. This contains two copies of estrogen receptor, with each copy by one molecule of giredestrant. Show a view of one of the giredestrant molecules with side chains of the binding pocket that are involved in contacts. Show atoms for the ligand and any side chain that is involved in ligand contacts (make sure that all atoms of any involved side chain are shown). Only show polar hydrogens.

Log:
Startup Messages  
---  
notes | available bundle cache has not been initialized yet  
Updated animation length to 0:05.00  
  

> set bgColor white

> lighting soft

> clipper init

Error running startup command 'clipper init': Unknown command: clipper init  

> remotecontrol rest start port 8080 json true log true

UCSF ChimeraX version: 1.11.dev202510210057 (2025-10-21)  
© 2016-2025 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  
REST server started on host 127.0.0.1 port 8080  
Visit http://127.0.0.1:8080/cmdline.html for CLI interface  

> open 7msa

7msa title:  
GDC-9545 in complex with estrogen receptor α [more info...]  
  
Chain information for 7msa #1  
---  
Chain | Description | UniProt  
A B C D | Estrogen receptor | ESR1_HUMAN 298-553  
  
Non-standard residues in 7msa #1  
---  
G9J — (2S)-3-(3-hydroxyphenyl)-2-(4-iodophenyl)-4-methyl-2H-1-benzopyran-6-ol  
ZNM —
3-[(1R,3R)-1-(2,6-difluoro-4-{[1-(3-fluoropropyl)azetidin-3-yl]amino}phenyl)-3-methyl-1,3,4,9-tetrahydro-2H-pyrido[3,4-b]indol-2-yl]-2,2-difluoropropan-1-ol  
  
7msa mmCIF Assemblies  
---  
1| author_and_software_defined_assembly  
2| author_and_software_defined_assembly  
  
22 atoms have alternate locations. Control/examine alternate locations with
Altloc Explorer [start tool...] or the altlocs command.  
6984 atoms have anisotropic B-factors. Depict anisotropic information with
Thermal Ellipsoids [start tool...] or the aniso command.  

> info models

model id #1 type AtomicStructure name 7msa  
model id #1.1 type PseudobondGroup name "missing structure"  
model id #1.1.1 type ObjectLabels name labels  

> select :ZNM

74 atoms, 82 bonds, 2 residues, 1 model selected  

> info residues :ZNM

residue id /A:601 name ZNM  
residue id /C:601 name ZNM  

> hide atoms

> select /A:601 | (/A,B & protein & <4.5 /A:601)

Expected a keyword  

> info residues sel

residue id /A:601 name ZNM  
residue id /C:601 name ZNM  

> select /A:601

37 atoms, 41 bonds, 1 residue, 1 model selected  

> select add /A,B & protein & @@within(4.5, /A:601)

Expected a keyword  

> info residues sel

residue id /A:601 name ZNM  

> select /A:601 zone /A:601 4.5 /A,B & protein extend true

Expected a keyword  

> zone /A:601 4.5 /A,B & protein

Expected a keyword  

> info residues sel

residue id /A:601 name ZNM  

> contacts /A:601 /A,B restrict cross interSubmodel false intraMol false
> select true

253 contacts  
Traceback (most recent call last):  
File
"/Users/rohoua/work/git/ChimeraX/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/ui/gui.py", line 875, in customEvent  
func(*args, **kw)  
File
"/Users/rohoua/work/git/ChimeraX/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-
packages/chimerax/rest_server/server.py", line 286, in f  
q.put(JSONEncoder(default=lambda x: None).encode(response))  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Users/rohoua/work/git/ChimeraX/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/encoder.py",
line 200, in encode  
chunks = self.iterencode(o, _one_shot=True)  
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
File
"/Users/rohoua/work/git/ChimeraX/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/encoder.py",
line 258, in iterencode  
return _iterencode(o, 0)  
^^^^^^^^^^^^^^^^^  
TypeError: keys must be str, int, float, bool or None, not Atom  
  
TypeError: keys must be str, int, float, bool or None, not Atom  
  
File
"/Users/rohoua/work/git/ChimeraX/ChimeraX.app/Contents/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/encoder.py",
line 258, in iterencode  
return _iterencode(o, 0)  
^^^^^^^^^^^^^^^^^  
  
See log for complete Python traceback.  
  

Populating font family aliases took 80 ms. Replace uses of missing font family
"-apple-system" with one that exists to avoid this cost.  




OpenGL version: 4.1 Metal - 88.1
OpenGL renderer: Apple M2
OpenGL vendor: Apple

Python: 3.11.9
Locale: 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: MacBook Pro
      Model Identifier: Mac14,7
      Model Number: Z16T0006PLL/A
      Chip: Apple M2
      Total Number of Cores: 8 (4 performance and 4 efficiency)
      Memory: 16 GB
      System Firmware Version: 11881.121.1
      OS Loader Version: 10151.140.19.700.2

Software:

    System Software Overview:

      System Version: macOS 14.7.6 (23H626)
      Kernel Version: Darwin 23.6.0
      Time since boot: 21 days, 11 hours, 31 minutes

Graphics/Displays:

    Apple M2:

      Chipset Model: Apple M2
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 10
      Vendor: Apple (0x106b)
      Metal Support: Metal 3
      Displays:
        Color LCD:
          Display Type: Built-In Retina LCD
          Resolution: 2560 x 1600 Retina
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: Yes
          Connection Type: Internal


Installed Packages:
    aiohappyeyeballs: 2.6.1
    aiohttp: 3.13.1
    aiosignal: 1.4.0
    alabaster: 1.0.0
    annotated-types: 0.7.0
    anyio: 4.11.0
    appdirs: 1.4.4
    appnope: 0.1.4
    asttokens: 3.0.0
    attrs: 25.4.0
    babel: 2.17.0
    beautifulsoup4: 4.13.5
    blockdiag: 3.0.0
    blosc2: 3.10.2
    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.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-Animations: 1.0
    ChimeraX-Aniso: 1.3.2
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.60.17
    ChimeraX-AtomicLibrary: 14.2.1
    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-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.dev202510210057
    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.2
    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-MCPServer: 0.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-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1.4
    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.3
    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
    click: 8.3.0
    colorama: 0.4.6
    comm: 0.2.3
    contourpy: 1.3.3
    coverage: 7.11.0
    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
    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
    idna: 3.11
    ihm: 2.2
    imagecodecs: 2024.6.1
    imagesize: 1.4.1
    iniconfig: 2.3.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
    jsonschema: 4.25.1
    jsonschema-specifications: 2025.9.1
    jupyter_client: 8.6.3
    jupyter_core: 5.9.1
    jupyterlab_widgets: 3.0.15
    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.5
    matplotlib-inline: 0.1.7
    mcp: 1.18.0
    msgpack: 1.1.1
    multidict: 6.7.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
    numexpr: 2.14.1
    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
    pluggy: 1.6.0
    prompt_toolkit: 3.0.52
    propcache: 0.4.1
    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.3
    pydantic-settings: 2.11.0
    pydantic_core: 2.41.4
    pydicom: 2.4.4
    Pygments: 2.18.0
    pynmrstar: 3.3.6
    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
    python-dotenv: 1.1.1
    python-multipart: 0.0.20
    pytz: 2025.2
    pyzmq: 27.1.0
    qtconsole: 5.7.0
    QtPy: 2.4.3
    qtshim: 1.2
    RandomWords: 0.4.0
    referencing: 0.37.0
    requests: 2.32.5
    roman-numerals-py: 3.1.0
    rpds-py: 0.27.1
    scipy: 1.14.0
    setuptools: 80.9.0
    sfftk-rw: 0.8.1
    six: 1.17.0
    sniffio: 1.3.1
    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
    sse-starlette: 3.0.2
    stack-data: 0.6.3
    starlette: 0.48.0
    superqt: 0.7.6
    tables: 3.10.2
    tcia_utils: 1.5.1
    tifffile: 2025.3.13
    tinyarray: 1.2.5
    tornado: 6.5.2
    traitlets: 5.14.3
    typing-inspection: 0.4.2
    typing_extensions: 4.15.0
    tzdata: 2025.2
    urllib3: 2.5.0
    uvicorn: 0.38.0
    wcwidth: 0.2.14
    webcolors: 24.11.1
    wheel: 0.45.1
    wheel-filename: 1.4.2
    widgetsnbextension: 4.0.14
    yarl: 1.22.0

Change History (1)

comment:1 by Eric Pettersen, 2 days ago

Cc: Tom Goddard Zach Pearson added
Component: UnassignedInput/Output
Owner: set to Eric Pettersen
Platform: all
Project: ChimeraX
Status: newaccepted
Summary: ChimeraX bug report submissionREST server attempting to encode Atom into response
Note: See TracTickets for help on using tickets.