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