r92: fixed a bug for overlapping alignment
On the PBcR example E. coli reads, miniasm gives one circular unitig.
This commit is contained in:
parent
51057ab673
commit
cdc2a1e29f
6
main.c
6
main.c
|
|
@ -10,7 +10,7 @@
|
|||
#include "minimap.h"
|
||||
#include "mmpriv.h"
|
||||
|
||||
#define MM_VERSION "2.0-r90-pre"
|
||||
#define MM_VERSION "2.0-r92-pre"
|
||||
|
||||
void liftrlimit()
|
||||
{
|
||||
|
|
@ -112,7 +112,7 @@ int main(int argc, char *argv[])
|
|||
} else if (c == 'x') {
|
||||
if (strcmp(optarg, "ava10k") == 0) {
|
||||
opt.flag |= MM_F_AVA | MM_F_NO_SELF;
|
||||
opt.min_score = 100;
|
||||
opt.min_score = 100, opt.pri_ratio = 0.0f;
|
||||
is_hpc = 1, k = 19, w = 5;
|
||||
}
|
||||
}
|
||||
|
|
@ -138,7 +138,7 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, " -S skip self and dual mappings\n");
|
||||
fprintf(stderr, " -p FLOAT threshold to output a mapping [%g]\n", opt.pri_ratio);
|
||||
fprintf(stderr, " -x STR preset (recommended to be applied before other options) []\n");
|
||||
fprintf(stderr, " ava10k: -Hk19 -Sw5 -s100 (PacBio/ONT all-vs-all read mapping)\n");
|
||||
fprintf(stderr, " ava10k: -Hk19 -Sw5 -p0 -s100 (PacBio/ONT all-vs-all read mapping)\n");
|
||||
fprintf(stderr, " Alignment:\n");
|
||||
fprintf(stderr, " -A INT matching score [%d]\n", opt.a);
|
||||
fprintf(stderr, " -B INT mismatch penalty [%d]\n", opt.b);
|
||||
|
|
|
|||
1
map.c
1
map.c
|
|
@ -281,6 +281,7 @@ mm_reg1_t *mm_map_frag(const mm_mapopt_t *opt, const mm_idx_t *mi, mm_tbuf_t *b,
|
|||
}
|
||||
}
|
||||
}
|
||||
n_a = j;
|
||||
radix_sort_128x(a, a + n_a);
|
||||
for (i = 0; i < n; ++i)
|
||||
if (m[i].is_alloc) kfree(b->km, m[i].x.r);
|
||||
|
|
|
|||
2
mmpriv.h
2
mmpriv.h
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef MMPRIV2_H
|
||||
#define MMPRIV2_H
|
||||
|
||||
#include <assert.h>
|
||||
#include "minimap.h"
|
||||
#include "bseq.h"
|
||||
|
||||
|
|
@ -41,6 +42,7 @@ static inline void mm_reg_set_coor(mm_reg1_t *r, int32_t qlen, const mm128_t *a)
|
|||
int32_t k = r->as;
|
||||
r->rev = a[k].x>>63;
|
||||
r->rid = a[k].x<<1>>33;
|
||||
assert(r->rid != 0x7fffffff);
|
||||
r->rs = (int32_t)a[k].x + 1 > (int32_t)(a[k].y>>32)? (int32_t)a[k].x + 1 - (int32_t)(a[k].y>>32) : 0;
|
||||
r->re = (int32_t)a[k + r->cnt - 1].x + 1;
|
||||
if (!r->rev) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue