def _match_one_allele(true_allele): if true_allele == truth_variant.reference_bases: return 0 else: simplifed_true_allele = variant_utils.simplify_alleles( truth_variant.reference_bases, true_allele) for alt_index, alt_allele in enumerate(candidate_variant.alternate_bases): simplifed_alt_allele = variant_utils.simplify_alleles( candidate_variant.reference_bases, alt_allele) if simplifed_true_allele == simplifed_alt_allele: return alt_index + 1 # If nothing matched, we don't have this alt, so the alt allele index for # should be 0 (i.e., not any alt). return 0
def _match_one_allele(true_allele): if true_allele == truth_variant.reference_bases: return 0 else: simplified_true_allele = variant_utils.simplify_alleles( truth_variant.reference_bases, true_allele) for alt_index, alt_allele in enumerate(candidate_variant.alternate_bases): simplified_alt_allele = variant_utils.simplify_alleles( candidate_variant.reference_bases, alt_allele) if simplified_true_allele == simplified_alt_allele: return alt_index + 1 # If nothing matched, we don't have this alt, so the alt allele index for # should be 0 (i.e., not any alt). return 0
def simplify_alleles(variant): """Replaces the alleles in variants with their simplified versions. This function takes a variant and replaces its ref and alt alleles with those produced by a call to variant_utils.simplify_alleles() to remove common postfix bases in the alleles that may be present due to pruning away alleles. Args: variant: learning.genomics.genomics.Variant proto we want to simplify. Returns: variant with its ref and alt alleles replaced with their simplified equivalents. """ simplified_alleles = variant_utils.simplify_alleles( variant.reference_bases, *variant.alternate_bases) variant.reference_bases = simplified_alleles[0] variant.alternate_bases[:] = simplified_alleles[1:] variant.end = variant.start + len(variant.reference_bases) return variant
def simplify_alleles(variant): """Replaces the alleles in variants with their simplified versions. This function takes a variant and replaces its ref and alt alleles with those produced by a call to variant_utils.simplify_alleles() to remove common postfix bases in the alleles that may be present due to pruning away alleles. Args: variant: learning.genomics.genomics.Variant proto we want to simplify. Returns: variant with its ref and alt alleles replaced with their simplified equivalents. """ simplified_alleles = variant_utils.simplify_alleles(variant.reference_bases, *variant.alternate_bases) variant.reference_bases = simplified_alleles[0] variant.alternate_bases[:] = simplified_alleles[1:] variant.end = variant.start + len(variant.reference_bases) return variant
def test_simplify_alleles(self, alleles, expected): self.assertEqual(variant_utils.simplify_alleles(*alleles), tuple(expected)) self.assertEqual( variant_utils.simplify_alleles(*reversed(alleles)), tuple(reversed(expected)))