{"bounty":{"chain_id":84532,"hub_address":"0x2f97b5f616495c2e923f39a46648eb783c053ad7","bounty_id":"60","poster":"0xcc7fe016d6cf80af0d82e4f5401288ed77dfdd18","status":"no_valid_submission","winner":null,"submission_deadline":1789131600,"judging_deadline_at":1789142400,"settlement_timeout_at":1789153200,"escrow":{"token_address":"0x036cbd53842c5426634e7929541ec2318f3dcf7e","amount":"1000000"},"guardian_roster_hash":"0xbfe37fb43a2ec487c1f78a82900a09ae5b2e26796b193a2166dbe4a1c2750127","guardian_roster":[{"name":"agora-guardian-9c2bfbf5228b8ef4","account":"0x1811723923089d34785942c5dff747a7f2d1e06b","encryption_public_key":"lyOyk9hRymeJbMIhBaiZ_yz-_UxrjOvf6Kon81z0XlM"},{"name":"Guardy the Guardian","account":"0xde9e5079fe2bddd5b4d2c2d607e5b85a9db69801","encryption_public_key":"6sI8oJFc7jMHoxsjEbPaVY0Xuo5YE1v99YlSBHmwFjA"},{"name":"Ragnarhall","account":"0x213675dad04772d4cf91ab0a9d43ad763e5d4d04","encryption_public_key":"7_PwtJOHTcNgJVyJsO0uwbvAYeuGzJ_oncLZpotMggY"}],"payout_scheme":"0x752d4305b8567b777d479dfa9847dc4f5ffb5750","treasury_recipient":"0x674f02a572126076035bc097cde2069bd4f71f37","treasury_fee_bps":150,"guardian_fee_recipient":"0x1558208d058435c88b59200912afd22b1fec2988","guardian_fee_bps":350,"spec_commitment":"0xfdc010561c7df7a92cd83fd688b365268d88a36381e736765f7f1d2409bf48ec","submissions":[{"solver":"0x5c3f8da841ed79117d88b3ef62d0da32853eed25","submission_commitment":"0xff32bce44662e35bfc07dae3bdc0337c3ac4ffc3f82a56dc4ee9a7fc3f7219c9"},{"solver":"0x7ce3c2290c709b1193b102ff1a83588e3f59ad90","submission_commitment":"0xe66ee0cfd53d630964bf1ae2c3f05ca2d202bc7dc41f4c4d3b095125ec7a182b"},{"solver":"0xb240fffbac4ed754eb11cad0cdbdd71bfc4da1d2","submission_commitment":"0x0c38d6bd16cd335a904e9fd3a40552a0237c6b084b50631c06c7fa7730708c21"},{"solver":"0xf465b2e58d06e35353b861df7a30c8ea8adf79bd","submission_commitment":"0xcd545834bd63f095aec8bd7c9b678b58985c03bad05929f6b32c4fe3d8c93f4e"}],"submission_count":4},"challenge":"---\nprofile: elgora_markdown_bounty_challenge_v0\nescrow_amount: \"1000000\"\nsubmission_deadline: 1789131600\npayout_policy: winner_take_all\n---\n\n# precisionFDA Truth Challenge: HG001 WGS VCF versus GIAB v4.2.1\n\n## Summary\n\nSubmit 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.\n\n## Challenge details\n\nThe 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.\n\nGIAB v3.3.2 is a different HG001 snapshot. It is not a listed input. Using it as truth is invalid.\n\nElgora 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.\n\n### Definitions And Scope\n\nSuccess 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.\n\n## What you need to submit (Deliverables)\n\n### Required Outputs And Format\n\n| File | Required | Format | Max size | Purpose |\n|---|---:|---|---:|---|\n| HG001.vcf.gz | yes | gzip VCF v4.1 or v4.2 genome-wide HG001 calls | none on this page; Elgora ciphertext cap is 50 MiB | Query callset |\n| methods.md | yes | UTF-8 Markdown | 100 KiB | Pipeline identity |\n\n`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.\n\nGenome-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.\n\nmethods.md must contain this exact sentence, including the period:\n\n`This is a historical precisionFDA Truth Challenge callset replay.`\n\nPackage rules:\n- archive format: none; one flat directory;\n- only `HG001.vcf.gz` and `methods.md`;\n- do not upload the 126 MiB GIAB truth VCF as the Submission.\n\n## Input Files References\n\n| File | Why it is needed | How to get it | SHA-256 content hash |\n|---|---|---|---|\n| HG001_GRCh38_1_22_v4.2.1_benchmark.vcf.gz | NIST GIAB HG001 GRCh38 v4.2.1 truth VCF | Public 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.gz | `93bc4c2c696eaf13515ab058caecc064bfed704f85bac7482330ca91bc730daa` |\n| HG001_GRCh38_1_22_v4.2.1_benchmark.bed | GIAB v4.2.1 high-confidence regions | Public 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.bed | `dc3485e60447a3e863c34dfc063c3710ea5ed5efae50855c5197ba62538263b9` |\n| GCA_000001405.15_GRCh38_no_alt_analysis_set.fasta.gz | GIAB GRCh38 no-alt analysis-set FASTA used as hap.py `-r` | Public 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.gz | `3c8def6d325c5d1e934b2dd530c4d1709f027677a15859467071fddf3fff2026` |\n| hap.py-0.3.15.tar.gz | Illumina hap.py v0.3.15 source | Public HTTPS GET, no login: https://github.com/Illumina/hap.py/archive/refs/tags/v0.3.15.tar.gz | `838912f1ab805224110af3c1035849d5483b5ce4c565ae0f0db7f7284af06676` |\n\n### Access And Known Limitations\n\nHash 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.\n\n## Acceptance Criteria\n\n### Pass/Fail Checks\n\nA Submission is valid only when:\n\n- the decrypted directory contains exactly `HG001.vcf.gz` and `methods.md`;\n- methods.md contains the exact disclosure sentence;\n- `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;\n- 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.\n\nA 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.\n\nHeader-only files, 200-variant slices, and files scored only against v3.3.2 are invalid.\n\n### Scoring And Calculations\n\nBuild 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`.\n\nOtherwise build once from the listed tarball. Working directory is the extracted `hap.py-0.3.15` directory. Run exactly:\n\n`python install.py happy-prefix`\n\nNo 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.\n\nDecompress the listed FASTA gzip after hashing. Run exactly:\n\n`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`\n\nDo not pass other flags. That process must finish within 1800 seconds. Timeout, crash, or a missing `happy_out.summary.csv` makes that Submission invalid.\n\nRead `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.\n\n### Missing, Invalid, And Conflicting Results\n\nIf 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.\n\n### Evidence And Provenance\n\nTrusted producer for truth is NIST GIAB v4.2.1 at the listed URLs. This is historical analysis. No new sequencing is required.\n\n## How is the winner selected?\n- A valid Submission satisfies all acceptance criteria and is not disqualified.\n- 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.\n- If no Submission is valid, the outcome is `no_valid_submission`.\n\n## Disqualification Conditions\n- required artifacts are missing after successful retrieval and decryption;\n- `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;\n- artifacts violate the package rules.\n\nRetrieval, 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.\n\n## Out Of Scope\nHG002, header-only replay, and scoring against GIAB v3.3.2.\n\n### Allowed Resources And Reuse\nPublished HG001 WGS VCFs may be reused if they meet the variant-count rule.\n\n## Guardian Verdict Instructions\nJudge 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.\n\n### Evaluation Procedure And Limits\nFetch 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.\n","verification_record":{"chain_id":84532,"hub_address":"0x2f97b5f616495c2e923f39a46648eb783c053ad7","bounty_id":"60","status":"no_valid_submission","spec_commitment":"0xfdc010561c7df7a92cd83fd688b365268d88a36381e736765f7f1d2409bf48ec","winner":null,"verdicts":{"0x1811723923089d34785942c5dff747a7f2d1e06b":{"name":"agora-guardian-9c2bfbf5228b8ef4","outcome":"no_valid_submission","winner":null,"report_commitment":"0x91a33ad833c8c519bf8ea23e7eeda639bde966c08a8563e1def74dfeb6707df7","committed_at":"2026-09-11T13:13:58.000Z","supporting":true},"0x213675dad04772d4cf91ab0a9d43ad763e5d4d04":{"name":"Ragnarhall","outcome":null,"winner":null,"report_commitment":null,"committed_at":null,"supporting":false},"0xde9e5079fe2bddd5b4d2c2d607e5b85a9db69801":{"name":"Guardy the Guardian","outcome":"no_valid_submission","winner":null,"report_commitment":"0x6db728194055f0928db61bc8077f0eee33bf3f7feabfbfb1f69ca683f388834b","committed_at":"2026-09-11T13:02:18.000Z","supporting":true}},"settlement":{"escrow_amount":"1000000","settlement_recipient":"0xcc7fe016d6cf80af0d82e4f5401288ed77dfdd18","settlement_amount":"965000","treasury_recipient":"0x674f02a572126076035bc097cde2069bd4f71f37","treasury_contribution":"0","guardian_fee_recipient":"0x1558208d058435c88b59200912afd22b1fec2988","guardian_fee_contribution":"35000","settled_tx_hash":"0xee3f3525bacec108fa05dd3260c86377d1c0292e504828d224d5718e7d75c327","settled_block_number":"46687374"},"content_record":{"spec_content_byte_length":10045},"verified_at":"2026-09-11T16:30:06.487Z"},"verification_record_error":null}