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')
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
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)