def test_mendelian_from_ivan_2():
    # AC AA AC mendel
    assert FV.check_mendelian_trio(np.array([0, 1]), np.array([0, 0]),
                                   np.array([0, 1]), 0)

    assert FV.check_mendelian_trio(np.array([0, 1]), np.array([0, 0]),
                                   np.array([0, 1]), 1)
def test_weird_mendel_from_ivan_4():
    # AC AT CT mendel
    assert not FV.check_mendelian_trio(np.array([0, 1]), np.array([0, 2]),
                                       np.array([1, 2]), 0)
    assert FV.check_mendelian_trio(np.array([0, 1]), np.array([0, 2]),
                                   np.array([1, 2]), 1)
    assert FV.check_mendelian_trio(np.array([0, 1]), np.array([0, 2]),
                                   np.array([1, 2]), 2)
def test_denovo_check_5():
    # GG, GG -> AC
    assert FV.check_denovo_trio(np.array([2, 2]), np.array([2, 2]),
                                np.array([0, 1]), 0)
    assert FV.check_denovo_trio(np.array([2, 2]), np.array([2, 2]),
                                np.array([0, 1]), 1)
    assert not FV.check_denovo_trio(np.array([2, 2]), np.array([2, 2]),
                                    np.array([0, 1]), 2)
def test_denovo_check_6():
    # CC,CC -> GC
    assert FV.check_denovo_trio(np.array([1, 1]), np.array([1, 1]),
                                np.array([2, 1]), 2)
    assert not FV.check_denovo_trio(np.array([1, 1]), np.array([1, 1]),
                                    np.array([2, 1]), 1)
    assert not FV.check_denovo_trio(np.array([1, 1]), np.array([1, 1]),
                                    np.array([2, 1]), 0)
def test_omission_check_1():
    # CC, AA -> AA
    assert FV.check_omission_trio(np.array([1, 1]), np.array([0, 0]),
                                  np.array([0, 0]), 1)
    assert not FV.check_omission_trio(np.array([1, 1]), np.array([0, 0]),
                                      np.array([0, 0]), 0)
    assert not FV.check_denovo_trio(np.array([1, 1]), np.array([0, 0]),
                                    np.array([0, 0]), 0)
    assert not FV.check_denovo_trio(np.array([1, 1]), np.array([0, 0]),
                                    np.array([0, 0]), 1)
def test_omission_and_denovo():
    # AA,CC -> AA
    trio = [
        np.array([1, 1]),  # p1
        np.array([1, 1]),  # p2
        np.array([0, 1]),  # ch
    ]

    # FIXME:
    assert not FA.check_omission_trio(*trio, allele_index=1)
    # assert not FA.check_denovo_trio(*trio, allele_index=0)
    # assert FA.check_mendelian_trio(*trio, allele_index=0)

    assert FA.check_denovo_trio(*trio, allele_index=0)
def test_mixed_check_1():
    # AA,CC -> GG
    trio = [
        np.array([1, 1]),
        np.array([0, 0]),
        np.array([2, 2]),
    ]
    assert not FV.check_denovo_trio(*trio, allele_index=0)
    assert not FV.check_denovo_trio(*trio, allele_index=1)
    assert FV.check_denovo_trio(*trio, allele_index=2)

    assert FV.check_omission_trio(*trio, allele_index=0)
    assert FV.check_omission_trio(*trio, allele_index=1)
    assert not FV.check_omission_trio(*trio, allele_index=2)

    assert not FV.check_mendelian_trio(*trio, allele_index=0)
    assert not FV.check_mendelian_trio(*trio, allele_index=1)
    assert not FV.check_mendelian_trio(*trio, allele_index=2)
def test_mixed_check_4():
    # AA,CC -> AG
    trio = [
        np.array([1, 1]),  # p1
        np.array([0, 0]),  # p2
        np.array([0, 2]),  # ch
    ]
    assert not FV.check_denovo_trio(*trio, allele_index=0)
    assert not FV.check_denovo_trio(*trio, allele_index=1)
    assert FV.check_denovo_trio(*trio, allele_index=2)

    assert not FV.check_omission_trio(*trio, allele_index=0)
    assert FV.check_omission_trio(*trio, allele_index=1)
    assert not FV.check_omission_trio(*trio, allele_index=2)

    assert FV.check_mendelian_trio(*trio, allele_index=0)
    assert not FV.check_mendelian_trio(*trio, allele_index=1)
    assert not FV.check_mendelian_trio(*trio, allele_index=2)
Example #9
0
def test_allele_best_state(
    chromosome,
    position,
    reference,
    alternative,
    allele_index,
    allele_count,
    genotype,
    expected,
    sample_family,
):

    fa = FamilyAllele(
        SummaryAllele(
            chromosome, position, reference, alternative, 0, allele_index, {},
        ),
        sample_family,
        genotype,
        None,
    )
    fa.update_attributes({"allele_count": allele_count})
    assert np.array_equal(fa.best_state, expected)
def test_super_weird_denovo_omission_mix_from_ivan_2():
    # AA AC TG denovo
    trio = [
        np.array([0, 0]),
        np.array([0, 1]),
        np.array([2, 3]),
    ]
    assert FV.check_omission_trio(*trio, allele_index=0)
    assert not FV.check_omission_trio(*trio, allele_index=1)
    assert not FV.check_omission_trio(*trio, allele_index=2)
    assert not FV.check_omission_trio(*trio, allele_index=3)

    assert not FV.check_denovo_trio(*trio, allele_index=0)
    assert not FV.check_denovo_trio(*trio, allele_index=1)
    assert FV.check_denovo_trio(*trio, allele_index=2)
    assert FV.check_denovo_trio(*trio, allele_index=3)
def test_weird_denovo_from_ivan_1_4():
    # AC AA GA denovo
    assert FV.check_denovo_trio(np.array([0, 1]), np.array([0, 0]),
                                np.array([2, 0]), 2)
    assert not FV.check_denovo_trio(np.array([0, 1]), np.array([0, 0]),
                                    np.array([2, 0]), 0)
    assert not FV.check_denovo_trio(np.array([0, 1]), np.array([0, 0]),
                                    np.array([2, 0]), 1)
    assert not FV.check_omission_trio(np.array([0, 1]), np.array([0, 0]),
                                      np.array([2, 0]), 2)
    assert not FV.check_omission_trio(np.array([0, 1]), np.array([0, 0]),
                                      np.array([2, 0]), 0)
    assert not FV.check_omission_trio(np.array([0, 1]), np.array([0, 0]),
                                      np.array([2, 0]), 1)
def test_weird_denovo_from_ivan_4():
    # AC AC CG denovo
    assert FV.check_denovo_trio(np.array([0, 1]), np.array([0, 1]),
                                np.array([1, 2]), 2)
    assert not FV.check_denovo_trio(np.array([0, 1]), np.array([0, 1]),
                                    np.array([1, 2]), 0)
    assert not FV.check_denovo_trio(np.array([0, 1]), np.array([0, 1]),
                                    np.array([1, 2]), 1)
    assert not FV.check_omission_trio(np.array([0, 1]), np.array([0, 1]),
                                      np.array([1, 2]), 2)
    assert not FV.check_omission_trio(np.array([0, 1]), np.array([0, 1]),
                                      np.array([1, 2]), 0)
    assert not FV.check_omission_trio(np.array([0, 1]), np.array([0, 1]),
                                      np.array([1, 2]), 1)
def test_denovo_check_4():
    # CC, CC -> AA
    assert FV.check_denovo_trio(np.array([1, 1]), np.array([1, 1]),
                                np.array([0, 0]), 0)
    assert not FV.check_denovo_trio(np.array([1, 1]), np.array([1, 1]),
                                    np.array([0, 0]), 1)
def test_denovo_check_1():
    # AA, AA -> AC
    assert FV.check_denovo_trio(np.array([0, 0]), np.array([0, 0]),
                                np.array([0, 1]), 1)
    assert not FV.check_denovo_trio(np.array([0, 0]), np.array([0, 0]),
                                    np.array([0, 1]), 0)
def test_omission_check_4():
    # AA,CC -> CC
    assert FV.check_omission_trio(np.array([1, 1]), np.array([0, 0]),
                                  np.array([1, 1]), 0)
    assert not FV.check_omission_trio(np.array([1, 1]), np.array([0, 0]),
                                      np.array([1, 1]), 1)
def test_mendelian_from_ivan_5():
    # AC AC CC mendel
    assert FV.check_mendelian_trio(np.array([0, 1]), np.array([0, 1]),
                                   np.array([1, 1]), 1)
    assert not FV.check_mendelian_trio(np.array([0, 1]), np.array([0, 1]),
                                       np.array([1, 1]), 0)
def test_denovo_and_omission_from_ivan_1():
    # AA AA AC denovo
    assert FV.check_denovo_trio(np.array([0, 0]), np.array([0, 0]),
                                np.array([0, 1]), 1)
    assert not FV.check_denovo_trio(np.array([0, 0]), np.array([0, 0]),
                                    np.array([0, 1]), 0)
def test_denovo_check_2():
    # AA, AA -> CA
    assert FV.check_denovo_trio(np.array([0, 0]), np.array([0, 0]),
                                np.array([1, 0]), 1)
    assert not FV.check_denovo_trio(np.array([0, 0]), np.array([0, 0]),
                                    np.array([1, 0]), 0)
def test_denovo_and_omission_from_ivan_4():
    # AA CC CC omission
    assert FV.check_omission_trio(np.array([0, 0]), np.array([1, 1]),
                                  np.array([1, 1]), 0)
    assert not FV.check_omission_trio(np.array([0, 0]), np.array([1, 1]),
                                      np.array([1, 1]), 1)