Opened 5 years ago

Closed 4 years ago

#3373 closed defect (fixed)

Opening large RNA takes 90 seconds instead of 2 seconds due to nucleotide styling

Reported by: goddard@… Owned by: Greg Couch
Priority: normal Milestone:
Component: Performance Version:
Keywords: Cc: pett, Elaine Meng
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description (last modified by Tom Goddard)

The following bug report has been submitted:
Platform:        Darwin-19.4.0-x86_64-i386-64bit
ChimeraX Version: 1.1.dev202006052309 (2020-06-05 23:09:04 UTC)
Description
Opening a large single chain mmCIF RNA is extremely slow, takes 90 seconds because it computes nucleotide display style.  Opening the same file with open option "autoStyle false" takes 2 seconds.

The smart initial display for nucleotides should be changed to only use nucleotide style if there are fewer than 500 residues, or some number of residues that does not increase the open time by more than a factor of 2.

Log:
UCSF ChimeraX version: 1.1.dev202006052309 (2020-06-05)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> time open ~/Desktop/sarscov2_rna.cif autoStyle false

> open /Users/goddard/Desktop/sarscov2_rna.cif autoStyle false

Summary of feedback from opening /Users/goddard/Desktop/sarscov2_rna.cif  
---  
warnings | Unknown polymer entity '1' near line 95  
Missing or incomplete entity_poly_seq table. Inferred polymer connectivity.  
  
Chain information for sarscov2_rna.cif #1  
---  
Chain | Description  
I | ?  
  
command time 2.199 seconds  
draw time 0.05448 seconds  

> close

> time open ~/Desktop/sarscov2_rna.cif

> open /Users/goddard/Desktop/sarscov2_rna.cif

Summary of feedback from opening /Users/goddard/Desktop/sarscov2_rna.cif  
---  
warnings | Unknown polymer entity '1' near line 95  
Missing or incomplete entity_poly_seq table. Inferred polymer connectivity.  
  
Chain information for sarscov2_rna.cif #1  
---  
Chain | Description  
I | ?  
  
command time 4.379 seconds  
draw time 90.19 seconds  




OpenGL version: 4.1 ATI-3.8.24
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
      Boot ROM Version: 1037.100.362.0.0 (iBridge: 17.16.14281.0.0,0)

Software:

    System Software Overview:

      System Version: macOS 10.15.4 (19E287)
      Kernel Version: Darwin 19.4.0
      Time since boot: 27 days 21:47

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: Supported, feature set macOS GPUFamily2 v1

    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: Supported, feature set macOS GPUFamily2 v1
      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: No
          Connection Type: Internal

PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.8

Attachments (1)

sarscov2_rna.cif (50.1 MB ) - added by Tom Goddard 4 years ago.

Change History (6)

comment:1 by Tom Goddard, 5 years ago

Component: UnassignedPerformance
Description: modified (diff)
Owner: set to Greg Couch
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionOpening large RNA takes 90 seconds instead of 2 seconds due to nucleotide styling

comment:2 by Greg Couch, 4 years ago

Do you still have the sarscov2_rna.cif file? I'd like to test any changes. Nucleotides is faster now, but there should still be a limit.

by Tom Goddard, 4 years ago

Attachment: sarscov2_rna.cif added

comment:3 by Tom Goddard, 4 years ago

Attached the large RNA cif file. Took 90 seconds to open in current ChimeraX daily. With autostyling off it took 2 seconds to open.

time open ~/ucsf/presentations/sars-rna-may2020/sarscov2_rna.cif
command time 3.91 seconds
draw time 86.31 seconds

time open ~/ucsf/presentations/sars-rna-may2020/sarscov2_rna.cif autostyle false
command time 2.078 seconds
draw time 0.06967 seconds

comment:4 by Greg Couch, 4 years ago

13.3/275.6 and 6.588/0.354 seconds on my system.

comment:5 by Greg Couch, 4 years ago

Cc: pett Elaine Meng added
Resolution: fixed
Status: assignedclosed

Added a bunch of "tunable" thresholds to auto-styling to prevent extreme slowdowns:

SMALL_THRESHOLD = 200_000       # not a small polymer if more than threshold atoms
MEDIUM_THRESHOLD = 1_000_000    # not a medium polymer if more than threshold atoms
MIN_RIBBON_THRESHOLD = 10       # skip ribbons if less than threshold ribbonable residues
MAX_RIBBON_THRESHOLD = 5000     # skip ribbons if more than threshold ribbonable residues
SLAB_THRESHOLD = 100            # skip slab nucleotide styling if more than threshold residues
LADDER_THRESHOLD = 2000         # skip ladder nucleotide styling if more than threshold residues

Feel free to adjust the values. Ideally, these thresholds would be settable by running a mini-benchmark program on the users computer.

Note: See TracTickets for help on using tickets.