def test_get_criteria_details(self):
        config = IniParser().read_ini(MY_INI_FILE)
        idx = ElasticSettings.idx('MARKER_CRITERIA')
        available_criterias = MarkerCriteria.get_available_criterias(config=config)['marker']
        idx_type = ','.join(available_criterias)

        doc_by_idx_type = ElasticUtils.get_rdm_docs(idx, idx_type, size=1)
        self.assertTrue(len(doc_by_idx_type) == 1)
        feature_id = getattr(doc_by_idx_type[0], 'qid')

        criteria_details = MarkerCriteria.get_criteria_details(feature_id, config=config)

        hits = criteria_details['hits']
        first_hit = hits[0]
        _type = first_hit['_type']
        _index = first_hit['_index']
        _id = first_hit['_id']
        _source = first_hit['_source']

        disease_tag = _source['disease_tags'][0]
        self.assertTrue(feature_id, _id)
        self.assertIn(_type, idx_type)
        self.assertTrue(idx, _index)
        self.assertIn(disease_tag, list(_source.keys()))

        fdetails = _source[disease_tag][0]
        self.assertIn('fid', fdetails.keys())
        self.assertIn('fname', fdetails.keys())
    def test_marker_is_gwas_significant_in_study(self):
        config = IniParser().read_ini(MY_INI_FILE)
        criteria_results = MarkerCriteria.marker_is_gwas_significant_in_study(self.region_hit2,
                                                                              config=config, result_container={})
        expected_results = {'rs6679677': {'CRO': [{'fname': 'Jostins L',
                                                   'fnotes': {'linkname': 'Jostins L', 'linkvalue': 2.03e-15,
                                                              'linkid': 'GDXHsS00021', 'linkdata': 'pval'},
                                                   'fid': 'GDXHsS00021'}]}}

        self.assertEqual(criteria_results, expected_results, "got expected results")
        criteria_results = MarkerCriteria.marker_is_gwas_significant_in_study(self.region_hit3,
                                                                              config=config, result_container={})
        expected_results = {}
        self.assertEqual(criteria_results, expected_results, "got expected results")
    def test_get_disease_tags(self):
        config = IniParser().read_ini(MY_INI_FILE)
        idx = ElasticSettings.idx('MARKER_CRITERIA')
        available_criterias = MarkerCriteria.get_available_criterias(config=config)['marker']
        idx_type = ','.join(available_criterias)
        doc_by_idx_type = ElasticUtils.get_rdm_docs(idx, idx_type, size=1)
        self.assertTrue(len(doc_by_idx_type) == 1)
        feature_id = getattr(doc_by_idx_type[0], 'qid')

        disease_docs = MarkerCriteria.get_disease_tags(feature_id)

        self.assertIsNotNone(disease_docs, 'got back result docs')
        disease_tags = [getattr(disease_doc, 'code') for disease_doc in disease_docs]
        self.assertIsNotNone(disease_tags, "got back disease tags")
 def test_marker_is_gwas_significant_in_ic(self):
     config = IniParser().read_ini(MY_INI_FILE)
     criteria_results = MarkerCriteria.marker_is_gwas_significant_in_ic(self.ic_stats1,
                                                                        config=config, result_container={})
     marker_id = self.ic_stats1['_source']['marker']
     gw_sig_p = 0.00000005
     criteria_results_fnotes = criteria_results[marker_id]['UC'][0]['fnotes']
     self.assertEqual('pval', criteria_results_fnotes['linkdata'], 'pval is in linkdata')
     p_val_to_compare = float(criteria_results_fnotes['linkvalue'])
     self.assertTrue(p_val_to_compare < gw_sig_p, 'p val less than gwas significant pvalue')
    def test_rsq_with_index_snp(self):
        config = IniParser().read_ini(MY_INI_FILE)
        expected_results = {'rs2476601': {'CRO': [{'fname': 'rs6679677',
                                                   'fnotes': {'linkname': 'Jostins L',
                                                              'linkdata': 'rsq',
                                                              'linkid': 'GDXHsS00021', 'linkvalue': 0.97},
                                                   'fid': 'rs6679677'}]}}

        criteria_results = MarkerCriteria.rsq_with_index_snp(self.region_hit2, config=config, result_container={})
        self.assertEqual(expected_results['rs2476601']['CRO'], criteria_results['rs2476601']['CRO'])

        expected_results_ = {'rs2476601': {'T1D': [{'fid': 'rs6679677', 'fname': 'rs6679677',
                                                    'fnotes': {'linkid': 'GDXHsS00001', 'linkdata': 'rsq',
                                                               'linkvalue': 0.97, 'linkname': 'Bradfield JP'}}],
                                           'CRO': [{'fid': 'rs6679677', 'fname': 'rs6679677',
                                                    'fnotes': {'linkid': 'GDXHsS00021', 'linkdata': 'rsq',
                                                               'linkvalue': 0.97, 'linkname': 'Jostins L'}}]}}
        criteria_results_ = MarkerCriteria.rsq_with_index_snp(self.region_hit3, config=config,
                                                              result_container=criteria_results)
        self.assertEqual(expected_results_['rs2476601'], criteria_results_['rs2476601'])

        criteria_results = MarkerCriteria.rsq_with_index_snp(self.region_hit4, config=config, result_container={})
        self.assertIn('rs11904361', criteria_results.keys(), 'rs11904361 found in results')
        self.assertIn('rs6725688', criteria_results.keys(), 'rs6725688 found in results')
    def test_is_an_index_snp(self):

        config = IniParser().read_ini(MY_INI_FILE)
        criteria_results = MarkerCriteria.is_an_index_snp(self.region_hit1, config=config, result_container={})
        expected_dict = {'rs2269368': {'SLE': [{'fid': 'Xq28_003', 'fname': 'Xq28'}]}}
        self.assertEqual(criteria_results, expected_dict, 'Got result dict for is_an_index_snp as expected')
Example #7
0
 def criteria_disease_tags(cls, request, qids):
     ''' Get criteria disease tags for a given ensembl ID for all criterias. '''
     criteria_disease_tags = MarkerCriteria.get_all_criteria_disease_tags(qids)
     return criteria_disease_tags
Example #8
0
def criteria_details(request):
    ''' Get criteria details for a given marker ID. '''
    feature_id = request.POST.get('feature_id')
    criteria_details = MarkerCriteria.get_criteria_details(feature_id)
    return JsonResponse(criteria_details)