Local alignment search with k-bounded matching statistics.
kbo is an approximate local aligner based on converting k-bounded matching statistics into a character representation of the underlying alignment sequence.
Documentation is available at https://docs.rs/kbo.
kbo is distributed as three separate Rust packages:
- kbo contains a Rust library implementing the core algorithm (this repository).
- kbo-cli provides a command-line interface for
kbo call
,kbo find
andkbo map
. - kbo-gui is a WebAssembly graphical user interface for running kbo in the browser.
kbo supports three main operations:
kbo call
calls single and multi base substitutions, insertions, and deletions in a query sequence against a reference and reports their positions and sequences. Call is useful for problems that require .vcf files.kbo find
matches the k-mers in a query sequence with the reference and reports the local alignment segments found within the reference. Find is useful for problems that can be solved with blast.kbo map
maps the query sequence against a reference sequence, and reports the nucleotide sequence of the alignment relative to the reference. Map solves the same problem as snippy and ska map.
In addition to the three main operations, the core library provides high and low-level functions that can be used in other libraries.
kbo uses the Spectral Burrows-Wheeler Transform data structure that allows efficient k-mer matching between a target and a query sequence and fast retrieval of the k-bounded matching statistic for each k-mer match.
kbo is dual-licensed under the MIT and Apache 2.0 licenses.