LtFmIndex

CI crates.io

lt-fm-index is a library to (1) locate or (2) count the pattern in the large text of nucleotide and amino acid sequences.

Description

1. Use LtFmIndex to count and locate a pattern.

```rust use ltfmindex::LtFmIndexBuilder;

// (1) Define builder for lt-fm-index let builder = LtFmIndexBuilder::new() .texttypeisinferred() .setsuffixarraysamplingratio(2).unwrap() .setlookuptablekmer_size(4).unwrap();

// (2) Generate lt-fm-index with text let text = b"CTCCGTACACCTGTTTCGTATCGGANNNN".tovec(); let ltfm_index = builder.build(text).unwrap(); // text is consumed

// (3) Match with pattern let pattern = b"TA".tovec(); // - count let count = ltfmindex.count(&pattern); asserteq!(count, 2); // - locate let locations = ltfmindex.locate(&pattern); assert_eq!(locations, vec![5,18]); ```

2. Save and load LtFmIndex

```rust use ltfmindex::{LtFmIndex, LtFmIndexBuilder};

// (1) Generate lt-fm-index let text = b"CTCCGTACACCTGTTTCGTATCGGA".tovec(); let ltfmindexto_save = LtFmIndexBuilder::new().build(text).unwrap();

// (2) Save lt-fm-index to buffer let mut buffer = Vec::new(); ltfmindextosave.save_to(&mut buffer).unwrap();

// (3) Load lt-fm-index from buffer let ltfmindexloaded = LtFmIndex::loadfrom(&buffer[..]).unwrap();

asserteq!(ltfmindextosave, ltfmindexloaded); ```

Repository

https://github.com/baku4/lt-fm-index

Doc

https://docs.rs/lt-fm-index/

Reference