How Nagura Lab integrates peaks: method and test results
Nagura Lab finds the peaks in one chromatogram, draws each baseline and peak boundary on the chart, and lists retention time, area, height, width, tailing, plates and resolution. You can move, add and remove peaks. This page says exactly how it works and how it was tested.
Under development: automatic, check before use
Integration is new and still being developed. Look at the drawn baselines and boundaries before you use a number, and adjust them where they are wrong. It is not validated software: do not use it for GMP, GLP or other regulated results; use your validated chromatography data system for those.
It has been tested on synthetic peaks with known areas (below), not against ChemStation, OpenLab, Empower, Chromeleon or any other data system. Different integrators give different areas, most of all for overlapping peaks, small peaks and drifting baselines. If you compare our numbers with your own data system and they differ, please tell us.
How to use it
- Open a run in Nagura Lab and plot a chromatogram.
- Click Find peaks under the chart. With several chromatograms on the chart, the first is integrated; pick another under Trace.
- Check the drawn baselines. Drag a start or end mark on the chart to move it. Click Add peak, then drag across the chart over the peak to add it. The × in the table removes a peak.
- Sensitivity (low, normal, high) sets how small a peak may be. Changing it finds the peaks again and undoes your changes.
Your first chromatogram is free to integrate. More chromatograms and the peak table as CSV are a Pro feature, free during early access with a verified email.
How peaks are found
- Noise. The baseline noise σ is the robust standard deviation of the differences between neighboring points, divided by √2 (1.4826 times the median absolute deviation). Peaks and slow drift barely change it.
- Slope. The slope of the signal at every point is a least-squares straight-line fit over 2m + 1 points around it (a Savitzky-Golay first derivative). A constant baseline slope, the median slope of the whole run, is subtracted.
- Smoothing window. A first search uses m = 2. The window is then set to about a third of the typical width at half height of the largest peaks found, and the run is searched again.
- Start, apex, end. A peak starts where the slope rises above a threshold: 5, 3 or 2 times the robust spread of the slope (low, normal, high sensitivity). It ends where the slope, after falling, stays within the threshold for m points (at least 3). If the signal rises again before that, the peaks overlap: they are split at the lowest point between them.
- Tails. Each start and end is then moved outward as long as the smoothed signal keeps falling, at most as far again from the apex, so a peak includes its tails.
- Small peaks. A peak is kept when it stands at least 30, 10 or 5 times the noise σ above its baseline (low, normal, high). In a group of overlapping peaks, a peak that stands less than that above its valley is merged with its neighbor. Dips below the baseline are not peaks.
Baseline
Each peak gets a straight baseline from its start to its end. Peaks that overlap share one straight baseline from the start of the group to its end, and a vertical drop line at the lowest point between two peaks splits their areas. Each end of a baseline sits at the average of the signal over m points on either side, so one noisy point does not tilt it. Moving the start or end of a group moves the shared baseline; moving a drop line only changes how the area is split.
What is measured
- Retention time (min): the highest point above the baseline, refined by a parabola through it and its two neighbors.
- Height: the signal above the baseline at the apex, in the signal's unit (mAU for UV).
- Area: the sum, point by point (trapezoids), of signal minus baseline times the time step, from start to end. In signal unit times seconds (mAU·s), as chromatography data systems report it. Parts below the baseline count as negative.
- Area %: the peak's area divided by the sum of all peak areas, times 100.
- Width (min): width at half height, w½, between the two points where the signal crosses half the height (linear interpolation between data points).
- Tailing (USP): T = W0.05 / (2f), where W0.05 is the width at 5% of the height and f the distance from the front at 5% height to the apex.
- Plates: N = 5.54 × (tR / w½)², with tR from the start of the run.
- Resolution: to the peak before, Rs = 1.18 × (tR2 − tR1) / (w½,1 + w½,2).
A value is left empty when it cannot be measured inside the peak, for example tailing when the signal does not fall to 5% of the height before the drop line of an overlapping peak.
Test results on known peaks
Synthetic chromatograms with peaks of known area: 3-minute runs, one point every 0.12 s, Gaussian peaks with σ = 1.5 s (width at half height 3.5 s, about 29 points) and height 100, on a flat baseline with random noise of σ 0.05 (USP signal-to-noise about 670) unless stated. The tailing peak is an exponentially modified Gaussian with τ = σ. Two equal Gaussians 4σ × R apart have resolution R. Areas in units·s; errors are measured minus true. The test suite recomputes this table on every change, and fails when the page no longer shows what the code measures.
| Test | True area | Measured | Area error | RT error | Width error |
|---|---|---|---|---|---|
| Isolated Gaussian | 376.0 | 375.9 | -0.03% | -0.015 s | +0.02% |
| Tailing peak (EMG, τ = σ) | 372.0 | 371.7 | -0.08% | +0.003 s | -0.10% |
| Two peaks, R = 1.5, peak 1 | 376.0 | 375.8 | -0.06% | -0.010 s | -0.01% |
| Two peaks, R = 1.5, peak 2 | 376.0 | 376.1 | +0.03% | +0.004 s | -0.05% |
| Two peaks, R = 1.0, peak 1 | 376.0 | 375.9 | -0.02% | -0.006 s | +1.53% |
| Two peaks, R = 1.0, peak 2 | 376.0 | 375.9 | -0.04% | -0.004 s | +1.53% |
| Two peaks, R = 1.0, heights 2:1, peak 1 | 376.0 | 380.8 | +1.27% | +0.006 s | +0.66% |
| Two peaks, R = 1.0, heights 2:1, peak 2 | 188.0 | 183.0 | -2.64% | +0.025 s | +3.59% |
| Noisy baseline (S/N 33) | 376.0 | 377.5 | +0.41% | +0.053 s | +0.26% |
| Sloped baseline (20 units/min) | 376.0 | 375.7 | -0.09% | -0.002 s | -0.09% |
USP tailing of the EMG peak: true tailing 1.23, measured 1.23. Measured resolution of the equal pairs: 1.51 for R = 1.5, 0.99 for R = 1.0.
The test suite checks these bounds:
- Isolated, tailing and sloped-baseline peaks: area within 0.5%, retention time within one data point (0.12 s), width within 1%.
- Two equal overlapping peaks at R = 1.5 and R = 1.0: area within 0.5% each.
- Unequal overlapping peaks (heights 2:1, R = 1.0): area within 5%. A drop line gives the smaller peak too little area and the larger too much, as with any drop-line integrator.
- Noisy baseline (S/N 33): area within 1.5%, retention time within two data points.
- An isolated Gaussian in 20 repeats with different noise, at 0.012 to 0.48 s per point and 1.1 to 14 s wide at half height: area within 0.5% every time.
- Pure noise: no peaks at any sensitivity.
What it does not do
- It does not claim to match ChemStation, OpenLab, Empower, Chromeleon or any other data system. We have never compared it with them.
- No calibration or quantitation, no integration events or timed settings, no tangent skims for small peaks on a tail, no negative peaks.
- One chromatogram at a time; spectra are not integrated.
- Not validated: not for GMP, GLP or other regulated work.
Integration runs in your browser, like the rest of Nagura Lab: your files are never uploaded.