Skip to content

Cuttlefish

Fast, parallel, low-memory construction of compacted de Bruijn graphs — from reference sequences or sequencing reads, at collection scale.

Cuttlefish has been through three generations. Which documentation you want depends on which one you are running.

Not sure which applies to you? See which version should I use?.

Cuttlefish constructs the compacted de Bruijn graph — the graph whose vertices are the maximal unitigs, the non-branching paths of the de Bruijn graph — from a set of reference sequences or sequencing reads. It is designed to stay fast and lightweight as the input grows to collection scale.

Reads or references

Build a reference graph from FASTA, or a cutoff-filtered read graph from FASTQ. Gzipped input is handled directly.

Colored graphs

Cuttlefish 3 emits positional colors: which input sources cover which stretch of each unitig, written alongside the unitig FASTA.

External memory

Partition buckets, blocked edge matrices, and collation buckets live on disk, so peak RAM tracks the worker set rather than the graph.

Parallel throughout

Partitioning, local contraction, discontinuity contraction, and final collation all run multi-threaded under a worker budget you set.

If Cuttlefish contributed to your work, please cite the relevant paper — there is a separate one for Cuttlefish 1, 2, and 3.