def test_get_idx_types(self): self.assertJSONEqual( json.dumps(ElasticSettings.get_idx_types('MARKER')), json.dumps({ 'MARKER': { 'type': 'marker', 'description': 'dbsnp', 'search': True, 'auth_public': True } }))
def _build_score_functions(idx_dict): ''' Build an array of ScoreFunction instances for boosting query results. ''' # create function score query to return documents with greater weights. score_fns = [ScoreFunction.create_score_function('field_value_factor', field='tags.weight', missing=1.0)] # create a function score that increases the score of markers. if ElasticSettings.idx('MARKER') is not None and ElasticSettings.idx('MARKER') in idx_dict['idx']: type_filter = Filter(Query({"type": {"value": ElasticSettings.get_idx_types('MARKER')['MARKER']['type']}})) score_fns.append(ScoreFunction.create_score_function('weight', 2, function_filter=type_filter.filter)) logger.debug("Add marker type score function.") # create a function score that increases the score of publications tagged with disease. if ElasticSettings.idx('PUBLICATION') is not None and ElasticSettings.idx('PUBLICATION') in idx_dict['idx']: score_fns.append(ScoreFunction.create_score_function('weight', 2, function_filter=ExistsFilter('tags.disease').filter)) logger.debug("Add publication disease tag score function.") return score_fns
def chicpea(request): queryDict = request.GET user = request.user context = dict() context['title'] = 'Capture HiC Plotter' context['admin_url_path'] = settings.ADMIN_URL_PATH context['RECAPTCHA_KEY'] = settings.RECAPTCHA_KEY # context['tissue'] = 'Total_CD4_Activated' context['searchTerm'] = random.choice(getattr(chicp_settings, 'DEFAULT_GENES')) if queryDict.get("term"): context['searchTerm'] = queryDict.get("term") if queryDict.get("tissue"): context['tissue'] = queryDict.get("tissue") else: context['default_target'] = getattr(chicp_settings, 'DEFAULT_TARGET') context['default_tissue'] = getattr(chicp_settings, 'DEFAULT_TISSUE') (idx_keys_auth, idx_type_keys_auth) = get_authenticated_idx_and_idx_types( user=user, idx_keys=None, idx_type_keys=None) indexes = list() tissues = list() for target in getattr(chicp_settings, 'CP_TARGET'): if 'CP_TARGET_'+target not in idx_keys_auth: continue indexes.append({"value": target, "text": ElasticSettings.get_label('CP_TARGET_'+target)}) elasticJSON = Search(idx=ElasticSettings.idx('CP_TARGET_'+target)).get_mapping(mapping_type="gene_target") tissueList = list(elasticJSON[ElasticSettings.idx('CP_TARGET_'+target)] ['mappings']['gene_target']['_meta']['tissue_type'].keys()) utils.tissues['CP_TARGET_'+target] = tissueList tissueList.sort() for t in tissueList: tissues.append({"value": t, "text": t.replace("_", " "), "class": target}) context['allIndexes'] = indexes context['allTissues'] = tissues snpTracks = OrderedDict() defaultTrack = getattr(chicp_settings, 'DEFAULT_TRACK') for group in getattr(chicp_settings, 'CP_STATS'): if 'CP_STATS_'+group not in idx_keys_auth: continue if group == 'UD': if settings.INCLUDE_USER_UPLOADS: context['allow_user_uploads'] = True else: continue snp_tracks = list() for track, details in (ElasticSettings.get_idx_types(idx_name='CP_STATS_'+group, user='******')).items(): if 'CP_STATS_'+group+'.'+track not in idx_type_keys_auth: continue snp_tracks.append({"value": track.lower(), "text": details['label']}) if defaultTrack == '': defaultTrack = track.lower() snpTracks[ElasticSettings.get_label('CP_STATS_'+group)] = sorted(snp_tracks, key=itemgetter('text')) context['snpTracks'] = snpTracks if queryDict.get("snp_track"): context['snp_track'] = queryDict.get("snp_track") else: context['snp_track'] = defaultTrack return render(request, 'chicp/index.html', context, content_type='text/html')
def chicpea(request): queryDict = request.GET user = request.user context = dict() context['title'] = 'Capture HiC Plotter' context['admin_url_path'] = settings.ADMIN_URL_PATH context['RECAPTCHA_KEY'] = settings.RECAPTCHA_KEY # context['tissue'] = 'Total_CD4_Activated' context['searchTerm'] = random.choice(getattr(chicp_settings, 'DEFAULT_GENES')) if queryDict.get("term"): context['searchTerm'] = queryDict.get("term") if queryDict.get("tissue"): context['tissue'] = queryDict.get("tissue") else: context['default_target'] = getattr(chicp_settings, 'DEFAULT_TARGET') context['default_tissue'] = getattr(chicp_settings, 'DEFAULT_TISSUE') (idx_keys_auth, idx_type_keys_auth) = get_authenticated_idx_and_idx_types( user=user, idx_keys=None, idx_type_keys=None) indexes = list() tissues = list() for target in getattr(chicp_settings, 'CP_TARGET'): if 'CP_TARGET_'+target not in idx_keys_auth: continue indexes.append({"value": target, "text": ElasticSettings.get_label('CP_TARGET_'+target)}) elasticJSON = Search(idx=ElasticSettings.idx('CP_TARGET_'+target)).get_mapping(mapping_type="gene_target") tissueList = list(elasticJSON[ElasticSettings.idx('CP_TARGET_'+target)] ['mappings']['gene_target']['_meta']['tissue_type'].keys()) utils.tissues['CP_TARGET_'+target] = tissueList tissueList.sort() for t in tissueList: tissues.append({"value": t, "text": t.replace("_", " "), "class": target}) context['allIndexes'] = indexes context['allTissues'] = tissues snpTracks = OrderedDict() defaultTrack = getattr(chicp_settings, 'DEFAULT_TRACK') for group in getattr(chicp_settings, 'CP_STATS'): if 'CP_STATS_'+group not in idx_keys_auth: continue if group == 'UD': if settings.INCLUDE_USER_UPLOADS: context['allow_user_uploads'] = True else: continue snp_tracks = list() for track, details in (ElasticSettings.get_idx_types(idx_name='CP_STATS_'+group, user='******')).items(): if 'CP_STATS_'+group+'.'+track not in idx_type_keys_auth: continue snp_tracks.append({"value": track.lower(), "text": details['label']}) if defaultTrack == '': defaultTrack = track.lower() snpTracks[ElasticSettings.get_label('CP_STATS_'+group)] = sorted(snp_tracks, key=itemgetter('text')) context['snpTracks'] = snpTracks if queryDict.get("snp_track"): context['snp_track'] = queryDict.get("snp_track") else: context['snp_track'] = defaultTrack return render(request, 'chicp/index.html', context, content_type='text/html')