Skip to content

Snakemake workflow to generate figures and results from GAMBIT paper

Notifications You must be signed in to change notification settings

jlumpe/gambit-publication

Repository files navigation

GAMBIT (Genomic Approximation Method for Bacterial Identification and Tracking): A methodology to rapidly leverage whole genome sequencing of bacterial isolates for clinical identification

A Snakemake workflow to (re)produce figures and data in the initial GAMBIT publication:

Lumpe J, Gumbleton L, Gorzalski A, Libuit K, Varghese V, et al. (2023) GAMBIT (Genomic Approximation Method for Bacterial Identification and Tracking): A methodology to rapidly leverage whole genome sequencing of bacterial isolates for clinical identification. PLOS ONE 18(2): e0277575. https://doi.org/10.1371/journal.pone.0277575

Source code for GAMBIT itself is located here.

Please feel free to contact me at [email protected] with any questions you have.

Instructions

After installing and activating the conda environment (see the Setup section below), simply run:

snakemake [TARGETS...]

from the project's root directory. TARGETS are one or more rule names or output files. By default the main rule is run, which creates figures 1-6. See the Targets section for a list of options.

Directory structure

  • workflow/: Snakemake workflow files and related scripts.
  • config/: Workflow configuration files.
  • resources/: Input data.
    • genomes/: Sets of bacterial genome assemblies used for analysis.
    • gambit-db/: GAMBIT database files.
  • intermediate-data/: Output of intermediate workflow targets.
  • results/: Processed result data.
  • gambit_pub/: Python package containing common code for this repo.
  • env/: The conda environment can be installed here.

Setup

This workflow has been built and tested for Linux only. It may work on Mac (haven't tested) but I believe there are issues preventing it from running on Windows.

Required software

All software dependencies are installed using the conda package manager. If you do not already have it installed, I recommend using the Miniconda installer available here. Make sure the conda command is available in your shell.

Conda environment

Install the conda environment into the env/ subdirectory with:

conda env create -f env.yaml -p env

Before running the workflow you must activate the environment by running conda activate ./env from the project's root directory. This must be done with each new shell session.

Install GAMBIT

The preferred way to install GAMBIT is through the Bioconda channel:

conda install -c bioconda gambit=1.0

Make sure your Conda environment is activated first.

Configuration

Most editable config settings are in config/config.yaml.

Download source data

Large files in resources/ are not present in version control and need to be downloaded separately. You can do this all up front by running the fetch_src_data target, which may make things easier to debug if you run into any connection problems. Otherwise the individual data sets will be downloaded as needed when running the workflow.

Targets

This is a list of all "endpoint" rules and output files which you may want to run. It does not include rules which generate intermediate data.

Aggregate rules

Rule Description
all main and supplemental.
main Generate all primary figures (default).
supplemental Generate all supplemental figures. Note - supplemental figure 1 is VERY slow.
fetch_src_data Download all source data. Not necessary to invoke manually.

Main results

Rule Output Description
fig1 results/figures/figure-1.{png,csv} Generate figure 1.
fig2 results/figures/figure-2{a,b}.png Generate figure 2.
fig3 results/figures/figure-3.png Generate figure 3.
fig4 results/figures/figure-4{a,b}.png Generate figure 4.
fig5 results/figures/figure-5{a,b}.png Generate figure 5.
fig6 results/figures/figure-6.png Generate figure 6.

Supplemental results

Rule Output Description
sfig1 results/figures/supplemental-figure-1.png Generate supplemental figure 1. Note - VERY slow.
sfig2 results/figures/supplemental-figure-2.png Generate supplemental figure 2.
stable3 results/tables/supplemental-table-3.png Generate supplemental table 3.
stable4 results/tables/supplemental-table-4.png Generate supplemental table 4.

Benchmarks

Rule Output Description
benchmark_query results/benchmarks/gambit-query/ Benchmark GAMBIT taxonomic classification from CLI.

Source data

Rule Output Description
fetch_gambit_db resources/gambit-db/ Download GAMBIT reference database files.
resources/genomes/set{1,2}/fasta/ Download FASTA files for data set 1 or 2 from NCBI. Invoke by output directory.
resources/genomes/set{3,4}/fasta/ Download FASTA files for data set 3 or 4. Invoke by output directory.
fetch_genome_set_5 resources/genomes/set5/fasta/ Download FASTA files for data set 5.

Development

You can enable "test mode" by adding --config test=1 to the command line options. This loads an alternate set of parameters which greatly reduces the amount of work to be done.

About

Snakemake workflow to generate figures and results from GAMBIT paper

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published