Esempio n. 1
0
def download_data_set(request, data_set_id, what, file_ext):
    us = get_session(request)
    data_sets = DataSet.get_common_data_sets() if us is None else us.get_all_allowed_dataset_set()

    if what == 'reference':
        data_set_id, file_ext = DataSet.split_seq_ext(data_set_id + file_ext)

    try:
        ds = data_sets.get(dirname=data_set_id)
    except DataSet.DoesNotExist:
        return HttpResponseNotFound('Data set %s was not found' % data_set_id)

    if what == 'reference':
        fpath = os.path.join(ds.get_dirpath(), ds.reference_fname)
        if DataSet.split_seq_ext(fpath)[1] != file_ext:
            return HttpResponseNotFound()

        return __download(fpath, data_set_id + file_ext)

    else:
        if what == 'genes':
            fpath = os.path.join(ds.get_dirpath(), ds.genes_fname)
        elif what == 'operons':
            fpath = os.path.join(ds.get_dirpath(), ds.operons_fname)
        else:
            return HttpResponseNotFound()

        if DataSet.split_genes_ext(fpath)[1] != file_ext:
            return HttpResponseNotFound()

        return __download(fpath, data_set_id + '_' + what + file_ext)
Esempio n. 2
0
def reorder_report_columns_ajax(request):
    user_session = get_session(request)
    if user_session is None:
        return HttpResponseNotFound('No user session for this session_key')

    try:
        report_id = request.GET['reportId']
    except KeyError:
        return HttpResponseNotFound('Value of reportId needed')

    try:
        order = map(int, request.GET['order'].split())  # 3 1 4 2
    except KeyError:
        return HttpResponseNotFound('Order was not provided')
    except ValueError:
        return HttpResponseNotFound('Incorrect order: should be space-separated numbers, like "3 1 5 3""')

    try:
        qs = QuastSession.objects.get(report_id=report_id)
    except QuastSession.DoesNotExist:
        return HttpResponseNotFound('Report %s not found' % report_id)

    with open(os.path.join(qs.get_dirpath(), 'report.json')) as report_f:
        report = json.loads(report_f.read())
        report['order'] = order

        # for group in report['report']:
        #     for metric in group[1]:
        #         values_by_asm_names = dict(zip(report['assembliesNames'], metric['values']))
        #         metric['values'] = [values_by_asm_names[name] for name in new_assembly_names]  # new order

        # report['assembliesNames'] = new_assembly_names

    with open(os.path.join(qs.get_dirpath(), 'report.json'), 'w') as report_f:
        report_f.write(json.dumps(report))

    return HttpResponse()
Esempio n. 3
0
def icarus_contig_size_viewer(request, link):
    user_session = get_session(request)
    return icarus_view(user_session, dict(settings.TEMPLATE_ARGS_BY_DEFAULT), request, link, is_contig_size_plot=True)
Esempio n. 4
0
def icarus_alignment_viewer(request, link):
    user_session = get_session(request)
    return icarus_view(user_session, dict(settings.TEMPLATE_ARGS_BY_DEFAULT), request, link)
Esempio n. 5
0
def icarus(request, link):
    user_session = get_session(request)
    return icarus_view(user_session, dict(settings.TEMPLATE_ARGS_BY_DEFAULT), request, link, is_menu=True)
Esempio n. 6
0
def report(request, link):
    user_session = get_session(request)
    return report_view(user_session, dict(settings.TEMPLATE_ARGS_BY_DEFAULT), request, link)