khmer
khmer provides probabilistic k-mer counting and memory-efficient assembly graph representation to analyze and process DNA shotgun sequencing data from genomes, transcriptomes, metagenomes, and single-cell studies.
Key Features:
- Memory Efficiency: Uses a Count-Min Sketch probabilistic data structure for online updating and retrieval of k-mer counts with a markedly reduced memory footprint compared to exact structures such as hash tables, suffix arrays, or tries.
- Speed and Performance: Optimized for rapid generation of k-mer frequency distributions and efficient retrieval of individual k-mer counts, with benchmarking reported against Tallymer, Jellyfish, BFCounter, DSK, KMC, Turtle, and KAnalyze.
- Error Profiling and Data Normalization: Accounts for systematic overcounts inherent to Count-Min Sketches while enabling sequencing error profiling, k-mer abundance trimming, and digital normalization to mitigate false positives.
- Graph Representation for Assembly: Employs Bloom filter–based, memory-efficient graph representations to capture k-mer connectivity and enable de novo assembly storage using as little as 4 bits per k-mer.
- Metagenomic Partitioning: Uses graph partitioning of k-mer connectivity to divide assembly graphs into components, reducing maximum memory requirements for metagenome assembly by reported orders of magnitude (up to ~40-fold in reported examples).
- Multi-context Sequencing Support: Applicable to analysis of shotgun sequencing datasets from genomes, transcriptomes, metagenomes, and single-cell experiments.
Scientific Applications:
- De Novo Assembly: Enables memory- and time-efficient assembly of complex metagenomic and genomic datasets via compact k-mer graph representations and partitioning.
- Repeat Detection: Identifies repetitive sequences through k-mer abundance analysis.
- Sequencing Coverage Estimation: Estimates sequencing depth and coverage patterns across genomes and transcriptomes using k-mer frequency distributions.
- Error Profiling and Normalization: Profiles sequencing errors and performs k-mer abundance trimming and digital normalization to reduce error-related artifacts in downstream analyses.
- Metagenomic Component Separation: Partitions metagenomic assembly graphs into components to facilitate downstream assembly and reduce computational resources.
Methodology:
Implements probabilistic data structures—Count-Min Sketches for streaming k-mer counting and Bloom filters for memory-efficient assembly graph representation—together with k-mer abundance trimming, digital normalization, and sequencing error profiling.
Topics
Collections
Details
- License:
- BSD-3-Clause
- Maturity:
- Mature
- Tool Type:
- command-line tool
- Operating Systems:
- Linux, Mac
- Programming Languages:
- C++, Python
- Added:
- 12/17/2015
- Last Updated:
- 11/24/2024
Operations
Data Inputs & Outputs
De-novo assembly
Publications
Crusoe MR, Alameldin HF, Awad S, Boucher E, Caldwell A, Cartwright R, Charbonneau A, Constantinides B, Edvenson G, Fay S, Fenton J, Fenzl T, Fish J, Garcia-Gutierrez L, Garland P, Gluck J, González I, Guermond S, Guo J, Gupta A, Herr JR, Howe A, Hyer A, Härpfer A, Irber L, Kidd R, Lin D, Lippi J, Mansour T, McA'Nulty P, McDonald E, Mizzi J, Murray KD, Nahum JR, Nanlohy K, Nederbragt AJ, Ortiz-Zuazaga H, Ory J, Pell J, Pepe-Ranney C, Russ ZN, Schwarz E, Scott C, Seaman J, Sievert S, Simpson J, Skennerton CT, Spencer J, Srinivasan R, Standage D, Stapleton JA, Steinman SR, Stein J, Taylor B, Trimble W, Wiencko HL, Wright M, Wyss B, Zhang Q, zyme e, Brown CT. The khmer software package: enabling efficient nucleotide sequence analysis. F1000Research. 2015;4:900. doi:10.12688/f1000research.6924.1. PMID:26535114. PMCID:PMC4608353.
Pell J, Hintze A, Canino-Koning R, Howe A, Tiedje JM, Brown CT. Scaling metagenome sequence assembly with probabilistic de Bruijn graphs. Proceedings of the National Academy of Sciences. 2012;109(33):13272-13277. doi:10.1073/pnas.1121464109. PMID:22847406. PMCID:PMC3421212.
Zhang Q, Pell J, Canino-Koning R, Howe AC, Brown CT. These Are Not the K-mers You Are Looking For: Efficient Online K-mer Counting Using a Probabilistic Data Structure. PLoS ONE. 2014;9(7):e101271. doi:10.1371/journal.pone.0101271. PMID:25062443. PMCID:PMC4111482.
Zhang Q, Awad S, Brown CT. Crossing the streams: a framework for streaming analysis of short DNA sequencing reads. Unknown Journal. 2015. doi:10.7287/peerj.preprints.890v1.
Documentation
Downloads
- Binarieshttps://pypi.python.org/pypi/khmer
- Source codehttps://github.com/dib-lab/khmer/releases