Skip to content

Project health

The state of the project, computed from the files in the repository: the readers and how well each is validated, the test corpus, the held-out benchmark, open findings, and the safety nets that let a new maintainer change a reader without breaking another. maintaining.md explains how each number is used.

Readers

96 formats in 40 reader crates. Confidence is computed from the corpus evidence by the confidence rubric, not set by hand; per-format detail is on Evidence per format.

confidence formats which
high 44 abf, agilent-masshunter, blackrock, bruker-tdf, chemstation, andi-chrom, biologic-mpr, mrc, dm, emd, heka-patchmaster, ced-spike2, open-ephys, fcs, biorad-scn, opera-harmony, ims, nwb, intan, lif, mzml, mzxml, nd2, neuralynx, bruker-nmr, jcamp-dx, varian-nmr, jeol-jdf, oir, rdml, applied-biosystems-eds, bruker-opus, renishaw-wdf, galactic-spc, jasco-jws, witec-project, spikeglx, tiff, vsi, waters-raw, panalytical-xrdml, bruker-raw, ome-zarr, zvi
medium 38 atf, microcal-itc, cytiva-biacore-blr, cytiva-biacore-bme, sartorius-octet-frd, genepix-gpr, openlab-cds, shimadzu, chromeleon, czi, dcimg, biologic-mpt, gamry-dta, neware-nda, neware-ndax, arbin-res, ser, bruker-bes3t, cytiva-unicorn-zip, imagexpress, cellvoyager, mzmlb, magritek-spinsolve, oib, plate, plexon, sciex-wiff, thermo-omnic, perkinelmer-sp, agilent-fpa, agilent-cary, netzsch-ngb, ta-universal-analysis, ta-trios, thermo-raw, mirax, bruker-brml, rigaku-ras
low 14 agilent-seahorse-asyr, malvern-zetasizer-dts, empower-arw, winwcp, bruker-esp, cytiva-unicorn-res, hdf5, imzml, oif, bio-rad-pcrd, roche-lightcycler-ixo, rotor-gene-rex, perkinelmer-fsm, rigaku-rasx

Knowledge basis: 15 open spec, 47 prior art, 26 reverse engineered, 8 vendor docs.

Corpus

3610 manifest entries; 1653 development inputs of 95 formats from 528 depositors (distinct source records: a Zenodo record, a study, a repository) (276 without a download URL: synthetic fixtures and bundle members); 187 held-out inputs. Licences recorded: 23 distinct (every entry has one).

tier entries declared size
full 67 43.5 GB
heldout 381 2.9 GB
hold 26 132.6 MB
smoke 1835 1.0 GB
standard 1301 19.0 GB

Formats without a development-corpus input of their own id (read through a sibling format’s files, or not yet in the corpus): hdf5.

Assurance evidence

From corpus/assurance/evidence.json (development files only): 1629 files read; 1514 compared with an oracle, 1514 agree (100%); 1488 confirmed by an independent reader. 2212 distinct variant-feature values observed, 2098 of them validated (95%); the others make files that use them partially_validated or unvalidated.

Development files info cannot read (3): pcrd-cfx-primerpickr (bio-rad-pcrd), gen5prt-elisa-reader (plate), softmax5-cuvette-spectra-s2 (plate).

Variant values the development corpus reaches but no independent reader confirms (each a decode path to confirm with a new file and an oracle):

format values
agilent-cary layout=explicit x values, record=baseline store, writer=Scan 5.0.0.999, writer=Scanning Kinetics 5.0.0.999
agilent-masshunter record=detector signal
agilent-seahorse-asyr layout=24-well plate
ced-spike2 writer_version=S2091349
chromeleon codec=3DRawSpc, codec=PtsDDCmp, codec=PtsLL2Df, format_version=stored results 2, instrument=Acquity.dll, instrument=DAD3000.dll, instrument=PumpLPG3X00RS.dll, instrument=Thermo.MassSpectrometer, layout=1 Hz signal in mL/min, layout=10 Hz signal in bar, layout=100 Hz signal in bar, layout=20 Hz 3D field in mAU, layout=20 Hz signal in mAU, layout=25 Hz 3D field in mAU, layout=25 Hz signal in mAU, layout=irregular signal in counts
gamry-dta record=column i, record=column v, record=table FRACURVE
jasco-jws record=channel 0x2, record=channel 0x9, record=channel 0xa
jcamp-dx acquisition=CONTINUOUS MASS SPECTRUM, acquisition=ND NMR SPECTRUM
malvern-zetasizer-dts acquisition=size record, format_version=record schema 10, writer_version=Zetasizer 7.02, writer_version=Zetasizer 7.13, writer_version=Zetasizer 8.00, writer_version=Zetasizer 8.01
microcal-itc writer=MicroCalITC, writer_version=ITC200 1.25, writer_version=MicroCalITC 1.29
mzml acquisition=SRM spectrum, acquisition=electromagnetic radiation spectrum, acquisition=selected ion monitoring chromatogram, instrument=4000 QTRAP, instrument=Applied Biosystems instrument model, instrument=LTQ Velos, instrument=Stellar, instrument=Thermo Electron instrument model, record=absorption chromatogram, record=chromatogram, record=electromagnetic radiation chromatogram, record=emission chromatogram, record=flow rate chromatogram, record=pressure chromatogram, record=selected ion monitoring chromatogram, record=temperature chromatogram, writer=Compass
mzxml format_version=2.1
plate instrument=Cytation3, instrument=Cytation5, instrument=SpectraMax M5, instrument=Synergy HT, layout=container gen5-experiment, writer_version=Gen5 2
plexon format_version=PL2, record=PL2 continuous
rigaku-ras layout=2θ/θ scan
rigaku-rasx layout=TwoThetaTheta scan
roche-lightcycler-ixo dialect=ixo, field=experiment.acquisition.started_at, field=experiment.instrument.model, instrument=LightCycler 480 - LED lamp, instrument=LightCycler 480 - Xenon lamp, record=amplification, record=melt, record=melt derivative, writer=LightCycler
sciex-wiff acquisition=scan type MRM, acquisition=stored SRM, instrument=generation QTRAP, instrument=generation ZenoTOF
shimadzu layout=chromatogram in LSS Raw Data
ta-trios acquisition=oscillation moduli, parallel plate 20 mm, instrument=DMA850, instrument=DSC2500, instrument=Discovery HR30, record=channel heat_capacity, record=channel signal_00df1759, record=channel signal_055d9ef1, record=channel signal_0657b71a, record=channel signal_21d50e7b, record=channel signal_448bc112, record=channel signal_590f45fb, record=channel signal_649ee073, record=channel signal_849a233d, record=channel signal_98638024, record=channel signal_a341c459, record=channel signal_a3cc3ee2, record=channel signal_ac1f73ff, record=channel signal_d9aae222, record=channel signal_f03e0b40, writer_version=TRIOS 5.9
thermo-raw instrument=generation TSQ, record=controller analog, record=controller channel, record=controller pda, writer_version=Xcalibur 2.11
tiff codec=old-jpeg (ycbcr)
vsi layout=metadata_only
waters-raw acquisition=MOBILITY FAST DDA FUNCTION, acquisition=MOBILITY MSMS FUNCTION, acquisition=MOBILITY SURVEY FUNCTION, instrument=generation Xevo QTOF, record=analog channel

Held-out benchmark

Latest run: heldout-2026-09-26c.md (171 held-out inputs never used for development; rules in heldout.md).

outcome files
clean 148
clean (partial copy: check rightly exits 4) 3
disagrees 14
fails 4
reads, check/dump fail 2

Assurance of those files: 64 partially validated, 4 refused, 21 unvalidated, 82 validated.

Held-out corpus-test results in the evidence (what the confidence rubric uses): 68 pass, 6 fail.

Open findings

  • New-variant intakes (corpus/intake/): none.
  • Second-opinion disagreements adjudicated (corpus/oracle/second/adjudications.toml, 0 where neither reader was right): 26 whole-file entries, and 28 field entries that settle 123 per-file field differences (second opinions).
  • Corpus files whose oracle is known to disagree for a documented reason (oracle_skip): 8.
  • Corpus entries whose licence or source is not yet confirmed (from intakes; tier hold, not fetched automatically): 0.
  • Known upstream dependency bugs with reproducers (fuzz/known-upstream/): 5.

Safety nets for maintainers

what count
reader crates with a maintainer guide (MAINTAINING.md, generated facts checked by cargo xtask guides) 40 of 40
golden-output snapshots of committed fixtures (cargo test) 107
golden-output snapshots of development-corpus files 1632
committed ground-truth files (corpus/oracle/**.json, .json.gz over 1 MiB) 2930
fuzz targets (fuzz/fuzz_targets/) 134
Rust source files under crates/ 773