|
|
@@ -135,6 +135,12 @@ |
|
|
|
(fs-lib/create-directories! files-keep-dir) |
|
|
|
(fs-api/copy-files! files-keep files-keep-dir {:replace-existing true}))) |
|
|
|
|
|
|
|
(defn update-log-process! |
|
|
|
"Update message into log file and process into database." |
|
|
|
[log-path coll task-id process] |
|
|
|
(spit log-path (json/write-str coll)) |
|
|
|
(update-process! task-id process)) |
|
|
|
|
|
|
|
(defn date |
|
|
|
[] |
|
|
|
(.format (java.text.SimpleDateFormat. "yyyy-MM-dd") |
|
|
@@ -181,24 +187,33 @@ |
|
|
|
(decompression-tar files-qualimap-RNA-tar)) |
|
|
|
(update-process! task-id 50) |
|
|
|
(gen-multiqc-config config-path) |
|
|
|
(spit parameters-file (json/write-str {"Report Name" (:name parameters) |
|
|
|
"Description" (:description parameters) |
|
|
|
"Report Tool" (format "%s-%s" |
|
|
|
(:plugin-name parameters) |
|
|
|
(:plugin-version parameters)) |
|
|
|
"Team" "Quartet Team" |
|
|
|
"Date" (date)})) |
|
|
|
(let [exp2qcdt-result (exp2qcdt/call-exp2qcdt! exp-fpkm-filepath exp-count-filepath metadata-file result-dir) |
|
|
|
multiqc-result (if (= (:status exp2qcdt-result) "Success") |
|
|
|
(mq/multiqc result-dir dest-dir {:config config-path :template "default" :title "Quartet RNA report"}) |
|
|
|
;;(mq/multiqc result-dir) |
|
|
|
exp2qcdt-result) |
|
|
|
result {:status (:status multiqc-result) |
|
|
|
:msg (:msg multiqc-result)} |
|
|
|
log (json/write-str result)] |
|
|
|
(log/info "Status: " result) |
|
|
|
(spit log-path log)) |
|
|
|
(update-process! task-id 100) |
|
|
|
(let [results (ff/chain-fn-coll [(fn [] |
|
|
|
(update-process! task-id 60) |
|
|
|
(exp2qcdt/call-exp2qcdt! exp-fpkm-filepath exp-count-filepath metadata-file result-dir)) |
|
|
|
(fn [] |
|
|
|
(update-process! task-id 70) |
|
|
|
(spit parameters-file (json/write-str {"Report Name" (:name parameters) |
|
|
|
"Description" (:description parameters) |
|
|
|
"Report Tool" (format "%s-%s" |
|
|
|
(:plugin-name parameters) |
|
|
|
(:plugin-version parameters)) |
|
|
|
"Team" "Quartet Team" |
|
|
|
"Date" (date)})) |
|
|
|
{:status "Success" :msg ""}) |
|
|
|
(fn [] |
|
|
|
(update-process! task-id 80) |
|
|
|
(mq/multiqc result-dir dest-dir {:config config-path |
|
|
|
:template "default" |
|
|
|
:title "Quartet RNA report" |
|
|
|
:env {:PATH (add-env-to-path "quartet-metqc-report")}}))] |
|
|
|
(fn [result] (= (:status result) "Success"))) |
|
|
|
status (:status (last results)) |
|
|
|
msg (apply str (map :msg results)) |
|
|
|
process (if (= status "Success") 100 -1)] |
|
|
|
(log/info (format "Running batch command: %s" (pr-str results))) |
|
|
|
(update-log-process! log-path {:status status |
|
|
|
:msg msg} |
|
|
|
task-id process)) |
|
|
|
(catch Exception e |
|
|
|
(update-process! task-id -1) |
|
|
|
(let [log (json/write-str {:status "Error" :msg (.toString e)})] |