mirror of
https://github.com/lh3/minimap2.git
synced 2026-10-05 22:58:12 +08:00
r1278: reduced --min-dp-len to 20 for splice:sr
30% reduced time at 0.01% more junction errors
This commit is contained in:
@@ -753,14 +753,14 @@ static void mm_align1(void *km, const mm_mapopt_t *opt, const mm_idx_t *mi, int
|
|||||||
re1 = rs, qe1 = qs;
|
re1 = rs, qe1 = qs;
|
||||||
assert(qs1 >= 0 && rs1 >= 0);
|
assert(qs1 >= 0 && rs1 >= 0);
|
||||||
|
|
||||||
for (i = is_sr? cnt1 - 1 : 1; i < cnt1; ++i) { // gap filling
|
for (i = is_sr? cnt1 - 1 : 1; i < cnt1; ++i) { // gap filling; for short genomic reads, fill from the first seed to the last
|
||||||
if ((a[as1+i].y & (MM_SEED_IGNORE|MM_SEED_TANDEM)) && i != cnt1 - 1) continue;
|
if ((a[as1+i].y & (MM_SEED_IGNORE|MM_SEED_TANDEM)) && i != cnt1 - 1) continue;
|
||||||
if (is_sr && !(mi->flag & MM_I_HPC)) {
|
if (is_sr && !(mi->flag & MM_I_HPC)) {
|
||||||
re = (int32_t)a[as1 + i].x + 1;
|
re = (int32_t)a[as1 + i].x + 1;
|
||||||
qe = (int32_t)a[as1 + i].y + 1;
|
qe = (int32_t)a[as1 + i].y + 1;
|
||||||
} else mm_adjust_minier(mi, qseq0, &a[as1 + i], &re, &qe);
|
} else mm_adjust_minier(mi, qseq0, &a[as1 + i], &re, &qe);
|
||||||
re1 = re, qe1 = qe;
|
re1 = re, qe1 = qe;
|
||||||
if (i == cnt1 - 1 || (a[as1+i].y&MM_SEED_LONG_JOIN) || (qe - qs >= opt->min_ksw_len && re - rs >= opt->min_ksw_len)) {
|
if (i == cnt1 - 1 || (a[as1+i].y&MM_SEED_LONG_JOIN) || (qe - qs >= opt->min_ksw_len && re - rs >= opt->min_ksw_len)) { // gap filling
|
||||||
int j, bw1 = bw_long, zdrop_code;
|
int j, bw1 = bw_long, zdrop_code;
|
||||||
if (a[as1+i].y & MM_SEED_LONG_JOIN)
|
if (a[as1+i].y & MM_SEED_LONG_JOIN)
|
||||||
bw1 = qe - qs > re - rs? qe - qs : re - rs;
|
bw1 = qe - qs > re - rs? qe - qs : re - rs;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#define MM_VERSION "2.28-r1277-dirty"
|
#define MM_VERSION "2.28-r1278-dirty"
|
||||||
|
|
||||||
#define MM_F_NO_DIAG (0x001LL) // no exact diagonal hit
|
#define MM_F_NO_DIAG (0x001LL) // no exact diagonal hit
|
||||||
#define MM_F_NO_DUAL (0x002LL) // skip pairs where query name is lexicographically larger than target name
|
#define MM_F_NO_DUAL (0x002LL) // skip pairs where query name is lexicographically larger than target name
|
||||||
|
|||||||
+1
-1
@@ -708,7 +708,7 @@ Spliced alignment for accurate long RNA-seq reads such as PacBio iso-seq
|
|||||||
.B splice:sr
|
.B splice:sr
|
||||||
Spliced alignment for short RNA-seq reads
|
Spliced alignment for short RNA-seq reads
|
||||||
.RB ( -xsplice:hq
|
.RB ( -xsplice:hq
|
||||||
.B --frag=yes -m25 -s40 -2K100m --heap-sort=yes --pairing=weak --sr=rna
|
.B --frag=yes -m25 -s40 -2K100m --heap-sort=yes --pairing=weak --sr=rna --min-dp-len=20
|
||||||
.BR --secondary=no ).
|
.BR --secondary=no ).
|
||||||
.TP
|
.TP
|
||||||
.B sr
|
.B sr
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ int mm_set_opt(const char *preset, mm_idxopt_t *io, mm_mapopt_t *mo)
|
|||||||
mo->noncan = 5, mo->b = 4, mo->q = 6, mo->q2 = 24;
|
mo->noncan = 5, mo->b = 4, mo->q = 6, mo->q2 = 24;
|
||||||
mo->min_chain_score = 25;
|
mo->min_chain_score = 25;
|
||||||
mo->min_dp_max = 40;
|
mo->min_dp_max = 40;
|
||||||
|
mo->min_ksw_len = 20;
|
||||||
mo->pe_ori = 0<<1|1; // FR
|
mo->pe_ori = 0<<1|1; // FR
|
||||||
mo->best_n = 10;
|
mo->best_n = 10;
|
||||||
mo->mini_batch_size = 100000000;
|
mo->mini_batch_size = 100000000;
|
||||||
|
|||||||
Reference in New Issue
Block a user