SoftMax Pro plates across two kit lots (real data)

ELISAtools 0.1.8 example data, Feng Feng, MIT license; 5 plates, 2 kit lots · generated 2026-09-29 19:57 · immunoassay v1.0.0

5/5
plates passed QC
analyte (undisclosed)
analytes
74
samples
32
flagged replicate groups
0
values measured in range

1 · Plate acceptance

A plate passes when R² ≥ 0.98, ≥ 75% of standard levels recover within 80–120% with CV ≤ 20%, a quantifiable range exists, and ≥ 67% of controls with expected ranges fall inside them. Limits are in-well concentrations.

plate_idanalyteverdictmodelR²standards OKlodlloquloqcontrols OKflagged groupsreasons
Assay_2_p1analyte (undisclosed)✓ pass4PL0.98797/732.146.93,000.0n/a7
Assay_3_and_4_p1analyte (undisclosed)✓ pass4PL0.99427/78.99646.93,000.0n/a5
Assay_3_and_4_p2analyte (undisclosed)✓ pass4PL0.98967/76.92946.93,000.0n/a5
Assay_11_and_12_p1analyte (undisclosed)✓ pass4PL0.99657/725.246.93,000.0n/a11
Assay_11_and_12_p2analyte (undisclosed)✓ pass4PL0.98356/718.046.91,500.0n/a4

2 · Standard curves

Weighted (1/y^2) least-squares fits. 5PL is chosen over 4PL only when its AICc is lower by more than 2. Weighted residuals should scatter evenly around zero; a curved pattern means the model is wrong for the data. The plate map shows raw OD. Excluded wells are marked ✗.

Assay_2_p1 · analyte (undisclosed)

figure figure
modelaa_sebb_sec (EC50)c_sedd_seR²aicc_4plaicc_5pl
4pl-0.002250.003741.1630.06733,118.71,234.24.771.3710.9879-202.1-199.2
Standard recovery
concentrationn_wellsn_quantifiedmean_back_calccv_pctrecovery_pct
46.93340.812.987.0
93.833108.014.4115.2
187.533201.816.7107.6
375.033393.711.4105.0
750.033726.717.596.9
1,500.0331,514.09.464100.9
3,000.0333,179.116.5106.0

Assay_3_and_4_p1 · analyte (undisclosed)

figure figure
modelaa_sebb_sec (EC50)c_sedd_seR²aicc_4plaicc_5pl
4pl-0.0003560.001891.1840.038771,915.9332.83.290.3770.9942-231.0-229.9
Standard recovery
concentrationn_wellsn_quantifiedmean_back_calccv_pctrecovery_pct
46.93347.08.2100.2
93.83390.66.06596.6
187.533197.59.71105.4
375.033397.812.8106.1
750.033749.69.489100.0
1,500.0331,400.49.04693.4
3,000.0333,282.45.878109.4

Assay_3_and_4_p2 · analyte (undisclosed)

figure figure
modelaa_sebb_sec (EC50)c_sedd_seR²aicc_4plaicc_5pl
4pl0.0002010.002591.1430.054923,068.91,024.64.1590.98040.9896-216.5-213.3
Standard recovery
concentrationn_wellsn_quantifiedmean_back_calccv_pctrecovery_pct
46.93348.68.505103.7
93.83390.53.51596.5
187.533197.013.9105.1
375.033392.418.8104.6
750.033782.918.4104.4
1,500.0331,564.712.8104.3
3,000.0333,005.310.6100.2

Assay_11_and_12_p1 · analyte (undisclosed)

figure figure
modelaa_sebb_sec (EC50)c_sedd_seR²aicc_4plaicc_5pl
4pl-0.006240.001791.0870.026981,531.6186.73.5590.24670.9965-220.8-219.4
Standard recovery
concentrationn_wellsn_quantifiedmean_back_calccv_pctrecovery_pct
46.93348.97.125104.4
93.83391.07.03197.0
187.533189.49.34101.0
375.033380.33.395101.4
750.033731.65.23597.5
1,500.0331,624.83.472108.3
3,000.0332,875.412.295.8

Assay_11_and_12_p2 · analyte (undisclosed)

figure figure
modelaa_sebb_sec (EC50)c_sedd_seR²aicc_4plaicc_5pl
4pl-0.004560.003141.0510.048521,663.7401.93.4190.4620.9835-195.1-191.8
Standard recovery
concentrationn_wellsn_quantifiedmean_back_calccv_pctrecovery_pct
46.93347.35.041101.0
93.83396.99.989103.4
187.533185.518.298.9
375.033385.89.538102.9
750.033813.94.568108.5
1,500.0331,391.011.492.7
3,000.0333,496.130.0116.5

Excluded wells

plate_idwelltypesample_idodoutlier_reason
Assay_2_p1D4sampleAssay_2_p1:P50.0572replicate CV > 20% and |modified z| > 3.5
Assay_3_and_4_p1D8sampleAssay_3_and_4_p1:P70.1804replicate CV > 20% and |modified z| > 3.5
Assay_11_and_12_p1H1blankBLANK0.0511replicate CV > 20% and |modified z| > 3.5
Assay_11_and_12_p2H1blankBLANK0.0485replicate CV > 20% and |modified z| > 3.5

3 · Controls and flagged samples

plate_idanalytesample_idmeasuredlowhighcv_pctrange_flagin range
Assay_2_p1analyte (undisclosed)QC_CONTROL868.5––3.693–
Assay_3_and_4_p1analyte (undisclosed)QC_CONTROL693.5––10.7–
Assay_3_and_4_p2analyte (undisclosed)QC_CONTROL714.6––1.857–
Assay_11_and_12_p1analyte (undisclosed)QC_CONTROL478.1––7.993–
Assay_11_and_12_p2analyte (undisclosed)QC_CONTROL577.4––9.333–

Flagged replicate groups

below_lloq / above_uloq: outside the validated range (not reported as numbers). below_lod: not distinguishable from blank. cv_high: replicate CV above 20%.

plate_idanalytesample_idgroupdilutionwellsod_meanconc_wellcv_pctflags
Assay_2_p1analyte (undisclosed)Assay_2_p1:P110.0B4,B5,B60.0121721.224.4below_lloq;below_lod;cv_high
Assay_2_p1analyte (undisclosed)Assay_2_p1:P310.0C4,C5,C60.008716.86.134below_lloq;below_lod
Assay_2_p1analyte (undisclosed)Assay_2_p1:P510.0D4,D5,D60.008316.311.6below_lloq;below_lod;1_outlier_well_removed
Assay_2_p1analyte (undisclosed)Assay_2_p1:P210.0E4,E5,E60.0092317.516.0below_lloq;below_lod
Assay_2_p1analyte (undisclosed)Assay_2_p1:P410.0F4,F5,F60.0129322.35.512below_lloq;below_lod
Assay_2_p1analyte (undisclosed)Assay_2_p1:P1110.0F7,F8,F90.033346.412.6below_lloq
Assay_2_p1analyte (undisclosed)Assay_2_p1:P610.0G4,G5,G60.0296742.310.6below_lloq
Assay_3_and_4_p1analyte (undisclosed)Assay_3_and_4_p1:P110.0B4,B5,B60.0212727.710.3below_lloq
Assay_3_and_4_p1analyte (undisclosed)Assay_3_and_4_p1:P1210.0C11,D10,D110.033240.211.9below_lloq
Assay_3_and_4_p1analyte (undisclosed)Assay_3_and_4_p1:P710.0D7,D8,D90.0784783.710.11_outlier_well_removed
Assay_3_and_4_p1analyte (undisclosed)Assay_3_and_4_p1:P210.0E4,E5,E60.036443.59.427below_lloq
Assay_3_and_4_p1analyte (undisclosed)Assay_3_and_4_p1:P1110.0F7,F8,F90.0303737.38.279below_lloq
Assay_3_and_4_p2analyte (undisclosed)Assay_3_and_4_p2:P1510.0B10,B11,C100.0312742.66.201below_lloq
Assay_3_and_4_p2analyte (undisclosed)Assay_3_and_4_p2:P1210.0C11,D10,D110.012418.725.7below_lloq;cv_high
Assay_3_and_4_p2analyte (undisclosed)Assay_3_and_4_p2:P1410.0E10,E11,F100.019628.13.956below_lloq
Assay_3_and_4_p2analyte (undisclosed)Assay_3_and_4_p2:P1110.0F7,F8,F90.0175325.512.6below_lloq
Assay_3_and_4_p2analyte (undisclosed)Assay_3_and_4_p2:P1310.0G7,G8,G90.0346346.69.499below_lloq
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P110.0B4,B5,B60.0115711.79.431below_lloq;below_lod
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P1410.0B11,C11,D110.0588339.216.6below_lloq
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P310.0C4,C5,C60.0359726.12.817below_lloq
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P510.0D4,D5,D60.0451331.411.8below_lloq
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P710.0D7,D8,D90.0210717.422.7below_lloq;below_lod;cv_high
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P210.0E4,E5,E60.0116711.811.8below_lloq;below_lod
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P910.0E7,E8,E90.0252719.910.2below_lloq;below_lod
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P1210.0E10,F10,G100.0574338.44.561below_lloq
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P410.0F4,F5,F60.012112.111.5below_lloq;below_lod
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P1110.0F7,F8,F90.0582338.86.519below_lloq
Assay_11_and_12_p1analyte (undisclosed)Assay_11_and_12_p1:P610.0G4,G5,G60.0220718.016.7below_lloq;below_lod
Assay_11_and_12_p2analyte (undisclosed)Assay_11_and_12_p2:P110.0B4,B5,B60.0441729.58.865below_lloq
Assay_11_and_12_p2analyte (undisclosed)Assay_11_and_12_p2:P610.0D7,D8,D90.0721345.813.0below_lloq
Assay_11_and_12_p2analyte (undisclosed)Assay_11_and_12_p2:P210.0E4,E5,E60.066442.513.5below_lloq
Assay_11_and_12_p2analyte (undisclosed)Assay_11_and_12_p2:P510.0G4,G5,G60.0669342.86.183below_lloq

4 · Dilution linearity

Samples run at more than one dilution should agree after correction (±20%). A concentration that rises with dilution points to matrix interference or the high-dose hook effect.

None.

5 · Inter-plate normalization

Bridge controls shared by every plate estimate a multiplicative plate factor, on the log scale with the average plate as reference. Corrected concentration = raw / factor.

plate_idanalytefactorlog_factor_sen_bridgesbridge_ids
Assay_2_p1analyte (undisclosed)1.33–1QC_CONTROL
Assay_3_and_4_p1analyte (undisclosed)1.062–1QC_CONTROL
Assay_3_and_4_p2analyte (undisclosed)1.094–1QC_CONTROL
Assay_11_and_12_p1analyte (undisclosed)0.7321–1QC_CONTROL
Assay_11_and_12_p2analyte (undisclosed)0.8841–1QC_CONTROL
analytesample_idinter-plate CV % beforeinter-plate CV % after
analyte (undisclosed)QC_CONTROL22.28.88e-14
figure

6 · Group comparisons

Tests are run on log10-transformed concentrations. Shapiro-Wilk on every group decides between parametric tests (Welch t / Welch ANOVA) and rank tests (Mann-Whitney / Kruskal-Wallis). Omnibus p-values are Benjamini-Hochberg adjusted across analytes; pairwise p-values are Holm-adjusted within each analyte. Hollow points are censored values that were substituted.

None.

Omnibus tests

None.

Pairwise comparisons

None.

7 · Settings and warnings

{
  "model": "auto",
  "weighting": "1/y^2",
  "include_zero_standard": true,
  "qc": {
    "max_cv_pct": 20.0,
    "recovery_low_pct": 80.0,
    "recovery_high_pct": 120.0,
    "edge_tolerance_pct": 5.0,
    "lod_sd_multiplier": 3.0,
    "outlier_z": 3.5,
    "max_std_exclusions": 2,
    "min_r_squared": 0.98,
    "min_std_pass_frac": 0.75,
    "min_control_pass_frac": 0.6666666666666666
  },
  "stats": {
    "transform": "log10",
    "censored": "substitute",
    "harmonize_lloq": true,
    "lloq_divisor": 1.4142135623730951,
    "alpha": 0.05,
    "normality_alpha": 0.05,
    "exclude_failed_plates": true,
    "value_col": "conc_norm"
  },
  "normalize": true,
  "linearity_max_deviation_pct": 20.0,
  "group_order": null,
  "control_ranges": null
}