fgumi_dna/lib.rs
1#![deny(unsafe_code)]
2
3//! DNA sequence utilities and constants.
4//!
5//! This crate provides fundamental DNA operations:
6//! - Complement and reverse-complement of DNA sequences
7//! - 2-bit encoding for efficient UMI comparison (Hamming distance)
8//! - Common constants for base quality and no-call handling
9
10pub mod bitenc;
11pub mod dna;
12
13// Re-export submodule contents at crate root for convenience
14pub use bitenc::BitEnc;
15pub use dna::{
16 complement_base, complement_base_preserve_case, reverse_complement, reverse_complement_str,
17};
18
19/// No-call base character (matches fgbio's `NoCallBase`).
20pub const NO_CALL_BASE: u8 = b'N';
21
22/// Lowercase no-call base character.
23pub const NO_CALL_BASE_LOWER: u8 = b'n';
24
25/// Minimum Phred score (Q2, matching fgbio's `PhredScore.MinValue`).
26pub const MIN_PHRED: u8 = 2;