Opened 5 years ago
Closed 5 years ago
#3728 closed defect (can't reproduce)
Gratuitous re-registration of commands
| Reported by: | Tristan Croll | Owned by: | Greg Couch |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Command Line | Version: | |
| Keywords: | Cc: | 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-1127.19.1.el7.x86_64-x86_64-with-centos-7.8.2003-Core
ChimeraX Version: 1.1 (2020-09-09 22:22:27 UTC)
Description
The "Unable to save 'models' bit is my fault (will fix)... but I'm not sure what's happening on the repeat save command - looks like it's re-registering all ISOLDE's commands again?
Log:
UCSF ChimeraX version: 1.1 (2020-09-09)
© 2016-2020 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open 3fyj structureFactors true
Summary of feedback from opening 3fyj fetched from pdb
---
warning | WARNING: multiple experimental reflection datasets found:
F_meas_au, F_meas_sigma_au,
phase_calc, fom
Automatically choosing "F_meas_au, F_meas_sigma_au".
notes | Resolution: 3.801
3fyj title:
Crystal structure of an optimzied benzothiophene inhibitor bound to MAPKAP
Kinase-2 (MK-2) [more info...]
Chain information for 3fyj
---
Chain | Description
1.2/X | MAP kinase-activated protein kinase 2
Non-standard residues in 3fyj #1.2
---
B97 —
(10R)-10-methyl-3-(6-methylpyridin-3-yl)-9,10,11,12-tetrahydro-8H-[1,4]diazepino[5',6':4,5]thieno[3,2-f]quinolin-8-one
3fyj mmCIF Assemblies
---
1| software_defined_assembly
2| author_defined_assembly
> addh
Summary of feedback from adding hydrogens to 3fyj #1.2
---
notes | Termini for 3fyj (#1.2) chain X determined from SEQRES records
Chain-initial residues that are actual N termini: /X GLN 45
Chain-initial residues that are not actual N termini: /X LYS 239, /X GLY 282
Chain-final residues that are actual C termini:
Chain-final residues that are not actual C termini: /X SER 216, /X SER 265, /X
ARG 364
189 hydrogen bonds
Adding 'H' to /X LYS 239
Adding 'H' to /X GLY 282
/X ARG 364 is not terminus, removing H atom from 'C'
2338 hydrogens added
> hide HC
> open
> /run/media/tic20/storage/structure_dump/papers/2020_study_weekend/examples/3fyj_ref_3fhr/3fhr/Refine_1/3fhr_refine_1.pdb
Chain information for 3fhr_refine_1.pdb #2
---
Chain | Description
A | No description available
> matchmaker #2 to #1
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 3fyj, chain X (#1.2) with 3fhr_refine_1.pdb, chain A (#2), sequence
alignment score = 966.4
RMSD between 243 pruned atom pairs is 1.027 angstroms; (across all 266 pairs:
1.297)
> save starting_point.cxs
Unable to save 'models' -> <chimerax.core.models.Models object at
0x7f4d11ba1350> -> <chimerax.clipper.maps.map_handler_base.FastVolumeSurface
object at 0x7f4c6db5a490> 'surface' ->
<chimerax.clipper.maps.xmapset.XmapHandler_Static object at 0x7f4c65362cd0>
'(STATIC) F_calc, phase_calc' ->
<chimerax.clipper.clipper_python.data32.HKL_data_F_phi_float object at
0x7f4c908d9470>". Session might not restore properly.
> close #1.1.1.5
> save starting_point.cxs
FYI: command is replacing existing command: "isolde start"
FYI: command is replacing existing command: "isolde set"
FYI: command is replacing existing command: "isolde sim"
FYI: command is replacing existing command: "isolde report"
FYI: command is replacing existing command: "isolde ignore"
FYI: command is replacing existing command: "isolde ~ignore"
FYI: command is replacing existing command: "isolde tutorial"
FYI: command is replacing existing command: "isolde demo"
FYI: command is replacing existing command: "isolde stepto"
FYI: command is replacing existing command: "isolde jumpto"
FYI: command is replacing existing command: "isolde remote xmlrpc"
FYI: command is replacing existing command: "isolde remote rest start"
FYI: command is replacing existing command: "isolde remote rest info"
FYI: command is replacing existing command: "isolde remote rest stop"
FYI: command is replacing existing command: "isolde restrain distances"
FYI: command is replacing existing command: "isolde restrain single distance"
FYI: command is replacing existing command: "isolde release distances"
FYI: command is replacing existing command: "isolde adjust distances"
FYI: command is replacing existing command: "isolde restrain ligands"
FYI: command is replacing existing command: "isolde restrain torsions"
FYI: command is replacing existing command: "isolde adjust torsions"
FYI: command is replacing existing command: "isolde release torsions"
FYI: command is replacing existing command: "isolde pepflip"
FYI: command is replacing existing command: "isolde cisflip"
FYI: command is replacing existing command: "isolde replace ligand"
FYI: command is replacing existing command: "isolde add water"
FYI: command is replacing existing command: "isolde add ligand"
OpenGL version: 3.3.0 NVIDIA 450.51.06
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
Memory:
total used free shared buff/cache available
Mem: 62G 7.5G 44G 373M 10G 54G
Swap: 4.9G 0B 4.9G
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
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.9
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
Babel: 2.8.0
backcall: 0.2.0
blockdiag: 2.0.1
certifi: 2020.6.20
chardet: 3.0.4
ChimeraX-AddH: 2.1.1
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.1
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.6.1
ChimeraX-AtomSearch: 2.0
ChimeraX-AxesPlanes: 2.0
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 1.0.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.0
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.0
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.1
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.0
ChimeraX-Clipper: 0.15.0
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-CommandLine: 1.1.3
ChimeraX-ConnectStructure: 2.0
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.1
ChimeraX-CoreFormats: 1.0
ChimeraX-coulombic: 1.0.1
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-DataFormats: 1.0
ChimeraX-Dicom: 1.0
ChimeraX-DistMonitor: 1.1
ChimeraX-DistUI: 1.0
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.1
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.0
ChimeraX-Hbonds: 2.0
ChimeraX-Help: 1.0
ChimeraX-HKCage: 1.0
ChimeraX-IHM: 1.0
ChimeraX-ImageFormats: 1.0
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0
ChimeraX-ISOLDE: 1.0.2
ChimeraX-Label: 1.0
ChimeraX-LinuxSupport: 1.0
ChimeraX-ListInfo: 1.0
ChimeraX-Log: 1.1.1
ChimeraX-LookingGlass: 1.1
ChimeraX-Map: 1.0.1
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.0
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 1.1
ChimeraX-MDcrds: 2.0
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.0
ChimeraX-mmCIF: 2.2
ChimeraX-MMTF: 2.0
ChimeraX-Modeller: 1.0
ChimeraX-ModelPanel: 1.0
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.0
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0
ChimeraX-OpenCommand: 1.2.1
ChimeraX-PDB: 2.1
ChimeraX-PDBBio: 1.0
ChimeraX-Phenix: 0.1
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.0
ChimeraX-PubChem: 2.0
ChimeraX-Read-Pbonds: 1.0
ChimeraX-Registration: 1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-ResidueFit: 1.0
ChimeraX-RestServer: 1.0
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.2
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SeqView: 2.2
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.0
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.0
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.0.4
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-Struts: 1.0
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.0
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.0
ChimeraX-ToolshedUtils: 1.0
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.2.3
ChimeraX-uniprot: 2.0
ChimeraX-ViewDockX: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0
ChimeraX-WebServices: 1.0
ChimeraX-Zone: 1.0
colorama: 0.4.3
comtypes: 1.1.7
cxservices: 1.0
cycler: 0.10.0
Cython: 0.29.20
decorator: 4.4.2
distlib: 0.3.1
distro: 1.5.0
docutils: 0.16
filelock: 3.0.12
funcparserlib: 0.3.6
grako: 3.16.5
graphviz: 0.14.1
h5py: 2.10.0
html2text: 2020.1.16
idna: 2.10
ihm: 0.16
imagecodecs: 2020.5.30
imagecodecs-lite: 2020.1.31
imagesize: 1.2.0
ipykernel: 5.3.0
ipython: 7.15.0
ipython-genutils: 0.2.0
jedi: 0.17.2
Jinja2: 2.11.2
jupyter-client: 6.1.3
jupyter-core: 4.6.3
kiwisolver: 1.2.0
line-profiler: 2.1.2
lxml: 4.5.1
MarkupSafe: 1.1.1
matplotlib: 3.2.1
msgpack: 1.0.0
netifaces: 0.10.9
networkx: 2.4
numexpr: 2.7.1
numpy: 1.18.5
numpydoc: 1.0.0
objgraph: 3.4.1
openvr: 1.12.501
packaging: 20.4
parso: 0.7.1
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 7.1.2
pip: 20.2.2
pkginfo: 1.5.0.1
prompt-toolkit: 3.0.7
psutil: 5.7.0
ptyprocess: 0.6.0
pycollada: 0.7.1
pydicom: 2.0.0
Pygments: 2.6.1
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 2.4.7
PyQt5-commercial: 5.12.3
PyQt5-sip: 4.19.19
PyQtWebEngine-commercial: 5.12.1
python-dateutil: 2.8.1
pytz: 2020.1
pyzmq: 19.0.2
qtconsole: 4.7.4
QtPy: 1.9.0
RandomWords: 0.3.0
requests: 2.24.0
scipy: 1.4.1
setuptools: 49.4.0
sfftk-rw: 0.6.6.dev0
six: 1.15.0
snowballstemmer: 2.0.0
sortedcontainers: 2.2.2
Sphinx: 3.1.1
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 2.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 1.0.3
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.4
suds-jurko: 0.6
tables: 3.6.1
tifffile: 2020.6.3
tinyarray: 1.2.2
tornado: 6.0.4
traitlets: 5.0.4
urllib3: 1.25.10
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.34.2
Change History (10)
comment:1 by , 5 years ago
| Component: | Unassigned → Command Line |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Gratuitous re-registration of commands |
comment:2 by , 5 years ago
follow-up: 3 comment:3 by , 5 years ago
Yep - that sounds like a pretty fair description of how my bundle_info.xml is currently set up. Does this mean I need to list each subcommand in bundle_info.xml? On 2020-09-17 18:18, ChimeraX wrote:
comment:4 by , 5 years ago
| Cc: | added |
|---|
Well the ui bundle gets away with doing what you do. So I'll have to dig further. And it's unclear to me how a save command would cause other commands to be invoked. Looping Eric in.
comment:5 by , 5 years ago
Yeah, a bunch of bundles just put the "umbrella" command in bundle_info.xml and register the subcommands on demand (e.g. ui, build_structure, alignments, etc.) so it would be good to have that continue to work.
As for 'save' causing other commands to be invoked, obviously it is not invoking the 'Isolde' command directly, but for any open/save operation it calls run_provider in the relevant bundle and that method can do anything necessary, including running commands.
comment:6 by , 5 years ago
However, since this seems to be a session being saved, it would seem that someone's take_snapshot is directly or indirectly causing the 'isolde' command to be run?
Tristan, can you reproduce this behavior? Can you put a traceback.print_stack() call in your registration code so we can see what code path is causing the second call?
follow-up: 7 comment:7 by , 5 years ago
Hmm... can't reproduce it in a different session. Will try later to reproduce exactly the same circumstances. On 2020-09-17 19:21, ChimeraX wrote:
comment:9 by , 5 years ago
Went through exactly the same set of steps as in the report... can't reproduce. I guess this can be closed then?
comment:10 by , 5 years ago
| Resolution: | → can't reproduce |
|---|---|
| Status: | feedback → closed |
I guess I'm closing it as "can't reproduce", especially since we have zero idea as to what could have caused it.
--Eric
It probably an incomplete command registration in ISOLDE or an error in the bundle_info.xml file. Command registration is lazy. The commands are preregistered based on the information in bundle_info.xml. When the command is invoked, then the bundle's register_command function is called. If the command isn't registered, then you'll see errors like you saw. My guess is that the bundle_info.xml lists isolde as a command, but register command only registers the subcommands. In that case, you can remove the plain isolde from the bundle_info.xml file.