#bioinformatics #sequencing #dna #mismatch

disambiseq

Create unambiguous one-off mismatch libraries for DNA sequences

10 releases

0.1.9 Oct 12, 2022
0.1.8 Oct 12, 2022

#14 in #dna

Download history 2/week @ 2022-11-28 17/week @ 2022-12-05 15/week @ 2022-12-12 17/week @ 2022-12-19 3/week @ 2022-12-26 3/week @ 2023-01-02 9/week @ 2023-01-09 4/week @ 2023-01-16 10/week @ 2023-01-23 16/week @ 2023-01-30 12/week @ 2023-02-06 33/week @ 2023-02-13 15/week @ 2023-02-20 1/week @ 2023-02-27 5/week @ 2023-03-06 23/week @ 2023-03-13

55 downloads per month
Used in casmap

MIT license

15KB
268 lines

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

use disambiseq::Disambiseq;

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

Visualizing the set

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

use disambiseq::Disambiseq;

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

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

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

// exclude sequences with ambiguous parents
assert_eq!(dsq.get_parent("AAT"), None);
assert_eq!(dsq.get_parent("ATT"), None);

Dependencies

~400–550KB