code: def prepare_intervals(data, region_file, work_dir):
      
      target_file = os.path.join(work_dir, "%s-target.interval_list" % dd.get_sample_name(data))
      if not utils.file_uptodate(target_file, region_file):
          with file_transaction(data, target_file) as tx_out_file:
              params = ["-T", "PreprocessIntervals", "-R", dd.get_ref_file(data),
                        "--interval-merging-rule", "OVERLAPPING_ONLY",
                        "-O", tx_out_file]
              if dd.get_coverage_interval(data) == "genome":
                  params += ["--bin-length", "1000", "--padding", "0"]
              else:
                  params += ["-L", region_file, "--bin-length", "0", "--padding", "250"]
              _run_with_memory_scaling(params, tx_out_file, data)
      return target_file
docs: Prepare interval regions for targeted and gene based regions.