DRAGEN Annotated JSON Filtering Tool

Coding

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:

  1. Extract SNVs from the DRAGEN JSON file
  2. 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.