Opened 2 years ago

Closed 23 months ago

Last modified 22 months ago

#9887 closed enhancement (fixed)

Chimera-like control of model display

Reported by: olibclarke@… Owned by: Eric Pettersen
Priority: normal Milestone:
Component: UI Version:
Keywords: Cc: Elaine Meng, Tom Goddard
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        macOS-13.6-arm64-arm-64bit
ChimeraX Version: 1.7.dev202309281956 (2023-09-28 19:56:46 UTC)
Description
Hi,

I still really miss the "display next/previous model" interface from Chimera. While I have migrated most of my workflow to ChimeraX now, and I love it, when I want to compare a set of 3D classes, I still turn to Chimera because this makes it really easy to quickly flick between them, and to toggle on/off display of individual volumes in the series (and compare with a reference atomic model). 

I can use volume series for this in ChimeraX, but they lack the same level of granularity in turning on and off individual frames in the series - there are certain advantages to having individual models remain separate. Volume/model series are great for trajectories with 100s of frames/models, but for comparing and discriminating between <20 classes/frames (which single particle folks do a lot), the approach in Chimera still has its advantages.

I know a full implementation (with checkboxes etc) is unlikely to be a priority in the near term, but at some point in the future would it be possible to add a next/previous model widget of some sort? Ideally (in my mind) such a widget would work as follows:

* If multiple models are displayed, display only the first;
* If a single model is displayed, undisplay it and display the next (or previous)
* If the displayed model is the last model, display the first model next (or vice-versa).
* Ideally, allow the user to lock display status of individual models ("skip") so they are ignored in the sequence (either remaining displayed or undisplayed depending on status).
* This could be implemented as a separate widget, or perhaps as a enhancement/modification of the existing Model Panel?

If such a widget could also separately discriminate between volumes and atomic models that would be even better - so one could quickly flick through multiple maps and compare them to a single atomic model fit to the consensus (we do this a lot in Chimera). I realize this is not something that is likely to be addressed soon, just putting it out there as an RFE for the future (as it is now one of the only remaining pain-points in transitioning from Chimera to ChimeraX, for my workflow at least). Thanks very much for all the work you do, ChimeraX is a truly superb piece of software!

Best,
Oli


Log:
> camera ortho

> cofr centerOfView

> mousemode alt rightMode "contour level"

> mousemode rightMode clip

> mousemode alt leftMode "translate selected models"

> mousemode shift leftMode "rotate selected models"

> mousemode alt control leftMode "pick blobs"

> alias cofron cofr centerofview showpivot true

> alias cofroff cofr centerofview showpivot false

> alias symclip cofr centerofview; clip near -$1 far $1 position cofr

> alias cootmode set bgColor black; surface cap false; surface style solid;
> lighting flat; graphics silhouettes false; style stick; ~rib; color
> ##num_residues gold; color byhet ; disp; ~disp @H*; style ions ball; style
> solvent ball; size ballscale 0.2; size stickradius 0.07; transparency 70;
> cofr centerofview; clip near -10 far 10 position cofr; color ##~num_residues
> cornflower blue

> alias cootmode_mesh surface cap false; surface style mesh; lighting flat;
> graphics silhouettes false; style stick; ~rib; color ##num_residues gold;
> color byhet ; disp; ~disp @H*; style solvent ball; style ions ball; size
> ballscale 0.2; size stickradius 0.07; cofr centerofview; clip near -10 far
> 10 position cofr; color ##~num_residues #3d60ffff; transparency 50

> alias project_map set bgColor black; lighting depthcue false; volume $1
> style image sdlevel 0,0 color white sdlevel 100,0.15 color white
> projectionmode 3d maximumIntensityProjection false dimTransparentVoxels
> false btcorrection true showOutlineBox false linearinterpolation true

> alias ca_and_sidechains ~rib $1; ~surf $1; ~disp $1; disp @CA&protein&$1;
> disp @P&nucleic&$1; style $1 stick; disp sidechain&$1; disp
> ~backbone&nucleic&$1; size stickradius 0.1; size pseudobondradius 0.1

> alias ca_trace ~rib $1; ~surf $1; ~disp $1; disp @CA&protein&$1; disp
> @P&nucleic&$1; style $1 stick; size stickradius 0.1; size pseudobondradius
> 0.1

> alias map_sphere_15 surface unzone ##~num_residues; sel; close #10000;
> marker #10000 position cofr; sel ~sel; surface zone ##~num_residues
> nearAtoms sel distance 15; close #10000

> alias map_unsphere surface unzone ##~num_residues

> alias default_mol_display ~disp; rib; rainbow chain palette RdYlBu-5;
> lighting soft

> alias hidemaps surface unzone ##~num_residues; sel; close #10000; marker
> #10000 position cofr; sel ~sel; surface zone ##~num_residues nearAtoms sel
> distance 0; close #10000

> alias showmaps surface unzone ##~num_residues

> alias caps_off surface cap false

> alias caps_on surface cap true

> alias selbetween ks ri

> alias helix setattr $1 res is_helix true

> alias strand setattr $1 res is_strand true

> alias coil setattr $1 res is_strand false; setattr $1 res is_helix false

> alias rock_movie cofr showpivot false; movie record; rock y 30; wait 136;
> movie encode ~/Desktop/rock_movie.mp4; stop

> buttonpanel Shortcuts rows 3 columns 4

> buttonpanel Shortcuts add Vol_Viewer command "tool show 'Volume Viewer'"

> buttonpanel Shortcuts add Model_Panel command "tool show Models"

> buttonpanel Shortcuts add Log command "tool show Log"

> buttonpanel Shortcuts add default_disp command default_mol_display

> buttonpanel Shortcuts add map_sphere command map_sphere_15

> buttonpanel Shortcuts add map_unsphere command map_unsphere

> buttonpanel Shortcuts add cofron command cofron

> buttonpanel Shortcuts add cofroff command cofroff

> buttonpanel Shortcuts add cootmode command cootmode

> buttonpanel Shortcuts add mark_cofr command "marker #20000 position cofr"

> buttonpanel Shortcuts add hidemaps command hidemaps

> buttonpanel Shortcuts add showmaps command showmaps

> volume defaultvalues limitVoxelCount false voxelLimitForPlane
> 1000000000000000 voxelLimitForOpen 1000000000000000 saveSettings true

Saved volume settings  
UCSF ChimeraX version: 1.7.dev202309281956 (2023-09-28)  
© 2016-2023 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open 34282 fromDatabase emdb_fits

Summary of feedback from opening 34282 fetched from emdb_fits  
---  
notes | Fetching compressed map header 34282 from
https://files.wwpdb.org/pub/emdb/structures/EMD-34282/header/emd-34282.xml  
Fetching compressed mmCIF 8gv3 from http://files.rcsb.org/download/8gv3.cif  
Fetching CCD ZN from
https://files.wwpdb.org/pub/pdb/refdata/chem_comp/N/ZN/ZN.cif  
  
Opened emdb 34282 as #1, grid size 180,180,180, pixel 1.1, shown at level 0.7,
step 1, values float32, fit PDB 8gv3  
8gv3 title:  
The cryo-EM structure of GSNOR with NYY001 [more info...]  
  
Chain information for 8gv3 #2  
---  
Chain | Description | UniProt  
A B | Alcohol dehydrogenase class-3 | ADHX_HUMAN 0-373  
  
Non-standard residues in 8gv3 #2  
---  
NAD — nicotinamide-adenine-dinucleotide  
WKZ —
(4P)-4-{2-[4-(1H-imidazol-1-yl)phenyl]-5-[3-oxo-3-(2-oxo-1,3-thiazolidin-3-yl)propyl]-1H-pyrrol-1-yl}-3-methylbenzamide  
ZN — zinc ion  
  

> cootmode

> surface cap false

Changed 5714 atom styles  
Changed 4 atom styles  
Changed 0 atom styles  
Changed 1 ball scales  
Changed 5828 bond radii  

> close all

> open 34282 fromDatabase emdb fits true

Opened emdb 34282 as #1, grid size 180,180,180, pixel 1.1, shown at level 0.7,
step 1, values float32, fit PDB 8gv3  
8gv3 title:  
The cryo-EM structure of GSNOR with NYY001 [more info...]  
  
Chain information for 8gv3 #2  
---  
Chain | Description | UniProt  
A B | Alcohol dehydrogenase class-3 | ADHX_HUMAN 0-373  
  
Non-standard residues in 8gv3 #2  
---  
NAD — nicotinamide-adenine-dinucleotide  
WKZ —
(4P)-4-{2-[4-(1H-imidazol-1-yl)phenyl]-5-[3-oxo-3-(2-oxo-1,3-thiazolidin-3-yl)propyl]-1H-pyrrol-1-yl}-3-methylbenzamide  
ZN — zinc ion  
  

> cootmode

Changed 5714 atom styles  
Changed 4 atom styles  
Changed 0 atom styles  
Changed 1 ball scales  
Changed 5828 bond radii  

> close all

> tool show Models

> open 34282 format ccp4 fromDatabase emdb_fits

Opened emdb 34282 as #1, grid size 180,180,180, pixel 1.1, shown at level 0.7,
step 1, values float32, fit PDB 8gv3  
8gv3 title:  
The cryo-EM structure of GSNOR with NYY001 [more info...]  
  
Chain information for 8gv3 #2  
---  
Chain | Description | UniProt  
A B | Alcohol dehydrogenase class-3 | ADHX_HUMAN 0-373  
  
Non-standard residues in 8gv3 #2  
---  
NAD — nicotinamide-adenine-dinucleotide  
WKZ —
(4P)-4-{2-[4-(1H-imidazol-1-yl)phenyl]-5-[3-oxo-3-(2-oxo-1,3-thiazolidin-3-yl)propyl]-1H-pyrrol-1-yl}-3-methylbenzamide  
ZN — zinc ion  
  

> open
> /Users/oc2188/Library/CloudStorage/Dropbox/ankyrin_complex_final_maps_and_models/consensus_DONE/consensus_refinement_rh_ar15_mask_DONE/resolve_cryo_em_0_DONE/denmod_map_resample.mrc
> format mrc

Opened denmod_map_resample.mrc as #3, grid size 266,266,266, pixel 0.415,
shown at level 1.69, step 1, values float32  

> cootmode

Changed 5714 atom styles  
Changed 4 atom styles  
Changed 0 atom styles  
Changed 1 ball scales  
Changed 5828 bond radii  

> close all

> help setattr

> open 8cml

Summary of feedback from opening 8cml fetched from pdb  
---  
note | Fetching compressed mmCIF 8cml from
http://files.rcsb.org/download/8cml.cif  
  
8cml title:  
Cryo-EM structure of complement C5 in complex with nanobodies UNbC5-1 and
UNbC5-2 [more info...]  
  
Chain information for 8cml #1  
---  
Chain | Description | UniProt  
A | Nanobody UNbC5-2 |  
B | Complement C5 alpha chain | CO5_HUMAN 678-1676  
C | Nanobody UNbC5-1 |  
E | Complement C5 beta chain | CO5_HUMAN 19-673  
  
Non-standard residues in 8cml #1  
---  
NAG — 2-acetamido-2-deoxy-beta-D-glucopyranose (N-acetyl-beta-D-glucosamine;
2-acetamido-2-deoxy-beta-D-glucose; 2-acetamido-2-deoxy-D-glucose;
2-acetamido-2-deoxy-glucose; N-ACETYL-D-GLUCOSAMINE)  
  

> tool show Log

> log metadata #1

Metadata for 8cml #1  
---  
Title | Cryo-EM structure of complement C5 in complex with nanobodies UNbC5-1
and UNbC5-2  
Citation | Struijf, E.M., De la O Becerra, K.I., Ruyken, M., de Haas, C.J.C.,
van Oosterom, F., Siere, D.Y., van Keulen, J.E., Heesterbeek, D.A.C., Dolk,
E., Heukers, R., Bardoel, B.W., Gros, P., Rooijakkers, S.H.M. (2023).
Inhibition of cleavage of human complement component C5 and the R885H C5
variant by two distinct high affinity anti-C5 nanobodies. J.Biol.Chem., 299,
104956-104956. PMID: 37356719. DOI: 10.1016/j.jbc.2023.104956  
Non-standard residue | NAG — 2-acetamido-2-deoxy-beta-D-glucopyranose
(N-acetyl-beta-D-glucosamine; 2-acetamido-2-deoxy-beta-D-glucose;
2-acetamido-2-deoxy-D-glucose; 2-acetamido-2-deoxy-glucose; N-ACETYL-D-
GLUCOSAMINE)  
Source (natural) | Homo sapiens (human)  
Gene source | Lama glama  
CryoEM Map | EMDB 16730 — open map  
Experimental method | Electron microscopy  
Resolution | 3.6Å  
  
> open 16730 fromDatabase emdb

Summary of feedback from opening 16730 fetched from emdb  
---  
notes | Fetching compressed map 16730 from
ftp://ftp.ebi.ac.uk/pub/databases/emdb/structures/EMD-16730/map/emd_16730.map.gz  
Fetching map header 16730 from
ftp://ftp.ebi.ac.uk/pub/databases/emdb/structures/EMD-16730/header/emd-16730.xml  
  
Opened emdb 16730 as #2, grid size 320,320,320, pixel 1.04, shown at level
0.186, step 1, values float32, fit PDB 8cml  

> volume #2 level 0.3245

> cootmode

Changed 13594 atom styles  
Changed 0 atom styles  
[Repeated 1 time(s)]Changed 1 ball scales  
Changed 13897 bond radii  

> close all

> tool show Models

> open 8cml format mmcif fromDatabase pdb

8cml title:  
Cryo-EM structure of complement C5 in complex with nanobodies UNbC5-1 and
UNbC5-2 [more info...]  
  
Chain information for 8cml #1  
---  
Chain | Description | UniProt  
A | Nanobody UNbC5-2 |  
B | Complement C5 alpha chain | CO5_HUMAN 678-1676  
C | Nanobody UNbC5-1 |  
E | Complement C5 beta chain | CO5_HUMAN 19-673  
  
Non-standard residues in 8cml #1  
---  
NAG — 2-acetamido-2-deoxy-beta-D-glucopyranose (N-acetyl-beta-D-glucosamine;
2-acetamido-2-deoxy-beta-D-glucose; 2-acetamido-2-deoxy-D-glucose;
2-acetamido-2-deoxy-glucose; N-ACETYL-D-GLUCOSAMINE)  
  

> open
> /Users/oc2188/Library/CloudStorage/Dropbox/ankyrin_complex_final_maps_and_models/consensus_DONE/consensus_refinement_rh_ar15_mask_DONE/resolve_cryo_em_0_DONE/rh_ar15_start_rs2.pdb
> format pdb

Chain information for rh_ar15_start_rs2.pdb #2  
---  
Chain | Description  
J | No description available  
K | No description available  
L | No description available  
Q | No description available  
  

> open
> /Users/oc2188/Downloads/rosie_flvcr2/091623_OFS_FLVCR2_MM_Fab_FLV23_ChCl.pdb
> format pdb

Summary of feedback from opening
/Users/oc2188/Downloads/rosie_flvcr2/091623_OFS_FLVCR2_MM_Fab_FLV23_ChCl.pdb  
---  
warning | Ignored bad PDB record found on line 1  
REMARK DATE: 2/ 5/21 14:33:49 CREATED BY USER: nathan  
  
Chain information for 091623_OFS_FLVCR2_MM_Fab_FLV23_ChCl.pdb #3  
---  
Chain | Description  
A | No description available  
B | No description available  
D | No description available  
  

> ~show #2

> hide #2

> tool show Models

> help show

> hide #2*

Expected a collection of one of 'atoms', 'bonds', 'cartoons', 'models',
'pbonds', 'pseudobonds', 'ribbons', or 'surfaces' or a keyword  

> show #2*

Expected a collection of one of 'atoms', 'bonds', 'cartoons', 'models',
'pbonds', 'pseudobonds', 'ribbons', or 'surfaces' or a keyword  

> ~show #2*

> hide #2*

Expected a collection of one of 'atoms', 'bonds', 'cartoons', 'models',
'pbonds', 'pseudobonds', 'ribbons', or 'surfaces' or a keyword  

> hide #!2 models

> help vseries




OpenGL version: 4.1 Metal - 83.1
OpenGL renderer: Apple M2 Max
OpenGL vendor: Apple

Python: 3.11.2
Locale: UTF-8
Qt version: PyQt6 6.3.1, Qt 6.3.1
Qt runtime version: 6.3.2
Qt platform: cocoa
Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: Mac14,5
      Model Number: Z17J00171LL/A
      Chip: Apple M2 Max
      Total Number of Cores: 12 (8 performance and 4 efficiency)
      Memory: 64 GB
      System Firmware Version: 10151.1.1
      OS Loader Version: 8422.141.2

Software:

    System Software Overview:

      System Version: macOS 13.6 (22G120)
      Kernel Version: Darwin 22.6.0
      Time since boot: 20 hours, 24 minutes

Graphics/Displays:

    Apple M2 Max:

      Chipset Model: Apple M2 Max
      Type: GPU
      Bus: Built-In
      Total Number of Cores: 30
      Vendor: Apple (0x106b)
      Metal Support: Metal 3
      Displays:
        Color LCD:
          Display Type: Built-in Liquid Retina XDR Display
          Resolution: 3024 x 1964 Retina
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: Yes
          Connection Type: Internal


Installed Packages:
    alabaster: 0.7.13
    appdirs: 1.4.4
    appnope: 0.1.3
    asttokens: 2.4.0
    Babel: 2.12.1
    backcall: 0.2.0
    beautifulsoup4: 4.11.2
    blockdiag: 3.0.0
    blosc2: 2.0.0
    build: 0.10.0
    certifi: 2022.12.7
    cftime: 1.6.2
    charset-normalizer: 3.2.0
    ChimeraX-AddCharge: 1.5.11
    ChimeraX-AddH: 2.2.5
    ChimeraX-AlignmentAlgorithms: 2.0.1
    ChimeraX-AlignmentHdrs: 3.4.1
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.11.1
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.1.1
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.48
    ChimeraX-AtomicLibrary: 10.1
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.3.2
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.1.2
    ChimeraX-BondRot: 2.0.4
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.10.5
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.2.2
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.3.2
    ChimeraX-ChangeChains: 1.0.3
    ChimeraX-CheckWaters: 1.3.1
    ChimeraX-ChemGroup: 2.0.1
    ChimeraX-Clashes: 2.2.4
    ChimeraX-ColorActions: 1.0.3
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.4
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.7.dev202309281956
    ChimeraX-CoreFormats: 1.2
    ChimeraX-coulombic: 1.4.2
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.3
    ChimeraX-Dicom: 1.2
    ChimeraX-DistMonitor: 1.4
    ChimeraX-DockPrep: 1.1.2
    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.1.1
    ChimeraX-Hbonds: 2.4
    ChimeraX-Help: 1.2.2
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-IUPAC: 1.0
    ChimeraX-Label: 1.1.8
    ChimeraX-ListInfo: 1.2.1
    ChimeraX-Log: 1.1.6
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.9.1
    ChimeraX-Map: 1.1.4
    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.1.2
    ChimeraX-MCopy: 1.0
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.2
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.12.1
    ChimeraX-MMTF: 2.2
    ChimeraX-Modeller: 1.5.12
    ChimeraX-ModelPanel: 1.4
    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-Neuron: 1.0
    ChimeraX-Nifti: 1.1
    ChimeraX-NRRD: 1.1
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.11
    ChimeraX-PDB: 2.7.2
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.2
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1
    ChimeraX-PubChem: 2.1
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.1
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.2
    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.1
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.10
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.1.1
    ChimeraX-ShowSequences: 1.0.2
    ChimeraX-SideView: 1.0.1
    ChimeraX-Smiles: 2.1.2
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.12.2
    ChimeraX-STL: 1.0.1
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.1.2
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0.1
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.2.2
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-TaskManager: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1.2
    ChimeraX-ToolshedUtils: 1.2.4
    ChimeraX-Topography: 1.0
    ChimeraX-ToQuest: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.32.2
    ChimeraX-uniprot: 2.3
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.3.1
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.2
    ChimeraX-WebServices: 1.1.2
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.1.4
    contourpy: 1.1.1
    cxservices: 1.2.2
    cycler: 0.12.0
    Cython: 0.29.33
    debugpy: 1.8.0
    decorator: 5.1.1
    docutils: 0.19
    executing: 1.2.0
    filelock: 3.9.0
    fonttools: 4.42.1
    funcparserlib: 1.0.1
    glfw: 2.6.2
    grako: 3.16.5
    h5py: 3.9.0
    html2text: 2020.1.16
    idna: 3.4
    ihm: 0.38
    imagecodecs: 2023.7.10
    imagesize: 1.4.1
    ipykernel: 6.23.2
    ipython: 8.14.0
    ipython-genutils: 0.2.0
    ipywidgets: 8.1.1
    jedi: 0.18.2
    Jinja2: 3.1.2
    jupyter-client: 8.2.0
    jupyter-core: 5.3.2
    jupyterlab-widgets: 3.0.9
    kiwisolver: 1.4.5
    line-profiler: 4.0.2
    lxml: 4.9.2
    lz4: 4.3.2
    MarkupSafe: 2.1.3
    matplotlib: 3.7.2
    matplotlib-inline: 0.1.6
    msgpack: 1.0.4
    nest-asyncio: 1.5.8
    netCDF4: 1.6.2
    networkx: 3.1
    nibabel: 5.0.1
    nptyping: 2.5.0
    numexpr: 2.8.7
    numpy: 1.25.1
    openvr: 1.23.701
    packaging: 21.3
    ParmEd: 3.4.3
    parso: 0.8.3
    pep517: 0.13.0
    pexpect: 4.8.0
    pickleshare: 0.7.5
    Pillow: 10.0.0
    pip: 23.0
    pkginfo: 1.9.6
    platformdirs: 3.10.0
    prompt-toolkit: 3.0.39
    psutil: 5.9.5
    ptyprocess: 0.7.0
    pure-eval: 0.2.2
    py-cpuinfo: 9.0.0
    pycollada: 0.7.2
    pydicom: 2.3.0
    Pygments: 2.16.1
    pynrrd: 1.0.0
    PyOpenGL: 3.1.7
    PyOpenGL-accelerate: 3.1.7
    pyopenxr: 1.0.2801
    pyparsing: 3.0.9
    pyproject-hooks: 1.0.0
    PyQt6-commercial: 6.3.1
    PyQt6-Qt6: 6.3.2
    PyQt6-sip: 13.4.0
    PyQt6-WebEngine-commercial: 6.3.1
    PyQt6-WebEngine-Qt6: 6.3.2
    python-dateutil: 2.8.2
    pytz: 2023.3.post1
    pyzmq: 25.1.1
    qtconsole: 5.4.3
    QtPy: 2.4.0
    RandomWords: 0.4.0
    requests: 2.31.0
    scipy: 1.11.1
    setuptools: 67.4.0
    setuptools-scm: 7.0.5
    sfftk-rw: 0.7.3
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    soupsieve: 2.5
    sphinx: 6.1.3
    sphinx-autodoc-typehints: 1.22
    sphinxcontrib-applehelp: 1.0.7
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.5
    sphinxcontrib-htmlhelp: 2.0.4
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.6
    sphinxcontrib-serializinghtml: 1.1.9
    stack-data: 0.6.2
    superqt: 0.5.0
    tables: 3.8.0
    tcia-utils: 1.5.1
    tifffile: 2023.7.18
    tinyarray: 1.2.4
    tomli: 2.0.1
    tornado: 6.3.3
    traitlets: 5.9.0
    typing-extensions: 4.8.0
    tzdata: 2023.3
    urllib3: 2.0.5
    wcwidth: 0.2.7
    webcolors: 1.12
    wheel: 0.38.4
    wheel-filename: 1.4.1
    widgetsnbextension: 4.0.9

Attachments (1)

PastedGraphic-1.png (297.7 KB ) - added by olibclarke@… 23 months ago.
Added by email2trac

Download all attachments as: .zip

Change History (18)

comment:1 by Eric Pettersen, 2 years ago

Cc: Elaine Meng Tom Goddard added
Component: UnassignedUI
Owner: set to Eric Pettersen
Platform: all
Project: ChimeraX
Status: newaccepted
Summary: ChimeraX bug report submissionChimera-like control of model display
Type: defectenhancement

comment:2 by Eric Pettersen, 2 years ago

As per our in-person meeting, it would be great if actually cycling through the models could use keys (maybe left/right arrow) instead of or in addition to mouse clicks.

comment:3 by Eric Pettersen, 23 months ago

Resolution: fixed
Status: acceptedclosed

Well, implemented in the next daily build except for the key equivalents part. Choosing "Show Sequential Display Controls" in the Model Panel's context menu will add a "Skip" column of check buttons and "Next" and "Previous" action buttons. Doesn't initially change any display states, but the first use of Next or Previous will cause exactly one non-skipped model to be displayed (or appropriate next/previous model if only one was already displayed). The context menu can be used again to hide the controls. All this subject to review by Elaine. :-)

I struggled to get up/down arrow keys to work as alternatives to the buttons, and so far have only gotten them to work on the first use. The second time the key is pressed it is treated as an up/down in the main graphics window, no matter how much clicking or hijinks you do in between. The only way I've gotten the keys to work a second time is by hiding the controls and then reshowing them. Anyway, I will battle with Qt tomorrow and see if I get any further on this front (well, tomorrow's a holiday, so it might be Tuesday).

comment:4 by olibclarke@…, 23 months ago

Dear all,

Ah, this sounds great, thanks Eric!! Will try it out when available and provide feedback. It also happens to be my birthday tomorrow, so this is a very nice birthday present! \U0001f605

Wishing the ChimeraX team all the best for the new year!!

Cheers
Oli

comment:5 by Eric Pettersen, 23 months ago

Happy Birthday! :-)

--Eric

>> On Dec 28, 2023, at 9:45\u202fPM, ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
>> 
>> #9887: Chimera-like control of model display
>> -----------------------------------+--------------------
>>         Reporter:  olibclarke@\u2026  |      Owner:  pett
>>             Type:  enhancement   |     Status:  closed
>>         Priority:  normal        |  Milestone:
>>        Component:  UI            |    Version:
>>       Resolution:  fixed         |   Keywords:
>>       Blocked By:                |   Blocking:
>> Notify when closed:                |   Platform:  all
>>          Project:  ChimeraX      |
>> -----------------------------------+--------------------
>> Changes (by pett):
>> 
>> * resolution:   => fixed
>> * status:  accepted => closed
>> 
>> Comment:
>> 
>> Well, implemented in the next daily build except for the key equivalents
>> part.  Choosing "Show Sequential Display Controls" in the Model Panel's
>> context menu will add a "Skip" column of check buttons and "Next" and
>> "Previous" action buttons.  Doesn't initially change any display states,
>> but the first use of Next or Previous will cause exactly one non-skipped
>> model to be displayed (or appropriate next/previous model if only one was
>> already displayed).  The context menu can be used again to hide the
>> controls.  All this subject to review by Elaine. :-)
>> 
>> I struggled to get up/down arrow keys to work as alternatives to the
>> buttons, and so far have only gotten them to work on the first use.  The
>> second time the key is pressed it is treated as an up/down in the main
>> graphics window, no matter how much clicking or hijinks you do in between.
>> The only way I've gotten the keys to work a second time is by hiding the
>> controls and then reshowing them.  Anyway, I will battle with Qt tomorrow
>> and see if I get any further on this front (well, tomorrow's a holiday, so
>> it might be Tuesday).
>> -- 
>> Ticket URL: <https://www.rbvi.ucsf.edu/trac/ChimeraX/ticket/9887#comment:3>
>> ChimeraX <https://www.rbvi.ucsf.edu/chimerax/>
>> ChimeraX Issue Tracker

comment:6 by Eric Pettersen, 23 months ago

Okay, in tomorrow's daily build the context menu item will be checkable, and you will be able to use up/down arrows as alternatives to the Previous/Next buttons.

Version 0, edited 23 months ago by Eric Pettersen (next)

comment:7 by olibclarke@…, 23 months ago

Just tested this and it works perfectly, thanks so much Eric!! Even better than Chimera as it isn't limited by the number of checkboxes, so I can use it with my 80-class classifications :)

Cheers
Oli


comment:8 by olibclarke@…, 23 months ago

One suggestion - I wonder if it would be worth adding a "show all" button? (similar to the "all" checkbox in the Chimera controls). This would allow for quickly displaying all models after only having one displayed, rather than clicking one by one.

Cheers
Oli


comment:9 by Eric Pettersen, 23 months ago

Glad you like it!

I don't think it's worth a "Show All" button -- click the first model you want to show, shift-click the last one, then use the "Show" button.

--Eric

comment:10 by olibclarke@…, 23 months ago

Ah I didn\u2019t know that shortcut, thanks!

comment:11 by olibclarke@…, 23 months ago

Hi Eric, three (very minor!) things after using this feature further:

1. Holding down the arrow key to quickly cycle through models triggers an error:

Added by email2trac


2. Would it be possible to add an option/preference such that the sequential controls appear by default, rather than having to activate from the context menu? Maybe something that could be added to the startup commands?

3. Something weird happening with surface capping. If I load a bunch of models, then adjust the contour level of all with e.g. "volume #* fastenclosevolume 1300000", when I cycle through the models using the arrow keys with a clip plane slicing through the models, the models initially show two surface caps (I guess the original and the updated one?). They subsequently show the correct cap if I cycle through again, or if I cycle back. Happy to provide a screen recording if needed to reproduce.

Cheers
Oli



by olibclarke@…, 23 months ago

Attachment: PastedGraphic-1.png added

Added by email2trac

comment:12 by Eric Pettersen, 23 months ago

  1. Holding down the arrow key to quickly cycle through models triggers an error:

I cannot reproduce this. Instead of providing a screenshot of the error dialog showing the lowest-level call of the stack trace, please click the Report Bug button, which will provide the full stack trace and give us a much better chance of figuring out what went wrong.

  1. Would it be possible to add an option/preference such that the sequential controls appear by default, rather than having to activate from the context menu? Maybe something that could be added to the startup commands?

I have made the controls sticky, starting with tomorrow's build.

  1. Something weird happening with surface capping. If I load a bunch of models, then adjust the contour level of all with e.g. "volume #* fastenclosevolume 1300000", when I cycle through the models using the arrow keys with a clip plane slicing through the models, the models initially show two surface caps (I guess the original and the updated one?). They subsequently show the correct cap if I cycle through again, or if I cycle back. Happy to provide a screen recording if needed to reproduce.

I cannot reproduce this either. Can you reproduce this with multiple copies of the same map (e.g. EMDB:20488)? If you can then maybe you could supply the corresponding contouring and clipping commands, which would give us a shot at reproducing it.

comment:13 by olibclarke@…, 23 months ago

Hi Eric,

1. Done.
2. Thanks!
3. Here is a screen recording: https://www.dropbox.com/s/wq2r6qdkaz6tbc4/two_contour_bug.mov?dl=0

And I will send the corresponding stack of volumes as a separate email off list - thanks!

Cheers
Oli

>> 1. Holding down the arrow key to quickly cycle through models triggers
>> 2. Would it be possible to add an option/preference such that the
>> 3. Something weird happening with surface capping. If I load a bunch of

comment:14 by Tom Goddard, 23 months ago

Oliver notes that problem 3 may be caused by clip caps on volume surfaces not updating properly ticket #10437 which I just fixed in the 1.8 daily build.

comment:15 by Eric Pettersen, 23 months ago

The volume-level fix did indeed fix the third problem also.

comment:16 by olibclarke@…, 22 months ago

Hi,

One other thought after using these controls for a bit:

When switching models using Next/Previous, would it be possible to show the identity (model number etc) of the currently displayed model in the lower status bar of the main GUI?

When I am looking through 80 models, I often can't/don't have the model panel sufficiently expanded to see which one is currently selected, meaning I either need to scroll through or hover for a tooltip - having it just in the status bar automatically would make it mach faster and more "glanceable".

Thanks again for these controls, they make inspecting large classifications much easier and more pleasant!

Also having  next/prev bound to commands would be great, so I could make corresponding command buttons in the main GUI...

Cheers
Oli


comment:17 by Eric Pettersen, 22 months ago

As of tomorrow's build, the model being shown will be echoed to the status line when using the sequential display controls.

Note: See TracTickets for help on using tickets.