def test_trios_multi_multi3_full(variants_vcf): fvars = variants_vcf("backends/trios_multi") vs = list( fvars.query_variants( regions=[Region("1", 11505, 11505)], return_reference=True, return_unknown=True, ) ) assert len(vs) == 1 for v in vs: print(mat2str(v.best_state)) assert v.best_state.shape == (4, 3) fvars = variants_vcf("backends/trios_multi") vs = list( fvars.query_variants( regions=[Region("1", 11506, 11506)], return_reference=True, return_unknown=True, ) ) assert len(vs) == 1 for v in vs: print(mat2str(v.best_state)) assert v.best_state.shape == (4, 3)
def test_multi_alt_allele_effects(variants_vcf, region, worst_effect, count): fvars = variants_vcf("backends/effects_trio_multi") vs = list(fvars.query_variants(regions=[region], effects=["missense"])) for v in vs: print("------------------") print(mat2str(v.best_state)) print(mat2str(v.gt)) assert len(v.effects) == 2 assert v.effects[0].worst == worst_effect[0] assert v.effects[1].worst == worst_effect[1] assert len(vs) == count
def test_inheritance_multi_full(variants_vcf, region, count, inheritance): fvars = variants_vcf("backends/inheritance_multi") vs = list( fvars.query_variants( regions=[region], return_reference=False, return_unknown=False ) ) assert len(vs) == count for v in vs: for a in v.alt_alleles: print(a, mat2str(a.gt), a.members_ids, a.inheritance_in_members) assert len(a.inheritance_in_members) == 7 # assert Inheritance.from_name(inheritance) in v.inheritance_in_members assert len(mat2str(v.best_state)) == 15
def test_inheritance_quad_full(variants_impl, variants, count, inheritance): fvars = variants_impl(variants)("backends/inheritance_quad") vs = list( fvars.query_variants(inheritance=inheritance, return_reference=False)) assert len(vs) == count for v in vs: assert len(mat2str(v.best_state)) == 9
def test_df_query_multiallelic3_families(variants_impl, variants, fixture_name): dfvars = variants_impl(variants)(fixture_name) assert dfvars is not None regions = [Region("1", 11606, 11606)] family_ids = ["f1"] vs = dfvars.query_variants( regions=regions, family_ids=family_ids, return_reference=True, return_unknown=True, ) vs = list(vs) assert len(vs) == 1 v = vs[0] print(v, mat2str(v.best_state)) fa1 = v.alt_alleles[0] fa2 = v.alt_alleles[1] assert len(v.alt_alleles) == 2 assert "mom1" in fa1.variant_in_members assert "dad1" in fa2.variant_in_members assert "ch1" not in fa1.variant_in_members assert "ch1" not in fa2.variant_in_members
def test_family_variant_X_gt2best_st(fvX1, fvX2, gt, bs1, gm1, bs2, gm2, genome_2013): v = fvX1(gt, None) best_state = VariantsGenotypesLoader._calc_best_state(v, genome_2013) print(v) print(mat2str(best_state)) assert mat2str(best_state) == bs1 genetic_model = VariantsGenotypesLoader._calc_genetic_model(v, genome_2013) assert genetic_model == gm1 v = fvX2(gt, None) best_state = VariantsGenotypesLoader._calc_best_state(v, genome_2013) print(v) print(mat2str(best_state)) assert mat2str(best_state) == bs2 genetic_model = VariantsGenotypesLoader._calc_genetic_model(v, genome_2013) assert genetic_model == gm2
def test_variant_in_members(variants_impl, variants, region, count, members): fvars = variants_impl(variants)("backends/unknown_trio") vs = list(fvars.query_variants(regions=[region])) assert len(vs) == count for v in vs: print(v, mat2str(v.best_state)) for aa in v.alt_alleles: print(aa, aa.variant_in_members) assert list(aa.variant_in_members) == members
def test_reference_multiallelic_variant(variants_impl, variants, fixture_name): fvars = variants_impl(variants)(fixture_name) assert fvars is not None vs = fvars.query_variants(return_reference=True, return_unknown=True) vs = list(vs) print(vs) assert len(vs) == 2 for v in vs: print(mat2str(v.best_state))
def test_trios_multi_single_allele1(variants_vcf): fvars = variants_vcf("backends/trios_multi") vs = list( fvars.query_variants( regions=[Region("1", 11500, 11500)], return_reference=True, return_unknown=True, )) assert len(vs) == 1 for v in vs: assert v.best_state.shape == (3, 3) assert len(mat2str(v.best_state)) == 11
def test_inheritance_trio_full(variants_vcf, region, count, inheritance): fvars = variants_vcf("backends/inheritance_trio") vs = list( fvars.query_variants( inheritance=inheritance, regions=[region], return_reference=True ) ) for v in vs: # assert Inheritance.from_name(inheritance) in v.inheritance_in_members assert len(mat2str(v.best_state)) == 7 for a in v.alleles: print(">>>", a, a.inheritance_in_members) assert len(a.inheritance_in_members) == 3 assert len(vs) == count
def test_variant_frequency_single(variants_impl, variants, region, count, freq0, freq1): fvars = variants_impl(variants)("backends/trios2") vs = list( fvars.query_variants(regions=[region], return_reference=False, return_unknown=False)) assert len(vs) == count for v in vs: print(v, mat2str(v.best_state)) print(v.frequencies) assert freq0 == pytest.approx(v.frequencies[0], 1e-2) if len(v.frequencies) == 2: assert freq1 == pytest.approx(v.frequencies[1], 1e-2)
def test_f1_check_all_variants_effects(variants_vcf): vvars = variants_vcf("backends/f1_test") assert vvars is not None vs = vvars.query_variants(return_reference=True, return_unknown=True) vs = list(vs) for v in vs: print(v, v.effects, mat2str(v.best_state)) summary_alleles = v.summary_alleles sa1 = summary_alleles[1] sa2 = summary_alleles[2] assert sa1.effect.worst == "synonymous" assert sa2.effect.worst == "missense" assert len(vs) == 7
def test_query_strange_multiallelic_families(variants_impl, variants, fixture_name): fvars = variants_impl(variants)(fixture_name) assert fvars is not None vs = fvars.query_variants() vs = list(vs) assert len(vs) == 2 for v in vs: # v = vs[0] print(v, mat2str(v.best_state)) print(v.alt_alleles) fa1 = v.alt_alleles[0] fa2 = v.alt_alleles[1] assert len(v.alt_alleles) == 2 print(fa1.variant_in_members) print(fa2.variant_in_members)
def test_reference_variant_single_allele(variants_impl, variants, fixture_name): dfvars = variants_impl(variants)(fixture_name) assert dfvars is not None vs = dfvars.query_variants(family_ids=["f1"], return_reference=True, return_unknown=True) vs = list(vs) assert len(vs) == 1 v = vs[0] print(v) print("best_st:", mat2str(v.best_state)) print("freq: ", v.frequencies) print("effects:", v.effects) print("alleles:", v.alleles) # print("summary:", v.summary_variant) assert len(v.frequencies) == 1 assert v.frequencies[0] == pytest.approx(87.5) assert not v.effects
def test_best2gt(bs, gt): res = best2gt(bs) print(mat2str(res)) assert np.all(res == gt)
def test_family_variant_unknown_simple_best_st(fv1, gt, bs): v = fv1(gt, calculate_simple_best_state(gt, 3)) print(v) print(mat2str(v.best_state)) assert mat2str(v.best_state) == bs
def test_omission(variants_impl, variants): fvars = variants_impl(variants)("backends/inheritance_omission") for fv in fvars.query_variants(inheritance="any(mendelian,denovo)"): print(fv, fv.matched_alleles) for fa in fv.alleles: print(fa, mat2str(fa.best_state), fa.inheritance_in_members)
def test_family_variant_unknown_full_best_st(fv1, gt, bs, genome_2013): v = fv1(gt, None) best_state = VariantsGenotypesLoader._calc_best_state(v, genome_2013) print(v) print(mat2str(best_state)) assert mat2str(best_state) == bs
def test_dae_transmitted_loader_simple(dae_transmitted): for fv in dae_transmitted.family_variants_iterator(): print(fv, mat2str(fv.best_state), mat2str(fv.gt))