Peak Calling#

Peak calling analyzers identify and extract local maxima from correlation score maps using various detection algorithms. These analyzers can handle distance constraints, boundary conditions, and score thresholding to produce filtered lists of candidate template locations with their corresponding orientations.

Since there exist a multitude of approaches to identify local maxima, we define an abstract interface that peak callers must implement

PeakCaller

Base class for peak calling algorithms.

Built-in Peak Callers#

Subclasses of PeakCaller implement their individual peak calling schemes through PeakCaller.call_peaks(). A list of concrete implementations can be found below.

PeakCallerMaximumFilter(shape[, num_peaks, ...])

Call peaks using a maximum filter with optional distance constraint.

PeakCallerRecursiveMasking(shape[, ...])

Identifies peaks iteratively by finding the top score and masking around it.

PeakCallerScipy(shape[, num_peaks, ...])

Peak calling using skimage.feature.peak_local_max to compute local maxima.

PeakCallerSort(shape[, num_peaks, ...])

A PeakCaller subclass that first selects num_peaks highest scores.

PeakCallerFast(shape[, num_peaks, ...])

Subdivides the score space into squares with edge length min_distance and determines maximum value for each.

Comparison#

See Overview for a visual comparison of all peak callers and guidance on which to use.

For most particle picking tasks you will use PeakCallerMaximumFilter or PeakCallerRecursiveMasking. PeakCallerScipy is preferable for broad, well-separated peaks. PeakCallerSort and PeakCallerFast are internal tools that are computationally efficient but not suitable for particle picking directly.