Overview
Cuttlefish is a fast, parallel, and very low-memory tool for constructing the compacted de Bruijn graph from sequencing reads or reference sequences. It is highly scalable in the size of the input data.
This section documents the C++ implementation — Cuttlefish 1 and
Cuttlefish 2, which share one cuttlefish build executable. For the Rust
implementation, see Cuttlefish 3.
Cuttlefish 1 and Cuttlefish 2
Section titled “Cuttlefish 1 and Cuttlefish 2”Both live in the same binary, and which one runs is selected by the arguments:
- Passing
--reador--refinvokes Cuttlefish 2. - Passing neither invokes Cuttlefish 1.
They differ in scope:
| Cuttlefish 1 | Cuttlefish 2 | |
|---|---|---|
| Reference sequences | yes | yes |
| Sequencing reads | no | yes |
| FASTA output | yes | yes |
| GFA 1.0 / GFA 2.0 output | yes | not yet |
| Reduced GFA (tilings) output | yes | not yet |
See Differences between 1 & 2 for the full comparison.
The papers
Section titled “The papers”The work is described in two papers:
Please cite the appropriate one if Cuttlefish contributed to your work.
Dependencies
Section titled “Dependencies”If you install from Bioconda, nothing else is required. Building from source needs:
These are usually already present, and otherwise available from your package manager:
# Linuxsudo apt-get install build-essential cmake zlib1g-dev libbz2-dev
# macOSbrew install --with-toolchain llvmbrew install cmake zlib bzip2