How to Use PeakFinder
Overview
PeakFinder is a universal peak detection tool for any 1D signal: chromatography, spectroscopy, qPCR melt curves, EEG, sensor data, etc. It uses a first-difference sign-change algorithm for peak detection, followed by prominence-based filtering and parabolic interpolation for sub-point precision. An optional multi-peak Gaussian fitting is available.
Algorithm Pipeline
-
Step 1 - Smoothing (optional):
Savitzky-Golay filter (2nd order polynomial).
-
Step 2 - Baseline (optional):
None / Percentile / Rolling Min.
-
Step 3 - Peak Detection:
First-difference sign change with platform tolerance.
-
Step 4 - Prominence:
Peak height minus max(left saddle, right saddle).
-
Step 5 - FWHM:
Full Width at Half Maximum.
-
Step 6 - Parabolic Interpolation:
7-point Gaussian-weighted quadratic fit for sub-point precision.
-
Step 7 - Gaussian Fitting (optional):
Multi-peak Gaussian fitting using detected peaks as initial values. Max 5 peaks. Optimized via L-BFGS-B.
Output Columns
-
Peak Table:
Position, Height, Prominence, FWHM, Area, SE, CI, R2
-
Fit Table:
Initial vs fitted Position, Height, Sigma, FWHM. R2 of overall fit.
Demo Datasets
-
Gaussian (Clean):
3 well-separated Gaussian peaks.
-
Gaussian (Noisy):
Same + noise.
-
Overlapping:
Two close peaks + one separate.
-
Chromatogram-like:
7 peaks of varying heights and widths.
-
Cell Cycle:
Flow cytometry G1/S/G2+M phase distribution.
-
ECG:
Simulated QRS-P-T complexes.
-
Seismic:
P-wave, S-wave, surface wave arrivals.