tools
This commit is contained in:
@@ -6,5 +6,9 @@ urlpatterns = [
|
||||
url("(.*\.html$)", views.out_page),
|
||||
url("gen_to_fa", views.gen_to_fa),
|
||||
url("gff_to_gtf", views.gff_to_gtf),
|
||||
url("blast", views.blast)
|
||||
url("blast", views.blast),
|
||||
url("orf", views.orf),
|
||||
url("basics", views.basics),
|
||||
url("pfam", views.pfam),
|
||||
url("Differential_expression_analysis", views.Differential_expression_analysis)
|
||||
]
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import os, time
|
||||
import os
|
||||
|
||||
from Bio import SeqIO
|
||||
from django.http import JsonResponse
|
||||
from django.shortcuts import render
|
||||
|
||||
from chart import tools
|
||||
from Bio import SeqIO
|
||||
|
||||
|
||||
def out_page(request, page):
|
||||
@@ -43,15 +44,6 @@ def gff_to_gtf(request):
|
||||
return JsonResponse(data)
|
||||
|
||||
|
||||
def gff_to_gtf(request):
|
||||
file = request.FILES.get("file")
|
||||
file_path, file_id = tools.path_out("chart")
|
||||
tools.keep_file(file, file_path)
|
||||
data = {"id": file_id}
|
||||
os.system(f"{tools.tools_path}/gffread {file_path} -T -o {file_path}.gtf")
|
||||
return JsonResponse(data)
|
||||
|
||||
|
||||
def orf(request):
|
||||
file = request.FILES.get("file", None)
|
||||
begin = request.POST.get("begin", None)
|
||||
@@ -66,3 +58,64 @@ def orf(request):
|
||||
os.system(
|
||||
f"{tools.tools_path}/ORFfinder {file_path} -b {begin} -e {end} -c {'t' if Cyclotype == 'YES' else 'f'} -g {Codons} -outfmt {outfmt} -out {file_path}.txt")
|
||||
return JsonResponse(data)
|
||||
|
||||
|
||||
def basics(request):
|
||||
file = request.FILES.get("file", None)
|
||||
# Sequence_cleaning = request.POST.get("Sequence_cleaning", None) # 序列清洗
|
||||
# Sequence_length = request.POST.get("Sequence_length", None) # 序列长度
|
||||
# GC_content = request.POST.get("GC_content", None) # GC含量
|
||||
# Sequence_flip = request.POST.get("Sequence_flip", None) # 序列翻转
|
||||
# Reverse_complementarity = request.POST.get("Reverse_complementarity", None) # 反向互补
|
||||
# Codon_preference = request.POST.get("Codon_preference", None) # 密码子偏好性
|
||||
# Codon_frequency = request.POST.get("Codon_frequency", None) # 密码子频率
|
||||
file_path, file_id = tools.path_out("chart")
|
||||
tools.keep_file(file, file_path)
|
||||
|
||||
josn = {}
|
||||
for i in request.GET.lists():
|
||||
if i[0] not in ['_', 'file', 'k']:
|
||||
josn[i[0]] = i[1][0]
|
||||
|
||||
data = {"id": file_id}
|
||||
|
||||
tools.Basics(file_path, josn)
|
||||
|
||||
return JsonResponse(data)
|
||||
|
||||
|
||||
def pfam(request):
|
||||
file = request.FILES.get("file", None)
|
||||
b_dom = request.POST.get("b_dom", None)
|
||||
b_seq = request.POST.get("b_seq", None)
|
||||
e_dom = request.POST.get("e_dom", None)
|
||||
e_seq = request.POST.get("e_seq", None)
|
||||
align = request.POST.get("align", None)
|
||||
clan_overlap = request.POST.get("clan_overlap", None)
|
||||
|
||||
file_path, file_id = tools.path_out("chart")
|
||||
tools.keep_file(file, file_path)
|
||||
data = {"id": file_id}
|
||||
os.system(
|
||||
f"{tools.tools_path}/pfam_scan.pl -fasta {file_path} -b_dom {b_dom} -b_seq {b_seq} -e_dom {e_dom} -e_seq {e_seq} -align {align} -clan_overlap {clan_overlap} -dir {tools.tools_path}/db/ -out {file_path}.txt")
|
||||
|
||||
return JsonResponse(data)
|
||||
|
||||
|
||||
def Differential_expression_analysis(request):
|
||||
if request.method == 'POST':
|
||||
files = request.FILES.getlist('files')
|
||||
|
||||
file_path, file_id = tools.path_out("chart")
|
||||
for f in files:
|
||||
ty = (f.name).split(".")[-1]
|
||||
destination = open('%s/%s' % (file_path, ty), 'wb')
|
||||
for chunk in f.chunks():
|
||||
destination.write(chunk)
|
||||
|
||||
destination.close()
|
||||
|
||||
file_path, file_id = tools.path_out("chart")
|
||||
data = {"id": file_id}
|
||||
|
||||
return JsonResponse(data)
|
||||
|
||||
Reference in New Issue
Block a user