Input
Load all three tables to begin.
Use the JSON file created by Download snapshot.
The spreadsheet export, results.csv, cannot restore plots or diagnostics.
Notes: models, flags, reasons and diagnostic codes
Models — one per run, picked next to "ratio" in Results
| Linear in log space (power) | log y = log a + b·log x, i.e. y = a·xb; the default. Needs 3 concentrations above 0. Blanks are not fitted (log 0 is undefined). Fitting on the log scale weights every level by its relative error, which is why it copes with a wide range. CSV: p1 = a, p2 = b. |
| Linear through zero | y = m·x. Needs 2 concentrations above 0; blanks are fitted. Concentration is proportional to intensity, so a ratio of two wells is exactly their intensity ratio. CSV: p1 = m. |
| Linear | y = c + m·x. Needs 3 concentrations; blanks are fitted. An intensity below the intercept has no
concentration (below_intercept). CSV: p1 = c (intercept), p2 = m (slope). |
| Quadratic | y = c + m·x + q·x2, for curves that bend (e.g. detector saturation). Needs 5
concentrations; blanks are fitted. Read back on the rising side; a curve that turns over inside the calibrated
range is blocked (not_monotonic). CSV: p1 = c, p2 = m, p3 = q. |
| Bilinear | Flat at a floor (background) up to a turning point T, then rising as a line; Skyline's
"Bilinear". Needs 5 concentrations, and works best with blanks to define the floor. An intensity at or below the
floor has no concentration (at_floor); T is a rough limit of detection. CSV: p1 = floor, p2 = m, p3 = T. |
| %RSE | The curve's relative standard error on the concentration scale (US EPA SW-846 Method 8000D): 100·√(Σ((x̂ − x)/x)² / (n − p)), where x is each fitted standard's concentration, x̂ its back-calculated concentration, n the number of such standards above 0 that read back, and p the model's parameter count (through zero 1, log space 2, linear 2, quadratic 3, bilinear 3). Blanks never enter, since x = 0. Shown per model in Model comparison, and for the run's model in results.csv (per group, for the curve that group's well was read off). |
| Matrix | Each standard file and each unknown is in one matrix (the Matrix column of the standards and
unknowns files). A compound gets one curve per matrix it has standards in, and each unknown is read off the curve of
its own compound in its own matrix — never another matrix's (no_curve_in_matrix). The two wells
of a ratio may be in different matrices; each is read off its own curve. |
| results.csv | One row per compound × replicate: for each group a matrix, a concentration, an intensity (summed adducts) and the %RSE of the curve that well was read off; then a notes column holding each well's flags and reasons (prefixed by group). A well with no replicate gets its own row; two wells of one group in one replicate are written ";"-separated and noted. |
| Ratios | Per compound: the mean of the numerator group's replicates divided by the mean of the
denominator group's, the two groups picked next to "ratio" in Results. A well with no value is left out of its
group's mean, never counted as 0. A compound with a curve is averaged on concentration. A compound with unknowns
but no curve in any of its wells' matrices is averaged on summed intensity instead, so its ratio is relative,
not absolute (relative_intensity). A compound with standards but no unknowns has nothing to report. |
| PDF report | Opens the browser's print dialog; choose "Save as PDF". Page 1 summarises the whole run: what was read, the model, and the diagnostics other than warnings. Then one page per picked compound with its curves in the picked matrices as shown here, one below the other, its samples, its replicate means, and the plots added under Plots, drawn for that compound alone from the picked matrices' wells. A ratio always comes from every matrix, and says so when one was left out. Last, these notes. |
| Welch p | Two-sided Welch t-test of the two groups' replicate values, as R's t.test(a, b).
Needs 2 values in each group. With 2 or 3 replicates it has very little power: read it as a guide, not a verdict. |
| Plot colours | Each group keeps its colour in every plot. Okabe–Ito and Paul Tol's palettes were designed to stay distinct under the common forms of colour blindness. Kelly's 20 colours are chosen for maximum contrast and reach the most groups; in the order used here, neighbouring colours stay distinct under colour blindness up to 16 groups. Dark2 is colour-blind safe only up to 3 groups and viridis up to 4. Viridis is ordered, so it suits ordered groups such as doses or time points. |
| All but log space | are unweighted, as in Skyline with weighting "None": the highest levels dominate the fit, so low levels usually carry the largest bias. The Model comparison table in Results shows each curve's worst bias under every model. |
Flags — a value was computed, but read it with this in mind
| partial_adducts | The compound's intensity is the sum of its adducts (e.g. [M+H]+, [M+Na]+, [M+K]+). In this file at least one of those adducts was missing (empty or #N/A), so the sum covers only the ones present and the concentration may read low compared with files where every adduct was found. |
| below_curve | The intensity is below the lowest standard used in the fit, so the concentration is extrapolated beyond the calibrated range. |
| above_curve | The intensity is above the highest standard used in the fit, so the concentration is extrapolated beyond the calibrated range. |
| differs_from_intensity | Ratios only. The concentration ratio differs by more than 20% from the plain intensity ratio. Expected whenever the curve's exponent b is not 1, because the concentration ratio is (intensity ratio)1/b — it says the curve matters, not that something is wrong. Only checked when both wells are in the same matrix, so on one curve; across two matrices' curves the intensity ratio is not expected to match. A ratio also carries any flags of the wells it came from. |
| relative_intensity | The compound has no standard curve for its unknowns, so its group means are mean summed intensities and its ratio is a ratio of intensities: a relative change, not a ratio of concentrations. |
| matrices_differ | Relative intensity only. The two groups' wells are in different matrices, and the same amount can give a different intensity in each (ion suppression), so the ratio mixes a matrix effect into the change. |
| missing_replicates | At least one replicate in either group had no value and was left out of that group's mean, so the mean rests on fewer wells than were run. |
Reasons — why a value is blank
| no_signal | None of the compound's adducts had a value in this file. |
| signal_not_positive | The summed intensity is 0 or negative, so the log-space model (or a line through zero) cannot read it back. |
| below_intercept | Linear or quadratic: the intensity is below the curve's value at concentration 0, so the back-calculated concentration would be 0 or negative. |
| no_solution | Quadratic: the curve never reaches this intensity on its rising side (e.g. above where a saturating curve levels off). |
| at_floor | Bilinear: the intensity is at or below the floor, so it is indistinguishable from background. |
| no_curve | The compound is not in the standards file, so there is no curve to read it from. |
| no_curve_in_matrix | The compound has standards, but none in this well's matrix, so there is no curve for it. Another matrix's curve is never used instead. |
| no_matrix | The unknowns file gives no Matrix for this well, so no curve can be chosen. |
| too_few_levels | The curve has fewer distinct concentrations, after dropped and excluded points, than the model needs: 3 above 0 for log space, 2 above 0 through zero, 3 for linear, 5 for quadratic and bilinear. |
| no_variation | Every standard point sits at the same concentration, so the slope is undefined. |
| b_not_positive | Log space: intensity falls as concentration rises, so back-calculation would be meaningless. |
| slope_not_positive | The other models: the fitted slope is 0 or negative across the range. |
| not_monotonic | Quadratic: the curve turns over inside the calibrated range, so one intensity would match two concentrations. |
| off_target | This compound is not the Molecule named for this well in the unknowns file, so it is not quantified there. |
| not_in_this_mix | A standard file, and the standards file lists no row for this compound in it. |
| no_usable_metadata | The file is in the intensity table but in neither the standards nor the unknowns. |
| num_… / den_… | Ratios only. No well in the numerator (num) or
denominator (den) group has a value; the rest of the code is the first well's reason, e.g. den_no_signal. |
| no_wells | Ratios only, as num_no_wells or den_no_wells:
the compound has no unknowns in that group. |
Diagnostics — the table at the top of the results
| ERROR | Results are blocked until the input is fixed, because any answer would rest on a guess. |
missing_column | A required column was not found. The message lists the columns that are present. |
conflicting_value | The same file, compound and adduct appear twice in the intensity table with different areas. |
duplicate_column | Two intensity columns turn out to be the same compound and adduct once names are cleaned up; summing would count it twice. |
conflicting_matrix | A standard file is listed in two matrices in the standards file. Each standard file is in one matrix. |
conflicting_level | The same standard file and compound are listed at two different concentrations. |
conflicting_metadata | A file has two rows in the unknowns file that disagree. |
standard_without_levels | A row in the unknowns file has group "Standard", but the standards file gives no levels for that file. |
unknown_matrix | A standard file's matrix has no compounds listed, so its contents are unknown. |
| WARN | Results are computed, but something is missing or will be skipped. |
no_standards | A compound in the intensity table has no standards in any matrix, so it cannot be quantified. |
not_in_intensity_table | A compound or file named in the standards or unknowns has no rows in the intensity table. |
no_metadata | A file in the intensity table is in neither the standards nor the unknowns. |
molecule_not_in_intensity_table | An unknown's Molecule is not in the intensity table. |
no_target_molecule | A row in the unknowns file has no Molecule, so the file is skipped. |
no_adduct_column | The intensity table has no Precursor Adduct or Adduct column, so each compound
is read as one intensity per file and adducts are not summed. A charge column does not count: charges are not adducts.
If the export has several rows per compound and file (one per charge or adduct), they then collide as
conflicting_value. |
no_matrix | A row in the unknowns file has no Matrix, so its well gets no concentration. |
no_curve_in_matrix | A compound has unknowns in a matrix it has no standards in; those wells get no concentration. |
no_replicate_column | The unknowns file has no Replicate column. Each group's wells are still averaged for the ratios, but results.csv gives every well its own row. |
incomplete_standard_row | A standards row is missing its file, matrix or molecule and is skipped. |
standard_file_not_in_metadata | A standards row names a file the tool could not link to a matrix; that row is skipped. |
no_level | A standard point has no concentration. |
no_signal / signal_not_positive | Standard points with no usable intensity; they are dropped from the fit. |
no_curve_fitted | A curve could not be fitted (see the reasons above), so it gives no concentrations. |
| INFO | For the record; nothing is wrong. |
compound_in_several_matrices | A compound has standards in more than one matrix. It gets one curve per matrix, and each of its unknowns is read off the curve of its own matrix. |
absent_pairs | Some file × compound pairs are missing from the intensity table; they are left empty, not set to zero. |
duplicate_rows | Exact repeats in the intensity table were dropped. |
level_not_positive | Standard points the model cannot use: blanks (concentration 0) under the log-space model, where log 0 is undefined, and any negative concentration. |
standard_in_unknowns | A file is in both the unknowns and the standards; it is treated as a standard. |
relative_intensity | Compounds with unknowns but no standard curve: they are summarised on intensity, and their ratios are relative. |
missing_replicates | How many ratios rest on fewer replicates than were run, because some wells had no value. |
no_ratio_groups | Two different groups have not been picked for the ratio, so no ratios are computed. |
excluded_by_hand | How many standard points were clicked out of the fit. |