Skip to content

Commit

Permalink
Added tests for gemini inheritance and gemini queries
Browse files Browse the repository at this point in the history
  • Loading branch information
moonso committed Apr 29, 2016
1 parent 8520118 commit aa9011e
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 12 deletions.
2 changes: 1 addition & 1 deletion tests/plugins/gemini/test_gemini_init.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ def test_setup_no_db():
assert adapter.variant_type == 'snv'

assert adapter.filters.can_filter_gene == True
assert adapter.filters.can_filter_inheritance == False
assert adapter.filters.can_filter_inheritance == True

def test_setup_with_variant_type(gemini_path):
adapter = GeminiPlugin('sv')
Expand Down
22 changes: 11 additions & 11 deletions tests/plugins/gemini/test_gemini_variant_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -241,20 +241,20 @@ def test_filters_range(self, gemini_case_obj):
assert nr_of_variants == 1

class TestGeminiInheritance:
def test_filters_ar(self, gemini_large_case_obj):
def test_filters_ar(self, gemini_case_obj):
plugin = GeminiPlugin()
plugin.add_case(gemini_large_case_obj)
plugin.add_case(gemini_case_obj)

filters = {'genetic_models': ['AR_hom']}
result = plugin.variants('643594', filters=filters, count=100000)
variants = result.variants
nr_of_variants = result.nr_of_variants

assert nr_of_variants == 635
assert nr_of_variants == 0

def test_filters_ad(self, gemini_large_case_obj):
def test_filters_ad(self, gemini_case_obj):
plugin = GeminiPlugin()
plugin.add_case(gemini_large_case_obj)
plugin.add_case(gemini_case_obj)

filters = {'genetic_models': ['AD']}
result = plugin.variants('643594', filters=filters, count=1000)
Expand All @@ -263,24 +263,24 @@ def test_filters_ad(self, gemini_large_case_obj):

assert nr_of_variants == 0

def test_filters_ad_dn(self, gemini_large_case_obj):
def test_filters_ad_dn(self, gemini_case_obj):
plugin = GeminiPlugin()
plugin.add_case(gemini_large_case_obj)
plugin.add_case(gemini_case_obj)

filters = {'genetic_models': ['AD_dn']}
result = plugin.variants('643594', filters=filters, count=1000)
variants = result.variants
nr_of_variants = result.nr_of_variants

assert nr_of_variants == 170
assert nr_of_variants == 6

def test_filters_ar_comp(self, gemini_large_case_obj):
def test_filters_ar_comp(self, gemini_case_obj):
plugin = GeminiPlugin()
plugin.add_case(gemini_large_case_obj)
plugin.add_case(gemini_case_obj)

filters = {'genetic_models': ['AR_comp']}
result = plugin.variants('643594', filters=filters, count=10000)
variants = result.variants
nr_of_variants = result.nr_of_variants

assert nr_of_variants == 2466
assert nr_of_variants == 0
36 changes: 36 additions & 0 deletions tests/utils/test_gemini_query.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from puzzle.utils.gemini_extras import (add_to_query, build_gemini_query)

def test_add_to_query():
query = "SELECT * from variants"
extra_info = "max_aaf_all < 0.01"
new_query = add_to_query(query, extra_info)
assert new_query == "SELECT * from variants WHERE max_aaf_all < 0.01"

extra_info = "cadd_score > 10"
new_query = add_to_query(new_query, extra_info)
assert new_query == "SELECT * from variants WHERE max_aaf_all < 0.01 AND cadd_score > 10"

def test_build_gemini_query():
filters = {
'frequency' : 0.01
}
query = build_gemini_query(filters)

assert query == "SELECT * from variants WHERE (max_aaf_all < 0.01 or max_aaf_all is Null)"

def test_build_gemini_query_models():
filters = {
'frequency' : 0.01
}
query = build_gemini_query(filters, add_where = False)

assert query == "(max_aaf_all < 0.01 or max_aaf_all is Null)"

def test_build_gemini_query_models_two():
filters = {
'frequency' : 0.01,
'cadd' : 15.0
}
query = build_gemini_query(filters, add_where = False)

assert query == "(max_aaf_all < 0.01 or max_aaf_all is Null) AND (cadd_scaled > 15.0)"

0 comments on commit aa9011e

Please sign in to comment.