From 86a16ba60f367b6ad9fef1bc5e0b3389693fcabe Mon Sep 17 00:00:00 2001
From: Laurent Modolo <laurent.modolo@ens-lyon.fr>
Date: Fri, 1 Jun 2018 14:39:08 +0200
Subject: [PATCH] UrQt: add tests, nf and config

---
 src/nf_modules/UrQt/tests/tests.sh           |  9 +++
 src/nf_modules/UrQt/tests/trimming_paired.nf | 25 +++++++
 src/nf_modules/UrQt/tests/trimming_single.nf | 28 ++++++++
 src/nf_modules/UrQt/urqt.config              | 16 +++++
 src/nf_modules/UrQt/urqt.nf                  | 71 ++++++++++++++++++++
 src/nf_modules/cutadapt/tests/tests.sh       |  8 +--
 6 files changed, 153 insertions(+), 4 deletions(-)
 create mode 100644 src/nf_modules/UrQt/tests/tests.sh
 create mode 100644 src/nf_modules/UrQt/tests/trimming_paired.nf
 create mode 100644 src/nf_modules/UrQt/tests/trimming_single.nf
 create mode 100644 src/nf_modules/UrQt/urqt.config
 create mode 100644 src/nf_modules/UrQt/urqt.nf

diff --git a/src/nf_modules/UrQt/tests/tests.sh b/src/nf_modules/UrQt/tests/tests.sh
new file mode 100644
index 0000000..49099e2
--- /dev/null
+++ b/src/nf_modules/UrQt/tests/tests.sh
@@ -0,0 +1,9 @@
+nextflow src/nf_modules/UrQt/tests/trimming_paired.nf \
+  -c src/nf_modules/UrQt/UrQt.config \
+  -profile docker \
+  --fastq "data/tiny_dataset/fastq/tiny_R{1,2}.fastq"
+
+nextflow src/nf_modules/UrQt/tests/trimming_single.nf \
+  -c src/nf_modules/UrQt/UrQt.config \
+  -profile docker \
+  --fastq "data/tiny_dataset/fastq/tiny_R{1,2}.fastq"
diff --git a/src/nf_modules/UrQt/tests/trimming_paired.nf b/src/nf_modules/UrQt/tests/trimming_paired.nf
new file mode 100644
index 0000000..4c289c0
--- /dev/null
+++ b/src/nf_modules/UrQt/tests/trimming_paired.nf
@@ -0,0 +1,25 @@
+log.info "fastq files : ${params.fastq}"
+
+Channel
+  .fromFilePairs( params.fastq )
+  .ifEmpty { error "Cannot find any fastq files matching: ${params.fastq}" }
+  .set { fastq_files }
+
+process trimming {
+  tag "$pair_id"
+  cpus 4
+
+  input:
+  set pair_id, file(reads) from fastq_files
+
+  output:
+  file "*_trim_R{1,2}.fastq.gz" into fastq_files_cut
+
+  script:
+"""
+UrQt --t 20 --m ${task.cpus} --gz \
+--in ${reads[0]} --inpair ${reads[1]} \
+--out ${pair_id}_trim_R1.fastq.gz --outpair ${pair_id}_trim_R2.fastq.gz \
+> ${pair_id}_trimming_report.txt
+"""
+}
diff --git a/src/nf_modules/UrQt/tests/trimming_single.nf b/src/nf_modules/UrQt/tests/trimming_single.nf
new file mode 100644
index 0000000..3160f3b
--- /dev/null
+++ b/src/nf_modules/UrQt/tests/trimming_single.nf
@@ -0,0 +1,28 @@
+params.fastq = "$baseDir/data/fastq/*.fastq"
+
+log.info "fastq files : ${params.fastq}"
+
+Channel
+  .fromPath( params.fastq )
+  .ifEmpty { error "Cannot find any fastq files matching: ${params.fastq}" }
+  .set { fastq_files }
+
+process trimming {
+  tag "$reads.baseName"
+  cpus 4
+
+  input:
+  file reads from fastq_files
+
+  output:
+  file "*_trim.fastq.gz" into fastq_files_trim
+
+  script:
+  """
+  UrQt --t 20 --m ${task.cpus} --gz \
+  --in ${reads} \
+  --out ${reads.baseName}_trim.fastq.gz \
+  > ${reads.baseName}_trimming_report.txt
+  """
+}
+
diff --git a/src/nf_modules/UrQt/urqt.config b/src/nf_modules/UrQt/urqt.config
new file mode 100644
index 0000000..0309d09
--- /dev/null
+++ b/src/nf_modules/UrQt/urqt.config
@@ -0,0 +1,16 @@
+profiles {
+  docker {
+    process {
+      $trimming {
+        container = "urqt:d62c1f8"
+      }
+    }
+  }
+  sge {
+    process{
+      $trimming {
+        beforeScript = "module purge; module load UrQt/d62c1f8"
+      }
+    }
+  }
+}
diff --git a/src/nf_modules/UrQt/urqt.nf b/src/nf_modules/UrQt/urqt.nf
new file mode 100644
index 0000000..4c0d07c
--- /dev/null
+++ b/src/nf_modules/UrQt/urqt.nf
@@ -0,0 +1,71 @@
+/*
+* urqt :
+* Imputs : fastq files
+* Output : fastq files
+*/
+/*                      quality trimming                                     */
+
+/*
+* for paired-end data
+*/
+
+params.fastq = "$baseDir/data/fastq/*_{1,2}.fastq"
+
+log.info "fastq files : ${params.fastq}"
+
+Channel
+  .fromFilePairs( params.fastq )
+  .ifEmpty { error "Cannot find any fastq files matching: ${params.fastq}" }
+  .set { fastq_files }
+
+process trimming {
+  tag "$pair_id"
+  cpus 4
+
+  input:
+  set pair_id, file(reads) from fastq_files
+
+  output:
+  file "*_trim_R{1,2}.fastq.gz" into fastq_files_cut
+
+  script:
+"""
+UrQt --t 20 --m ${task.cpus} --gz \
+--in ${reads[0]} --inpair ${reads[1]} \
+--out ${pair_id}_trim_R1.fastq.gz --outpair ${pair_id}_trim_R2.fastq.gz \
+> ${pair_id}_trimming_report.txt
+"""
+}
+
+/*
+* for single-end data
+*/
+
+params.fastq = "$baseDir/data/fastq/*.fastq"
+
+log.info "fastq files : ${params.fastq}"
+
+Channel
+  .fromPath( params.fastq )
+  .ifEmpty { error "Cannot find any fastq files matching: ${params.fastq}" }
+  .set { fastq_files }
+
+process trimming {
+  tag "$reads.baseName"
+  cpus 4
+
+  input:
+  file reads from fastq_files
+
+  output:
+  file "*_trim.fastq.gz" into fastq_files_trim
+
+  script:
+"""
+UrQt --t 20 --m ${task.cpus} --gz \
+--in ${reads} \
+--out ${reads.baseName}_trim.fastq.gz \
+> ${reads.baseName}_trimming_report.txt
+"""
+}
+
diff --git a/src/nf_modules/cutadapt/tests/tests.sh b/src/nf_modules/cutadapt/tests/tests.sh
index 9651978..a684410 100644
--- a/src/nf_modules/cutadapt/tests/tests.sh
+++ b/src/nf_modules/cutadapt/tests/tests.sh
@@ -1,19 +1,19 @@
-nextflow src/nf_modules/cutadapt/test/adaptor_removal_paired.nf \
+nextflow src/nf_modules/cutadapt/tests/adaptor_removal_paired.nf \
   -c src/nf_modules/cutadapt/cutadapt.config \
   -profile docker \
   --fastq "data/tiny_dataset/fastq/tiny_R{1,2}.fastq"
 
-nextflow src/nf_modules/cutadapt/test/adaptor_removal_single.nf \
+nextflow src/nf_modules/cutadapt/tests/adaptor_removal_single.nf \
   -c src/nf_modules/cutadapt/cutadapt.config \
   -profile docker \
   --fastq "data/tiny_dataset/fastq/tiny_R{1,2}.fastq"
 
-nextflow src/nf_modules/cutadapt/test/trimming_paired.nf \
+nextflow src/nf_modules/cutadapt/tests/trimming_paired.nf \
   -c src/nf_modules/cutadapt/cutadapt.config \
   -profile docker \
   --fastq "data/tiny_dataset/fastq/tiny_R{1,2}.fastq"
 
-nextflow src/nf_modules/cutadapt/test/trimming_single.nf \
+nextflow src/nf_modules/cutadapt/tests/trimming_single.nf \
   -c src/nf_modules/cutadapt/cutadapt.config \
   -profile docker \
   --fastq "data/tiny_dataset/fastq/tiny_R{1,2}.fastq"
-- 
GitLab