Repository navigation
Releases
v0.6.6
v0.6.6: bundle WGSExtract CLI v0.6.6
WGSExtract CLI v0.6.6
New
- Nanopore (ONT) support: ONT reads are detected and their MM/ML methylation tags kept through alignment. DeepVariant uses the ONT_R104 model for R10.4.1 reads, Sniffles calls structural variants by default, and Clair3 is an optional small-variant caller (
vcf clair3). - Methylation pileup: CpG methylation from MM/ML tags with modkit.
- Y-DNA: native Yleaf-derived haplogroup analysis with verified data assets, and Y-STR genealogy marker panels from WGS (
lineage y-str). - Variant tables:
vcf tablewrites a queryable one-row-per-variant TSV and SQLite file. Table outputs also accept--format tsv|parquet. - Confidence labels: rare and clinical variant calls are labelled with depth-aware confidence.
- Result manifests: commands can describe their outputs as JSON (
--json), with consistent exit codes. - Sample workspace: sample facts are recorded once and can be overridden by the user.
- Typed Python API (phase 1).
- Easier help: commands are grouped into tiers, typos in options get suggestions, and there are
--help-all, help topics, typed help JSON and next-step hints. Global options are now accepted after the subcommand too. report-issue: opens a redacted, pre-filled GitHub bug report.- Microarray:
info chipdetects vendor chip revisions, and--quirks vendorreproduces known vendor reverse-strand reports. - Native Linux ARM64: DeepVariant 1.10 runs natively on the CPU for WGS. It uses a locally built image.
- Recognized inputs: Element AVITI read names, MyHeritage Ultima read names, and the hs38d1c/hs38d1t references.
- QC: warns about low-coverage or heavily imputed genotype inputs.
- MultiQC: metrics output, plus docs on handing results to other pipelines. There is also a new hardware and acceleration guide.
Fixes
- DeepVariant: CRAM 3.1 input is automatically converted to a temporary CRAM 3.0 copy, and the whole-genome postprocess step's RAM is estimated and capped.
- Realign streams paired reads through collate at whole-genome scale, and refuses single-end reads before extracting pairs.
infoinfers sex when chrX or chrY is missing.- Nested
--genomeIDs insidegenome_libraryare accepted. - Slow tool version probes are retried, and successful ones are cached.
- Faster: coordinate projections and catalogues for microarray are cached, GERP/PhyloP scores are read in bounded windows, consensus queries only records inside the masked regions, and both depth binning and CRAM record counting are quicker.
Full changelog: WGSExtract/wgsextract-cli@v0.6.5...v0.6.6
Full CLI release: https://github.com/theontho/wgsextract-cli/releases/tag/v0.6.6
v0.6.5
v0.6.5: bundle WGSExtract CLI v0.6.5
Bundles WGSExtract CLI v0.6.5, which includes all v0.6.4 features: https://github.com/theontho/wgsextract-cli/releases/tag/v0.6.4
GUI
- Expose the CLI features added after v0.6.3: opt-in MultiQC reports (file and directory pickers), expanded microarray exports (quality, strand, rsID, absent-marker and filter options, AADR 1240K/2M and indel manifests), the AADR and YBrowse reference installers, and targeted Y analysis options. New controls are off or blank by default, so existing commands are unchanged. (#171)
- Settings toggles and numbers are saved as real TOML booleans and numbers, so switching a toggle off now turns the option off in the CLI. A saved value of the wrong type shows a warning naming the setting and uses the default, without blocking the bundle or rewriting the file. (#171)
- One-command developer setup:
make setupon Linux and macOS,.\make.ps1 setupon Windows. (#175) - Fresh Windows installs work again (CLI #286 replaced a
Get-FileHashcall that fails on some PowerShell 5.1 setups). (#173)
WGSExtract CLI v0.6.5
Fixes
- Fresh Windows installs from the app work again. v0.6.4 checked the Pixi
download withGet-FileHash. That cmdlet is missing when the app starts
Windows PowerShell 5.1 from PowerShell 7, so new installs failed. The
installer now computes the SHA-256 with .NET and still refuses a mismatched
download. (WGSExtract/wgsextract-cli#286) - Invalid configuration values are reported, not silently used. A value of
the wrong type inconfig.tomlused to be coerced silently or fail later
with a traceback. It is now ignored with a warning that names the key and
the expected type, and the command carries on with the default. (WGSExtract/wgsextract-cli#282, WGSExtract/wgsextract-cli#281)
New
- One-command developer setup. From a source checkout, run
./scripts/dev_setup.sh(macOS/Linux) or
powershell -ExecutionPolicy Bypass -File scripts\dev_setup.ps1(Windows).
The script installs Pixi andjustfor your user if they're missing,
installs the locked environments and pre-commit hooks, then runs the CLI,
deps checkand the smoke tests. See
docs/developer_setup.md.
On Windows,just runandjust testnow also work under the default
Restricted script policy. (WGSExtract/wgsextract-cli#285, WGSExtract/wgsextract-cli#289)
Full Changelog: WGSExtract/wgsextract-cli@v0.6.4...v0.6.5
Full CLI release: https://github.com/theontho/wgsextract-cli/releases/tag/v0.6.5
v0.6.3
v0.6.3: bundle WGSExtract CLI v0.6.3
WGSExtract CLI v0.6.3
Native Windows full-genome validation, reproducibility and memory improvements, and several Windows and download fixes.
New
- Optional parallel SNP/indel calling:
vcf snp --paralleland
vcf indel --parallelprocess indexed whole-genome alignments with up to
--threadscontig workers, resolve sex/ploidy once, and concatenate in
reference-index order. Serial calling remains the default. bcftools uses
a random subsampling stream per process at sites with more than 255 bases;
starting independent contig workers changes those streams and can change
likelihoods, INFO values, or low-quality calls. Full-genome testing found
nine differing sites among roughly 4.4 million SNPs, despite passing smaller
comparisons. Parallel output is therefore not guaranteed byte-identical
to serial output; opt in only if that tradeoff is acceptable. Explicit
regions, one thread, and unsupported input/index layouts use one stream.
(#175, #199; exactness investigation #197) - Thread-independent BWA batches: BWA and BWA-MEM2 now use fixed
-K 100000000batches in short-read, Ultima, and pet alignment. This removes
thread-count-dependent batching; one-million-pair tests produced identical
decoded alignment bodies at two, four, and six threads. The Windows MEM2
subset gate recorded a 3.2% throughput loss, specifically accepted for
reproducibility; this is not a full-genome performance claim. (#176) - Measured alignment memory preflight: account for resident reference
indexes, aligner working memory, duplicate marking, threaded sorting, and
overhead against currently available memory on Linux, macOS, and Windows.
Automatic selection falls back to BWA when MEM2 cannot fit; explicit MEM2
refuses with advice to select BWA or lower--memory. BWA warns only.
Read-dependent components and sort spill now scale with input read count,
using bounded compressed-FASTQ sampling or indexed BAM/CRAM counts rather
than reference length. The measured H2 input estimates about 18 GiB for BWA
and 29 GiB for MEM2 at six threads / 256M sort memory. (#179, #194) - Lower BWA-MEM2 sorting memory: cap samtools sort at 256 MiB per thread,
preserve smaller explicit budgets, and use that effective budget throughout
aligner selection, estimates and safety guards. BWA and other aligners are
unchanged. Matched five-million-pair chr20-reference trials were strictly
exact on Linux and Windows, with no observed throughput regression. (#178) - Advisory memory and disk estimates before CPU alignment/realignment,
BAM/CRAM sorting/conversion, and SNP/indel/GATK calling: compact
OK/LOW/UNKNOWNrows compare estimated demand with available
resources, combining concurrent demands on shared volumes. Estimates include
output/index space, extracted FASTQs, retained Ultima/GATK BAM intermediates,
and unresolved reference-storage uncertainty. Estimation failures warn and
never introduce a new command refusal; existing safety guards remain.
A strict, read-only, versioned JSON-compatible API is available for future
GUI integration. (#198)
Fixes
- Indels at ambiguous reference bases no longer abort full hs38DH calling.
Normalize IUPAC reference codes to concrete VCF-compatible bases (for example
RtoA) while retaining ordinary records unchanged. Consensus generation
reconciles compatible ambiguity in temporary inputs without changing the
exported VCF or its called ALT bases. (#190; fixes #191) - Trio input selection now honors
--inputfor the proband when
--probandis absent, with shared--vcf-inputprecedence and intact
BAM/CRAM support. Normalize parent/proband chromosome aliases beyond the
primaries, including random, unplaced, and ALT contigs, even when a contig
has no proband records. This fixes Nebula-style gVCF merging against
chr-prefixed references and preserves annotation name round-trips.
(#195; fixes #196) - Native Windows Java/GATK paths: paths entered as
R:/...are passed
with native separators for references, inputs, outputs, interval files,
temporary directories, and dictionaries, preventing
ProviderNotFoundException: Provider "R" not found. Java launch paths for
FastQC/HaploGrep are covered too; explicit URIs and POSIX argv are preserved.
Hosted Windows CI includes a real regional GATK smoke test. (#201; fixes #200) - Safe reference re-downloads: refreshes start at byte zero rather than
promoting a completed destination into a resumable partial. Only a genuine
.partialis resumed. curl, urllib, and segmented downloads preserve the
previous destination until the candidate passes configured verification,
then atomically replace it; failed verification leaves the old file intact.
(#203; fixes #202) - Correct GATK output warnings: indexes produced by GATK/htsjdk can report
zero records even for nonempty VCFs. Confirm indexed zero counts with a
bounded single-record probe before warning that no variants were called.
Variant contents are unchanged. (#206; fixes #205) - Clear early Windows refusals for unsupported commands, including
pyBigWig-backed PhyloP/GERP, instead of failing after input preparation or
creating output directories. Table-backed PhyloP remains available.
Parabricks GPU modes explicitly require Linux with an NVIDIA GPU. (#174)
Native Windows validation
We validated a full 30× human genome on native Windows (no WSL or MSYS2) against Linux:
- Byte-identical to Linux: full-genome BWA alignment, serial SNP and indel calling, trio analysis, BAM/CRAM sorting and conversion, read extraction, annotation, lineage and QC.
- Command coverage: 43 benchmark and 22 supplemental native-Windows command cases passed, including reference downloads. Optional FreeBayes was not installed and so was not tested.
- GATK HaplotypeCaller calls the same sites and genotypes on Windows and Linux (124,581 chr20 records, 0 site or genotype differences). However, 26 records differ in QUAL/PL/GQ/QD/MQ/DP/AD, and Windows is roughly 4–5× slower. GATK's Intel GKL native kernels do not ship for Windows, so GATK falls back to pure-Java PairHMM and Smith-Waterman. Filters on confidence or depth may therefore behave slightly differently on Windows. Tracking: #207.
- Parallel SNP/indel calling (
--parallel) is not byte-identical to serial calling on full genomes, which is why serial remains the default (#197, #199). - Not validated in this release: full-human BWA-MEM2 alignment (needs about 48 GB RAM, #188) and full-genome realign on Windows (#189).
BWA-MEM2 sort-memory cap: measured impact
On matched 5-million-pair runs (6 vCPU, 10 GiB), Linux and Windows output was byte-identical with and without the cap. Wall time was unchanged (Windows 702 s → 700 s; Linux 716 s → 715 s), and peak memory fell by about 1.5 GiB on both. Windows ran within 2% of Linux.
Full Changelog: WGSExtract/wgsextract-cli@v0.6.2...v0.6.3
Full CLI release: https://github.com/theontho/wgsextract-cli/releases/tag/v0.6.3
v0.6.2
v0.6.2: native Windows CLI and optimized tools
v0.6.1
GUI for CLI v0.6.1
WGS Extract setup recognizes native Windows CLI installations and skips MSYS2 for them, while retaining MSYS2 setup for legacy CLI releases that require it.
The desktop app is packaged with Tauri on Windows, macOS, and Linux. The packaged app's install, setup, actions, and uninstall passed on all three platforms with both the native CLI tree and the pinned CLI release:
https://github.com/theontho/wgsextract-cli/actions/runs/40223207928
v0.6.0
v0.6.0: bundles WGSExtract CLI v0.6.0
v0.5.0
v0.5.0: bundles WGSExtract CLI v0.5.0
v0.4.5
v0.4.5
- WGSExtract bundles CLI v0.4.3: actions that pick a reference themselves use the one shipped beside a BAM over a library genome of another build (the mtDNA haplogroup action reported no haplogroup with hs38 installed); SpliceAI scores from Ensembl; 23andMe v1/v2 microarray templates; native VEP on Apple Silicon.
v0.4.4
v0.4.4
- Bundle tests: dataSource steps load a control's or setting's data source the way the app does and check its output.
- WGS Extract Microarray page: the reference dropdown's data source now receives ref_path, so it lists installed genomes.
- Dependencies: patched follow-redirects, rustls and golang.org/x/image.