optionally output unmapped query in PAF
This commit is contained in:
parent
bcf92b3c46
commit
a609a07f8c
4
format.c
4
format.c
|
|
@ -259,6 +259,10 @@ static inline void write_tags(kstring_t *s, const mm_reg1_t *r)
|
|||
void mm_write_paf(kstring_t *s, const mm_idx_t *mi, const mm_bseq1_t *t, const mm_reg1_t *r, void *km, int opt_flag)
|
||||
{
|
||||
s->l = 0;
|
||||
if (r == 0) {
|
||||
mm_sprintf_lite(s, "%s\t%d", t->name, t->l_seq);
|
||||
return;
|
||||
}
|
||||
mm_sprintf_lite(s, "%s\t%d\t%d\t%d\t%c\t", t->name, t->l_seq, r->qs, r->qe, "+-"[r->rev]);
|
||||
if (mi->seq[r->rid].name) mm_sprintf_lite(s, "%s", mi->seq[r->rid].name);
|
||||
else mm_sprintf_lite(s, "%d", r->rid);
|
||||
|
|
|
|||
2
main.c
2
main.c
|
|
@ -60,6 +60,7 @@ static struct option long_options[] = {
|
|||
{ "lj-min-ratio", required_argument, 0, 0 }, // 30
|
||||
{ "score-N", required_argument, 0, 0 }, // 31
|
||||
{ "eqx", no_argument, 0, 0 }, // 32
|
||||
{ "paf-no-hit", no_argument, 0, 0 }, // 33
|
||||
{ "help", no_argument, 0, 'h' },
|
||||
{ "max-intron-len", required_argument, 0, 'G' },
|
||||
{ "version", no_argument, 0, 'V' },
|
||||
|
|
@ -179,6 +180,7 @@ int main(int argc, char *argv[])
|
|||
else if (c == 0 && long_idx ==30) opt.min_join_flank_ratio = atof(optarg); // --lj-min-ratio
|
||||
else if (c == 0 && long_idx ==31) opt.sc_ambi = atoi(optarg); // --score-N
|
||||
else if (c == 0 && long_idx ==32) opt.flag |= MM_F_EQX; // --eqx
|
||||
else if (c == 0 && long_idx ==33) opt.flag |= MM_F_PAF_NO_HIT; // --paf-no-hit
|
||||
else if (c == 0 && long_idx == 14) { // --frag
|
||||
yes_or_no(&opt, MM_F_FRAG_MODE, long_idx, optarg, 1);
|
||||
} else if (c == 0 && long_idx == 15) { // --secondary
|
||||
|
|
|
|||
9
map.c
9
map.c
|
|
@ -496,6 +496,15 @@ static void *worker_pipeline(void *shared, int step, void *in)
|
|||
mm_write_paf(&p->str, mi, t, r, km, p->opt->flag);
|
||||
mm_err_puts(p->str.s);
|
||||
}
|
||||
if (s->n_reg[i] == 0) {
|
||||
if (p->opt->flag & MM_F_OUT_SAM) {
|
||||
mm_write_sam2(&p->str, mi, t, i - seg_st, -1, s->n_seg[k], &s->n_reg[seg_st], (const mm_reg1_t*const*)&s->reg[seg_st], km, p->opt->flag);
|
||||
mm_err_puts(p->str.s);
|
||||
} else if (p->opt->flag & MM_F_PAF_NO_HIT) {
|
||||
mm_write_paf(&p->str, mi, t, 0, 0, p->opt->flag);
|
||||
mm_err_puts(p->str.s);
|
||||
}
|
||||
}
|
||||
if (s->n_reg[i] == 0 && (p->opt->flag & MM_F_OUT_SAM)) { // write an unmapped record
|
||||
mm_write_sam2(&p->str, mi, t, i - seg_st, -1, s->n_seg[k], &s->n_reg[seg_st], (const mm_reg1_t*const*)&s->reg[seg_st], km, p->opt->flag);
|
||||
mm_err_puts(p->str.s);
|
||||
|
|
|
|||
Loading…
Reference in New Issue