Opened 4 years ago

Closed 4 years ago

#5311 closed defect (fixed)

crossfade command incorrectly starts from solid black when file history thumbnails shown

Reported by: guillaume.gaullier@… Owned by: Tom Goddard
Priority: normal Milestone:
Component: Graphics Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        macOS-11.5.2-x86_64-i386-64bit
ChimeraX Version: 1.3.dev202109201808 (2021-09-20 18:08:56 UTC)
Description
crossfade command incorrectly starts from all black if file history thumbnails are shown over the graphics.  Reported by Guillaume Gaullier on the ChimeraX mailing list.

Log:
UCSF ChimeraX version: 1.3.dev202109201808 (2021-09-20)  
© 2016-2021 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open /Users/goddard/Downloads/command-file.cxc

> open emdb:13065 7otq

Summary of feedback from opening 13065 fetched from emdb  
---  
note | Fetching compressed map 13065 from
ftp://ftp.ebi.ac.uk/pub/databases/emdb/structures/EMD-13065/map/emd_13065.map.gz  
  
Summary of feedback from opening 7otq fetched from pdb  
---  
warning | Atom HO5' is not in the residue template for DA /I:-72  
note | Fetching compressed mmCIF 7otq from
http://files.rcsb.org/download/7otq.cif  
  
Opened emdb 13065 as #1, grid size 400,400,400, pixel 1.08, shown at level
0.0466, step 2, values float32  
7otq title:  
Cryo-EM structure of ALC1/CHD1L bound to a PARylated nucleosome [more info...]  
  
Chain information for 7otq #2  
---  
Chain | Description | UniProt  
A E | Histone H3.2 | H32_XENLA  
B F | Histone H4 | H4_XENLA  
C G | Histone H2A type 1 | H2A1_XENLA  
D H | Histone H2B 1.1 | H2B11_XENLA  
I | DNA (149-MER) Widom 601 sequence |  
J | DNA (149-MER) Widom 601 sequence |  
K | Chromodomain-helicase-DNA-binding protein 1-like | CHD1L_HUMAN  
  

> volume #1 level 0.15

> surface dust #1 size 10

> turn x -90

> turn z -5

> view #1

> view name disc

> view disc

> turn x 90

> turn z -5

> turn x -5

> view name dyad

> view dyad

> turn x 180

> turn z -5

> view name gyres

> view gyres

> turn y 95

> turn x 45

> turn y 30

> view name H4tailInteraction

> view H4tailInteraction

> turn y -50

> turn x -15

> turn y -5

> view name H4tailInteraction2

> name H3 /a/e

> name H4 /b/f

> name H2A /c/g

> name H2B /d/h

> name histones /a-h

> name DNA /i/j

> name ALC1 /k

> name NATPase /k:42-266

> name CATPase /k:267-500

> name H4tail /b:16-24

> color H3 blue

> color H4 green

> color H2A yellow

> color H2B red

> color DNA silver

> color ALC1 deeppink

> color NATPase salmon

> dssp protein

> hide atoms

> hide cartoons

> cartoon style protein modeHelix tube radius 2 sides 24

> set bgColor white

> lighting soft

> graphics silhouettes true

> view disc

> view #1

> movie record

> wait 240

> crossfade 120

> color zone #1 near #2 distance 10

> wait 240

> crossfade 120

> hide #1

> show cartoons

> wait 240

> movie stop

> movie encode framerate 60 output wrong-result.mp4

Movie saved to wrong-result.mp4  
  
executed command-file.cxc  

> close

> open /Users/goddard/Downloads/command-file.cxc

> open emdb:13065 7otq

Summary of feedback from opening 7otq fetched from pdb  
---  
warning | Atom HO5' is not in the residue template for DA /I:-72  
  
Opened emdb 13065 as #1, grid size 400,400,400, pixel 1.08, shown at level
0.0466, step 2, values float32  
7otq title:  
Cryo-EM structure of ALC1/CHD1L bound to a PARylated nucleosome [more info...]  
  
Chain information for 7otq #2  
---  
Chain | Description | UniProt  
A E | Histone H3.2 | H32_XENLA  
B F | Histone H4 | H4_XENLA  
C G | Histone H2A type 1 | H2A1_XENLA  
D H | Histone H2B 1.1 | H2B11_XENLA  
I | DNA (149-MER) Widom 601 sequence |  
J | DNA (149-MER) Widom 601 sequence |  
K | Chromodomain-helicase-DNA-binding protein 1-like | CHD1L_HUMAN  
  

> volume #1 level 0.15

> surface dust #1 size 10

> turn x -90

> turn z -5

> view #1

> view name disc

> view disc

> turn x 90

> turn z -5

> turn x -5

> view name dyad

> view dyad

> turn x 180

> turn z -5

> view name gyres

> view gyres

> turn y 95

> turn x 45

> turn y 30

> view name H4tailInteraction

> view H4tailInteraction

> turn y -50

> turn x -15

> turn y -5

> view name H4tailInteraction2

> name H3 /a/e

> name H4 /b/f

> name H2A /c/g

> name H2B /d/h

> name histones /a-h

> name DNA /i/j

> name ALC1 /k

> name NATPase /k:42-266

> name CATPase /k:267-500

> name H4tail /b:16-24

> color H3 blue

> color H4 green

> color H2A yellow

> color H2B red

> color DNA silver

> color ALC1 deeppink

> color NATPase salmon

> dssp protein

> hide atoms

> hide cartoons

> cartoon style protein modeHelix tube radius 2 sides 24

> set bgColor white

> lighting soft

> graphics silhouettes true

> view disc

> view #1

> movie record

> wait 240

> crossfade 120

> color zone #1 near #2 distance 10

> wait 240

> crossfade 120

> hide #1

> show cartoons

> wait 240

> movie stop

> movie encode framerate 60 output wrong-result.mp4

Movie saved to wrong-result.mp4  
  
executed command-file.cxc  




OpenGL version: 4.1 ATI-4.6.20
OpenGL renderer: AMD Radeon Pro Vega 20 OpenGL Engine
OpenGL vendor: ATI Technologies Inc.Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro15,3
      Processor Name: 8-Core Intel Core i9
      Processor Speed: 2.4 GHz
      Number of Processors: 1
      Total Number of Cores: 8
      L2 Cache (per Core): 256 KB
      L3 Cache: 16 MB
      Hyper-Threading Technology: Enabled
      Memory: 32 GB
      System Firmware Version: 1554.140.20.0.0 (iBridge: 18.16.14759.0.1,0)

Software:

    System Software Overview:

      System Version: macOS 11.5.2 (20G95)
      Kernel Version: Darwin 20.6.0
      Time since boot: 27 days 21:43

Graphics/Displays:

    Intel UHD Graphics 630:

      Chipset Model: Intel UHD Graphics 630
      Type: GPU
      Bus: Built-In
      VRAM (Dynamic, Max): 1536 MB
      Vendor: Intel
      Device ID: 0x3e9b
      Revision ID: 0x0002
      Automatic Graphics Switching: Supported
      gMux Version: 5.0.0
      Metal Family: Supported, Metal GPUFamily macOS 2

    Radeon Pro Vega 20:

      Chipset Model: Radeon Pro Vega 20
      Type: GPU
      Bus: PCIe
      PCIe Lane Width: x8
      VRAM (Total): 4 GB
      Vendor: AMD (0x1002)
      Device ID: 0x69af
      Revision ID: 0x00c0
      ROM Revision: 113-D2060I-087
      VBIOS Version: 113-D20601MA0T-016
      Option ROM Version: 113-D20601MA0T-016
      EFI Driver Version: 01.01.087
      Automatic Graphics Switching: Supported
      gMux Version: 5.0.0
      Metal Family: Supported, Metal GPUFamily macOS 2
      Displays:
        Color LCD:
          Display Type: Built-In Retina LCD
          Resolution: 2880 x 1800 Retina
          Framebuffer Depth: 24-Bit Color (ARGB8888)
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Automatically Adjust Brightness: Yes
          Connection Type: Internal

Locale: ('en_US', 'UTF-8')
PyQt5 5.15.2, Qt 5.15.2
Installed Packages:
    alabaster: 0.7.12
    appdirs: 1.4.4
    appnope: 0.1.2
    Babel: 2.9.1
    backcall: 0.2.0
    blockdiag: 2.0.1
    certifi: 2021.5.30
    cftime: 1.5.0
    charset-normalizer: 2.0.6
    ChimeraX-AddCharge: 1.1.4
    ChimeraX-AddH: 2.1.10
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.2.2
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.0.1
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.30.1
    ChimeraX-AtomicLibrary: 4.1.4
    ChimeraX-AtomSearch: 2.0
    ChimeraX-AtomSearchLibrary: 1.0
    ChimeraX-AxesPlanes: 2.0
    ChimeraX-BasicActions: 1.1
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.0
    ChimeraX-BondRot: 2.0
    ChimeraX-BugReporter: 1.0
    ChimeraX-BuildStructure: 2.6
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.1
    ChimeraX-ButtonPanel: 1.0
    ChimeraX-CageBuilder: 1.0
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.2
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.1
    ChimeraX-ColorActions: 1.0
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5
    ChimeraX-CommandLine: 1.1.5
    ChimeraX-ConnectStructure: 2.0
    ChimeraX-Contacts: 1.0
    ChimeraX-Core: 1.3.dev202109201808
    ChimeraX-CoreFormats: 1.1
    ChimeraX-coulombic: 1.3.1
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0
    ChimeraX-DataFormats: 1.2.1
    ChimeraX-Dicom: 1.0
    ChimeraX-DistMonitor: 1.1.5
    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.1
    ChimeraX-Hbonds: 2.1.1
    ChimeraX-Help: 1.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
    ChimeraX-Label: 1.1
    ChimeraX-ListInfo: 1.1.1
    ChimeraX-Log: 1.1.4
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.8.1
    ChimeraX-Map: 1.1
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1
    ChimeraX-Markers: 1.0
    ChimeraX-Mask: 1.0
    ChimeraX-MatchMaker: 2.0.1
    ChimeraX-MDcrds: 2.6
    ChimeraX-MedicalToolbar: 1.0.1
    ChimeraX-Meeting: 1.0
    ChimeraX-MLP: 1.1
    ChimeraX-mmCIF: 2.4
    ChimeraX-MMTF: 2.1
    ChimeraX-Modeller: 1.2
    ChimeraX-ModelPanel: 1.2
    ChimeraX-ModelSeries: 1.0
    ChimeraX-Mol2: 2.0
    ChimeraX-Morph: 1.0
    ChimeraX-MouseModes: 1.1
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nucleotides: 2.0.2
    ChimeraX-OpenCommand: 1.7
    ChimeraX-PDB: 2.6.2
    ChimeraX-PDBBio: 1.0
    ChimeraX-PDBLibrary: 1.0.1
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.0.1
    ChimeraX-PubChem: 2.1
    ChimeraX-ReadPbonds: 1.0
    ChimeraX-Registration: 1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-ResidueFit: 1.0
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.4.3
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0
    ChimeraX-Shortcuts: 1.1
    ChimeraX-ShowAttr: 1.0
    ChimeraX-ShowSequences: 1.0
    ChimeraX-SideView: 1.0
    ChimeraX-Smiles: 2.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.6
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-Struts: 1.0
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0
    ChimeraX-SwapRes: 2.1
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1
    ChimeraX-ToolshedUtils: 1.2
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.13
    ChimeraX-uniprot: 2.2
    ChimeraX-UnitCell: 1.0
    ChimeraX-ViewDockX: 1.0.1
    ChimeraX-VIPERdb: 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.4
    cxservices: 1.1
    cycler: 0.10.0
    Cython: 0.29.24
    decorator: 5.1.0
    distlib: 0.3.2
    docutils: 0.17.1
    filelock: 3.0.12
    funcparserlib: 0.3.6
    grako: 3.16.5
    h5py: 3.4.0
    html2text: 2020.1.16
    idna: 3.2
    ihm: 0.21
    imagecodecs: 2021.4.28
    imagesize: 1.2.0
    ipykernel: 5.5.5
    ipython: 7.23.1
    ipython-genutils: 0.2.0
    jedi: 0.18.0
    Jinja2: 3.0.1
    jupyter-client: 6.1.12
    jupyter-core: 4.8.1
    kiwisolver: 1.3.2
    lxml: 4.6.3
    lz4: 3.1.3
    MarkupSafe: 2.0.1
    matplotlib: 3.4.3
    matplotlib-inline: 0.1.3
    msgpack: 1.0.2
    netCDF4: 1.5.7
    networkx: 2.6.3
    numexpr: 2.7.3
    numpy: 1.21.2
    openvr: 1.16.801
    packaging: 21.0
    pandas: 1.3.2
    ParmEd: 3.2.0
    parso: 0.8.2
    pexpect: 4.8.0
    pickleshare: 0.7.5
    Pillow: 8.3.2
    pip: 21.2.4
    pkginfo: 1.7.1
    prompt-toolkit: 3.0.20
    psutil: 5.8.0
    ptyprocess: 0.7.0
    pycollada: 0.7.1
    pydicom: 2.1.2
    Pygments: 2.10.0
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 2.4.7
    PyQt5: 5.15.2
    PyQt5-sip: 12.8.1
    PyQtWebEngine: 5.15.2
    python-dateutil: 2.8.2
    pytz: 2021.1
    pyzmq: 22.3.0
    qtconsole: 5.1.1
    QtPy: 1.11.1
    RandomWords: 0.3.0
    requests: 2.26.0
    scipy: 1.7.1
    setuptools: 57.5.0
    sfftk-rw: 0.7.1
    six: 1.16.0
    snowballstemmer: 2.1.0
    sortedcontainers: 2.4.0
    Sphinx: 4.2.0
    sphinx-autodoc-typehints: 1.12.0
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 2.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 2.0.0
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.5
    suds-jurko: 0.6
    tifffile: 2021.4.8
    tinyarray: 1.2.3
    tornado: 6.1
    traitlets: 5.1.0
    urllib3: 1.26.6
    wcwidth: 0.2.5
    webcolors: 1.11.1
    wheel: 0.37.0
    wheel-filename: 1.3.0

Attachments (1)

command-file.cxc (1.8 KB ) - added by Tom Goddard 4 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 by Tom Goddard, 4 years ago

Component: UnassignedGraphics
Owner: set to Tom Goddard
Platform: all
Project: ChimeraX
Reporter: changed from goddard@… to guillaume.gaullier@…
Status: newassigned
Summary: ChimeraX bug report submissioncrossfade command incorrectly starts from solid black when file history thumbnails shown

Begin forwarded message:

From: Guillaume Gaullier via ChimeraX-users <chimerax-users@…>
Subject: [chimerax-users] crossfade command not working from a command file
Date: September 29, 2021 at 2:02:21 AM PDT
To: ChimeraX Users Help <chimerax-users@…>
Reply-To: Guillaume Gaullier

Hello,

I am using ChimeraX version 1.2.5 (2021-05-24) on macOS 10.15.7. When trying to generate a simple movie with the attached command file, I get the attached wrong result in which the crossfade command seems to fail (instead of a smooth transition, I only get a flashing black screen for a few frames). A similar problem happens with the same version of ChimeraX on Rocky Linux 8.4.

Instead of loading the command file from a fresh session (with 'open command-file.cxc'), I tried to prepare my models first, and then sent the commands generating the movie all at once (separated by semi-colons). When I did it this way, I got the correct result (also attached).

Is there anything I am doing wrong, or is this a bug? I am pretty sure the command file version worked correctly in a previous version of ChimeraX, because I have done this before. Unfortunately, I don’t remember which version it was (but probably 1.1, since it was just last year).

I would appreciate any help with this.
Thank you in advance,

Guillaume

by Tom Goddard, 4 years ago

Attachment: command-file.cxc added

comment:2 by Tom Goddard, 4 years ago

ChimeraX does request the graphics pane to be shown as soon as the first model is opened by the script. It is setting the graphics as the current widget of a QStackedWidget but the Qt window toolkit is not actually displaying it until the Qt event loop runs after the script has completed.

Not sure how to remedy this. We definitely don't want to run the Qt event loop since that can trigger all kinds of events that code that simply opened a model would not expect.

comment:3 by Tom Goddard, 4 years ago

Also definitely don't want to run the event loop when recording a movie for example when the crossfade command runs, because that is likely to insert extra renderings as the graphics redraw timer goes of during the event loop. In general the code should never manually run the event loop as it creates extremely hard to debug issues.

Could warn if the crossfade command is run without the graphics shown. But ChimeraX would report the graphics is shown since it requested it to be shown. Only Qt has not actually shown it yet. We could probably remedy that asking if the graphics pane is mapped. The fact that the graphics is not captured when file thumbnails are showing is an implementation detail -- an optimization being done by the operating system or graphics driver.

Seems like the Qt event loop must run to fix this problem, but the event loop cannot be safely run in the middle of a script. So I see no way to fix it. Looks like having crossfade issue a warning that it may not work is the best that can be done.

comment:4 by Tom Goddard, 4 years ago

The QWindow and QWidget isVisible() methods report the graphics pane is shown after request showing it but before it is actually shown. So it appears it is more complicated to know whether the graphics has been shown -- probably need to detect the Qt show and hide events. Detecting show and hide events did not work -- the QEvent.Show event is sent even though the window has apparently not been mapped to the screen by the native windowing system. Qt documentation says the show event means "Widget was shown on screen". Seems like it may be a Mac Qt bug (not surprising). So there may be no way to learn from the Qt Window toolkit if the graphics window is shown.

comment:5 by Tom Goddard, 4 years ago

Resolution: fixed
Status: assignedclosed

Fixed.

The crossfade command was using the rendering to the graphics window. I changed it so it used the rendering saved by movie recording if a movie recording is in progress. This has the added benefit that the crossfade uses the movie resolution which may be higher than the screen resolution.

Note: See TracTickets for help on using tickets.