def test_add_impact_severity(variant): plugin = VcfPlugin() variant.most_severe_consequence = 'stop_gained' plugin._add_impact_severity(variant) assert variant.impact_severity == 'HIGH'
def test_individual(case_obj): adapter=VcfPlugin() adapter.add_case(case_obj) ind_id = "ADM1059A1" ind_obj = adapter.individual(ind_id) assert ind_obj.ind_id == ind_id
def test_add_most_severe(variant): plugin = VcfPlugin() variant.consequences = ['downstream_gene_variant', 'stop_gained'] plugin._add_most_severe_consequence(variant) assert variant.most_severe_consequence == 'stop_gained'
def test_add_compounds(variant): plugin = VcfPlugin() info_dict = { 'Compounds': "643594:11_120999413_G_A>24|11_120988038_T_G>23|11_120991571_G_A>10|11_121028581_C_G>36" } plugin._add_compounds(variant, info_dict) compounds = variant.compounds highest_scored_compound = compounds[0] assert int(highest_scored_compound.combined_score) == 36
def test_filters_no_filter(self, case_obj): plugin = VcfPlugin() plugin.add_case(case_obj) case_id = case_obj.case_id filters = {} result = plugin.variants(case_id, filters=filters, count=1000) assert result.nr_of_variants == 108
def test_setup_no_file(): """Test to initialize a gemini database without any file""" adapter = VcfPlugin() assert adapter.variant_type == 'snv' assert adapter.filters.can_filter_gene == True assert adapter.filters.can_filter_inheritance == True
def test_format_variants(cyvcf_variant, case_obj, header): vcf_plugin = VcfPlugin() vcf_plugin.head = header vcf_plugin.vep_header = header.vep_columns vcf_plugin.snpeff_header = header.snpeff_columns variant_obj = vcf_plugin._format_variants(cyvcf_variant, index=1, case_obj=case_obj, add_all_info=False) assert variant_obj.CHROM == cyvcf_variant.CHROM assert variant_obj.start == cyvcf_variant.start
def test_variant(case_obj): vcf_plugin = VcfPlugin() vcf_plugin.add_case(case_obj) variant = vcf_plugin.variant(case_obj.case_id, 'X_155239821_G_A') assert variant['CHROM'] == 'X' assert int(variant['POS']) == 155239821 # get 10th variant variant = vcf_plugin.variant(case_obj.case_id, '3_124998098_C_A') assert variant['index'] == 10
def test_filters_frequency(self, case_obj): plugin = VcfPlugin() plugin.add_case(case_obj) case_id = case_obj.case_id filters = {'frequency':'0.001'} result = plugin.variants(case_id, filters=filters, count=1000) variants = result.variants nr_of_variants = result.nr_of_variants for variant_obj in variants: assert variant_obj.max_freq <= 0.001 assert nr_of_variants == 73
def test_filters_impact_severities_high(self, case_obj): plugin = VcfPlugin() plugin.add_case(case_obj) case_id = case_obj.case_id filters = {'impact_severities':['HIGH']} result = plugin.variants(case_id, filters=filters, count=1000) variants = result.variants nr_of_variants = result.nr_of_variants for variant_obj in variants: assert variant_obj.impact_severity == 'HIGH' assert nr_of_variants == 7
def test_filters_cadd(self, case_obj): plugin = VcfPlugin() plugin.add_case(case_obj) case_id = case_obj.case_id filters = {'cadd':'20'} result = plugin.variants(case_id, filters=filters, count=1000) variants = result.variants nr_of_variants = result.nr_of_variants for variant_obj in variants: variant_obj.cadd_score >= 20 assert nr_of_variants == 50
def test_filters_consequence(self, case_obj): plugin = VcfPlugin() plugin.add_case(case_obj) case_id = case_obj.case_id filters = {'consequence':['frameshift_variant']} result = plugin.variants(case_id, filters=filters, count=1000) variants = result.variants nr_of_variants = result.nr_of_variants for variant_obj in variants: assert 'frameshift_variant' in variant_obj.consequences assert nr_of_variants == 4
def test_filters_gene_ids(self, case_obj): plugin = VcfPlugin() plugin.add_case(case_obj) case_id = case_obj.case_id filters = {'gene_ids':['POF1B']} result = plugin.variants(case_id, filters=filters, count=1000) variants = result.variants nr_of_variants = result.nr_of_variants for variant_obj in variants: assert 'POF1B' in variant_obj.gene_symbols assert nr_of_variants == 1
class BaseConfig: PROJECT = PROJECT_NAME DEBUG = False TESTING = False # http://flask.pocoo.org/docs/quickstart/#sessions SECRET_KEY = 'secret key' PUZZLE_BACKEND = VcfPlugin() STORE_ENABLED = False # default blueprints BLUEPRINTS = [public_bp, variants_bp] #Phemonizer credentials PHENOMIZER_AUTH = False
def test_variants_case(case_obj): vcf_plugin = VcfPlugin() vcf_plugin.add_case(case_obj) #case_id is 'hapmap.vcf' since no ped file is given result = vcf_plugin.variants(case_id=case_obj.case_id) variants = result.variants variant = variants[0] assert variant['CHROM'] == 'X' assert int(variant['POS']) == 84563218 assert variant['index'] == 1 variant = variants[1] assert variant['CHROM'] == '2' assert int(variant['POS']) == 233349186 assert variant['index'] == 2
def test_add_consequences(variant): plugin = VcfPlugin() # The raw variant line is treated like a string so it does not matter # if it is malformed raw_variant_line = "7\t98994144\t.\tA\tC\t51.68\tPASS\tAC=1;AF=0.167;AN=6"\ ";BaseQRankSum=-1.965;CADD=13.51;CSQ=C|downstream_gene_variant|MODIFIER|"\ "ARPC1B|ENSG00000130429|Transcript|ENST00000491294|retained_intron|||||||"\ "||||1724|1|HGNC|704||||||||||||||,C|downstream_gene_variant|MODIFIER|"\ "ARPC1B|ENSG00000130429|Transcript|ENST00000451682|protein_coding||||||||"\ "|||1745|1|HGNC|704||CCDS5661.1|ENSP00000389631|ARC1B_HUMAN|F8VXW2_HUMAN"\ "&C9K057_HUMAN&C9JTT6_HUMAN&C9JQM8_HUMAN&C9JM51_HUMAN&C9JFG9_HUMAN&C9JEY1"\ "_HUMAN&C9JBJ7_HUMAN&C9J6C8_HUMAN&C9J4Z7_HUMAN&A4D275_HUMAN|UPI0000125D33|" plugin._add_consequences(variant, raw_variant_line) assert variant.consequences == ["downstream_gene_variant"]
def select_plugin(self, case_obj): """Select and initialize the correct plugin for the case.""" if case_obj.variant_mode == 'vcf': logger.debug("Using vcf plugin") plugin = VcfPlugin(case_obj.variant_type) elif case_obj.variant_mode == 'gemini': logger.debug("Using gemini plugin") plugin = GeminiPlugin(case_obj.variant_type) #Add case to plugin plugin.add_case(case_obj) self.variant_type = case_obj.variant_type case_id = case_obj.case_id return plugin, case_id
def test_filters_range(self, case_obj, indexed_vcf_file): plugin = VcfPlugin() case_obj.variant_source = indexed_vcf_file case_obj.compressed = True case_obj.tabix_index = True plugin.add_case(case_obj) case_id = case_obj.case_id start = 1771120 end = 1771130 filters = {'range':{'chromosome':'1', 'start':start, 'end':end}} result = plugin.variants(case_id, filters=filters, count=1000) variants = result.variants nr_of_variants = result.nr_of_variants for variant_obj in variants: assert variant_obj.start >= start assert variant_obj.stop <= end assert nr_of_variants == 1
def vcf(): db = VcfPlugin() return db
def vcf(): db = VcfPlugin(TestConfig.PUZZLE_VCF_FILE) return db
def test_setup_variant_type(): """docstring for test_setup_variant_type""" adapter = VcfPlugin('sv') assert adapter.variant_type == 'sv'
def test_add_rank_score_no_score(variant): plugin = VcfPlugin() info_dict = {} plugin._add_rank_score(variant, info_dict) assert variant.rank_score == None
def test_add_rank_score(variant): plugin = VcfPlugin() info_dict = {'RankScore': '643594:24'} plugin._add_rank_score(variant, info_dict) assert int(variant.rank_score) == 24
def test_add_genetic_models_no_models(variant): plugin = VcfPlugin() info_dict = {} plugin._add_genetic_models(variant, info_dict) assert variant.genetic_models == []
def test_add_genetic_models(variant): plugin = VcfPlugin() info_dict = {'GeneticModels': '643594:AD_dn|AR_comp_dn'} plugin._add_genetic_models(variant, info_dict) assert set(variant.genetic_models) == set(['AD_dn', 'AR_comp_dn'])
def test_add_most_severe_no_info(variant): plugin = VcfPlugin() plugin._add_most_severe_consequence(variant) assert variant.most_severe_consequence == None
def test_individuals(case_obj): adapter=VcfPlugin() adapter.add_case(case_obj) individuals = [ind for ind in adapter.individuals()] assert len(individuals) == 3
def test_add_cadd_score(variant): plugin = VcfPlugin() info_dict = {'CADD': '24'} plugin._add_cadd_score(variant, info_dict) assert float(variant.cadd_score) == 24.0
def test_add_compounds_no_compounds(variant): plugin = VcfPlugin() info_dict = {} plugin._add_compounds(variant, info_dict) assert variant.compounds == []
def test__add_individual(individual): adapter=VcfPlugin() adapter._add_individual(individual) assert len(adapter.individual_objs) == 1