Function intspan::trim_complex_indel
source · pub fn trim_complex_indel(seqs: &mut Vec<String>) -> String
Expand description
Records complex ingroup indels (ingroup-outgroup complex indels are not identified here)
After trim_outgroup(), All ingroup intersect ints are parts of complex indels intersect 4-5, union 2-5 T GGA–C Q G––C O GGAGAC result, complex_region 2-3 T GGAC Q G–C O GGAC
let mut seqs = vec![
"AAAATTTTTG".to_string(),
"AAAATTTTTG".to_string(),
"AAAATTTTTG".to_string(),
];
intspan::trim_outgroup(&mut seqs);
let complex = intspan::trim_complex_indel(&mut seqs);
assert_eq!(seqs[0].len(), 10);
assert_eq!(complex.to_string(), "-");
let mut seqs = vec![
"-AA--TTTGG".to_string(),
"-AA--TTTGG".to_string(),
"-AA--TTTGG".to_string(),
];
intspan::trim_outgroup(&mut seqs);
let complex = intspan::trim_complex_indel(&mut seqs);
assert_eq!(seqs[0].len(), 7);
assert_eq!(complex.to_string(), "-");
let mut seqs = vec![
"-AA--TTTGG".to_string(),
"-AAA-TTTGG".to_string(),
"AAA--TTTGG".to_string(),
];
intspan::trim_outgroup(&mut seqs);
let complex = intspan::trim_complex_indel(&mut seqs);
assert_eq!(seqs[0].len(), 8);
assert_eq!(complex.to_string(), "3");
let mut seqs = vec![
"AAA--TT-GG".to_string(),
"AAAATTT-GG".to_string(),
"AAA--TTTTG".to_string(),
];
intspan::trim_outgroup(&mut seqs);
let complex = intspan::trim_complex_indel(&mut seqs);
assert_eq!(seqs[0].len(), 9);
assert_eq!(complex.to_string(), "-");
let mut seqs = vec![
"-AA--TT-GG".to_string(),
"-AAA-TT-GG".to_string(),
"AAA--TTTTG".to_string(),
];
intspan::trim_outgroup(&mut seqs);
let complex = intspan::trim_complex_indel(&mut seqs);
assert_eq!(seqs[0].len(), 7);
assert_eq!(complex.to_string(), "3");
let mut seqs = vec![
"-AA--TTTGG".to_string(),
"-AAA-TT-GG".to_string(),
"AAA--TTTTG".to_string(),
];
intspan::trim_outgroup(&mut seqs);
let complex = intspan::trim_complex_indel(&mut seqs);
assert_eq!(seqs[0].len(), 8);
assert_eq!(complex.to_string(), "3");
let mut seqs = vec![
"-AA--TTTGG".to_string(),
"-AAA-TT-GG".to_string(),
"AAA--TT--G".to_string(),
];
intspan::trim_outgroup(&mut seqs);
let complex = intspan::trim_complex_indel(&mut seqs);
assert_eq!(seqs[0].len(), 8);
assert_eq!(complex.to_string(), "3");
let mut seqs = vec![
"-AA--TTTGG".to_string(),
"-AAA-TT--G".to_string(),
"AAA--TT-GG".to_string(),
];
intspan::trim_outgroup(&mut seqs);
let complex = intspan::trim_complex_indel(&mut seqs);
assert_eq!(seqs[0].len(), 8);
assert_eq!(complex.to_string(), "3");