code: def _fix_gatk_header(exist_files, out_file, config):
      
      from bcbio.variation import ploidy
      c, base_file = exist_files[0]
      replace_file = base_file
      items = [{"config": config}]
      if ploidy.get_ploidy(items, region=(c, 1, 2)) == 1:
          for c, x in exist_files[1:]:
              if ploidy.get_ploidy(items, (c, 1, 2)) > 1:
                  replace_file = x
                  break
      base_fix_file = os.path.join(os.path.dirname(out_file),
                                   "%s-fixheader%s" % utils.splitext_plus(os.path.basename(base_file)))
      with file_transaction(config, base_fix_file) as tx_out_file:
          header_file = "%s-header.vcf" % utils.splitext_plus(tx_out_file)[0]
          do.run("zgrep ^# %s > %s"
                  % (replace_file, header_file), "Prepare header file for merging")
          resources = config_utils.get_resources("picard", config)
          ropts = []
          if "options" in resources:
              ropts += [str(x) for x in resources.get("options", [])]
          do.run("%s && picard FixVcfHeader HEADER=%s INPUT=%s OUTPUT=%s %s" %
                 (utils.get_java_clprep(), header_file, base_file, base_fix_file, " ".join(ropts)),
                 "Reheader initial VCF file in merge")
      bgzip_and_index(base_fix_file, config)
      return [base_fix_file] + [x for (c, x) in exist_files[1:]]
docs: Ensure consistent headers for VCF concatenation.
  
      Fixes problems for genomes that start with chrM by reheadering the first file.
      These files do haploid variant calling which lack the PID phasing key/value
      pair in FORMAT, so initial chrM samples cause errors during concatenation
      due to the lack of header merging. This fixes this by updating the first header.