# libwfa2 Rust bindings for the wavefront algorithm (WFA2-lib,[ https://github.com/smarco/WFA2-lib](https://github.com/smarco/WFA2-lib "Link to repository")). This is inspired by the rust crate libwfa ([crate](https://crates.io/crates/libwfa "cargo crate"), [github]()). ## Example Basic usage of the library. ``` use libwfa2::affine_wavefront::AffineWavefronts; pub fn main() { let aligner = AffineWavefronts::default(); // pattern means query let pattern = b"TCTTTACTCGCGCGTTGGAGAAATACAATAGT"; // Text means reference let text = b"TCTATACTGCGCGTTTGGAGAAATAAAATAGT"; aligner.align(pattern, text); println!("Pattern: {}", String::from_utf8_lossy(pattern)); println!("Text: {}\n", String::from_utf8_lossy(text)); println!("Score: {}", aligner.score()); println!("Cigar: {}", String::from_utf8_lossy(aligner.cigar())); } ``` Setting heuristics ``` use libwfa2::affine_wavefront::{AffineWavefronts, HeuristicStrategy}; pub fn main() { println!("Example2\n"); let mut aligner = AffineWavefronts::default(); aligner.set_heuristic(&HeuristicStrategy::BandedStatic { band_min_k: -1, band_max_k: 1 }); // pattern means query let pattern = b"TCTTTACTCGCGCGTTGGAGAAATACAATAGT"; // Text means reference let text = b"TCTATACTGCGCGTTTGGAGAAATAAAATAGT"; let _status = aligner.align(pattern, text); println!("Pattern: {}", String::from_utf8_lossy(pattern)); println!("Text: {}\n", String::from_utf8_lossy(text)); println!("Score: {}", aligner.score()); println!("Cigar: {}", String::from_utf8_lossy(aligner.cigar())); } ```