code: def correct(args):
      
      p = OptionParser(correct.__doc__)
      p.set_cpus()
      opts, args = p.parse_args(args)
  
      if len(args) < 1:
          sys.exit(not p.print_help())
  
      lstfile = "reads2cor.lst"
      fw = open(lstfile, "w")
      print("\n".join(x for x in args if x[:2] == "PE"), file=fw)
      fw.close()
  
      p1 = args[0]
      offset = guessoffset([p1])
      cpus = opts.cpus
  
      freq = "output.freq.cz"
      freqlen = freq + ".len"
      if need_update(args, (freq, freqlen)):
          cmd = "KmerFreq_AR_v2.0 -k 17 -c -1 -q {0}".format(offset)
          cmd += " -m 1 -t {0}".format(cpus)
          cmd += " -p output {0}".format(lstfile)
          sh(cmd)
  
      fw = open(lstfile, "w")
      print("\n".join(args), file=fw)
      fw.close()
  
      cmd = "Corrector_AR_v2.0 -k 17 -l 3 -m 5 -c 5 -a 0 -e 1 -w 0 -r 45"
      cmd += " -Q {0} -q 30 -x 8 -t {1} -o 1 ".format(offset, cpus)
      cmd += " {0} {1} {2}".format(freq, freqlen, lstfile)
      sh(cmd)
docs: %prog correct *.fastq
  
      Correct reads using ErrorCorrection. Only PE will be used to build the K-mer
      table.