C: kmer alignment: fixed a bug where scores of 0 were at
(0+kmer_length-1) (and now setting alignment direction to None if score is 0
This commit is contained in:
@ -413,7 +413,10 @@ Obi_ali_p kmer_similarity(Obiview_p view1, OBIDMS_column_p column1, index_t idx1
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (max_common_kmers > 0)
|
||||||
score = max_common_kmers + kmer_size - 1; // aka the number of nucleotides in the longest stretch of kmers perfectly matching
|
score = max_common_kmers + kmer_size - 1; // aka the number of nucleotides in the longest stretch of kmers perfectly matching
|
||||||
|
else
|
||||||
|
score = 0;
|
||||||
abs_shift = abs(best_shift);
|
abs_shift = abs(best_shift);
|
||||||
|
|
||||||
// Save result in Obi_ali structure
|
// Save result in Obi_ali structure
|
||||||
@ -423,10 +426,15 @@ Obi_ali_p kmer_similarity(Obiview_p view1, OBIDMS_column_p column1, index_t idx1
|
|||||||
ali->shift = abs_shift;
|
ali->shift = abs_shift;
|
||||||
ali->consensus_seq = NULL;
|
ali->consensus_seq = NULL;
|
||||||
ali->consensus_qual = NULL;
|
ali->consensus_qual = NULL;
|
||||||
|
if (score == 0)
|
||||||
|
ali->direction[0] = '\0';
|
||||||
|
else
|
||||||
|
{
|
||||||
if (((best_shift <= 0) && (!switched_seqs)) || ((best_shift > 0) && switched_seqs))
|
if (((best_shift <= 0) && (!switched_seqs)) || ((best_shift > 0) && switched_seqs))
|
||||||
strcpy(ali->direction, "left");
|
strcpy(ali->direction, "left");
|
||||||
else
|
else
|
||||||
strcpy(ali->direction, "right");
|
strcpy(ali->direction, "right");
|
||||||
|
}
|
||||||
|
|
||||||
// Build the consensus sequence if asked
|
// Build the consensus sequence if asked
|
||||||
if (build_consensus)
|
if (build_consensus)
|
||||||
|
Reference in New Issue
Block a user