code: def _square_batch_bcbio_variation(data, region, bam_files, vrn_files, out_file,
                                    todo="square"):
      
      ref_file = tz.get_in(("reference", "fasta", "base"), data)
      cores = tz.get_in(("config", "algorithm", "num_cores"), data, 1)
      resources = config_utils.get_resources("bcbio-variation-recall", data["config"])
      # adjust memory by cores but leave room for run program memory
      memcores = int(math.ceil(float(cores) / 5.0))
      jvm_opts = config_utils.adjust_opts(resources.get("jvm_opts", ["-Xms250m", "-Xmx2g"]),
                                          {"algorithm": {"memory_adjust": {"direction": "increase",
                                                                           "magnitude": memcores}}})
      # Write unique VCFs and BAMs to input file
      input_file = "%s-inputs.txt" % os.path.splitext(out_file)[0]
      with open(input_file, "w") as out_handle:
          out_handle.write("\n".join(sorted(list(set(vrn_files)))) + "\n")
          if todo == "square":
              out_handle.write("\n".join(sorted(list(set(bam_files)))) + "\n")
      variantcaller = tz.get_in(("config", "algorithm", "jointcaller"), data).replace("-joint", "")
      cmd = ["bcbio-variation-recall", todo] + jvm_opts + broad.get_default_jvm_opts() + \
            ["-c", cores, "-r", bamprep.region_to_gatk(region)]
      if todo == "square":
          cmd += ["--caller", variantcaller]
      cmd += [out_file, ref_file, input_file]
      bcbio_env = utils.get_bcbio_env()
      cmd = " ".join(str(x) for x in cmd)
      do.run(cmd, "%s in region: %s" % (cmd, bamprep.region_to_gatk(region)), env=bcbio_env)
      return out_file
docs: Run squaring or merging analysis using bcbio.variation.recall.