From a7b38f6900e2a34537891011996009956ed48c88 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Wed, 8 Nov 2017 22:31:05 -0500 Subject: [PATCH] r562: fixed a severe bug: wrong query start --- align.c | 7 +++++-- main.c | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/align.c b/align.c index 6af257d..daa42ce 100644 --- a/align.c +++ b/align.c @@ -110,8 +110,11 @@ static void mm_fix_cigar(mm_reg1_t *r, const uint8_t *qseq, const uint8_t *tseq, } if ((p->cigar[0]&0xf) == 1 || (p->cigar[0]&0xf) == 2) { // get rid of leading I or D int32_t l = p->cigar[0] >> 4; - if ((p->cigar[0]&0xf) == 1) r->qs += l, *qshift = l; - else r->rs += l, *tshift = l; + if ((p->cigar[0]&0xf) == 1) { + if (r->rev) r->qe -= l; + else r->qs += l; + *qshift = l; + } else r->rs += l, *tshift = l; --p->n_cigar; memmove(p->cigar, p->cigar + 1, p->n_cigar * 4); } diff --git a/main.c b/main.c index 1c4f19e..9bc5bed 100644 --- a/main.c +++ b/main.c @@ -6,7 +6,7 @@ #include "mmpriv.h" #include "getopt.h" -#define MM_VERSION "2.4-r559-dirty" +#define MM_VERSION "2.4-r562-dirty" #ifdef __linux__ #include