Verified, not claimed

Every format we read, and how we know

A real export from each instrument lives in the test suite with its expected values. Every commit re-parses all of them and checks the numbers well by well. If a parser breaks, the build fails before anyone can download it.

Where a parser has a limitation, it is written below rather than left for you to discover at the bench.

BioTek / Agilent

Gen5

Epoch, Synergy, Cytation

Recognised by
The Software Version, Experiment File Path and Plate Number header lines, plus section markers in the form Read 1:450.
What is read
Endpoint matrices, kinetic series and spectra. The wavelength is taken from the read label rather than guessed.

Test fixture: 18-line export, 96-well, read at 450 nm

Molecular Devices

SoftMax Pro

SpectraMax

Recognised by
The ##BLOCKS= header, a Plate: settings line, and the ~End terminator.
What is read
Endpoint and kinetic blocks. If the export mentions PathCheck, every affected read is flagged in the app.

Known limitation. PathCheck means path-length correction may already have been applied by the instrument. Meniscus flags it rather than guessing, so you do not silently correct twice.

Test fixture: 16-line export with a plate settings block

Tecan

Magellan

Sunrise, Infinite, Spark

Recognised by
The Magellan name, a Date of measurement line, and the <> corner cell above the plate grid.
What is read
Endpoint matrices, including the semicolon-delimited exports that use a decimal comma.

Test fixture: 13-line export, semicolon-delimited

Thermo Fisher

SkanIt

Multiskan, Varioskan

Recognised by
The SkanIt name, a Session information block, and Photometric worksheet labels.
What is read
Endpoint matrices from the first worksheet of an XLSX export.

Known limitation. SkanIt often writes one read per worksheet, and only the first sheet is read today. If your file has several reads on separate tabs, the others are ignored — tell us and it moves up the list.

Test fixture: 14-line export with a session header

BMG Labtech

MARS

CLARIOstar, FLUOstar, Omega

Recognised by
The MARS name, a Testname field, and an ID1 column.
What is read
Both the matrix layout and the long-form one-row-per-well layout.

Test fixture: 14-line export, matrix form

Bio-Rad

CFX Maestro

CFX96, CFX384

Recognised by
The Well, Fluor, Target, Content, Sample and Cq columns of a long-form results table.
What is read
Cq values per well, labelled by target so two targets never collapse into one unnamed block.

Known limitation. The qPCR maths — ΔΔCt, Pfaffl, efficiency, multi-reference — is written and checked against NumPy, but its screen is not built yet. The file imports and the plate populates; the qPCR analysis view is still to come.

Test fixture: 10-line results table

Applied Biosystems

QuantStudio / 7500

QuantStudio family

Recognised by
A Block Type line and the [Results] section marker.
What is read
The long-form results table that follows the preamble, however long it is.

Known limitation. Same as CFX: the numbers are implemented and validated, the qPCR screen is not built yet.

Test fixture: 15-line export with preamble

Anything else

Generic reader

Grid or long-form CSV, TSV, XLSX

Recognised by
No signature needed. Meniscus finds the plate-shaped block of numbers on its own and shows you which cells it chose before anything is committed.
What is read
Any 96- or 384-well grid, or a one-row-per-well table with a well column and a value column.

Test fixture: A deliberately awkward export: preamble rows, blank columns, ragged headers

Your instrument is not on the list

Send us one export file. Not your data — any file the machine produced, even an old one from a test plate. It becomes a permanent fixture in the test suite, which means your format keeps working on every future release rather than being supported once and quietly breaking later.

There is a fair chance it already works. The generic reader finds the plate block in most exports without needing a profile at all — try it first.

No account needed to try · Files you send are used only as test fixtures

Why a messy file is in the test suite on purpose

Real exports are not tidy. They carry preamble rows nobody asked for, merged header cells, blank spacer columns, and occasionally a decimal comma. One of the permanent fixtures is a deliberately awkward file containing all of that, so the importer is tested against the plate you actually have rather than an idealised one.

Whatever it finds, it shows you the block of cells it selected and lets you correct it before a single number is committed.