Rainbowfish

Rainbowfish: a succinct colored de Bruijn graph representation. 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 (population) 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 exttt{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 exttt{Cortex}. par In 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 (0)th-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 imes) improvement in space over VARI. Rainbowfish is written in exttt{C++11} and is available at url{https://github.com/COMBINE-lab/rainbowfish}.

Keywords for this software

Anything in here will be replaced on browsers that support the canvas element