Skip to content

WGS Extract v0.8.5

Choose a tag to compare

@github-actions github-actions released this 08 Nov 13:06
· 46 commits to main since this release
5e98591

WGS Extract 0.8.5

This release completes the v0.8.0 milestone and adds parts of v0.9.0. It is
the first release that ships the WGS Extract desktop app next to the CLI.

New

  • The WGS Extract desktop app ships with the CLI: its source moved into
    this repository (gui/), and each release now carries the app's installers
    for Linux, macOS and Windows next to the CLI it bundles. Installed apps
    update from here; the app's site moved to
    https://wgsextract.github.io/wgsextract-cli/app/
    (#510).
  • Personal report: wgsextract report summarises a sample's results in
    one local HTML report (plus Markdown, JSON and a findings table), with
    depth-aware confidence labels on every finding. It can use selectable gene
    lists including ACMG SF v3.3, and it reports HLA alleles and carrier status
    for recessive genes. Nothing leaves your computer
    (#353,
    #337,
    #397,
    #398).
  • Server mode for apps and AI agents: wgsextract serve runs a local
    HTTP/JSON API and an MCP server (over stdio or streamable HTTP) on top of
    the same commands. It listens only on 127.0.0.1 with a per-launch token,
    requests may only touch the folders you allow, deleting data needs
    --allow-destructive, and read-only lookups cover variants, reports and
    manifests
    (#351).
  • Typed Python API: wgsextract_cli.api exposes every command with typed
    parameters and results, progress events and the human-readable report
    (docs/api.md;
    #346,
    #478).
  • Long runs resume: realign and vcf deepvariant record their completed
    steps, so rerunning after a crash or reboot continues where it stopped
    (--no-resume starts over)
    (#350).
  • Easier help: wgsextract help groups commands into the usual path,
    setup and advanced tiers, and shows each command's tools and typical run
    time. The command reference (docs/commands.md) and the
    site's CLI page start with the commands to run, in order, for a BAM/CRAM,
    FASTQ, VCF or consumer raw-data file
    (#347,
    #352).
  • The desktop app reads each run's result manifest: WGS Extract actions
    list the files they wrote with Open and Show in Folder, and show
    their warnings and key metrics, instead of leaving them in the log. A
    refused option is shown next to the action, and a missing tool offers
    Open Setup. The global --result-file PATH option, which writes the
    document to PATH while keeping the human-readable output, is now documented
    (#529).
  • Long reads (Nanopore and PacBio):
    • basecall turns Nanopore POD5 signal into an unaligned BAM with
      methylation tags, using Dorado if it is installed
      (#342).
    • vcf phase phases a sample's heterozygous calls with its reads
      (WhatsHap or LongPhase)
      (#341).
    • bam merge safely combines several flow-cell runs of one sample
      (#339).
    • info reports read N50, a read-length histogram and the mapped fraction,
      and measures long-read depth correctly
      (#338,
      #427).
    • realign handles single-end PacBio BAM/CRAM input with minimap2
      (#388).
    • Validated end to end on GIAB HG002 R10.4.1, with a real-read CI fixture
      (#299).
  • Targeted sequencing: panel bed writes gene-region BEDs for Nanopore
    adaptive sampling, and info calculate-coverage --by BED reports per-target
    depth, on/off-target enrichment and targets below --min-depth
    (#335,
    #336).
  • Lineage:
    • lineage mt-haplogroup uses Haplogrep 3, with a choice of trees and
      haplocheck contamination QC
      (#361).
    • lineage y-haplogroup uses a versioned YFull tree, refreshed to
      14.06.0, and a tree registry that accepts custom trees
      (#359,
      #360).
  • GPU:
    • Parabricks runs check GPU and host memory first, and switch to its
      low-memory modes automatically
      (#365).
    • vcf deepvariant --gpu supports Ultima reads through Google's Ultima GPU
      image, and warns if that image changes the call_variants batch size
      (#358).
  • Memory and disk checks: align and realign warn before minimap2
    outgrows memory, and the long-read memory and disk estimates are
    calibrated against whole-genome runs
    (#428,
    #474,
    #475).
  • Microarray: below 15x coverage, microarray warns that its calls
    become less accurate. The threshold comes from a 30x-to-1x downsampling
    benchmark (#307).
  • qc fastqc fails if FastQC wrote no report, and warns (no_reads) when the
    input has no reads.
  • Faster alignment on Apple Silicon Macs: align and realign use
    WGS Extract's own builds of bwa, bwa-mem2 and minimap2 (wgse-bwa,
    wgse-bwa-mem2 and wgse-minimap2) when they are on PATH. They write the
    same alignments as the upstream tools from the same index files, and
    wgse-bwa and wgse-bwa-mem2 use the Metal GPU. On an M1 Pro, aligning 5M
    read pairs to hs38 went from 533 s to 147 s with an identical BAM. They are
    published as macos-aligners-* prereleases and aren't installed for you;
    --native-aligners off (or native_aligners = "off" in config.toml)
    turns this off. The result manifest records which build ran and whether it
    used the GPU (docs/hardware.md,
    native/README.md,
    #364).
  • No separate indexing pass after alignment: align and realign write
    the BAM or CRAM index while sorting instead of re-reading the file to index
    it. On a 30x genome this saves about 320 CPU-seconds and a full read of the
    BAM; the index is the same as samtools index writes
    (#545).

Fixes

  • vcf snp and vcf indel with --parallel give the same calls as a
    single stream at very deep sites (more than 255 reads)
    (#392).
  • extract custom sorts and merges out-of-order or overlapping regions,
    instead of writing a BAM that can't be indexed
    (#434).
  • A --ref FASTA outside the reference library no longer hides the library's
    resources, such as the hg38-to-hg19 chain that microarray needs
    (#429).
  • Variant callers no longer warn about low depth when --region limits a BAM
    that holds only that region
    (#430).
  • align extracts long reads from a BAM --r1 before giving them to
    minimap2, and sends short reads in a BAM to realign
    (#447).
  • On Windows, CHM13 microarray cache paths stay within MAX_PATH in deep
    library folders
    (#419).
  • report treats a split 1/2 genotype with two pathogenic or likely
    pathogenic alleles as biallelic
    (#483).
  • wgsextract panel --help no longer crashes
    (#468).
  • deps check retries slow pixi queries instead of dropping install hints
    (#518).
  • Licensing: the reference bootstrap no longer contains YBrowse data.
    The CC-BY-SA YBrowse snapshot is a separate optional download
    (ref ybrowse), and the YFull pack is split into separately licensed data
    modules
    (#503,
    #509).

Removed

Two commands that duplicated others are gone
(#352):

  • wgsextract ref library-list: use wgsextract ref library --list. The
    Python API's api.ref.library_list and the server's ref/library-list
    operation are unchanged.
  • Running VEP with bare wgsextract vep --input ...: use
    wgsextract vep run --input .... Bare vep now asks for a subcommand,
    like vcf.

Desktop app

  • WGSExtract has controls for the newer CLI options:
    • DeepVariant model selection, including ONT_R104;
    • long-read structural-variant modes and a tandem-repeat BED;
    • Clair3 and methylation pileup (hidden on Windows);
    • Y-STR panels and variant tables.
  • Report a problem: WGSExtract can preview a redacted bug report, and
    open GitHub's pre-filled new-issue form with it
    (#528).
  • WGSExtract's coverage actions run as jobs on wgsextract serve, with live
    progress and clean cancellation.
  • Workspace: the WGS Extract workspace is now a visible wgs-extract
    folder in your home folder, and holds temporary files and run logs too.
    Settings can move it to another disk. Existing workspaces aren't moved:
    run setup again. Uninstalling asks before deleting it
    (#531).
  • Run Yleaf works again, with options for the Y tree, ancient DNA and
    genotyped positions only
    (#538).
  • The Web UI server rejects an invalid --port with a clear error before it
    starts (#527).

See the app's CHANGELOG for details.

Full changelog: v0.6.6...v0.8.5