#18427 closed defect (fixed)
C++ structure position not always updated
| Reported by: | Tristan Croll | Owned by: | Eric Pettersen |
|---|---|---|---|
| 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 , 3 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 , 3 months ago
comment:3 by , 3 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 , 3 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 , 3 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 , 3 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.