Skip to content

CLI reference

Command What it does
aver init Write aver.yaml (preset, name, clinical flag, region).
aver resolve [-o snapshot.json] [--replay dragen-replay.json] Fingerprint the pipeline (Nextflow, Snakemake, or DRAGEN from its replay file); print the snapshot hash and any unpinned dependencies.
aver benchmark [--force] Prepare verified reference data, run the pipeline on reference reads, compare with hap.py/vcfeval, print metrics. Nextflow and Snakemake pipelines through a preset; for anything else, run it on the reference reads yourself and use aver compare.
aver compare --query out.vcf.gz --sample HG002 Compare an existing VCF with the truth set (no pipeline run). The VCF's sample must be the named reference material. --sample HCC1395 selects the somatic path (SEQC2 pair, som.py).
aver compare ... --stratification core Add per-stratification metrics (GIAB v3.6 core set, or name individual stratifications; repeatable). benchmark.stratifications: [core] in aver.yaml does the same for aver benchmark.
aver compare ... --snapshot snapshot.json Stamp a resolved snapshot's hash into the result and write a push-ready bundle — how DRAGEN and other externally-run pipelines get their metrics onto the platform.
aver report [--format html\|pdf\|json] Write a deterministic report bundle from benchmark results.
aver verify BUNDLE Recompute the content hash and every file hash; re-render the HTML. Exit 1 on any mismatch.
aver diff SNAP_A SNAP_B [--clinical] [--json] Structured dependency diff with rule-derived severity.
aver login [--url URL] [--key-stdin] Save an organisation API key (web app: Settings > API keys) to your user config directory, readable only by you.
aver push [--pipeline ID] Upload each result's dependency snapshot and metrics to the platform. Pushing the same result twice records one run. Reads, VCFs and outputs never leave your machine.
aver push --snapshot snapshot.json Upload a dependency snapshot alone, without benchmark results — configuration-drift monitoring for engines without aver benchmark, such as DRAGEN.
aver qc push --run-key KEY --date YYYY-MM-DD [--multiqc\|--dragen-metrics\|--metrics\|--metric] Push one run's QC metrics (numbers only) for trending against your laboratory's control limits; reads MultiQC JSON or DRAGEN *_metrics.csv files. See Run QC monitoring.
aver compare ... --sv --build GRCh37 Benchmark structural variants (≥50bp) against the GIAB SV Tier 1 truth set with truvari. See Structural variants.
aver pgx compare --sample NA12878 --calls calls.json Judge star-allele diplotype calls against the GeT-RM published consensus, gene by gene. See Pharmacogenomics.
aver logout Remove the saved API key.
aver runner install How to install the lab-hosted Runner (a separate binary; see runner/README.md).

aver.yaml

apiVersion: aver/v1
pipeline:
  name: germline-chr20
  engine: nextflow
  entrypoint: nf-core/sarek        # or a local path
  revision: 3.10.0
  profile: docker
  preset: nf-core/sarek
  clinical: true
  intended_use: Germline SNV and small indel detection …
  target_bed: null                 # panel/exome footprint, recommended
  params: {}                       # pipeline parameters under validation
reference:
  build: GRCh38
  materials:
    # Samples must be registered GIAB codes; nothing else is accepted.
    - sample: HG002
      truth_set: null        # null = the published default (v4.2.1)
benchmark:
  threads: 8
  region: chr20                    # laptop-sized; null = whole genome
  max_cpus: 12
  max_memory_gb: 12
policy:
  snv_recall_delta_pp: -0.5
  indel_recall_delta_pp: -1.0
  precision_delta_pp: -0.5
  reference_change: revalidation_required

Unknown fields are rejected, so a misspelt key never silently falls back to a default.

Snakemake workflows

pipeline:
  name: germline-gatk
  engine: snakemake
  # entrypoint: a GitHub owner/repo, an https Git URL or a local path
  entrypoint: snakemake-workflows/dna-seq-gatk-variant-calling
  revision: v2.1.1
  # snakefile defaults to Snakefile or workflow/Snakefile
  snakefile: null
  preset: snakemake-workflows/dna-seq-gatk-variant-calling
  params: {}             # config overrides, as with snakemake --config

aver resolve loads the workflow with a pinned Snakemake (9.27.0, installed on first use into Aver's cache from a hash-locked requirements file; needs uv and git, Linux or WSL). It records every rule's container (by digest), conda environment (file SHA-256 and declared packages), wrapper (with its release) and the workflow config. A conda environment counts as pinned only when every declared package has an exact version (==X or =X=BUILD) or a *.linux-64.pin.txt pin file sits next to it; conda's =X means "any X.*" and is reported as unpinned. A bare aver resolve records no reference genome row for a Snakemake workflow; aver benchmark does, because it supplies the verified reference.

aver benchmark executes a Snakemake preset inside the digest-pinned snakemake/snakemake image — the same 9.27.0 the snapshot records — building each rule's conda environment inside the container, so the host needs Docker only. The dna-seq-gatk-variant-calling preset benchmarks the per-contig genotyped VCF (raw calls, before the workflow's hard filter) and pre-seeds the workflow's reference inputs from Aver's checksummed catalogue, including an empty known-variation VCF, so the workflow never downloads unverified reference data (ADR-012).

Environment

Variable Meaning
AVER_CACHE Cache directory for reference data, derived files, tools and results (default ~/.cache/aver).
AVER_API_KEY API key for aver push; takes precedence over the key saved by aver login (use it in CI).
AVER_API_URL Platform API URL (default https://api.aver.bio).