r524: reverted to bwa-mem end bonus
and reduced the cost of clipping when filtering by identity
This commit is contained in:
parent
15ed0712c2
commit
bd04372873
4
hit.c
4
hit.c
|
|
@ -286,7 +286,7 @@ void mm_filter_by_identity(void *km, int n_regs, mm_reg1_t *regs, float min_iden
|
||||||
mm_reg1_t *r = ®s[(int32_t)aux[i]];
|
mm_reg1_t *r = ®s[(int32_t)aux[i]];
|
||||||
if (r->qs > en) {
|
if (r->qs > en) {
|
||||||
for (j = en; j < r->qs; ++j)
|
for (j = en; j < r->qs; ++j)
|
||||||
n_diff += qual == 0 || qual[j] >= 53? 0.5f : 0.025f * (qual[j] - 33);
|
n_diff += qual == 0 || qual[j] >= 53? .25f : .05f * .25f * (qual[j] - 33);
|
||||||
blen += r->qs - en;
|
blen += r->qs - en;
|
||||||
}
|
}
|
||||||
assert(r->p);
|
assert(r->p);
|
||||||
|
|
@ -295,7 +295,7 @@ void mm_filter_by_identity(void *km, int n_regs, mm_reg1_t *regs, float min_iden
|
||||||
en = en > r->qe? en : r->qe;
|
en = en > r->qe? en : r->qe;
|
||||||
}
|
}
|
||||||
for (j = en; j < qlen; ++j)
|
for (j = en; j < qlen; ++j)
|
||||||
n_diff += qual == 0 || qual[j] >= 53? 0.5f : 0.025f * (qual[j] - 33);
|
n_diff += qual == 0 || qual[j] >= 53? .25f : .05f * .25f * (qual[j] - 33);
|
||||||
blen += qlen - en;
|
blen += qlen - en;
|
||||||
kfree(km, aux);
|
kfree(km, aux);
|
||||||
if (1.0f - n_diff / blen < min_iden)
|
if (1.0f - n_diff / blen < min_iden)
|
||||||
|
|
|
||||||
2
main.c
2
main.c
|
|
@ -6,7 +6,7 @@
|
||||||
#include "mmpriv.h"
|
#include "mmpriv.h"
|
||||||
#include "getopt.h"
|
#include "getopt.h"
|
||||||
|
|
||||||
#define MM_VERSION "2.2-r523-dirty"
|
#define MM_VERSION "2.2-r524-dirty"
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
|
|
|
||||||
2
map.c
2
map.c
|
|
@ -85,7 +85,7 @@ int mm_set_opt(const char *preset, mm_idxopt_t *io, mm_mapopt_t *mo)
|
||||||
mo->pe_ori = 0<<1|1; // FR
|
mo->pe_ori = 0<<1|1; // FR
|
||||||
mo->a = 2, mo->b = 8, mo->q = 12, mo->e = 2, mo->q2 = 24, mo->e2 = 1;
|
mo->a = 2, mo->b = 8, mo->q = 12, mo->e = 2, mo->q2 = 24, mo->e2 = 1;
|
||||||
mo->zdrop = 100;
|
mo->zdrop = 100;
|
||||||
mo->end_bonus = 15;
|
mo->end_bonus = 10;
|
||||||
mo->max_frag_len = 800;
|
mo->max_frag_len = 800;
|
||||||
mo->max_gap = 100;
|
mo->max_gap = 100;
|
||||||
mo->bw = 100;
|
mo->bw = 100;
|
||||||
|
|
|
||||||
|
|
@ -512,7 +512,11 @@ We evaluated minimap2 along with Bowtie2~\citep{Langmead:2012fk}, BWA-MEM and
|
||||||
SNAP~\citep{Zaharia:2011aa}. Minimap2 is 3--4 times as fast as Bowtie2 and
|
SNAP~\citep{Zaharia:2011aa}. Minimap2 is 3--4 times as fast as Bowtie2 and
|
||||||
BWA-MEM, but is 1.3 times slower than SNAP. Minimap2 is more accurate on this
|
BWA-MEM, but is 1.3 times slower than SNAP. Minimap2 is more accurate on this
|
||||||
simulated data set than Bowtie2 and SNAP but less accurate than BWA-MEM
|
simulated data set than Bowtie2 and SNAP but less accurate than BWA-MEM
|
||||||
(Fig.~\ref{fig:eval}b).
|
(Fig.~\ref{fig:eval}b). Closer investigation reveals that BWA-MEM achieves
|
||||||
|
a higher accuracy partly because it tries to locally align a read in a small
|
||||||
|
region close to its mate. If we disable this feature, BWA-MEM becomes slightly
|
||||||
|
less accurate than minimap2. We might consider to implement a similar heuristic
|
||||||
|
in minimap2 in future.
|
||||||
|
|
||||||
\section{Conclusion}
|
\section{Conclusion}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue