Opened 2 years ago

Last modified 2 years ago

#9249 assigned defect

SEQCROW: session save: 'OrbitalGrid' object has no attribute 'data'

Reported by: henriquecsj@… Owned by: Tony Schaefer
Priority: normal Milestone:
Component: Third Party Version:
Keywords: Cc: Greg Couch, Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.22000
ChimeraX Version: 1.6.1 (2023-05-09 17:57:07 UTC)
Description
Error when saving a ChimeraX session after opening ORCA output and rendering HOMO-LUMO with the Quantum Chemistry feature

Log:
You can double click a model's Name or ID in the model panel to edit those
fields  
UCSF ChimeraX version: 1.6.1 (2023-05-09)  
© 2016-2023 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  
Updating list of available bundles failed: Internal Server Error  

> toolshed show

> ui tool show Updates

> open "C:/Users/henri/OneDrive -
> id.uff.br/Academic/Calculations/UFRGS/RDB_NTIL/a/SP/NTILa.out"

Opened NTILa.out as an ORCA output file  

> select /a:1@Br1

1 atom, 1 residue, 1 model selected  

> style sel ball

Changed 1 atom style  

> select clear

> select

63 atoms, 63 bonds, 1 residue, 1 model selected  

> style sel stick

Changed 63 atom styles  

> interfaces select & ~solvent

Missing or invalid "atoms" argument: invalid atoms specifier  

> preset "overall look" "publication 1 (silhouettes)"

Using preset: Overall Look / Publication 1 (Silhouettes)  
Preset expands to these ChimeraX commands:

    
    
    set bg white
    graphics silhouettes t
    lighting depthCue f

  

> preset seqcrow ball-stick-endcap

Using preset: SEQCROW / Ball-Stick-Endcap  
Preset implemented in Python; no expansion to individual ChimeraX commands
available.  

> select clear

> lighting full

> lighting soft

> lighting simple

> preset seqcrow "ball-stick-endcap 2"

Using preset: SEQCROW / Ball-Stick-Endcap 2  
Preset implemented in Python; no expansion to individual ChimeraX commands
available.  

> preset seqcrow ball-stick-endcap

Using preset: SEQCROW / Ball-Stick-Endcap  
Preset implemented in Python; no expansion to individual ChimeraX commands
available.  

> ui tool show "Orbital Viewer"

Opened MO alpha 129 as #1.1, grid size 174,158,130, pixel 0.1,0.101,0.1, shown
at level -0.05,0.05, step 1, values float32  

> hide #1.1

Opened MO alpha 130 as #1.2, grid size 174,158,130, pixel 0.1,0.101,0.1, shown
at level -0.05,0.05, step 1, values float32  

> transparency 20

> show #1.2

> volume #1.2 level -0.050 level 0.050 color #ff007f80 color #ffff0080

> show #!1.1 models

> show #1.1.1 models

> show #1.1.2 models

> transparency 20

> transparency 30

> transparency 20

> transparency 30

> save "C:/Users/henri/OneDrive -
> id.uff.br/Academic/Calculations/UFRGS/RDB_NTIL/a/SP/HOMO-LUMO.cxs"

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 285, in process  
data = sm.take_snapshot(obj, session, self.state_flags)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\session.py", line 200, in take_snapshot  
data = state_from_grid_data(self.grid_data, session_path =
session.session_file_path,  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\session.py", line 310, in state_from_grid_data  
bytes = dt.matrix().tobytes()  
File "C:\Users\henri\AppData\Local\UCSF\ChimeraX\1.6\site-
packages\SEQCROW\tools\mo_viewer.py", line 83, in matrix  
ijk_size = self.data.shape  
AttributeError: 'OrbitalGrid' object has no attribute 'data'  
  
The above exception was the direct cause of the following exception:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 262, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 290, in process  
raise RuntimeError(msg) from e  
RuntimeError: Error while saving session data for 'models' ->
<chimerax.core.models.Models object at 0x00000201EDCEC4F0> ->
<chimerax.map.volume.VolumeSurface object at 0x00000201AC999670> 'surface' ->
<chimerax.map.volume.Volume object at 0x00000201A93661F0> 'MO alpha 130' ->
<chimerax.map.session.GridDataState object at 0x00000201A93832B0>  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 899, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 625, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 266, in discovery  
raise ValueError("error processing: %s: %s" % (_obj_stack(parents, obj), e))  
ValueError: error processing: 'models' -> <chimerax.core.models.Models object
at 0x00000201EDCEC4F0> -> <chimerax.map.volume.VolumeSurface object at
0x00000201AC999670> 'surface' -> <chimerax.map.volume.Volume object at
0x00000201A93661F0> 'MO alpha 130' -> <chimerax.map.session.GridDataState
object at 0x00000201A93832B0>: Error while saving session data for 'models' ->
<chimerax.core.models.Models object at 0x00000201EDCEC4F0> ->
<chimerax.map.volume.VolumeSurface object at 0x00000201AC999670> 'surface' ->
<chimerax.map.volume.Volume object at 0x00000201A93661F0> 'MO alpha 130' ->
<chimerax.map.session.GridDataState object at 0x00000201A93832B0>  
  
ValueError: error processing: 'models' -> -> 'surface' -> 'MO alpha 130' -> :
Error while saving session data for 'models' -> -> 'surface' -> 'MO alpha 130'
->  
  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 266, in discovery  
raise ValueError("error processing: %s: %s" % (_obj_stack(parents, obj), e))  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 285, in process  
data = sm.take_snapshot(obj, session, self.state_flags)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\session.py", line 200, in take_snapshot  
data = state_from_grid_data(self.grid_data, session_path =
session.session_file_path,  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\session.py", line 310, in state_from_grid_data  
bytes = dt.matrix().tobytes()  
File "C:\Users\henri\AppData\Local\UCSF\ChimeraX\1.6\site-
packages\SEQCROW\tools\mo_viewer.py", line 83, in matrix  
ijk_size = self.data.shape  
AttributeError: 'OrbitalGrid' object has no attribute 'data'  
  
The above exception was the direct cause of the following exception:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 262, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 290, in process  
raise RuntimeError(msg) from e  
RuntimeError: Error while saving session data for 'models' ->
<chimerax.core.models.Models object at 0x00000201EDCEC4F0> ->
<chimerax.map.volume.VolumeSurface object at 0x00000201AC999670> 'surface' ->
<chimerax.map.volume.Volume object at 0x00000201A93661F0> 'MO alpha 130' ->
<chimerax.map.session.GridDataState object at 0x00000201A93832B0>  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 116, in <lambda>  
lambda *args, ses=session: show_save_file_dialog(ses), tool_tip="Save output
file",  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 127, in show_save_file_dialog  
_dlg.display(session, **kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 51, in display  
run(session, cmd)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\run.py", line 38, in run  
results = command.run(text, log=log, return_json=return_json)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2897, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 75, in cmd_save  
Command(session, registry=registry).run(provider_cmd_text, log=log)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2897, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 90, in provider_save  
saver_info.save(session, path, **provider_kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core_formats\\__init__.py", line 84, in save  
return cxs_save(session, path, **kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 899, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 625, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 266, in discovery  
raise ValueError("error processing: %s: %s" % (_obj_stack(parents, obj), e))  
ValueError: error processing: 'models' -> <chimerax.core.models.Models object
at 0x00000201EDCEC4F0> -> <chimerax.map.volume.VolumeSurface object at
0x00000201AC999670> 'surface' -> <chimerax.map.volume.Volume object at
0x00000201A93661F0> 'MO alpha 130' -> <chimerax.map.session.GridDataState
object at 0x00000201A93832B0>: Error while saving session data for 'models' ->
<chimerax.core.models.Models object at 0x00000201EDCEC4F0> ->
<chimerax.map.volume.VolumeSurface object at 0x00000201AC999670> 'surface' ->
<chimerax.map.volume.Volume object at 0x00000201A93661F0> 'MO alpha 130' ->
<chimerax.map.session.GridDataState object at 0x00000201A93832B0>  
  
ValueError: error processing: 'models' -> -> 'surface' -> 'MO alpha 130' -> :
Error while saving session data for 'models' -> -> 'surface' -> 'MO alpha 130'
->  
  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 266, in discovery  
raise ValueError("error processing: %s: %s" % (_obj_stack(parents, obj), e))  
  
See log for complete Python traceback.  
  

> save C:/Users/henri/NTILa_HL.cxs includeMaps true

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 285, in process  
data = sm.take_snapshot(obj, session, self.state_flags)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\session.py", line 200, in take_snapshot  
data = state_from_grid_data(self.grid_data, session_path =
session.session_file_path,  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\session.py", line 310, in state_from_grid_data  
bytes = dt.matrix().tobytes()  
File "C:\Users\henri\AppData\Local\UCSF\ChimeraX\1.6\site-
packages\SEQCROW\tools\mo_viewer.py", line 83, in matrix  
ijk_size = self.data.shape  
AttributeError: 'OrbitalGrid' object has no attribute 'data'  
  
The above exception was the direct cause of the following exception:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 262, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 290, in process  
raise RuntimeError(msg) from e  
RuntimeError: Error while saving session data for 'models' ->
<chimerax.core.models.Models object at 0x00000201EDCEC4F0> ->
<chimerax.map.volume.VolumeSurface object at 0x00000201AC999670> 'surface' ->
<chimerax.map.volume.Volume object at 0x00000201A93661F0> 'MO alpha 130' ->
<chimerax.map.session.GridDataState object at 0x00000201B6933550>  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 899, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 625, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 266, in discovery  
raise ValueError("error processing: %s: %s" % (_obj_stack(parents, obj), e))  
ValueError: error processing: 'models' -> <chimerax.core.models.Models object
at 0x00000201EDCEC4F0> -> <chimerax.map.volume.VolumeSurface object at
0x00000201AC999670> 'surface' -> <chimerax.map.volume.Volume object at
0x00000201A93661F0> 'MO alpha 130' -> <chimerax.map.session.GridDataState
object at 0x00000201B6933550>: Error while saving session data for 'models' ->
<chimerax.core.models.Models object at 0x00000201EDCEC4F0> ->
<chimerax.map.volume.VolumeSurface object at 0x00000201AC999670> 'surface' ->
<chimerax.map.volume.Volume object at 0x00000201A93661F0> 'MO alpha 130' ->
<chimerax.map.session.GridDataState object at 0x00000201B6933550>  
  
ValueError: error processing: 'models' -> -> 'surface' -> 'MO alpha 130' -> :
Error while saving session data for 'models' -> -> 'surface' -> 'MO alpha 130'
->  
  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 266, in discovery  
raise ValueError("error processing: %s: %s" % (_obj_stack(parents, obj), e))  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 285, in process  
data = sm.take_snapshot(obj, session, self.state_flags)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\session.py", line 200, in take_snapshot  
data = state_from_grid_data(self.grid_data, session_path =
session.session_file_path,  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\session.py", line 310, in state_from_grid_data  
bytes = dt.matrix().tobytes()  
File "C:\Users\henri\AppData\Local\UCSF\ChimeraX\1.6\site-
packages\SEQCROW\tools\mo_viewer.py", line 83, in matrix  
ijk_size = self.data.shape  
AttributeError: 'OrbitalGrid' object has no attribute 'data'  
  
The above exception was the direct cause of the following exception:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 262, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 290, in process  
raise RuntimeError(msg) from e  
RuntimeError: Error while saving session data for 'models' ->
<chimerax.core.models.Models object at 0x00000201EDCEC4F0> ->
<chimerax.map.volume.VolumeSurface object at 0x00000201AC999670> 'surface' ->
<chimerax.map.volume.Volume object at 0x00000201A93661F0> 'MO alpha 130' ->
<chimerax.map.session.GridDataState object at 0x00000201B6933550>  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 116, in <lambda>  
lambda *args, ses=session: show_save_file_dialog(ses), tool_tip="Save output
file",  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 127, in show_save_file_dialog  
_dlg.display(session, **kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 51, in display  
run(session, cmd)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\run.py", line 38, in run  
results = command.run(text, log=log, return_json=return_json)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2897, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 75, in cmd_save  
Command(session, registry=registry).run(provider_cmd_text, log=log)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2897, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 90, in provider_save  
saver_info.save(session, path, **provider_kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core_formats\\__init__.py", line 84, in save  
return cxs_save(session, path, **kw)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 899, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 625, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 266, in discovery  
raise ValueError("error processing: %s: %s" % (_obj_stack(parents, obj), e))  
ValueError: error processing: 'models' -> <chimerax.core.models.Models object
at 0x00000201EDCEC4F0> -> <chimerax.map.volume.VolumeSurface object at
0x00000201AC999670> 'surface' -> <chimerax.map.volume.Volume object at
0x00000201A93661F0> 'MO alpha 130' -> <chimerax.map.session.GridDataState
object at 0x00000201B6933550>: Error while saving session data for 'models' ->
<chimerax.core.models.Models object at 0x00000201EDCEC4F0> ->
<chimerax.map.volume.VolumeSurface object at 0x00000201AC999670> 'surface' ->
<chimerax.map.volume.Volume object at 0x00000201A93661F0> 'MO alpha 130' ->
<chimerax.map.session.GridDataState object at 0x00000201B6933550>  
  
ValueError: error processing: 'models' -> -> 'surface' -> 'MO alpha 130' -> :
Error while saving session data for 'models' -> -> 'surface' -> 'MO alpha 130'
->  
  
File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\core\session.py", line 266, in discovery  
raise ValueError("error processing: %s: %s" % (_obj_stack(parents, obj), e))  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.14830 Core Profile Forward-Compatible Context 22.6.1 27.20.20913.2000
OpenGL renderer: AMD Radeon R7 M440
OpenGL vendor: ATI Technologies Inc.

Python: 3.9.11
Locale: en_US.cp1252
Qt version: PyQt6 6.4.2, Qt 6.4.2
Qt runtime version: 6.4.3
Qt platform: windows

Manufacturer: Dell Inc.
Model: Inspiron 5567
OS: Microsoft Windows 11 Pro (Build 22000)
Memory: 17,016,274,944
MaxProcessMemory: 137,438,953,344
CPU: 4 Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
OSLanguage: en-US

Installed Packages:
    alabaster: 0.7.13
    appdirs: 1.4.4
    argcomplete: 3.0.5
    asttokens: 2.2.1
    attrs: 22.2.0
    Babel: 2.12.1
    backcall: 0.2.0
    basis-set-exchange: 0.9
    beautifulsoup4: 4.11.2
    blockdiag: 3.0.0
    build: 0.10.0
    certifi: 2023.5.7
    cftime: 1.6.2
    charset-normalizer: 3.1.0
    ChimeraX-AddCharge: 1.5.9.1
    ChimeraX-AddH: 2.2.5
    ChimeraX-AlignmentAlgorithms: 2.0.1
    ChimeraX-AlignmentHdrs: 3.3.1
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.9.3
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.0.3
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.43.10
    ChimeraX-AtomicLibrary: 10.0.6
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.3.2
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.1.2
    ChimeraX-BondRot: 2.0.1
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.8
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.2.2
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.3.2
    ChimeraX-ChangeChains: 1.0.2
    ChimeraX-CheckWaters: 1.3.1
    ChimeraX-ChemGroup: 2.0.1
    ChimeraX-Clashes: 2.2.4
    ChimeraX-Clipper: 0.21.0
    ChimeraX-ColorActions: 1.0.3
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.3
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.6.1
    ChimeraX-CoreFormats: 1.1
    ChimeraX-coulombic: 1.4.2
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.3
    ChimeraX-Dicom: 1.2
    ChimeraX-DistMonitor: 1.4
    ChimeraX-DockPrep: 1.1.1
    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.1.1
    ChimeraX-Hbonds: 2.4
    ChimeraX-Help: 1.2.1
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ISOLDE: 1.6.0
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-Label: 1.1.7
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.5
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.2
    ChimeraX-Map: 1.1.4
    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.0.12
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.2
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.12
    ChimeraX-MMTF: 2.2
    ChimeraX-Modeller: 1.5.9
    ChimeraX-ModelPanel: 1.3.7
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.2
    ChimeraX-MouseModes: 1.2
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nifti: 1.0
    ChimeraX-NIHPresets: 1.1.9
    ChimeraX-NRRD: 1.0
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.10.1
    ChimeraX-PDB: 2.7.2
    ChimeraX-PDBBio: 1.0
    ChimeraX-PDBLibrary: 1.0.2
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1
    ChimeraX-PubChem: 2.1
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.1
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 3.0
    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.1
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.8.3
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.1.1
    ChimeraX-ShowSequences: 1.0.1
    ChimeraX-SideView: 1.0.1
    ChimeraX-Smiles: 2.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.10.3
    ChimeraX-STL: 1.0.1
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.1.2
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0.1
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.2.1
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1.2
    ChimeraX-ToolshedUtils: 1.2.1
    ChimeraX-Topography: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.28.4
    ChimeraX-uniprot: 2.2.2
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.2
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.2
    ChimeraX-WebServices: 1.1.1
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.1.3
    comtypes: 1.1.14
    contourpy: 1.0.7
    cxservices: 1.2.2
    cycler: 0.11.0
    Cython: 0.29.33
    debugpy: 1.6.7
    decorator: 5.1.1
    docutils: 0.19
    executing: 1.2.0
    filelock: 3.9.0
    fonttools: 4.39.3
    funcparserlib: 1.0.1
    grako: 3.16.5
    h5py: 3.8.0
    html2text: 2020.1.16
    idna: 3.4
    ihm: 0.35
    imagecodecs: 2022.9.26
    imagesize: 1.4.1
    importlib-metadata: 6.6.0
    ipykernel: 6.21.1
    ipython: 8.10.0
    ipython-genutils: 0.2.0
    ipywidgets: 8.0.6
    jedi: 0.18.2
    Jinja2: 3.1.2
    jsonschema: 4.17.3
    jupyter-client: 8.0.2
    jupyter-core: 5.3.0
    jupyterlab-widgets: 3.0.7
    kiwisolver: 1.4.4
    line-profiler: 4.0.2
    lxml: 4.9.2
    lz4: 4.3.2
    MarkupSafe: 2.1.2
    matplotlib: 3.6.3
    matplotlib-inline: 0.1.6
    msgpack: 1.0.4
    nest-asyncio: 1.5.6
    netCDF4: 1.6.2
    networkx: 2.8.8
    nibabel: 5.0.1
    nptyping: 2.5.0
    numexpr: 2.8.4
    numpy: 1.23.5
    openvr: 1.23.701
    packaging: 23.1
    ParmEd: 3.4.3
    parso: 0.8.3
    pep517: 0.13.0
    pickleshare: 0.7.5
    Pillow: 9.3.0
    pip: 23.0
    pkginfo: 1.9.6
    platformdirs: 3.5.0
    prompt-toolkit: 3.0.38
    psutil: 5.9.4
    pure-eval: 0.2.2
    pycollada: 0.7.2
    pydicom: 2.3.0
    Pygments: 2.14.0
    pynrrd: 1.0.0
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 3.0.9
    pyproject-hooks: 1.0.0
    PyQt6-commercial: 6.4.2
    PyQt6-Qt6: 6.4.3
    PyQt6-sip: 13.4.1
    PyQt6-WebEngine-commercial: 6.4.0
    PyQt6-WebEngine-Qt6: 6.4.3
    pyrsistent: 0.19.3
    python-dateutil: 2.8.2
    pytz: 2023.3
    pywin32: 305
    pyzmq: 25.0.2
    qtconsole: 5.4.0
    QtPy: 2.3.1
    RandomWords: 0.4.0
    regex: 2023.3.23
    requests: 2.28.2
    scipy: 1.9.3
    Send2Trash: 1.8.0
    SEQCROW: 1.6.5
    setuptools: 67.4.0
    sfftk-rw: 0.7.3
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    soupsieve: 2.4.1
    sphinx: 6.1.3
    sphinx-autodoc-typehints: 1.22
    sphinxcontrib-applehelp: 1.0.4
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 2.0.1
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.5
    stack-data: 0.6.2
    tables: 3.7.0
    tcia-utils: 1.2.0
    tifffile: 2022.10.10
    tinyarray: 1.2.4
    tomli: 2.0.1
    tornado: 6.3.1
    traitlets: 5.9.0
    typing-extensions: 4.5.0
    tzdata: 2023.3
    urllib3: 1.26.15
    wcwidth: 0.2.6
    webcolors: 1.12
    wheel: 0.38.4
    wheel-filename: 1.4.1
    widgetsnbextension: 4.0.7
    WMI: 1.5.1
    zipp: 3.15.0

Change History (8)

comment:1 by Eric Pettersen, 2 years ago

Component: UnassignedThird Party
Owner: set to Tony Schaefer
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionSEQCROW: session save: 'OrbitalGrid' object has no attribute 'data'

Reported by Dr. Henrique de Castro

comment:2 by Tony Schaefer, 2 years ago

Henrique,

Thanks for reporting this. I'm working on a fix, but it might take some
time. I can get orbitals that have been drawn to save and load from session
files, but I'm having issues storing the MO data, so you wouldn't be able
to look at other orbitals or their energies.

Eric (or any other dev), is there a way to get more details about why an
object can't be saved to a session? Right now, I can just see warnings in
the log, like "Unable to save X -> Y -> <Z object>. Session might not
restore properly.". All the <Z objects> it lists are things I've added to
my BundleAPI's `get_class`, but maybe there's some attribute of those
objects causing issues?

Thanks,

Tony

On Mon, Jun 26, 2023 at 12:26 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>
>
>

comment:3 by Eric Pettersen, 2 years ago

Cc: Greg Couch Tom Goddard added

Hi Tony,

The error output is kind of verbose, but I think the "real" problem is in the first error/traceback:

File "C:\Program Files\ChimeraX\bin\lib\site-
packages\chimerax\map\session.py", line 310, in state_from_grid_data
bytes = dt.matrix().tobytes()
File "C:\Users\henri\AppData\Local\UCSF\ChimeraX\1.6\site-
packages\SEQCROW\tools\mo_viewer.py", line 83, in matrix
ijk_size = self.data.shape
AttributeError: 'OrbitalGrid' object has no attribute 'data'

--Eric

comment:4 by Tony Schaefer, 2 years ago

Eric,

Yes, I've fixed that error, but now I'm noticing other issues with saving
sessions. A lot of data in other classes for things like calculating
molecular orbitals or showing normal vibrational nodes. If this data can't
be stored in a session file, I think it limits the use of saving session
files with SEQCROW files. As an example, it looks like Henrique was looking
at the HOMO and the LUMO. If Henrique saved the session and wanted to go
back to look at the HOMO-LUMO gap, that data would not be in the session
file - nor the data necessary to calculate other orbitals/electron density.
The bug reported above affects saving the volume/surface data for the
orbitals, but I'd like to save the object SEQCROW uses to store all the MO
data.

Here's an example of the warning I'm seeing now that I can save sessions
"without error" (only warnings) in my development version of SEQCROW:

Unable to save 'attribute registration' ->
<chimerax.core.attributes.RegAttrManager object at 0x000002412D2FC8D0> ->
<chimerax.atomic.structure.AtomicStructure object at 0x00000241772E7D50>
'sulfonamide-orbits' -> <AaronTools.orbitals.Orbitals object at
0x00000241732FB250>". Session might not restore properly.

I'd like to figure out why the Orbitals object can't be stored.

Thanks,

Tony

On Tue, Jun 27, 2023 at 11:02 AM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>
>
>
>
>

comment:5 by Eric Pettersen, 2 years ago

Hi Tony,

The ChimeraX session saving code only inherently knows how to save simple builtin Python types (int, string, etc.) and numpy types. For classes to save in sessions, they need to inherit from core.state.State and implement take_snapshot and restore_snapshot. That makes saving these AaronTools classes, like Orbitals, ugly.
I see two possible solutions. One is to import the AaronTools classes as a base class and deriving classes that also inherit from State, e.g.:

from AaronTools.orbitals import Orbitals as _Orbitals
class Orbitals(_Orbitals, State):

def take_snapshot(...):

...

def restore_snapshot(...):

...

This approach only works if the SEQCROW code is the only code creating the AaronTools classes. If AaronTools code also creates those classes then this method will run aground.

The other method is to use a "proxy" class that can save and restore the AaronTools class state, and inform the session-saving code about the classes. You make a dictionary that maps from classes that need saving to the classes that save them, and call

session.register_snapshot_methods(mapping_dict)

From the doc string for that method:

For session saving objects that do not have a State base class. Methods is a dictionary matching the class to be saved in sessions to another class with static methods take_snapshot(instance, session, flags) and restore_snapshot(session, data). There are examples of this approach in chimerax.graphics.gsession.

Both approaches will be a bit of work.

--Eric

comment:6 by Tony Schaefer, 2 years ago

Eric,

Thanks for the help. The second approach isn't as bad as it could be.
AaronTools can already cache many types of objects to a json file, so I'm
able to just dump/load most things to a json string when taking/restoring a
snapshot. I still have a bit more work to do, but I've made some progress.

Thanks,

Tony

On Tue, Jun 27, 2023 at 12:43 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>
>
>
>
>
>
>

comment:7 by Eric Pettersen, 2 years ago

That JSON dump capability does sound like a major help here!

comment:8 by Tony Schaefer, 2 years ago

Henrique,

The new SEQCROW version on the toolshed should be able to save session
files. To update:
* go to Tools -> More Tools... on the ChimeraX menu
* go the the SEQCROW page and click the update button
* restart ChimeraX

Best,

Tony


On Mon, Jun 26, 2023 at 12:26 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
wrote:

>
>
>
>
Note: See TracTickets for help on using tickets.