Skip to content

Releases: rhshah/vFlank

vflank 0.6.0

17 Jun 19:05

Choose a tag to compare

Added

  • VCF/BCF input for small variants (vflank small run variants.vcf.gz). The
    input format is auto-detected by extension — no new command or flag. Read
    sites-only; anchor-base REF/ALT is normalised to MAF [Start, End];
    multi-allelic records expand per ALT; symbolic/SV/BND alleles are skipped;
    gene/HGVS come best-effort from a VEP CSQ / SnpEff ANN field. --samples
    doesn't apply to a (sites-only) VCF and is ignored with a warning;
    vflank small inspect previews the normalised variants. New io/vcf.py
    (is_vcf_path, vcf_to_maf_coords, load_vcf); run_small accepts a VCF
    path too. SV-VCF (Delly CT / Manta–GRIDSS BND) remains a follow-up.

vflank 0.5.0

15 Jun 14:40

Choose a tag to compare

Highlights

Library API — the groundwork for hosting vflank as a service. vflank.pipeline.run_small / run_fusion(input, *, …) -> RunResult run the whole pipeline (build sources → load → orchestrate → close) and return records, per-variant rows, categorised skips, counts, and API request tallies — no printing, no files written. Inputs can be a path or an open buffer, so an uploaded file needs no temp file. Streaming primitives iter_small/iter_fusion + collect are available for incremental use.

Internal

  • The per-variant orchestration was extracted out of the CLI into a presentation-free vflank.pipeline use-case layer (no Typer/Rich); the CLIs are now thin shells over it, and source construction moved to vflank.sources. CLI behaviour is unchanged. pipeline.py is now type-checked in the gate.

See the changelog.

vflank 0.4.0

15 Jun 12:49

Choose a tag to compare

Highlights

No-download reference via the UCSC API (--ref-source api) — for both small and fusion, fetch each flank window from api.genome.ucsc.edu instead of a local FASTA, so a run needs no multi-GB reference on disk (the prerequisite for hosting vflank as a service). --ref-genome is now optional, required only for the default file backend (clear error otherwise — no silent fallback). The UCSC path uses the same 0-based half-open coordinates as the local one (flank math unchanged), throttles to ~1 req/s, caches per window, retries transient failures, and reports a reference-API request count.

Use a local FASTA (--ref-source file, default) for bulk/offline/HPC runs; the API backend is best for hosted single-variant / small use.

Also

  • --help for small/fusion groups options into labelled panels.
  • New Recommended Usage page, reference-API and web-app/hosting design notes, and PyPI/GHCR/DeepWiki badges.

See the changelog for details.

vflank 0.3.0

14 Jun 05:02

Choose a tag to compare

Highlights

Primer3 emit (--emit-primer3) — vflank now hands off to a designer. For both small and fusion, it writes a Primer3 Boulder-IO input file: each record carries the best-known template (masked/consensus call, reference base where ambiguous), SEQUENCE_TARGET on the variant/junction, and the masked positions as SEQUENCE_EXCLUDED_REGION — a hard "no oligo here" constraint, not a degenerate base. SEQUENCE_ID matches the FASTA header so the outputs cross-reference.

Version provenance — the vflank version is stamped into the run report and parameter echo, plus a new root --version flag.

Docs — roadmap/module maps refreshed to the shipped state, glossary + tooltips, mermaid diagrams (pan/zoom), slate+amber palette, a "Reading a record" explainer, and the emit-formats design note.

See the changelog for details.

vflank 0.2.0

14 Jun 03:59

Choose a tag to compare

Highlights

Patient consensus from a BAM (--bam / --bam-map) for both small and fusion — the masked record becomes the per-sample consensus (hom-ALT corrected, het/low-coverage handled) via samtools consensus, with coverage controls (--bam-min-depth, --bam-call-fract, --require-coverage, …) and one record per (variant, sample).

No more silent insertion drops — patient insertions are flagged and masked to N (surfaced as NInserted + an "Insertion sites" summary line), closing the gap where deletions were masked but insertions vanished.

Run transparency — every run echoes its full parameter set, and the TSV report carries per-variant detail (masked / corrected / inserted / coverage fraction / source / flagged).

Docs overhaul — glossary + site-wide tooltips, mermaid diagrams (pan/zoom), left-sidebar layout, a slate+amber "Highlighter" palette, and a "Reading a record" explainer.

Project — adopted git-flow and reworked CI (docs-build guard on PRs; mike versioned docs), bumped GitHub Actions off Node-20.

See the changelog for the full list.

v0.1.0

12 Jun 20:51

Choose a tag to compare

First release of vflank — variant-aware flanking-sequence extraction and masking for ddPCR assay design.

Features

  • Small variants (vflank small) — ±N bp flanks from a MAF, raw + masked FASTA, deduplicated per unique variant (CHR_POS_REF_ALT).
  • Fusions / SVs (vflank fusion) — reverse-complement-aware junction sequences from an iCallSV / iAnnotateSV breakpoint table (columns matched by name).
  • SNP masking, two backends — local gnomAD VCFs or the gnomAD GraphQL API (no download), each with --pop-data {genome,exome,both}.
  • Genome-build guard, flank-truncation detection, and a categorised skip summary + optional TSV report.

Install

pip install vflank
# or
docker run --rm ghcr.io/rhshah/vflank --help

Docs: https://rhshah.github.io/vFlank/

🤖 Generated with Claude Code