See docs/index.md for documentation.
Dahak is a software suite that integrates state-of-the-art open source tools for metagenomic analyses. Tools in the dahak software suite will perform various steps in metagenomic analysis workflows including data pre-processing, metagenome assembly, taxonomic and functional classification, genome binning, and gene assignment. We aim to deliver the analytical framework as a robust and reliable containerized workflow system, which will be free from dependency, installation, and execution problems typically associated with other open-source bioinformatics solutions. This will maximize the transparency, data provenance (i.e., the process of tracing the origins of data and its movement through the workflow), and reproducibility.
For purposes of benchmarking this project will use the following datasets:
Dataset | Description |
---|---|
Shakya complete | Complete metagenomic dataset from Shakya et al., 2013* containing bacterial and archaeal genomes |
Shakya subset 50 | 50 percent of the reads from Shakya complete |
Shakya subset 25 | 25 percent of the reads from Shakya complete |
Shakya subset 10 | 10 percent of the reads from Shakya complete |
Dahak is not a standalone program, but rather a collection of workflows that are defined in Snakemake files. These workflows utilize Bioconda, Biocontainers, and Docker/Singularity containerization technologies to install and run software for different tasks.
The following software is required to run Dahak workflows:
REQUIRED:
- Python 3
- Snakemake
- Conda
- Singularity or Docker
TARGET PLATFORM:
- (Required) Singularity >= 2.4 (does not require sudo access) or Docker (requires sudo access)
- (Optional) Sun Grid Compute Engine
- (Optional) Ubuntu 16.04 (Xenial)
See the Installing page for detailed instructions on installing each of the required components listed above, including Singularity and Docker.
See the Quickstart page for instructions on getting started running dahak workflows with Snakemake.
Dahak provides a set of workflow components that all fit together to perform various useful tasks.
See the Running Workflows page for some background on how to run workflows using singularity and snakemake.
See the Quickstart guide if you just want to get up and running with workflows.
Our target compute system is a generic cluster running Sun Grid Engine in an HPC environment; all Snakemake files are written for this target system.
Each workflow contains a walkthrough, which is a step-by-step guide of shell commands to run to execute each step of the workflow. These workflows use docker and require sudo access. While they are useful "by hand" guides to the workflows, they cannot be scaled, so they are provided primarily for instructional purposes.
- Read Filtering
- Taxonomic Classification
- Assembly
- Metagenomic Comparison
- Variant Calling
- Functional Inference
See the Parameters and Configuration page for details about controlling how each workflow operates, and how to use parameter presets.
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests to us.
Phillip Brooks1, Charles Reid1, Bruce Budowle2, Chris Grahlmann3, Stephanie L. Guertin3, F. Curtis Hewitt3, Alexander F. Koeppel4, Oana I. Lungu3, Krista L. Ternus3, Stephen D. Turner4,5, C. Titus Brown1
1School of Veterinary Medicine, University of California Davis, Davis, CA, United States of America
2Institute of Applied Genetics, Department of Molecular and Medical Genetics, University of North Texas Health Science Center, Fort Worth, Texas, United States of America
3Signature Science, LLC, Austin, Texas, United States of America
4Department of Public Health Sciences, University of Virginia, Charlottesville, VA, United States of America
5Bioinformatics Core, University of Virginia School of Medicine, Charlottesville, VA, United States of America
See also the list of contributors who participated in this project.
This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.
- Bioconda
- Hat tip to anyone whose code was used