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