<<" -d try to detect several D (experimental)"<<endl
<<" -2 try to detect unexpected recombinations (must be used with -g)"<<endl
<<endl;
if(advanced)
cerr<<"Experimental options (do not use)"<<endl
<<" -I ignore k-mers common to different germline systems (experimental, must be used with -g, do not use)"<<endl
<<" -1 use a unique index for all germline systems (experimental, must be used with -g, do not use)"<<endl
<<" -4 try to detect unexpected recombinations with translocations (experimental, must be used with -g, do not use)"<<endl
<<" -! keep unsegmented reads as clones, taking for junction the complete sequence, to be used on very small datasets (for example -!AX 20)"<<endl
<<endl
<<"Window prediction"<<endl
#ifndef NO_SPACED_SEEDS
<<" (use either -s or -k option, but not both)"<<endl
<<" (all these options, except -w, are overriden when using -g)"<<endl
<<" -s <string> spaced seed used for the V/J affectation"<<endl
<<" (default: #####-#####, ######-######, #######-#######, depends on germline)"<<endl
#endif
<<" -k <int> k-mer size used for the V/J affectation (default: 10, 12, 13, depends on germline)"<<endl
#ifndef NO_SPACED_SEEDS
<<" (using -k option is equivalent to set with -s a contiguous seed with only '#' characters)"<<endl
#endif
<<" -w <int> w-mer size used for the length of the extracted window (default: "<<DEFAULT_W<<") ('"<<NO_LIMIT<<"': use all the read, no window clustering)"<<endl
<<" -e <float> maximal e-value for determining if a V-J segmentation can be trusted (default: "<<THRESHOLD_NB_EXPECTED<<")"<<endl
<<" -t <int> trim V and J genes (resp. 5' and 3' regions) to keep at most <int> nt (default: "<<DEFAULT_TRIM<<") (0: no trim)"<<endl
<<endl
<<"Labeled sequences (windows related to these sequences will be kept even if -r/-% thresholds are not reached)"<<endl
<<" -W <sequence> label the given sequence"<<endl
<<" -l <file> label a set of sequences given in <file>"<<endl
<<" -F filter -- keep only the windows related to the labeled sequences"<<endl
<<endl;
cerr<<"Limits to report a clone (or a window)"<<endl
<<" -r <nb> minimal number of reads supporting a clone (default: "<<DEFAULT_MIN_READS_CLONE<<")"<<endl
<<" -% <ratio> minimal percentage of reads supporting a clone (default: "<<DEFAULT_RATIO_READS_CLONE<<")"<<endl
<<endl
<<"Limits to further analyze some clones"<<endl
<<" -y <nb> maximal number of clones computed with a consensus sequence ('"<<NO_LIMIT<<"': no limit) (default: "<<DEFAULT_MAX_REPRESENTATIVES<<")"<<endl
<<" -z <nb> maximal number of clones to be analyzed with a full V(D)J designation ('"<<NO_LIMIT<<"': no limit, do not use) (default: "<<DEFAULT_MAX_CLONES<<")"<<endl
<<" -A reports and segments all clones (-r 0 -% 0 -y "<<NO_LIMIT<<" -z "<<NO_LIMIT<<"), to be used only on very small datasets (for example -AX 20)"<<endl
<<" -x <nb> maximal number of reads to process ('"<<NO_LIMIT<<"': no limit, default), only first reads"<<endl
<<" -X <nb> maximal number of reads to process ('"<<NO_LIMIT<<"': no limit, default), sampled reads"<<endl
<<" -S generate and save comparative matrix for clustering"<<endl
<<" -L load comparative matrix for clustering"<<endl
<<" -C <string> use custom Cost for automatic clustering : format \"match, subst, indels, del_end, homo\" (default "<<DEFAULT_CLUSTER_COST<<" )"<<endl
<<endl;
cerr<<"Detailed output per read (generally not recommended, large files, but may be used for filtering, as in -uu -X 1000)"<<endl
<<" -U output segmented reads (in "<<SEGMENTED_FILENAME<<" file)"<<endl
<<" -u output unsegmented reads, gathered by unsegmentation cause, except for very short and 'too few V/J' reads (in *"<<UNSEGMENTED_DETAIL_FILENAME<<" files)"<<endl
<<" -uu output unsegmented reads, gathered by unsegmentation cause, all reads (in *"<<UNSEGMENTED_DETAIL_FILENAME<<" files) (use only for debug)"<<endl
<<" -uuu output unsegmented reads, all reads, including a "<<UNSEGMENTED_FILENAME<<" file (use only for debug)"<<endl
<<" -K output detailed k-mer affectation on all reads (in "<<AFFECTS_FILENAME<<" file) (use only for debug, for example -KX 100)"<<endl
"multiple locus/germlines, shortcut for '-g <path>/" + DEFAULT_MULTI_GERMLINE_FILE + "'",
<< " processes human TRA, TRB, TRG, TRD, IGH, IGK and IGL locus, possibly with some incomplete/unusal recombinations" << endl
*/
app.add_option("-V",v_reps_V,"custom V germline multi-fasta file")->group(group);
app.add_option("-D",v_reps_D,"custom D germline multi-fasta file (and resets -m and -w options), will segment into V(D)J components")->group(group);
app.add_option("-J",v_reps_J,"custom V germline multi-fasta file")->group(group);
case'I':
multi_germline_mark=true;
break;
group="Locus/recombinations";
app.add_flag("-d",several_D,"try to detect several D (experimental)")->group(group);
app.add_flag("--method-2",multi_germline_unexpected_recombinations_12,"try to detect unexpected recombinations (must be used with -g)")->group(group);
case'1':
multi_germline_one_index_per_germline=false;
break;
case'2':
multi_germline_unexpected_recombinations_12=true;
break;
// if (advanced)
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);
// "use a unique index for all germline systems (experimental, must be used with -g, do not use)") -> group(group);
app.add_flag("--method-4",multi_germline_unexpected_recombinations_1U,"try to detect unexpected recombinations with translocations (experimental, must be used with -g, do not use)")->group(group);
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 -!AX 20)")->group(group);
case'4':
multi_germline_unexpected_recombinations_1U=true;
break;
group="Window prediction";
#ifndef NO_SPACED_SEEDS
/*
<< " (use either -s or -k option, but not both)" << endl
<< " (all these options, except -w, are overriden when using -g)" << endl
<< " -s <string> spaced seed used for the V/J affectation" << endl
"maximal number of clones computed with a consensus sequence ('"NO_LIMIT"': no limit)",true)->group(group);
app.add_option("-z",max_clones,//
// [](CLI::results_t res) {
// max_clones = atoi_NO_LIMIT(optarg);
// if ((max_representatives < max_clones) && (max_representatives != NO_LIMIT_VALUE))
// max_representatives = max_clones ;
// }
"maximal number of clones to be analyzed with a full V(D)J designation ('"NO_LIMIT"': no limit, do not use)",true)->group(group);
/*
app.add_flag_function("-A", xxxx,
ratio_reads_clone = 0 ;
min_reads_clone = 1 ;
max_representatives = NO_LIMIT_VALUE ;
max_clones = NO_LIMIT_VALUE ;
break;
case'X':
max_reads_processed_sample=atoi_NO_LIMIT(optarg);
break;
case'x':
max_reads_processed=atoi_NO_LIMIT(optarg);
break;
// Labels
case'W':
windows_labels[string(optarg)]=string("-W");
break;
"reports and segments all clones (-r 0 -% 0 -y " NO_LIMIT " -z " NO_LIMIT "), to be used only on very small datasets (for example -AX 20)") -> group(group);
"maximal number of reads to process ('"NO_LIMIT"': no limit, default), sampled reads")->group(group);
case'F':
only_labeled_windows=true;
break;
// Clustering
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);
// << " -u output unsegmented reads, gathered by unsegmentation cause, except for very short and 'too few V/J' reads (in *" << UNSEGMENTED_DETAIL_FILENAME << " files)" << endl
// << " -uu output unsegmented reads, gathered by unsegmentation cause, all reads (in *" << UNSEGMENTED_DETAIL_FILENAME << " files) (use only for debug)" << endl
// << " -uuu output unsegmented reads, all reads, including a " << UNSEGMENTED_FILENAME << " file (use only for debug)" << endl
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);