Crates.io | libwfa2 |
lib.rs | libwfa2 |
version | 0.1.1 |
source | src |
created_at | 2024-09-18 09:27:46.989736 |
updated_at | 2024-09-19 17:14:16.404608 |
description | Bindings to the C implementation of WFA2-lib |
homepage | |
repository | https://github.com/4less/libwfa2 |
max_upload_size | |
id | 1379017 |
size | 9,830,880 |
Rust bindings for the wavefront algorithm (WFA2-lib, https://github.com/smarco/WFA2-lib). This is inspired by the rust crate libwfa (crate, github).
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()));
}