def test_get_criteria_details(self): config = IniParser().read_ini(MY_INI_FILE) idx = ElasticSettings.idx('REGION_CRITERIA') available_criterias = RegionCriteria.get_available_criterias(config=config)['region'] 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) > 0) feature_id = getattr(doc_by_idx_type[0], 'qid') criteria_details = RegionCriteria.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_is_region_for_disease(self): config = IniParser().read_ini(MY_INI_FILE) criteria_results = RegionCriteria.is_region_for_disease(self.region_region1, config=config, result_container={}) expected_dict = {'1p36.32_002': {'IBD': [{'fid': 'IBD', 'fname': 'IBD'}], 'PSC': [{'fid': 'PSC', 'fname': 'PSC'}], 'CEL': [{'fid': 'CEL', 'fname': 'CEL'}], 'RA': [{'fid': 'RA', 'fname': 'RA'}], 'UC': [{'fid': 'UC', 'fname': 'UC'}], 'ATD': [{'fid': 'ATD', 'fname': 'ATD'}], 'MS': [{'fid': 'MS', 'fname': 'MS'}]}} self.assertEqual(criteria_results, expected_dict, 'Got result dict for is_region_for_disease as expected')
def test_is_region_in_mhc(self): config = IniParser().read_ini(MY_INI_FILE) criteria_results = RegionCriteria.is_region_in_mhc(self.region_region1, config=config, result_container={}) # should be tagged to all the diseases expected_dict = {'1p36.32_002': {'NAR': [{'fname': 'NAR', 'fid': 'NAR'}], 'ATD': [{'fname': 'ATD', 'fid': 'ATD'}], 'PSC': [{'fname': 'PSC', 'fid': 'PSC'}], 'IBD': [{'fname': 'IBD', 'fid': 'IBD'}], 'AA': [{'fname': 'AA', 'fid': 'AA'}], 'JIA': [{'fname': 'JIA', 'fid': 'JIA'}], 'RA': [{'fname': 'RA', 'fid': 'RA'}], 'SLE': [{'fname': 'SLE', 'fid': 'SLE'}], 'SSC': [{'fname': 'SSC', 'fid': 'SSC'}], 'VIT': [{'fname': 'VIT', 'fid': 'VIT'}], 'AS': [{'fname': 'AS', 'fid': 'AS'}], 'UC': [{'fname': 'UC', 'fid': 'UC'}], 'CRO': [{'fname': 'CRO', 'fid': 'CRO'}], 'SJO': [{'fname': 'SJO', 'fid': 'SJO'}], 'MS': [{'fname': 'MS', 'fid': 'MS'}], 'PSO': [{'fname': 'PSO', 'fid': 'PSO'}], 'T1D': [{'fname': 'T1D', 'fid': 'T1D'}], 'PBC': [{'fname': 'PBC', 'fid': 'PBC'}], 'IGE': [{'fid': 'IGE', 'fname': 'IGE'}], 'CEL': [{'fname': 'CEL', 'fid': 'CEL'}]}} self.assertEqual(criteria_results, expected_dict, 'Got result dict for is_region_in_mhc as expected')
def criteria_details(request): ''' Get criteria details for a given region ID. ''' feature_id = request.POST.get('feature_id') criteria_details = RegionCriteria.get_criteria_details(feature_id) return JsonResponse(criteria_details)
def criteria_disease_tags(cls, request, qids): ''' Get criteria disease tags for a given ensembl ID for all criterias. ''' criteria_disease_tags = RegionCriteria.get_all_criteria_disease_tags(qids) return criteria_disease_tags