Example #1
0
def test_combine_families_sex_mismatch():
    families_A = FamiliesLoader.load_pedigree_file(
        relative_to_this_test_folder("fixtures/pedigree_A.ped"))
    families_D = FamiliesLoader.load_pedigree_file(
        relative_to_this_test_folder("fixtures/pedigree_D.ped"))
    with pytest.raises(AssertionError):
        FamiliesData.combine(families_A, families_D, forced=False)
Example #2
0
def test_combine_families():
    families_A = FamiliesLoader.load_pedigree_file(
        relative_to_this_test_folder("fixtures/pedigree_A.ped"))
    families_B = FamiliesLoader.load_pedigree_file(
        relative_to_this_test_folder("fixtures/pedigree_B.ped"))
    new_families = FamiliesData.combine(families_A, families_B, forced=False)

    merged_f1 = new_families["f1"]
    assert set(merged_f1.persons.keys()) == {
        "f1.mom",
        "f1.dad",
        "f1.p1",
        "f1.s1",
        "f1.s2",
    }
def test_mom_dad_child_sibling_roles(fixture_dirname, ped_file):
    families = FamiliesLoader.load_pedigree_file(fixture_dirname(ped_file))
    family = families.get("f1")
    role_builder = FamilyRoleBuilder(family)
    role_builder.build_roles()
    members = family.full_members

    assert members[0].role == Role.dad
    assert members[1].role == Role.mom
    assert members[2].role == Role.prb
    assert members[3].role == Role.sib
def test_handling_of_family_with_only_prb_role(fixture_dirname):
    ped_file = fixture_dirname("pedigrees/pedigree_prb_only.ped")
    families = FamiliesLoader.load_pedigree_file(ped_file)
    family = families.get("f1")
    role_builder = FamilyRoleBuilder(family)
    role_builder.build_roles()
    members = family.full_members

    assert members[0].role == Role.dad
    assert members[1].role == Role.mom
    assert members[2].role == Role.prb
    assert members[3].role == Role.sib
Example #5
0
def test_load_family_simple(fixture_name, temp_filename, fixture_dirname):
    family_filename = fixture_dirname(fixture_name)
    assert os.path.exists(family_filename)

    families = FamiliesLoader.load_simple_families_file(family_filename)
    assert families is not None

    FamiliesLoader.save_pedigree(families, temp_filename)

    families1 = FamiliesLoader.load_pedigree_file(temp_filename)

    assert set(families.keys()) == set(families1.keys())
def test_child_and_spouse(fixture_dirname):
    ped_file = fixture_dirname("pedigrees/pedigree_no_role_D.ped")
    families = FamiliesLoader.load_pedigree_file(ped_file)
    family = families.get("f1")
    role_builder = FamilyRoleBuilder(family)
    role_builder.build_roles()
    members = family.full_members

    assert members[0].role == Role.dad
    assert members[1].role == Role.mom
    assert members[2].role == Role.prb
    assert members[3].role == Role.sib
    assert members[4].role == Role.spouse
    assert members[5].role == Role.child
def test_paternal_and_maternal_grandparents(fixture_dirname):
    ped_file = fixture_dirname("pedigrees/pedigree_no_role_C.ped")
    families = FamiliesLoader.load_pedigree_file(ped_file)
    family = families.get("f1")
    role_builder = FamilyRoleBuilder(family)
    role_builder.build_roles()
    members = family.full_members

    assert members[0].role == Role.maternal_grandfather
    assert members[1].role == Role.maternal_grandmother
    assert members[2].role == Role.paternal_grandfather
    assert members[3].role == Role.paternal_grandmother
    assert members[4].role == Role.dad
    assert members[5].role == Role.mom
    assert members[6].role == Role.prb
    assert members[7].role == Role.sib
def test_stepmom_and_stepdad(fixture_dirname):
    ped_file = fixture_dirname("pedigrees/pedigree_no_role_G.ped")
    families = FamiliesLoader.load_pedigree_file(ped_file)
    family = families.get("f1")
    role_builder = FamilyRoleBuilder(family)
    role_builder.build_roles()
    members = family.full_members

    assert members[0].role == Role.dad
    assert members[1].role == Role.mom

    assert members[2].role == Role.step_dad
    assert members[3].role == Role.step_mom

    assert members[4].role == Role.maternal_half_sibling
    assert members[5].role == Role.paternal_half_sibling
    assert members[6].role == Role.prb
    assert members[7].role == Role.sib
def test_maternal_and_paternal_cousins(fixture_dirname):
    ped_file = fixture_dirname("pedigrees/pedigree_no_role_F.ped")
    families = FamiliesLoader.load_pedigree_file(ped_file)
    family = families.get("f1")
    role_builder = FamilyRoleBuilder(family)
    role_builder.build_roles()
    members = family.full_members

    assert members[0].role == Role.maternal_grandfather
    assert members[1].role == Role.maternal_grandmother
    assert members[2].role == Role.paternal_grandfather
    assert members[3].role == Role.paternal_grandmother
    assert members[4].role == Role.dad
    assert members[5].role == Role.mom
    assert members[6].role == Role.maternal_aunt
    assert members[7].role == Role.unknown
    assert members[8].role == Role.unknown
    assert members[9].role == Role.paternal_uncle
    assert members[10].role == Role.prb
    assert members[11].role == Role.sib
    assert members[12].role == Role.maternal_cousin
    assert members[13].role == Role.paternal_cousin