diff --git a/bwamem_pair.c b/bwamem_pair.c index 6316f6a..51a844b 100644 --- a/bwamem_pair.c +++ b/bwamem_pair.c @@ -305,6 +305,12 @@ no_pairing: h[i] = mem_reg2aln(opt, bns, pac, s[i].l_seq, s[i].seq, &a[i].a[0]); else h[i] = mem_reg2aln(opt, bns, pac, s[i].l_seq, s[i].seq, 0); } + if (h[0].rid == h[1].rid && h[0].rid >= 0) { // if the top hits from the two ends constitute a proper pair, flag it. + int64_t dist; + int d; + d = mem_infer_dir(bns->l_pac, a[0].a[0].rb, a[1].a[0].rb, &dist); + if (!pes[d].failed && dist >= pes[d].low && dist <= pes[d].high) extra_flag |= 2; + } mem_reg2sam_se(opt, bns, pac, &s[0], &a[0], 0x41|extra_flag, &h[1]); mem_reg2sam_se(opt, bns, pac, &s[1], &a[1], 0x81|extra_flag, &h[0]); free(h[0].cigar); free(h[1].cigar); diff --git a/main.c b/main.c index c6d6e29..26e6661 100644 --- a/main.c +++ b/main.c @@ -3,7 +3,7 @@ #include "utils.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.7.2-r360-beta" +#define PACKAGE_VERSION "0.7.2-r361-beta" #endif int bwa_fa2pac(int argc, char *argv[]);