Skip to content

Projection Subtraction

Daniel Asarnow edited this page Mar 22, 2018 · 7 revisions

Projection subtraction with UCSF PyEM

Although the notion underlying projection subtraction is simple, close attention to a few subtle points is needed to obtain good results. The following document provides a brief introduction to projection subtraction, including tips on obtaining high-quality subtraction results and usage instructions for projection_subtraction.py.

Subtraction densities

Negative density

Many EM reconstruction programs (e.g. Relion) use mean-subtracted density distributions. Output maps thus contain negative densities, which indicate systematically dark regions in raw micrographs. For example, the space between the soluble ankyrin domains in TRPV1 rarely contains any density, and appears as a dark spot in 2D averages. In contrast, empty ice appears at a roughly uniform, noise-floor intensity.

Care must be taken to retain such negative densities in subtraction maps, lest these dark spots be retained. In other words, single-particle images provide information both about where the electron density is, and where it is not. Both type of information must be considered in order to effect complete subtraction.

Negative density can be visualized in UCSF Chimera by turning off box face caps (Volume Viewer > Features menu > Surface and mesh options > Cap high values at box faces). With this option off, negative isosurface thresholds will function normally.

Subtraction map recipe

The key points are 1) the subtraction map must have the same relative scale as the map calculated from intact particles, and 2) any negative density values must be retained.

The first step is an initial segmentation of the original, or "whole," map into two pieces. One part will be subtracted, the other part represents what will be retained. The initial segmentation can be performed either manually, using a volume editing tool (e.g. UCSF Chimera volume eraser), or automatically based on distance from components of an atomic model. The later method is preferred, because it requires less time and user interaction, and simplifies retention of negative density values. If the former method is used, start from step 5.

  1. Fit atomic model in whole density. (Z-flip if necessary).
  • Select model region corresponding to desired subtraction density.
  • Select density (e.g. with Chimera color zone tool) based on distance from selection model components.
  • Split map.
  • Mask the non-selected density (i.e. the part to be kept after subtraction), using Relion or another tool.
  • Subtract this masked, non-selected density from the original map, thus recreating the subtraction map including any negative densities.
  • Generously mask the remaining density, again taking care to include negative map regions, to yield the final subtraction map.

Mask creation for subtraction maps tends to require several trial-and-error iterations in order to correctly include the desired regions and surrounding negative densities, while still excluding the non-desired regions. Boolean operations combining different masks may be helpful/required.

FRC normalization

Reconstructed densities represent averages of the information contained in many projection images of individual particles, yet subtraction will be performed only on the individual particles. Projections of the subtraction map are filtered using the CTF parameters of each particle, but may still differ subtly from any individual particle.

EMAN2 provides an "optimal" subtraction routine in which the Fourier Ring Correlation (FRC) is used to normalize the CTF-filtered subtraction projections on a per-particle basis. Although the algorithm cannot correct for large changes in intensity scale or dynamic range, it provides slightly better results in practice than direct subtraction. However, since correlations only take values in [0, 1], the FRC normalization only makes projections weaker before subtraction. Thus, some systematic under-subtraction may result, but this is much less severe in general than over-subtraction.

Running the program

Running projection_subtraction.py without arguments, or with the --help option, will print the usage information.