Skip to content

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.

Anaconda-Server Badge install with bioconda

This section documents the C++ implementation — Cuttlefish 1 and Cuttlefish 2, which share one cuttlefish build executable. For the Rust implementation, see Cuttlefish 3.

Both live in the same binary, and which one runs is selected by the arguments:

  • Passing --read or --ref invokes Cuttlefish 2.
  • Passing neither invokes Cuttlefish 1.

They differ in scope:

Cuttlefish 1Cuttlefish 2
Reference sequencesyesyes
Sequencing readsnoyes
FASTA outputyesyes
GFA 1.0 / GFA 2.0 outputyesnot yet
Reduced GFA (tilings) outputyesnot yet

See Differences between 1 & 2 for the full comparison.

The work is described in two papers:

Please cite the appropriate one if Cuttlefish contributed to your work.

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:

Terminal window
# Linux
sudo apt-get install build-essential cmake zlib1g-dev libbz2-dev
# macOS
brew install --with-toolchain llvm
brew install cmake zlib bzip2