bio/pattern_matching/mod.rs
1// Copyright 2014-2016 Johannes Köster.
2// Licensed under the MIT license (http://opensource.org/licenses/MIT)
3// This file may not be copied, modified, or distributed
4// except according to those terms.
5
6//! This module contains various useful pattern matching algorithms.
7//! The implementations are based on the lecture notes
8//! "Algorithmen auf Sequenzen", Kopczynski, Marschall, Martin and Rahmann, 2008 - 2015.
9//!
10//! * Algorithm of Horspool: fastest for a sufficiently large alphabet
11//! * Shift And algorithm: fast for patterns with less than 64 symbols and very small alphabets.
12//! * BNDM algorithm: fast for patterns with less than 64 symbols.
13//! * BOM algorithm: fast for long patterns and small alphabet.
14//! * KMP algorithm: the classical ancestor.
15//! * Ukkonens algorithm: approximate pattern matching with dynamic programming.
16//! * Myers algorithm: linear-time approximate pattern matching with edit distance.
17//!
18//! Another library that provides heavily optimized routines for string search primitives is memchr: https://crates.io/crates/memchr
19
20pub mod bndm;
21pub mod bom;
22pub mod horspool;
23pub mod kmp;
24pub mod myers;
25pub mod pssm;
26pub mod shift_and;
27pub mod ukkonen;