Rainbowfish: A Succinct Colored de Bruijn Graph Representation
Abstract
The colored de Bruijn graph-- a variant of the de Bruijn graph which associates each edge (i.e., k-mer) with some set of colors -- is an increasingly important combinatorial structure in computational biology. Iqbal et al. demonstrated the utility of this structure for representing and assembling a collection (pop-ulation) of genomes, and showed how it can be used to accurately detect genetic variants. Muggli et al. introduced VARI, a representation of the colored de Bruijn graph that adopts the BOSS representation for the de Bruijn graph topology and achieves considerable savings in space over Cortex, albeit with some sacrifice in speed. The memory-efficient representation of VARI allows the colored de Bruijn graph to be constructed and analyzed for large datasets, beyond what is possible with Cortex.\n\nIn this paper, we introduce Rainbowfish, a succinct representation of the color information of the colored de Bruijn graph that reduces the space usage even further. Our representation also uses BOSS to represent the de Bruijn graph, but decomposes the color sets based on an equivalence relation and exploits the inherent skewness in the distribution of these color sets. The Rainbowfish representation is compressed based on the 0th-order entropy of the color sets, which can lead to a significant reduction in the space required to store the relevant information for each edge. In practice, Rainbowfish achieves up to a 20 x improvement in space over VARI. Rainbowfish is written in C++11 and is available at https://github.com/COMBINE-lab/rainbowfish.
02 /Specification & Classification
Click any tag to browse matching papers- Citations
- 53
- Approach
Abstract summary
Claude Opus 5.5 · xhigh effort · 18 Oct 2026 · from the abstract · CC BY-NC-ND 4.0
Grouping k-mer color sets into equivalence classes and entropy-compressing them shrinks colored de Bruijn graph color storage up to 20-fold versus VARI, keeping BOSS for topology.
Colored de Bruijn graphs let population-scale genome collections be assembled and queried for variants, but the space taken by the per-k-mer color information limits how large a collection can be handled. Rainbowfish attacks that component directly, compressing it toward the entropy of the observed color-set distribution rather than only improving the graph topology encoding.
Key results
SuggestedThe new color encoding uses markedly less space than VARI, the prior succinct colored de Bruijn graph representation.
Reported as up to a 20x space improvement over VARI in practice; no datasets, absolute memory figures or runtimes are given in the abstract. · Abstract
ClaimedSpace savings come from decomposing color sets by an equivalence relation and exploiting the skewed distribution of the resulting classes, with compression bounded by their 0th-order entropy.
Described as the design of the representation; the de Bruijn graph topology itself is still stored with BOSS, as in VARI. · Abstract
ClaimedA C++11 implementation is released openly.
Available at https://github.com/COMBINE-lab/rainbowfish; language stated as C++11. · Abstract
Methods, data and reproducibility
A succinct encoding of the color information in a colored de Bruijn graph: color sets are collapsed into equivalence classes, the skew in how often each class occurs is exploited, and the result is compressed with respect to the 0th-order entropy of the color sets. Graph topology is represented with BOSS.
- Methods & tools
- Rainbowfish, BOSS, VARI, Cortex, C++11
- Reproducibility gaps
- The abstract names no evaluation datasets, so the reported space figure cannot be traced to a specific benchmark.
Limitations (2)
- The 20x figure is a best case ('up to') measured against a single baseline, with no datasets, absolute memory use or query-time numbers reported in the abstract. · noted in this summary
- Only space is quantified; whether the extra decomposition costs query or construction speed, as the abstract notes happened for VARI relative to Cortex, is not addressed. · noted in this summary
Who should read:Read this if you build or query colored de Bruijn graphs over large genome collections and memory for the per-k-mer color sets is your bottleneck.
Reproducibility ledger
Nobody has reported trying to reproduce this paper yet. Did you replicate an experiment or run the code? Your report saves the next lab a week.
Sign in to file a reproducibility report.
Related papers
- An Efficient, Scalable and Exact Representation of High-Dimensional Color Information Enabled via de Bruijn Graph Search
Fatemeh Almodaresi, Prashant Pandey, … Rob Patro·Journal of Computational BiologyPeer-reviewed·Mar 16, 2020
- Succinct Colored de Bruijn Graphs
Keith Belk, Christina Boucher, … Rober Raymond·bioRxiv·Feb 18, 2016
- A space and time-efficient index for the compacted colored de Bruijn graph
Fatemeh Almodaresi, Hirak Sarkar, … Rob Patro·BioinformaticsPeer-reviewed·Apr 16, 2018
- Compression algorithm for colored de Bruijn graphs
Amatur Rahman, Yoann Dufresne, Paul Medvedev·bioRxiv·May 12, 2023
- Bifrost - Highly parallel construction and indexing of colored and compacted de Bruijn graphs
Guillaume Holley, Páll Melsted·Genome biologyPeer-reviewed·Sep 17, 2020
- Where the patterns are: repetition-aware compression for colored de Bruijn graphs
Alessio Campanelli, Giulio Ermanno Pibiri, … Rob Patro·Journal of Computational BiologyPeer-reviewed·Oct 1, 2024