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)
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)
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
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})
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})
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)