ChimeraX docs icon

Tool: Find Cavities

Find Cavities detects cavities or pockets in an atomic structure using KVFinder, a method based on surface shape, as described in:

parKVFinder: A thread-level parallel approach in biomolecular cavity detection. Guerra JVDS, Ribeiro-Filho HV, Bortot LO, Honorato RV, Pereira JGC, Lopes-de-Oliveira PS. SoftwareX. 2020 Jul-Dec;100606.
pyKVFinder: an efficient and integrable Python package for biomolecular cavity detection and characterization in data science. Guerra JVDS, Ribeiro-Filho HV, Jara GE, Bortot LO, Pereira JGC, Lopes-de-Oliveira PS. BMC Bioinformatics. 2021 Dec 20;22(1):607.

Find Cavities installs and runs pyKVFinder locally. It is also implemented as the kvfinder command. The authors of KVFinder (at the Brazilian Biosciences National Lab) also provide a web service, but it is not used in the ChimeraX implementation. See also: measurements, Protein-Ligand Binding Sites tutorial, MOLE Channel Coloring tutorial, recipe for reading CASTp pockets

Conceptually, the method rolls two spherical probes over the VDW spheres of the macromolecule to identify cavities. PDB HET residues (solvent, ligands, and ions) are ignored. The smaller “inner” probe defines the molecular surface, and the larger “outer” probe gives an initial estimate of the outer limits of the cavities. Points on a grid are evaluated as to whether they fall within the boundaries set by the probes. Next, the cavities are trimmed further from the exterior to avoid finding too many shallow indentations. Finally, cavities smaller than a specified volume are omitted.

Find Cavities can be started from the Binding Analysis or Structure Analysis section of the Tools menu. One or more atomic models should be chosen from the resulting list. Cavity detection settings and associated buttons:

Clicking Apply (or OK, which also dismisses the dialog) runs the calculation. The first time the tool is used, it may take a little longer to run as pyKVFinder is installed locally.

The results for each atomic model are tabulated in a separate cavity list window and reported in the Log. In the graphics window, the cavities are shown as clouds of points on a grid. These collections of dots are opened as (pseudo)atomic models in ChimeraX, each cavity as a separate submodel assigned a unique color.

Replace existing results, if any (default on) indicates whether to overwrite the cavity dots and cavity list when the calculation is re-run on the same atomic model. Otherwise, a new cavity list and additional cavity models will be created without closing the existing ones.

For more details on the method and/or to adjust additional parameters, see the kvfinder command.

Cavity List

Running Find Cavities (or the kvfinder command with showTool true) on an atomic model opens a separate window listing the cavities that were found in the model, with sortable columns:

If a cavity list is closed but the corresponding cavity models still exist, the list can be reshown by choosing it from the bottom section of the Tools menu.

One or more cavities can be chosen from the list by clicking and dragging with the left mouse button; Ctrl-click (or command-click if using a Mac) toggles whether a row is chosen. Chosen rows are highlighted in the dialog, and the following options (if turned on) are applied to the corresponding cavity models:

"Nearby" atoms/residues are within [distance] angstroms of cavity points – distance criterion for the nearby checkbox options above

Color open cavities by depth from outside – color cavity points by depth (assigned as atom attribute kvfinder_depth) using color byattribute with palette bluered
over the full range of values; different colorings can be obtained by reissuing the command with different palette options

Coloring Cavity Surfaces by Protein Properties

The Find Cavities tool includes the option to show surfaces around the clouds of grid points. It might be interesting to color these surfaces by properties from the surrounding protein. However, since only the cavity points (and not the protein atoms) were used to calculate the surfaces, the coloring command must specify using the protein atoms to calculate the properties for coloring these surfaces.

For example, if the option to show cavity surfaces is turned on, at least one cavity surface has been shown, and the protein structure is model #1 and the computed cavity models are #1.2.1, #1.2.2, (etc.), the following commands could be used to color the surfaces by Coulombic electrostatic potential (ESP) and and molecular lipophilic potential (MLP), respectively:

coulombic (#1 & protein) surfaces #1.2 offset -1

mlp (#1 & protein) surfaces #1.2

A negative offset is used to show the ESP inside the cavity surfaces, where binding might occur. For the usual case of coloring a protein surface by its own potential, a positive offset (default 1.4 Å) is used to show the potential outside the surface, where interactions with other molecules would occur.

These types of coloring can be combined with surface transparency, for example:

transparency #1.2 30

UCSF Resource for Biocomputing, Visualization, and Informatics / November 2024