← All projects

Microbial genomics · WGS

M. tuberculosis WGS variant analysis workflow

An end-to-end Galaxy workflow for Mycobacterium tuberculosis short-read data, from sequence retrieval through QC, alignment, coverage, variant calling and annotation to read-level review, built to interpret resistance-associated variants reproducibly.

Context
Portfolio project
Data
6 clinical M. tuberculosis isolates from the SRA
Methods
QC, trimming, alignment, duplicate marking, coverage, variant calling, annotation, IGV review
Stack
Galaxy, fasterq-dump, Falco, fastp, Cutadapt, BWA-MEM2, Picard, samtools, mosdepth, bcftools, SnpEff, SnpSift, MultiQC, IGV
Galaxy workflow graph for M. tuberculosis WGS variant analysis
The Galaxy workflow graph, from read retrieval to annotated variants.
6Clinical isolates analysed end to end
98–99.6%Reads mapped to the reference across isolates
≥52×Depth at every target locus, so a missing call is not a coverage gap
The problem

Resistance calling has many places to go wrong

Interpreting drug resistance from WGS needs a long, multi-step workflow with several failure points, and a high risk of analysing isolates inconsistently. I wanted one reproducible workflow that runs every isolate the same way and leaves evidence for each call.

Workflow

Eleven steps from reads to a resistance call

  1. Read retrieval with fasterq-dump
  2. Quality control with Falco
  3. Trimming with fastp and Cutadapt
  4. Alignment to the reference with BWA-MEM2
  5. Sorting and duplicate marking with Picard
  6. Mapping QC with samtools flagstat and idxstats
  7. Coverage with mosdepth
  8. Variant calling and filtering with bcftools
  9. Annotation with bcftools csq, SnpEff and SnpSift
  10. Aggregate reporting with MultiQC
  11. Read-level review in IGV
Results

Resistance mutations, confirmed at the read level

The workflow called rpoB mutations S450L, H445R, D435Y and L430P and katG mutations S315T and Q295*. On those genotypes, 4 isolates were classified as MDR-TB and 2 as rifampicin-resistant.

Coverage mattered as much as the calls: with 98–99.6% of reads mapped and at least 52× depth across every target locus, a missing mutation could be read as a true negative rather than a coverage gap.

IGV screenshot showing reads supporting the rpoB S450L mutation
IGV evidence for rpoB S450L, associated with rifampicin resistance.
IGV screenshot showing reads supporting the katG S315T mutation
IGV evidence for katG S315T, associated with isoniazid resistance.
Outputs

What’s in the repository

  • QC and trimming summary, and mapping summary.
  • Variant tables for resistance-associated loci and a resistance interpretation summary.
  • IGV screenshots for selected mutations.
  • The calls are genotypic predictions; phenotypic susceptibility testing was outside the scope of this project.

Get in touch

I’m looking for bioinformatics roles in statistical genetics, transcriptomics and NGS analysis, especially where clinical or cell and gene therapy experience helps. Based in London, open to hybrid and remote.