disambiseq

MIT licensed actions status codecov Crates.io docs.rs

Creates unambiguous nucleotide mismatch libraries for for a set of nucleotide sequences.

Usage

I've rewritten this functionality a few times for different use cases and put it into a standalone crate since it might be useful to others.

This is used to generate unambiguous one-off mismatch libraries for a set of DNA sequences.

Creating a new unambiguous set

```rust use disambiseq::Disambiseq;

let sequences = vec![ "ACT".tostring(), "AGT".tostring() ]; let dsq = Disambiseq::from_slice(&sequences); println!("{:#?}", dsq); ```

Visualizing the set

text Disambiseq { unambiguous: { "TCT": "ACT", "ACA": "ACT", "CCT": "ACT", "ACC": "ACT", "CGT": "AGT", "GGT": "AGT", "AGA": "AGT", "GCT": "ACT", "ACG": "ACT", "TGT": "AGT", "AGC": "AGT", "AGG": "AGT", }, parents: { "AGT", "ACT", }, ambiguous: { "ATT", "AAT", }, }

Querying the Set

```rust use disambiseq::Disambiseq;

let sequences = vec![ "ACT".tostring(), "AGT".tostring() ]; let dsq = Disambiseq::from_slice(&sequences);

// retrieve a parental sequence asserteq!(dsq.getparent("ACT"), Some(&"ACT".to_string()));

// retrieve a mutation sequence's parent asserteq!(dsq.getparent("TCT"), Some(&"ACT".to_string()));

// exclude sequences with ambiguous parents asserteq!(dsq.getparent("AAT"), None); asserteq!(dsq.getparent("ATT"), None); ```