Skip to content

Commit

Permalink
Patch: Use tmpdir/lscratch with fastqc due to gpfs fs issue.
Browse files Browse the repository at this point in the history
  • Loading branch information
skchronicles committed Feb 6, 2024
1 parent 1c644b5 commit 11f1ba9
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 5 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.6.0
0.6.1
6 changes: 4 additions & 2 deletions config/cluster.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@
},
"fastqc_raw": {
"threads": "8",
"mem": "16g"
"mem": "16g",
"gres": "lscratch:64"
},
"fastqc_filtered": {
"threads": "8",
"mem": "16g"
"mem": "16g",
"gres": "lscratch:64"
},
"minimap2_genome": {
"threads": "4",
Expand Down
44 changes: 42 additions & 2 deletions workflow/rules/qc.smk
Original file line number Diff line number Diff line change
Expand Up @@ -83,14 +83,34 @@ rule fastqc_raw:
params:
rname = "rawfqc",
outdir = join(workpath, "{name}", "fastqc"),
tmpdir = tmpdir,
conda: depending(join(workpath, config['conda']['modr']), use_conda)
container: depending(config['images']['modr'], use_singularity)
threads: int(allocated("threads", "fastqc_raw", cluster))
shell: """
# Setups temporary directory for
# intermediate files with built-in
# mechanism for deletion on exit
if [ ! -d "{params.tmpdir}" ]; then mkdir -p "{params.tmpdir}"; fi
tmp=$(mktemp -d -p "{params.tmpdir}")
trap 'rm -rf "${{tmp}}"' EXIT
# Running fastqc with local
# disk or a tmpdir, fastqc
# has been observed to lock
# up gpfs filesystems, adding
# this on request by HPC staff
fastqc \\
-t {threads} \\
-o {params.outdir} \\
-o "${{tmp}}" \\
{input.fq}
# Copy output files from tmpdir
# to output directory
find "${{tmp}}" \\
-type f \\
\\( -name '*.html' -o -name '*.zip' \\) \\
-exec cp {{}} {params.outdir} \\;
"""


Expand All @@ -110,14 +130,34 @@ rule fastqc_filtered:
params:
rname = "filtfqc",
outdir = join(workpath, "{name}", "fastqc"),
tmpdir = tmpdir,
conda: depending(join(workpath, config['conda']['modr']), use_conda)
container: depending(config['images']['modr'], use_singularity)
threads: int(allocated("threads", "fastqc_filtered", cluster))
shell: """
# Setups temporary directory for
# intermediate files with built-in
# mechanism for deletion on exit
if [ ! -d "{params.tmpdir}" ]; then mkdir -p "{params.tmpdir}"; fi
tmp=$(mktemp -d -p "{params.tmpdir}")
trap 'rm -rf "${{tmp}}"' EXIT
# Running fastqc with local
# disk or a tmpdir, fastqc
# has been observed to lock
# up gpfs filesystems, adding
# this on request by HPC staff
fastqc \\
-t {threads} \\
-o {params.outdir} \\
-o "${{tmp}}" \\
{input.fq}
# Copy output files from tmpdir
# to output directory
find "${{tmp}}" \\
-type f \\
\\( -name '*.html' -o -name '*.zip' \\) \\
-exec cp {{}} {params.outdir} \\;
"""


Expand Down

0 comments on commit 11f1ba9

Please sign in to comment.