Exemplo n.º 1
0
def solr_igv(request):
    """Function for taking solr request url.
    Removes pagination, facets from input query to create multiple
    :param request: Django HttpRequest object including solr query
    :type source: HttpRequest object.
    :returns:
    """

    # copy querydict to make it editable
    if request.is_ajax():
        igv_config = json.loads(request.body)

        logger.debug(json.dumps(igv_config, indent=4))

        logger.debug('IGV data query: ' + str(igv_config['query']))
        logger.debug('IGV annotation query: ' + str(igv_config['annotation']))

        if igv_config['query'] is None:
            # generate solr_query method
            # assay uuid
            solr_query = generate_solr_params_for_assay(
                {},
                igv_config['assay_uuid']
            )
            url_path = '/'.join(["data_set_manager", "select"])
            url = urljoin(settings.REFINERY_SOLR_BASE_URL, url_path)
            igv_config['query'] = ''.join([url, '/?', solr_query])

        # attributes associated with node selection from interface
        node_selection_blacklist_mode = igv_config[
            'node_selection_blacklist_mode']
        node_selection = igv_config['node_selection']

        solr_results = get_solr_results(
            igv_config['query'], selected_mode=node_selection_blacklist_mode,
            selected_nodes=node_selection)

        if igv_config['annotation'] is not None:
            solr_annot = get_solr_results(igv_config['annotation'])
        else:
            solr_annot = None
        # if solr query returns results
        if solr_results:
            try:
                session_urls = igv_multi_species(solr_results, solr_annot)
            except GenomeBuild.DoesNotExist:
                logger.error(
                    "Provided genome build cannot be found in the database.")
                session_urls = "Couldn't find the provided genome build."

        logger.debug("session_urls")
        logger.debug(json.dumps(session_urls, indent=4))

        return HttpResponse(json.dumps(session_urls),
                            content_type='application/json')
Exemplo n.º 2
0
def solr_igv(request):
    '''Function for taking solr request url.
    Removes pagination, facets from input query to create multiple 
    
    :param request: Django HttpRequest object including solr query 
    :type source: HttpRequest object.
    :returns: 
    '''

    # copy querydict to make it editable
    if request.is_ajax():
        #logger.debug("solr_igv called: request is ajax")
        #logger.debug(simplejson.dumps(request, indent=4))

        igv_config = simplejson.loads(request.body)

        logger.debug(simplejson.dumps(igv_config, indent=4))

        logger.debug('IGV data query: ' + str(igv_config['query']))
        logger.debug('IGV annotation query: ' + str(igv_config['annotation']))

        # attributes associated with node selection from interface
        node_selection_blacklist_mode = igv_config[
            'node_selection_blacklist_mode']
        node_selection = igv_config['node_selection']

        solr_results = get_solr_results(
            igv_config['query'],
            selected_mode=node_selection_blacklist_mode,
            selected_nodes=node_selection)

        if igv_config['annotation'] is not None:
            solr_annot = get_solr_results(igv_config['annotation'])
        else:
            solr_annot = None

        # if solr query returns results
        if solr_results:
            try:
                session_urls = igv_multi_species(solr_results, solr_annot)
            except GenomeBuild.DoesNotExist:
                logger.error(
                    "Provided genome build cannot be found in the database.")
                session_urls = "Couldn't find the provided genome build."

        logger.debug("session_urls")
        logger.debug(simplejson.dumps(session_urls, indent=4))

        return HttpResponse(simplejson.dumps(session_urls),
                            mimetype='application/json')
def solr_igv(request):
    '''Function for taking solr request url.
    Removes pagination, facets from input query to create multiple 
    
    :param request: Django HttpRequest object including solr query 
    :type source: HttpRequest object.
    :returns: 
    '''
    
    # copy querydict to make it editable
    if request.is_ajax():
        #logger.debug("solr_igv called: request is ajax")
        #logger.debug(simplejson.dumps(request, indent=4))

        igv_config = simplejson.loads( request.body );

        logger.debug(simplejson.dumps( igv_config, indent=4))
        
        logger.debug( 'IGV data query: ' + str( igv_config['query'] ) )
        logger.debug( 'IGV annotation query: ' + str( igv_config['annotation'] ) )
        
        # attributes associated with node selection from interface
        node_selection_blacklist_mode = igv_config['node_selection_blacklist_mode']
        node_selection = igv_config['node_selection']
        
        solr_results = get_solr_results(igv_config['query'], selected_mode=node_selection_blacklist_mode, selected_nodes=node_selection)
        
        if igv_config['annotation'] is not None:
            solr_annot = get_solr_results(igv_config['annotation'])
        else:
            solr_annot = None
        
        # if solr query returns results
        if solr_results:
            try:
                session_urls = igv_multi_species(solr_results, solr_annot)
            except GenomeBuild.DoesNotExist:
                logger.error("Provided genome build cannot be found in the database.")
                session_urls = "Couldn't find the provided genome build."
        
        logger.debug("session_urls")
        logger.debug(simplejson.dumps(session_urls, indent=4))
        
        return HttpResponse(simplejson.dumps(session_urls),
                            mimetype='application/json')