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());