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 |