code: def run_freebayes(align_bams, items, ref_file, assoc_files, region=None,
                    out_file=None):
      
      items = shared.add_highdepth_genome_exclusion(items)
      if is_paired_analysis(align_bams, items):
          paired = get_paired_bams(align_bams, items)
          if not paired.normal_bam:
              call_file = _run_freebayes_caller(align_bams, items, ref_file,
                                                assoc_files, region, out_file, somatic=paired)
          else:
              call_file = _run_freebayes_paired([paired.tumor_bam, paired.normal_bam],
                                                [paired.tumor_data, paired.normal_data],
                                                ref_file, assoc_files, region, out_file)
      else:
          vcfutils.check_paired_problems(items)
          call_file = _run_freebayes_caller(align_bams, items, ref_file,
                                            assoc_files, region, out_file)
  
      return call_file
docs: Run FreeBayes variant calling, either paired tumor/normal or germline calling.