Skip to content

Which version?

Three implementations carry the Cuttlefish name. This page is the short answer to which one you want.

  • You are starting fresh: Cuttlefish 3 is the current generation and the canonical implementation, released, on crates.io, and installable from Bioconda.
  • You need colored compacted graphs, with colors that can vary along a unitig rather than being a property of the whole unitig.
  • Your input is a collection too large to hold in RAM — Cuttlefish 3 keeps its intermediates in external memory throughout, and typically runs in a fraction of the memory of Cuttlefish 2.

Rust documentation

  • You need GFA output or sequence tilings. Only Cuttlefish 1 emits these.
  • You need k above 63 — Cuttlefish 1 and 2 support k up to 127 from Bioconda, or 255 built from source.
  • You are reproducing published results that used them, your own or someone else’s.

C++ documentation

Cuttlefish 1Cuttlefish 2Cuttlefish 3 (Rust)
LanguageC++C++Rust
Releasedyesyesyes (3.0.0)
Biocondayesyesyes
References (FASTA)yesyesyes
Reads (FASTQ)noyesyes
FASTA outputyesyesyes
GFA outputyesnono
Colored graphsper-unitig, via GFA pathsnopositional
Max k127 (255 from source)127 (255 from source)63

Cuttlefish’s major version tracks the product generation — 3.x is Cuttlefish 3, the successor to Cuttlefish 2, not an ordinary semver major. A backward-incompatible change to what a user depends on (the output FASTA, the color repository format, or the command line) bumps the minor version and is called out in the changelog. Rust library dependents should pin an exact version.