Пример #1
0
def demo_3d_run(request):
    if 'mode' in request.GET and len(request.GET.get('mode')):
        mode = str(request.GET.get('mode')[0])
    else:
        mode = '1'
    job_id = ARG['DEMO_3D_ID_' + mode]
    create_HTML_page_wait(job_id, 3)
    which_muts = range(ARG['MIN_MUTS'], ARG['MAX_MUTS'] + 1)
    is_exclude = ARG['IS_EXCLUDE']
    is_single = ARG['IS_SINGLE']
    is_fill_WT = ARG['IS_FILLWT']
    if mode == '2':
        structures = [STR['P4P6_1'], STR['P4P6_2']]
    else:
        structures = [STR['P4P6']]
        is_exclude = (not is_exclude)
        is_single = (not is_single)
        is_fill_WT = (not is_fill_WT)

    job = threading.Thread(target=design_3d_wrapper,
                           args=(SEQ['P4P6'], structures, SEQ['PRIMER_SET'],
                                 'P4P6_2HP', ARG['OFFSET'], which_muts,
                                 [int(ARG['LIB'])], ARG['NUM_MUT'], is_exclude,
                                 is_single, is_fill_WT, job_id))
    job.start()
    return result_json(job_id)
Пример #2
0
def demo_2d_run(request):
    job_id = ARG['DEMO_2D_ID']
    create_HTML_page_wait(job_id, 2)
    which_muts = range(ARG['MIN_MUTS'], ARG['MAX_MUTS'] + 1)
    job = threading.Thread(target=design_2d_wrapper,
                           args=(SEQ['P4P6'], SEQ['PRIMER_SET'], 'P4P6_2HP',
                                 ARG['OFFSET'], which_muts, [int(ARG['LIB'])
                                                             ], job_id))
    job.start()
    return result_json(job_id)
Пример #3
0
def result(request):
    if request.method != 'GET': return error403(request)
    if 'job_id' not in request.GET: return error400(request)

    job_id = request.GET.get('job_id')
    if len(job_id) != 16 or (not re.match('[0-9a-fA-F]{16}', job_id)):
        return error400(request)
    response = result_json(job_id)
    response['Access-Control-Allow-Origin'] = request.META.get('HTTP_ORIGIN')
    response['Access-Control-Allow-Methods'] = 'GET'
    return response
Пример #4
0
def design_2d_run(request):
    if request.method != 'POST': return error400(request)
    form = Design2DForm(request.POST)
    if form.is_valid():
        (sequence, tag) = form_data_clean_common(form.cleaned_data)
        (primers, offset, min_muts, max_muts, which_muts,
         which_lib) = form_data_clean_2d(form.cleaned_data, sequence)
        is_valid = form_check_valid_job(2,
                                        sequence,
                                        primers=primers,
                                        min_muts=min_muts,
                                        max_muts=max_muts)
        if isinstance(is_valid, HttpResponse):
            return is_valid
        else:
            primers = is_valid[1]

        job_id = random_job_id()
        create_HTML_page_wait(job_id, 2)
        job_entry = Design2D(date=datetime.now(),
                             job_id=job_id,
                             sequence=sequence,
                             tag=tag,
                             status='1',
                             params=simplejson.dumps(
                                 {
                                     'offset': offset,
                                     'min_muts': min_muts,
                                     'max_muts': max_muts,
                                     'which_lib': which_lib
                                 },
                                 sort_keys=True,
                                 indent=' ' * 4),
                             result=simplejson.dumps({'primer_set': primers},
                                                     sort_keys=True,
                                                     indent=' ' * 4))
        job_entry.save()
        job_list_entry = JobIDs(job_id=job_id, type=2, date=datetime.now())
        job_list_entry.save()
        job = threading.Thread(target=design_2d_wrapper,
                               args=(sequence, primers, tag, offset,
                                     which_muts, which_lib, job_id))
        job.start()
        return result_json(job_id)
    else:
        return HttpResponse(simplejson.dumps({
            'error': '00',
            'type': 2
        },
                                             sort_keys=True,
                                             indent=' ' * 4),
                            content_type='application/json')
    return render(request, PATH.HTML_PATH['design_2d'], {'2d_form': form})
Пример #5
0
def design_1d_run(request):
    if request.method != 'POST': return error400(request)
    form = Design1DForm(request.POST)
    if form.is_valid():
        (sequence, tag) = form_data_clean_common(form.cleaned_data)
        (min_Tm, max_len, min_len, num_primers, is_num_primers, is_check_t7) = form_data_clean_1d(form.cleaned_data, sequence)
        if is_check_t7: (sequence, _, _) = is_t7_present(sequence)
        is_valid = form_check_valid_job(1, sequence, num_primers=num_primers)
        if isinstance(is_valid, HttpResponse): return is_valid

        job_id = random_job_id()
        create_HTML_page_wait(job_id, 1)
        job_entry = Design1D(date=datetime.now(), job_id=job_id, sequence=sequence, tag=tag, status='1', params=simplejson.dumps({'min_Tm': min_Tm, 'max_len': max_len, 'min_len': min_len, 'num_primers': num_primers, 'is_num_primers': is_num_primers, 'is_check_t7': is_check_t7}, sort_keys=True, indent=' ' * 4), result=simplejson.dumps({}))
        job_entry.save()
        job_list_entry = JobIDs(job_id=job_id, type=1, date=datetime.now())
        job_list_entry.save()
        job = threading.Thread(target=design_1d_wrapper, args=(sequence, tag, min_Tm, num_primers, max_len, min_len, is_check_t7, job_id))
        job.start()
        return result_json(job_id)
    else:
        return HttpResponse(simplejson.dumps({'error': '00', 'type': 1}, sort_keys=True, indent=' ' * 4), content_type='application/json')
    return render(request, PATH.HTML_PATH['design_1d'], {'1d_form': form})
Пример #6
0
def demo_1d_run(request):
    job_id = ARG['DEMO_1D_ID']
    create_HTML_page_wait(job_id, 1)
    job = threading.Thread(target=design_1d_wrapper, args=(SEQ['P4P6'], 'P4P6_2HP', ARG['MIN_TM'], ARG['NUM_PRM'], ARG['MAX_LEN'], ARG['MIN_LEN'], 1, job_id))
    job.start()
    return result_json(job_id)