96-Well Plate Analyzer - Technical
README · ARCHITECTURE · source
Keep the well coordinates intact
CSV/TSV parsing preserves empty fields. Numeric input must contain exactly eight rows and twelve finite readings per row, with optional A-H row labels and a 1-12 column header.
The old trailing-wavelength heuristic is gone. An extra numeric column now produces an error instead of being guessed away. Blank map cells are allowed; missing numeric readings are not.
Technical repeats are not independent samples
Repeated sample IDs identify technical repeats. Their corrected readings are averaged first. Group means, SD, SEM, and tests use one value per sample.
SD uses n-1; SEM is SD divided by the square root of n. With one sample, SD and SEM are unavailable rather than zero. CV is unavailable when the mean is nonpositive. There are no universal green/amber/red CV acceptance bands.
ELISA calculation order
- Subtract the reference wavelength per well, if enabled.
- Average technical-repeat OD for each standard and unknown.
- Fit an increasing four-parameter logistic curve to standard-level mean OD.
- Interpolate each unknown mean once.
- Apply the sample's pre-assay dilution factor once.
The fit uses unweighted least squares and multiple deterministic starting points. It requires at least six distinct standard levels, including five above zero. The zero standard participates in fitting, but the reporting range starts at the lowest nonzero standard.
Unknowns outside the calibration interval remain visible with a status and no numeric concentration. They are excluded from group calculations, with a warning. They are not extrapolated or replaced with zero.
The results include residuals, standard back-calculations, recovery percentages, R-squared, and RMSE. These help inspect a fit; they do not automatically establish that an assay passed.
The BioLegend CXCL10/IP-10 protocol informed the workflow. Reference-wavelength correction is not blank-well subtraction, and this version does not silently subtract a zero-standard blank.
Charts and optional tests
Chart.js draws bars from zero, includes the sample points in the axis range, and draws both ends of the chosen SD/SEM error bars. CSV exports retain the sample and well records; PNG exports include the error-bar label and any calculated comparison.
The dropdown offers a two-sided Welch t-test for two independent groups or ordinary one-way ANOVA across independent groups. Assumptions must be explicitly confirmed. ANOVA is an omnibus test; it does not identify which pair differs. P-values are unadjusted.
Paired donors, repeated doses on the same sample, and nested experiments need a different analysis. Unique sample IDs alone do not establish independence.
Evidence and next check
The numerical tests include synthetic parameter recovery and noisy-fit, Welch, and ANOVA fixtures whose expected values were calculated outside the JavaScript implementation with SciPy 1.13.1. The app does not need Python to run.
The full calculation notes document numerical bounds, tolerances, assumptions, and exports. A de-identified real-plate comparison remains the next scientific check.