Example #1
0
 def test_bulk_re_search_variants(self):
     sorted_queries = [
         CoordinateQuery('7', 140453136, 140453136),
         CoordinateQuery('7', 140453136, 140453137)
     ]
     search_results = civic.bulk_search_variants_by_coordinates(
         sorted_queries, search_mode='record_encompassing')
     assert len(search_results[sorted_queries[0]]) == 19
     assert len(search_results[sorted_queries[1]]) == 16
Example #2
0
 def test_bulk_any_search_variants(self):
     sorted_queries = [
         CoordinateQuery('7', 140453136, 140453136, 'T'),
         CoordinateQuery('7', 140453136, 140453137, 'TT')
     ]
     search_results = civic.bulk_search_variants_by_coordinates(
         sorted_queries, search_mode='any')
     assert len(search_results[sorted_queries[0]]) == 19
     assert len(search_results[sorted_queries[1]]) >= 19
Example #3
0
 def test_bulk_exact_search_variants(self):
     sorted_queries = [
         CoordinateQuery('7', 140453136, 140453136, 'T', '*'),
         CoordinateQuery('7', 140453136, 140453137, 'TT', '*'),
         CoordinateQuery('7', 140453136, 140453136, 'T', 'A'),
         CoordinateQuery('7', 140453136, 140453137, 'TT', 'AC'),
     ]
     search_results = civic.bulk_search_variants_by_coordinates(
         sorted_queries, search_mode='exact')
     assert len(search_results[sorted_queries[0]]) == 1
     assert len(search_results[sorted_queries[1]]) == 1
     assert len(search_results[sorted_queries[2]]) == 1
     assert len(search_results[sorted_queries[3]]) == 1
Example #4
0
 def test_errors(self):
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140453136, 140453136, 'T', 'A')
         variants_single = civic.search_variants_by_coordinates(
             query, search_mode='wrong_mode')
     assert "unexpected search mode" in str(context.value)
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140753336, 140753336, '*', 'A',
                                 'GRCh38')
         search_results = civic.search_variants_by_coordinates(
             query, search_mode='exact')
     assert "Can't use wildcard when searching for non-GRCh37 coordinates" in str(
         context.value)
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140753336, 140753336, None, None,
                                 'GRCh38')
         search_results = civic.search_variants_by_coordinates(
             query, search_mode='exact')
     assert "alt or ref required for non-GRCh37 coordinate queries" in str(
         context.value)
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140753336, 140753336, 'T', 'A',
                                 'GRCh38')
         search_results = civic.search_variants_by_coordinates(
             query, search_mode='any')
     assert "Only exact search mode is supported for non-GRCh37 coordinate queries" in str(
         context.value)
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140453136, 140453136, '-', 'A')
         variants_single = civic.search_variants_by_coordinates(
             query, search_mode='exact')
     assert "Unexpected alt `-` in coordinate query. Did you mean `None`?" in str(
         context.value)
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140453136, 140453136, 'T', '-')
         variants_single = civic.search_variants_by_coordinates(
             query, search_mode='exact')
     assert "Unexpected ref `-` in coordinate query. Did you mean `None`?" in str(
         context.value)
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140453136, 140453136, '-', 'A',
                                 'GRCh38')
         variants_single = civic.search_variants_by_coordinates(
             query, search_mode='exact')
     assert "Unexpected alt `-` in coordinate query. Did you mean `None`?" in str(
         context.value)
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140453136, 140453136, 'T', '-',
                                 'GRCh38')
         variants_single = civic.search_variants_by_coordinates(
             query, search_mode='exact')
     assert "Unexpected ref `-` in coordinate query. Did you mean `None`?" in str(
         context.value)
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140453136, 140453136, '-', 'A')
         variants_bulk = civic.bulk_search_variants_by_coordinates(
             [query], search_mode='exact')
     assert "Unexpected alt `-` in coordinate query. Did you mean `None`?" in str(
         context.value)
     with pytest.raises(ValueError) as context:
         query = CoordinateQuery('7', 140453136, 140453136, 'T', '-')
         variants_bulk = civic.bulk_search_variants_by_coordinates(
             [query], search_mode='exact')
     assert "Unexpected ref `-` in coordinate query. Did you mean `None`?" in str(
         context.value)
Example #5
0
    def test_single_and_bulk_exact_return_same_variants(self):
        query = CoordinateQuery('7', 140453136, 140453136, 'T', '*')
        variants_single = civic.search_variants_by_coordinates(
            query, search_mode='exact')
        variants_bulk = civic.bulk_search_variants_by_coordinates(
            [query], search_mode='exact')
        assert len(variants_single) == 1
        assert len(variants_bulk[query]) == 1
        assert hash(variants_single[0]) == variants_bulk[query][0].v_hash

        query = CoordinateQuery('7', 140453136, 140453136, 'T', 'A')
        variants_single = civic.search_variants_by_coordinates(
            query, search_mode='exact')
        variants_bulk = civic.bulk_search_variants_by_coordinates(
            [query], search_mode='exact')
        assert len(variants_single) == 1
        assert len(variants_bulk[query]) == 1
        assert hash(variants_single[0]) == variants_bulk[query][0].v_hash

        query = CoordinateQuery('7', 140453136, 140453136, 'T', None)
        variants_single = civic.search_variants_by_coordinates(
            query, search_mode='exact')
        variants_bulk = civic.bulk_search_variants_by_coordinates(
            [query], search_mode='exact')
        assert len(variants_single) == 0
        assert len(variants_bulk) == 0

        query = CoordinateQuery('7', 140453136, 140453137, 'TT', '*')
        variants_single = civic.search_variants_by_coordinates(
            query, search_mode='exact')
        variants_bulk = civic.bulk_search_variants_by_coordinates(
            [query], search_mode='exact')
        assert len(variants_single) == 1
        assert len(variants_bulk[query]) == 1
        assert hash(variants_single[0]) == variants_bulk[query][0].v_hash

        query = CoordinateQuery('7', 140453136, 140453137, 'TT', 'AC')
        variants_single = civic.search_variants_by_coordinates(
            query, search_mode='exact')
        variants_bulk = civic.bulk_search_variants_by_coordinates(
            [query], search_mode='exact')
        assert len(variants_single) == 1
        assert len(variants_bulk[query]) == 1
        assert hash(variants_single[0]) == variants_bulk[query][0].v_hash

        query = CoordinateQuery('7', 140453136, 140453137, 'TT', None)
        variants_single = civic.search_variants_by_coordinates(
            query, search_mode='exact')
        variants_bulk = civic.bulk_search_variants_by_coordinates(
            [query], search_mode='exact')
        assert len(variants_single) == 0
        assert len(variants_bulk) == 0

        query = CoordinateQuery('3', 10183706, 10183706, None, 'C')
        variants_single = civic.search_variants_by_coordinates(
            query, search_mode='exact')
        variants_bulk = civic.bulk_search_variants_by_coordinates(
            [query], search_mode='exact')
        assert len(variants_single) == 1
        assert len(variants_bulk[query]) == 1
        assert hash(variants_single[0]) == variants_bulk[query][0].v_hash

        query = CoordinateQuery('3', 10183706, 10183706, 'T', 'C')
        variants_single = civic.search_variants_by_coordinates(
            query, search_mode='exact')
        variants_bulk = civic.bulk_search_variants_by_coordinates(
            [query], search_mode='exact')
        assert len(variants_single) == 1
        assert len(variants_bulk[query]) == 1
        assert hash(variants_single[0]) == variants_bulk[query][0].v_hash

        query = CoordinateQuery('3', 10183706, 10183706, '*', 'C')
        variants_single = civic.search_variants_by_coordinates(
            query, search_mode='exact')
        variants_bulk = civic.bulk_search_variants_by_coordinates(
            [query], search_mode='exact')
        variants_single = list(map(lambda v: hash(v), variants_single))
        variants_bulk = list(map(lambda v: v.v_hash, variants_bulk[query]))
        assert len(variants_single) == 2
        assert len(variants_bulk) == 2
        assert sorted(variants_single) == sorted(variants_bulk)
        assert sorted(variants_single) == sorted(variants_bulk)