From 687e42ad22577dadf71c689518329f120b092066 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Fri, 5 Jun 2020 16:09:33 +0200 Subject: [PATCH] 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 --- src/kmer_similarity.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/kmer_similarity.c b/src/kmer_similarity.c index 2097460..4b4240f 100755 --- a/src/kmer_similarity.c +++ b/src/kmer_similarity.c @@ -413,7 +413,10 @@ Obi_ali_p kmer_similarity(Obiview_p view1, OBIDMS_column_p column1, index_t idx1 return NULL; } - score = max_common_kmers + kmer_size - 1; // aka the number of nucleotides in the longest stretch of kmers perfectly matching + 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 + else + score = 0; abs_shift = abs(best_shift); // 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->consensus_seq = NULL; ali->consensus_qual = NULL; - if (((best_shift <= 0) && (!switched_seqs)) || ((best_shift > 0) && switched_seqs)) - strcpy(ali->direction, "left"); + if (score == 0) + ali->direction[0] = '\0'; else - strcpy(ali->direction, "right"); + { + if (((best_shift <= 0) && (!switched_seqs)) || ((best_shift > 0) && switched_seqs)) + strcpy(ali->direction, "left"); + else + strcpy(ali->direction, "right"); + } // Build the consensus sequence if asked if (build_consensus)