#18427 closed defect (fixed)
C++ structure position not always updated
Reported by: | Tristan Croll | Owned by: | pett |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core | Version: | |
Keywords: | Cc: | Tom Goddard | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Windows-10-10.0.26100 ChimeraX Version: 1.10.1 (2025-07-24 20:15:27 UTC) Description Not sure exactly what happened here and not sure if I'll ever be able to reproduce it, but reporting it because it's weird and a bit worrisome... in brief: - Opened a .sdf file containing a few different small molecules - Used "move cofr" to move that model group to the current center of rotation - Added hydrogens to one and did a bit of editing, then selected it from ISOLDE. This (a) removes that structure from the session; (b) sets the atom coordinates to the current scene coordinates and resets the position to identity; (c) reparents it under the ISOLDE "Data Manager" `Model` instance, and (d) adds the result back to the session. First thing I noticed was the "Move atoms" right mouse mode misbehaving - for thsi specific model, right-click-and-drag would make the selected atoms immediately disappear somewhere offscreen. Probing around in the Python layer: m = session.isolde.selected_model m.position.matrix array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.]]) m.parent.position.matrix array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.]]) m.parent.parent.position.matrix array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.]]) ... and yet: m.atoms.coords - m.atoms.scene_coords array([[ 1.18199274, 39.7014109 , -24.12552742], [ 1.18199274, 39.7014109 , -24.12552742], [ 1.18199274, 39.7014109 , -24.12552742], ... What eventually fixed it was when I used the "Move model" right mouse mode to shift the model just a fraction - after this the "Move atoms" mode worked correctly. Resetting the position to unity with: from chimerax.geometry import Place m.parent.position = Place() ... and checking again, now the coords and scene coords are identical as expected. Best guess: when the structure was removed from its original parent, its C++ layer somehow retained a pointer to the parent's transform, and then using the "Move model" mouse mode triggered an update that removed it? But I'm just guessing here. Log: > isolde shorthand Initialising ISOLDE-specific command aliases: Alias Equivalent full command ------------------------------------------------- st isolde step {arguments} aw isolde add water {arguments} awsf isolde add water {arguments} sim false al isolde add ligand {arguments} aa isolde add aa $1 sel {arguments} ht isolde mod his sel {arguments} so setattr sel atoms occupancy {arguments} ab isolde adjust bfactors {arguments} ss isolde sim start sel rt isolde release torsions sel {arguments} rd isolde release distances sel {arguments} ra rd; rt pf isolde pepflip sel cf isolde cisflip sel cbb color bfactor {arguments} cbo color byattr occupancy {arguments} cbc color {arguments} bychain; color {arguments} byhet cs clipper set contourSensitivity {arguments} UCSF ChimeraX version: 1.10.1 (2025-07-24) © 2016-2025 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open 8uf6 structureFactors true overSampling 2.5 Summary of feedback from opening 8uf6 fetched from pdb --- warning | WARNING: multiple experimental reflection datasets found: F_meas_au, F_meas_sigma_au, intensity_meas, intensity_sigma Automatically choosing "F_meas_au, F_meas_sigma_au". notes | Resolution: 2.901009614977084 Launching live xmap mgr took 1.315704107284546 seconds. Opened (LIVE) 2mFo-DFc as #1.1.1.2, grid size 46,46,46, pixel 0.558,0.549,0.545, shown at level 0.101, step 1, values float32 Opened (LIVE) mFo-DFc as #1.1.1.3, grid size 46,46,46, pixel 0.558,0.549,0.545, shown at level -0.071,0.071, step 1, values float32 Opened (LIVE) 2mFo-DFc_sharp_26 as #1.1.1.4, grid size 46,46,46, pixel 0.558,0.549,0.545, shown at level 0.305, step 1, values float32 Opened (STATIC) pdbx_DELFWT, pdbx_DELPHWT as #1.1.1.5, grid size 46,46,46, pixel 0.558,0.549,0.545, shown at level -0.226,0.226, step 1, values float32 Opened (STATIC) pdbx_FWT, pdbx_PHWT as #1.1.1.6, grid size 46,46,46, pixel 0.558,0.549,0.545, shown at level -0.485,0.485, step 1, values float32 8uf6 title: Structure of Trek-1(K2P2.1) with ML336 [more info...] Chain information for 8uf6 --- Chain | Description | UniProt 1.2/A 1.2/B | Potassium channel subfamily K member 2 | KCNK2_MOUSE 35-321 Non-standard residues in 8uf6 #1.2 --- 16C — N-((E,2S,3R)-1,3-dihydroxyoctadec-4-en-2-yl)palmitamide (C16-ceramide; N-palmitoyl-D-erythro-sphingosine; (2S,3R,4E)-2-palmitoylaminooctadec-4-ene-1,3-diol; (2S,3R,4E)-2-palmitoylamino-1,3-octadec-4-enediol) 1PE — pentaethylene glycol (PEG400) CD — cadmium ion D10 — decane D12 — dodecane K — potassium ion OCT — N-octane R16 — hexadecane WRZ — N-[(2,4-dichlorophenyl)methyl]-4-propanamidobenzamide > close #1.1.1.5-6 > view /B:WRZ > addh Summary of feedback from adding hydrogens to 8uf6 #1.2 --- warnings | Not adding hydrogens to /A GLN 72 CB because it is missing heavy-atom bond partners Not adding hydrogens to /B GLN 76 CB because it is missing heavy-atom bond partners Not adding hydrogens to /B VAL 192 CB because it is missing heavy-atom bond partners Not adding hydrogens to /B THR 195 CB because it is missing heavy-atom bond partners Not adding hydrogens to /B THR 211 CB because it is missing heavy-atom bond partners 2 messages similar to the above omitted notes | Termini for 8uf6 (#1.2) chain A determined from SEQRES records Termini for 8uf6 (#1.2) chain B determined from SEQRES records Chain-initial residues that are actual N termini: /B SER 35 Chain-initial residues that are not actual N termini: /A LYS 43, /A SER 125 Chain-final residues that are actual C termini: /A VAL 321 Chain-final residues that are not actual C termini: /A GLY 113, /B GLU 316 Missing OXT added to C-terminal residue /A VAL 321 499 hydrogen bonds Adding 'H' to /A LYS 43 Adding 'H' to /A SER 125 /B GLU 316 is not terminus, removing H atom from 'C' 4697 hydrogens added > isolde select #1 > set selectionWidth 4 ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side chains... ISOLDE: Corrected atom nomenclature of 14 residues in model #1.2 to IUPAC-IUB standards. Opened (LIVE) MDFF potential as #1.1.1.5, grid size 46,46,46, pixel 0.558,0.549,0.545, shown at level 0.268, step 1, values float32 Done loading forcefield > isolde set simFidelityMode Highest/Slowest ISOLDE: setting sim fidelity mode to Highest/Slowest nonbonded_cutoff_distance = 1.700000 use_gbsa = True gbsa_cutoff = 2.000000 > select up 38 atoms, 39 bonds, 1 residue, 1 model selected > show sel > select clear > select up 39 atoms, 40 bonds, 1 residue, 1 model selected > cd "C:/Users/Tristan > Croll/Documents/Structures/trek-1_minispadin/8uf6_ml336" Current working directory is: C:\Users\Tristan Croll\Documents\Structures\trek-1_minispadin\8uf6_ml336 > isolde parameterise sel Running ANTECHAMBER command: C:/Program Files/ChimeraX/bin/amber20/bin/antechamber -ek qm_theory='AM1', -i C:\Users\TRISTA~1\AppData\Local\Temp\tmpyysyip8e\ante.in.mol2 -fi mol2 -o C:\Users\TRISTA~1\AppData\Local\Temp\tmpyysyip8e\ante.out.mol2 -fo mol2 -c bcc -nc 0 -j 5 -s 2 -dr n (WRZ) `` (WRZ) `Welcome to antechamber 20.0: molecular input file processor.` (WRZ) `` (WRZ) `Info: Finished reading file (C:\Users\TRISTA~1\AppData\Local\Temp\tmpyysyip8e\ante.in.mol2); atoms read (39), bonds read (40).` (WRZ) `Info: Determining atomic numbers from atomic symbols which are case sensitive.` (WRZ) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/bondtype" -j part -i ANTECHAMBER_BOND_TYPE.AC0 -o ANTECHAMBER_BOND_TYPE.AC -f ac` (WRZ) `bash.exe: warning: could not find /tmp, please create!` (WRZ) `` (WRZ) `` (WRZ) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/atomtype" -i ANTECHAMBER_AC.AC0 -o ANTECHAMBER_AC.AC -p gaff` (WRZ) `bash.exe: warning: could not find /tmp, please create!` (WRZ) `Info: Total number of electrons: 182; net charge: 0` (WRZ) `` (WRZ) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/sqm" -O -i sqm.in -o sqm.out` (WRZ) `bash.exe: warning: could not find /tmp, please create!` (WRZ) `` (WRZ) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/am1bcc" -i ANTECHAMBER_AM1BCC_PRE.AC -o ANTECHAMBER_AM1BCC.AC -f ac -p "C:/Program Files/ChimeraX/bin/amber20/dat/antechamber/BCCPARM.DAT" -s 2 -j 1` (WRZ) `bash.exe: warning: could not find /tmp, please create!` (WRZ) `` (WRZ) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/atomtype" -f ac -p bcc -o ANTECHAMBER_AM1BCC.AC -i ANTECHAMBER_AM1BCC_PRE.AC` (WRZ) `bash.exe: warning: could not find /tmp, please create!` (WRZ) `` Charges for residue WRZ determined OpenMM ffXML file WRZ written to the current working directory. New template added to forcefield as USER_WRZ. This ligand should now work in all remaining simulations for this session. To use in future sessions, load the ffXML file with ISOLDE's Load Residue MD Definition(s) button. Loading residue template for 16C from internal database Loading residue template for 1PE from internal database Loading residue template for D10 from internal database Loading residue template for D12 from internal database Loading residue template for OCT from internal database Loading residue template for R16 from internal database Deleted the following atoms from residue WRZ A401: H14, H15, H7, H9, H12, H2, H3, H10, H4, H5, H8, H11, H13, H1, H6 > view /B:WRZ > select #1 9189 atoms, 9281 bonds, 34 pseudobonds, 569 residues, 34 models selected > isolde sim start /A-B ISOLDE: started sim > select clear > isolde sim pause > isolde sim resume > isolde sim pause > isolde sim resume > isolde pepflip /B:113 [Repeated 1 time(s)] > isolde pepflip /B:115 > isolde sim pause > close Sim termination reason: model deleted ISOLDE: model deleted during running simulation. Deleting Crystallographic maps(8uf6-sf.cif) Deleting (LIVE) 2mFo-DFc Deleting (LIVE) mFo-DFc Deleting (LIVE) 2mFo-DFc_sharp_26 Deleting (LIVE) MDFF potential > open "C:/Users/Tristan > Croll/Documents/Structures/trek-1_minispadin/8uf6/8uf6_noncovalent.cif" Summary of feedback from opening C:/Users/Tristan Croll/Documents/Structures/trek-1_minispadin/8uf6/8uf6_noncovalent.cif --- warnings | Atom H1 is not in the residue template for WRZ /B:401 Atom HH2 is not in the residue template for 1PE /B:402 Chain information for 8uf6_noncovalent.cif #1 --- Chain | Description A B | Potassium channel subfamily K member 2 > open "C:/Users/Tristan > Croll/Documents/Structures/trek-1_minispadin/boltz1/trek1_dimer_ml335/predictions/trek1_dimer_ml335/trek1_dimer_ml335_model_0.cif" trek1_dimer_ml335_model_0.cif title: . [more info...] Chain information for trek1_dimer_ml335_model_0.cif #2 --- Chain | Description A B | . Non-standard residues in trek1_dimer_ml335_model_0.cif #2 --- CLR — (CLR) K — (K) PLM — (PLM) Q6F — (Q6F) No chain in structure corresponds to chain ID given in local score info (chain 'C') Computing secondary structure > matchmaker #2/B to #1/B 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 8uf6_noncovalent.cif, chain B (#1) with trek1_dimer_ml335_model_0.cif, chain B (#2), sequence alignment score = 1409.7 RMSD between 240 pruned atom pairs is 0.735 angstroms; (across all 282 pairs: 1.632) > show > hide HC > open "C:/Users/Tristan > Croll/Documents/Structures/trek-1_minispadin/trek1_minispadin_in_membrane_md_snapshot_no_solvent.cif" Summary of feedback from opening C:/Users/Tristan Croll/Documents/Structures/trek-1_minispadin/trek1_minispadin_in_membrane_md_snapshot_no_solvent.cif --- warnings | Unknown polymer entity '1' on line 142 Unknown polymer entity '2' on line 9904 Missing or incorrect sequence information. Inferred polymer connectivity. Atom H is not in the residue template for LEU /A:1 Atom H is not in the residue template for LEU /B:1 Atom H is not in the residue template for GLY /C:1 Atom H61 is not in the residue template for 4YB /G:1 Atom H61 is not in the residue template for 4YB /H:1 Atom H61 is not in the residue template for 4YB /I:1 Atom H61 is not in the residue template for 4YB /J:1 Atom N is not in the residue template for POP /K:400 Atom N is not in the residue template for POP /K:401 Atom N is not in the residue template for POP /K:402 Atom N is not in the residue template for POP /K:403 Atom N is not in the residue template for POP /K:177 461 messages similar to the above omitted Atom C4 is not in the residue template for 0YB /G:2 Atom C4 is not in the residue template for 0YB /H:2 Atom C4 is not in the residue template for 0YB /I:2 Atom C4 is not in the residue template for 0YB /J:2 Chain information for trek1_minispadin_in_membrane_md_snapshot_no_solvent.cif #3 --- Chain | Description A B | No description available C | No description available > matchmaker #3/B to #1/B 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 8uf6_noncovalent.cif, chain B (#1) with trek1_minispadin_in_membrane_md_snapshot_no_solvent.cif, chain B (#3), sequence alignment score = 1385.7 RMSD between 149 pruned atom pairs is 0.837 angstroms; (across all 282 pairs: 16.896) > hide #!1 models > show #!1 models > open "C:/Users/Tristan > Croll/Documents/Structures/trek-1_minispadin/8uf6/ml336_minispadin_merge.sdf" > hide #!1 models > hide #2 models > hide #!3 models > show #!1 models > move cofr #3 Could not compute center of models since none are displayed > move cofr #4 > hide #4.2 models > hide #4.1 models > select up 46 atoms, 47 bonds, 1 residue, 1 model selected > addh #4.3 Summary of feedback from adding hydrogens to ml336_minispadin_merge.sdf #4.3 --- notes | Chain-initial residues that are actual N termini: 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: 0 hydrogen bonds 41 hydrogens added > delete sel [Repeated 1 time(s)] > hide #!1 models > delete sel [Repeated 1 time(s)] > select up 86 atoms, 87 bonds, 1 residue, 1 model selected > isolde select #4.3 ISOLDE: Checking and correcting nomenclature for (pseudo)symmetric side chains... > cd "C:/Users/Tristan > Croll/Documents/Structures/trek-1_minispadin/8uf6/ml336_minispadin_merge/merge_1" Current working directory is: C:\Users\Tristan Croll\Documents\Structures\trek-1_minispadin\8uf6\ml336_minispadin_merge\merge_1 > isolde parameterise sel Running ANTECHAMBER command: C:/Program Files/ChimeraX/bin/amber20/bin/antechamber -ek qm_theory='AM1', -i C:\Users\TRISTA~1\AppData\Local\Temp\tmpvb6e00ao\ante.in.mol2 -fi mol2 -o C:\Users\TRISTA~1\AppData\Local\Temp\tmpvb6e00ao\ante.out.mol2 -fo mol2 -c bcc -nc 0 -j 5 -s 2 -dr n (UNL) `` (UNL) `Welcome to antechamber 20.0: molecular input file processor.` (UNL) `` (UNL) `Info: Finished reading file (C:\Users\TRISTA~1\AppData\Local\Temp\tmpvb6e00ao\ante.in.mol2); atoms read (86), bonds read (87).` (UNL) `Info: Determining atomic numbers from atomic symbols which are case sensitive.` (UNL) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/bondtype" -j part -i ANTECHAMBER_BOND_TYPE.AC0 -o ANTECHAMBER_BOND_TYPE.AC -f ac` (UNL) `bash.exe: warning: could not find /tmp, please create!` (UNL) `` (UNL) `` (UNL) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/atomtype" -i ANTECHAMBER_AC.AC0 -o ANTECHAMBER_AC.AC -p gaff` (UNL) `bash.exe: warning: could not find /tmp, please create!` (UNL) `Info: Total number of electrons: 358; net charge: 0` (UNL) `` (UNL) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/sqm" -O -i sqm.in -o sqm.out` (UNL) `bash.exe: warning: could not find /tmp, please create!` (UNL) `` (UNL) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/am1bcc" -i ANTECHAMBER_AM1BCC_PRE.AC -o ANTECHAMBER_AM1BCC.AC -f ac -p "C:/Program Files/ChimeraX/bin/amber20/dat/antechamber/BCCPARM.DAT" -s 2 -j 1` (UNL) `bash.exe: warning: could not find /tmp, please create!` (UNL) `` (UNL) `Running: "C:/Program Files/ChimeraX/bin/amber20/bin/atomtype" -f ac -p bcc -o ANTECHAMBER_AM1BCC.AC -i ANTECHAMBER_AM1BCC_PRE.AC` (UNL) `bash.exe: warning: could not find /tmp, please create!` (UNL) `` Charges for residue UNL determined OpenMM ffXML file UNL written to the current working directory. New template added to forcefield as USER_UNL. This ligand should now work in all remaining simulations for this session. To use in future sessions, load the ffXML file with ISOLDE's Load Residue MD Definition(s) button. > show #2 models > color :Q6F brown > color byhetero > ui mousemode right "translate selected atoms" > usage move move axis [distance [frames]] [coordinateSystem a coordinate-system] [models a models specifier] [atoms an atoms specifier] — move camera, models, or atoms axis: an axis vector distance: a number frames: an integer ≥ 1 move cofr models — move models to center of rotation > ui tool show Shell 0.01s - Debugger warning: It seems that frozen modules are being used, which may 0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off 0.00s - to python to disable frozen modules. 0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to disable this validation. > select 89099 atoms, 89018 bonds, 50 pseudobonds, 2543 residues, 22 models selected > close #4 > select up 86 atoms, 87 bonds, 1 residue, 1 model selected > select clear > select #2 6924 atoms, 7078 bonds, 866 residues, 1 model selected > show #1 > hide #!5 models > show #!5 models > select #5 86 atoms, 87 bonds, 1 residue, 12 models selected > show #5 > select up 86 atoms, 87 bonds, 1 residue, 1 model selected > select clear > select #2 6924 atoms, 7078 bonds, 866 residues, 1 model selected > ui mousemode right "translate selected models" > select #5 86 atoms, 87 bonds, 1 residue, 12 models selected > view matrix models #5,1,0,0,-3.4694e-18,0,1,0,-4.3368e-19,0,0,1,-4.3368e-18 > ui mousemode right "translate selected atoms" OpenGL version: 3.3.0 NVIDIA 576.57 OpenGL renderer: NVIDIA GeForce RTX 3070 Laptop GPU/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation Python: 3.11.4 Locale: en_GB.cp1252 Qt version: PyQt6 6.8.1, Qt 6.8.2 Qt runtime version: 6.8.2 Qt platform: windows Manufacturer: HP Model: HP ZBook Studio 15.6 inch G8 Mobile Workstation PC OS: Microsoft Windows 11 Pro (Build 26100) Memory: 34,007,068,672 MaxProcessMemory: 137,438,953,344 CPU: 16 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz OSLanguage: en-GB Installed Packages: alabaster: 1.0.0 appdirs: 1.4.4 asteval: 1.0.6 asttokens: 3.0.0 babel: 2.17.0 beautifulsoup4: 4.13.3 blockdiag: 3.0.0 blosc2: 3.6.1 build: 1.2.2.post1 certifi: 2025.7.14 cftime: 1.6.4.post1 charset-normalizer: 3.4.2 ChimeraX-AddCharge: 1.5.19 ChimeraX-AddH: 2.2.7 ChimeraX-AlignmentAlgorithms: 2.0.2 ChimeraX-AlignmentHdrs: 3.6.1 ChimeraX-AlignmentMatrices: 2.1 ChimeraX-Alignments: 2.20.2 ChimeraX-AlphaFold: 1.0.1 ChimeraX-AltlocExplorer: 1.1.2 ChimeraX-AmberInfo: 1.0 ChimeraX-Aniso: 1.1.4 ChimeraX-Arrays: 1.1 ChimeraX-Atomic: 1.60.7 ChimeraX-AtomicLibrary: 14.1.19 ChimeraX-AtomSearch: 2.0.1 ChimeraX-AxesPlanes: 2.4 ChimeraX-BasicActions: 1.1.3 ChimeraX-BILD: 1.0 ChimeraX-BlastProtein: 3.0.0 ChimeraX-Boltz: 1.0 ChimeraX-BondRot: 2.0.4 ChimeraX-BugReporter: 1.0.2 ChimeraX-BuildStructure: 2.13.1 ChimeraX-Bumps: 1.0 ChimeraX-BundleBuilder: 1.5.1 ChimeraX-ButtonPanel: 1.0.1 ChimeraX-CageBuilder: 1.0.1 ChimeraX-CellPack: 1.0 ChimeraX-Centroids: 1.4 ChimeraX-ChangeChains: 1.1 ChimeraX-CheckWaters: 1.5 ChimeraX-ChemGroup: 2.0.2 ChimeraX-Clashes: 2.3 ChimeraX-Clipper: 0.25.1 ChimeraX-ColorActions: 1.0.5 ChimeraX-ColorGlobe: 1.0 ChimeraX-ColorKey: 1.5.8 ChimeraX-CommandLine: 1.3 ChimeraX-ConnectStructure: 2.0.1 ChimeraX-Contacts: 1.0.1 ChimeraX-Core: 1.10.1 ChimeraX-CoreFormats: 1.2 ChimeraX-coulombic: 1.4.5 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0.1 ChimeraX-DataFormats: 1.2.4 ChimeraX-Dicom: 1.2.7 ChimeraX-DistMonitor: 1.4.2 ChimeraX-DockPrep: 1.1.4 ChimeraX-Dssp: 2.0 ChimeraX-EMDB-SFF: 1.0 ChimeraX-ESMFold: 1.0 ChimeraX-FileHistory: 1.0.1 ChimeraX-FunctionKey: 1.0.1 ChimeraX-Geometry: 1.3 ChimeraX-gltf: 1.0 ChimeraX-Graphics: 1.4.1 ChimeraX-Hbonds: 2.5.1 ChimeraX-Help: 1.3 ChimeraX-HKCage: 1.3 ChimeraX-IHM: 1.1 ChimeraX-ImageFormats: 1.2 ChimeraX-IMOD: 1.0 ChimeraX-IO: 1.0.3 ChimeraX-ISOLDE: 1.10.1 ChimeraX-ItemsInspection: 1.0.1 ChimeraX-IUPAC: 1.0 ChimeraX-KVFinder: 1.6.2 ChimeraX-Label: 1.1.14 ChimeraX-ListInfo: 1.2.2 ChimeraX-Log: 1.2 ChimeraX-LookingGlass: 1.1 ChimeraX-Maestro: 1.9.1 ChimeraX-Map: 1.3 ChimeraX-MapData: 2.0 ChimeraX-MapEraser: 1.0.1 ChimeraX-MapFilter: 2.0.1 ChimeraX-MapFit: 2.0 ChimeraX-MapSeries: 2.1.1 ChimeraX-Markers: 1.0.1 ChimeraX-Mask: 1.0.2 ChimeraX-MatchMaker: 2.2.2 ChimeraX-MCopy: 1.0 ChimeraX-MDcrds: 2.10.1 ChimeraX-MedicalToolbar: 1.1 ChimeraX-Meeting: 1.0.1 ChimeraX-MLP: 1.1.1 ChimeraX-mmCIF: 2.16 ChimeraX-MMTF: 2.2 ChimeraX-ModelArchive: 1.0 ChimeraX-Modeller: 1.5.19 ChimeraX-ModelPanel: 1.5.1 ChimeraX-ModelSeries: 1.0.1 ChimeraX-Mol2: 2.0.3 ChimeraX-Mole: 1.0 ChimeraX-Morph: 1.0.2 ChimeraX-MouseModes: 1.2 ChimeraX-Movie: 1.0 ChimeraX-MutationScores: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nifti: 1.2 ChimeraX-NMRSTAR: 1.0.2 ChimeraX-NRRD: 1.2 ChimeraX-Nucleotides: 2.0.3 ChimeraX-OpenCommand: 1.14.1 ChimeraX-OrthoPick: 1.0.1 ChimeraX-PDB: 2.7.10 ChimeraX-PDBBio: 1.0.1 ChimeraX-PDBLibrary: 1.0.4 ChimeraX-PDBMatrices: 1.0 ChimeraX-PickBlobs: 1.0.1 ChimeraX-Positions: 1.0 ChimeraX-PresetMgr: 1.1.3 ChimeraX-ProfileGrids: 1.1.3 ChimeraX-PubChem: 2.2 ChimeraX-ReadPbonds: 1.0.1 ChimeraX-Registration: 1.1.2 ChimeraX-RemoteControl: 1.0 ChimeraX-RenderByAttr: 1.6.3 ChimeraX-RenumberResidues: 1.1 ChimeraX-ResidueFit: 1.0.1 ChimeraX-RestServer: 1.3.1 ChimeraX-RNALayout: 1.0 ChimeraX-RotamerLibMgr: 4.0 ChimeraX-RotamerLibsDunbrack: 2.0 ChimeraX-RotamerLibsDynameomics: 2.0 ChimeraX-RotamerLibsRichardson: 2.0 ChimeraX-SaveCommand: 1.5.1 ChimeraX-SchemeMgr: 1.0 ChimeraX-SDF: 2.0.3 ChimeraX-Segger: 1.0 ChimeraX-Segment: 1.0.1 ChimeraX-Segmentations: 3.5.7 ChimeraX-SelInspector: 1.0 ChimeraX-SeqView: 2.17.1 ChimeraX-Shape: 1.1 ChimeraX-Shell: 1.0.1 ChimeraX-Shortcuts: 1.2.1 ChimeraX-ShowSequences: 1.0.3 ChimeraX-SideView: 1.0.1 ChimeraX-SimilarStructures: 1.0.1 ChimeraX-Smiles: 2.1.2 ChimeraX-SmoothLines: 1.0 ChimeraX-SpaceNavigator: 1.0 ChimeraX-StdCommands: 1.19.1 ChimeraX-STL: 1.0.1 ChimeraX-Storm: 1.0 ChimeraX-StructMeasure: 1.2.1 ChimeraX-Struts: 1.0.1 ChimeraX-Surface: 1.0.1 ChimeraX-SwapAA: 2.0.1 ChimeraX-SwapRes: 2.5.2 ChimeraX-TapeMeasure: 1.0 ChimeraX-TaskManager: 1.0 ChimeraX-Test: 1.0 ChimeraX-Toolbar: 1.2.3 ChimeraX-ToolshedUtils: 1.2.4 ChimeraX-Topography: 1.0 ChimeraX-ToQuest: 1.0 ChimeraX-Tug: 1.0.1 ChimeraX-UI: 1.45.2 ChimeraX-Umap: 1.0 ChimeraX-uniprot: 2.3.1 ChimeraX-UnitCell: 1.0.1 ChimeraX-ViewDockX: 1.4.4 ChimeraX-VIPERdb: 1.0 ChimeraX-Vive: 1.1 ChimeraX-VolumeMenu: 1.0.1 ChimeraX-vrml: 1.0 ChimeraX-VTK: 1.0 ChimeraX-WavefrontOBJ: 1.0 ChimeraX-WebCam: 1.0.2 ChimeraX-WebServices: 1.1.5 ChimeraX-Zone: 1.0.1 colorama: 0.4.6 comm: 0.2.2 comtypes: 1.4.10 contourpy: 1.3.2 coverage: 7.10.0 cxservices: 1.2.3 cycler: 0.12.1 Cython: 3.0.12 debugpy: 1.8.15 decorator: 5.2.1 dill: 0.4.0 docutils: 0.21.2 executing: 2.2.0 filelock: 3.18.0 fonttools: 4.59.0 funcparserlib: 2.0.0a0 glfw: 2.9.0 grako: 3.16.5 h5py: 3.14.0 html2text: 2024.2.26 idna: 3.10 ihm: 2.2 imagecodecs: 2024.6.1 imagesize: 1.4.1 iniconfig: 2.1.0 ipykernel: 6.29.5 ipython: 8.26.0 ipywidgets: 8.1.7 jedi: 0.19.1 Jinja2: 3.1.6 jupyter_client: 8.6.3 jupyter_core: 5.8.1 jupyterlab_widgets: 3.0.15 kiwisolver: 1.4.8 line_profiler: 4.2.0 lmfit: 1.3.4 lxml: 5.3.1 lz4: 4.3.2 MarkupSafe: 3.0.2 matplotlib: 3.10.1 matplotlib-inline: 0.1.7 msgpack: 1.1.0 ndindex: 1.10.0 nest-asyncio: 1.6.0 netCDF4: 1.6.5 networkx: 3.3 nibabel: 5.2.0 nptyping: 2.5.0 numdifftools: 0.9.41 numexpr: 2.11.0 numpy: 1.26.4 nvidia-nvjitlink-cu12: 12.9.86 OpenMM: 8.2.0 OpenMM-CUDA-12: 8.2.0 openvr: 1.26.701 packaging: 24.2 pandas: 2.3.1 ParmEd: 4.2.2 parso: 0.8.4 pep517: 0.13.1 pickleshare: 0.7.5 pillow: 10.4.0 pip: 25.0.1 pkginfo: 1.11.1 platformdirs: 4.3.8 pluggy: 1.6.0 prompt_toolkit: 3.0.51 psutil: 7.0.0 pure_eval: 0.2.3 py-cpuinfo: 9.0.0 pycollada: 0.8 pydicom: 2.4.4 Pygments: 2.18.0 pynmrstar: 3.3.5 pynrrd: 1.0.0 PyOpenGL: 3.1.9 PyOpenGL-accelerate: 3.1.9 pyopenxr: 1.1.4501 pyparsing: 3.2.3 pyproject_hooks: 1.2.0 PyQt6-commercial: 6.8.1 PyQt6-Qt6: 6.8.2 PyQt6-WebEngine-commercial: 6.8.0 PyQt6-WebEngine-Qt6: 6.8.2 PyQt6_sip: 13.10.0 pytest: 8.4.1 pytest-cov: 6.2.1 python-dateutil: 2.9.0.post0 pytz: 2025.2 pywin32: 310 pyzmq: 27.0.0 qtconsole: 5.5.2 QtPy: 2.4.3 qtshim: 1.1 RandomWords: 0.4.0 requests: 2.32.3 roman-numerals-py: 3.1.0 scipy: 1.14.0 setuptools: 78.1.0 sfftk-rw: 0.8.1 six: 1.16.0 snowballstemmer: 3.0.1 sortedcontainers: 2.4.0 soupsieve: 2.7 Sphinx: 8.2.3 sphinx-autodoc-typehints: 3.1.0 sphinxcontrib-applehelp: 2.0.0 sphinxcontrib-blockdiag: 3.0.0 sphinxcontrib-devhelp: 2.0.0 sphinxcontrib-htmlhelp: 2.1.0 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 2.0.0 sphinxcontrib-serializinghtml: 2.0.0 stack-data: 0.6.3 superqt: 0.7.1 tables: 3.10.2 tcia_utils: 1.5.1 tifffile: 2025.3.13 tinyarray: 1.2.4 tornado: 6.5.1 traitlets: 5.14.3 typing_extensions: 4.14.1 tzdata: 2025.2 uncertainties: 3.2.3 urllib3: 2.5.0 wcwidth: 0.2.13 webcolors: 24.11.1 wheel: 0.45.1 wheel-filename: 1.4.2 widgetsnbextension: 4.0.14 WMI: 1.5.1
Change History (6)
comment:1 by , 2 months ago
Cc: | added |
---|---|
Component: | Unassigned → Core |
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → accepted |
Summary: | ChimeraX bug report submission → C++ structure position not always updated |
comment:2 by , 2 months ago
comment:3 by , 2 months ago
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
Fixed. If something wonky happens with moving models or adding/removing them from sessions in the daily build in the next few days, we know where to look first. I did do a few tests, but it's hard to cover all the possibilities.
Fix: https://github.com/RBVI/ChimeraX/commit/c107186eb500bbde2cad5b71021c0cb5ce773b0e
comment:4 by , 2 months ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
On the other hand, I don't think that fix is correct at all -- hold on.
comment:5 by , 2 months ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
Instead, made the workaround I suggested to Tristan the actual fix. Removed the optimization of not setting the C++ position if the model added to the session has the identity position, which is not always correct.
Fix: https://github.com/RBVI/ChimeraX/commit/de17c400d684d11193c6f00f23871e5c3de19b74
comment:6 by , 2 months ago
OK, as a temporary workaround to work with ChimeraX 1.10 I can force the call to `_cpp_notify_position()` when the parent model is added to the session: https://github.com/tristanic/chimerax-clipper/commit/099489436787e0de71c79616bfa03d7f25fb5600. Will push patch builds out on Monday. On Thu, Aug 14, 2025 at 12:38 AM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote: > > > > > >
The code that updates the C++ structure position when the structure is added to a session only does so if the incoming position is not the identity, which always is fine if the structure is only added to session once, but not in this unusual situation where the structure is withdrawn from the session and added back again.
You can temporarily work around the problem by changing the test against identity in Structure.added_to_session() to just 'if True:', but I don't think that's the best long term solution. It would be better to set the C++ position from Structure's position property. It might take a few days before I get around to that fix.