Massively parallel read mapping on GPUs with PEANUT

Massively parallel read mapping on GPUs with PEANUT
Notice: This research summary and analysis were automatically generated using AI technology. For absolute accuracy, please refer to the [Original Paper Viewer] below or the Original ArXiv Source.

We present PEANUT (ParallEl AligNment UTility), a highly parallel GPU-based read mapper with several distinguishing features, including a novel q-gram index (called the q-group index) with small memory footprint built on-the-fly over the reads and the possibility to output both the best hits or all hits of a read. Designing the algorithm particularly for the GPU architecture, we were able to reach maximum core occupancy for several key steps. Our benchmarks show that PEANUT outperforms other state-of- the-art mappers in terms of speed and sensitivity. The software is available at http://peanut.readthedocs.org.


💡 Research Summary

Massively parallel read mapping is a bottleneck in next‑generation sequencing (NGS) pipelines, especially when dealing with billions of bases and millions of short reads. In this paper the authors introduce PEANUT (ParallEl AligNment UTility), a novel GPU‑accelerated read mapper that combines a new q‑gram based index, called the q‑group index, with a carefully crafted filtration‑validation pipeline to achieve both high speed and high sensitivity.

The q‑group index is the cornerstone of the method. Traditional q‑gram indexes store, for each possible q‑mer, a list of all positions where it occurs. While lookup is O(1) per occurrence, the memory footprint grows as 4^q + |T|, quickly becoming prohibitive for large q or large reference genomes. PEANUT solves this by grouping the 4^q possible q‑mers into blocks of size w (the GPU word size, typically 32). For each block a bit‑mask I indicates which q‑mers actually appear in the text, a cumulative count array S records the number of set bits per block, a secondary address array S0 points into the final position array O, and O stores the concatenated positions of all occurring q‑mers in numeric order. Querying a q‑mer g involves computing its block index i = ⌊g / w⌋ and intra‑block offset j = g mod w, checking I


Comments & Academic Discussion

Loading comments...

Leave a Comment