Table of Contents
Fetching ...

Practical algorithms for Hierarchical overlap graphs

Saumya Talera, Parth Bansal, Shabnam Khan, Shahbaz Khan

TL;DR

This work empirically analyze all the algorithms for computing Hierarchical overlap graphs and presents an intuitive algorithm, using only elementary arrays, which is also optimal, and further explores the applications of hierarchical overlap graphs to solve variants of suffix-prefix queries on a set of strings.

Abstract

Genome assembly is a prominent problem studied in bioinformatics, which computes the source string using a set of its overlapping substrings. Classically, genome assembly uses assembly graphs built using this set of substrings to compute the source string efficiently, having a tradeoff between scalability and avoiding information loss. The scalable de Bruijn graphs come at the price of losing crucial overlap information. The complete overlap information is stored in overlap graphs using quadratic space. Hierarchical overlap graphs [IPL20] (HOG) overcome these limitations, avoiding information loss despite using linear space. After a series of suboptimal improvements, Khan and Park et al. simultaneously presented two optimal algorithms [CPM2021], where only the former was seemingly practical. We empirically analyze all the algorithms for computing Hierarchical overlap graphs, where the optimal algorithm~[CPM2021] outperforms the previous algorithms as expected. However, it is still based on relatively complex arguments for its formal proof and uses relatively complex data structures for its implementation. We present an intuitive algorithm, using only elementary arrays, which is also optimal. Our algorithm empirically proves even better for both time and memory over all the algorithms, highlighting its significance in both theory and practice. We further explore the applications of hierarchical overlap graphs to solve variants of suffix-prefix queries on a set of strings, recently studied by Loukides et al.~[CPM2023]. They presented state-of-the-art algorithms requiring complex black-box data structures, making them seemingly impractical. Our algorithms, despite failing to match their theoretical bounds, answer queries in $0.002$-$100~ms$ for datasets having around a billion characters.

Practical algorithms for Hierarchical overlap graphs

TL;DR

This work empirically analyze all the algorithms for computing Hierarchical overlap graphs and presents an intuitive algorithm, using only elementary arrays, which is also optimal, and further explores the applications of hierarchical overlap graphs to solve variants of suffix-prefix queries on a set of strings.

Abstract

Genome assembly is a prominent problem studied in bioinformatics, which computes the source string using a set of its overlapping substrings. Classically, genome assembly uses assembly graphs built using this set of substrings to compute the source string efficiently, having a tradeoff between scalability and avoiding information loss. The scalable de Bruijn graphs come at the price of losing crucial overlap information. The complete overlap information is stored in overlap graphs using quadratic space. Hierarchical overlap graphs [IPL20] (HOG) overcome these limitations, avoiding information loss despite using linear space. After a series of suboptimal improvements, Khan and Park et al. simultaneously presented two optimal algorithms [CPM2021], where only the former was seemingly practical. We empirically analyze all the algorithms for computing Hierarchical overlap graphs, where the optimal algorithm~[CPM2021] outperforms the previous algorithms as expected. However, it is still based on relatively complex arguments for its formal proof and uses relatively complex data structures for its implementation. We present an intuitive algorithm, using only elementary arrays, which is also optimal. Our algorithm empirically proves even better for both time and memory over all the algorithms, highlighting its significance in both theory and practice. We further explore the applications of hierarchical overlap graphs to solve variants of suffix-prefix queries on a set of strings, recently studied by Loukides et al.~[CPM2023]. They presented state-of-the-art algorithms requiring complex black-box data structures, making them seemingly impractical. Our algorithms, despite failing to match their theoretical bounds, answer queries in - for datasets having around a billion characters.
Paper Structure (24 sections, 1 theorem, 5 figures, 9 tables, 4 algorithms)

This paper contains 24 sections, 1 theorem, 5 figures, 9 tables, 4 algorithms.

Key Result

Lemma 1

An internal node $v$ in $\cal{A}$ of $P$, is $ov(p_i, p_j)$ for two strings $p_i, p_j \in P$ iff $v$ is an overlap of $(p_i, p_j)$ and no descendant of $v$ is an overlap of $(p_i, p_j)$.

Figures (5)

  • Figure 1: The structures ${\cal A}$, ${\cal E}$ and ${\cal H}$ for $P=\{aabaa,aadbd,dbdaa\}$ (reproduced from DBLP:conf/cpm/000421).
  • Figure 2: Variation of running time of the algorithms on the two types of random datasets
  • Figure 3: Variation of the size of EHOG $\cal E$ and ACT $\cal A$ on the two types of random datasets. The left plot shows the variation of $k$, while mid and right for the variation of $n$.
  • Figure 4: Variation of running time for random simulated reads data.
  • Figure 5: Variation of size of $\cal A$ and $\cal E$ for random simulated reads data.

Theorems & Definitions (1)

  • Lemma 1: HOG Property DBLP:journals/ipl/GusfieldLS92