Function intspan::polarize_subs

source ·
pub fn polarize_subs(subs: &mut Vec<Substitution>, og: &[u8])
Expand description

Polarize substitutions

let seqs = vec![
    //        *
    b"AAAATTTTGG".as_ref(),
    b"AAAATTTTAG".as_ref(),
    b"AAAATTTTAG".as_ref(),
];
let mut subs = intspan::get_subs(&seqs[0..2]).unwrap();
intspan::polarize_subs(&mut subs, &seqs[2]);
let sub = subs.first().unwrap();
assert_eq!(sub.pos, 9);
assert_eq!(sub.tbase, "G".to_string());
assert_eq!(sub.qbase, "A".to_string());
assert_eq!(sub.bases, "GA".to_string());
assert_eq!(sub.mutant_to, "A->G".to_string());
assert_eq!(sub.freq, 1);
assert_eq!(sub.pattern, "10".to_string());
assert_eq!(sub.obase, "A".to_string());

let seqs = vec![
    //*   **     * *
    b"TTAG--GCTGAGAAGC".as_ref(),
    b"GTAGCCGCTGA-AGGC".as_ref(),
    b"TTAGCCGCTGAGAGGC".as_ref(),
];
let mut subs = intspan::get_subs(&seqs[0..2]).unwrap();
intspan::polarize_subs(&mut subs, &seqs[2]);
let sub = subs.first().unwrap();
assert_eq!(sub.pos, 1);
assert_eq!(sub.tbase, "T".to_string());
assert_eq!(sub.qbase, "G".to_string());
assert_eq!(sub.bases, "TG".to_string());
assert_eq!(sub.mutant_to, "T->G".to_string());
assert_eq!(sub.freq, 1);
assert_eq!(sub.pattern, "01".to_string());
assert_eq!(sub.obase, "T".to_string());

let sub = subs.get(1).unwrap();
assert_eq!(sub.pos, 14);
assert_eq!(sub.tbase, "A".to_string());
assert_eq!(sub.qbase, "G".to_string());
assert_eq!(sub.bases, "AG".to_string());
assert_eq!(sub.mutant_to, "G->A".to_string());
assert_eq!(sub.freq, 1);
assert_eq!(sub.pattern, "10".to_string());
assert_eq!(sub.obase, "G".to_string());