sigalign

Similarity Guided Alignment Algorithm

Caveat

This library is currently under development. Some key features are missing, and functions can be changed anytime without notification.

What is Sigalign?

Quick Start

```rust use sigalign::{Reference, Aligner}; use sigalign::basicsequenceprovider::InMemoryProvider;

// (1) Make Reference let mut sequenceprovider = InMemoryProvider::newempty(); sequenceprovider.addlabeledsequence( "record1".tostring(), b"ATCAAACTCACAATTGTATTTCTTTGCCAGCTGGGCATATACTTTTTCCGCACCCTCATTTAACTTCTTGGATAACGGAAGCACACCGATCTTAACCGGAGCAAGTGCCGGATGAAAATGGAAAACGGTTCTTACGTCCGGCTTTTCCTCTGTTCCGATATTTTCCTCATCGTATGCAGCACATAAAAATGCCAGAACCA".tovec(), ); sequenceprovider.addlabeledsequence( "record2".tostring(), b"TTCCATCAAACTCACAATTGTATTTCTTTGCCAGCTGGGCATATACTTTTTCCGCACCCTCATTTAACTTCTTGGATAACGGAAGCACACCGATCTTAACCGGAGCGTATGCAGCACATAAAAAT".tovec(), ); let mut reference = Reference::newwithdefaultconfig(sequenceprovider).unwrap();

// (2) Make Aligner let aligner = Aligner::new(4, 6, 2, 100, 0.1).unwrap();

// (3) Alignment with query let query = b"TTCCTCTGTCATCAAACTCACAATTGTATTTCTTTGCCAGCTGGGCATATACTTTTTCCGCCCCCTCATTTAACTTCTTGGATAACGGAAGCACACCGATCTTAACCGGAGGTGCCGGATGAAAATGGAAAACGGTTCTTACGTCCGGCTTTTCCTCTGTTCCGATATTTTCCTCAT"; // - Semi-global alignment let resultsemiglobal: String = aligner.semiglobalalignmentlabeled(&mut reference, query).unwrap(); // - Local alignment let resultlocal: String = aligner.localalignmentlabeled(&mut reference, query).unwrap(); ```