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