#15840 closed defect (fixed)

addh slow

Reported by: Tristan Croll Owned by: Eric Pettersen
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:        Windows-10-10.0.22631
ChimeraX Version: 1.8 (2024-06-10 23:15:52 UTC)
Description
Perhaps it's just been a while since I did anything with something so large, but adding hydrogens to 7mq8 seems to take an unusually long time (almost 17 minutes to add 226,148 hydrogens). Out of curiosity I ran it with the Python profiler, which shows that about 90% of the time is going into struct_edit.add_atom() taking about 4ms per call, which feels surprising (is each addition triggering some callback that could be deferred to the end in cases like this?):

from chimerax.core.commands import run
command = "time addh"
%prun -s cumulative run(session, command)

         78127107 function calls (78109096 primitive calls) in 1003.590 seconds

   Ordered by: cumulative time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
     15/1    0.000    0.000 1003.702 1003.702 {built-in method builtins.exec}
      2/1    0.000    0.000 1003.702 1003.702 run.py:27(run)
      2/1    0.001    0.000 1003.702 1003.702 cli.py:3116(run)
        1    0.000    0.000 1003.672 1003.672 time.py:25(time)
        1    0.016    0.016 1003.403 1003.403 cmd.py:35(cmd_addh)
        1    0.058    0.058 1003.283 1003.283 cmd.py:165(hbond_add_hydrogens)
        1    4.599    4.599  990.889  990.889 hbond.py:39(add_hydrogens)
   149426    0.703    0.000  918.421    0.006 hbond.py:899(_attach_hydrogens)
   149426    1.136    0.000  917.718    0.006 cmd.py:890(add_altloc_hyds)
   226527    1.922    0.000  916.529    0.004 cmd.py:924(new_hydrogen)
   226839  887.754    0.004  908.497    0.004 struct_edit.py:42(add_atom)
   156988    0.372    0.000   36.244    0.000 bond_geom.py:47(bond_positions)
   100553    2.637    0.000   28.751    0.000 bond_geom.py:152(tetra_pos)
        1    1.107    1.107   13.887   13.887 hbond.py:318(find_hbonds)
    34100    0.531    0.000   11.850    0.000 bond_geom.py:235(angle_pos)
   120411    1.225    0.000   11.089    0.000 plane.py:43(__init__)
    19858    3.555    0.000    9.543    0.000 cmd.py:778(find_rotamer_nearest)
   226839    2.101    0.000    9.391    0.000 struct_edit.py:160(add_bond)
   144687    0.521    0.000    7.970    0.000 acceptor_geom.py:12(acc_syn_anti)
   903884    1.750    0.000    7.486    0.000 matrix.py:438(normalize_vector)
    43851    0.123    0.000    7.133    0.000 place.py:190(inverse)
    55520    0.695    0.000    7.104    0.000 bond_geom.py:122(planar_pos)
    43851    0.878    0.000    6.636    0.000 matrix.py:131(invert_matrix)
   226526    2.177    0.000    6.307    0.000 cmd.py:1029(_h_name)
        1    0.037    0.037    5.787    5.787 cmd.py:201(post_add)
   244971    1.019    0.000    5.576    0.000 molc.py:173(get_prop)
    43851    5.116    0.000    5.517    0.000 linalg.py:492(inv)
        1    1.317    1.317    5.338    5.338 cmd.py:441(_prep_add)
   174032    0.166    0.000    5.157    0.000 acceptor_geom.py:70(test_phi_psi)
   120530    0.652    0.000    4.534    0.000 common_geom.py:17(test_phi)
   987477    2.500    0.000    4.473    0.000 linalg.py:2383(norm)

Log:
> isolde shorthand
    
    
    Initialising ISOLDE-specific command aliases:
    Alias	Equivalent full command
    -------------------------------------------------
    st	isolde step {arguments}
    aw	isolde add water {arguments}
    awsf	isolde add water {arguments} sim false
    al	isolde add ligand {arguments}
    aa	isolde add aa $1 sel {arguments}
    ht	isolde mod his sel {arguments}
    so	setattr sel atoms occupancy {arguments}
    ab	isolde adjust bfactors {arguments}
    ss	isolde sim start sel
    rt	isolde release torsions sel {arguments}
    rd	isolde release distances sel {arguments}
    ra	rd; rt
    pf	isolde pepflip sel
    cf	isolde cisflip sel
    cbb	color bfactor {arguments}
    cbo	color byattr occupancy {arguments}
    cbc	color {arguments} bychain; color {arguments} byhet
    cs	clipper set contourSensitivity {arguments}
    

  
UCSF ChimeraX version: 1.8 (2024-06-10)  
© 2016-2024 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> open 7mq8 format mmcif fromDatabase pdb

7mq8 title:  
Cryo-EM structure of the human SSU processome, state pre-A1 [more info...]  
  
Chain information for 7mq8 #1  
---  
Chain | Description | UniProt  
L0 | 5'ETS rRNA |   
L1 | 18S rRNA |   
L2 | U3 snoRNA |   
L3 | 40S ribosomal protein S18 |   
L4 | 40S ribosomal protein S4, X isoform | RS4X_HUMAN 1-263  
L5 | 40S ribosomal protein S5 | RS5_HUMAN 1-204  
L6 | 40S ribosomal protein S6 | RS6_HUMAN 1-249  
L7 | 40S ribosomal protein S7 | RS7_HUMAN 1-194  
L8 | 40S ribosomal protein S8 | RS8_HUMAN 1-208  
L9 | 40S ribosomal protein S9 | RS9_HUMAN 1-194  
LA | 40S ribosomal protein S12 | RS12_HUMAN 1-132  
LC | 40S ribosomal protein S16 | RS16_HUMAN 1-146  
LD | 40S ribosomal protein S11 | RS11_HUMAN 1-158  
LF | 40S ribosomal protein S24 | RS24_HUMAN 1-133  
LG | 40S ribosomal protein S28 | RS28_HUMAN 1-69  
LH | WD repeat-containing protein 75 | WDR75_HUMAN 1-830  
LI | Nucleolar protein 11 |   
LJ | U3 small nucleolar RNA-associated protein 15 homolog | UTP15_HUMAN 1-518  
LK LL | WD repeat-containing protein 43 | WDR43_HUMAN 1-677  
LM | HEAT repeat-containing protein 1 | HEAT1_HUMAN 1-2144  
LN | U3 small nucleolar RNA-associated protein 4 homolog | UTP4_HUMAN 1-686  
LO | Periodic tryptophan protein 2 homolog | PWP2_HUMAN 1-919  
LP | U3 small nucleolar RNA-associated protein 6 homolog | UTP6_HUMAN 1-597  
LQ | WD repeat-containing protein 3 | WDR3_HUMAN 1-943  
LR | Transducin beta-like protein 3 | TBL3_HUMAN 1-808  
LS | U3 small nucleolar RNA-associated protein 18 homolog | UTP18_HUMAN 1-556  
LT | WD repeat-containing protein 36 | WDR36_HUMAN 1-951  
LU | DDB1- and CUL4-associated factor 13 | DCA13_HUMAN 1-445  
LW | WD repeat-containing protein 46 | WDR46_HUMAN 1-610  
LZ | U3 small nucleolar ribonucleoprotein protein IMP3 | IMP3_HUMAN 1-184  
N0 | 5'ETS rRNA |   
NA | U3 small nucleolar ribonucleoprotein protein MPP10 | MPP10_HUMAN 1-681  
NB | Something about silencing protein 10 | SAS10_HUMAN 1-479  
NC | Neuroguidin | NGDN_HUMAN 1-315  
ND | Nucleolar protein 7 | NOL7_HUMAN 1-257  
NE | Uncharacterized protein C1orf131 | CA131_HUMAN 1-293  
NF | 40S ribosomal protein S13 | RS13_HUMAN 1-151  
NG | 40S ribosomal protein S14 | RS14_HUMAN 1-151  
NH | Nucleolar protein 6 | NOL6_HUMAN 1-1146  
NI | Ribosomal RNA-processing protein 7 homolog A | RRP7A_HUMAN 1-280  
NJ NK | RNA cytidine acetyltransferase | NAT10_HUMAN 1-1025  
NM | 40S ribosomal protein S3a | RS3A_HUMAN 1-264  
NN | Protein AATF | AATF_HUMAN 1-560  
NO | 40S ribosomal protein S15a | RS15A_HUMAN 1-130  
NQ | 40S ribosomal protein S27 | RS27_HUMAN 1-84  
NR | RRP12-like protein |   
NT | Ubiquitin-40S ribosomal protein S27a |   
NU | 40S ribosomal protein S17 | RS17_HUMAN 1-135  
NW | Nucleolar protein 10 | NOL10_HUMAN 1-688  
NY | KRR1 small subunit processome component homolog | KRR1_HUMAN 1-381  
SA | Nucleolar protein 56 | NOP56_HUMAN 1-594  
SB | Nucleolar protein 58 | NOP58_HUMAN 1-529  
SC SD | rRNA 2'-O-methyltransferase fibrillarin | FBRL_HUMAN 1-321  
SE SF | NHP2-like protein 1 | NH2L1_HUMAN 1-128  
SG | U3 small nucleolar RNA-interacting protein 2 | U3IP2_HUMAN 1-475  
SH | RNA 3'-terminal phosphate cyclase-like protein | RCL1_HUMAN 1-373  
SI | Ribosome biogenesis protein BMS1 homolog |   
SJ SK | Ribosomal RNA small subunit methyltransferase NEP1 | NEP1_HUMAN 1-244  
SL | rRNA-processing protein FCF1 homolog | FCF1_HUMAN 1-198  
SM | U3 small nucleolar ribonucleoprotein protein IMP4 | IMP4_HUMAN 1-291  
SP | Small subunit processome component 20 homolog | UTP20_HUMAN 1-2785  
SQ | Deoxynucleotidyltransferase terminal-interacting protein 2 | TDIF2_HUMAN 1-756  
SR | 40S ribosomal protein S23 | RS23_HUMAN 1-143  
SS | U3 small nucleolar RNA-associated protein 14 homolog A | UT14A_HUMAN 1-771  
ST | Nucleolar protein 14 |   
SU | Nucleolar complex protein 4 homolog |   
SW | RNA-binding protein PNO1 | PNO1_HUMAN 1-252  
SX | Unassigned peptides |   
SY | Probable U3 small nucleolar RNA-associated protein 11 | UTP11_HUMAN 1-253  
SZ | Bystin |   
  
Non-standard residues in 7mq8 #1  
---  
ATP — adenosine-5'-triphosphate  
GTP — guanosine-5'-triphosphate  
MG — magnesium ion  
SAH — S-adenosyl-L-homocysteine  
ZN — zinc ion  
  
4 atoms have alternate locations. Control/examine alternate locations with
Altloc Explorer [start tool...] or the altlocs command.  

> ui tool show Shell

0.01s - Debugger warning: It seems that frozen modules are being used, which
may  
0.00s - make the debugger miss breakpoints. Please pass -Xfrozen_modules=off  
0.00s - to python to disable frozen modules.  
0.00s - Note: Debugging will proceed. Set PYDEVD_DISABLE_FILE_VALIDATION=1 to
disable this validation.  

> time addh

> addh

Summary of feedback from adding hydrogens to 7mq8 #1  
---  
warnings | Not adding hydrogens to /L0 G 431 P because it is missing heavy-atom bond partners  
Not adding hydrogens to /L1 A 2 P because it is missing heavy-atom bond
partners  
Not adding hydrogens to /L2 G 3 P because it is missing heavy-atom bond
partners  
Not adding hydrogens to /L3 UNK 88 CB because it is missing heavy-atom bond
partners  
Not adding hydrogens to /L3 UNK 89 CB because it is missing heavy-atom bond
partners  
1738 messages similar to the above omitted  
Unknown hybridization for atom (P) of residue type N; not adding hydrogens to
it  
The following atoms were skipped as donors/acceptors due to missing heavy-atom
bond partners: /LQ PRO 341 N; /LT PRO 810 N; /NJ PRO 349 N; /NJ PRO 803 N; /LM
PRO 1242 N; /NK PRO 349 N; /NJ PRO 806 N; /SU PRO 505 N; /NK PRO 803 N; /NK
PRO 806 N; /NH PRO 284 N; /LM PRO 750 N; /NI PRO 100 N  
notes | Termini for 7mq8 (#1) chain L0 determined from SEQRES records  
Termini for 7mq8 (#1) chain L1 determined from SEQRES records  
Termini for 7mq8 (#1) chain L2 determined from SEQRES records  
Termini for 7mq8 (#1) chain L3 determined from SEQRES records  
Termini for 7mq8 (#1) chain L4 determined from SEQRES records  
70 messages similar to the above omitted  
Chain-initial residues that are actual N termini: /L6 MET 1, /LF MET 1, /LI
UNK 8, /LP MET 1, /LU MET 1, /NJ MET 1, /NK MET 1, /NR UNK 74, /SB MET 1, /SM
MET 1, /SU UNK 7, /SX UNK 689, /SY MET 1, /SZ UNK 130  
Chain-initial residues that are not actual N termini: /L3 SER 2, /L4 ALA 2,
/L5 PRO 15, /L6 GLU 91, /L7 ILE 8, /L7 SER 119, /L8 GLY 2, /L8 GLU 151, /L9
LYS 11, /LA VAL 11, /LC GLY 5, /LD ALA 2, /LG GLN 7, /LH ILE 7, /LH THR 692,
/LH ASN 716, /LH ASP 803, /LI PRO 165, /LI LEU 189, /LI LYS 205, /LI ASN 242,
/LI GLY 262, /LI CYS 286, /LI GLN 310, /LI PRO 396, /LI SER 577, /LJ ALA 2,
/LJ ASN 343, /LK PRO 463, /LL CYS 9, /LL GLN 93, /LL LYS 331, /LL ASP 456, /LL
LYS 594, /LM THR 2, /LM SER 1202, /LM VAL 1368, /LM ALA 1438, /LM GLN 1457,
/LM SER 1507, /LM GLY 1545, /LM GLU 1598, /LM GLU 1662, /LM VAL 1889, /LM ARG
1932, /LM PHE 1979, /LM LYS 2013, /LM ASP 2059, /LN GLY 2, /LN ALA 638, /LO
LYS 2, /LO LYS 271, /LP SER 213, /LP GLN 296, /LP LEU 346, /LQ LYS 5, /LQ PRO
261, /LQ PRO 341, /LQ GLU 377, /LQ PRO 403, /LQ ARG 537, /LQ THR 753, /LQ ASN
793, /LQ SER 923, /LR PHE 11, /LR ASN 464, /LS ALA 62, /LS LYS 138, /LS ASP
215, /LT ARG 64, /LT SER 735, /LT PRO 810, /LW GLN 95, /LW SER 603, /LZ VAL 2,
/NA GLU 355, /NA SER 468, /NA ILE 674, /NB ALA 407, /NC GLU 189, /ND ASN 169,
/NE PHE 166, /NE LYS 253, /NE GLY 269, /NF GLY 2, /NG GLU 25, /NH GLU 76, /NI
PRO 18, /NJ GLN 89, /NJ ASP 178, /NJ LEU 228, /NJ LEU 423, /NJ ALA 457, /NJ
GLY 602, /NJ GLU 669, /NJ GLY 762, /NK ASP 91, /NK SER 231, /NK ALA 457, /NK
GLY 602, /NK GLU 682, /NK GLY 762, /NM THR 10, /NM GLU 245, /NN ALA 509, /NO
VAL 2, /NQ PRO 2, /NT LYS 92, /NU ARG 5, /NW ASN 7, /NW ILE 43, /NW LEU 230,
/NY GLY 39, /NY LYS 264, /SA VAL 2, /SA LYS 90, /SA HIS 353, /SC ASN 85, /SC
LYS 131, /SD ARG 78, /SD LYS 131, /SE ALA 4, /SF VAL 6, /SG GLU 73, /SG PHE
103, /SG LYS 194, /SH HIS 6, /SI SER 49, /SI THR 369, /SI UNK 625, /SI ALA
664, /SI PRO 687, /SI HIS 727, /SI GLU 844, /SJ ARG 41, /SK ARG 41, /SL THR 7,
/SP LYS 2, /SP GLU 492, /SP ARG 672, /SP GLU 787, /SP LYS 906, /SP ILE 1292,
/SP ASN 1325, /SP PHE 1446, /SP ILE 1772, /SP ASP 1815, /SP ARG 1958, /SP ASP
2050, /SP LYS 2077, /SQ PHE 548, /SQ THR 593, /SR ALA 35, /SS ASN 121, /SS LEU
217, /SS LEU 664, /ST SER 29, /ST THR 493, /ST GLU 679, /ST GLN 787, /SU UNK
158, /SU PRO 203, /SU LYS 241, /SW GLU 73, /SY GLN 133, /SY GLN 185  
Chain-final residues that are actual C termini: /L3 UNK 116, /L4 GLY 263, /L5
ARG 204, /LM PHE 2144, /LN THR 686, /LP LEU 597, /LQ THR 943, /LS PHE 556, /LU
LYS 445, /LZ ALA 184, /NA LEU 681, /NB LYS 479, /NO PHE 130, /NR UNK 1029, /SE
VAL 128, /SF VAL 128, /SH LYS 373, /SJ ILE 244, /SK ILE 244, /SL PHE 198, /SW
PHE 252, /SX UNK 1472, /SY ARG 253  
Chain-final residues that are not actual C termini: /L6 SER 78, /L6 SER 235,
/L7 ILE 100, /L7 GLN 193, /L8 LYS 125, /L8 LYS 206, /L9 GLY 181, /LA CYS 130,
/LC LYS 143, /LD ALA 148, /LF ARG 104, /LG LEU 68, /LH LYS 671, /LH ARG 703,
/LH LYS 759, /LH ILE 827, /LI VAL 161, /LI MET 183, /LI LEU 195, /LI ILE 234,
/LI VAL 255, /LI GLY 277, /LI LEU 303, /LI VAL 360, /LI SER 515, /LI LEU 718,
/LJ ARG 318, /LJ MET 494, /LK THR 580, /LL PRO 69, /LL PRO 322, /LL ALA 413,
/LL THR 580, /LL SER 604, /LM GLU 1166, /LM ASP 1361, /LM VAL 1428, /LM PHE
1454, /LM LYS 1472, /LM SER 1537, /LM LEU 1595, /LM GLN 1653, /LM ASP 1876,
/LM LYS 1924, /LM ASN 1970, /LM THR 2007, /LM ALA 2055, /LN PRO 623, /LO ARG
239, /LO ARG 880, /LP PHE 200, /LP GLU 283, /LP LYS 339, /LQ LEU 223, /LQ HIS
332, /LQ SER 373, /LQ ASN 395, /LQ GLU 526, /LQ ALA 721, /LQ LYS 782, /LQ PHE
917, /LR SER 457, /LR LYS 789, /LS ARG 111, /LS GLU 198, /LT GLN 721, /LT GLN
806, /LT SER 948, /LW LEU 540, /LW VAL 609, /NA GLU 463, /NA LEU 599, /NC THR
282, /ND LYS 252, /NE ASP 236, /NE SER 261, /NE SER 288, /NF VAL 150, /NG THR
140, /NH SER 1141, /NI MET 251, /NJ GLN 77, /NJ GLU 174, /NJ PRO 221, /NJ ASN
414, /NJ GLN 434, /NJ ILE 585, /NJ CYS 658, /NJ THR 751, /NJ ALA 913, /NK LYS
61, /NK PRO 221, /NK GLN 434, /NK ARG 596, /NK PRO 657, /NK LEU 752, /NK ALA
913, /NM GLY 233, /NM ALA 253, /NN GLN 550, /NQ GLN 83, /NT CYS 149, /NU GLY
64, /NW LEU 14, /NW CYS 216, /NW THR 358, /NY PHE 246, /NY ILE 329, /SA SER
86, /SA LYS 340, /SA GLU 412, /SB SER 440, /SC SER 126, /SC PRO 317, /SD SER
126, /SD LYS 318, /SG GLU 99, /SG LYS 189, /SG PRO 468, /SI ASP 355, /SI GLY
402, /SI UNK 631, /SI GLN 683, /SI GLY 695, /SI THR 760, /SI GLY 1276, /SM THR
290, /SP GLN 474, /SP GLU 662, /SP ASN 776, /SP GLY 871, /SP PRO 1282, /SP THR
1313, /SP ALA 1435, /SP THR 1690, /SP SER 1797, /SP GLY 1938, /SP GLU 2032,
/SP VAL 2066, /SP VAL 2238, /SQ ALA 582, /SQ ALA 744, /SR ARG 142, /SS LYS
209, /SS LYS 250, /SS VAL 737, /ST ASP 488, /ST SER 665, /ST LYS 772, /ST ARG
852, /SU LEU 153, /SU VAL 195, /SU ARG 221, /SU PHE 513, /SY LEU 126, /SY GLN
175, /SZ SER 423  
Chain-initial residues that are not actual 5' termini: /L0 G 431, /L1 A 2, /L2
G 3  
Missing OXT added to C-terminal residue /L3 UNK 116  
Missing OXT added to C-terminal residue /L5 ARG 204  
Missing OXT added to C-terminal residue /LM PHE 2144  
Missing OXT added to C-terminal residue /LQ THR 943  
Missing OXT added to C-terminal residue /LS PHE 556  
6 messages similar to the above omitted  
24047 hydrogen bonds  
Adding 'H' to /L3 SER 2  
Adding 'H' to /L4 ALA 2  
Adding 'H' to /L6 GLU 91  
Adding 'H' to /L7 ILE 8  
Adding 'H' to /L7 SER 119  
149 messages similar to the above omitted  
/L6 SER 235 is not terminus, removing H atom from 'C'  
/L7 GLN 193 is not terminus, removing H atom from 'C'  
/L8 LYS 206 is not terminus, removing H atom from 'C'  
/L9 GLY 181 is not terminus, removing H atom from 'C'  
/LA CYS 130 is not terminus, removing H atom from 'C'  
43 messages similar to the above omitted  
/L0 C 1435 is not terminus, removing H atom from O3'  
/L1 A 1860 is not terminus, removing H atom from O3'  
226148 hydrogens added  
  
command time 1004 seconds  
draw time 1.925 seconds  




OpenGL version: 3.3.0 NVIDIA 555.85
OpenGL renderer: NVIDIA GeForce RTX 3070 Laptop GPU/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation

Python: 3.11.4
Locale: en_GB.cp1252
Qt version: PyQt6 6.6.1, Qt 6.6.1
Qt runtime version: 6.6.3
Qt platform: windows

Manufacturer: HP
Model: HP ZBook Studio 15.6 inch G8 Mobile Workstation PC
OS: Microsoft Windows 11 Pro (Build 22631)
Memory: 34,007,068,672
MaxProcessMemory: 137,438,953,344
CPU: 16 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
OSLanguage: en-GB

Installed Packages:
    alabaster: 0.7.16
    appdirs: 1.4.4
    asttokens: 2.4.1
    Babel: 2.15.0
    beautifulsoup4: 4.12.3
    blockdiag: 3.0.0
    blosc2: 2.0.0
    build: 1.2.1
    certifi: 2024.6.2
    cftime: 1.6.4
    charset-normalizer: 3.3.2
    ChimeraX-AddCharge: 1.5.17
    ChimeraX-AddH: 2.2.6
    ChimeraX-AlignmentAlgorithms: 2.0.2
    ChimeraX-AlignmentHdrs: 3.5
    ChimeraX-AlignmentMatrices: 2.1
    ChimeraX-Alignments: 2.12.7
    ChimeraX-AlphaFold: 1.0
    ChimeraX-AltlocExplorer: 1.1.1
    ChimeraX-AmberInfo: 1.0
    ChimeraX-Arrays: 1.1
    ChimeraX-Atomic: 1.57.1
    ChimeraX-AtomicLibrary: 14.0.6
    ChimeraX-AtomSearch: 2.0.1
    ChimeraX-AxesPlanes: 2.4
    ChimeraX-BasicActions: 1.1.2
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 2.4.6
    ChimeraX-BondRot: 2.0.4
    ChimeraX-BugReporter: 1.0.1
    ChimeraX-BuildStructure: 2.12.1
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.2.7
    ChimeraX-ButtonPanel: 1.0.1
    ChimeraX-CageBuilder: 1.0.1
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.4
    ChimeraX-ChangeChains: 1.1
    ChimeraX-CheckWaters: 1.4
    ChimeraX-ChemGroup: 2.0.1
    ChimeraX-Clashes: 2.2.4
    ChimeraX-Clipper: 0.23.1
    ChimeraX-ColorActions: 1.0.5
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-ColorKey: 1.5.6
    ChimeraX-CommandLine: 1.2.5
    ChimeraX-ConnectStructure: 2.0.1
    ChimeraX-Contacts: 1.0.1
    ChimeraX-Core: 1.8
    ChimeraX-CoreFormats: 1.2
    ChimeraX-coulombic: 1.4.3
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-CrystalContacts: 1.0.1
    ChimeraX-DataFormats: 1.2.3
    ChimeraX-Dicom: 1.2.4
    ChimeraX-DiffPlot: 1.0
    ChimeraX-DistMonitor: 1.4.2
    ChimeraX-DockPrep: 1.1.3
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ESMFold: 1.0
    ChimeraX-FileHistory: 1.0.1
    ChimeraX-FunctionKey: 1.0.1
    ChimeraX-Geometry: 1.3
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.1.1
    ChimeraX-Hbonds: 2.4
    ChimeraX-Help: 1.2.2
    ChimeraX-HKCage: 1.3
    ChimeraX-IHM: 1.1
    ChimeraX-ImageFormats: 1.2
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0.1
    ChimeraX-ISOLDE: 1.8
    ChimeraX-ItemsInspection: 1.0.1
    ChimeraX-IUPAC: 1.0
    ChimeraX-Label: 1.1.10
    ChimeraX-ListInfo: 1.2.2
    ChimeraX-Log: 1.1.6
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Maestro: 1.9.1
    ChimeraX-Map: 1.2
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0.1
    ChimeraX-MapFilter: 2.0.1
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.1.1
    ChimeraX-Markers: 1.0.1
    ChimeraX-Mask: 1.0.2
    ChimeraX-MatchMaker: 2.1.3
    ChimeraX-MCopy: 1.0
    ChimeraX-MDcrds: 2.7.1
    ChimeraX-MedicalToolbar: 1.0.3
    ChimeraX-Meeting: 1.0.1
    ChimeraX-MLP: 1.1.1
    ChimeraX-mmCIF: 2.14.1
    ChimeraX-MMTF: 2.2
    ChimeraX-Modeller: 1.5.17
    ChimeraX-ModelPanel: 1.5
    ChimeraX-ModelSeries: 1.0.1
    ChimeraX-Mol2: 2.0.3
    ChimeraX-Mole: 1.0
    ChimeraX-Morph: 1.0.2
    ChimeraX-MouseModes: 1.2
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nifti: 1.2
    ChimeraX-NMRSTAR: 1.0.2
    ChimeraX-NRRD: 1.2
    ChimeraX-Nucleotides: 2.0.3
    ChimeraX-OpenCommand: 1.13.5
    ChimeraX-PDB: 2.7.5
    ChimeraX-PDBBio: 1.0.1
    ChimeraX-PDBLibrary: 1.0.4
    ChimeraX-PDBMatrices: 1.0
    ChimeraX-PickBlobs: 1.0.1
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.1.1
    ChimeraX-PubChem: 2.2
    ChimeraX-ReadPbonds: 1.0.1
    ChimeraX-Registration: 1.1.2
    ChimeraX-RemoteControl: 1.0
    ChimeraX-RenderByAttr: 1.4.1
    ChimeraX-RenumberResidues: 1.1
    ChimeraX-ResidueFit: 1.0.1
    ChimeraX-RestServer: 1.2
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 4.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.5.1
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0.2
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0.1
    ChimeraX-Segmentations: 3.0.15
    ChimeraX-SelInspector: 1.0
    ChimeraX-SeqView: 2.11.2
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0.1
    ChimeraX-Shortcuts: 1.1.1
    ChimeraX-ShowSequences: 1.0.3
    ChimeraX-SideView: 1.0.1
    ChimeraX-Smiles: 2.1.2
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.16.5
    ChimeraX-STL: 1.0.1
    ChimeraX-Storm: 1.0
    ChimeraX-StructMeasure: 1.2.1
    ChimeraX-Struts: 1.0.1
    ChimeraX-Surface: 1.0.1
    ChimeraX-SwapAA: 2.0.1
    ChimeraX-SwapRes: 2.5
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-TaskManager: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.1.2
    ChimeraX-ToolshedUtils: 1.2.4
    ChimeraX-Topography: 1.0
    ChimeraX-ToQuest: 1.0
    ChimeraX-Tug: 1.0.1
    ChimeraX-UI: 1.39.1
    ChimeraX-uniprot: 2.3
    ChimeraX-UnitCell: 1.0.1
    ChimeraX-ViewDockX: 1.4.3
    ChimeraX-VIPERdb: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0.1
    ChimeraX-vrml: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0.2
    ChimeraX-WebServices: 1.1.4
    ChimeraX-Zone: 1.0.1
    colorama: 0.4.6
    comm: 0.2.2
    comtypes: 1.4.1
    contourpy: 1.2.1
    cxservices: 1.2.2
    cycler: 0.12.1
    Cython: 3.0.10
    debugpy: 1.8.1
    decorator: 5.1.1
    docutils: 0.20.1
    executing: 2.0.1
    filelock: 3.13.4
    fonttools: 4.53.0
    funcparserlib: 2.0.0a0
    glfw: 2.7.0
    grako: 3.16.5
    h5py: 3.11.0
    html2text: 2024.2.26
    idna: 3.7
    ihm: 1.0
    imagecodecs: 2024.1.1
    imagesize: 1.4.1
    ipykernel: 6.29.2
    ipython: 8.21.0
    ipywidgets: 8.1.3
    jedi: 0.19.1
    jinja2: 3.1.4
    jupyter-client: 8.6.0
    jupyter-core: 5.7.2
    jupyterlab-widgets: 3.0.11
    kiwisolver: 1.4.5
    line-profiler: 4.1.2
    lxml: 5.2.1
    lz4: 4.3.3
    MarkupSafe: 2.1.5
    matplotlib: 3.8.4
    matplotlib-inline: 0.1.7
    msgpack: 1.0.8
    nest-asyncio: 1.6.0
    netCDF4: 1.6.5
    networkx: 3.3
    nibabel: 5.2.0
    nptyping: 2.5.0
    numexpr: 2.10.0
    numpy: 1.26.4
    openvr: 1.26.701
    packaging: 24.1
    ParmEd: 4.2.2
    parso: 0.8.4
    pep517: 0.13.1
    pillow: 10.3.0
    pip: 24.0
    pkginfo: 1.10.0
    platformdirs: 4.2.2
    prompt-toolkit: 3.0.47
    psutil: 5.9.8
    pure-eval: 0.2.2
    py-cpuinfo: 9.0.0
    pycollada: 0.8
    pydicom: 2.4.4
    pygments: 2.17.2
    pynmrstar: 3.3.4
    pynrrd: 1.0.0
    PyOpenGL: 3.1.7
    PyOpenGL-accelerate: 3.1.7
    pyopenxr: 1.0.3401
    pyparsing: 3.1.2
    pyproject-hooks: 1.1.0
    PyQt6-commercial: 6.6.1
    PyQt6-Qt6: 6.6.3
    PyQt6-sip: 13.6.0
    PyQt6-WebEngine-commercial: 6.6.0
    PyQt6-WebEngine-Qt6: 6.6.3
    python-dateutil: 2.9.0.post0
    pytz: 2024.1
    pywin32: 306
    pyzmq: 26.0.3
    qtconsole: 5.5.1
    QtPy: 2.4.1
    RandomWords: 0.4.0
    requests: 2.31.0
    scipy: 1.13.0
    Send2Trash: 1.8.3
    SEQCROW: 1.8.8
    setuptools: 69.5.1
    sfftk-rw: 0.8.1
    six: 1.16.0
    snowballstemmer: 2.2.0
    sortedcontainers: 2.4.0
    soupsieve: 2.5
    sphinx: 7.2.6
    sphinx-autodoc-typehints: 2.0.1
    sphinxcontrib-applehelp: 1.0.8
    sphinxcontrib-blockdiag: 3.0.0
    sphinxcontrib-devhelp: 1.0.6
    sphinxcontrib-htmlhelp: 2.0.5
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.7
    sphinxcontrib-serializinghtml: 1.1.10
    stack-data: 0.6.3
    superqt: 0.6.3
    tables: 3.8.0
    tcia-utils: 1.5.1
    tifffile: 2024.1.30
    tinyarray: 1.2.4
    tornado: 6.4.1
    traitlets: 5.14.2
    typing-extensions: 4.12.2
    tzdata: 2024.1
    urllib3: 2.2.1
    wcwidth: 0.2.13
    webcolors: 1.13
    wheel: 0.43.0
    wheel-filename: 1.4.1
    widgetsnbextension: 4.0.11
    WMI: 1.5.1

Change History (3)

comment:1 by Eric Pettersen, 14 months ago

Component: UnassignedPerformance
Owner: set to Eric Pettersen
Platform: all
Project: ChimeraX
Status: newaccepted
Summary: ChimeraX bug report submissionaddh slow

comment:2 by Eric Pettersen, 14 months ago

You are not hallucinating. Adding hydrogens to 7mq8 on my Mac using ChimeraX 1.5 took 34 seconds whereas with the daily build it took 476 seconds. Will investigate.

comment:3 by Eric Pettersen, 14 months ago

Resolution: fixed
Status: acceptedclosed

Some recent-ish code in Residue.add_atom() to possibly adjust missing-structure pseudobonds when atoms got added was really slowing down hydrogen addition for large structures.

Fix: https://github.com/RBVI/ChimeraX/commit/c5ede1f962a8c3dec750cfa581ab38f42d7fc7ff

Note: See TracTickets for help on using tickets.