From ebb7b02e9b5346c05c8bed12f016df812cc88455 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Mon, 9 Sep 2013 16:57:55 -0400 Subject: [PATCH] r414: fixed a bug caused by the last commit --- bwamem.c | 12 ++++++++++-- main.c | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/bwamem.c b/bwamem.c index ebc2ac2..6cc4639 100644 --- a/bwamem.c +++ b/bwamem.c @@ -389,11 +389,19 @@ int mem_sort_and_dedup(int n, mem_alnreg_t *a, float mask_level_redun) mr = q->re - q->rb < p->re - p->rb? q->re - q->rb : p->re - p->rb; // min ref len in alignment mq = q->qe - q->qb < p->qe - p->qb? q->qe - q->qb : p->qe - p->qb; // min qry len in alignment if (or > mask_level_redun * mr && oq > mask_level_redun * mq) { // one of the hits is redundant - if (q->score < p->score) q->qe = q->qb; - else p->qe = p->qb; + if (p->score < q->score) { + p->qe = p->qb; + break; + } else q->qe = q->qb; } } } + for (i = 0, m = 0; i < n; ++i) // exclude identical hits + if (a[i].qe > a[i].qb) { + if (m != i) a[m++] = a[i]; + else ++m; + } + n = m; ks_introsort(mem_ars, n, a); for (i = 1; i < n; ++i) { // mark identical hits if (a[i].score == a[i-1].score && a[i].rb == a[i-1].rb && a[i].qb == a[i-1].qb) diff --git a/main.c b/main.c index d5b61a7..d1e3895 100644 --- a/main.c +++ b/main.c @@ -3,7 +3,7 @@ #include "utils.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.7.5a-r413" +#define PACKAGE_VERSION "0.7.5a-r414" #endif int bwa_fa2pac(int argc, char *argv[]);