From df1d86522721d1659395ade89e46283d340240ff Mon Sep 17 00:00:00 2001 From: XXAY <2606432452@qq.com> Date: Fri, 8 Oct 2021 16:38:48 +0800 Subject: [PATCH] tools --- .idea/dataSources.xml | 7 ++++ Time_Series_Plot.png | Bin 39620 -> 0 bytes templates/page/tools.html | 43 +++++++++++++++++++++-- templates/tools/fastqc.html | 68 +++--------------------------------- tools/views.py | 16 +++++++++ 5 files changed, 68 insertions(+), 66 deletions(-) delete mode 100644 Time_Series_Plot.png diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 380c887..10c878c 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -16,5 +16,12 @@ + + sqlite.xerial + true + org.sqlite.JDBC + jdbc:sqlite:identifier.sqlite + $ProjectFileDir$ + \ No newline at end of file diff --git a/Time_Series_Plot.png b/Time_Series_Plot.png deleted file mode 100644 index 65375bd2e5a548cb7cce1cfc1b7290d8e44e5e6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39620 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 xf%;`OzKlBpsxJ%MQ3m5V5{(TvMK|oS$CPI8= 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' + ' ' + $("#down").append(ab) + } + , error: function (index, upload) { + layer.closeAll('loading'); //关闭loading + } + }) + ; + }) + + } + diff --git a/templates/tools/fastqc.html b/templates/tools/fastqc.html index 5dd93b9..5d12db6 100644 --- a/templates/tools/fastqc.html +++ b/templates/tools/fastqc.html @@ -18,81 +18,21 @@
-
+
- +
-
-
- -
- -
-
- -
- -
- -
-
- - -
- -
- -
-
- -
- -
- -
-
diff --git a/tools/views.py b/tools/views.py index 1e44641..20305da 100644 --- a/tools/views.py +++ b/tools/views.py @@ -101,6 +101,22 @@ def pfam(request): return JsonResponse(data) +def fastqc(request): + file = request.FILES.get("file", None) + format = request.POST.get("format", None) + if format is None: + format = "fastq" + + file_path, file_id = tools.path_out("chart") + tools.keep_file(file, file_path) + data = {"id": file_id} + os.mkdir(f"{file_path[:-1]}") + os.system( + f"{tools.tools_path}/fastqc -o {file_path[:-1]} -f {format} {file_path}") + os.system(f"7z a -t7z -r {file_id}.7z {file_path[:-1]}") + return JsonResponse(data) + + def Differential_expression_analysis(request): if request.method == 'POST': files = request.FILES.getlist('files')