diff --git a/CommandLines.cpp b/CommandLines.cpp index 8a1eb93..4ba6ba2 100644 --- a/CommandLines.cpp +++ b/CommandLines.cpp @@ -9,6 +9,12 @@ hifiasm_opt_t asm_opt; +static ko_longopt_t long_options[] = { + { "version", ko_no_argument, 300 }, + { "dbg-gfa", ko_no_argument, 301 }, + { 0, 0, 0 } +}; + double Get_T(void) { struct timeval t; @@ -90,6 +96,7 @@ void init_opt(hifiasm_opt_t* asm_opt) asm_opt->max_short_tip = 3; asm_opt->min_cnt = 2; asm_opt->mid_cnt = 5; + asm_opt->verbose_gfa = 0; } void destory_opt(hifiasm_opt_t* asm_opt) @@ -301,13 +308,13 @@ int CommandLine_process(int argc, char *argv[], hifiasm_opt_t* asm_opt) int c; - while ((c = ketopt(&opt, argc, argv, 1, "hvt:o:k:lw:m:n:r:a:b:z:x:y:p:c:d:M:P:if:D:FN:", 0)) >= 0) { + while ((c = ketopt(&opt, argc, argv, 1, "hvt:o:k:lw:m:n:r:a:b:z:x:y:p:c:d:M:P:if:D:FN:", long_options)) >= 0) { if (c == 'h') { Print_H(asm_opt); return 0; } - else if (c == 'v') + else if (c == 'v' || c == 300) { puts(HA_VERSION); return 0; @@ -335,6 +342,7 @@ int CommandLine_process(int argc, char *argv[], hifiasm_opt_t* asm_opt) else if (c == 'p') asm_opt->small_pop_bubble_size = atoll(opt.arg); else if (c == 'm') asm_opt->large_pop_bubble_size = atoll(opt.arg); else if (c == 'n') asm_opt->max_short_tip = atoll(opt.arg); + else if (c == 301) asm_opt->verbose_gfa = 1; else if (c == ':') { fprintf(stderr, "[ERROR] missing option argument in \"%s\"\n", argv[opt.i - 1]); diff --git a/CommandLines.h b/CommandLines.h index 8bd4aff..d214057 100644 --- a/CommandLines.h +++ b/CommandLines.h @@ -3,10 +3,9 @@ #include -#define HA_VERSION "0.3.0-dirty-r197" +#define HA_VERSION "0.3.0-dirty-r198" #define VERBOSE 0 -#define VERBOSE_GFA 1 typedef struct { int num_reads; @@ -38,6 +37,7 @@ typedef struct { int max_short_tip; int min_cnt; int mid_cnt; + int verbose_gfa; float max_hang_rate; float min_drop_rate; diff --git a/Overlaps.cpp b/Overlaps.cpp index 3aaaa1b..42c38bd 100644 --- a/Overlaps.cpp +++ b/Overlaps.cpp @@ -26464,7 +26464,7 @@ ma_sub_t **coverage_cut_ptr, int debug_g) asg_arc_del_simple_circle_untig(sources, coverage_cut, sg, 100, 0); - if(VERBOSE_GFA >= 1) + if (asm_opt.verbose_gfa) { /*******************************for debug***************************************/ write_debug_graph(sg, sources, coverage_cut, output_file_name, n_read, reverse_sources, ruIndex); @@ -26543,7 +26543,7 @@ long long bubble_dist, int read_graph, int write) ///actually min_thres = asm_opt.max_short_tip + 1 there are asm_opt.max_short_tip reads min_thres = asm_opt.max_short_tip + 1; - if(VERBOSE_GFA >= 1) + if (asm_opt.verbose_gfa) { if(load_debug_graph(&sg, &sources, &coverage_cut, output_file_name, &reverse_sources, &ruIndex)) { diff --git a/hifiasm.1 b/hifiasm.1 index abab7c8..fa3a6c3 100644 --- a/hifiasm.1 +++ b/hifiasm.1 @@ -202,7 +202,11 @@ but occurs < times in the other sample. +.SS Debugging options +.TP 10 +.B --dbg-gfa +Write additional files to speed up the debugging of graph cleaning .SH EXAMPLES diff --git a/ketopt.h b/ketopt.h index 73dd2dc..827256f 100644 --- a/ketopt.h +++ b/ketopt.h @@ -17,7 +17,7 @@ typedef struct { } ketopt_t; typedef struct { - char *name; + const char *name; int has_arg; int val; } ko_longopt_t;