def test_recursivekinship(): peds = getpeds() ped = peds['fullsib'] # Self assert ped.kinship('1', '1') == 1/2 # Unrelated founders assert ped.kinship('1', '2') == 0 # Full-sib assert ped.kinship('3', '4') == 1/4 # Parent-child assert ped.kinship('1', '3') == 1/4 ped = peds['first_cousins'] # First cousins assert ped.kinship('7', '8') == 1/16 # Avuncular (related) assert ped.kinship('7', '5') == 1/8 # Avuncular (marry-in) assert ped.kinship('7', '6') == 0 # Grandparent assert ped.kinship('7', '1') == 1/8 ped = peds['half_sibs'] assert ped.kinship('4', '5') == 1/8
def test_pathfraternity(): from pydigree.paths import fraternity peds = getpeds() ped = peds["fullsib"] # None should return 0 assert fraternity(ped["1"], None) == 0 # Unrelated founders assert fraternity(ped["1"], ped["2"]) == 0 # Full-sib assert fraternity(ped["3"], ped["4"]) == 1 / 4 # Parent-child assert fraternity(ped["1"], ped["3"]) == 0 ped = peds["first_cousins"] # First cousins assert fraternity(ped["7"], ped["8"]) == 0 # Avuncular (related) assert fraternity(ped["7"], ped["5"]) == 0 # Avuncular (marry-in) assert fraternity(ped["7"], ped["6"]) == 0 # Grandparent assert fraternity(ped["7"], ped["1"]) == 0 ped = peds["half_sibs"] assert fraternity(ped["4"], ped["5"]) == 0
def test_inbreeding(): peds = getpeds() ped = peds['first_cousin_child'] assert ped.inbreeding('9') == 1/16 # Everyone else is outbred for x in ped.individuals: if x.label == '9': continue assert ped.inbreeding(x.label) == 0
def test_bitsize(): peds = getpeds() fullsib = peds['fullsib'] assert fullsib.bit_size() == 2 first_cousins = peds['first_cousins'] assert first_cousins.bit_size() == 4 huntingtons = peds['vz_huntington_autosomal_dominant'] assert huntingtons.bit_size() == 2*47-18
def test_commonancestors(): from pydigree.paths import common_ancestors peds = getpeds() ped = peds["fullsib"] # Two founders have no common ancestors assert common_ancestors(ped["1"], ped["2"]) == set() # Parent and child no common ancestors assert common_ancestors(ped["1"], ped["3"]) == set() # Full sibs have parents in common assert common_ancestors(ped["3"], ped["4"]) == {ped["1"], ped["2"]} # Test first cousins ped = peds["first_cousins"] assert common_ancestors(ped["7"], ped["8"]) == {ped["1"], ped["2"]}
def test_recursivefraternity(): peds = getpeds() ped = peds['fullsib'] # Unrelated founders assert ped.fraternity('1', '2') == 0 # Full-sib assert ped.fraternity('3', '4') == 1/4 # Parent-child assert ped.fraternity('1', '3') == 0 ped = peds['first_cousins'] # First cousins assert ped.fraternity('7', '8') == 0 # Avuncular (related) assert ped.fraternity('7', '5') == 0 # Avuncular (marry-in) assert ped.fraternity('7', '6') == 0 # Grandparent assert ped.fraternity('7', '1') == 0 ped = peds['half_sibs'] assert ped.fraternity('4', '5') == 0