code: def shuffle(args):
      
      p = OptionParser(shuffle.__doc__)
      p.set_tag()
      opts, args = p.parse_args(args)
  
      if len(args) != 2:
          sys.exit(not p.print_help())
  
      p1, p2 = args
      pairsfastq = pairspf((p1, p2)) + ".fastq"
      tag = opts.tag
  
      p1fp = must_open(p1)
      p2fp = must_open(p2)
      pairsfw = must_open(pairsfastq, "w")
      nreads = 0
      while True:
          a = list(islice(p1fp, 4))
          if not a:
              break
  
          b = list(islice(p2fp, 4))
          if tag:
              name = a[0].rstrip()
              a[0] = name + "/1\n"
              b[0] = name + "/2\n"
  
          pairsfw.writelines(a)
          pairsfw.writelines(b)
          nreads += 2
  
      pairsfw.close()
      extra = nreads * 2 if tag else 0
      checkShuffleSizes(p1, p2, pairsfastq, extra=extra)
  
      logging.debug("File `{0}` verified after writing {1} reads.".\
                       format(pairsfastq, nreads))
      return pairsfastq
docs: %prog shuffle p1.fastq p2.fastq
  
      Shuffle pairs into interleaved format.