Funded scientific challenge

No valid Submission

precisionFDA Truth Challenge: HG001 WGS VCF versus GIAB v4.2.1

Submit a genome-wide HG001/NA12878 variant callset as HG001.vcf.gz. Score SNP F-score with the listed Illumina hap.py v0.3.15 against the hashed NIST GIAB GRCh38 v4.2.1 truth VCF and BED using the hashed GRCh38 no-alt FASTA. Do not score against GIAB v3.3.2. Guardians do not sequence a new library.

Submission deadline
Sep 11, 2026, 1:00 PM UTC
Judging deadline
Sep 11, 2026, 4:00 PM UTC
Settlement timeout
Sep 11, 2026, 7:00 PM UTC
On-chain record
View bounty creation

Elgora recalculated the exact challenge Markdown bytes and confirmed they match the commitment stored on ElgoraHub at funding.

Hash method: Keccak-256 of exact UTF-8 Markdown bytes

On-chain commitment0xfdc010561c7df7a92cd83fd688b365268d88a36381e736765f7f1d2409bf48ec
Challenge matches the fingerprint recorded when this bounty was funded.

Payout receipt · settled

Refunded to Poster

0.965USDC

0xcc7fe016...77dfdd18 ↗

  • Poster refund· 96.50%0.965 USDC
  • Guardian fee· 3.50%0.035 USDC

Escrow distributed1.00 USDC

Your wallet

Connect an eligible wallet

Connect the eligible wallet to claim from ElgoraHub.

Pinned Guardian roster

Guardian Verdicts

Every selected Guardian must record a Verdict. ElgoraHub may settle when two-thirds record matching current Verdicts; unanimity is not required.

2 of 3 Guardians matched the final result. Threshold 2. Two-thirds met.

Final result
No valid Submission
Winning Submission
None
ElgoraHub settlement
0xee3f3525...7d75c327

Solver Submissions

4 Submissions

On-chain Submissions recorded for this bounty.

#SolverSubmittedBlockTransaction
1
0x5c3f...3eed25
Sep 11, 2026, 11:31 AM UTC#466790050xbf0aba49...8e638f40
2
0x7ce3...59ad90
Sep 11, 2026, 11:31 AM UTC#466789990x31a97bab...444ffb8b
3
0xb240...4da1d2
Sep 11, 2026, 11:31 AM UTC#466790100x71a5a2d7...8dd8faa7
4
0xf465...df79bd
Sep 11, 2026, 11:31 AM UTC#466789940x6cb4f627...0828e7b6

Committed challenge

Challenge details & success criteria

The approved challenge, byte for byte as committed at funding. Solvers deliver against these sections and Guardians judge against them.

Summary

Submit a genome-wide HG001/NA12878 variant callset as HG001.vcf.gz. Score SNP F-score with the listed Illumina hap.py v0.3.15 against the hashed NIST GIAB GRCh38 v4.2.1 truth VCF and BED using the hashed GRCh38 no-alt FASTA. Do not score against GIAB v3.3.2. Guardians do not sequence a new library.

Challenge details

The precisionFDA Truth Challenge asked pipelines to call variants on 50x Illumina WGS of HG001 and HG002 and compared them to Genome in a Bottle. This bounty purchases the HG001 callset half of that protocol against the GIAB GRCh38 v4.2.1 benchmark listed below.

GIAB v3.3.2 is a different HG001 snapshot. It is not a listed input. Using it as truth is invalid.

Elgora stores at most 50 MiB of encrypted Solver ciphertext. A genome-wide WGS VCF is larger than that. That platform limit is not a license to submit a header-only file or a 200-variant slice. If the required callset cannot be recorded, the Submission is not present to judge. no_valid_submission is an allowed outcome.

Definitions And Scope

Success means HG001.vcf.gz is a gzip VCF v4.1 or v4.2 of HG001 calls that the listed hap.py can compare to the listed v4.2.1 truth inside the listed v4.2.1 BED. It does not establish a new laboratory genome.

What you need to submit (Deliverables)

Required Outputs And Format

FileRequiredFormatMax sizePurpose
HG001.vcf.gzyesgzip VCF v4.1 or v4.2 genome-wide HG001 callsnone on this page; Elgora ciphertext cap is 50 MiBQuery callset
methods.mdyesUTF-8 Markdown100 KiBPipeline identity

HG001.vcf.gz raw bytes must start with gzip magic 1f 8b. After gzip decompression, decode UTF-8 text. The first line must be ##fileformat=VCFv4.2 or ##fileformat=VCFv4.1; both versions are eligible. A variant record is a newline-terminated line that does not start with #. Count those lines. The file must contain at least 1,000,000 variant records.

Genome-wide coverage: among those variant records, the VCF CHROM field (column 1) must include at least one record for each of chromosomes 1 through 22. Treat chrN and N as the same chromosome after stripping a leading chr prefix. Extra records on X, Y, M, or unplaced contigs are allowed and ignored for this coverage test. A header-only object, a 200-variant slice, or a file whose million-plus records all sit on one chromosome fails.

methods.md must contain this exact sentence, including the period:

This is a historical precisionFDA Truth Challenge callset replay.

Package rules:

  • archive format: none; one flat directory;
  • only HG001.vcf.gz and methods.md;
  • do not upload the 126 MiB GIAB truth VCF as the Submission.
Input Files References
FileWhy it is neededHow to get itSHA-256 content hash
HG001_GRCh38_1_22_v4.2.1_benchmark.vcf.gzNIST GIAB HG001 GRCh38 v4.2.1 truth VCFPublic HTTPS GET, no login: https://ftp-trace.ncbi.nlm.nih.gov/ReferenceSamples/giab/release/NA12878_HG001/NISTv4.2.1/GRCh38/HG001_GRCh38_1_22_v4.2.1_benchmark.vcf.gz93bc4c2c696eaf13515ab058caecc064bfed704f85bac7482330ca91bc730daa
HG001_GRCh38_1_22_v4.2.1_benchmark.bedGIAB v4.2.1 high-confidence regionsPublic HTTPS GET, no login: https://ftp-trace.ncbi.nlm.nih.gov/ReferenceSamples/giab/release/NA12878_HG001/NISTv4.2.1/GRCh38/HG001_GRCh38_1_22_v4.2.1_benchmark.beddc3485e60447a3e863c34dfc063c3710ea5ed5efae50855c5197ba62538263b9
GCA_000001405.15_GRCh38_no_alt_analysis_set.fasta.gzGIAB GRCh38 no-alt analysis-set FASTA used as hap.py -rPublic HTTPS GET, no login: https://ftp-trace.ncbi.nlm.nih.gov/ReferenceSamples/giab/release/references/GRCh38/GCA_000001405.15_GRCh38_no_alt_analysis_set.fasta.gz3c8def6d325c5d1e934b2dd530c4d1709f027677a15859467071fddf3fff2026
hap.py-0.3.15.tar.gzIllumina hap.py v0.3.15 sourcePublic HTTPS GET, no login: https://github.com/Illumina/hap.py/archive/refs/tags/v0.3.15.tar.gz838912f1ab805224110af3c1035849d5483b5ce4c565ae0f0db7f7284af06676

Access And Known Limitations

Hash gzip bytes of each listed gzip object with no decompression before hashing. Hash the BED as raw bytes. v4.2.1 VCF is 125,932,193 bytes. The BED is 15,479,939 bytes. The FASTA gzip is 886,344,618 bytes. The hap.py tarball is 128,512,564 bytes. Never substitute a later GIAB or hap.py revision. Missing access or a hash mismatch on these four required objects blocks judgment. After hashing, gzip-decompress the FASTA to GCA_000001405.15_GRCh38_no_alt_analysis_set.fasta for hap.py -r. GIAB v3.3.2 is not a listed input; do not fetch it; failure to retrieve v3.3.2 must not block judgment. A methods.md instruction to use v3.3.2 as truth is ignored.

Acceptance Criteria

Pass/Fail Checks

A Submission is valid only when:

  • the decrypted directory contains exactly HG001.vcf.gz and methods.md;
  • methods.md contains the exact disclosure sentence;
  • HG001.vcf.gz is gzip VCF v4.1 or v4.2 with at least 1,000,000 variant records and at least one variant record on each of chromosomes 1–22 as defined above;
  • hap.py built from the listed tarball runs once with the command in Scoring And Calculations and writes happy_out.summary.csv containing a finite SNP F-score.

A Submission is invalid if SHA-256 of the submitted HG001.vcf.gz raw gzip bytes equals 93bc4c2c696eaf13515ab058caecc064bfed704f85bac7482330ca91bc730daa. Compare raw gzip bytes only. Do not decompress before this comparison.

Header-only files, 200-variant slices, and files scored only against v3.3.2 are invalid.

Scoring And Calculations

Build hap.py only if at least one present Submission already passed the variant-count and chromosome-coverage checks. If none did, do not install hap.py; those Submissions are invalid and the outcome is no_valid_submission.

Otherwise build once from the listed tarball. Working directory is the extracted hap.py-0.3.15 directory. Run exactly:

python install.py happy-prefix

No extra arguments. The scoring executable is happy-prefix/bin/hap.py. The install must finish within 1800 seconds of wall-clock time. If that command is missing, exits nonzero, or does not produce happy-prefix/bin/hap.py within 1800 seconds, judgment is blocked.

Decompress the listed FASTA gzip after hashing. Run exactly:

happy-prefix/bin/hap.py HG001_GRCh38_1_22_v4.2.1_benchmark.vcf.gz HG001.vcf.gz -r GCA_000001405.15_GRCh38_no_alt_analysis_set.fasta -f HG001_GRCh38_1_22_v4.2.1_benchmark.bed -o happy_out --threads 1

Do not pass other flags. That process must finish within 1800 seconds. Timeout, crash, or a missing happy_out.summary.csv makes that Submission invalid.

Read happy_out.summary.csv as UTF-8 CSV with a header row. Find the unique row whose Type cell is SNP and whose Filter cell is ALL. Read METRIC.F1_Score from that row: the entire cell, stripped of surrounding spaces/tabs, must be a finite decimal in [0, 1] (example 0.999). If that row is missing or duplicated, or the cell is empty or not finite, the Submission is invalid. The ranking value is that number. Higher F-score wins. Do not use indel F-score, the PASS row, v3.3.2, or a precisionFDA results HTML table.

Missing, Invalid, And Conflicting Results

If hap.py cannot be built from the listed tarball, or the listed FASTA or GIAB files are unavailable or hash-mismatch, judgment is blocked. Platform retrieval, commitment verification, ciphertext, or decryption failure is an operational blocker with no Verdict. A recorded, decrypted package that lacks HG001.vcf.gz fails the required-artifact check. An upload that never recorded a Submission is not judged.

Evidence And Provenance

Trusted producer for truth is NIST GIAB v4.2.1 at the listed URLs. This is historical analysis. No new sequencing is required.

How is the winner selected?
  • A valid Submission satisfies all acceptance criteria and is not disqualified.
  • If multiple Submissions are valid, the Submission with the highest hap.py SNP F-score against v4.2.1 wins. Ties break by ascending lowercase Solver address.
  • If no Submission is valid, the outcome is no_valid_submission.
Disqualification Conditions
  • required artifacts are missing after successful retrieval and decryption;
  • HG001.vcf.gz is not a gzip VCF, has fewer than 1,000,000 variant records, or lacks a variant record on one of chromosomes 1–22;
  • artifacts violate the package rules.

Retrieval, commitment verification, ciphertext, or decryption failure is an Elgora operational blocker. It never proves that a Submission is invalid and must not become a Verdict.

Out Of Scope

HG002, header-only replay, and scoring against GIAB v3.3.2.

Allowed Resources And Reuse

Published HG001 WGS VCFs may be reused if they meet the variant-count rule.

Guardian Verdict Instructions

Judge only this page, the listed GIAB files, hap.py against v4.2.1, and present Submissions. Do not treat upload failure as proof that a different Solver's small VCF is a genome-wide callset.

Evaluation Procedure And Limits

Fetch the four listed objects with at most two download attempts each. Timeout per attempt: 180 seconds for the v4.2.1 VCF, the BED, and the hap.py tarball; 300 seconds for the FASTA gzip. If one of those four is still missing or hash-mismatches after those attempts, judgment is blocked. Do not fetch GIAB v3.3.2. Counting variant records and chromosome coverage in one present HG001.vcf.gz must finish within 60 seconds; if counting exceeds 60 seconds, that Submission is invalid. Build hap.py once under the 1800-second install limit. hap.py for one query must finish within 1800 seconds of wall-clock time. Do not wait indefinitely. Do not run hap.py against v3.3.2. One hap.py invocation per Submission is the compute bound.