Opened 4 years ago
Closed 4 years ago
#5113 closed defect (fixed)
Session depends on atomic bundle when no atomic models opened
Reported by: | Owned by: | pett | |
---|---|---|---|
Priority: | critical | Milestone: | 1.3 |
Component: | Sessions | Version: | |
Keywords: | Cc: | Greg Couch | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: macOS-10.15.7-x86_64-i386-64bit ChimeraX Version: 1.2.5 (2021-05-24 04:13:57 UTC) Description Tried to open a session from newer dailhy build in 1.2.5. Error complains that a newer atomic bundle version is needed. This is surprising because I did not open any atomic models, only volume data. Log: UCSF ChimeraX version: 1.2.5 (2021-05-24) © 2016-2021 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open /Users/goddard/ucsf/chimerax/src/bundles/map_filter/test.cxs format > session > To Restore session: > > * update Atomic bundle to version 1.28.1 or newer (have 1.13.2) > Unable to restore session: need to update bundle Failed to send bug report. Possibly no internet connection. OpenGL version: 4.1 ATI-3.10.19 OpenGL renderer: AMD Radeon Pro Vega 20 OpenGL Engine OpenGL vendor: ATI Technologies Inc.Hardware: Hardware Overview: Model Name: MacBook Pro Model Identifier: MacBookPro15,3 Processor Name: 8-Core Intel Core i9 Processor Speed: 2.4 GHz Number of Processors: 1 Total Number of Cores: 8 L2 Cache (per Core): 256 KB L3 Cache: 16 MB Hyper-Threading Technology: Enabled Memory: 32 GB Boot ROM Version: 1554.100.64.0.0 (iBridge: 18.16.14556.0.0,0) Software: System Software Overview: System Version: macOS 10.15.7 (19H1030) Kernel Version: Darwin 19.6.0 Time since boot: 96 days 22:45 Graphics/Displays: Intel UHD Graphics 630: Chipset Model: Intel UHD Graphics 630 Type: GPU Bus: Built-In VRAM (Dynamic, Max): 1536 MB Vendor: Intel Device ID: 0x3e9b Revision ID: 0x0002 Automatic Graphics Switching: Supported gMux Version: 5.0.0 Metal: Supported, feature set macOS GPUFamily2 v1 Radeon Pro Vega 20: Chipset Model: Radeon Pro Vega 20 Type: GPU Bus: PCIe PCIe Lane Width: x8 VRAM (Total): 4 GB Vendor: AMD (0x1002) Device ID: 0x69af Revision ID: 0x00c0 ROM Revision: 113-D2060I-087 VBIOS Version: 113-D20601MA0T-016 Option ROM Version: 113-D20601MA0T-016 EFI Driver Version: 01.01.087 Automatic Graphics Switching: Supported gMux Version: 5.0.0 Metal: Supported, feature set macOS GPUFamily2 v1 Displays: Color LCD: Display Type: Built-In Retina LCD Resolution: 2880 x 1800 Retina Framebuffer Depth: 24-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Automatically Adjust Brightness: No Connection Type: Internal Locale: (None, 'UTF-8') PyQt5 5.15.2, Qt 5.15.2 Installed Packages: alabaster: 0.7.12 appdirs: 1.4.4 appnope: 0.1.2 Babel: 2.9.1 backcall: 0.2.0 biopython: 1.78 blockdiag: 2.0.1 certifi: 2020.12.5 cftime: 1.5.0 chardet: 3.0.4 ChimeraX-AddCharge: 1.0.1 ChimeraX-AddH: 2.1.6 ChimeraX-AlignmentAlgorithms: 2.0 ChimeraX-AlignmentHdrs: 3.2 ChimeraX-AlignmentMatrices: 2.0 ChimeraX-Alignments: 2.1 ChimeraX-AmberInfo: 1.0 ChimeraX-Arrays: 1.0 ChimeraX-Atomic: 1.13.2 ChimeraX-AtomicLibrary: 3.1.3 ChimeraX-AtomSearch: 2.0 ChimeraX-AtomSearchLibrary: 1.0 ChimeraX-AxesPlanes: 2.0 ChimeraX-BasicActions: 1.1 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 1.1 ChimeraX-BondRot: 2.0 ChimeraX-BugReporter: 1.0 ChimeraX-BuildStructure: 2.5.2 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.1 ChimeraX-ButtonPanel: 1.0 ChimeraX-CageBuilder: 1.0 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.1 ChimeraX-ChemGroup: 2.0 ChimeraX-Clashes: 2.1 ChimeraX-Clipper: 0.16.1 ChimeraX-ColorActions: 1.0 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.2.1 ChimeraX-CommandLine: 1.1.4 ChimeraX-ConnectStructure: 2.0 ChimeraX-Contacts: 1.0 ChimeraX-Core: 1.2.5 ChimeraX-CoreFormats: 1.0 ChimeraX-coulombic: 1.1.1 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0 ChimeraX-DataFormats: 1.1 ChimeraX-Dicom: 1.0 ChimeraX-DistMonitor: 1.1.3 ChimeraX-DistUI: 1.0 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ExperimentalCommands: 1.0 ChimeraX-FileHistory: 1.0 ChimeraX-FunctionKey: 1.0 ChimeraX-Geometry: 1.1 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.0 ChimeraX-Hbonds: 2.1 ChimeraX-Help: 1.1 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.0 ChimeraX-ImageFormats: 1.1 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.1 ChimeraX-ISOLDE: 1.2.2 ChimeraX-Label: 1.0 ChimeraX-ListInfo: 1.1.1 ChimeraX-Log: 1.1.2 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.8.1 ChimeraX-Map: 1.0.2 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0 ChimeraX-MapFilter: 2.0 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.0 ChimeraX-Markers: 1.0 ChimeraX-Mask: 1.0 ChimeraX-MatchMaker: 1.2.1 ChimeraX-MDcrds: 2.2 ChimeraX-MedicalToolbar: 1.0.1 ChimeraX-Meeting: 1.0 ChimeraX-MLP: 1.1 ChimeraX-mmCIF: 2.3 ChimeraX-MMTF: 2.1 ChimeraX-Modeller: 1.0.1 ChimeraX-ModelPanel: 1.0.1 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.1 ChimeraX-OpenCommand: 1.5 ChimeraX-PDB: 2.4.1 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0.1 ChimeraX-PDBMatrices: 1.0 ChimeraX-Phenix: 0.3 ChimeraX-PickBlobs: 1.0 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.0.1 ChimeraX-PubChem: 2.0.1 ChimeraX-ReadPbonds: 1.0 ChimeraX-Registration: 1.1 ChimeraX-RemoteControl: 1.0 ChimeraX-ResidueFit: 1.0 ChimeraX-RestServer: 1.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 2.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.4 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0 ChimeraX-SeqView: 2.3 ChimeraX-Shape: 1.0.1 ChimeraX-Shell: 1.0 ChimeraX-Shortcuts: 1.0 ChimeraX-ShowAttr: 1.0 ChimeraX-ShowSequences: 1.0 ChimeraX-SideView: 1.0 ChimeraX-Smiles: 2.0.1 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.3.1 ChimeraX-STL: 1.0 ChimeraX-Storm: 1.0 ChimeraX-Struts: 1.0 ChimeraX-Surface: 1.0 ChimeraX-SwapAA: 2.0 ChimeraX-SwapRes: 2.1 ChimeraX-TapeMeasure: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.0.1 ChimeraX-ToolshedUtils: 1.2 ChimeraX-Tug: 1.0 ChimeraX-UI: 1.7.6 ChimeraX-uniprot: 2.1 ChimeraX-UnitCell: 1.0 ChimeraX-ViewDockX: 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.0 ChimeraX-Zone: 1.0 colorama: 0.4.3 comtypes: 1.1.7 cxservices: 1.0 cycler: 0.10.0 Cython: 0.29.21 decorator: 5.0.9 distlib: 0.3.1 docutils: 0.16 filelock: 3.0.12 funcparserlib: 0.3.6 grako: 3.16.5 h5py: 2.10.0 html2text: 2020.1.16 idna: 2.10 ihm: 0.17 imagecodecs: 2020.5.30 imagesize: 1.2.0 ipykernel: 5.3.4 ipython: 7.18.1 ipython-genutils: 0.2.0 jedi: 0.17.2 Jinja2: 2.11.2 jupyter-client: 6.1.7 jupyter-core: 4.7.1 kiwisolver: 1.3.1 line-profiler: 2.1.2 lxml: 4.6.2 lz4: 3.1.0 MarkupSafe: 2.0.1 matplotlib: 3.3.2 matplotlib-inline: 0.1.2 MolecularDynamicsViewer: 1.1 msgpack: 1.0.0 netCDF4: 1.5.4 networkx: 2.5 numexpr: 2.7.3 numpy: 1.19.2 numpydoc: 1.1.0 openvr: 1.14.1501 packaging: 20.9 ParmEd: 3.2.0 parso: 0.7.1 pexpect: 4.8.0 pickleshare: 0.7.5 Pillow: 7.2.0 pip: 21.0.1 pkginfo: 1.5.0.1 prompt-toolkit: 3.0.18 psutil: 5.7.2 ptyprocess: 0.7.0 pycollada: 0.7.1 pydicom: 2.0.0 Pygments: 2.7.1 PyOpenGL: 3.1.5 PyOpenGL-accelerate: 3.1.5 pyparsing: 2.4.7 PyQt5-commercial: 5.15.2 PyQt5-sip: 12.8.1 PyQtWebEngine-commercial: 5.15.2 python-dateutil: 2.8.1 pytz: 2021.1 pyzmq: 22.0.3 qtconsole: 4.7.7 QtPy: 1.9.0 RandomWords: 0.3.0 requests: 2.24.0 scipy: 1.5.2 Send2Trash: 1.5.0 setuptools: 50.3.2 sfftk-rw: 0.6.7.dev1 six: 1.15.0 snowballstemmer: 2.1.0 sortedcontainers: 2.2.2 Sphinx: 3.2.1 sphinxcontrib-applehelp: 1.0.2 sphinxcontrib-blockdiag: 2.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-jurko: 0.6 tables: 3.6.1 tifffile: 2020.9.3 tinyarray: 1.2.3 tornado: 6.1 traitlets: 5.0.5 urllib3: 1.25.11 wcwidth: 0.2.5 webcolors: 1.11.1 wheel: 0.36.0 wheel-filename: 1.3.0
Change History (11)
comment:1 by , 4 years ago
Cc: | added |
---|---|
Component: | Unassigned → Sessions |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Session depends on atomic bundle when no atomic models opened |
Type: | defect → enhancement |
comment:2 by , 4 years ago
Cc: | added; removed |
---|---|
Owner: | changed from | to
Yeah, this seems like a session bug. I created a session that only had a color key and no structures in the daily build. Trying to restore it in 1.2.5 claimed that I need to update atomic. Why?
comment:3 by , 4 years ago
Milestone: | → 1.3 |
---|---|
Type: | enhancement → defect |
This really should get resolved before 1.3 goes out.
comment:5 by , 4 years ago
Priority: | normal → critical |
---|
comment:6 by , 4 years ago
Owner: | changed from | to
---|
There are several managers provided by the ChimeraX-Atomic bundle that would need to not save themselves for ChimeraX-Atomic to not show up. Namely: RegAttrManager (attribute registration) and PseudobondManager (pb_manager).
comment:7 by , 4 years ago
Owner: | changed from | to
---|
So there is no mechanism for state containers to not be included in the session. We would need a way to query the state containers, explicitly the "attribute registration" and "pb_manager" state containers, to see if they need to be included or not. For "attribute registration" that would checking to see if there are any Structure models open, and for "pb_manager" checking if there are any pseudobonds.
A proposed solution is to add an include method to StateManager class that defaults to returning True. And a state container can override that method. For "attribute registration", the RegAttrManager is now in the core, so the dependency on Atomic could be removed without changing the API. The code in ChimeraX-Atomic for restoring attribute registration would need to stay for backwards compatibility.
Thoughts?
comment:8 by , 4 years ago
That could work I think. Does reset_state() get called on managers during the session-restore process? Because the existing session.pb_manager would need that called on it even if it were not included in the session (well, particularly if it wasn't included in order to clear out the old pseudobonds).
comment:10 by , 4 years ago
Cc: | added; removed |
---|---|
Owner: | changed from | to
Added include_state method to StateManager API. And added an include_state method to View's snapshot_methods is gsession.py that always returns True.
Reassigned to Eric to plumb RegAttrManager and PseudobondManager.
comment:11 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Using the new include_state StateManager method allows 1.3 sessions to restore in 1.2.5 as long as they have no atomic data.
Does the atomic bundle save state in sessions even when no atomic models were ever opened? Or is the problem with the session save code not knowing whether the atomic bundle state saving was ever used so it conservatively assumes every loaded bundle saved state?