Takes a list of VariantProbeCoverages and returns a Call for the Variant.
            Note, in the simplest case the list will be of length one. However, we may be typing the
            Variant on multiple backgrouds leading to multiple VariantProbes for a single Variant.

def type(self, variant_probe_coverages, variant=None):
        """
            Takes a list of VariantProbeCoverages and returns a Call for the Variant.
            Note, in the simplest case the list will be of length one. However, we may be typing the
            Variant on multiple backgrouds leading to multiple VariantProbes for a single Variant.

        """
        if not isinstance(variant_probe_coverages, list):
            variant_probe_coverages = [variant_probe_coverages]
        calls = []
        for variant_probe_coverage in variant_probe_coverages:
            calls.append(
                self._type_variant_probe_coverages(
                    variant_probe_coverage, variant))
        hom_alt_calls = [c for c in calls if sum(c["genotype"]) > 1]
        het_calls = [c for c in calls if sum(c["genotype"]) == 1]
        if hom_alt_calls:
            hom_alt_calls.sort(key=lambda x: x["info"]["conf"], reverse=True)
            return hom_alt_calls[0]
        elif het_calls:
            het_calls.sort(key=lambda x: x["info"]["conf"], reverse=True)
            return het_calls[0]
        else:
            calls.sort(key=lambda x: x["info"]["conf"], reverse=True)
            return calls[0]