code: def get_variants(data, include_germline=False):
      
      data = utils.deepish_copy(data)
      supported = ["precalled", "vardict", "vardict-java", "vardict-perl",
                   "freebayes", "octopus", "strelka2"]
      # Right now mutect2 and mutect do not provide heterozygous germline calls
      # to be useful https://github.com/bcbio/bcbio-nextgen/issues/2464
      # supported += ["mutect2", "mutect"]
      if include_germline:
          supported.insert(1, "gatk-haplotype")
      out = []
      # CWL based input
      if isinstance(data.get("variants"), dict) and "samples" in data["variants"]:
          cur_vs = []
          # Unpack single sample list of files
          if (isinstance(data["variants"]["samples"], (list, tuple)) and
                len(data["variants"]["samples"]) == 1 and isinstance(data["variants"]["samples"][0], (list, tuple))):
              data["variants"]["samples"] = data["variants"]["samples"][0]
          for fname in data["variants"]["samples"]:
              variantcaller = utils.splitext_plus(os.path.basename(fname))[0]
              variantcaller = variantcaller.replace(dd.get_sample_name(data) + "-", "")
              for batch in dd.get_batches(data):
                  variantcaller = variantcaller.replace(batch + "-", "")
              cur_vs.append({"vrn_file": fname, "variantcaller": variantcaller})
          data["variants"] = cur_vs
      for v in data.get("variants", []):
          if v["variantcaller"] in supported and v.get("vrn_file"):
              out.append((supported.index(v["variantcaller"]), v))
      out.sort()
      return [xs[1] for xs in out]
docs: Retrieve set of variant calls to use for heterogeneity analysis.