Opened 5 years ago
Last modified 5 years ago
#3126 assigned defect
Nucleotide stub takes 10 minutes to display for ribosome
Reported by: | Owned by: | Greg Couch | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Performance | Version: | |
Keywords: | Cc: | pett | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
The following bug report has been submitted: Platform: Darwin-19.4.0-x86_64-i386-64bit ChimeraX Version: 0.94 (2020-04-16) Description Took approximately 20 minutes to show nucleotide stubs for 4v9d. This is nearly as bad as a crash since no one will wait 20 minutes. Since a primary strength of ChimeraX is fast handling of large structures and ribosome structures are very common this is a serious problem. If the code cannot be optimized it might be best to have nucleotides show a warning if requested on more than 1000 residues and not change the style unless a "noWarn true" option is given. Log: UCSF ChimeraX version: 0.94.dev202004160103 (2020-04-16) © 2016-2020 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open 4v9d Summary of feedback from opening 4v9d fetched from pdb --- note | Fetching compressed mmCIF 4v9d from http://files.rcsb.org/download/4v9d.cif 4v9d title: Structures of the bacterial ribosome in classical and hybrid states of tRNA binding [more info...] Chain information for 4v9d #1 --- Chain | Description AA BA | 16S rRNA AB BB | 30S ribosomal protein S2 AC BC | 30S ribosomal protein S3 AD BD | 30S ribosomal protein S4 AE BE | 30S ribosomal protein S5 AF BF | 30S ribosomal protein S6 AG BG | 30S ribosomal protein S7 AH BH | 30S ribosomal protein S8 AI BI | 30S ribosomal protein S9 AJ BJ | 30S ribosomal protein S10 AK BK | 30S ribosomal protein S11 AL BL | 30S ribosomal protein S12 AM BM | 30S ribosomal protein S13 AN BN | 30S ribosomal protein S14 AO BO | 30S ribosomal protein S15 AP BP | 30S ribosomal protein S16 AQ BQ | 30S ribosomal protein S17 AR BR | 30S ribosomal protein S18 AS BS | 30S ribosomal protein S19 AT BT | 30S ribosomal protein S20 AU BU | 30S ribosomal protein S21 AV BV | phenylalanine specific transfer RNA AX BX | messenger RNA AY | ribosome recycling factor C0 D0 | 50S ribosomal protein L32 C1 D1 | 50S ribosomal protein L33 C2 D2 | 50S ribosomal protein L34 C3 D3 | 50S ribosomal protein L35 C4 D4 | 50S ribosomal protein L36 CA DA | 23S rRNA CB | 5S rRNA CC DC | 50S ribosomal protein L2 CD DD | 50S ribosomal protein L3 CE DE | 50S ribosomal protein L4 CF DF | 50S ribosomal protein L5 CG DG | 50S ribosomal protein L6 CH DH | 50S ribosomal protein L9 CI DI | 50S ribosomal protein L11 CJ DJ | 50S ribosomal protein L13 CK DK | 50S ribosomal protein L14 CL DL | 50S ribosomal protein L15 CM DM | 50S ribosomal protein L16 CN DN | 50S ribosomal protein L17 CO DO | 50S ribosomal protein L18 CP DP | 50S ribosomal protein L19 CQ DQ | 50S ribosomal protein L20 CR DR | 50S ribosomal protein L21 CS DS | 50S ribosomal protein L22 CT DT | 50S ribosomal protein L23 CU DU | 50S ribosomal protein L24 CV DV | 50S ribosomal protein L25 CW | 50S ribosomal protein L27 CX DX | 50S ribosomal protein L28 CY DY | 50S ribosomal protein L29 CZ DZ | 50S ribosomal protein L30 DB | 5S rRNA DW | 50S ribosomal protein L27 Non-standard residues in 4v9d #1 --- MG — magnesium ion ZN — zinc ion 4v9d mmCIF Assemblies --- 1| author_defined_assembly 2| author_defined_assembly > hide atoms > show cartoons > nucleotides slab > style nucleic stick Changed 199371 atom styles > nucleotides stubs > show atoms OpenGL version: 4.1 ATI-3.8.24 OpenGL renderer: AMD Radeon Pro Vega 20 OpenGL Engine OpenGL vendor: ATI Technologies Inc.
Change History (8)
comment:1 by , 5 years ago
Component: | Unassigned → Performance |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Nucleotide stub takes 20 minutes to display for ribosome |
comment:2 by , 5 years ago
Cc: | added |
---|
comment:3 by , 5 years ago
Also, if the H-bonds calculation was informed that it should only be finding base-pair H-bonds, it could be seriously optimized for that case. Cutting down on the the other 19.5 minutes that nucleotides is taking would probably be the first priority though.
comment:4 by , 5 years ago
Summary: | Nucleotide stub takes 20 minutes to display for ribosome → Nucleotide stub takes 10 minutes to display for ribosome |
---|
I tested again and it took 9.5 minutes not 20 minutes. When I first reported the bug I relied on the CPU time of ChimeraX to get 20 minutes, but interestingly it reports 300% CPU utilization when making the stub depiction, not sure how that is parallelized.
Still takes so long people will probably just kill ChimeraX having no idea when it might unhang itself.
comment:5 by , 5 years ago
Unlike Chimera, ChimeraX's nucleotides never does H-bond calculations. It uses existing H-bonds to figure out ladders.
comment:6 by , 5 years ago
Partially fixed. Switched to using the add_shapes API, and went from 2148 to 90 seconds for showing stubs for a 24X speed up. Oddly, Windows shows the CPU utilization as ~3.5% in both cases.
comment:7 by , 5 years ago
With your new code it now takes 28 seconds to show nucleotide stubs on my machine. But the nucleotide display is unusable since now every change in display takes 28 seconds, "hide protein", "show cartoon", "hide /BA", .... all these take under a second without stubs shown and 28 seconds with stubs shown.
This is especially bad because the user will probably not realize that everything is slow because of nucleotide display, so they won't know how to get it working fast (turn off nucleotides). If this can not be improved in the short term (months) then perhaps the nucleotides command can log a warning if nucleotides are shown for more than 1000 residues, or whatever the number it can handle without degrading performance by more than factor of 2. "Warning: nucleotide display on 5345 residues will make changing what is shown very slow".
comment:8 by , 5 years ago
You say Windows shows 3.5% CPU utilization when computing nucleotides. On macOS it shows 300% CPU utilization.
I know nucleotides relies on an H-bonds computation to do it's work, so it will probably never be super fast. Nonetheless, the H-bonds computation takes 36.5 seconds on this structure, so there's still a lot of room for improvement!