Repository navigation
eidolon v3.5.0
eidolon v3.5.0 — germline defaults fitted from one human genome
The shipped germline defaults now come from GIAB HG002, the library the quality model already came from, instead of a mix of NEAT2 values and a second sample. The sequencing-error substitution matrix is fitted from current NovaSeq data, using a new method that cancels the sample's own variants.
Output differs from v3.4.0 at the same seed. Re-baseline anything measured against 3.4.0.
📖 Documentation: https://ncsa.github.io/eidolon/
New defaults
| default | now | was |
|---|---|---|
| mutation rate, SNP/indel shares, homozygous fraction | HG002 v4.2.1 truth VCF in its high-confidence BED: 0.0015162, SNP/ins/del 0.873/0.062/0.066, 0.388 hom | NEAT2 NA12878: 0.0010987, 0.95/0.03/0.02, 1/3 |
| trinucleotide contexts, variant indel lengths | the same HG002 fit | NEAT2 NA12878 |
| fragment length | HG002 2x250 BAM: mean 408.5, sd 93.2 | HCC1395 NovaSeq: 431.8, 112.3 |
| substitution matrix | mean of two NovaSeq 6000 libraries, fitted from mate-overlap disagreements | NEAT2 SSE_PROB, no recorded source |
The mutation fit reproduces bedtools counts of the truth VCF exactly: 3,364,039 SNPs, 237,674 insertions and 252,894 deletions. GC bias stays uniform by default; the HG002 GC fit is held for named presets (#576).
Fixes that change generated reads
- A fragment's two mates now carry the same allele (#780). Before, 73 of 170 het pairs disagreed; now 0 do.
- SV junction R2 reads use R2's quality model (#753) and apply substitution errors in reference orientation (#777), like every other R2.
- Soft-masked references are counted as their uppercase bases in GC weighting and SV insertion composition (#771). Uppercase references are unaffected.
- A distribution with no mass is refused (#760) instead of sending every draw to its first value.
Fixes in the tools
- VCF/BED off-by-one (#770):
compare-vcfsscoring and attribution,filter-readsandgen-mut-modelcompared 1-based POS to 0-based BED intervals. gen-mut-modellabels G and T correctly (#758), drops its unused 4×4 matrix (#763), and refuses a VCF whose SNPs are all unusable (#760).gen-gc-bias-modelfits medians, interpolates sparse bins, writes a per-bin report and refuses an uncovered BAM (#774).gen-cancer-readsdefaultsread_lento 250 likegen-reads(#754).gen-readswarns when it rescales a quality model (#742).
Fit your own substitution matrix
gen-seq-error-model with bam_file: now fits from mate-overlap disagreements by default (bam_method: overlap). The sample's variants, PCR errors and damage appear in both mates and cancel; only sequencing errors remain. known_variants_vcf: masks a VCF's sites. For a library whose mates don't overlap, use bam_method: mismatch.
Compatibility
- A mutation model written by 3.5.0 does not load in an older eidolon. It fails with a "missing field" error, not silently. Older models load here.
gen-mut-model'stransition_matrix_fileis removed. A set value stops the run with an explanation;gen-seq-error-model's option of that name is unchanged.gen-seq-error-model'sbam_methodnow defaults tooverlap. Usemismatchto reproduce a 3.4.0 fit.
Evidence and limits
Validated on real data on NCSA Delta. The HG002 realism panel on the new defaults shows no regression against the previous run. The mutation refit matches bedtools. The NovaSeq fits rest on 3.0M and 656k counted errors. Not re-run: cancer simulation; the COSMIC tumor-model rebuild is #761. Open realism gaps are tracked in #692, #658 and #696.
Full detail in CHANGELOG.md. Model provenance in model_data/README.md.
Full Changelog: v3.4.0...v3.5.0