Function parasailors::semi_global_alignment_score [] [src]

pub fn semi_global_alignment_score(query_profile: &Profile, database_sequence: &[u8], open_cost: i32, gap_extend_cost: i32) -> i32

Provides a score for semi-global pairwise alignment using a vectorized algorithm.

This results in a score that corresponds to a global alignment for the query sequence (i.e. the sequence in the Profile) and a local alignment for the reference sequence. This is particularly useful when checking for the presence of an NGS read in a much longer reference sequence. This behaves like a global alignment, except that gaps at the start or end of the reference sequence's alignment are ignored.

Examples

let query = b"AAAAAAAAAACCCCCCCCCCGGGGGGGGGGTTTTTTTTTTTNNNNNNNNN";
let profile_ident = Profile::new(query, &identity_matrix);

let reference = b"AAAAAAAAAACCCCCCCCCCGGGGGGGGGGTTTTTTTTTTTNNNNNNNNN";
assert_eq!(50, semi_global_alignment_score(&profile_ident, reference, 1, 1));

let reference = b"AAAAAAAAAACCCCCCCCCCGGGGGGGGGGTTTTTCCTTTTTTNNNNNNNNN";
assert_eq!(48, semi_global_alignment_score(&profile_ident, reference, 1, 1));

let reference = b"AAAAAAAAAACCCCCCCCCCGGGGGGGGGGTTTTT";
assert_eq!(35, semi_global_alignment_score(&profile_ident, reference, 1, 1));