0
|
1 workflow Resistance {
|
|
2 File inputSamplesFile
|
|
3 Array[Array[File]] inputSamples = read_tsv(inputSamplesFile)
|
|
4
|
|
5 String outputDir
|
|
6 Float geneCov
|
|
7 Float geneID
|
|
8 Float pointCov
|
|
9 Float pointID
|
|
10 String python
|
|
11 String kma
|
|
12 String blastn
|
|
13 String resfinder
|
|
14 String resDB
|
|
15 String pointDB
|
|
16
|
|
17 scatter (sample in inputSamples) {
|
|
18 call ResFinder {
|
|
19 input: inputSample=sample,
|
|
20 outputRoot=outputDir,
|
|
21 geneCov=geneCov,
|
|
22 geneID=geneID,
|
|
23 pointCov=pointCov,
|
|
24 pointID=pointID,
|
|
25 python=python,
|
|
26 kma=kma,
|
|
27 blastn=blastn,
|
|
28 resfinder=resfinder,
|
|
29 resDB=resDB,
|
|
30 pointDB=pointDB
|
|
31 }
|
|
32 }
|
|
33 }
|
|
34
|
|
35 task ResFinder {
|
|
36
|
|
37 Array[String] inputSample
|
|
38 Float geneCov
|
|
39 Float geneID
|
|
40 Float pointCov
|
|
41 Float pointID
|
|
42 String python
|
|
43 String kma
|
|
44 String blastn
|
|
45 String resfinder
|
|
46 String resDB
|
|
47 String pointDB
|
|
48
|
|
49 String inputPath1 = inputSample[0]
|
|
50 String inputPath2 = inputSample[1]
|
|
51 String species = inputSample[2]
|
|
52 String inputType = inputSample[3]
|
|
53
|
|
54 String outputRoot
|
|
55 String filename = basename(inputPath1)
|
|
56 String out_dir_name = "${outputRoot}/${filename}.rf_out"
|
|
57
|
|
58 command {
|
|
59
|
|
60 set +u
|
|
61 module unload mgmapper metabat fastqc
|
|
62 module unload ncbi-blast perl
|
|
63 source /home/projects/cge/apps/env/rf4_env/bin/activate
|
|
64 module load perl
|
|
65 module load ncbi-blast/2.8.1+
|
|
66
|
|
67 mkdir ${out_dir_name}
|
|
68
|
|
69 inputArgs=""
|
|
70 pointArgs=""
|
|
71
|
|
72 if [ "${species}" = "other" ] && [ "${inputType}" = "paired" ]
|
|
73 then
|
|
74 inputArgs+="-ifq ${inputPath1} ${inputPath2}"
|
|
75 elif [ "${inputType}" = "paired" ]
|
|
76 then
|
|
77 inputArgs+="-ifq ${inputPath1} ${inputPath2}"
|
|
78 pointArgs+="--point --db_path_point ${pointDB} --min_cov_point ${pointCov} --threshold_point ${pointID}"
|
|
79 elif [ "${species}" = "other"] && [ "${inputType}" = "assembly" ]
|
|
80 then
|
|
81 inputArgs+="-ifa ${inputPath1}"
|
|
82 elif [ "${inputType}" = "assembly" ]
|
|
83 then
|
|
84 inputArgs+="-ifa ${inputPath1}"
|
|
85 pointArgs+="--point --db_path_point ${pointDB} --min_cov_point ${pointCov} --threshold_point ${pointID}"
|
|
86 fi
|
|
87
|
|
88 ${python} ${resfinder} \
|
|
89 $inputArgs \
|
|
90 --blastPath ${blastn} \
|
|
91 --kmaPath ${kma} \
|
|
92 --species "${species}" \
|
|
93 --db_path_res ${resDB} \
|
|
94 --acquired \
|
|
95 --acq_overlap 30 \
|
|
96 --min_cov ${geneCov} \
|
|
97 --threshold ${geneID} \
|
|
98 -o ${out_dir_name} \
|
|
99 $pointArgs
|
|
100 }
|
|
101 output {
|
|
102 File rf_out = "${out_dir_name}/std_format_under_development.json"
|
|
103 }
|
|
104 runtime {
|
|
105 walltime: "1:00:00"
|
|
106 cpu: 2
|
|
107 memory: "4 GB"
|
|
108 queue: "cge"
|
|
109 }
|
|
110 }
|