code: def _merge_and_bgzip(orig_files, out_file, base_file, ext=""):
      
      assert out_file.endswith(".gz")
      full_file = out_file.replace(".gz", "")
      run_file = "%s-merge.bash" % utils.splitext_plus(base_file)[0]
  
      cmds = ["set -e\n"]
      for i, fname in enumerate(orig_files):
          cmd = ("""zcat %s | awk '{print (NR%%4 == 1) ? "@%s_" ++i "%s" : $0}' >> %s\n"""
                 % (fname, i, ext, full_file))
          cmds.append(cmd)
      cmds.append("bgzip -f %s\n" % full_file)
  
      with open(run_file, "w") as out_handle:
          out_handle.write("".join("".join(cmds)))
      do.run([do.find_bash(), run_file], "Rename, merge and bgzip CRAM fastq output")
      assert os.path.exists(out_file) and not _is_gzip_empty(out_file)
docs: Merge a group of gzipped input files into a final bgzipped output.
  
      Also handles providing unique names for each input file to avoid
      collisions on multi-region output. Handles renaming with awk magic from:
      https://www.biostars.org/p/68477/