Overview
This Python tool provides a lightweight workflow for extracting and filtering SNVs from DRAGEN annotated JSON files. It supports batch processing of multiple samples and produces compact, analysis-ready CSV files.
The tool is designed for Illumina Connected Annotations output from DRAGEN. This article is a non-technical explanation of the tool. Please see the README on GitHub project link below for details.
Why I built it
DRAGEN can produce a large annotated JSON file containing a substantial amount of variant information. Although the information is useful, working directly with these files can be inconvenient. I wanted a simple workflow that extracts useful information and applies consistent SNV filtering rules across samples.
The tool separates this into two steps:
- Extract SNVs from the DRAGEN JSON file
- Apply configurable filtering rules
The filtering criteria can be defined in a YAML file, making it easy to change the thresholds without modifying the Python code.
Example output

The example is generated from a public cell line (HCC1187C).
How to filter SNVs
The filtering rules can be customized depending on the analysis. For example:
- Minimum VAF
- Minimum read depth
- Maximum gnomAD allele frequency
- Gene list
- Variant impact
- Variant consequence
Summary
DRAGEN annotated JSON files is useful, but can be difficult to work with. This is a simple Python-based tool for extracting and filtering SNVs from DRAGEN output, and it can apply across multiple samples.
