#4997 closed enhancement (not a bug)
Graphics slow showing huge structure
Reported by: | Owned by: | Tom Goddard | |
---|---|---|---|
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-4.18.0-305.3.1.el8.x86_64-x86_64-with-glibc2.14 ChimeraX Version: 1.2.5 (2021-05-24 04:13:57 UTC) Description Program gets sluggish when manipulating the entire biological assemly of 3kz4. This is expected as the model is HUGE when symmetry expanded to render the entire viral capsid. I was attempting to fit the entire model into the map as I had indications that the map appeared to be smaller than the model and getting that size comparison with a single asymmetric unit wouldnt have been possible. Furthermore, I have attached my franken PDB which contains the BIOMT, HELIX and SHEET records along with the CA atoms. which are renderd well in Chimera but not so in this version of ChimeraX. I am prepared to admit that perhaps the pdb is incorrect and this may not necessarily be bug in ChimeraX. In this case, I would be happy to hear from you suggestions regarding how best to set up the PDB so that I can work with the minimal amount of information and prevent sluggishness. Best, Pranav Log: UCSF ChimeraX version: 1.2.5 (2021-05-24) © 2016-2021 Regents of the University of California. All rights reserved. How to cite UCSF ChimeraX > open /home/pshah/Downloads/ChimeraX/PDB/4v7q.cif format mmcif 4v7q.cif title: Atomic model of an infectious rotavirus particle [more info...] Chain information for 4v7q.cif #1 --- Chain | Description AA AB | Core scaffold protein AC AD AE AF AG AH AI AJ AK AL AM AN AO | Intermediate capsid protein VP6 BA BF BG BH BI BJ BK BL BM BN BO BP BQ | Outer layer protein VP7 BX BY BZ | Outer capsid protein VP4 Non-standard residues in 4v7q.cif #1 --- NAG — 2-acetamido-2-deoxy-beta-D-glucopyranose ZN — zinc ion 4v7q.cif mmCIF Assemblies --- 1| complete icosahedral assembly > help save > save /home/pshah/Desktop/foo format pdb #1 Cannot determine format for '/home/pshah/Desktop/foo' > save /home/pshah/Desktop/foo.pdb #1 OpenGL version: 3.3.0 NVIDIA 470.57.02 OpenGL renderer: NVIDIA GeForce RTX 2080/PCIe/SSE2 OpenGL vendor: NVIDIA Corporation Manufacturer: Dell Inc. Model: OptiPlex 7071 OS: CentOS Linux 8 Architecture: 64bit ELF Virutal Machine: none CPU: 8 Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz Cache Size: 12288 KB Memory: total used free shared buff/cache available Mem: 125Gi 3.1Gi 64Gi 135Mi 57Gi 121Gi Swap: 4.0Gi 0B 4.0Gi Graphics: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU104 [GeForce RTX 2080] [10de:1e82] (rev a1) Subsystem: Dell Device [1028:372c] Kernel driver in use: nvidia Locale: ('en_US', 'UTF-8') PyQt5 5.15.2, Qt 5.15.2 Installed Packages: alabaster: 0.7.12 appdirs: 1.4.4 Babel: 2.9.1 backcall: 0.2.0 blockdiag: 2.0.1 certifi: 2020.12.5 cftime: 1.5.0 chardet: 3.0.4 ChimeraX-AddCharge: 1.0.1 ChimeraX-AddH: 2.1.6 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.13.2 ChimeraX-AtomicLibrary: 3.1.3 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.2 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.2.1 ChimeraX-CommandLine: 1.1.4 ChimeraX-ConnectStructure: 2.0 ChimeraX-Contacts: 1.0 ChimeraX-Core: 1.2.5 ChimeraX-CoreFormats: 1.0 ChimeraX-coulombic: 1.1.1 ChimeraX-Crosslinks: 1.0 ChimeraX-Crystal: 1.0 ChimeraX-CrystalContacts: 1.0 ChimeraX-DataFormats: 1.1 ChimeraX-Dicom: 1.0 ChimeraX-DistMonitor: 1.1.3 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.1 ChimeraX-Label: 1.0 ChimeraX-LinuxSupport: 1.0 ChimeraX-ListInfo: 1.1.1 ChimeraX-Log: 1.1.2 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.2.1 ChimeraX-MDcrds: 2.2 ChimeraX-MedicalToolbar: 1.0.1 ChimeraX-Meeting: 1.0 ChimeraX-MLP: 1.1 ChimeraX-mmCIF: 2.3 ChimeraX-MMTF: 2.1 ChimeraX-Modeller: 1.0.1 ChimeraX-ModelPanel: 1.0.1 ChimeraX-ModelSeries: 1.0 ChimeraX-Mol2: 2.0 ChimeraX-Morph: 1.0 ChimeraX-MouseModes: 1.1 ChimeraX-Movie: 1.0 ChimeraX-Neuron: 1.0 ChimeraX-Nucleotides: 2.0.1 ChimeraX-OpenCommand: 1.5 ChimeraX-PDB: 2.4.1 ChimeraX-PDBBio: 1.0 ChimeraX-PDBLibrary: 1.0.1 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.1 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.1 ChimeraX-ToolshedUtils: 1.2 ChimeraX-Tug: 1.0 ChimeraX-UI: 1.7.6 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: 5.0.9 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: 2.0.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.18 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: 2.0.0 sphinxcontrib-jsmath: 1.0.1 sphinxcontrib-qthelp: 1.0.3 sphinxcontrib-serializinghtml: 1.1.5 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 File attachment: 3kz4_CA_only.pdb
Attachments (1)
Change History (11)
by , 4 years ago
Attachment: | 3kz4_CA_only.pdb added |
---|
comment:1 by , 4 years ago
Component: | Unassigned → Performance |
---|---|
Owner: | set to |
Platform: | → all |
Project: | → ChimeraX |
Status: | new → assigned |
Summary: | ChimeraX bug report submission → Graphics slow showing huge structure |
Reported by Pranav Shah
comment:2 by , 4 years ago
Hi Pranav,
The 3kz4 rotavirus asymmetric unit is 54000 atoms so the full capsid is 60 times bigger or 3.24 million atoms. That is a lot. But using
open 3kz4
light simple
sym #1 assembly 1
it renders at about 30 frames per second on my MacBook Pro laptop (Radeon Pro Vega 20 graphics) (Can measure frame rate with command "graphics rate true" and turn off with "graphics rate false"). Even with full lighting it was getting 10 frames per second. Those number seem a bit high, maybe by a factor of 2 or 3 compared to what it feels like when I was rotating the model. I am puzzled why your much more powerful RTX 2080 is slow with this.
The symmetry command as used above does not copy the 54000 atoms it only renders them in 60 locations. If you make copies (sym #1 assembly #1 copies true) then you really get 3 million atoms. That also rendered at 30 frames per second, and really felt like 30 frames per second.
So I am a bit at a loss at why you are reporting slow performance. Maybe your RTX 2080 driver has a problem, but ChimeraX shows in this bug report that it is using the Nvidia driver
OpenGL version: 3.3.0 NVIDIA 470.57.02
OpenGL renderer: NVIDIA GeForce RTX 2080/PCIe/SSE2
I see this is a very recent driver July 19, 2021. I don't have an RTX 2080 to test on.
Tom
comment:3 by , 4 years ago
ChimeraX is having some trouble with your CA only model. It somehow doesn't see any of the CA atoms connected as polymers. Eric is looking this in bug report #4991. It seems like a ChimeraX bug, or it is a problem with the PDB file.
When I make a CA only 3kz4 in mmCIF format it works correctly. I would suggest using mmCIF.
open 3kz4
delete ~@CA
save 3kz4_CA_only.cif
close
open 3kz4_CA_only.cif
Possibly our PDB file reader or writer has a problem, and Eric will get to the bottom of that and fix it.
comment:4 by , 4 years ago
Hi Tom,
Apologies for the delay in reply. To clarify, I was moving the
symmetry expanded 4v7q (not 3kz4 as previously stated) into its
corresponding map. It wasnt entirely surprising that the system got
sluggish, given the total number of atoms. Hence, the notion of using
the CA trace to compare sizes.
Many thanks for looking into this for me.
Best,
Pranav
--
Pranav Shah
Postdoctoral Research Fellow.
Division of Structural Biology,
Wellcome Trust Centre for Human Genetics,
University of Oxford,
Roosevelt Drive, Oxford OX3 7BN,
UK
comment:5 by , 4 years ago
Type: | defect → enhancement |
---|
Ok, 4v7q is about 100,000 atoms so showing all 60 copies is 6 million atoms. That is a lot to render. But my Mac laptop does it at better than 10 frames per second with simple lighting, so I think your RTX 2080 should be able to move it smoothly since it is much more powerful.
Your RTX 2080 should have similar performance to the GTX 1080 Ti I have in a Windows machine. 4v7q showing full capsid (sym #1 assem 1) with simple lighting (light simple) renders at a full 60 frames per second for me with the 1080 Ti. If I try to move it around relative to map EMDB 5199 using move models mouse mode, it is also 60 frames per second, but since the 60 copies are being rendered by applying symmetry and my move only moves the original copy the capsid shell becomes out of shape. If I make 60 copies (sym #1 assem 1 copies true), again all move at 60 frames per second, but if I select all 60 and use "move models" mouse mode then it slows to about 2 frames per second. I am not sure why that is. Probably it could be improved so it is 60 frames per second. Maybe it is doing a slow recomputation of the bounding box as each of the 60 models moves. Hard to say without further debugging. This is such an obscure use I will not have time to optimize it unless a convincing case is made that it is needed. There are many other improvements that effect hundreds or thousands of users that need attention.
comment:6 by , 4 years ago
Indeed! I did not expect a fix for this, as mentioned earlier, decimating the PDB to CA's only would be more than enough to solve my problem. Thanks again for taking a look! Best, Pranav -- Pranav Shah Postdoctoral Research Fellow. Division of Structural Biology, Wellcome Trust Centre for Human Genetics, University of Oxford, Roosevelt Drive, Oxford OX3 7BN, UK On Tue, Aug 10, 2021 at 11:11 PM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
follow-up: 6 comment:7 by , 4 years ago
Resolution: | → not a bug |
---|---|
Status: | assigned → closed |
Ok. The temporary solution for saving the CA model is to use mmCIF format, not PDB format. Eric will figure out the PDB file reader problem you encountered with the all CA model, described in the following ticket
The PDB is going to eliminate the PDB format, and it has too many problems with large structures (limited number of atoms and chains) so I would suggest using mmCIF always when possible. Of course some old software can only handle PDB format, but such software is going to be more and more trouble as PDB starts releasing new structures only in mmCIF format.
comment:8 by , 4 years ago
Yes, thats how I managed to get it to work in the end. On the note of mmcif and I know this is offtopic but - would it be possible to import chimeraX libraries to manipulate these file types in an ipython env? Best, Pranav -- Pranav Shah Postdoctoral Research Fellow. Division of Structural Biology, Wellcome Trust Centre for Human Genetics, University of Oxford, Roosevelt Drive, Oxford OX3 7BN, UK On Wed, Aug 11, 2021 at 12:11 AM ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:
follow-up: 8 comment:9 by , 4 years ago
No you can't currently use ChimeraX Python e.g. reading mmCIF files in your own Python environment. ChimeraX is only distributed as an application which includes its own Python. The ChimeraX Python shell, menu Tools / General / Shell is IPython/Jupyter. But I guess you mean using ChimeraX in other IPython environments e.g. in a web browser. We just got some funding to make a PyPi ChimeraX Python package which will be a module that allows using the capabilities in your own Python rather than running the ChimeraX application. But that is a 2 year grant that has not started yet and so it is probably at least a year away from being usable.
follow-up: 9 comment:10 by , 4 years ago
Yes, ChimeraX has many capabilities that can be useful in scripts to analyze structures and EM maps. There is a ChimeraX web site that gives examples of Python ChimeraX scripts that currently have to be run in the ChimeraX application. https://rbvi.github.io/chimerax-recipes/
Added by email2trac