#4358 closed defect (fixed)
mmCIF selectedOnly very slow
| Reported by: | Tristan Croll | Owned by: | Greg Couch |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Performance | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Linux-3.10.0-1127.19.1.el7.x86_64-x86_64-with-glibc2.14
ChimeraX Version: 1.2.dev202103090320 (2021-03-09 03:20:00 UTC)
Description
"save xxx.cif selectedOnly true" (my usual go-to approach for saving a model without hydrogens for refinement) gets *really* slow for large models. For 7ajt (after adding hydrogens), running the command with everything other than hydrogen selected takes almost an hour. In the shell:
from chimerax.core.commands import run
%prun run(session, 'save test_noh.cif #1 sel t')
... yields the output below.
206774008 function calls (206769253 primitive calls) in 3077.020 seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
31272 2584.652 0.083 2595.328 0.083 mmcif_write.py:516(atom_site_residue)
1 356.847 356.847 3084.345 3084.345 mmcif_write.py:244(save_structure)
21794891 30.033 0.000 71.504 0.000 ctypes_support.py:44(residue)
5095020 15.054 0.000 19.381 0.000 mmcif.py:392(quote)
31004 14.675 0.000 86.234 0.003 molobject.py:1135(res_map)
22006226/22006223 11.854 0.000 16.681 0.000 <frozen importlib._bootstrap>:1017(_handle_fromlist)
21913217 11.400 0.000 16.618 0.000 <frozen importlib._bootstrap>:389(parent)
14 9.924 0.709 10.772 0.769 utils.py:25(flattened)
21913233 5.218 0.000 5.218 0.000 {method 'rpartition' of 'str' objects}
32574903 4.113 0.000 4.113 0.000 {built-in method builtins.isinstance}
24007215 3.592 0.000 3.592 0.000 {built-in method builtins.hasattr}
2000488 2.997 0.000 12.256 0.000 molarray.py:146(__iter__)
256180 2.822 0.000 2.822 0.000 mmcif_write.py:545(<listcomp>)
25298079/25296335 2.746 0.000 2.747 0.000 {built-in method builtins.len}
15 1.737 0.116 21.117 1.408 mmcif.py:1028(<listcomp>)
31378 1.663 0.000 6.435 0.000 molarray.py:150(<listcomp>)
1705421 1.616 0.000 1.616 0.000 {chimerax.atomic.cymol.c_ptr_to_py_inst}
1052181 1.440 0.000 1.673 0.000 molc.py:27(c_function)
Log:
> alias preview_toolshed toolshed url https://cxtoolshed-
> preview.rbvi.ucsf.edu; toolshed reload available
> alias production_toolshed toolshed url https://cxtoolshed.rbvi.ucsf.edu;
> toolshed reload available
> alias st isolde step $*
> alias aw isolde add water $*
> alias awsf isolde add water sim false
> alias al isolde add ligand $*
> alias so setattr sel atoms occupancy $*
UCSF ChimeraX version: 1.2.dev202103090320 (2021-03-09)
© 2016-2020 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> open 7ajt
Summary of feedback from opening 7ajt fetched from pdb
---
note | Fetching compressed mmCIF 7ajt from
http://files.rcsb.org/download/7ajt.cif
7ajt title:
Cryo-EM structure of the 90S-exosome super-complex (state Pre-A1-exosome)
[more info...]
Chain information for 7ajt #1
---
Chain | Description
CA CB | rRNA 2'-O-methyltransferase fibrillarin
CD | Nucleolar protein 56
CE | Nucleolar protein 58
CF CG | 13 kDa ribonucleoprotein-associated protein
CH | Ribosomal RNA-processing protein 9
CI | U3 small nucleolar ribonucleoprotein protein IMP3
CJ | U3 small nucleolar ribonucleoprotein protein IMP4
CK | U3 small nucleolar RNA-associated protein MPP10
CL | Ribosome biogenesis protein BMS1
CM | RNA 3'-terminal phosphate cyclase-like protein
CN | Ribosomal RNA-processing protein 7
D2 | 5'ets RNA
D3 | 18S rRNA
D4 | U3 snoRNA
DA | 40S ribosomal protein S1-A
DE | 40S ribosomal protein S4-A
DF | 40S ribosomal protein S5
DG | 40S ribosomal protein S6-A
DH | 40S ribosomal protein S7-A
DI | 40S ribosomal protein S8-A
DJ | 40S ribosomal protein S9-A
DL | 40S ribosomal protein S11-A
DN | 40S ribosomal protein S13
DO | 40S ribosomal protein S14-A
DQ | 40S ribosomal protein S16-A
DS | 40S ribosomal protein S18-A
DW | 40S ribosomal protein S22-A
DX | 40S ribosomal protein S23-A
DY | 40S ribosomal protein S24-A
Db | 40S ribosomal protein S27-A
Dc | 40S ribosomal protein S28-A
EA | RNA
EB | Exosome complex component RRP45
EC | Exosome complex component SKI6
ED | Exosome complex component RRP43
EE | Exosome complex component RRP46
EF | Exosome complex component RRP42
EG | Exosome complex component MTR3
EH | Exosome complex component RRP40
EI | Exosome complex component RRP4
EJ | Exosome complex component CSL4
EK | Exosome complex exonuclease DIS3
EN | ATP-dependent RNA helicase DOB1
JA JB | RNA cytidine acetyltransferase
JC | Ribosome biogenesis protein ENP2
JF JG | Ribosomal RNA small subunit methyltransferase NEP1
JH | Essential nuclear protein 1
JI | rRNA biogenesis protein RRP5
JJ | Pre-rRNA-processing protein PNO1
JK | Protein BFR2
JM | rRNA-processing protein FCF2
JN | Protein FAF1
JO | KRR1 small subunit processome component
JP | Protein SOF1
JQ | Regulator of rDNA transcription protein 14
UA | Periodic tryptophan protein 2
UB | Nucleolar complex protein 14
UC | Something about silencing protein 10
UD | U3 small nucleolar RNA-associated protein 4
UE | U3 small nucleolar RNA-associated protein 5
UF | U3 small nucleolar RNA-associated protein 6
UG | U3 small nucleolar RNA-associated protein 7
UH | U3 small nucleolar RNA-associated protein 8
UI | U3 small nucleolar RNA-associated protein 9
UJ | U3 small nucleolar RNA-associated protein 10
UK | U3 small nucleolar RNA-associated protein 11
UL | U3 small nucleolar RNA-associated protein 12
UM | U3 small nucleolar RNA-associated protein 13
UN | U3 small nucleolar RNA-associated protein 14
UO | U3 small nucleolar RNA-associated protein 15
UP | Bud site selection protein 21
UQ | NET1-associated nuclear protein 1
UR | U3 small nucleolar RNA-associated protein 18
US | Nucleolar complex protein 4
UT | U3 small nucleolar RNA-associated protein 20
UU | U3 small nucleolar RNA-associated protein 21
UV | U3 small nucleolar RNA-associated protein 22
UX | rRNA-processing protein FCF1
UZ | Ribosome biogenesis protein UTP30
Non-standard residues in 7ajt #1
---
GTP — guanosine-5'-triphosphate
MG — magnesium ion
ZN — zinc ion
> addh
Summary of feedback from adding hydrogens to 7ajt #1
---
warnings | Not adding hydrogens to /JA LYS 222 CB because it is missing heavy-
atom bond partners
Not adding hydrogens to /JA GLU 223 CB because it is missing heavy-atom bond
partners
Not adding hydrogens to /JA ASP 224 CB because it is missing heavy-atom bond
partners
Not adding hydrogens to /JA ASP 225 CB because it is missing heavy-atom bond
partners
Not adding hydrogens to /JA GLU 226 CB because it is missing heavy-atom bond
partners
6406 messages similar to the above omitted
282 atoms were skipped as donors/acceptors due to missing heavy-atom bond
partners
notes | Termini for 7ajt (#1) chain CA determined from SEQRES records
Termini for 7ajt (#1) chain DA determined from SEQRES records
Termini for 7ajt (#1) chain JA determined from SEQRES records
Termini for 7ajt (#1) chain UA determined from SEQRES records
Termini for 7ajt (#1) chain CB determined from SEQRES records
78 messages similar to the above omitted
Chain-initial residues that are actual N termini: /US MET 1, /CJ MET 1, /JP
MET 1, /DG MET 1, /D2 A 1, /D3 A -7, /D4 G 1, /EA A 157, /EC MET 1, /EE MET 1,
/EF GLY -1, /EH MET 1
Chain-initial residues that are not actual N termini: /CA ALA 80, /CA VAL 134,
/DA ALA 2, /DA GLU 238, /JA ALA 2, /JA PHE 350, /JA LEU 465, /JA GLY 611, /JA
THR 704, /UA LYS 2, /UA LYS 245, /CB LYS 85, /CB LYS 138, /JB ALA 2, /JB LEU
465, /JB GLY 611, /JB THR 704, /UB PRO 201, /UB THR 264, /UB ARG 382, /UB GLU
420, /UB PRO 585, /UB ASP 731, /UC THR 431, /UC ASP 493, /UD GLU 29, /UD ASN
413, /UD PRO 508, /UD GLU 608, /UD GLY 678, /UD HIS 731, /UE SER 3, /UE TRP
46, /UE ASP 72, /UE GLY 269, /UE THR 434, /UF SER 2, /UF ALA 264, /UF SER 296,
/UF GLU 330, /UF PRO 356, /UG LYS 13, /UG GLN 36, /UH ASP 27, /UH SER 50, /UH
ALA 85, /UH LEU 120, /UH ASP 153, /UH PRO 520, /UH PRO 548, /UH SER 631, /UH
ALA 712, /UI TRP 411, /UI HIS 429, /UJ SER 2, /UJ GLY 488, /UJ ARG 522, /UJ
LYS 1348, /UJ PHE 1369, /UJ ASN 1390, /UJ ASN 1418, /UJ SER 1434, /UJ LEU
1450, /UJ ASP 1470, /UJ SER 1492, /UJ ILE 1566, /UK ALA 2, /UK ASN 180, /UL
TYR 5, /UL PRO 38, /UL LYS 268, /UL GLU 311, /UL LEU 520, /UL SER 745, /UL ILE
786, /UM TYR 7, /UM LEU 209, /UM ASP 325, /UM PRO 378, /UM THR 486, /UM GLU
717, /UN GLN 276, /UN GLN 827, /UO SER 2, /UO LYS 353, /UP ILE 155, /UQ GLN 9,
/UQ ALA 104, /UQ ASN 166, /UQ VAL 734, /UQ ASN 818, /UQ ASN 846, /UR PRO 13,
/UR GLU 122, /UR ASN 202, /UR SER 334, /US LYS 22, /US ASN 145, /UT GLN 4, /UT
GLN 355, /UT ASN 535, /UT SER 822, /UT ASP 1191, /UT GLN 1458, /UT ARG 1501,
/UT ASN 1584, /UT GLU 1841, /UT ASN 2154, /UT GLU 2175, /UT GLN 2202, /UT GLY
2227, /UT HIS 2243, /UT ASN 2270, /UT GLU 2291, /UT ILE 2333, /UT SER 2353,
/UT GLU 2373, /UT GLU 2381, /UT GLU 2404, /UU LYS 19, /UU LEU 702, /UU GLY
812, /UV PHE 98, /UV ASP 282, /UV LEU 326, /UV PRO 453, /UV GLU 1010, /UV ALA
1128, /UX THR 7, /UX THR 41, /UZ GLY 11, /CD PRO 3, /CD LYS 370, /CE ALA 2,
/CE LYS 21, /CF PRO 4, /CG ALA 3, /CH GLU 57, /CH ASP 115, /CH PRO 394, /CI
VAL 2, /CJ GLN 72, /CK LYS 295, /CK ALA 425, /CL PRO 36, /CL LEU 353, /CL ASN
548, /CL VAL 606, /CL ASP 748, /CM LYS 7, /CN ILE 3, /CN ALA 32, /CN PRO 120,
/CN LYS 252, /JC LYS 4, /JC VAL 47, /JF PRO 29, /JF ASP 63, /JG GLN 16, /JG
ASP 63, /JH ALA 205, /JH GLY 403, /JI ALA 1457, /JJ LYS 93, /JK SER 459, /JM
SER 50, /JM ASN 101, /JM SER 171, /JN LYS 91, /JN GLY 101, /JN ASN 148, /JN
ILE 195, /JO GLU 38, /JO VAL 247, /JP ASN 168, /JQ ARG 112, /JQ PHE 178, /DE
ALA 2, /DF ASP 13, /DH PRO 4, /DI GLY 2, /DI ARG 146, /DJ PRO 2, /DL THR 6,
/DN GLY 2, /DO SER 11, /DQ ALA 3, /DS SER 2, /DS PHE 11, /DS HIS 99, /DW THR
2, /DX PRO 42, /DY SER 2, /Db VAL 2, /Dc THR 5, /D2 G 56, /D2 A 80, /D2 C 422,
/D3 A 22, /D3 C 139, /D3 A 182, /D3 U 205, /D3 U 229, /D3 U 242, /D3 G 624,
/D3 G 676, /D3 U 744, /D3 U 790, /D3 G 816, /D3 A 859, /D3 A 1025, /D3 G 1111,
/D3 A 1202, /D3 U 1258, /D3 G 1433, /D3 G 1448, /D3 C 1461, /D3 A 1524, /D3 G
1540, /D3 A 1569, /D3 A 1721, /D3 G 1768, /D4 G 111, /D4 U 137, /D4 U 197, /D4
U 245, /D4 A 263, /D4 U 304, /EB LYS 3, /ED GLU 8, /ED GLU 121, /ED LYS 206,
/ED TYR 272, /ED LEU 326, /EG GLN 4, /EG GLU 41, /EG SER 163, /EI SER 2, /EI
SER 50, /EI SER 276, /EJ PRO 8, /EJ THR 102, /EJ ASN 126, /EJ ALA 186, /EK ARG
9, /EK THR 249, /EK ASN 361, /EN MET 80, /EN GLY 392
Chain-final residues that are actual C termini: /UC ASN 610, /UD PHE 776, /UG
GLY 554, /UH ILE 723, /UJ ASP 1769, /UK ARG 250, /UL ILE 943, /UM PHE 817, /UN
LYS 899, /UP GLY 214, /UQ THR 896, /UR TYR 594, /UU ALA 939, /UV ASP 1237, /UX
PHE 189, /CF ILE 126, /CI SER 183, /CJ LEU 290, /JJ TYR 274, /DF ARG 225, /DI
LYS 200, /DN ASN 151, /DW TYR 130, /DY ASP 135, /Db LYS 82, /Dc ARG 67, /D4 U
333, /EA U 178, /ED ILE 394, /EE VAL 223, /EF LEU 265, /EK LYS 1001, /EN LEU
1073
Chain-final residues that are not actual C termini: /CA PRO 128, /CA LYS 326,
/DA GLY 233, /DA THR 245, /JA PHE 326, /JA ARG 431, /JA SER 595, /JA GLY 663,
/JA PHE 924, /UA ARG 223, /UA MET 856, /CB VAL 125, /CB GLY 324, /JB ARG 431,
/JB SER 595, /JB GLY 663, /JB PHE 924, /UB MET 252, /UB GLY 316, /UB LEU 414,
/UB GLU 578, /UB GLU 718, /UB ARG 806, /UC ILE 440, /UD GLY 405, /UD LEU 500,
/UD SER 600, /UD ASN 666, /UD ASN 689, /UE ARG 36, /UE ASN 67, /UE SER 262,
/UE VAL 372, /UE LEU 557, /UF ASN 207, /UF LYS 290, /UF PHE 323, /UF ASN 344,
/UF ARG 372, /UG TYR 26, /UH ALA 32, /UH GLY 83, /UH ALA 93, /UH LEU 147, /UH
VAL 358, /UH ARG 545, /UH GLY 617, /UH THR 681, /UI VAL 427, /UI ASP 515, /UJ
LEU 424, /UJ GLY 503, /UJ GLN 808, /UJ LYS 1365, /UJ SER 1388, /UJ ARG 1410,
/UJ SER 1429, /UJ ILE 1448, /UJ ILE 1465, /UJ ASN 1487, /UJ ASP 1557, /UK ALA
172, /UL ALA 28, /UL ASN 264, /UL GLU 305, /UL VAL 504, /UL THR 687, /UL GLN
777, /UM VAL 201, /UM GLU 317, /UM PRO 368, /UM ILE 468, /UM SER 707, /UN SER
349, /UO LYS 334, /UO THR 512, /UQ GLN 101, /UQ ASP 159, /UQ ASP 730, /UQ THR
788, /UQ LEU 829, /UR ILE 45, /UR SER 184, /UR LEU 326, /US LYS 13, /US PHE
134, /US SER 512, /UT GLU 348, /UT LYS 528, /UT PHE 804, /UT LEU 1189, /UT LEU
1441, /UT SER 1495, /UT ARG 1563, /UT SER 1825, /UT LEU 2149, /UT SER 2171,
/UT THR 2195, /UT THR 2220, /UT TYR 2241, /UT LYS 2261, /UT PRO 2287, /UT ARG
2312, /UT SER 2346, /UT VAL 2370, /UT GLU 2379, /UT TYR 2390, /UT LEU 2417,
/UU PHE 673, /UU LYS 766, /UV LYS 274, /UV ILE 317, /UV ASN 445, /UV GLU 983,
/UV SER 1116, /UX ASN 31, /UZ PHE 257, /CD LEU 336, /CD TYR 415, /CE ASP 19,
/CE ALA 437, /CG LEU 125, /CH THR 83, /CH GLU 375, /CH GLN 570, /CJ LYS 63,
/CK LEU 386, /CK ALA 539, /CL ARG 322, /CL GLY 376, /CL GLY 569, /CL LEU 636,
/CL ASN 1164, /CM ILE 366, /CN PRO 27, /CN SER 105, /CN LYS 233, /CN ILE 270,
/JC LEU 37, /JC LYS 366, /JF ILE 55, /JF ILE 251, /JG SER 56, /JG ILE 251, /JH
ASP 401, /JH ARG 466, /JI SER 1721, /JK GLN 500, /JM SER 84, /JM GLU 154, /JM
ARG 216, /JN ARG 98, /JN SER 119, /JN ASN 170, /JN SER 330, /JO PRO 225, /JO
GLN 288, /JP ASN 159, /JP GLU 469, /JQ LYS 148, /JQ SER 203, /DE LEU 246, /DG
GLU 218, /DH SER 187, /DI LYS 123, /DJ GLU 186, /DL ALA 145, /DO GLY 130, /DQ
LYS 127, /DS GLU 7, /DS ASN 87, /DS ILE 119, /DX ARG 144, /D2 U 24, /D2 A 70,
/D2 C 418, /D2 G 489, /D3 C 18, /D3 G 127, /D3 U 177, /D3 U 203, /D3 U 216,
/D3 U 240, /D3 U 603, /D3 C 658, /D3 U 695, /D3 A 788, /D3 G 810, /D3 A 855,
/D3 G 976, /D3 A 1084, /D3 G 1179, /D3 A 1226, /D3 U 1276, /D3 U 1443, /D3 G
1454, /D3 A 1516, /D3 G 1534, /D3 G 1542, /D3 A 1719, /D3 A 1754, /D3 A 1790,
/D4 C 106, /D4 A 118, /D4 U 191, /D4 C 206, /D4 U 260, /D4 A 267, /EB ASN 301,
/EC SER 244, /ED THR 99, /ED LEU 193, /ED ASP 249, /ED ASN 310, /EG THR 23,
/EG ASN 149, /EG GLN 248, /EH VAL 237, /EI SER 17, /EI THR 245, /EI GLY 356,
/EJ ASP 73, /EJ THR 114, /EJ PRO 162, /EJ PRO 291, /EK MET 238, /EK ILE 347,
/EN SER 361
Missing OXT added to C-terminal residue /UC ASN 610
Missing OXT added to C-terminal residue /UD PHE 776
Missing OXT added to C-terminal residue /UG GLY 554
Missing OXT added to C-terminal residue /UH ILE 723
Missing OXT added to C-terminal residue /UJ ASP 1769
26 messages similar to the above omitted
24715 hydrogen bonds
Adding 'H' to /CA ALA 80
Adding 'H' to /CA VAL 134
Adding 'H' to /DA ALA 2
Adding 'H' to /DA GLU 238
Adding 'H' to /JA ALA 2
191 messages similar to the above omitted
/CA LYS 326 is not terminus, removing H atom from 'C'
/DA THR 245 is not terminus, removing H atom from 'C'
/JA PHE 924 is not terminus, removing H atom from 'C'
/UA MET 856 is not terminus, removing H atom from 'C'
/CB GLY 324 is not terminus, removing H atom from 'C'
43 messages similar to the above omitted
219182 hydrogens added
> ui tool show Shell
/opt/UCSF/ChimeraX-daily/lib/python3.8/site-
packages/IPython/core/history.py:226: UserWarning: IPython History requires
SQLite, your history will not be saved
warn("IPython History requires SQLite, your history will not be saved")
> select ~H
256172 atoms, 483712 bonds, 1739 pseudobonds, 31272 residues, 4 models
selected
> save test_noh.cif #1 selectedOnly true
OpenGL version: 3.3.0 NVIDIA 455.32.00
OpenGL renderer: TITAN Xp/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: Dell Inc.
Model: Precision T5600
OS: CentOS Linux 7 Core
Architecture: 64bit ELF
Virutal Machine: none
CPU: 32 Intel(R) Xeon(R) CPU E5-2687W 0 @ 3.10GHz
Cache Size: 20480 KB
Memory:
total used free shared buff/cache available
Mem: 62G 16G 28G 256M 17G 45G
Swap: 4.9G 0B 4.9G
Graphics:
03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [TITAN Xp] [10de:1b02] (rev a1)
Subsystem: NVIDIA Corporation Device [10de:11df]
Kernel driver in use: nvidia
Locale: ('en_GB', 'UTF-8')
PyQt5 5.15.2, Qt 5.15.2
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
Babel: 2.9.0
backcall: 0.2.0
blockdiag: 2.0.1
certifi: 2020.12.5
cftime: 1.4.1
chardet: 3.0.4
ChimeraX-AddCharge: 1.0
ChimeraX-AddH: 2.1.4
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.1
ChimeraX-AmberInfo: 1.0
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.11.2
ChimeraX-AtomicLibrary: 2.0
ChimeraX-AtomSearch: 2.0
ChimeraX-AtomSearchLibrary: 1.0
ChimeraX-AxesPlanes: 2.0
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 1.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.5
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.1
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.1
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.1
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-ColorKey: 1.1
ChimeraX-CommandLine: 1.1.3
ChimeraX-ConnectStructure: 2.0
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.2.dev202103090320
ChimeraX-CoreFormats: 1.0
ChimeraX-coulombic: 1.0.3
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-CrystalContacts: 1.0
ChimeraX-DataFormats: 1.1
ChimeraX-Dicom: 1.0
ChimeraX-DistMonitor: 1.1
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.0
ChimeraX-Hbonds: 2.1
ChimeraX-Help: 1.1
ChimeraX-HKCage: 1.3
ChimeraX-IHM: 1.0
ChimeraX-ImageFormats: 1.1
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0
ChimeraX-Label: 1.0
ChimeraX-LinuxSupport: 1.0
ChimeraX-ListInfo: 1.1
ChimeraX-Log: 1.1.1
ChimeraX-LookingGlass: 1.1
ChimeraX-Maestro: 1.8.1
ChimeraX-Map: 1.0.2
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.0
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 1.1
ChimeraX-MDcrds: 2.2
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.0
ChimeraX-mmCIF: 2.2
ChimeraX-MMTF: 2.1
ChimeraX-Modeller: 1.0
ChimeraX-ModelPanel: 1.0.1
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.0
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0
ChimeraX-OpenCommand: 1.5
ChimeraX-PDB: 2.2
ChimeraX-PDBBio: 1.0
ChimeraX-PDBLibrary: 1.0
ChimeraX-PDBMatrices: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.0.1
ChimeraX-PubChem: 2.0.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.4
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SeqView: 2.3
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.0
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.0.1
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.3
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.0
ChimeraX-ToolshedUtils: 1.1
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.6.1
ChimeraX-uniprot: 2.1
ChimeraX-UnitCell: 1.0
ChimeraX-ViewDockX: 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.3
comtypes: 1.1.7
cxservices: 1.0
cycler: 0.10.0
Cython: 0.29.21
decorator: 4.4.2
distlib: 0.3.1
distro: 1.5.0
docutils: 0.16
filelock: 3.0.12
funcparserlib: 0.3.6
grako: 3.16.5
h5py: 2.10.0
html2text: 2020.1.16
idna: 2.10
ihm: 0.17
imagecodecs: 2020.5.30
imagesize: 1.2.0
ipykernel: 5.3.4
ipython: 7.18.1
ipython-genutils: 0.2.0
jedi: 0.17.2
Jinja2: 2.11.2
jupyter-client: 6.1.7
jupyter-core: 4.7.1
kiwisolver: 1.3.1
line-profiler: 2.1.2
lxml: 4.6.2
lz4: 3.1.0
MarkupSafe: 1.1.1
matplotlib: 3.3.2
msgpack: 1.0.0
netCDF4: 1.5.4
networkx: 2.5
numexpr: 2.7.3
numpy: 1.19.2
numpydoc: 1.1.0
openvr: 1.14.1501
packaging: 20.9
ParmEd: 3.2.0
parso: 0.7.1
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 7.2.0
pip: 21.0.1
pkginfo: 1.5.0.1
prompt-toolkit: 3.0.16
psutil: 5.7.2
ptyprocess: 0.7.0
pycollada: 0.7.1
pydicom: 2.0.0
Pygments: 2.7.1
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 2.4.7
PyQt5-commercial: 5.15.2
PyQt5-sip: 12.8.1
PyQtWebEngine-commercial: 5.15.2
python-dateutil: 2.8.1
pytz: 2021.1
pyzmq: 22.0.3
qtconsole: 4.7.7
QtPy: 1.9.0
RandomWords: 0.3.0
requests: 2.24.0
scipy: 1.5.2
setuptools: 50.3.2
sfftk-rw: 0.6.7.dev1
six: 1.15.0
snowballstemmer: 2.1.0
sortedcontainers: 2.2.2
Sphinx: 3.2.1
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 2.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 1.0.3
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.4
suds-jurko: 0.6
tables: 3.6.1
tifffile: 2020.9.3
tinyarray: 1.2.3
tornado: 6.1
traitlets: 5.0.5
urllib3: 1.25.11
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.36.0
wheel-filename: 1.2.0
Change History (9)
comment:1 by , 5 years ago
| Component: | Unassigned → Performance |
|---|---|
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → mmCIF selectedOnly very slow |
comment:2 by , 5 years ago
| Status: | assigned → feedback |
|---|
I've made mmCIF writing 3X faster by using Cython. Please retry your test and confirm that you're seeing the same improvement.
comment:3 by , 5 years ago
I found another bottleneck that might give another 3X improvement. That work is part of #3372.
comment:4 by , 5 years ago
| Resolution: | → fixed |
|---|---|
| Status: | feedback → closed |
Put the other speed changes in. Please evaluate the improvements. It could be even faster, but that would require rewriting much more of the code into C++.
follow-up: 5 comment:5 by , 5 years ago
Was planning to try it in this morning's build, but got waylaid by other things and never even got to installing it. Will try again tomorrow.
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: 16 March 2021 21:42
Cc: gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; Tristan Croll <tic20@cam.ac.uk>
Subject: Re: [ChimeraX] #4358: mmCIF selectedOnly very slow
#4358: mmCIF selectedOnly very slow
------------------------------------+------------------------
Reporter: Tristan Croll | Owner: Greg Couch
Type: defect | Status: closed
Priority: normal | Milestone:
Component: Performance | Version:
Resolution: fixed | Keywords:
Blocked By: | Blocking:
Notify when closed: | Platform: all
Project: ChimeraX |
------------------------------------+------------------------
Changes (by Greg Couch):
* status: feedback => closed
* resolution: => fixed
Comment:
Put the other speed changes in. Please evaluate the improvements. It
could be even faster, but that would require rewriting much more of the
code into C++.
--
Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4358#comment:4>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker
follow-up: 6 comment:6 by , 5 years ago
I'm afraid it's still about 45 minutes for the 7ajt case (so about 20% faster overall). For a small model (3io0) the total time is about half what it was previously.
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: 16 March 2021 22:19
To: gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; Tristan Croll <tic20@cam.ac.uk>
Subject: Re: [ChimeraX] #4358: mmCIF selectedOnly very slow
#4358: mmCIF selectedOnly very slow
------------------------------------+------------------------
Reporter: Tristan Croll | Owner: Greg Couch
Type: defect | Status: closed
Priority: normal | Milestone:
Component: Performance | Version:
Resolution: fixed | Keywords:
Blocked By: | Blocking:
Notify when closed: | Platform: all
Project: ChimeraX |
------------------------------------+------------------------
Comment (by Tristan Croll):
{{{
Was planning to try it in this morning's build, but got waylaid by other
things and never even got to installing it. Will try again tomorrow.
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: 16 March 2021 21:42
Cc: gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; Tristan Croll
<tic20@cam.ac.uk>
Subject: Re: [ChimeraX] #4358: mmCIF selectedOnly very slow
#4358: mmCIF selectedOnly very slow
------------------------------------+------------------------
Reporter: Tristan Croll | Owner: Greg Couch
Type: defect | Status: closed
Priority: normal | Milestone:
Component: Performance | Version:
Resolution: fixed | Keywords:
Blocked By: | Blocking:
Notify when closed: | Platform: all
Project: ChimeraX |
------------------------------------+------------------------
Changes (by Greg Couch):
* status: feedback => closed
* resolution: => fixed
Comment:
Put the other speed changes in. Please evaluate the improvements. It
could be even faster, but that would require rewriting much more of the
code into C++.
--
Ticket URL:
<https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4358#comment:4>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker
}}}
--
Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/4358#comment:5>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker
comment:7 by , 5 years ago
Thank you for checking. I was hoping that all of my other work on mmCIF writing would help this case too. I'll dig deeper and get back to you.
comment:8 by , 5 years ago
Please try again. The speed should be close to writing the file without selectedOnly.
comment:9 by , 5 years ago
Beautiful!
7322799 function calls (7318013 primitive calls) in 20.907 seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
14 9.980 0.713 10.838 0.774 utils.py:25(flattened)
1 6.002 6.002 19.492 19.492 {chimerax.mmcif.mmcif_write.write_mmcif}
5560942 0.876 0.000 0.877 0.000 {built-in method builtins.isinstance}
1 0.809 0.809 0.809 0.809 molarray.py:588(intra_bonds)
31373 0.398 0.000 0.886 0.000 molarray.py:150(<listcomp>)
481600 0.353 0.000 0.353 0.000 {chimerax.atomic.cymol.c_ptr_to_py_inst}
32373 0.209 0.000 0.430 0.000 molc.py:318(pointer)
By comparison, doing the same thing with PDB format takes 26 seconds.