group="Germline presets (at least one -g or -V/(-D)/-J option must be given for all commands except -c "COMMAND_GERMLINES")";
app.add_option("-g",multi_germlines,R"Z(
-g <.g FILE>(:FILTER)
...
...
@@ -344,26 +347,25 @@ int main (int argc, char **argv)
app.add_option("-D",v_reps_D,"custom D germline multi-fasta file(s) (and resets -m and -w options), will segment into V(D)J components")->group(group)->set_type_name("FILE");
app.add_option("-J",v_reps_J,"custom V germline multi-fasta file(s)")->group(group)->set_type_name("FILE");
app.add_flag("-d",several_D,"try to detect several D (experimental)")->group(group);
app.add_flag("-2",multi_germline_unexpected_recombinations_12,"try to detect unexpected recombinations (must be used with -g)")->group(group);
group="Experimental options (do not use)";
app.add_flag("-I",multi_germline_mark,"ignore k-mers common to different germline systems (experimental, must be used with -g, do not use)")->group(group)->level();
"use a unique index for all germline systems (experimental, must be used with -g, do not use)")->group(group)->level();
app.add_flag("-4",multi_germline_unexpected_recombinations_1U,"try to detect unexpected recombinations with translocations (experimental, must be used with -g, do not use)")->group(group)->level();
app.add_flag("--keep",keep_unsegmented_as_clone,"keep unsegmented reads as clones, taking for junction the complete sequence, to be used on very small datasets (for example --keep -AX 20)")->group(group)->level();
group="Recombination detection, experimental options (do not use)";
app.add_flag("-I",multi_germline_mark,"ignore k-mers common to different germline systems (experimental, must be used with -g, do not use)")->group(group)->level();
"use a unique index for all germline systems (experimental, must be used with -g, do not use)")->group(group)->level();
app.add_flag("-4",multi_germline_unexpected_recombinations_1U,"try to detect unexpected recombinations with translocations (experimental, must be used with -g, do not use)")->group(group)->level();
app.add_flag("--keep",keep_unsegmented_as_clone,"keep unsegmented reads as clones, taking for junction the complete sequence, to be used on very small datasets (for example --keep -AX 20)")->group(group)->level();
"reports and segments all clones (-r 0 --ratio 0 -y "NO_LIMIT" -z "NO_LIMIT"), to be used only on very small datasets (for example -AX 20)")->group(group);
app.add_option("-x",max_reads_processed,
"maximal number of reads to process ('"NO_LIMIT"': no limit, default), only first reads")->group(group)->transform(string_NO_LIMIT);
app.add_option("-X",max_reads_processed_sample,
"maximal number of reads to process ('"NO_LIMIT"': no limit, default), sampled reads")->group(group)->transform(string_NO_LIMIT);
@@ -439,18 +483,17 @@ int main (int argc, char **argv)
app.add_option("-Z",kmer_threshold,"typical number of V genes, selected by k-mer comparison, to compare to the read ('"NO_LIMIT"': all genes, default)",false)
app.add_option("-N",minPts,"minimum required neighbors for automatic clustering",true)->group(group)->level();
app.add_flag("-S",save_comp,"generate and save comparative matrix for clustering")->group(group)->level();
app.add_flag("-L",load_comp,"load comparative matrix for clustering")->group(group)->level();
app.add_option("--forced-edges",forced_edges,"manual clustering -- a file used to force some specific edges")->group(group)->level()->set_type_name("FILE");
...
...
@@ -463,39 +506,8 @@ int main (int argc, char **argv)
"use custom Cost for automatic clustering : format \"match, subst, indels, del_end, homo\" (default "+string_of_cost(DEFAULT_CLUSTER_COST)+")"
)->group(group)->level()->set_type_name("COST");
group="Limits to report a clone (or a window)";
app.add_option("-r",min_reads_clone,"minimal number of reads supporting a clone",true)->group(group);
app.add_option("--ratio",ratio_reads_clone,"minimal percentage of reads supporting a clone",true)->group(group);
group="Limits to further analyze some clones";
app.add_option("-y",max_representatives,
"maximal number of clones computed with a consensus sequence ('"NO_LIMIT"': no limit)",true)->group(group)->transform(string_NO_LIMIT);
"reports and segments all clones (-r 0 --ratio 0 -y "NO_LIMIT" -z "NO_LIMIT"), to be used only on very small datasets (for example -AX 20)")->group(group);
app.add_option("-x",max_reads_processed,
"maximal number of reads to process ('"NO_LIMIT"': no limit, default), only first reads")->group(group)->transform(string_NO_LIMIT);
app.add_option("-X",max_reads_processed_sample,
"maximal number of reads to process ('"NO_LIMIT"': no limit, default), sampled reads")->group(group)->transform(string_NO_LIMIT);
group="Detailed output per read (generally not recommended, large files, but may be used for filtering, as in -uu -X 1000)";
app.add_flag("-U",output_segmented,"output segmented reads (in "SEGMENTED_FILENAME" file)")->group(group);
app.add_flag_function("-u",[&](size_tn){
...
...
@@ -505,27 +517,32 @@ int main (int argc, char **argv)
},R"Z(
-u output unsegmented reads, gathered by unsegmentation cause, except for very short and 'too few V/J' reads (in *)Z"UNSEGMENTED_DETAIL_FILENAMER"Z( files)
-uu output unsegmented reads, gathered by unsegmentation cause, all reads (in *)Z"UNSEGMENTED_DETAIL_FILENAMER"Z( files) (use only for debug)
-uuu output unsegmented reads, all reads, including a )Z"UNSEGMENTED_FILENAMER"Z( file (use only for debug)
)Z")->group(group);
-uuu output unsegmented reads, all reads, including a )Z"UNSEGMENTED_FILENAMER"Z( file (use only for debug))Z")->group(group);
app.add_flag("-K",output_affects,"output detailed k-mer affectation on all reads (in "AFFECTS_FILENAME" file) (use only for debug, for example -KX 100)")->group(group);