Opened 3 years ago
Closed 3 years ago
#8853 closed defect (fixed)
Impossible model hierarchy in saved session
| Reported by: | Owned by: | Tom Goddard | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Sessions | Version: | |
| Keywords: | Cc: | Eric Pettersen | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description (last modified by )
The following bug report has been submitted:
Platform: macOS-10.15.7-x86_64-i386-64bit
ChimeraX Version: 1.4 (2022-06-03 23:39:42 UTC)
Description
Had saved a chimera session that I was coming back to work on and the bug appeared. I have only kept my labels
Log:
UCSF ChimeraX version: 1.4 (2022-06-03)
© 2016-2022 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open "/Users/chris/Desktop/cc10501 binding.cxs"
Unable to restore session, resetting.
Traceback (most recent call last):
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/session.py", line 731, in restore
obj = sm.restore_snapshot(self, data)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 569, in restore_snapshot
m.add([model], _from_session=True)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 667, in add
self.add(children, parent=model, _notify=False,
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 654, in add
p = self._parent_for_added_model(model, parent, root_model = root_model)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 718, in _parent_for_added_model
raise ValueError('Tried to add model %s to parent %s with incompatible id'
ValueError: Tried to add model hydrogen bonds #12 to parent 6urx #1 with
incompatible id
Traceback (most recent call last):
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/session.py", line 731, in restore
obj = sm.restore_snapshot(self, data)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 569, in restore_snapshot
m.add([model], _from_session=True)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 667, in add
self.add(children, parent=model, _notify=False,
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 654, in add
p = self._parent_for_added_model(model, parent, root_model = root_model)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 718, in _parent_for_added_model
raise ValueError('Tried to add model %s to parent %s with incompatible id'
ValueError: Tried to add model hydrogen bonds #12 to parent 6urx #1 with
incompatible id
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/ui/gui.py", line 284, in event
_open_dropped_file(self.session, event.file())
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/ui/gui.py", line 1945, in _open_dropped_file
run(session, 'open %s' % FileNameArg.unparse(path))
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/commands/run.py", line 38, in run
results = command.run(text, log=log, return_json=return_json)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/commands/cli.py", line 2897, in run
result = ci.function(session, **kw_args)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/open_command/cmd.py", line 118, in cmd_open
models = Command(session, registry=registry).run(provider_cmd_text,
log=log)[0]
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/commands/cli.py", line 2897, in run
result = ci.function(session, **kw_args)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/open_command/cmd.py", line 193, in provider_open
models, status = collated_open(session, None, [data], data_format,
_add_models,
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/open_command/cmd.py", line 458, in collated_open
return remember_data_format()
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/open_command/cmd.py", line 428, in remember_data_format
models, status = func(*func_args, **func_kw)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core_formats/__init__.py", line 26, in open
return cxs_open(session, data, **kw)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/session.py", line 1001, in open
session.restore(stream, path=path, resize_window=resize_window)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/session.py", line 739, in restore
self.reset()
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/session.py", line 541, in reset
sm.reset_state(container, self)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 574, in reset_state
self.close([m for m in self.list() if not m.SESSION_ENDURING])
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 895, in close
self.remove(mopen)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/core/models.py", line 865, in remove
m.removed_from_session(session)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/atomic/structure.py", line 190, in removed_from_session
self._graphics_updater.remove_structure(self)
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/atomic/structure.py", line 1753, in remove_structure
self._structures.remove(s)
KeyError: <chimerax.atomic.structure.AtomicStructure object at 0x7ff47bd0c430>
KeyError:
File
"/Users/chris/Desktop/ChimeraX-1.4.app/Contents/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-
packages/chimerax/atomic/structure.py", line 1753, in remove_structure
self._structures.remove(s)
See log for complete Python traceback.
Populating font family aliases took 350 ms. Replace uses of missing font
family ".AppleSystemUIFont" with one that exists to avoid this cost.
OpenGL version: 4.1 INTEL-14.7.28
OpenGL renderer: Intel(R) Iris(TM) Plus Graphics OpenGL Engine (1x6x8 (fused) LP
OpenGL vendor: Intel Inc.
Python: 3.9.11
Locale: UTF-8
Qt version: PyQt6 6.3.0, Qt 6.3.0
Qt runtime version: 6.3.0
Qt platform: cocoa
Hardware:
Hardware Overview:
Model Name: MacBook Air
Model Identifier: MacBookAir9,1
Processor Name: Dual-Core Intel Core i3
Processor Speed: 1.1 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 512 KB
L3 Cache: 4 MB
Hyper-Threading Technology: Enabled
Memory: 8 GB
Boot ROM Version: 1731.140.2.0.0 (iBridge: 19.16.16066.0.0,0)
Software:
System Software Overview:
System Version: macOS 10.15.7 (19H2026)
Kernel Version: Darwin 19.6.0
Time since boot: 20 days 2:10
Graphics/Displays:
Intel Iris Plus Graphics:
Chipset Model: Intel Iris Plus Graphics
Type: GPU
Bus: Built-In
VRAM (Dynamic, Max): 1536 MB
Vendor: Intel
Device ID: 0x8a5c
Revision ID: 0x0007
Metal: Supported, feature set macOS GPUFamily2 v1
Displays:
Color LCD:
Display Type: Built-In Retina LCD
Resolution: 2560 x 1600 Retina
Framebuffer Depth: 30-Bit Color (ARGB2101010)
Main Display: Yes
Mirror: Off
Online: Yes
Automatically Adjust Brightness: No
Connection Type: Internal
HP 24f:
Resolution: 1920 x 1080 (1080p FHD - Full High Definition)
UI Looks like: 1920 x 1080 @ 60 Hz
Framebuffer Depth: 30-Bit Color (ARGB2101010)
Display Serial Number: 3CM1350WBT
Mirror: Off
Online: Yes
Rotation: Supported
Automatically Adjust Brightness: No
Connection Type: DVI or HDMI
Adapter Firmware Version: 0.00
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
appnope: 0.1.3
Babel: 2.10.1
backcall: 0.2.0
blockdiag: 3.0.0
certifi: 2021.10.8
cftime: 1.6.0
charset-normalizer: 2.0.12
ChimeraX-AddCharge: 1.2.3
ChimeraX-AddH: 2.1.11
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2.1
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.4.3
ChimeraX-AlphaFold: 1.0
ChimeraX-AltlocExplorer: 1.0.2
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.39.1
ChimeraX-AtomicLibrary: 7.0
ChimeraX-AtomSearch: 2.0.1
ChimeraX-AxesPlanes: 2.1
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 2.1.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.7
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.1
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.2
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.2.4
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.5.1
ChimeraX-CommandLine: 1.2.3
ChimeraX-ConnectStructure: 2.0.1
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.4
ChimeraX-CoreFormats: 1.1
ChimeraX-coulombic: 1.3.2
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0
ChimeraX-DataFormats: 1.2.2
ChimeraX-Dicom: 1.1
ChimeraX-DistMonitor: 1.1.5
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.2
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.1
ChimeraX-Hbonds: 2.1.2
ChimeraX-Help: 1.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
ChimeraX-Label: 1.1.1
ChimeraX-ListInfo: 1.1.1
ChimeraX-Log: 1.1.5
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.1
ChimeraX-Map: 1.1
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.1
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 2.0.6
ChimeraX-MDcrds: 2.6
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.1
ChimeraX-mmCIF: 2.7
ChimeraX-MMTF: 2.1
ChimeraX-Modeller: 1.5.5
ChimeraX-ModelPanel: 1.3.2
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.1
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0.2
ChimeraX-OpenCommand: 1.9
ChimeraX-PDB: 2.6.6
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0.2
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.1
ChimeraX-PubChem: 2.1
ChimeraX-ReadPbonds: 1.0.1
ChimeraX-Registration: 1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-ResidueFit: 1.0
ChimeraX-RestServer: 1.1
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0.1
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
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SelInspector: 1.0
ChimeraX-SeqView: 2.6
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.1
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.8
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-StructMeasure: 1.0.1
ChimeraX-Struts: 1.0.1
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.1.1
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.1.1
ChimeraX-ToolshedUtils: 1.2.1
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.18.3
ChimeraX-uniprot: 2.2
ChimeraX-UnitCell: 1.0
ChimeraX-ViewDockX: 1.1.2
ChimeraX-VIPERdb: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0
ChimeraX-WebServices: 1.1.0
ChimeraX-Zone: 1.0
colorama: 0.4.4
cxservices: 1.2
cycler: 0.11.0
Cython: 0.29.26
debugpy: 1.6.0
decorator: 5.1.1
docutils: 0.17.1
entrypoints: 0.4
filelock: 3.4.2
fonttools: 4.33.3
funcparserlib: 1.0.0
grako: 3.16.5
h5py: 3.7.0
html2text: 2020.1.16
idna: 3.3
ihm: 0.27
imagecodecs: 2021.11.20
imagesize: 1.3.0
ipykernel: 6.6.1
ipython: 7.31.1
ipython-genutils: 0.2.0
jedi: 0.18.1
Jinja2: 3.0.3
jupyter-client: 7.1.0
jupyter-core: 4.10.0
kiwisolver: 1.4.2
line-profiler: 3.4.0
lxml: 4.7.1
lz4: 3.1.10
MarkupSafe: 2.1.1
matplotlib: 3.5.1
matplotlib-inline: 0.1.3
msgpack: 1.0.3
nest-asyncio: 1.5.5
netCDF4: 1.5.8
networkx: 2.6.3
numexpr: 2.8.1
numpy: 1.22.1
openvr: 1.16.802
packaging: 21.0
ParmEd: 3.4.3
parso: 0.8.3
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 9.0.1
pip: 21.3.1
pkginfo: 1.8.2
prompt-toolkit: 3.0.29
psutil: 5.9.0
ptyprocess: 0.7.0
pycollada: 0.7.2
pydicom: 2.2.2
Pygments: 2.11.2
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 3.0.9
PyQt6-commercial: 6.3.0
PyQt6-Qt6: 6.3.0
PyQt6-sip: 13.3.1
PyQt6-WebEngine-commercial: 6.3.0
PyQt6-WebEngine-Qt6: 6.3.0
python-dateutil: 2.8.2
pytz: 2022.1
pyzmq: 23.1.0
qtconsole: 5.3.0
QtPy: 2.1.0
RandomWords: 0.3.0
requests: 2.27.1
scipy: 1.7.3
setuptools: 59.8.0
sfftk-rw: 0.7.2
six: 1.16.0
snowballstemmer: 2.2.0
sortedcontainers: 2.4.0
Sphinx: 4.3.2
sphinx-autodoc-typehints: 1.15.2
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 3.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 2.0.0
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.5
suds-community: 1.0.0
tables: 3.7.0
tifffile: 2021.11.2
tinyarray: 1.2.4
tornado: 6.1
traitlets: 5.1.1
urllib3: 1.26.9
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.37.1
wheel-filename: 1.3.0
Attachments (1)
Change History (9)
comment:1 by , 3 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Sessions |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → accepted |
| Summary: | ChimeraX bug report submission → Impossible model hierarchy in saved session |
comment:2 by , 3 years ago
| Status: | accepted → feedback |
|---|
comment:3 by , 3 years ago
| Description: | modified (diff) |
|---|
This seems like a case where the "rename" command was used to change the model id of the "hydrogen bonds" model I guess from something like #1.3 to #12. Apparently it worked until the session was saved and then restoring failed because model #1 still thought the hydrogen bonds were a child model. There were defects like this in old ChimeraX versions, I think they were fixed by the ChimeraX 1.4 version in this bug report, but maybe the session was saved in an older ChimeraX. At any rate the error is almost surely in the saved session file. We should check if moving the hydrogen bonds to the top level and saving a session and restoring works in current ChimeraX. If it does then I would close this ticket if the reporter does not respond. If the reporter needs this file fixed, some code hack could get by the problem probably deleting the hbonds, and then a new correct session could be saved.
comment:4 by , 3 years ago
| Status: | feedback → accepted |
|---|
comment:5 by , 3 years ago
| Cc: | added; removed |
|---|---|
| Owner: | changed from to |
| Status: | accepted → assigned |
Still happens with 1.6. Easy to reproduce:
open 2mbw
hb
save <session file>.cxs
close
open <session file>.cxs
I'm attaching such a session file
by , 3 years ago
comment:6 by , 3 years ago
Am I missing something. Your example in the previous comment produces no error in ChimeraX 1.6.1. Did you leave out changing the model number?
comment:8 by , 3 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed.
The session restore code did not properly handle the case where a structure pseudobond group such as they hydrogen bonds has been moved so it is no longer a child model of the structure. The restore code always made the pseudobond group a child of the structure but then the model id numbers were not compatible since the id number for a child model must start with the same id digits of its parent. I changed the code so restoring does not assume a structure pseudobond group model is a child of the structure model.
Changing the model number of the hydrogen bonds so they are not under the structure was a very strange thing to do which is probably why this bug has never been reported before.
Hi Chris,
--Eric