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: | pett | |
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.