Cargando…

These Are Not the K-mers You Are Looking For: Efficient Online K-mer Counting Using a Probabilistic Data Structure

K-mer abundance analysis is widely used for many purposes in nucleotide sequence analysis, including data preprocessing for de novo assembly, repeat detection, and sequencing coverage estimation. We present the khmer software package for fast and memory efficient online counting of k-mers in sequenc...

Descripción completa

Detalles Bibliográficos
Autores principales: Zhang, Qingpeng, Pell, Jason, Canino-Koning, Rosangela, Howe, Adina Chuang, Brown, C. Titus
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Public Library of Science 2014
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4111482/
https://www.ncbi.nlm.nih.gov/pubmed/25062443
http://dx.doi.org/10.1371/journal.pone.0101271
_version_ 1782328094419320832
author Zhang, Qingpeng
Pell, Jason
Canino-Koning, Rosangela
Howe, Adina Chuang
Brown, C. Titus
author_facet Zhang, Qingpeng
Pell, Jason
Canino-Koning, Rosangela
Howe, Adina Chuang
Brown, C. Titus
author_sort Zhang, Qingpeng
collection PubMed
description K-mer abundance analysis is widely used for many purposes in nucleotide sequence analysis, including data preprocessing for de novo assembly, repeat detection, and sequencing coverage estimation. We present the khmer software package for fast and memory efficient online counting of k-mers in sequencing data sets. Unlike previous methods based on data structures such as hash tables, suffix arrays, and trie structures, khmer relies entirely on a simple probabilistic data structure, a Count-Min Sketch. The Count-Min Sketch permits online updating and retrieval of k-mer counts in memory which is necessary to support online k-mer analysis algorithms. On sparse data sets this data structure is considerably more memory efficient than any exact data structure. In exchange, the use of a Count-Min Sketch introduces a systematic overcount for k-mers; moreover, only the counts, and not the k-mers, are stored. Here we analyze the speed, the memory usage, and the miscount rate of khmer for generating k-mer frequency distributions and retrieving k-mer counts for individual k-mers. We also compare the performance of khmer to several other k-mer counting packages, including Tallymer, Jellyfish, BFCounter, DSK, KMC, Turtle and KAnalyze. Finally, we examine the effectiveness of profiling sequencing error, k-mer abundance trimming, and digital normalization of reads in the context of high khmer false positive rates. khmer is implemented in C++ wrapped in a Python interface, offers a tested and robust API, and is freely available under the BSD license at github.com/ged-lab/khmer.
format Online
Article
Text
id pubmed-4111482
institution National Center for Biotechnology Information
language English
publishDate 2014
publisher Public Library of Science
record_format MEDLINE/PubMed
spelling pubmed-41114822014-07-29 These Are Not the K-mers You Are Looking For: Efficient Online K-mer Counting Using a Probabilistic Data Structure Zhang, Qingpeng Pell, Jason Canino-Koning, Rosangela Howe, Adina Chuang Brown, C. Titus PLoS One Research Article K-mer abundance analysis is widely used for many purposes in nucleotide sequence analysis, including data preprocessing for de novo assembly, repeat detection, and sequencing coverage estimation. We present the khmer software package for fast and memory efficient online counting of k-mers in sequencing data sets. Unlike previous methods based on data structures such as hash tables, suffix arrays, and trie structures, khmer relies entirely on a simple probabilistic data structure, a Count-Min Sketch. The Count-Min Sketch permits online updating and retrieval of k-mer counts in memory which is necessary to support online k-mer analysis algorithms. On sparse data sets this data structure is considerably more memory efficient than any exact data structure. In exchange, the use of a Count-Min Sketch introduces a systematic overcount for k-mers; moreover, only the counts, and not the k-mers, are stored. Here we analyze the speed, the memory usage, and the miscount rate of khmer for generating k-mer frequency distributions and retrieving k-mer counts for individual k-mers. We also compare the performance of khmer to several other k-mer counting packages, including Tallymer, Jellyfish, BFCounter, DSK, KMC, Turtle and KAnalyze. Finally, we examine the effectiveness of profiling sequencing error, k-mer abundance trimming, and digital normalization of reads in the context of high khmer false positive rates. khmer is implemented in C++ wrapped in a Python interface, offers a tested and robust API, and is freely available under the BSD license at github.com/ged-lab/khmer. Public Library of Science 2014-07-25 /pmc/articles/PMC4111482/ /pubmed/25062443 http://dx.doi.org/10.1371/journal.pone.0101271 Text en © 2014 Zhang et al http://creativecommons.org/licenses/by/4.0/ This is an open-access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are properly credited.
spellingShingle Research Article
Zhang, Qingpeng
Pell, Jason
Canino-Koning, Rosangela
Howe, Adina Chuang
Brown, C. Titus
These Are Not the K-mers You Are Looking For: Efficient Online K-mer Counting Using a Probabilistic Data Structure
title These Are Not the K-mers You Are Looking For: Efficient Online K-mer Counting Using a Probabilistic Data Structure
title_full These Are Not the K-mers You Are Looking For: Efficient Online K-mer Counting Using a Probabilistic Data Structure
title_fullStr These Are Not the K-mers You Are Looking For: Efficient Online K-mer Counting Using a Probabilistic Data Structure
title_full_unstemmed These Are Not the K-mers You Are Looking For: Efficient Online K-mer Counting Using a Probabilistic Data Structure
title_short These Are Not the K-mers You Are Looking For: Efficient Online K-mer Counting Using a Probabilistic Data Structure
title_sort these are not the k-mers you are looking for: efficient online k-mer counting using a probabilistic data structure
topic Research Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4111482/
https://www.ncbi.nlm.nih.gov/pubmed/25062443
http://dx.doi.org/10.1371/journal.pone.0101271
work_keys_str_mv AT zhangqingpeng thesearenotthekmersyouarelookingforefficientonlinekmercountingusingaprobabilisticdatastructure
AT pelljason thesearenotthekmersyouarelookingforefficientonlinekmercountingusingaprobabilisticdatastructure
AT caninokoningrosangela thesearenotthekmersyouarelookingforefficientonlinekmercountingusingaprobabilisticdatastructure
AT howeadinachuang thesearenotthekmersyouarelookingforefficientonlinekmercountingusingaprobabilisticdatastructure
AT brownctitus thesearenotthekmersyouarelookingforefficientonlinekmercountingusingaprobabilisticdatastructure