code: def _run_wham(inputs, background_bams):
      
      out_file = os.path.join(_sv_workdir(inputs[0]), "%s-wham.vcf.gz" % dd.get_sample_name(inputs[0]))
      if not utils.file_exists(out_file):
          with file_transaction(inputs[0], out_file) as tx_out_file:
              cores = dd.get_cores(inputs[0])
              ref_file = dd.get_ref_file(inputs[0])
              include_chroms = ",".join([c.name for c in ref.file_contigs(ref_file)
                                         if chromhacks.is_autosomal_or_x(c.name)])
              all_bams = ",".join([x["align_bam"] for x in inputs] + background_bams)
              cmd = ("whamg -x {cores} -a {ref_file} -f {all_bams} -c {include_chroms} "
                     "| bgzip -c > {tx_out_file}")
              do.run(cmd.format(**locals()), "WHAM SV caller: %s" % ", ".join(dd.get_sample_name(d) for d in inputs))
      return vcfutils.bgzip_and_index(out_file, inputs[0]["config"])
docs: Run WHAM on a defined set of inputs and targets.