示例#1
0
 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
             }
         }))
示例#2
0
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
示例#3
0
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')
示例#4
0
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')