Esempio n. 1
0
def test_comp_het_one_parent():
    mom._i = 0
    kid._i = 1
    kid.dad = None
    kid.mom = None
    efam = EvalFamily(Family([mom, kid], 'pair_mom'))
    efam.gt_types = [Family.HET] * 2
    res = efam.comp_het_pair([Family.HET] * 2, ["A/C"] * 2,
                             [Family.HET] * 2, ["A/C"] * 2,
                             [False] * 2, [False] * 2,
                             "A", "C", "A", "C")
    assert res['candidate']
    assert res['priority'] == 3, res['priority']

    res = efam.comp_het_pair([Family.HOM_REF, Family.HET] * 2, ["A/A", "A/C"],
                             [Family.HET, Family.HET], ["A/C"] * 2,
                             [False] * 2, [False] * 2,
                             "A", "C", "A", "C")
    assert res['candidate']
    assert res['priority'] == 2, res['priority']


    res = efam.comp_het_pair([Family.HOM_REF, Family.HOM_REF] * 2, ["A/A", "A/A"],
                             [Family.HET, Family.HET], ["A/C"] * 2,
                             [False] * 2, [False] * 2,
                             "A", "C", "A", "C")
    assert not res['candidate']
Esempio n. 2
0
def test_comp_het_one_parent_2kids():
    """
    test that we cant have a candidate when a parent is HOM_REF at both sites.
    """
    mom._i = 0
    kid._i = 1
    kid2._i = 2
    kid.dad = None
    kid.mom = None
    kid.mom = mom
    efam = EvalFamily(Family([mom, kid, kid2], '2kids'))
    efam.gt_types = [Family.HOM_REF, Family.HET, Family.HET]

    res = efam.comp_het_pair([Family.HOM_REF, Family.HET, Family.HET],
                             ["T/T", "T/C", "T/C"],
                             [Family.HOM_REF, Family.HET, Family.HET],
                             ["A/A", "A/C", "A/C"], [False] * 3, [False] * 3,
                             "T",
                             "C",
                             "A",
                             "C",
                             fast_mode=False,
                             allow_unaffected=True)

    assert not res['candidate'], res
Esempio n. 3
0
def test_comphet_pattern():
    fam = make_fam2()
    efam = EvalFamily(fam)
    assert [f.affected for f in efam.subjects] == [False, True, True, False, True, False]
    gt_types1 = [Family.HOM_REF, Family.HET, Family.HET, Family.HOM_REF, Family.HET, Family.HOM_REF]
    gt_types2 = [Family.HOM_REF, Family.HET, Family.HET, Family.HOM_REF, Family.HET, Family.HOM_REF]
    efam.gt_types = gt_types1
    gt_bases1 = ["A/C", "A/A", "A/C", "A/A", "A/A", "A/C", "A/A"]
    gt_bases2 = ["A/C", "A/A", "A/C", "A/A", "A/A", "A/C", "A/A"]
    res = efam.comp_het_pair(gt_types1, gt_bases1, gt_types2, gt_bases2)
Esempio n. 4
0
def test_comp_het_singleton():
    kid = Sample('kid', affected=True)

    efam = EvalFamily(Family([kid], 'singleton'))
    efam.gt_types = [Family.HET]

    res = efam.comp_het_pair([Family.HET], ["A/C"], [Family.HET], ["A/C"],
            [False], [False], "A", "C", "A", "C")

    assert res['candidate']
    assert res['priority'] == 2, res
Esempio n. 5
0
def test_comp_het_singleton():
    kid = Sample('kid', affected=True)

    efam = EvalFamily(Family([kid], 'singleton'))
    efam.gt_types = [Family.HET]

    res = efam.comp_het_pair([Family.HET], ["A/C"], [Family.HET], ["A/C"],
                             [False], [False], "A", "C", "A", "C")

    assert res['candidate']
    assert res['priority'] == 2, res
Esempio n. 6
0
def test_comp_het_all_hets():

    efam = EvalFamily(Family([dad, mom, kid], 'triox'))

    efam.gt_types = [Family.HET] * 3

    res = efam.comp_het_pair([Family.HET] * 3, ["A/C"] * 3,
                             [Family.HET] * 3, ["A/C"] * 3,
            [False] * 3, [False] * 3, "A", "C", "A", "C")

    assert res['candidate']
    assert res['priority'] == 3
Esempio n. 7
0
def test_comp_het_all_hets():

    efam = EvalFamily(Family([dad, mom, kid], 'triox'))

    efam.gt_types = [Family.HET] * 3

    res = efam.comp_het_pair([Family.HET] * 3, ["A/C"] * 3, [Family.HET] * 3,
                             ["A/C"] * 3, [False] * 3, [False] * 3, "A", "C",
                             "A", "C")

    assert res['candidate']
    assert res['priority'] == 3
Esempio n. 8
0
def test_comp_het_missing():

    fam = make_fam1()
    efam = EvalFamily(fam)
    assert [f.affected for f in efam.subjects] == [False, False, True, False, False, False]
    gt_types1 = [Family.HOM_REF, Family.HET, Family.HET, Family.HOM_REF, Family.HET, Family.HOM_REF]
    gt_types2 = [Family.HET, Family.HOM_REF, Family.HET, Family.HOM_REF, Family.HOM_REF, Family.HOM_REF]
    gt_bases1 = ["A/A", "A/C", ".", "A/A", "A/A", "A/C", "A/A"]
    gt_bases2 = ["A/C", "A/A", "A/C", "A/A", "A/A", "A/A", "A/A"]
    gt_phases = [False] * len(gt_bases2)
    efam.gt_types = gt_types1

    res = efam.comp_het_pair(gt_types1, gt_bases1, gt_types2, gt_bases2,
                             gt_phases, gt_phases, "A", "C", "A", "C")
    assert res['candidate'] is False, res
Esempio n. 9
0
def test_comp_het_one_parent():
    mom._i = 0
    kid._i = 1
    kid.dad = None
    kid.mom = None
    efam = EvalFamily(Family([mom, kid], 'pair_mom'))
    efam.gt_types = [Family.HET] * 2
    res = efam.comp_het_pair([Family.HET] * 2, ["A/C"] * 2, [Family.HET] * 2,
                             ["A/C"] * 2, [False] * 2, [False] * 2, "A", "C",
                             "A", "C")
    assert res['candidate']
    assert res['priority'] == 3, res['priority']

    res = efam.comp_het_pair([Family.HOM_REF, Family.HET] * 2, ["A/A", "A/C"],
                             [Family.HET, Family.HET], ["A/C"] * 2,
                             [False] * 2, [False] * 2, "A", "C", "A", "C")
    assert res['candidate']
    assert res['priority'] == 2, res['priority']

    res = efam.comp_het_pair([Family.HOM_REF, Family.HOM_REF] * 2,
                             ["A/A", "A/A"], [Family.HET, Family.HET],
                             ["A/C"] * 2, [False] * 2, [False] * 2, "A", "C",
                             "A", "C")
    assert not res['candidate']
Esempio n. 10
0
def test_comphet_pattern():
    fam = make_fam2()
    efam = EvalFamily(fam)
    assert [f.affected
            for f in efam.subjects] == [False, True, True, False, True, False]
    gt_types1 = [
        Family.HOM_REF, Family.HET, Family.HET, Family.HOM_REF, Family.HET,
        Family.HOM_REF
    ]
    gt_types2 = [
        Family.HOM_REF, Family.HET, Family.HET, Family.HOM_REF, Family.HET,
        Family.HOM_REF
    ]
    efam.gt_types = gt_types1
    gt_bases1 = ["A/C", "A/A", "A/C", "A/A", "A/A", "A/C", "A/A"]
    gt_bases2 = ["A/C", "A/A", "A/C", "A/A", "A/A", "A/C", "A/A"]
    res = efam.comp_het_pair(gt_types1, gt_bases1, gt_types2, gt_bases2)
Esempio n. 11
0
def test_comp_het_missing():

    fam = make_fam1()
    efam = EvalFamily(fam)
    assert [f.affected for f in efam.subjects
            ] == [False, False, True, False, False, False]
    gt_types1 = [
        Family.HOM_REF, Family.HET, Family.HET, Family.HOM_REF, Family.HET,
        Family.HOM_REF
    ]
    gt_types2 = [
        Family.HET, Family.HOM_REF, Family.HET, Family.HOM_REF, Family.HOM_REF,
        Family.HOM_REF
    ]
    gt_bases1 = ["A/A", "A/C", ".", "A/A", "A/A", "A/C", "A/A"]
    gt_bases2 = ["A/C", "A/A", "A/C", "A/A", "A/A", "A/A", "A/A"]
    gt_phases = [False] * len(gt_bases2)
    efam.gt_types = gt_types1

    res = efam.comp_het_pair(gt_types1, gt_bases1, gt_types2, gt_bases2,
                             gt_phases, gt_phases, "A", "C", "A", "C")
    assert res['candidate'] is False, res
Esempio n. 12
0
def test_comp_het_one_parent_2kids():
    """
    test that we cant have a candidate when a parent is HOM_REF at both sites.
    """
    mom._i = 0
    kid._i = 1
    kid2._i = 2
    kid.dad = None
    kid.mom = None
    kid.mom = mom
    efam = EvalFamily(Family([mom, kid, kid2], '2kids'))
    efam.gt_types = [Family.HOM_REF, Family.HET, Family.HET]

    res = efam.comp_het_pair(
            [Family.HOM_REF, Family.HET, Family.HET],
            ["T/T", "T/C", "T/C"],
            [Family.HOM_REF, Family.HET, Family.HET],
            ["A/A", "A/C", "A/C"],
            [False] * 3,
            [False] * 3,
             "T", "C", "A", "C", fast_mode=False, allow_unaffected=True)

    assert not res['candidate'], res