KMC 2: Fast and resource-frugal $k$-mer counting
Abstract
Motivation: Building the histogram of occurrences of every $k$-symbol long substring of nucleotide data is a standard step in many bioinformatics applications, known under the name of $k$-mer counting. Its applications include developing de Bruijn graph genome assemblers, fast multiple sequence alignment and repeat detection. The tremendous amounts of NGS data require fast algorithms for $k$-mer counting, preferably using moderate amounts of memory. Results: We present a novel method for $k$-mer counting, on large datasets at least twice faster than the strongest competitors (Jellyfish~2, KMC~1), using about 12\,GB (or less) of RAM memory. Our disk-based method bears some resemblance to MSPKmerCounter, yet replacing the original minimizers with signatures (a carefully selected subset of all minimizers) and using $(k, x)$-mers allows to significantly reduce the I/O, and a highly parallel overall architecture allows to achieve unprecedented processing speeds. For example, KMC~2 allows to count the 28-mers of a human reads collection with 44-fold coverage (106\,GB of compressed size) in about 20 minutes, on a 6-core Intel i7 PC with an SSD. Availability: KMC~2 is freely available at http://sun.aei.polsl.pl/kmc. Contact: sebastian.deorowicz@polsl.pl
- Publication:
-
arXiv e-prints
- Pub Date:
- July 2014
- DOI:
- 10.48550/arXiv.1407.1507
- arXiv:
- arXiv:1407.1507
- Bibcode:
- 2014arXiv1407.1507D
- Keywords:
-
- Computer Science - Data Structures and Algorithms;
- Computer Science - Computational Engineering;
- Finance;
- and Science;
- Quantitative Biology - Genomics
- E-Print:
- Bioinformatics 31 (10): 1569-1576 (2015)