purpose "Error correct reads from a fastq file based on the k-mer frequencies."
package "error_correct_reads"

name "args_t"

option("thread", "t") {
  description "Number of threads"
  uint32; default "1" }
option("min-count", "m") {
  description "Minimum count for a k-mer to be considered \"good\""
  uint32; default "1" }
option("skip", "s") {
  description "Number of bases to skip for start k-mer"
  uint32; default "1" }
option("good", "g") {
  description "Number of good k-mer in a row for anchor"
  uint32; default 2 }
option("anchor-count", "a") {
  description "Minimum count for an anchor k-mer"
  uint32; default 3 }
option("window", "w") {
  description "Size of window"
  uint32; default 10 }
option("error", "e") {
  description "Maximum number of error in a window"
  uint32; default 3 }
option("output", "o") {
  description "Output file prefix"
  string; default "error_corrected"; typestr "prefix" }
option("contaminant") {
  description "Jellyfish database of contaminant k-mers"
  c_string; typestr "path" }
option("trim-contaminant") {
  description "Trim reads containing contaminated k-mers instead of discarding"
  flag; off }
option("homo-trim") {
  description "Trim homo-polymer run at the 3' end" 
  int32 }
option("gzip") {
  description "Gzip output file"
  flag; off }
option("M", "no-mmap") {
  description "Do not memory map the input mer database"
  off }
option("apriori-error-rate") {
  description "Probability of a base being an error"
  double; default 0.01 }
option("poisson-threshold") {
  description "Error probability threshold in Poisson test"
  double; default 1e-6 }
option("cutoff","p") {
  description "Poisson cutoff when there are multiple choices"
  uint32 }
option("qual-cutoff-value", "q") {
  description "Any base above with quality equal or greater is untouched when there are multiple choices"
  uint32 }
option("qual-cutoff-char", "Q") {
  description "Any base above with quality equal or greater is untouched when there are multiple choices"
  string; conflict "qual-cutoff-value" }
option("d", "no-discard") {
  description "Do not discard reads, output a single N"
  off }
option("verbose", "v") {
  description "Be verbose"
  flag; off }
arg("db") {
  description "Mer database"
  c_string; typestr "path" }
arg("sequence") {
  description "Input sequence"
  c_string; typestr "path"; multiple; at_least 1 }
