Cuttlefish
Cuttlefish constructs compacted de Bruijn graphs from one or more genome references to enable sequence indexing for short- and long-read alignment and comparative genomic analyses.
Key Features:
- Finite-state automata modeling: De Bruijn graph vertices are represented as finite-state automata to track vertex transitioning states.
- State-space constrained representation: Constraining the automata state-space reduces memory usage for graph construction.
- Memory efficiency demonstrated: Constructed a compacted de Bruijn graph for 100 human genomes using approximately 29 GB of memory.
- Speed and parallel scalability: The implementation is fast and highly parallelizable, enabling scaling with increasing numbers and sizes of input references.
- Comparative performance benchmarks: For 11 conifer genomes, Cuttlefish constructed the compacted graph in under 9 hours using around 84 GB of memory versus reported alternatives that required over 16 hours and approximately 289 GB.
- Implementation: Implemented in C++14.
Scientific Applications:
- Sequence indexing: Produces compacted de Bruijn graphs suitable for sequence indexing for short- and long-read alignment.
- Comparative genomics: Facilitates comparative genomic analyses across diverse genomes and large-scale multi-genome projects.
- Colored compacted graph construction: Supports construction of colored compacted de Bruijn graphs for multi-sample or population-level analyses.
Methodology:
The core methodology uses finite-state automata to model de Bruijn graph vertices coupled with state-space constraints to optimize memory usage.
Topics
Details
- License:
- BSD-3-Clause
- Tool Type:
- command-line tool
- Programming Languages:
- C++, C
- Added:
- 1/18/2021
- Last Updated:
- 2/18/2021
Operations
Publications
Khan J, Patro R. Cuttlefish: Fast, parallel, and low-memory compaction of de Bruijn graphs from large-scale genome collections. Unknown Journal. 2020. doi:10.1101/2020.10.21.349605.