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: | 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)
Change History (6)
comment:1 by , 4 years ago
Component: | Unassigned → Graphics |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Reporter: | changed from | to
Status: | new → assigned |
Summary: | ChimeraX bug report submission → crossfade command incorrectly starts from solid black when file history thumbnails shown |
by , 4 years ago
Attachment: | command-file.cxc added |
---|
comment:2 by , 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 , 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 , 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 , 4 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
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.
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