SMART

Somatic Mutation Annotation and Reporting Tool

A Dockerised pipeline for somatic variant annotation, filtration, and clinical reporting — from raw VCF to audience-targeted output in a single command.

DOI Tests passing Version 1.0.0 MIT licence
Get started Browse example output View on GitHub

What is SMART?

SMART automates the end-to-end processing of somatic VCF files generated by cancer sequencing panels (e.g. TSO500). Starting from raw VCFs in hg19/GRCh37 or GRCh38 coordinates, it performs PASS filtering, optional coordinate liftover, comprehensive functional annotation via Ensembl VEP 114, and clinical annotation via the OncoKB REST API. Results are delivered in three audience-targeted output files.

Everything runs inside a single Docker container — no local installation of VEP, GATK, or OncoKB is required. A single docker run command takes you from raw VCF to clinical report.

Key features

🐳

Fully Dockerised

VEP, GATK, bcftools, Python, and the OncoKB annotator all run inside a single container. No local installs, reproducible across machines.

📊

Three output tiers

Clinical TSV (77 fields), bioinformatics TSV (670 fields), and full MAF (1,000+ fields). Each audience gets exactly what they need.

🧬

Transcript prioritisation

A curated NM whitelist ensures VEP annotation and OncoKB queries use the same clinically relevant transcript. MANE Select used as fallback.

🔀

Multi-transcript output

Variants overlapping multiple preferred isoforms (e.g. CDKN2A p16/INK4a & p14ARF) produce one row per transcript with independent OncoKB evidence.

💊

OncoKB clinical evidence

Therapeutic (LEVEL_1–4, R1–R2), diagnostic (Dx1–3), prognostic (Px1–2), and FDA levels. Drug names and tumour types structured as indexed columns.

Extensive verification

Four integration suites (field-level API check, caller compatibility, transcript prioritisation impact, parallel processing) plus 161 unit tests.

Output tiers

Every pipeline run produces three files from a single post-analysis step. Column counts scale with OncoKB evidence — runs with more variants across more tumour types produce more expanded JSON columns.

Tier 3 — Clinical

Final_result_tier3.tsv

77 curated fields for clinical scientists. Variant identity, consequence, top-line OncoKB actionability, ClinVar, CancerHotspots, and pathogenicity scores. Two-row header (field names + source metadata).

Tier 2 — Bioinformatics

Final_result_tier2.tsv

670 fields for bioinformaticians. Extends Tier 3 with full gnomAD stratification, all SpliceAI delta scores, complete CIViC annotation, and every OncoKB JSON expansion (ONCOKB_TX_*, ONCOKB_DIAG_*).

Tier 1 — Full MAF

Final_result_tier1.maf

1,000+ fields in standard MAF format. All non-dropped fields for downstream tools: cBioPortal, oncoPrint generators, R/Python analysis pipelines.

Browse the full output from the Verification 1 test run (18 variants (22 output rows), 3 tiers) as interactive tables

Getting started

  1. Obtain an OncoKB API token
    Register at oncokb.org to receive a free academic token. Without a token the pipeline runs in VEP-only mode — full annotation resumes once a token is added.
  2. Download reference files
    Run bash utils/get_ref_files.sh to download the VEP cache, SpliceAI scores, REVEL, ClinVar, CIViC, gnomAD constraints, CancerHotSpots, and the GRCh38 reference genome (~200 GB total).
  3. Build the Docker image
    git clone https://github.com/Manuel-DominguezCBG/SMART.git && cd SMART
    docker build -t smart:latest .
  4. Prepare your data
    Place VCF files in data/OriginalVcf/ and copy your transcript whitelist (e.g. TSO500_transcript_MANE.txt) into data/.
  5. Run the pipeline
    export ONCOKB_TOKEN=your_token_here
    docker run --rm -v $(pwd):/data -v /path/to/refs:/refs monkiky/smart:latest "$ONCOKB_TOKEN" --transcripts-file /data/transcripts.txt --config /data/Config.yaml --ref-dir /refs
  6. Find your results
    Output files are written to the mounted /data directory under Output_Results/. See the full documentation for all command-line options.

What’s new

v1.0.0
Multi-transcript output

When a variant overlaps more than one preferred transcript (e.g. CDKN2A p16/INK4a and p14ARF), the pipeline now produces one output row per matching transcript, each with independent VEP annotation and OncoKB evidence level.

v1.0.0
VEP-only mode — no token required

Omitting the OncoKB token now automatically activates VEP-only mode. The pipeline runs through VEP annotation and stops, producing annotated VCFs without requiring an OncoKB account.

v1.0.0
Parallel sample processing

The --jobs N flag runs up to N samples concurrently on a single machine, reducing wall-clock time for multi-sample runs.

v1.0.0
CNA annotation fix

MafAnnotator incorrectly overwrote CNA oncogenicity with Unknown. Post-analysis now overrides MafAnnotator output for CNA rows using values from the OncoKB API directly.

v0.1.0
Initial release

End-to-end Dockerised pipeline: PASS filter → LiftOver → VEP → OncoKB → vcf2table → MafAnnotator → post-analysis with three output tiers.

Browse live example output

18 variants · 22 output rows · 3 tiers · colour-coded OncoKB levels · searchable & sortable

Open interactive tables →

Citation

If you use SMART in your research, please cite:

Manuel Dominguez (2026). SMART — Somatic Mutation Annotation and Reporting Tool (v1.0.0). Zenodo. https://doi.org/10.5281/zenodo.20206503

SMART integrates annotations from Ensembl VEP, OncoKB, CIViC, ClinVar, gnomAD, SpliceAI, REVEL, and CancerHotspots. Please also cite those resources as appropriate.