3 ms·
I can only guess, but I believe that ChimeraX's rendering pipeline is single threaded (just an empirical guess based on my CPU usage when using it). Additionall
by COGlory 3y ago
I can only guess, but I believe that ChimeraX's rendering pipeline is single threaded (just an empirical guess based on my CPU usage when using it). Additionally, loading that many atom positions requires a huge amount of memory (I routinely use > 32 GB memory just loading a few proteins) and things start to slow down quite a bit.
Loading a 60-fold icosahedral virus has used > 100 GB memory on my workstation, and resulted in a 0fps experience. It might render OK from the command line, but now imagine a few dozen of those, plus a cell, plus all the proteins in the cell...
- dalke 3y agoOdd. I can't see why. I think we had 128 MB on that IRIX box, and I know I loaded a 1 million atom structure with copies of 2PLV (full capsid plus a bit more to get to a million.) Each atom record has ~60 bytes (x, y, z, occupancy, bond list, resid, segid, atom name, plus higher-level structure information about secondary structure, connected fragments, etc.) We had our own display list, so another (x, y, z, r, color-index) per atom, giving 20 more bytes. We probably used a GL/OpenGL display list for the sphere, and immediate mode to render that display list for each point, so all-in-all about 100 bytes per atom, which just barely fits in 128 MB. That was also all single-threaded, with a ~0.1 Hz frame rate. Again, in the 1990s. I wanted to see what more recent projects have done. Google Scholar found "cellVIEW: a Tool for Illustrative and Multi-Scale Rendering of Large Biomolecular Datasets" (2017) at https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5747374/ https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5747374/ which says > The most widely known visualization softwares are: VMD [HDS96], Chimera [PGH04], Pymol [DeL02], PMV [S99], ePMV [JAG11]. These tools, however, are not designed to render a large number of atoms at interactive frame-rates and with full-atomic details (Van der Walls or CPK spherical representation). Megamol [GKM15] is a state-of-the-art prototyping and visualization framework designed for particle-based data and which currently outperforms any other molecular visualisation software or generic visualization frameworks such VTK/Paraview [SLM04]. The system is able to render up to 100 million atoms at 10 fps on commodity hardware, which represents, in terms of size, a large virus or a small bacterium. Following that is a section on Related Work: > With their new improvement they managed to obtain 3.6 fps in full HD resolution for 25 billion atoms on a NVidia GTX 580, while Lindow et al. managed to get around 3 fps for 10 billions atoms in HD resolution on a NVIDIA GTX 285. Le Muzic et al. [LMPSV14], introduced another technique for fast rendering of large particle-based datasets using the GPU rasterization pipeline instead. They were able to render up to 30 billions of atoms at 10 fps in full HD resolution on a NVidia GTX Titan Checking up on VMD, in "Atomic detail visualization of photosynthetic membranes with GPU-accelerated ray tracing" from 2016: > VMD has achieved direct-to-HMD rendering rates limited by the HMD display hardware (75 frames per second on Oculus Rift DK2) for moderate complexity scenes containing on the order of one million atoms, with direct lighting and a small number of ambient occlusion lighting samples. Those citations are 6-7 years ago, which make me scratch my head wondering why ChimeraX can't handle a picornavirus.
- dekhn 3y agoThe author of EMAN2 is incorrect, I don't know why they claimed that. ChimeraX is probably like Chimera and targets a 30fps but can drop below that significantly based on dataset size and rendering quality. It should be using OpenGL with display lists (or some more modern variant on that). The main loop is likely in Python, but if you're just moving a molecule around, the rendering should touch very little python. On a modern machine with an nvidia gaming card it should be fine. For example, in this case I loaded 2PLV with "open 2PLV" and on the right side, there's an option to select one of the mmcif assemblies, with select 1 being "complete icosahedral assembly, 60 copies of chains 1-4". With the default ribbon rendering, rotating is completely smooth; with all atoms displayed (wireframe or sphere), it's still smooth. Computing a surface for the entire capsid takes well under a second(!) and still renders smoothly. Rotating shows my GPU (nvidia RTX 3080 Ti) at about 50% utilization, and if I exit Chimera, my GPU's releases ~200MB of memory. Chimera was never intended to do high quality rendering of cellular environments with many hundreds of proteins. It was intended for a combination of nice rendering and scripting directly in python. VMD definitely handled some extremely large scenarios faster. A dedicated small C++ using modern OpenGL would be able to do far, far more than Chimera when it comes to simple rendering without any scripting control.
- dalke 3y agoThanks! That's much more like what I expected.
- COGlory 3y agoOpening the bio-assembly for 3J31 ate about 8 GB of my VRAM, and 32 of my system RAM, in ChimeraX. Which is actually less than I remember a few years ago. I wonder if the render pipeline has changed a bit. That said, it's still very significant if you have 10-20 viruses attached to a cell, for instance. EDIT - that's also for atoms. Going to 3D maps is significantly more computationally intensive. A typical, sub-tomogram average, or annotation will be in MRC file format, which is horrendously slow with a box size > 1024 pixels or so.
- 3y ago
- loceng 3y agoHm, curious what your work station is, its stats - if custom or off-the-shelf from what brand? Thanks!
- COGlory 3y agoHome-built. 5950X, 128 GB RAM, Nvidia A4500.