TrioHap 0.4.0 validation, 25 October 2026

95 unittest cases pass, including 34 gVCF tests, 19 individual-VCF tests, and
exact SCN5A catalogue/source-byte provenance reproduction after checkout.
Reproduce: python -m unittest discover -s tests -v

New gVCF experiment: 100 synthetic families, seed 64031, eight haplotypes and
40 SNPs per panel. All expected parental backgrounds recovered. All 100
individual-gVCF, 100 joint-gVCF, and 100 mixed-input comparisons give the same
rankings and weights as equivalent explicit VCFs. All 100 dropped-reference-
block checks preserve unknown coverage. Reference bases vary within blocks;
ALT dictionaries and child phase orientations vary across families.
Reproduce: python scripts/validate_gvcf.py
Machine-readable results: validation/gvcf_summary.json
Rendered synthetic gVCF example: demo-gvcf-output/.

Deterministic synthetic experiment: 100 families, seed 4927, eight panel
haplotypes and 40 SNP markers per family. All 100 expected maternal/paternal
pairs recovered; all 100 joint/individual results agree exactly. Independent
per-file ALT encodings and child phase orientations are varied. Fifty families
include an inherited allele absent from every panel haplotype. All 100 missing
parent-record checks preserve unknown status and match a reduced joint input.
Reproduce: python scripts/validate_synthetic.py
Machine-readable results: validation/synthetic_summary.json
These are functional checks under the implemented model, not clinical accuracy.

Joint and individual CLI example reports/plots render successfully; their
rankings, phase, markers, summaries and optional Unfazed annotations agree.
Outputs: demo-output/ and demo-individual-output/.

Reimporting the included SCN5A source subset reproduces catalogue.json exactly.
Earlier SCN5A source VCF/table verification: 20,835 allele cells; 45 REF alleles
match the supplied reference window. Synthetic panel-derived integration
recovers the expected maternal eight-member SNP class and paternal H05.
The SCN5A audit graph contains no patient placement. Full-variant classes remain
unresolved where SNP signatures coincide. No clinical trios have been tested.

GitHub Actions configuration covers Python 3.10-3.13 unit tests and both
synthetic experiments, plus separate VCF/gVCF report-rendering checks.
Its remote outcome is recorded by GitHub. Current gVCF scope is conventional
INFO/END blocks; newer sample-specific FORMAT/LEN is explicitly unsupported.

PyPI packaging preparation (distribution name triohap, version 0.4.0):
Wheel and source archive pass python -m twine check --strict. All 95 unit
tests pass against an isolated installed wheel outside the source checkout.
The source archive independently rebuilds to the same Python module bytes;
that rebuilt wheel installs separately and passes the VCF/gVCF CLI checks.
Installed-wheel graph generation, console entry point, --version, expected
parental assignments, and output files pass. A mismatched v9.9.9 release tag
is rejected. No distribution was uploaded to PyPI during these checks.
Reproduce: python -m build
           python -m twine check --strict dist/*
           python scripts/validate_distribution.py --dist-dir dist --tag v0.4.0 --plots
