code: def gatk_realigner_targets(runner, align_bam, ref_file, config, dbsnp=None,
                             region=None, out_file=None, deep_coverage=False,
                             variant_regions=None, known_vrns=None):
      
      if not known_vrns:
          known_vrns = {}
      if out_file:
          out_file = "%s.intervals" % os.path.splitext(out_file)[0]
      else:
          out_file = "%s-realign.intervals" % os.path.splitext(align_bam)[0]
      # check only for file existence; interval files can be empty after running
      # on small chromosomes, so don't rerun in those cases
      if not os.path.exists(out_file):
          with file_transaction(config, out_file) as tx_out_file:
              logger.debug("GATK RealignerTargetCreator: %s %s" %
                           (os.path.basename(align_bam), region))
              params = ["-T", "RealignerTargetCreator",
                        "-I", align_bam,
                        "-R", ref_file,
                        "-o", tx_out_file,
                        "-l", "INFO",
                        ]
              region = subset_variant_regions(variant_regions, region, tx_out_file)
              if region:
                  params += ["-L", region, "--interval_set_rule", "INTERSECTION"]
              if known_vrns.get("train_indels"):
                  params += ["--known", known_vrns["train_indels"]]
              if deep_coverage:
                  params += ["--mismatchFraction", "0.30",
                             "--maxIntervalSize", "650"]
              runner.run_gatk(params, memscale={"direction": "decrease", "magnitude": 2})
      return out_file
docs: Generate a list of interval regions for realignment around indels.