From 11437a14f4050e9ede5b11d2719a45083d6648f4 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Tue, 23 Feb 2016 11:07:27 -0500 Subject: [PATCH] Port #48 to the dev branch --- NEWS.md | 29 +++++++++++++++++++++++++++++ bwape.c | 2 +- bwase.c | 1 + 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 4692889e..d09544e7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,32 @@ +Release 0.7.13 (23 Feburary 2016) +--------------------------------- + +This release fixes a few minor bugs in the previous version and adds a few +minor features. All BWA algorithms should produce identical output to 0.7.12 +when there are no ALT contigs. + +Detailed changes: + + * Fixed a bug in "bwa-postalt.js". The old version may produce 0.5% of wrong + bases for reads mapped to the ALT contigs. + + * Fixed a potential bug in the multithreading mode. It may occur when mapping + is much faster than file reading, which should almost never happen in + practice. + + * Changed the download URL of GRCh38. + + * Removed the read overlap mode. It is not working well. + + * Added the ropebwt2 algorithm as an alternative to index large genomes. + Ropebwt2 is slower than the "bwtsw" algorithm, but it has a permissive + license. This allows us to create an Apache2-licensed BWA (in the "Apache2" + branch) for commercial users who are concerned with GPL. + +(0.7.13: 23 Feburary 2016, r1118) + + + Release 0.7.12 (28 December 2014) --------------------------------- diff --git a/bwape.c b/bwape.c index a5dc3ad4..f2d3d8e0 100644 --- a/bwape.c +++ b/bwape.c @@ -379,7 +379,7 @@ int bwa_cal_pac_pos_pe(const bntseq_t *bns, const char *prefix, bwt_t *const _bw bwt_multi1_t *q = p[j]->multi + k; q->pos = bwa_sa2pos(bns, bwt, q->pos, p[j]->len + q->ref_shift, &strand); q->strand = strand; - if (q->pos != p[j]->pos) + if (q->pos != p[j]->pos && q->pos != (bwtint_t)-1) p[j]->multi[n_multi++] = *q; } p[j]->n_multi = n_multi; diff --git a/bwase.c b/bwase.c index cb912ec5..64808ef5 100644 --- a/bwase.c +++ b/bwase.c @@ -113,6 +113,7 @@ bwtint_t bwa_sa2pos(const bntseq_t *bns, const bwt_t *bwt, bwtint_t sapos, int r { bwtint_t pos_f; int is_rev; + *strand = 0; pos_f = bwt_sa(bwt, sapos); // position on the forward-reverse coordinate if (pos_f < bns->l_pac && bns->l_pac < pos_f + ref_len) return (bwtint_t)-1; pos_f = bns_depos(bns, pos_f, &is_rev); // position on the forward strand; this may be the first base or the last base