Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#3347 closed defect (fixed)

Session saving creating arbitrary class instances

Reported by: chimerax-bug-report@… Owned by: Greg Couch
Priority: normal Milestone:
Component: Sessions Version:
Keywords: Cc: Eric Pettersen
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.18362
ChimeraX Version: 1.0rc202005292300 (2020-05-29 23:00:06 UTC)
Description
(Describe the actions that caused this problem to occur here)

Log:
UCSF ChimeraX version: 1.0rc202005292300 (2020-05-29)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open 1qrk format mmcif fromDatabase pdb

1qrk title:  
Human factor XIII with strontium bound In the ion site [more info...]  
  
Chain information for 1qrk #1  
---  
Chain | Description  
A B | protein (coagulation factor XIII)  
  
Non-standard residues in 1qrk #1  
---  
SR — strontium ion  
  

> open 1de7

Summary of feedback from opening 1de7 fetched from pdb  
---  
warnings | Expected gap or linking atom in AR7 /A:37 for PRO /A:36  
Expected gap or connection between AR7 /A:37 and 0QE /A:38  
Expected gap or linking atom in AR7 /B:37 for PRO /B:36  
Expected gap or connection between AR7 /B:37 and 0QE /B:38  
notes | Fetching compressed mmCIF 1de7 from
http://files.rcsb.org/download/1de7.cif  
Fetching CCD NA from http://ligand-expo.rcsb.org/reports/N/NA/NA.cif  
Fetching CCD AR7 from http://ligand-expo.rcsb.org/reports/A/AR7/AR7.cif  
Fetching CCD 0QE from http://ligand-expo.rcsb.org/reports/0/0QE/0QE.cif  
  
1de7 title:  
Interaction of factor XIII activation peptide with α-thrombin: crystal
structure of the enzyme-substrate complex [more info...]  
  
Chain information for 1de7 #2  
---  
Chain | Description  
A B | factor XIII activation peptide (28-37)  
H K | α-thrombin (heavy chain)  
J L | α-thrombin (light chain)  
  
Non-standard residues in 1de7 #2  
---  
0QE — chloromethane (Chloro Methyl group)  
NA — sodium ion  
  
1de7 mmCIF Assemblies  
---  
1| author_and_software_defined_assembly  
2| author_and_software_defined_assembly  
  

> select #2/H#2/K

4456 atoms, 4139 bonds, 14 pseudobonds, 3 models selected  

> hide (#!2 & sel) target a

> select #2/J#2/L

491 atoms, 452 bonds, 1 model selected  

> hide sel target a

> select #2/A#2/B

167 atoms, 154 bonds, 1 model selected  

> sequence chain #2/A#2/B

Alignment identifier is 1  

> hide #!2 models

> show #!2 models

> hide #!2 models

> hide #!1 models

> show #!1 models

> hide #!1 models

> show #!2 models

> sequence chain #2/A#2/B

Alignment identifier is 1  

> close session

> open 1de7 format mmcif fromDatabase pdb

Summary of feedback from opening 1de7 fetched from pdb  
---  
warnings | Expected gap or linking atom in AR7 /A:37 for PRO /A:36  
Expected gap or connection between AR7 /A:37 and 0QE /A:38  
Expected gap or linking atom in AR7 /B:37 for PRO /B:36  
Expected gap or connection between AR7 /B:37 and 0QE /B:38  
  
1de7 title:  
Interaction of factor XIII activation peptide with α-thrombin: crystal
structure of the enzyme-substrate complex [more info...]  
  
Chain information for 1de7 #1  
---  
Chain | Description  
A B | factor XIII activation peptide (28-37)  
H K | α-thrombin (heavy chain)  
J L | α-thrombin (light chain)  
  
Non-standard residues in 1de7 #1  
---  
0QE — chloromethane (Chloro Methyl group)  
NA — sodium ion  
  
1de7 mmCIF Assemblies  
---  
1| author_and_software_defined_assembly  
2| author_and_software_defined_assembly  
  

> select /H:16-244

2014 atoms, 2068 bonds, 1 pseudobond, 2 models selected  

> hide (#!1 & sel) target a

> select /H:16-244

2014 atoms, 2068 bonds, 1 pseudobond, 2 models selected  

> select /K:16-246

2017 atoms, 2071 bonds, 1 pseudobond, 2 models selected  

> hide (#!1 & sel) target a

> select /A:28-38

77 atoms, 77 bonds, 1 model selected  

> cartoon sel

> close session

> open 1de7 format mmcif fromDatabase pdb

Summary of feedback from opening 1de7 fetched from pdb  
---  
warnings | Expected gap or linking atom in AR7 /A:37 for PRO /A:36  
Expected gap or connection between AR7 /A:37 and 0QE /A:38  
Expected gap or linking atom in AR7 /B:37 for PRO /B:36  
Expected gap or connection between AR7 /B:37 and 0QE /B:38  
  
1de7 title:  
Interaction of factor XIII activation peptide with α-thrombin: crystal
structure of the enzyme-substrate complex [more info...]  
  
Chain information for 1de7 #1  
---  
Chain | Description  
A B | factor XIII activation peptide (28-37)  
H K | α-thrombin (heavy chain)  
J L | α-thrombin (light chain)  
  
Non-standard residues in 1de7 #1  
---  
0QE — chloromethane (Chloro Methyl group)  
NA — sodium ion  
  
1de7 mmCIF Assemblies  
---  
1| author_and_software_defined_assembly  
2| author_and_software_defined_assembly  
  

> close session

> open 1bl2

Summary of feedback from opening 1bl2 fetched from pdb  
---  
warnings | PDB entry 1BL2 has been replaced by 1QRK  
Unable to infer polymer connectivity due to unspecified label_seq_id for
residue "GLY" near line 925  
Invalid residue range for struct_conf "HELX_P1": invalid entity "1", near line
546  
Invalid residue range for struct_conf "HELX_P2": invalid entity "1", near line
547  
Invalid residue range for struct_conf "HELX_P3": invalid entity "1", near line
548  
Invalid residue range for struct_conf "HELX_P4": invalid entity "1", near line
549  
Invalid residue range for struct_conf "HELX_P5": invalid entity "1", near line
550  
23 messages similar to the above omitted  
Invalid sheet range for struct_sheet_range "A 1": invalid entity "1", near
line 679  
Invalid sheet range for struct_sheet_range "A 2": invalid entity "1", near
line 680  
Invalid sheet range for struct_sheet_range "A 3": invalid entity "1", near
line 681  
Invalid sheet range for struct_sheet_range "B 1": invalid entity "1", near
line 682  
Invalid sheet range for struct_sheet_range "B 2": invalid entity "1", near
line 683  
65 messages similar to the above omitted  
note | Fetching compressed mmCIF 1bl2 from
http://files.rcsb.org/download/1bl2.cif  
  
1bl2 title:  
Human factor XIII with strontium bound In the ion site [more info...]  
  
Non-standard residues in 1bl2 #1  
---  
SR — strontium ion  
  

> cartoon

> close session

> open C:\Users\alfon\Escritorio\FXIII\PDB\1GGT.pdb format pdb

1GGT.pdb title:  
Three-dimensional structure of A transglutaminase: human blood coagulation
factor XIII [more info...]  
  
Chain information for 1GGT.pdb #1  
---  
Chain | Description  
A B | coagulation factor XIII  
  

> open 1qrk format mmcif fromDatabase pdb

1qrk title:  
Human factor XIII with strontium bound In the ion site [more info...]  
  
Chain information for 1qrk #2  
---  
Chain | Description  
A B | protein (coagulation factor XIII)  
  
Non-standard residues in 1qrk #2  
---  
SR — strontium ion  
  

> open 1ggY format mmcif fromDatabase pdb

1ggy title:  
Human factor XIII with ytterbium bound In the ion site [more info...]  
  
Chain information for 1ggy #3  
---  
Chain | Description  
A B | protein (coagulation factor XIII)  
  
Non-standard residues in 1ggy #3  
---  
YB — ytterbium (III) ion  
  

> hide #!1 models

> show #!1 models

> close

> open 1ggu

Summary of feedback from opening 1ggu fetched from pdb  
---  
notes | Fetching compressed mmCIF 1ggu from
http://files.rcsb.org/download/1ggu.cif  
Fetching CCD CA from http://ligand-expo.rcsb.org/reports/C/CA/CA.cif  
  
1ggu title:  
Human factor XIII with calcium bound In the ion site [more info...]  
  
Chain information for 1ggu #1  
---  
Chain | Description  
A B | protein (coagulation factor XIII)  
  
Non-standard residues in 1ggu #1  
---  
CA — calcium ion  
  

> open 1ggY format mmcif fromDatabase pdb

1ggy title:  
Human factor XIII with ytterbium bound In the ion site [more info...]  
  
Chain information for 1ggy #2  
---  
Chain | Description  
A B | protein (coagulation factor XIII)  
  
Non-standard residues in 1ggy #2  
---  
YB — ytterbium (III) ion  
  

> open 1qrk format mmcif fromDatabase pdb

1qrk title:  
Human factor XIII with strontium bound In the ion site [more info...]  
  
Chain information for 1qrk #3  
---  
Chain | Description  
A B | protein (coagulation factor XIII)  
  
Non-standard residues in 1qrk #3  
---  
SR — strontium ion  
  

> mmaker #3 , #2 to #1 showalignment true

> matchmaker #3 , #2 to #1 showalignment true

Expected a keyword  

> mmaker #3 , #2 to #1 showAlignment true

> matchmaker #3 , #2 to #1 showAlignment true

Expected a keyword  

> mmaker #3 and #2 to #1 showAlignment true

> matchmaker #3 and #2 to #1 showAlignment true

Expected a keyword  

> mmaker #2-3 to #1 showAlignment true

Parameters  
---  
Chain pairing | bb  
Alignment algorithm | Needleman-Wunsch  
Similarity matrix | BLOSUM-62  
SS fraction | 0.3  
Gap open (HH/SS/other) | 18/18/6  
Gap extend | 1  
SS matrix |  |  | H | S | O  
---|---|---|---  
H | 6 | -9 | -6  
S |  | 6 | -6  
O |  |  | 4  
Iteration cutoff | 2  
  
Matchmaker 1ggu, chain A (#1) with 1ggy, chain A (#2), sequence alignment
score = 3695.4  
Alignment identifier is 1  
RMSD between 698 pruned atom pairs is 0.568 angstroms; (across all 701 pairs:
0.645)  
  
Matchmaker 1ggu, chain B (#1) with 1qrk, chain B (#3), sequence alignment
score = 3685.2  
Alignment identifier is 2  
RMSD between 700 pruned atom pairs is 0.646 angstroms; (across all 704 pairs:
0.666)  
  

> surface

> surface hidePatches

> select sequence 314

Nothing selected  

> select #1/A:309 #2/A:309

14 atoms, 12 bonds, 2 models selected  

> select #1/A:314 #2/A:314

12 atoms, 10 bonds, 2 models selected  

> select #1/A:314 #2/A:314

12 atoms, 10 bonds, 2 models selected  

> select #1/A:313 #2/A:313

18 atoms, 16 bonds, 2 models selected  
Seqview [ID: 1] region Consensus [314] + 1 other block RMSD: 0.275  
  
Seqview [ID: 1] region Consensus [314] + 2 other blocks RMSD: 0.275  
  
Seqview [ID: 1] region Consensus [314] + 2 other blocks RMSD: 0.275  
  
Seqview [ID: 1] region Consensus [314] + 3 other blocks RMSD: 0.245  
  
Seqview [ID: 1] region Consensus [314] + 3 other blocks RMSD: 0.245  
  

> select #1/A:396 #2/A:396

16 atoms, 14 bonds, 2 models selected  

> select #1/A:396 #2/A:396

16 atoms, 14 bonds, 2 models selected  
Seqview [ID: 1] region Consensus [314] + 4 other blocks RMSD: 0.245  
  
Seqview [ID: 1] region Consensus [314] + 5 other blocks RMSD: 0.246  
  

> color (#!1-2 & sel) magenta

> show (#!1-2 & sel) target ab

Seqview [ID: 2] region Consensus..1qrk, chain B [314] RMSD: 0.371  
  
Seqview [ID: 2] region Consensus..1qrk, chain B [314] + 1 other block RMSD:
0.358  
  
Seqview [ID: 2] region Consensus..1qrk, chain B [314] + 2 other blocks RMSD:
0.463  
  

> color (#!1,3 & sel) red

> show (#!1,3 & sel) target ab

> save "C:/Users/alfon/Escritorio/FXIII/PDB/FXII zymogen.calcium bidn and
> yther bind..cxs"

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 839, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 590, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 259, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 292, in process  
return copy_state(data, convert=convert)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 208, in copy_state  
return _copy(data)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\ui\gui.py", line 1541, in <lambda>  
action.triggered.connect(lambda arg, cb = callback: cb())  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 102, in <lambda>  
lambda *args, ses=session: show_save_file_dialog(ses), tool_tip="Save output
file",  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 113, in show_save_file_dialog  
_dlg.display(session, **kw)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 48, in display  
run(session, cmd)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\commands\run.py", line 31, in run  
results = command.run(text, log=log)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2805, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 66, in cmd_save  
Command(session, registry=registry).run(provider_cmd_text, log=log)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2805, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 79, in provider_save  
mgr).save(session, path, **provider_kw)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core_formats\\__init__.py", line 79, in save  
return cxs_save(session, path, **kw)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 839, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 590, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 259, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 292, in process  
return copy_state(data, convert=convert)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 208, in copy_state  
return _copy(data)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
  
See log for complete Python traceback.  
  

> save "C:/Users/alfon/Escritorio/FXIII/PDB/FXII 1.cxs"

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 839, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 590, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 259, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 292, in process  
return copy_state(data, convert=convert)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 208, in copy_state  
return _copy(data)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\ui\gui.py", line 1541, in <lambda>  
action.triggered.connect(lambda arg, cb = callback: cb())  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 102, in <lambda>  
lambda *args, ses=session: show_save_file_dialog(ses), tool_tip="Save output
file",  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 113, in show_save_file_dialog  
_dlg.display(session, **kw)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 48, in display  
run(session, cmd)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\commands\run.py", line 31, in run  
results = command.run(text, log=log)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2805, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 66, in cmd_save  
Command(session, registry=registry).run(provider_cmd_text, log=log)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2805, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 79, in provider_save  
mgr).save(session, path, **provider_kw)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core_formats\\__init__.py", line 79, in save  
return cxs_save(session, path, **kw)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 839, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 590, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 259, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 292, in process  
return copy_state(data, convert=convert)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 208, in copy_state  
return _copy(data)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
  
See log for complete Python traceback.  
  

> select #2

11569 atoms, 11562 bonds, 23 pseudobonds, 3 models selected  

> ~select #2

2 models selected  

> save C:/Users/alfon/Escritorio/FXIII/PDB/fxii.cxs

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 839, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 590, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 259, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 292, in process  
return copy_state(data, convert=convert)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 208, in copy_state  
return _copy(data)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
  
See log for complete Python traceback.  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\ui\gui.py", line 1541, in <lambda>  
action.triggered.connect(lambda arg, cb = callback: cb())  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 102, in <lambda>  
lambda *args, ses=session: show_save_file_dialog(ses), tool_tip="Save output
file",  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 113, in show_save_file_dialog  
_dlg.display(session, **kw)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\dialog.py", line 48, in display  
run(session, cmd)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\commands\run.py", line 31, in run  
results = command.run(text, log=log)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2805, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 66, in cmd_save  
Command(session, registry=registry).run(provider_cmd_text, log=log)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2805, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\save_command\cmd.py", line 79, in provider_save  
mgr).save(session, path, **provider_kw)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core_formats\\__init__.py", line 79, in save  
return cxs_save(session, path, **kw)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 839, in save  
session.save(output, version=version, include_maps=include_maps)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 590, in save  
mgr.discovery(self._state_containers)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 259, in discovery  
self.processed[key] = self.process(obj, parents)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\session.py", line 292, in process  
return copy_state(data, convert=convert)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 208, in copy_state  
return _copy(data)  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in _copy  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 193, in <listcomp>  
items = [(_copy(k), _copy(v)) for k, v in data.items()]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in _copy  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 202, in <listcomp>  
items = [_copy(o) for o in data]  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
TypeError: __init__() missing 1 required positional argument:
'refresh_callback'  
  
File "C:\Program Files\ChimeraX 1.0rc202005292300\bin\lib\site-
packages\chimerax\core\state.py", line 203, in _copy  
return data.__class__(items)  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 NVIDIA 445.87
OpenGL renderer: GeForce 940M/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: HP
Model: HP ENVY Notebook
OS: Microsoft Windows 10 Home Single Language (Build 18363)
Memory: 12,733,808,640
MaxProcessMemory: 137,438,953,344
CPU: 4 Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz"
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.8

Attachments (1)

cmds.cxc (1.7 KB ) - added by Eric Pettersen 5 years ago.
"transcribed" command script

Download all attachments as: .zip

Change History (8)

comment:1 by Eric Pettersen, 5 years ago

Cc: Eric Pettersen added
Component: UnassignedSessions
Owner: set to Greg Couch
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionSession saving creating arbitrary class instances

comment:2 by Eric Pettersen, 5 years ago

I made a command script from the above log as best I could (had to comment out bad commands and change commands involving the c: drive since I'm not on Windows) and failed to reproduce the error. I've attached the script.

The session-saving machinery in the report is trying to create a sequence-header class, which cannot be done with whatever the 'items' argument being used is.

by Eric Pettersen, 5 years ago

Attachment: cmds.cxc added

"transcribed" command script

comment:3 by Greg Couch, 5 years ago

The bug is in the code that makes a deep copy of the take_snaphot data, so it can replace ChimeraX objects with _UniqueName's without altering the data's direct references to internal data structures.

Is the sequence-header class subclassed from a sequence class, like list or set? That could cause the problem if an instance of that class is in the take_snapshot data. If there are no references to other ChimeraX objects in the data, then returning a FinalizedState version of the data would avoid this problem.

Is that enough information to create a test case?

comment:4 by Eric Pettersen, 5 years ago

I seem to recall that you have an "approved list" for intrinsic data types that are allowed to be saved in sessions. Are you using isinstance() to check if something is an approved type? Could you use "isinstance() and not issubclass()" instead? Or "item.class in set(approved_types)"?

Alignment headers do inherit from list, but the current info isn't enough to make a test case because AFAIK nothing directly saves a header instance in its snapshot data. The sequence viewer saves a (bundle name, header class name, header instance session info) tuple for each header, so no header instance per se in that. The alignment class doesn't save headers AFAICT. I just saved a session that had an alignment with headers without problem.

Even if FinalizedState were a solution, which it's currently not since we don't know where the HeaderSequence instance is coming from, I think we would want to fix the problem at it's "source" in the session-saving code, since any bundle that uses classes that inherit from basic types can trip over this -- and since using FInalizedState is very obscure and not a general purpose solution since it cannot contain class instances.

comment:5 by Eric Pettersen, 5 years ago

If it weren't for this session-saving behavior, we would be able to find what is trying to save a HeaderSequence, since that class has no take_snapshot method and you would get an immediate failure.

comment:6 by Greg Couch, 5 years ago

Resolution: fixed
Status: assignedclosed

isinstance is used throughout the session saving and serialization code. That might be a ChimeraX 2.0 change to change it to not allow subclasses.

I am fixing the bug where the session saving object stack is not being printed out when the exception occurs. It was only doing it for ValueError, now it will do it for all Exceptions.

comment:7 by Eric Pettersen, 5 years ago

Two things:

1) I am not suggesting "not allowing subclasses". I am suggesting that subclasses be treated the same as other non-intrinsic class instances. Maybe that's what you meant?

2) I would think this change would be in an 1.X.1 release, not 2.0. The fact that ChimeraX is trying to instantiate a class instance without actually knowing the required arguments to the constructor is a bug.

Your change, at least, should let us identify _what_ is trying to save a HeaderSequence.

Note: See TracTickets for help on using tickets.