Example #1
0
def retrieve_results_view(request):
    settings = request.registry.settings
    GUILDifier.set_parameters(settings)
    if request.method == 'POST':
        #!
        if request.POST.get('session_id1') and request.POST.get('session_id2'):
            session_id = request.POST["session_id1"]
            session_id2 = request.POST["session_id2"]
            try:
                result = GUILDifier(session_id,
                                    species=None,
                                    settings=settings)
                result2 = GUILDifier(session_id2,
                                     species=None,
                                     settings=settings)
            except:  # job(s) not finished / session does not exist
                request.session.flash('Provided job id is not valid!')
                return HTTPFound(location=request.route_url('home'))
            ready_flag = result.create_output_file()
            ready_flag2 = result2.create_output_file()
            if (ready_flag is None or ready_flag == False) or (
                    ready_flag2 is None
                    or ready_flag2 == False):  # Error / still running
                request.session.flash('Provided job id is not valid!')
                return HTTPFound(location=request.route_url('home'))
            else:
                return HTTPFound(
                    location=request.route_url('result_overlap',
                                               session_id1=session_id,
                                               session_id2=session_id2,
                                               n_start="1",
                                               n_end="20",
                                               p_top="1"))
        if request.POST.get('session_id'):
            session_id = request.POST["session_id"]
            try:
                result = GUILDifier(session_id,
                                    species=None,
                                    settings=settings)
            except:  # species.txt does not exits - job not finished
                request.session.flash('Provided job id is not valid!')
                return HTTPFound(location=request.route_url('home'))
            ready_flag = result.create_output_file()
            if ready_flag is None or ready_flag == False:  # Error / still running
                request.session.flash('Provided job id is not valid!')
                return HTTPFound(location=request.route_url('home'))
            else:
                return HTTPFound(
                    location=request.route_url('result',
                                               session_id=session_id,
                                               n_start="1",
                                               n_end="20",
                                               p_top="1"))
    request.session.flash('No job id is provided!')
    return HTTPFound(location=request.route_url('home'))
Example #2
0
def scoring_results_overlap_view(request):
    settings = request.registry.settings
    GUILDifier.set_parameters(settings)
    session_id = request.matchdict["session_id1"]
    session_id2 = request.matchdict["session_id2"]
    result = GUILDifier(session_id, species=None, settings=settings)
    result2 = GUILDifier(session_id2, species=None, settings=settings)
    ready_flag = result.create_output_file()
    ready_flag2 = result2.create_output_file()
    if ready_flag is None or ready_flag2 is None:  # Error
        request.session["id"] = session_id
        request.session["species"] = result.species
        request.session["message"] = "error/contact webmaster"
        return HTTPFound(location=request.route_url('status'))
    elif ready_flag and ready_flag2:  # Finished
        if "id" in request.session:
            del request.session["id"]
            del request.session["species"]
            del request.session["message"]
        n_start = int(request.matchdict["n_start"])
        n_end = int(request.matchdict["n_end"])
        p_top = request.matchdict["p_top"]
        parser = GUILDScoreParser(result.output_file)
        parser2 = GUILDScoreParser(result2.output_file)
        values, values_stat = parser.overlap_with(parser2, result.n_node,
                                                  result.species, int(p_top))
        return dict(session_id1=session_id,
                    session_id2=session_id2,
                    species=BIANAQuery.TAX_ID_TO_SPECIES_NAME[result.species],
                    n_start=n_start,
                    n_end=min(n_end, len(values)),
                    n_node=len(values),
                    values=values[(n_start - 1):n_end],
                    values_stat=values_stat,
                    output_file_url=result.output_file_url,
                    seed_file_url=result.seed_file_url,
                    network_file_url=result.network_file_url,
                    network_json=result.get_network_json(p_top),
                    subnetwork_file_url=result.subnetwork_file_url + "." +
                    p_top,
                    drug_file_url=result.drug_file_url + "." + p_top,
                    not_last_page=n_end < result.n_node,
                    p_top=p_top,
                    top1=p_top == "1",
                    top5=p_top == "5",
                    top10=p_top == "10",
                    human=result.species == "9606")
    request.session["id"] = session_id
    request.session["species"] = result.species
    request.session["message"] = "queued/running"
    return HTTPFound(location=request.route_url('status'))
Example #3
0
def run_scoring_method_view(request):
    settings = request.registry.settings
    GUILDifier.set_parameters(settings)
    if request.method == 'POST':
        #print request.POST
        user_entity_ids = []
        for user_entity_id in request.POST:
            try:
                int(user_entity_id)
            except:
                continue
            user_entity_ids.append(user_entity_id)
        print user_entity_ids
        session_id = str(uuid.uuid4())
        print "Session:", session_id
        species = request.POST["species"]
        scoring_parameters = {}
        if "netscore" in request.POST:
            scoring_parameters["ns"] = [
                int(request.POST["repetitionSelector"]),
                int(request.POST["iterationSelector"])
            ]
        if "netzcore" in request.POST:
            scoring_parameters["nz"] = [
                int(request.POST["repetitionZelector"])
            ]
        if "netshort" in request.POST:
            scoring_parameters["nd"] = None
        result = GUILDifier(session_id, species, settings)
        result.prepare(user_entity_ids)
        result.score(scoring_parameters)
        return dict(session_id=session_id,
                    species=BIANAQuery.TAX_ID_TO_SPECIES_NAME[species],
                    seed_file_url=result.seed_file_url,
                    network_file_url=result.network_file_url,
                    message="submitted",
                    submitted=True)
    elif "id" in request.session:
        session_id = request.session["id"]
        species = request.session["species"]
        message = request.session["message"]
        result = GUILDifier(session_id, species, settings)
        return dict(session_id=session_id,
                    species=BIANAQuery.TAX_ID_TO_SPECIES_NAME[species],
                    seed_file_url=result.seed_file_url,
                    network_file_url=result.network_file_url,
                    message=message,
                    submitted=False)
    request.session.flash('Invalid session, please start over!')
    return HTTPFound(location=request.route_url('home'))
Example #4
0
def results_overlap_ajax(request): 
    settings = request.registry.settings
    GUILDifier.set_parameters(settings)
    session_id = request.matchdict["session_id1"]
    session_id2 = request.matchdict["session_id2"]
    n_start = int(request.matchdict["n_start"])
    n_end = int(request.matchdict["n_end"])
    p_top = request.matchdict["p_top"]
    result = GUILDifier(session_id, species = None, settings = settings)
    result.create_output_file()
    parser = GUILDScoreParser(result.output_file)
    result2 = GUILDifier(session_id2, species = None, settings = settings)
    result2.create_output_file()
    parser2 = GUILDScoreParser(result2.output_file)
    values, values_stat, values_chart, ueids = parser.overlap_with(parser2, result.n_node, result.species, int(p_top)) 
    return dict(n_start = n_start, 
		n_end = n_end,
		n_node = result.n_node,
		p_top = p_top,
		values = [ ";".join(map(lambda x: str(x), value)) for value in values[(n_start-1):n_end] ])
Example #5
0
def old_run_scoring_method_view(request):
    if request.method == 'POST':
        user_entity_ids = []
        for user_entity_id in request.POST:
            if user_entity_id != "species":
                user_entity_ids.append(user_entity_id)
        print user_entity_ids
        request.session["id"] = str(uuid.uuid4())
        species = request.POST["species"]
        request.session["species"] = species
        result = GUILDifier(request.session["id"], species,
                            request.registry.settings)
        result.prepare(user_entity_ids)
        result.score()
        result.create_output_file()
        request.session["file_name"] = result.output_file
        request.session["file_url"] = result.output_file_url
        request.session["n_result"] = result.n_node
        n_start = int(request.matchdict["n_start"])
        n_end = int(request.matchdict["n_end"])
        parser = GUILDScoreParser(request.session["file_name"])
        values = parser.get_user_entity_info_and_scores(
            n_start, n_end, species)
        return dict(n_start=n_start,
                    n_end=n_end,
                    species=BIANAQuery.TAX_ID_TO_SPECIES_NAME[species],
                    n_node=result.n_node,
                    values=values,
                    output_file_url=request.session["file_url"],
                    not_last_page=n_end < (result.n_node - 20))
    elif request.method == 'GET':
        n_start = int(request.matchdict["n_start"])
        n_end = int(request.matchdict["n_end"])
        if "species" not in request.session:
            request.session.flash('Invalid session, please start over!')
            return HTTPFound(location=request.route_url('home'))
        species = request.session["species"]
        parser = GUILDScoreParser(request.session["file_name"])
        values = parser.get_user_entity_info_and_scores(
            n_start, n_end, species)
        n_node = request.session["n_result"]
        return dict(n_start=n_start,
                    n_end=n_end,
                    species=BIANAQuery.TAX_ID_TO_SPECIES_NAME[species],
                    n_node=n_node,
                    values=values,
                    output_file_url=request.session["file_url"],
                    not_last_page=n_end < n_node)
    else:
        request.session.flash('Invalid session, please start over!')
        return HTTPFound(location=request.route_url('home'))
    return {}
Example #6
0
def results_ajax(request): 
    settings = request.registry.settings
    GUILDifier.set_parameters(settings)
    session_id = request.matchdict["session_id"]
    n_start = int(request.matchdict["n_start"])
    n_end = int(request.matchdict["n_end"])
    result = GUILDifier(session_id, species = None, settings = settings)
    result.create_output_file()
    parser = GUILDScoreParser(result.output_file)
    values, ueids = parser.get_user_entity_info_and_scores(n_start, n_end, result.species) #!
    return dict(n_start = n_start, 
		n_end = n_end,
		n_node = result.n_node,
		values = [ ";".join(map(lambda x: str(x), value)) for value in values ])
Example #7
0
def scoring_results_view(request):
    settings = request.registry.settings
    GUILDifier.set_parameters(settings)
    session_id = request.matchdict["session_id"]
    result = GUILDifier(session_id, species=None, settings=settings)
    ready_flag = result.create_output_file()
    if ready_flag is None:  # Error
        request.session["id"] = session_id
        request.session["species"] = result.species
        request.session["message"] = "error/contact webmaster"
        return HTTPFound(location=request.route_url('status'))
    elif ready_flag:  # Finished
        if "id" in request.session:
            del request.session["id"]
            del request.session["species"]
            del request.session["message"]
        n_start = int(request.matchdict["n_start"])
        n_end = int(request.matchdict["n_end"])
        p_top = request.matchdict["p_top"]
        parser = GUILDScoreParser(result.output_file)
        values = parser.get_user_entity_info_and_scores(
            n_start, n_end, result.species)
        return dict(session_id=session_id,
                    species=BIANAQuery.TAX_ID_TO_SPECIES_NAME[result.species],
                    n_start=n_start,
                    n_end=n_end,
                    n_node=result.n_node,
                    values=values,
                    output_file_url=result.output_file_url,
                    seed_file_url=result.seed_file_url,
                    network_file_url=result.network_file_url,
                    network_json=result.get_network_json(p_top),
                    subnetwork_file_url=result.subnetwork_file_url + "." +
                    p_top,
                    drug_file_url=result.drug_file_url + "." + p_top,
                    not_last_page=n_end < result.n_node,
                    top1=p_top == "1",
                    top5=p_top == "5",
                    top10=p_top == "10",
                    human=result.species == "9606")
    request.session["id"] = session_id
    request.session["species"] = result.species
    request.session["message"] = "queued/running"
    return HTTPFound(location=request.route_url('status'))
Example #8
0
    def genes_to_scores(self, query_ids, species, parameters):
        """
	parameters containing scoring parameters
	"""
        #g = get_guildify()
        settings = self.get_settings()
        GUILDifier.set_parameters(settings)
        user_entity_ids = []
        for user_entity_id in query_ids:
            try:
                int(user_entity_id)
            except:
                continue
            user_entity_ids.append(user_entity_id)
        print user_entity_ids
        session_id = str(uuid.uuid4())
        print "Session:", session_id
        scoring_parameters = {}
        if "netscore" in parameters:
            scoring_parameters["ns"] = [
                int(parameters["repetitionSelector"]),
                int(parameters["iterationSelector"])
            ]
        if "netzcore" in parameters:
            scoring_parameters["nz"] = [int(parameters["repetitionZelector"])]
        if "netshort" in parameters:
            scoring_parameters["nd"] = None
        result = GUILDifier(session_id, species, settings)
        result.prepare(user_entity_ids)
        result.score(scoring_parameters)
        return dict(session_id=session_id,
                    species=BIANAQuery.TAX_ID_TO_SPECIES_NAME[species],
                    seed_file_url=result.seed_file_url,
                    network_file_url=result.network_file_url,
                    message="submitted",
                    submitted=True)