code: def run_haplotyper(align_bams, items, ref_file, assoc_files,
                       region=None, out_file=None):
      
      if out_file is None:
          out_file = "%s-variants.vcf.gz" % utils.splitext_plus(align_bams[0])[0]
      if not utils.file_exists(out_file):
          variant_regions = bedutils.population_variant_regions(items, merged=True)
          interval = _get_interval(variant_regions, region, out_file, items)
          with file_transaction(items[0], out_file) as tx_out_file:
              dbsnp = "--dbsnp %s" % (assoc_files.get("dbsnp")) if "dbsnp" in assoc_files else ""
              bams = " ".join(["-i %s" % x for x in align_bams])
              license = license_export(items[0])
              cores = dd.get_num_cores(items[0])
              out_mode = "--emit_mode gvcf" if joint.want_gvcf(items) else ""
              cmd = ("{license}sentieon driver -t {cores} -r {ref_file} "
                     "{bams} {interval} --algo Haplotyper {out_mode} {dbsnp} {tx_out_file}")
              do.run(cmd.format(**locals()), "Sentieon Haplotyper")
      return out_file
docs: Call variants with Sentieon's haplotyper (GATK HaplotypeCaller like).