code: def _callable_from_gvcf(data, vrn_file, out_dir):
      
      methods = {"freebayes": "freebayes", "platypus": "platypus",
                 "gatk-haplotype": "gatk"}
      gvcf_type = methods.get(dd.get_variantcaller(data))
      if gvcf_type:
          out_file = os.path.join(out_dir, "%s-gcvf-coverage.bed" %
                                  utils.splitext_plus(os.path.basename(vrn_file))[0])
          if not utils.file_uptodate(out_file, vrn_file):
              with file_transaction(data, out_file) as tx_out_file:
                  cmd = ("gvcf_regions.py --gvcf_type {gvcf_type} {vrn_file} "
                         "| bedtools merge > {tx_out_file}")
                  do.run(cmd.format(**locals()), "Convert gVCF to BED file of callable regions")
          return out_file
docs: Retrieve callable regions based on ref call regions in gVCF.
  
      Uses https://github.com/lijiayong/gvcf_regions