diff --git a/bwamem.c b/bwamem.c index d19848d..3da9775 100644 --- a/bwamem.c +++ b/bwamem.c @@ -863,6 +863,13 @@ mem_aln_t mem_reg2aln(const mem_opt_t *opt, const bntseq_t *bns, const uint8_t * a.NM = NM; pos = bns_depos(bns, rb < bns->l_pac? rb : re - 1, &is_rev); a.is_rev = is_rev; + if (a.n_cigar > 0) { + if ((a.cigar[0]&0xf) == 2) { + pos += a.cigar[0]>>4; + --a.n_cigar; + memmove(a.cigar, a.cigar + 1, a.n_cigar * 4); + } else if ((a.cigar[a.n_cigar-1]&0xf) == 2) --a.n_cigar; + } if (qb != 0 || qe != l_query) { // add clipping to CIGAR int clip5, clip3; clip5 = is_rev? l_query - qe : qb; diff --git a/main.c b/main.c index 54c3093..16f6f27 100644 --- a/main.c +++ b/main.c @@ -3,7 +3,7 @@ #include "utils.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.7.3-r369-beta" +#define PACKAGE_VERSION "0.7.3-r370-beta" #endif int bwa_fa2pac(int argc, char *argv[]);