diff resfinder/scripts/wdl/resfinder.wdl @ 0:a16d245332d6 draft default tip

Uploaded
author dcouvin
date Wed, 08 Dec 2021 01:46:07 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resfinder/scripts/wdl/resfinder.wdl	Wed Dec 08 01:46:07 2021 +0000
@@ -0,0 +1,110 @@
+workflow Resistance {
+    File inputSamplesFile
+    Array[Array[File]] inputSamples = read_tsv(inputSamplesFile)
+
+    String outputDir
+    Float geneCov
+    Float geneID
+    Float pointCov
+    Float pointID
+    String python
+    String kma
+    String blastn
+    String resfinder
+    String resDB
+    String pointDB
+
+    scatter (sample in inputSamples) {
+        call ResFinder {
+            input: inputSample=sample,
+                outputRoot=outputDir,
+                geneCov=geneCov,
+                geneID=geneID,
+                pointCov=pointCov,
+                pointID=pointID,
+                python=python,
+                kma=kma,
+                blastn=blastn,
+                resfinder=resfinder,
+                resDB=resDB,
+                pointDB=pointDB
+        }
+    }
+}
+
+task ResFinder {
+
+    Array[String] inputSample
+    Float geneCov
+    Float geneID
+    Float pointCov
+    Float pointID
+    String python
+    String kma
+    String blastn
+    String resfinder
+    String resDB
+    String pointDB
+
+    String inputPath1 = inputSample[0]
+    String inputPath2 = inputSample[1]
+    String species = inputSample[2]
+    String inputType = inputSample[3]
+
+    String outputRoot
+    String filename = basename(inputPath1)
+    String out_dir_name = "${outputRoot}/${filename}.rf_out"
+
+    command {
+
+        set +u
+        module unload mgmapper metabat fastqc
+        module unload ncbi-blast perl
+        source /home/projects/cge/apps/env/rf4_env/bin/activate
+        module load perl
+        module load ncbi-blast/2.8.1+
+
+        mkdir ${out_dir_name}
+
+        inputArgs=""
+        pointArgs=""
+
+        if [ "${species}" = "other" ] && [ "${inputType}" = "paired" ]
+        then
+            inputArgs+="-ifq ${inputPath1} ${inputPath2}"
+        elif [ "${inputType}" = "paired" ]
+        then
+            inputArgs+="-ifq ${inputPath1} ${inputPath2}"
+            pointArgs+="--point --db_path_point ${pointDB} --min_cov_point ${pointCov} --threshold_point ${pointID}"
+        elif [ "${species}" = "other"] && [ "${inputType}" = "assembly" ]
+        then
+            inputArgs+="-ifa ${inputPath1}"
+        elif [ "${inputType}" = "assembly" ]
+        then
+            inputArgs+="-ifa ${inputPath1}"
+            pointArgs+="--point --db_path_point ${pointDB} --min_cov_point ${pointCov} --threshold_point ${pointID}"
+        fi
+
+        ${python} ${resfinder} \
+            $inputArgs \
+            --blastPath ${blastn} \
+            --kmaPath ${kma} \
+            --species "${species}" \
+            --db_path_res ${resDB} \
+            --acquired \
+            --acq_overlap 30 \
+            --min_cov ${geneCov} \
+            --threshold ${geneID} \
+            -o ${out_dir_name} \
+            $pointArgs
+    }
+    output {
+        File rf_out = "${out_dir_name}/std_format_under_development.json"
+    }
+    runtime {
+        walltime: "1:00:00"
+        cpu: 2
+        memory: "4 GB"
+        queue: "cge"
+    }
+}