Opened 2 years ago
Closed 2 years ago
#9791 closed defect (duplicate)
cartoon style unnecessarily computes ribbon(?)
| Reported by: | Owned by: | Eric Pettersen | |
|---|---|---|---|
| Priority: | moderate | Milestone: | |
| Component: | Structure Analysis | Version: | |
| Keywords: | Cc: | Tom Goddard | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
With the biological assembly of 1m4x (open pdbe_bio:1m4x maxa 1; 1.6 million atoms), "cartoon style sides 16" causes the memory usage (which was already 20+ GB) to shoot through the roof, despite the fact that no cartoon is being displayed.
Change History (2)
comment:1 by , 2 years ago
| Cc: | added; removed |
|---|---|
| Component: | Depiction → Structure Analysis |
| Owner: | changed from to |
comment:2 by , 2 years ago
| Resolution: | → duplicate |
|---|---|
| Status: | assigned → closed |
The basic problem is that secondary-structure calculation is very inefficient for large structures (ticket #8446), and the bioassembly file lacks secondary structure information, so ChimeraX tries to calculate it when is_helix is called (unnecessarily) from "cartoon style sides 16".
Ticket #8446 will take some effort to fix (since finding sheets from component ladders is not a local search), so instead I have modified the NIH3D script to prevent the secondary-structure calculation from happening (with "structure.ss_assigned = True") for structures where ribbon presets will not be used. You may have to poke Michal to get the pull request merged into the master branch.
I also see the memory explode to over 120 Gbytes in about 20 seconds after the cartoon style sides 16 command
open pdbe_bio:1m4x maxa 1
cartoon style sides 16
Force quitting ChimeraX while this is happening shows it is computing secondary structure using ksdssp in C++.
The cartoon style code is poorly written and is calling residues.is_helix even though it obviously doesn't need to do that because none of the options given to the command need it. The cartoon style code should probably be rewritten to not do the needless calculations. But anything that tries to use the secondary structure on this 1.6 million atoms is going to kill ChimeraX, so that excessive memory use should be fixed.
Reassigning to Eric since he is in charge of secondary structure computation.