Opened 5 years ago

Closed 5 years ago

#3317 closed defect (fixed)

CCD fetch failures need to be cached

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-1062.9.1.el7.x86_64-x86_64-with-centos-7.7.1908-Core
ChimeraX Version: 1.0rc202005242323 (2020-05-24 23:23:37 UTC)
Description
Trying to make a membrane model big enough to embed a very large complex (for visualisation purposes only, not for simulation). Took a PDB file with a pre-equilibrated slab of 256 POPC lipids (all named by CHARMM conventions), tiled it out to 3x3, renumbered all the residues, deleted hydrogens and waters, and saved as mmCIF. Trying to load the result back into ChimeraX hangs it for many minutes (at least 15 minutes and counting so far).

OpenGL version: 3.3.0 NVIDIA 440.33.01
OpenGL renderer: TITAN Xp/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: Dell Inc.
Model: Precision T5600
OS: CentOS Linux 7 Core
Architecture: 64bit ELF
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         12G         19G        357M         31G         49G
	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
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.8
File attachment: big_membrane_lipids_only.cif

big_membrane_lipids_only.cif

Attachments (1)

big_membrane_lipids_only.cif (9.8 MB ) - added by Tristan Croll 5 years ago.
Added by email2trac

Change History (6)

by Tristan Croll, 5 years ago

Added by email2trac

in reply to:  2 comment:1 by Tristan Croll, 5 years ago

Was just about to say it looks like it's permanently frozen, when it 
finally came through. Looks like it's doing a bit of a DOS attack on the 
poor CCD server - attempting to download the template for every residue 
in the file.


On 2020-05-26 19:06, ChimeraX wrote:

comment:2 by Eric Pettersen, 5 years ago

Component: UnassignedPerformance
Owner: set to Greg Couch
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionCCD fetch failures need to be cached

comment:3 by Greg Couch, 5 years ago

Status: assignedaccepted

comment:4 by Greg Couch, 5 years ago

Fix will be on toolshed after the 1.0 release. In the mean time, the following patch to chimerax/atomic/mmcif/mmcif.py speeds things up a little:

--- chimerax/atomic/mmcif/mmcif.py
+++ chimerax/atomic/mmcif/mmcif.py
@@ -356,8 +356,13 @@ def fetch_mmcif_pdbj(session, pdb_id, **kw):
     return fetch_mmcif(session, pdb_id, fetch_source="pdbj", **kw)


+_nonexistant_ccd_entries = set()
+
+
 def _get_template(session, name):
     """Get Chemical Component Dictionary (CCD) entry"""
+    if name in _nonexistant_ccd_entries:
+        return None
     from chimerax.core.fetch import fetch_file
     filename = '%s.cif' % name
     url = "http://ligand-expo.rcsb.org/reports/%s/%s/%s.cif" % (name[0], name,
@@ -365,6 +370,7 @@ def _get_template(session, name):
     try:
         return fetch_file(session, url, 'CCD %s' % name, filename, 'CCD', timeout=15)
     except (UserError, OSError):
+        _nonexistant_ccd_entries.add(name)
         return None

comment:5 by Greg Couch, 5 years ago

Resolution: fixed
Status: acceptedclosed

Also reduce the warnings due to a missing CCD entry to one line instead of three lines per occurrence.

Note: See TracTickets for help on using tickets.