Repository navigation
Description
The record of what was tested for this release. Issues close when their PR reaches develop; release-level verification lives here. Each box gets its evidence beside it (job ID, SHA, measured number) when checked. Anything not done before the tag moves to Not verified with its reason.
Version
- v4.0.0, decided 2026-10-04.
docs-site/src/reference/versioning.mdlists configuration-YAML keys as public API, and Unknown config keys are silently ignored — a typo can select the wrong model #496 makes a config carrying a previously ignored key stop the run, which is an incompatible change, so this is a MAJOR bump. The v3.6.0 milestone's issues and PRs moved to v4.0.0 and that milestone is closed. - SV representation: emit canonical SVTYPE for junctions instead of generic BND pairs #313 (canonical SVTYPE for junctions) moved to v4.1.0 for review, 2026-10-04. Remove the deprecated rneat alias shim (v4.0.0) #710 (remove the deprecated
rneatalias) stays in v4.0.0.
Per PR (merged to develop since v3.5.1)
#800: rebuild the bundled COSMIC tumor models (#761)
- CHANGELOG line (Changed): the seven bundled COSMIC tumor models were rebuilt with the current builder; only
snp_distro(per-context somatic SNV placement weights) moved, by −7.4% to +12.9% per context, sogen-cancer-readsplaces somatic SNVs slightly differently — in the v4.0.0 CHANGELOG -
gen-cancer-readsrun end to end with the new model files (2026-10-08, develop 43e1611, release build). All seventools/cosmic_*.json.gzon ecoli (4.6 Mb), 4x total, purity 0.5,tumor_mutation_rate0.002,sv_rate_scale0: each exited 0 and produced 8,567–9,036 somatic SNVs. Observed per-frame mutability (somatic SNVs ÷ frame occurrences in ecoli) against each model's de-cumulatedsnp_distro: r = 0.997–0.999 for every model against its own weights. Each per-tissue run matches its own model best (BRCA 0.998 vs ≤0.983; lung 0.997 vs ≤0.979; skin 0.998 vs ≤0.737). The three pan-cancer + SV models carry SNV weights identical to the pan-cancer model (max |diff| 0.0), so their rows tie by construction.- Not verified here: the SV components (
sv_rate_scale0); Rebuild the bundled COSMIC tumor models with the current builder (#761) #800 reports they did not change.
- Not verified here: the SV components (
#802: re-freeze somatic_snv_recall at 0.840 (#680)
- Owes nothing for release. Not a claim that 0.84 is correct; the cause stays open in somatic_snv_recall sits 4.5 sigma below baseline, replicated on two builds #680.
#807: reject config keys a subcommand does not read (#496)
- CHANGELOG line: unknown keys now stop the run (behavior change for users) — in the v4.0.0 CHANGELOG
- Moved to Not verified: configs written by Delta-only scripts were checked by search, not by running them
#808: close issues on merge to develop; this release ticket — process only, owes nothing.
#809: straddling deletion no longer widens its mutated copy to the contig end (#691)
- CHANGELOG line:
input_vcfruns with a literal SV deletion crossing a symbolic SV's boundary had inflated coverage (+48% on ecoli) — in the v4.0.0 CHANGELOG - Moved to Not verified: SCN reproducer rerun on Delta
- Known limitation, not addressed: the deleted bases past the sub-region boundary still get reference coverage
#810: max_reads samples uniformly, not from the head of the FASTQ (#721)
- CHANGELOG line: capped
gen-seq-error-modelfits read the whole file and give different models — in the v4.0.0 CHANGELOG - Moved to Not verified: head-sampled vs uniform capped fit on HG002
- Moved to Not verified: capped-run timing
#811: fold soft-masked bases to A/C/G/T at parse time (#790)
- CHANGELOG line: soft-masked references now simulate exactly like uppercase ones (de novo SNP placement in masked sequence changes); input breakend ALTs are written uppercase — in the v4.0.0 CHANGELOG
#812: write NM on golden BAM records (#536)
- CHANGELOG line: golden BAM records carry
NM— in the v4.0.0 CHANGELOG -
golden_bam_nm(#[ignore], samtools oracle) green in release-gates: run 37216181098 (PR Document unknown-key rejection and the golden BAM's NM tag #815, after Write NM on golden BAM records (#536) #812 merged), 2,892 records, calmd agrees on all - Not run on a real genome; the oracle runs on H1N1
#813: harness --mutate modes and the CI guard (#755)
- Merged as 7d62f36.
delta-harnessgreen on the PR run (f78d59a): all 18 suites end with a mutation summary. CI runs on PRs, not on pushes todevelop. - Owes no CHANGELOG line (CI only).
#814: keep observed indel lengths when one type is absent (#766)
- Merged as a40fa42, docs included
- CHANGELOG line: an insertions-only or deletions-only training VCF keeps its observed lengths — in the v4.0.0 CHANGELOG
- Merged as 040d654
#817: name the cause when gen-seq-error-model has no weight to fit (#767)
- Merged as 21429e4
- CHANGELOG line: a BAM whose MD tags disagree with its reads is refused by name, with the count and a
samtools calmdfix, instead of failing as a bareInvalidWeights(any disagreement refuses; no best-effort fit); a mate population with no bases is refused by name — in the v4.0.0 CHANGELOG - PATCH-level; not run on a real BAM with stale MD (synthetic fixtures, by design)
#818: stop warning that a breakend has no END/SVLEN (#497)
- Merged as faaf4a9
- CHANGELOG line: a breakend supplied via
input_vcfno longer logs a WARN about missing END/SVLEN; a<DEL>or other span-requiring SV without one still does — in the v4.0.0 CHANGELOG - PATCH-level; only
input_vcfbreakends tested, de novo BNDs share the code path untested
#821: remove the deprecated rneat alias (#710)
- Merged as f278b17
- CHANGELOG line (Compatibility): the
rneatalias is removed; invokeeidolon. Release binaries never shipped it; conda installs no longer include it — in the v4.0.0 CHANGELOG - MAJOR-level; no actual conda build run, only its
cargo installline
#822: test check_query_denominator; measured harness coverage (#819 steps 1–2)
- Merged as 534c818
- No CHANGELOG line (tests, CLAUDE.md, workflow comment only)
#823: make 22 weak unit tests assert content (#819 step 3)
- Merged as 219a5dd
- No CHANGELOG line (test code only)
#826: gen-mut-model REF checks (#819 decisions)
- Merged as 8992df2
- CHANGELOG line (Compatibility):
gen-mut-modelrefuses a VCF in which any SNP or indel REF disagrees with the reference, as NEAT2 did; it stops at the first one, names it with both bases, and gives thebcftools norm --check-ref xcommand to drop such records. SNPs at contig edges are no longer counted toward the rate. A BED naming no reference contig says so — in the v4.0.0 CHANGELOG - Not run on a real VCF/reference pair
#827: filter-reads output naming (#824)
- Merged as acc1186
- CHANGELOG line (Fixed):
filter-readsno longer crashes on plain.fastq/.vcfinput or mis-names files in a directory containing a dot; output is always.gz, so plain input gains the suffix — in the v4.0.0 CHANGELOG - PATCH-level; fixtures only
#828: test audit steps 4–5 (#819)
- Merged as 43e1611
- No CHANGELOG line (test code only)
Still in the milestone, not started
none: all milestone work merged (#819 closed 2026-10-08)
#658 re-measured 2026-10-06 from job 22583881: simulated mapq0_pct unchanged at 0.0001 after #657, so the cause is separate from error placement. Per plan the investigation waits; removed from this milestone.
#746 moved to v4.1.0 (2026-10-05): changing a default alters simulated content, which versioning.md places outside the public API, so it needs no MAJOR bump.
Release procedure
-
cargo test --workspace --no-fail-fast: passed insiderelease_shakeout.shstep 1 (2026-10-08, develop 43e1611). Re-run on release/v4.0.0 (Release prep: v4.0.0 #829): 1,104 passed. -
release-gates(cargo test --workspace -- --ignored) green on the release PR: Release prep: v4.0.0 #829, run 37787703543. All 8 ignored tests ran and passed (5 realigned SV gates, transition-matrix round trip, golden-BAM NM vs calmd, validate differential). All other Release prep: v4.0.0 #829 checks pass. Release PR Release v4.0.0 #830 (develop → main,dbc7c518): all checks pass, includingrelease-blockers(first run againstmain) andrelease-gatesrun 37879367133 (8 ok, 0 failed). -
cargo clippy --workspace --all-targets -- -D warnings: clean, same run. Re-run on release/v4.0.0 (Release prep: v4.0.0 #829): 1,104 passed. -
scripts/release_shakeout.sh, full mode (DATA_DIR=~/code/data/rneat_shakeout, hg38 chr22 + NA12878 chr22 BAM): ALL STEPS PASSED, 2026-10-08, develop 43e1611. First run withfragment_model:corrected by Reject config keys a subcommand does not read (#496) #807. Finalgen-readsstep: 999,186 read pairs, 0:54 wall, 272 MB peak.- Resources vs the prior logged shakeout (2026-05-22, several releases older, config not confirmed identical): every step lower in time and peak RSS (frag 753→255 MB, reads 544→272 MB); no regression.
- Two
Placed 0/6 GC-weighted fragments in a 340bp region (extension_budget=0)warnings are the two 340 bp non-N islands on chr22 (14,419,554–14,419,894 and 14,419,994–14,420,334), each bounded by N gaps, shorter than the 350 bp mean fragment. True sequence termini; expected.
- Junk-file check: no empty tracked files, no odd path names (develop 43e1611). Re-run on release/v4.0.0 (Release prep: v4.0.0 #829): clean.
- Five binary assets on the release page (2026-10-09, run 37932211311, all 5 jobs success): aarch64-unknown-linux-gnu-rhel8, x86_64-apple-darwin, x86_64-pc-windows-msvc.exe, x86_64-unknown-linux-gnu, x86_64-unknown-linux-gnu-rhel8 (7.7–8.8 MB). The downloaded linux-gnu asset, run under its download name, reports
eidolon 4.0.0+b7b3742and runsgen-reads. - Docs site serves:
docs.ymldeployed fromb7b37420; index,getting-started/installation.htmland the newupgrading/from-3.htmlall HTTP 200, the last with its content. - Conda sha256 follow-up PR: v4.0.0 follow-ups: conda sha256, complete CHANGELOG Not verified list #831 into
develop(one-way flow), sha256ab0c433a…bb17f, identical across two downloads. Open; merges at the user's discretion.
Not verified for this release
Each was owed by a PR and not done before the tag. None blocks the release; all need Delta or real data.
- Reject config keys a subcommand does not read (#496) #807: configs written by Delta-only scripts were checked by search for unknown keys, not by running the scripts. A Delta script carrying an unread key would now fail at job start, with the key named.
- Stop a straddling deletion widening its alt haplotype to the contig end (#691) #809: the SCN reproducer was not rerun on Delta (needs a rebuild). Known limitation, not addressed: deleted bases past the sub-region boundary still get reference coverage.
- Sample max_reads uniformly across the FASTQ, not from its head (#721) #810: head-sampled vs uniform capped
gen-seq-error-modelfits not compared on HG002; a capped run not timed, so the HPC chapter's 1:30:00 is not measured. - Rebuild the bundled COSMIC tumor models with the current builder (#761) #800: the rebuilt tumor models' SV components not exercised end to end (
sv_rate_scale0 in the run above); Rebuild the bundled COSMIC tumor models with the current builder (#761) #800 reports they did not change. - gen-mut-model: refuse REF mismatches as NEAT2 did, with a bcftools fix in the error #826, filter-reads: name outputs from the file name, accept plain input (#824) #827: the
gen-mut-modelREF check and thefilter-readsfix tested on fixtures only, not real data. - Stop warning that a breakend has no END/SVLEN (#497) #818: de novo breakends share the BND-warning code path; no test runs them.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
[-]Release v3.6.0[/-][+]Release v4.0.0[/+]CHANGELOG v4.0.0: complete the Not verified list from #816
joshfactorial commentedon Oct 9, 2026
v4.0.0 released 2026-10-09.
v4.0.0onb7b37420, the merge of Release v4.0.0 #830 (develop→main, first release under the one-way flow).eidolon 4.0.0+b7b3742.b7b37420; index, a deep page andupgrading/from-3.htmlreturn 200.develop.joshfactorial commentedon Oct 9, 2026
Post-release Delta validation of v4.0.0, submitted 2026-10-09 on the Delta checkout at the
v4.0.0tag, rebuilt:eidolon 4.0.0+b7b3742.model_builderson HG002 (BAM, v4.2.1 truth VCF, FASTQ, GRCh38)realism_panelon HG002, GRCh38germline_e2e, eidolon only, chr22cancer_pipeline, chr22 defaultsv_pipelinesmoke, chr22,SV_RATE_SCALE=30gen-seq-error-model(5 M reads, timed; #810) and the SCN reproducer (#809)Results to follow here.
joshfactorial commentedon Oct 9, 2026
Delta validation results, first round (all on
eidolon 4.0.0+b7b3742):model_builders(22772429):gen-mut-modelpassed on the HG002 v4.2.1 truth VCF against GRCh38 (2:04, 2,085 MB), so the REF check accepts it.gen-seq-error-modelpassed on the full 29 GB FASTQ (13:34, 52 MB).SV_RATE_SCALE=30): all stages ran. BND coverage hole (one contig, expected);manta_INSwholly filtered by--passonly(sv_pipeline: check_denominator verifies only the truth side, so precision rests on an unverified query denominator #511, expected).Not run yet:
realism_panel(22772430):REAL_BAMnot found atneat_data/hg002/hg002.bam.Harness defect found:
model_builders.sbatchskips each BAM step whenINPUT_BAMis set but missing ([[ -n && -f ]], line 115), and reports only the downstream round-trip failure. To fix ondevelop.joshfactorial commentedon Oct 9, 2026
Delta validation, second round: the HG002 BAM had been removed in a cleanup and is rebuilt from the retained reads.
stage_hg002.shdefaults (one chunk, all reads) reuse the existing FASTQs, the same inputs as before, so job 22583881 remains the realism baseline.stage_hg002.sh(bwa-mem2 →hg002.bam)realism_panelon HG002 (afterok 22776603)model_buildersBAM steps + round-trip (afterok 22776603)Also open: the SCN run (22772442) wrote 2.59 M pairs at
coverage: 10, implying about 78 Mb covered. On ecoli, the same settings give 9.95x actual depth. Checking the assembly's non-N size and the skip counts before recording #809 as verified.joshfactorial commentedon Oct 9, 2026
#809 verified on its original trigger. SCN reproducer (22772442: debug logging on, SV VCF loaded, 2,587,978 pairs written) had 0 truncated "no R2 window" lines. The low read count is explained by the input. The SCN Delly call set's het DELs span 524 Mb and het DUPs 454 Mb over a 144.4 Mb assembly, and 26.7 Mb is under homozygous DELs; overlapping SVs compose multiplicatively. The same run without
input_vcf(22776712) wrote 4,781,880 pairs, matching the 4.78 M expected at 10x.Staging (22776603) built and indexed
hg002.bam, then exited silently on a SIGPIPE in its contig check: fixed in #833. The BAM is complete;realism_paneland themodel_buildersBAM steps are being resubmitted against it. Harness fix for the earlier silent skip: #832.joshfactorial commentedon Oct 9, 2026
Rebuilt
hg002.bamverified:samtools quickcheckOK, 68,846,158 mapped / 102,252 unmapped (0.15%). Resubmitted against it: 22781361realism_panel(vs 22583881), 22781362model_buildersBAM steps + round-trip.joshfactorial commentedon Oct 10, 2026
model_buildersBAM steps (22781362): all PASS on the rebuilt HG002 BAM. frag_length 1:04 / 248 MB; gc_bias 2:35 / 11.5 GB; bam_models 2:39 / 11.5 GB; round-trip produced 188,421 valid read pairs from the built models. With 22772429, all five builders have now passed at full scale on real human data with v4.0.0.realism_panel(22781361) refused to measure, correctly. The resubmit omittedREAD_LEN=250for this 2x250 library, so the read-length band (145–151) excluded 89,628 of 89,670 real reads, and the guard stopped the run. Resubmitting withREAD_LEN=250. 22583881's other settings are not recorded beyond its BAM and reference, so the comparison assumes defaults otherwise.joshfactorial commentedon Oct 10, 2026
Delta validation of v4.0.0: complete
All on
eidolon 4.0.0+b7b3742(the release commit), 2026-10-09/10.SV_RATE_SCALE=30)Realism snapshot (22783100): not comparable to 22583881
Settings:
hg002.bamrebuilt from one chunk (real depth 5.31x in the windows), GRCh38,READ_LEN=250;FRAGMENT_MODELis set;22583881 differs in all three that matter: real depth 20.59x (a deeper BAM, about 4 chunks), simulated insert SD 93.1 (the shipped empirical fragment model, so
FRAGMENT_MODELwas set), and simulated clip 0.0262 (adapters on). Its settings were never archived and its log is gone, so it cannot be reproduced exactly.Not a regression signal either way. Variant-free read generation is unchanged in v4.0.0: same-seed v3.5.1 vs v4.0.0 gives identical reads apart from the
NMtag. Harness fix:realism_panelwill archive its effective settings so the next run can be compared (PR to follow).Harness defects found and fixed
model_buildersskipped builders silently for a set-but-missing input.stage_hg002SIGPIPE exit after building the BAM.joshfactorial commentedon Oct 10, 2026
Correction. Job 22583881's log was not lost.
archive_runcopied it:eidolon-access-results/realism/job_22583881/eidolon-realism_22583881.out, 47,687 bytes, alongsidepanel.tsv. Earlier comments here said its settings were unrecoverable and the run could not be reproduced; that was wrong. Its configuration block is being compared with 22783100's to confirm which settings differed.joshfactorial commentedon Oct 10, 2026
Matched realism rerun submitted: 22789530,
eidolon 4.0.0+b7b3742, with 22583881's settings as recorded in its archived log:REAL_BAM=/work/nvme/bhrd/jallen17/hg002/hg002.bam(21x),FRAGMENT_MODEL=$SCRATCH/hg002_defaults/frag_hg002.json.gz,ADAPTERS=truseq,READ_LEN=250, GRCh38, defaults otherwise. It replaces 22783100 (one-chunk BAM, Normal fragments, adapters off) as the comparison. Expectation: variant-free read generation is unchanged in v4.0.0, so metrics should match 22583881 within region and seed noise.joshfactorial commentedon Oct 10, 2026
Harness fixes from the Delta validation are merged to develop: #832 (
a6da2b93, model_builders refuses a set-but-missing input; HPC chapter timing), #833 (049aea81, stage_hg002 SIGPIPE), #835 (adc2f95c, archive_run finds job logs through scontrol), #836 (51f6be45, realism panel says what it simulates). #834 closed in favor of the archived logs. Remaining: matched realism rerun 22789530.joshfactorial commentedon Oct 10, 2026
Matched realism rerun (22789530): no regression. Delta validation complete.
eidolon 4.0.0+b7b3742, with 22583881's settings: 21x/work/nvmeBAM, fitted HG002 fragment model, truseq,READ_LEN=250. COMPLETED in 1:15:46.Real side identical to 22583881 on every metric (cand_per_mb 127.5, depth 20.59, VMR 1.697, ins_sd 88.4, …): same BAM, same 10 regions, same settings.
All within window noise;
mapq0_pctis at its floor in both. The simulated side is not bit-identical, as expected: the panel carries model SNPs and indels (#836), and the mutation model was reshipped (#770) and soft-mask handling changed (#811) between the two builds. The standing gaps (cand_per_mb, improper 14x, mapq0, ins_skew 2.5x, depth_acf 2.2x) are the subject of #837.22789530 replaces 22583881 as the realism baseline (settings in its archived log). 22783100, the snapshot with different settings, is superseded.
Validation summary: all items checked on real data at genome scale. Remaining "not verified" items are listed above.