Opened 6 years ago
Last modified 6 years ago
#3114 assigned enhancement
Improve session-saving error information
| Reported by: | Tristan Croll | Owned by: | Greg Couch |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Sessions | Version: | |
| Keywords: | Cc: | Tristan Croll, Eric Pettersen | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-3.10.0-1062.9.1.el7.x86_64-x86_64-with-centos-7.7.1908-Core
ChimeraX Version: 0.93 (2020-04-03)
Description
Not quite sure what triggered this. Haven't done all that much that's unusual, except use the right-mouse distance tool (and then close the distance model via the Models panel).
Log:
Startup Messages
---
warning | 'clip' is a prefix of an existing command 'clipper'
UCSF ChimeraX version: 0.93 (2020-04-03)
© 2016-2020 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open AlF4.pdb
Summary of feedback from opening AlF4.pdb
---
warnings | Ignored bad PDB record found on line 1
REMARK Date 2020-04-17 Time 06:10:52 CEST +0200 (1587096652.27 s)
Ignored bad PDB record found on line 2
REMARK PHENIX refinement
Ignored bad PDB record found on line 4
REMARK ****************** INPUT FILES AND LABELS
******************************
Ignored bad PDB record found on line 5
REMARK Reflections:
Ignored bad PDB record found on line 6
REMARK file name :
/Users/pwr852/Desktop/E2/H8-4-2/adp_H8_4_1_20171013_000808/gopy/H8_4_1_ccp4_18P21212.mtz
49 messages similar to the above omitted
Chain information for AlF4.pdb #1
---
Chain | Description
A | No description available
> isolde start
> set selectionWidth 4
Chain information for AlF4.pdb
---
Chain | Description
1.2/A | No description available
Done loading forcefield
Discarding unrecognised/unsupported data array /H8_4_1/H8_4_1/ISYM_H8_4_1 Y
> set bgColor white
> select ~protein
6 atoms, 4 bonds, 26 models selected
> select clear
> addh
Summary of feedback from adding hydrogens to AlF4.pdb #1.2
---
notes | No usable SEQRES records for AlF4.pdb (#1.2) chain A; guessing termini
instead
Chain-initial residues that are actual N termini: /A ARG 41
Chain-initial residues that are not actual N termini:
Chain-final residues that are actual C termini:
Chain-final residues that are not actual C termini: /A ARG 678
492 hydrogen bonds
/A ARG 678 is not terminus, removing H atom from 'C'
4810 hydrogens added
> hide HC
> select #1
9511 atoms, 9581 bonds, 26 models selected
Loading residue template for ALF from internal database
Traceback (most recent call last):
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause
self.start_sim()
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim
self.params, self.sim_params, excluded_residues = self.ignored_residues)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__
raise e
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__
isolde.forcefield_mgr)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates
forcefield.loadFile(xf)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
KeyError: 'Al'
KeyError: 'Al'
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
See log for complete Python traceback.
Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: NonbondedForce: No value specified for
"charge"
> select #1
9511 atoms, 9581 bonds, 32 models selected
Loading residue template for ALF from internal database
Traceback (most recent call last):
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause
self.start_sim()
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim
self.params, self.sim_params, excluded_residues = self.ignored_residues)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__
raise e
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__
isolde.forcefield_mgr)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates
forcefield.loadFile(xf)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
KeyError: 'Al'
KeyError: 'Al'
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
See log for complete Python traceback.
> select clear
> toolshed show Shell
/opt/UCSF/ChimeraX/lib/python3.7/site-packages/IPython/core/history.py:226:
UserWarning: IPython History requires SQLite, your history will not be saved
warn("IPython History requires SQLite, your history will not be saved")
Done loading forcefield
Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: NonbondedForce: No value specified for
"charge"
Loading residue template for ALF from internal database
Traceback (most recent call last):
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause
self.start_sim()
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim
self.params, self.sim_params, excluded_residues = self.ignored_residues)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__
raise e
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__
isolde.forcefield_mgr)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates
forcefield.loadFile(xf)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
KeyError: 'Al'
KeyError: 'Al'
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
See log for complete Python traceback.
Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: Found multiple definitions for atom type:
ALF_Al
> select #1
9511 atoms, 9581 bonds, 32 models selected
Loading residue template for ALF from internal database
Traceback (most recent call last):
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause
self.start_sim()
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim
self.params, self.sim_params, excluded_residues = self.ignored_residues)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__
raise e
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__
isolde.forcefield_mgr)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates
forcefield.loadFile(xf)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
KeyError: 'Al'
KeyError: 'Al'
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
See log for complete Python traceback.
> select clear
Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: Found multiple definitions for atom type:
ALF_Al
Done loading forcefield
Failed to add
/run/media/tic20/storage/structure_dump/denmark/kaituo/new_apr_2020/new
structures-2020-04-16/AlF4/ALF.xml: NonbondedForce: No value specified for
"charge"
> select #1
9511 atoms, 9581 bonds, 32 models selected
Traceback (most recent call last):
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause
self.start_sim()
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim
self.params, self.sim_params, excluded_residues = self.ignored_residues)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 600, in __init__
raise e
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__
isolde.forcefield_mgr)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1327, in __init__
sim_params, residue_templates)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1424, in
_create_openmm_system
sys = forcefield.createSystem(top, **system_params)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 1294, in createSystem
force.createForce(sys, data, nonbondedMethod, nonbondedCutoff, args)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 2330, in createForce
values = self.params.getAtomParameters(atom, data)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 848, in getAtomParameters
raise ValueError('%s: No parameters defined for atom type %s' %
(self.forceName, t))
ValueError: NonbondedForce: No parameters defined for atom type ALF_Al
ValueError: NonbondedForce: No parameters defined for atom type ALF_Al
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 848, in getAtomParameters
raise ValueError('%s: No parameters defined for atom type %s' %
(self.forceName, t))
See log for complete Python traceback.
Done loading forcefield
> select clear
Updating bulk solvent parameters...
Done loading forcefield
Traceback (most recent call last):
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 1205, in _add_ff_files_gui
self.add_ffxml_files(ff, files)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 1229, in add_ffxml_files
forcefield.loadFile(f, prefix="USER_")
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 372, in loadFile
parsers[child.tag](child, self)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 2028, in parseElement
generator.registerImproperTorsion(torsion.attrib)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 2006, in
registerImproperTorsion
torsion = self.ff._parseTorsion(parameters)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 545, in _parseTorsion
torsion.periodicity.append(int(attrib['periodicity%d'%index]))
KeyError: 'periodicity1'
KeyError: 'periodicity1'
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 545, in _parseTorsion
torsion.periodicity.append(int(attrib['periodicity%d'%index]))
See log for complete Python traceback.
Done loading forcefield
> select clear
Updating bulk solvent parameters...
Done loading forcefield
Done loading forcefield
Updating bulk solvent parameters...
Done loading forcefield
Updating bulk solvent parameters...
> ui mousemode rightMode distance
> distance /B:1@F3 /B:1@F1
Distance between /B ALF 1 F3 and F1: 2.523Å
Done loading forcefield
Loading residue template for ALF from internal database
Traceback (most recent call last):
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2685, in _start_sim_or_toggle_pause
self.start_sim()
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/isolde.py", line 2705, in start_sim
self.params, self.sim_params, excluded_residues = self.ignored_residues)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 609, in __init__
raise e
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 591, in __init__
isolde.forcefield_mgr)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 1319, in __init__
template_dict = find_residue_templates(sim_construct.all_residues, ff,
ligand_db=ligand_db, logger=session.logger)
File "/home/tic20/.local/share/ChimeraX/0.93/site-
packages/chimerax/isolde/openmm/openmm_interface.py", line 3065, in
find_residue_templates
forcefield.loadFile(xf)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
KeyError: 'Al'
KeyError: 'Al'
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/simtk/openmm/app/forcefield.py", line 280, in loadFile
template.atoms.append(ForceField._TemplateAtomData(atomName, typeName,
self._atomTypes[typeName].element, params))
See log for complete Python traceback.
Updating bulk solvent parameters...
Done loading forcefield
Updating bulk solvent parameters...
> color bfactor
9511 atoms, 640 residues, atom bfactor range 55 to 425
> select up
5 atoms, 4 bonds, 1 model selected
> select up
22 atoms, 21 bonds, 1 model selected
> select up
5 atoms, 4 bonds, 1 model selected
> select up
6 atoms, 4 bonds, 1 model selected
> select clear
> color bychain
> color byhetero
> select clear
> close #2
> save working.cxs
Traceback (most recent call last):
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/session.py", line 811, in save
session.save(output, version=version, include_maps=include_maps)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/session.py", line 569, in save
fserialize(stream, data)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/serialize.py", line 63, in msgpack_serialize
stream.write(packer.pack(obj))
File "msgpack/_packer.pyx", line 284, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 290, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 287, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 234, in msgpack._cmsgpack.Packer._pack
File "msgpack/_packer.pyx", line 277, in msgpack._cmsgpack.Packer._pack
File "stringsource", line 67, in
cfunc.to_py.__Pyx_CFunc_object____object___to_py.wrap
File "_serialize.pyx", line 251, in core._serialize._encode_ext
RuntimeError: Can't convert object of type: <class
'PyQt5.QtCore.Qt.CheckState'>
RuntimeError: Can't convert object of type:
File "_serialize.pyx", line 251, in core._serialize._encode_ext
See log for complete Python traceback.
Traceback (most recent call last):
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/cmd_line/tool.py", line 258, in execute
cmd.run(cmd_text)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/commands/cli.py", line 2848, in run
result = ci.function(session, **kw_args)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/commands/save.py", line 61, in save
fmt.export(session, filename, fmt.nicknames[0], **kw)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-packages/chimerax/core/io.py",
line 229, in export
result = self.export_func(session, path, **kw)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/session.py", line 811, in save
session.save(output, version=version, include_maps=include_maps)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/session.py", line 569, in save
fserialize(stream, data)
File "/opt/UCSF/ChimeraX/lib/python3.7/site-
packages/chimerax/core/serialize.py", line 63, in msgpack_serialize
stream.write(packer.pack(obj))
File "msgpack/_packer.pyx", line 284, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 290, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 287, in msgpack._cmsgpack.Packer.pack
File "msgpack/_packer.pyx", line 234, in msgpack._cmsgpack.Packer._pack
File "msgpack/_packer.pyx", line 277, in msgpack._cmsgpack.Packer._pack
File "stringsource", line 67, in
cfunc.to_py.__Pyx_CFunc_object____object___to_py.wrap
File "_serialize.pyx", line 251, in core._serialize._encode_ext
RuntimeError: Can't convert object of type: <class
'PyQt5.QtCore.Qt.CheckState'>
RuntimeError: Can't convert object of type:
File "_serialize.pyx", line 251, in core._serialize._encode_ext
See log for complete Python traceback.
OpenGL version: 3.3.0 NVIDIA 440.33.01
OpenGL renderer: TITAN Xp/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: Dell Inc.
Model: Precision T5600
OS: CentOS Linux 7 Core
Architecture: 64bit ELF
CPU: 32 Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
Cache Size: 20480 KB
Graphics:
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [TITAN Xp] [10de:1b02] (rev a1)
Subsystem: NVIDIA Corporation Device [10de:11df]
Kernel driver in use: nvidia
Change History (6)
comment:2 by , 6 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Sessions |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Session save: Can't convert object of type: <class 'PyQt5.QtCore.Qt.CheckState'> |
comment:3 by , 6 years ago
Hi Tristan,
It looks like in some take_snapshot method you have. it is trying to save QCheckBox.checkState(). That returns a QCheckState, not a boolean. Unless you have a 3-state check box, you probably want to save QCheckBox.isChecked() instead (and use QCheckBox.setChecked() in your restore_snapshot).
--Eric
follow-up: 4 comment:4 by , 6 years ago
Nailed it in one! The difference is that in this case I was loading an MTZ file via ISOLDE's "Load crystallographic dataset" button (I usually use the command line) - and the method for that *does* call checkState() to set the live_recalc flag for the map manager. Thanks! If possible, I think it would still be a good idea if the session save code could help pinpoint the offending object. On 2020-04-28 17:18, ChimeraX wrote:
comment:5 by , 6 years ago
| Cc: | added; removed |
|---|---|
| Owner: | changed from to |
| Summary: | Session save: Can't convert object of type: <class 'PyQt5.QtCore.Qt.CheckState'> → Improve session-saving error information |
| Type: | defect → enhancement |
I cannot argue that the error message isn't very helpful in tracking down the offending session-save code. I just happened to know off the top of my head where a QCheckState comes from, and from personal experience a typical way you wind up with one when you actually want a boolean (and why a QCheckState fouls up session saving). Without that, it would have been an arduous slog to figure out the cause of the error and the fix. Therefore I have repurposed this ticket as an "improve session-saving error information" RFE.
comment:6 by , 6 years ago
| Cc: | added |
|---|