Skip to content

Add real-world fixtures for 11 previously-uncovered formats - #37

Merged
zhemingfan merged 1 commit into
mainfrom
feature/real-fixtures-tier1
Jul 9, 2026
Merged

Add real-world fixtures for 11 previously-uncovered formats#37
zhemingfan merged 1 commit into
mainfrom
feature/real-fixtures-tier1

Conversation

@zhemingfan

Copy link
Copy Markdown
Owner

Summary

Extends the license-vetted real-world fixture suite (added in #35) from 5 covered validated formats to 16. Nearly every hand-written validator now runs against canonical tool/portal output in the offline verify suite.

The prior GENCODE round proved the value of this: real data immediately caught three validator false positives (#36). This round does the same for the formats that had never seen real input.

New coverage

Tier 1 — validated formats with zero prior fixtures:

Format Source License
SAM samtools examples/toy.sam MIT
FASTA samtools examples/toy.fa MIT
FASTQ nf-core/test-datasets (sarscov2) MIT
PAF nf-core/test-datasets (minimap2 output) MIT
BEDPE nf-core/test-datasets (sarscov2) MIT
narrowPeak nf-core/test-datasets (MACS2 output) MIT
broadPeak nf-core/test-datasets (MACS2 output) MIT
bedGraph nf-core/test-datasets (sarscov2) MIT
WIG Ensembl sample WIG (canonical UCSC wiggle example) Apache-2.0
interval_list nf-core/test-datasets (Picard targets) MIT

Tier 2 — depth on an already-covered format:

  • BED12 — a real IsoSeq collapsed-transcript BED (nf-core, MIT) exercising thickStart/thickEnd, itemRgb, and blockCount/blockSizes/blockStarts. The only prior BED fixture was 3-column, so the block fields had never seen real input.

The WIG fixture is particularly good value: one file covering BED-style, variableStep, and fixedStep sections.

Result

All 11 new fixtures pass the existing offline contract (pinned sha256, supported-format, validates-without-throwing, min-rows) including the zero-diagnostic guard. Unlike the GENCODE round, no validator false positives surfaced — the newly-covered validators already handle canonical input cleanly. Each was separately smoke-tested to confirm it is live (emits on malformed input), so the clean result is meaningful rather than a no-op.

  • Full unit suite: 923 passing (up from 868)
  • real-fixtures suite: 113 passing
  • Lint clean

Not in scope (follow-ups)

  • Tier 3 formats (MAF, GenBank, GFA, mzTab, MGF, MTX, GCT, PED/MAP, chain/net, count tables) are grammar/preview-only — getValidator returns nothing, so they can't join this harness until they have a validator. That's a separate "should we validate these?" decision.
  • Two lenient spots noticed while smoke-testing (WIG presence-checks start= without a numeric check; the interval_list declarative spec enforces min-columns + strand only). These are false-negatives on synthetic input, not false positives, so they don't affect any fixture — noting for a possible validator-hardening pass.

Extend the license-vetted real fixture suite from 5 covered validated
formats to 16, so nearly every hand-written validator now runs against
canonical tool/portal output offline.

New Tier-1 coverage (validated formats that previously had no real
fixture): SAM, FASTA, FASTQ, PAF, BEDPE, narrowPeak, broadPeak,
bedGraph, WIG, and Picard interval_list. Plus one Tier-2 depth item: a
real BED12 (IsoSeq collapsed transcripts) exercising the block fields
(thickStart/thickEnd, itemRgb, blockCount/blockSizes/blockStarts) that
the existing 3-column BED fixture never touched.

Sources are all redistribution-safe: samtools examples (MIT), the
nf-core/test-datasets modules branch (MIT), and the Ensembl sample WIG
(Apache-2.0, the canonical UCSC wiggle example covering BED-style,
variableStep and fixedStep in one file).

All 11 fixtures pass the existing offline contract, including the
zero-diagnostic guard: unlike the GENCODE round, no validator false
positives surfaced -- the newly-covered validators already handle
canonical input cleanly.
@zhemingfan
zhemingfan merged commit 9ac146c into main Jul 9, 2026
3 checks passed
@zhemingfan
zhemingfan deleted the feature/real-fixtures-tier1 branch July 9, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant