/
views.py
66 lines (54 loc) · 2.05 KB
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from django.shortcuts import render
from django.http import HttpResponseRedirect
from core.utils import get_version_stats
from core.utils import get_username
from .utils import BLASTNew
from .forms import BLASTNewForm
def index(request):
version, stats = get_version_stats()
username = get_username(request)
form = BLASTNewForm()
return render(request, 'blast_new/index.html',
{
'username': username,
'form': form,
'version': version,
'stats': stats,
},
)
def results(request):
version, stats = get_version_stats()
username = get_username(request)
if request.method == 'POST':
form = BLASTNewForm(request.POST)
if form.is_valid():
cleaned_data = form.cleaned_data
blast = BLASTNew('new', cleaned_data['name'], cleaned_data['sequence'],
cleaned_data['gene_codes'])
blast.save_seqs_to_file()
if not blast.is_blast_db_up_to_date():
blast.create_blast_db()
blast.save_query_to_file()
blast.do_blast()
result = blast.parse_blast_output()
if not result:
result = None
blast.delete_query_output_files()
return render(request, 'blast_new/results.html',
{
'username': username,
'result': result,
'version': version,
'stats': stats,
},
)
else:
return render(request, 'blast_new/index.html',
{
'username': username,
'form': form,
'version': version,
'stats': stats,
},
)
return HttpResponseRedirect('/blast_new/')