Opened 5 years ago
Last modified 5 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 , 5 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 , 5 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 , 5 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 , 5 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 , 5 years ago
Cc: | added |
---|