From chromatogram to a defensible area
A practical guide to the Chromatobench preview: import a trace, choose boundaries, inspect the baseline, and preserve your decisions.
1. Start with a supported export
Use a text file containing exactly two columns: time or volume, followed by a single detector signal. Separate values with commas, tabs, or semicolons and use periods for decimal numbers. One header row is optional. X values must increase strictly; every data cell must be a finite number with magnitude no greater than 10100.
Volume,Signal
0,0.02
1,0.12
2,0.03Select the actual units before importing. Choosing mAU for values exported in AU does not convert them. Convert seconds to minutes or µL to mL in your source data before this two-column import.
For an instrument export, use the separate Import instrument export action. Six text profiles are recognised. UNICORN™-style exports have three header rows and tab-separated coordinate/signal pairs, encoded as UTF-8 or UTF-16LE with a byte-order mark. Waters .arw text has two metadata rows and one time/value pair per line; it does not state units, so you choose the x-axis and signal units before importing and that declaration is saved with the project. Shimadzu LabSolutions ASCII has one section per chromatogram or status trace; each raw intensity is multiplied by the section’s declared Intensity Multiplier to give the declared unit (for example µV integers to mV), and the declared point count must match. Peak tables and fraction reports stay in the file but are not imported. Agilent OpenLab two-column CSV (UTF-16) also does not state units, so you declare them as for Waters. Chromeleon 7 single-channel text and EZStart .asc files state their units; Chromeleon files with decimal commas are read as such, and for EZStart the first sample is taken to be at 0 min, as the import review notes. Review source labels, units, point counts and ranges, then select the channels you want. Each channel retains its independent sampling grid; channels are not padded or resampled to match. The label “ml” is displayed as “mL” without changing values.
Injection, run-log and fraction columns are events, even when their labels look numerical. They remain in the retained original file but are not integrated or automatically mapped to collection windows. An exported curve can already contain vendor processing: its label is preserved, and it must not automatically be treated as an untouched detector measurement.
Each profile is tested against openly licensed example files (from the Appia, TRACEview and ChromStream projects). The Shimadzu file is LabSolutions 5.98; other versions import with a warning. The files do not establish the instrument model or software version. Native binary files (.res, .lcd, Empower databases) remain unsupported. Other text tables, including multichannel and decimal-comma exports, can be imported by mapping their columns (below). A matching filename extension alone does not establish compatibility.
Smart upload: map the columns of an unrecognised text table
When no profile recognises a text file, Chromatobench asks you to map its columns instead of rejecting it. The server suggests settings from the file’s structure: the delimiter, decimal separator, how many lines to skip, the header rows, an x column that increases strictly and up to three signal columns. This is a fixed set of rules, not AI, and nothing leaves ChromatoHub. The suggestion is only a starting point. The first lines of the file are shown with skipped, header and data rows highlighted, and a preview of each selected column updates as you edit. You always choose the x unit (mL or min) and a unit for every signal column yourself; nothing is converted.
The same mapping is applied on the server and in your browser, and both must give identical values before anything is imported. The mapping is saved with the original file in the project, so reopening repeats the import exactly (importer generic-table-v1). Limits: one x column and up to six signal columns per file; numbers must use the chosen decimal separator without thousand separators; x must increase strictly; each column needs at least three and at most 50,000 points; an empty cell skips only that column’s point. With Stop at a footer, data ends at the first row whose x value is not a number; otherwise such a row is an error. When the server is unavailable, you map the file in your browser, starting from neutral settings (comma, point, one header row, x in column 1, signal in column 2). A mapping cannot tell you what a column measured: check the labels and units.
2. Inspect the interval and baseline together
For an isolated peak, its area is measured relative to a baseline between chosen start and end points. A line between endpoints is a useful explicit choice when those endpoints represent the local background. If an endpoint lies on a peak flank, the line can remove part of the signal of interest. Overlapping peaks and curved backgrounds need additional judgment; a line does not separate co-eluting components.
See Agilent’s peak area measurement reference and baseline and integration events for the role of baseline construction.
In Chromatobench, the shaded region marks your selected interval and the dashed line shows the baseline. Choose Zero (no correction) only when integrating relative to zero is intended. The default whole-trace interval is a starting point, not a detected peak.
3. Know what the calculation reports
Chromatobench linearly interpolates the imported signal at each boundary and applies the trapezoidal rule across all original samples inside the interval. It subtracts the selected baseline and keeps negative contributions. This is a signed net area; it is not an automatic vendor peak integration algorithm.
In mapped tables, rows with a blank selected signal are skipped. Plotting and trapezoidal integration connect the surviving samples across the gap; that connecting line is not a measurement of the missing signal. Inspect gaps and sampling intervals before interpreting an area.
Area units are signal × x-axis unit: for example, mAU·mL or mAU·min. The reported apex is the largest corrected signal in the selected interval. If several peaks are included, the area covers them together and the apex describes only the highest point. The interval calculation does not identify negative peaks; the optional suggestions below can.
The plot uses fewer display points for large traces while retaining local minima and maxima. Use the view start/end controls, “Zoom to interval,” or “Show all” to inspect a smaller range. View boundaries are interpolated for display before downsampling; the signal-axis scale stays fixed. Zoom never changes the original samples, integration boundaries or calculated results, and is not saved in the project. An exported SVG captures the displayed view. Numerical analysis uses the full accepted data within the integration interval. No smoothing or peak fitting is applied to any area.
4. Check suggested peaks before adding them
Under Named regions, Find peaks proposes candidate regions. A suggestion is a hypothesis about where a peak starts and ends, not an identified component. Nothing is added until you chooseAdd as region or Add all; suggestions are not saved in the project, and one undo removes everything added by a single click.
The detector works on every original sample. It estimates noise from the median absolute deviation of second differences of the signal, which ignores a constant baseline and, on an evenly spaced sampling grid, a linear baseline. Irregular spacing can inflate this noise estimate. The default minimum width is based on median sample spacing; smoothing uses sample counts, so its time or volume span varies on irregular grids. A local maximum is suggested when its prominence (its height above the higher of the two lowest points on either side before the signal rises above it; see the SciPy definition of peak prominence) is at least the minimum S/N (default 10) times that noise, and its width at half prominence is at least the minimum width (default five sampling intervals). A larger minimum width also enables a light moving-average smoothing for detection only. Boundaries run outward until the signal flattens near its local background, or stop at the lowest point between two neighbouring suggestions; neighbours can touch but never overlap, so their areas can be added. Negative peaks are only searched for when you enable them.
Added suggestions become ordinary regions labelled “Peak N” with a line between endpoints and are integrated from the raw samples, exactly like regions you define yourself. Suggestions that would overlap an existing region are trimmed to touch it, or skipped if their apex lies inside it.
Known limits: shoulders and unresolved co-eluting species produce no separate maximum and are not split; a drifting or curved baseline can shift boundaries; broad or tailing peaks may be cut early; filtered detector noise can be underestimated, so noise bumps may pass a low threshold; peaks at the very start or end of the trace are not suggested. Always inspect the boundaries and baseline on the plot. A suggested area, like any area, is not a purity.
5. Compare like with like
Only traces with identical axis and signal units are overlaid. Signals are not automatically normalized, aligned, or converted. Matching units alone do not make different detectors, wavelengths, flow rates, or sample loads quantitatively comparable. Area by itself does not establish purity, concentration, or molecular identity. Channels sharing an original-file fingerprint are signals from that file, not independent experimental replicates.
6. Map collected fractions to the detector
Enter up to 48 non-overlapping collection windows per run, in the same time or volume units as the trace. A positive detector-to-collector delay maps each window back to the detector: detector coordinate = collector coordinate − delay. Use zero if your exported collection marks already include this correction; applying it again would shift the windows incorrectly.
The delay represents transport between detection and collection. A constant time delay is only appropriate when flow is constant over the interval; this preview does not calculate a changing delay from a flow profile. Consult your instrument’s calibration and export conventions. See Agilent’s fraction collector delay calibration reference.
Every fraction uses the baseline of the entire selected analysis interval, not a new line between its own boundaries. The mapped windows must fit inside that interval. Green shading marks selected fractions; deselect a fraction to exclude it from the pooling summary. Signed areas, including negative contributions, are added without converting them to purity or recovery. The selected span is collection volume for mL traces and collection duration for minute traces. Independent measurements are still needed to judge a pool.
7. Keep raw data and decisions
Download a project JSON to retain all imported samples, their units, and each trace’s interval and baseline, plus fraction boundaries, delay and pooling selections. New projects use format version 6, which embeds each original file once, unchanged, with its SHA-256 fingerprint. Channel mappings, column mappings of mapped tables, source labels, importer versions and the analysis engine version are retained. Saving and reopening verify original-file integrity and check that reparsing the selected channel produces the saved trace. Unsupported versions and inconsistent data are rejected, not silently recomputed. Fingerprints are consistency checks, not proof of authorship or scientific validity.
Version 1 and 2 projects still open; they are clearly marked as legacy because original input bytes and importer provenance were not saved. Version 1 opens with empty fraction plans. Exporting a legacy project as version 6 does not recreate missing originals. Versions 3 to 5 remain readable; version 3 originals are deduplicated when saved again. Synthetic examples are labeled separately. Reopen the downloaded project to continue. The separate fractions CSV records collector and detector windows, signed areas, selections and totals. The analysis CSV records settings, results, and the raw, baseline, and corrected values within the chosen interval. It is a report, not a two-column import file. SVG export preserves the plotted axes and legend; keep the project and CSV alongside it.
Active analysis state stays in browser memory and is cleared when you leave or reload. Preserve work by downloading a project or using Save to account; reopen the saved project to continue. Instrument imports normally use the server, with browser-only fallback when it is unavailable. Uploaded originals can be retained separately from the active analysis and account-saved project. Check the import retention controls and the privacy notice for storage and expiry details.
Input limits are 5 MiB per input file, 50,000 points per trace, six traces per project, and 32 MiB per saved project including embedded originals and their base64 encoding overhead. A project with several large traces may exceed this total even when each trace fits individually; save smaller groups before removing traces. This preview does not provide automatic acceptance of peak suggestions, peak fitting or deconvolution, automated pooling decisions, instrument control, or a regulated audit trail.
Integration references checked 24 September 2026; delay and peak prominence references checked 25 September 2026. The instructions above describe this preview’s implementation; they do not claim equivalence to Agilent or other vendor software.