# Repeatability Proof — HG002 30× — 2026-05-12

Two independent runs of the locked Parabricks DeepVariant-germline pipeline
on the same HG002 30× FASTQ input, on the same NVIDIA GB10 hardware. The
purpose: confirm that "same input → same output" holds at the granularity
clinical-lab QMS reviewers care about (variant calls), not the granularity
that's bioinformatics noise (BAM/VCF metadata bytes).

## Result

| Field | Value |
|---|---|
| Variant calls — run 1 | 7,593,649 |
| Variant calls — run 2 | 7,593,649 |
| Variant count delta | **0** |
| Variant-content SHA-256 (sorted, headers stripped) | `713ac282be16ebf768a37f670727bc429a0c23adef1e6076c9cb60a04b7502d5` (both runs) |
| Variant-content byte-identical | **YES** |
| Raw BAM byte-identical | No (see "Why raw bytes differ" below) |
| Raw VCF byte-identical | No (same reason) |

## Why raw BAM / VCF bytes differ but variants don't

Parabricks embeds two run-specific bytes into the BAM/VCF `@PG` (Program)
header:

1. The output filename passed via `--out-bam` / `--out-variants`
   (`HG002.30x.bam` vs `HG002.30x.rerun.bam` here)
2. Implicit run timestamp metadata

These bytes are part of the `@PG` line in the BAM header and the `##` header
of the VCF. They are explicitly *not* part of the alignment records or the
variant-call records. Strip the metadata headers (`grep -v '^##'`), sort the
records (`sort`), SHA-256 the result, and both runs produce
`713ac282…7502d5`.

## Run metadata

| | Run 1 | Run 2 |
|---|---|---|
| Image digest | `sha256:5bc63974…086f5287e2b` | `sha256:5bc63974…086f5287e2b` |
| Hardware | NVIDIA GB10 (Grace ARM) | NVIDIA GB10 (Grace ARM) |
| Start time (UTC) | 2026-05-10T20:06:17Z | 2026-05-12T14:52:18Z |
| Wall clock | 1h 52m 13s (6,733s) | 2h 7m 3s (7,623s) |
| Output BAM SHA-256 | `b519ac83…68c7396` | `c9eb3209…f0ef1978` |
| Output VCF SHA-256 | `4fb4c416…3a726dc5f` | `a0504b79…22b51bb` |
| Variant count | 7,593,649 | 7,593,649 |

The ~13% wall-clock difference between runs is normal — GPU thermal state
and host-side I/O scheduler can shift run times by ~10–20% between
otherwise-identical executions. Per-variant content is unaffected.

## Why this is the claim that matters

A CLIA-CAP QMS reviewer assessing a secondary-analysis vendor cares about
exactly one question: given the same input, does the pipeline always emit
the same variant calls? The answer here is **yes, bit-for-bit, across two
independent runs**.

Vendors who claim "byte-identical BAM/VCF files" are either (a) running on
single-threaded software that emits headers deterministically, or (b) not
running with metadata embedded in the file. Datamade Genomics runs
multi-threaded GPU-accelerated Parabricks with full provenance metadata
embedded in every artifact, and the **biological content is still
byte-identical** across runs.

## How to reproduce

```bash
# Requires the showcase HG002 30x FASTQs at /data/jobs/showcase-hg002-30x/input/
./scripts/run_repeatability_proof.sh
# Emits /data/jobs/showcase-hg002-30x/repeatability_report.json
# Expected: result.variant_content_identical == "yes"
```

Full machine-readable proof: [`repeatability_report.json`](repeatability_report.json)
