An awesome snakemake pipeline to quantify microbial composition
This is the home of the pipeline, microbe-count. Its long-term goals: to make estimating microbial composition from host-aligned data quick and easy.Welcome to microbe-count! Before getting started, we highly recommend reading through microbe-count's documentation. This pipeline is a wrapper around several tools to estimates microbial composition from host-aligned BAM files. For each sample, reads that did not align to the host genome are extracted from the BAM file and converted to FASTQ format. The unmapped reads are then classified taxonomically with Kraken2, and Bracken is used to estimate species-level abundances from the Kraken2's output. Finally, per-sample Bracken outputs are merged into a count matrix with samples as rows and microbial species as columns. The pipeline is designed to be highly scalable, reproducible, and easy to use.
The ./microbe-count pipeline is composed several inter-related sub commands to setup and run the pipeline across different systems. Each of the available sub commands perform different functions:
microbe-count run: Run the microbe-count pipeline with your input files.microbe-count unlock: Unlocks a previous runs output directory.microbe-count install: Download reference files locally.microbe-count cache: Cache software containers locally.
microbe-count is a pipeline to make running kraken2 and bracken easier, more reproducible, and more scalable. It relies on technologies like Singularity1 to maintain the highest-level of reproducibility. The pipeline consists of a series of data processing and quality-control steps orchestrated by Snakemake2, a flexible and scalable workflow management system, to submit jobs to a cluster.
The pipeline is compatible with data generated from Illumina short-read sequencing technologies. As input, it accepts a set of BAM files and can be run locally on a compute instance or on-premise using a cluster. A user can define the method or mode of execution. The pipeline can submit jobs to a cluster using a job scheduler like SLURM (more coming soon!). A hybrid approach ensures the pipeline is accessible to all users.
Before getting started, we highly recommend reading through the usage section of each available sub command.
For more information about issues or trouble-shooting a problem, please checkout our FAQ prior to opening an issue on Github.
Requires: singularity>=3.5 snakemake<=7.32.4
At the current moment, the pipeline only has two dependencies: snakemake and singularity. With that being said, snakemake and singularity must be installed on the target system. Snakemake orchestrates the execution of each step in the pipeline. To guarantee the highest level of reproducibility, each step of the pipeline relies on versioned images from DockerHub. Snakemake uses singularity to pull these images onto the local filesystem prior to job execution, and as so, snakemake and singularity will be the only two dependencies in the future.
Please clone this repository to your local filesystem using the following command:
# Clone Repository from Github
git clone https://github.com/OpenOmics/microbe-count.git
# Change your working directory
cd microbe-count/
# Add dependencies to $PATH
# Skyline users should use
module load snakemake/7.22.0-ufanewz
# Get usage information
./microbe-count -hThis site is a living document, created for and by members like you. microbe-count is maintained by the members of OpenOmics and is improved by continous feedback! We encourage you to contribute new content and make improvements to existing content via pull request to our GitHub repository.
If you use this software, please cite it as below:
@BibText
Coming Soon!
@APA
Coming Soon!
1. Kurtzer GM, Sochat V, Bauer MW (2017). Singularity: Scientific containers for mobility of compute. PLoS ONE 12(5): e0177459.
2. Koster, J. and S. Rahmann (2018). "Snakemake-a scalable bioinformatics workflow engine." Bioinformatics 34(20): 3600.