r465: apply option -x before other options
This commit is contained in:
parent
19c39e704f
commit
1554149158
22
main.c
22
main.c
|
|
@ -6,7 +6,7 @@
|
||||||
#include "mmpriv.h"
|
#include "mmpriv.h"
|
||||||
#include "getopt.h"
|
#include "getopt.h"
|
||||||
|
|
||||||
#define MM_VERSION "2.2-r464-dirty"
|
#define MM_VERSION "2.2-r465-dirty"
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
|
|
@ -65,6 +65,7 @@ static inline int64_t mm_parse_num(const char *str)
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
const char *opt_str = "aSw:k:K:t:r:f:Vv:g:G:I:d:XT:s:x:Hcp:M:n:z:A:B:O:E:m:N:Qu:R:h";
|
||||||
mm_mapopt_t opt;
|
mm_mapopt_t opt;
|
||||||
mm_idxopt_t ipt;
|
mm_idxopt_t ipt;
|
||||||
int i, c, n_threads = 3, long_idx, max_gap_ref = 0;
|
int i, c, n_threads = 3, long_idx, max_gap_ref = 0;
|
||||||
|
|
@ -78,7 +79,17 @@ int main(int argc, char *argv[])
|
||||||
mm_realtime0 = realtime();
|
mm_realtime0 = realtime();
|
||||||
mm_set_opt(0, &ipt, &opt);
|
mm_set_opt(0, &ipt, &opt);
|
||||||
|
|
||||||
while ((c = getopt_long(argc, argv, "aSw:k:K:t:r:f:Vv:g:G:I:d:XT:s:x:Hcp:M:n:z:A:B:O:E:m:N:Qu:R:h", long_options, &long_idx)) >= 0) {
|
while ((c = getopt_long(argc, argv, opt_str, long_options, &long_idx)) >= 0) // apply option -x/preset first
|
||||||
|
if (c == 'x') {
|
||||||
|
if (mm_set_opt(optarg, &ipt, &opt) < 0) {
|
||||||
|
fprintf(stderr, "[ERROR] unknown preset '%s'\n", optarg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
optreset = 1;
|
||||||
|
|
||||||
|
while ((c = getopt_long(argc, argv, opt_str, long_options, &long_idx)) >= 0) {
|
||||||
if (c == 'w') ipt.w = atoi(optarg);
|
if (c == 'w') ipt.w = atoi(optarg);
|
||||||
else if (c == 'k') ipt.k = atoi(optarg);
|
else if (c == 'k') ipt.k = atoi(optarg);
|
||||||
else if (c == 'H') ipt.is_hpc = 1;
|
else if (c == 'H') ipt.is_hpc = 1;
|
||||||
|
|
@ -154,11 +165,6 @@ int main(int argc, char *argv[])
|
||||||
} else if (c == 'E') {
|
} else if (c == 'E') {
|
||||||
opt.e = opt.e2 = strtol(optarg, &s, 10);
|
opt.e = opt.e2 = strtol(optarg, &s, 10);
|
||||||
if (*s == ',') opt.e2 = strtol(s + 1, &s, 10);
|
if (*s == ',') opt.e2 = strtol(s + 1, &s, 10);
|
||||||
} else if (c == 'x') {
|
|
||||||
if (mm_set_opt(optarg, &ipt, &opt) < 0) {
|
|
||||||
fprintf(stderr, "[E::%s] unknown preset '%s'\n", __func__, optarg);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (max_gap_ref > 0) {
|
if (max_gap_ref > 0) {
|
||||||
|
|
@ -207,7 +213,7 @@ int main(int argc, char *argv[])
|
||||||
// fprintf(fp_help, " -v INT verbose level [%d]\n", mm_verbose);
|
// fprintf(fp_help, " -v INT verbose level [%d]\n", mm_verbose);
|
||||||
fprintf(fp_help, " --version show version number\n");
|
fprintf(fp_help, " --version show version number\n");
|
||||||
fprintf(fp_help, " Preset:\n");
|
fprintf(fp_help, " Preset:\n");
|
||||||
fprintf(fp_help, " -x STR preset (recommended to be applied before other options) []\n");
|
fprintf(fp_help, " -x STR preset (always applied before other options) []\n");
|
||||||
fprintf(fp_help, " map10k/map-pb: -Hk19 (PacBio/ONT vs reference mapping)\n");
|
fprintf(fp_help, " map10k/map-pb: -Hk19 (PacBio/ONT vs reference mapping)\n");
|
||||||
fprintf(fp_help, " map-ont: -k15 (slightly more sensitive than 'map10k' for ONT vs reference)\n");
|
fprintf(fp_help, " map-ont: -k15 (slightly more sensitive than 'map10k' for ONT vs reference)\n");
|
||||||
fprintf(fp_help, " asm5: -k19 -w19 -A1 -B19 -O39,81 -E3,1 -s200 -z200 (asm to ref mapping; break at 5%% div.)\n");
|
fprintf(fp_help, " asm5: -k19 -w19 -A1 -B19 -O39,81 -E3,1 -s200 -z200 (asm to ref mapping; break at 5%% div.)\n");
|
||||||
|
|
|
||||||
2
map.c
2
map.c
|
|
@ -339,7 +339,7 @@ void mm_map_multi(const mm_idx_t *mi, int n_segs, const int *qlens, const char *
|
||||||
mm_set_mapq(n_regs[i], regs[i], opt->min_chain_score, opt->a, rep_len);
|
mm_set_mapq(n_regs[i], regs[i], opt->min_chain_score, opt->a, rep_len);
|
||||||
}
|
}
|
||||||
mm_seg_free(b->km, n_segs, seg);
|
mm_seg_free(b->km, n_segs, seg);
|
||||||
if (n_segs == 2 && opt->pe_ori >= 0)
|
if (n_segs == 2 && opt->pe_ori >= 0 && (opt->flag&MM_F_CIGAR))
|
||||||
mm_pair(b->km, max_gap_ref, opt->pe_bonus, opt->a * 2 + opt->b, opt->a, qlens, n_regs, regs);
|
mm_pair(b->km, max_gap_ref, opt->pe_bonus, opt->a * 2 + opt->b, opt->a, qlens, n_regs, regs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue