Opened 3 years ago
Closed 2 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: | pett | |
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 , 2 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 , 2 years ago
Status: | feedback → accepted |
---|
comment:5 by , 2 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 , 2 years ago
comment:6 by , 2 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 , 2 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