#3347 closed defect (fixed)
Session saving creating arbitrary class instances
Reported by: | 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)
Change History (8)
comment:1 by , 5 years ago
Cc: | added |
---|---|
Component: | Unassigned → Sessions |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Session saving creating arbitrary class instances |
comment:2 by , 5 years ago
comment:3 by , 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 , 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 , 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 , 5 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
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 , 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.
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.