-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathsra2fastq.wdl
More file actions
98 lines (92 loc) · 3.15 KB
/
Copy pathsra2fastq.wdl
File metadata and controls
98 lines (92 loc) · 3.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
version 1.0
workflow sra {
input {
Array[String] accessions
String outdir = "SRA_Downloaded"
Boolean? clean
String? platform_restrict
Int? filesize_restrict
Int? runs_restrict
String container = "ghcr.io/lanl-bioinformatics/edge_sra2fastq:1.6.3"
}
call sra2fastq{
input:
accessions = accessions,
outdir = outdir,
clean = clean,
platform_restrict = platform_restrict,
filesize_restrict = filesize_restrict,
runs_restrict = runs_restrict,
container = container
}
output {
Array[File] outputFiles = sra2fastq.outputFiles
Array[File] output_fq1 = sra2fastq.output_fq1
Array[File] output_fq2 = sra2fastq.output_fq2
Array[String] metadata = sra2fastq.metadata
Boolean isIllumina = sra2fastq.isIllumina
Boolean isPaired = sra2fastq.isPaired
Boolean isPacBio = sra2fastq.isPacBio
}
}
task sra2fastq {
input {
Array[String] accessions
String outdir
Boolean? clean
String? platform_restrict
Int? filesize_restrict
Int? runs_restrict
String container
}
command <<<
sra2fastq.py \
~{sep=' ' accessions} \
~{"--outdir=" + outdir} \
~{true=" --clean True" false="" clean} \
~{" --platform_restrict=" + platform_restrict} \
~{" --filesize_restrict=" + filesize_restrict} \
~{" --runs_restrict=" + runs_restrict}
if compgen -G "~{outdir}"/*/*metadata.txt > /dev/null; then
if grep -iq "illumina" "~{outdir}"/*/*metadata.txt; then
echo true > check_illumina.txt
else
echo false > check_illumina.txt
fi
if grep -iq "PAIRED" "~{outdir}"/*/*metadata.txt; then
echo true > check_paired.txt
else
echo false > check_paired.txt
fi
if grep -iq "PacBio" "~{outdir}"/*/*metadata.txt; then
echo true > check_pacbio.txt
else
echo false > check_pacbio.txt
fi
else
echo false > check_illumina.txt
echo false > check_paired.txt
echo false > check_pacbio.txt
fi
# check if any fastq files were created
if ! compgen -G "~{outdir}"/*/*.fastq.gz > /dev/null; then
echo "WARNING: No FASTQ files were generated for accessions: ~{sep=',' accessions}" >&2
echo "No FASTQ files generated" > warning.txt
fi
>>>
output {
Array[File] outputFiles = glob("~{outdir}/*/*fastq.gz")
Array[File] output_fq1 = glob("~{outdir}/*/*_1.fastq.gz")
Array[File] output_fq2 = glob("~{outdir}/*/*_2.fastq.gz")
Array[String] metadata = glob("~{outdir}/*/*metadata.txt")
Boolean isIllumina = read_boolean("check_illumina.txt")
Boolean isPaired = read_boolean("check_paired.txt")
Boolean isPacBio = read_boolean("check_pacbio.txt")
}
runtime {
memory: "16 GiB"
cpu: 2
docker: container
continueOnReturnCode: true
}
}