code: def uniq(args):
      
      p = OptionParser(uniq.__doc__)
      p.set_outfile()
      opts, args = p.parse_args(args)
  
      if len(args) != 1:
          sys.exit(not p.print_help())
  
      fastqfile, = args
      fw = must_open(opts.outfile, "w")
      nduplicates = nreads = 0
      seen = set()
      for rec in iter_fastq(fastqfile):
          nreads += 1
          if rec is None:
              break
          name = rec.name
          if name in seen:
              nduplicates += 1
              continue
          seen.add(name)
          print(rec, file=fw)
      logging.debug("Removed duplicate reads: {}".\
                    format(percentage(nduplicates, nreads)))
docs: %prog uniq fastqfile
  
      Retain only first instance of duplicate reads. Duplicate is defined as
      having the same read name.