pub fn reverse_complement(dna: &[u8]) -> Vec<u8> {
let dna_vec = dna.to_vec();
let mut revcomp = Vec::new();
for base in dna_vec.iter() {
revcomp.push(switch_base(*base))
}
revcomp.as_mut_slice().reverse();
revcomp
}
fn switch_base(c: u8) -> u8 {
match c {
b'A' => b'T',
b'a' => b't',
b'C' => b'G',
b'c' => b'g',
b'T' => b'A',
b't' => b'a',
b'G' => b'C',
b'g' => b'c',
b'N' => b'N',
b'n' => b'n',
_ => b'N',
}
}