diff --git a/hit.c b/hit.c index f49827e..f5a50a2 100644 --- a/hit.c +++ b/hit.c @@ -55,7 +55,7 @@ mm_reg1_t *mm_gen_regs(void *km, uint32_t hash, int qlen, int n_u, uint64_t *u, mm_reg1_t *r; int i, k; - if (n_u == 0) return 0; + if (n_u <= 0) return 0; // sort by score z = (mm128_t*)kmalloc(km, n_u * 16); diff --git a/main.c b/main.c index 68a1205..6a9dabc 100644 --- a/main.c +++ b/main.c @@ -373,6 +373,7 @@ int main(int argc, char *argv[]) fprintf(fp_help, " --MD output the MD tag\n"); fprintf(fp_help, " --eqx write =/X CIGAR operators\n"); fprintf(fp_help, " -Y use soft clipping for supplementary alignments\n"); + fprintf(fp_help, " -y copy FASTA/Q comments to output SAM\n"); fprintf(fp_help, " -t INT number of threads [%d]\n", n_threads); fprintf(fp_help, " -K NUM minibatch size for mapping [500M]\n"); // fprintf(fp_help, " -v INT verbose level [%d]\n", mm_verbose); diff --git a/minimap.h b/minimap.h index 0389348..b735980 100644 --- a/minimap.h +++ b/minimap.h @@ -5,7 +5,7 @@ #include #include -#define MM_VERSION "2.28-r1221-dirty" +#define MM_VERSION "2.28-r1234-dirty" #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 diff --git a/options.c b/options.c index 3d5f9a0..d466682 100644 --- a/options.c +++ b/options.c @@ -174,8 +174,14 @@ int mm_set_opt(const char *preset, mm_idxopt_t *io, mm_mapopt_t *mo) mo->junc_bonus = 9; mo->junc_pen = 5; mo->zdrop = 200, mo->zdrop_inv = 100; // because mo->a is halved - if (strcmp(preset, "splice:hq") == 0) + if (strcmp(preset, "splice:hq") == 0) { mo->noncan = 5, mo->b = 4, mo->q = 6, mo->q2 = 24; + } else if (strcmp(preset, "splice:sr") == 0) { + mo->flag |= MM_F_NO_PRINT_2ND | MM_F_2_IO_THREADS | MM_F_HEAP_SORT; + mo->noncan = 5, mo->b = 4, mo->q = 6, mo->q2 = 24; + mo->end_bonus = 10; + mo->mini_batch_size = 50000000; + } } else return -1; return 0; }