From 9867634f7254902a267a78249361083f23a8cd88 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Tue, 28 Oct 2014 13:43:26 -0400 Subject: [PATCH] r960: XA tags occasionally missing for PE --- bwamem_pair.c | 14 +++++++------- main.c | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bwamem_pair.c b/bwamem_pair.c index 5d4c5c2..e405423 100644 --- a/bwamem_pair.c +++ b/bwamem_pair.c @@ -327,13 +327,13 @@ int mem_sam_pe(const mem_opt_t *opt, const bntseq_t *bns, const uint8_t *pac, co // suboptimal hits if (!(opt->flag & MEM_F_ALL)) { for (i = 0; i < 2; ++i) { - int k = a[i].a[z[i]].secondary; - if (k >= 0) { // switch secondary and primary - assert(a[i].a[k].secondary < 0); - for (j = 0; j < n_pri[i]; ++j) - if (a[i].a[j].secondary == k || j == k) - a[i].a[j].secondary = z[i]; - a[i].a[z[i]].secondary = -1; + int k = a[i].a[z[i]].secondary_all; + if (k >= 0 && k < n_pri[i]) { // switch secondary and primary if both of them are non-ALT + assert(a[i].a[k].secondary_all < 0); + for (j = 0; j < a[i].n; ++j) + if (a[i].a[j].secondary_all == k || j == k) + a[i].a[j].secondary_all = z[i]; + a[i].a[z[i]].secondary_all = -1; } XA[i] = mem_gen_alt(opt, bns, pac, &a[i], s[i].l_seq, s[i].seq); } diff --git a/main.c b/main.c index 7591875..f8f6995 100644 --- a/main.c +++ b/main.c @@ -4,7 +4,7 @@ #include "utils.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.7.10-r943-dirty" +#define PACKAGE_VERSION "0.7.10-r960-dirty" #endif int bwa_fa2pac(int argc, char *argv[]);