basebits

Crates.iobasebits
lib.rsbasebits
version1.2.0
sourcesrc
created_at2019-08-12 17:23:02.668724
updated_at2019-11-06 22:51:04.68157
descriptionA library for encoding DNA into u64 to allow for constant time hamming distance calculations.
homepage
repositoryhttps://github.com/sstadick/basebits
max_upload_size
id156177
size43,703
Seth (sstadick)

documentation

https://docs.rs/basebits/0.2.0/basebits/

README

docs crates.io

basebits

A library for memory efficient short DNA sequence encoding.

Synopsis

When to use this library? If you are comparing strings against each other more than 4 times, it becomes more efficient to pay the cost of encoding them.

Operations

Constant time hamming distance calculations.

Example

use basebits::{BaseBits, hamming_dist};

fn main() {
    let string1 = b"ACTGACTG";
    let string2 = b"ACTTACTG";

    let string1 = BaseBits::new(string1).unwrap();
    let string2 = BaseBits::new(string2).unwrap();

    assert_eq!(hamming_dist(&string1, &string2), 1);
}

Reference

See 'Constant Time Hamming Distance' section: https://www.biorxiv.org/content/10.1101/648683v1.full

Future directions

FFT stuff?

Commit count: 26

cargo fmt