diff --git a/src/RNAseq_jbc.config b/src/RNAseq_jbc.config
new file mode 100644
index 0000000000000000000000000000000000000000..5b9628c82f46e55542c8e89f8d20e1c5db5a3fee
--- /dev/null
+++ b/src/RNAseq_jbc.config
@@ -0,0 +1,27 @@
+profiles {
+  docker {
+    docker.temp = 'auto'
+    docker.enabled = true
+    process {
+      $trimming {
+        container = "cutadapt:1.14"
+        container = "urqt:d62c1f8"
+      }
+    }
+  }
+  sge {
+    process{
+      $trimming {
+        beforeScript = "module purge; module load UrQt/d62c1f8 ; module load cutadapt/1.14"
+        executor = "sge"
+        cpus = 4
+        memory = "5GB"
+        time = "6h"
+        queueSize = 1000
+        pollInterval = '60sec'
+        queue = 'h6-E5-2667v4deb128'
+        penv = 'openmp8'
+      }
+    }
+  }
+}
diff --git a/src/RNAseq_jbc.nf b/src/RNAseq_jbc.nf
new file mode 100644
index 0000000000000000000000000000000000000000..7bd6512f0d925922b0c710af81966bfacf0796ea
--- /dev/null
+++ b/src/RNAseq_jbc.nf
@@ -0,0 +1,88 @@
+/*
+* RNAseq pipeline
+* cutadapt :
+* Imputs : fastq files
+* Output : fastq files
+*/
+
+/*                      Illumina adaptor removal                             */
+
+/*
+* for paired-end data
+*/
+
+params.fastq = "$baseDir/data/fastq/*_R{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 adaptor_removal {
+  tag "$pair_id"
+  publishDir "results/fastq/adaptor_removal/", mode: 'copy'
+
+  input:
+  set pair_id, file(reads) from fastq_files
+
+  output:
+  file "*_cut_R{1,2}.fastq.gz" into fastq_files_cut
+
+  script:
+  """
+  cutadapt -a AGATCGGAAGAG -g CTCTTCCGATCT -A AGATCGGAAGAG -G CTCTTCCGATCT \
+  -o ${pair_id}_cut_R1.fastq.gz -p ${pair_id}_cut_R2.fastq.gz \
+  ${reads[0]} ${reads[1]} > ${pair_id}_report.txt
+  """
+}
+
+
+/*        quality trimming                                     */
+/* for paired-end data */
+
+process trimming {
+  tag "$pair_id"
+  publishDir "results/fastq/trimming/", mode: 'copy'
+
+  input:
+  set pair_id, file(reads) from fastq_files_cut
+
+  output:
+  file "*_trim_R{1,2}.fastq.gz" into fastq_files_trim
+
+  script:
+  """
+  cutadapt -q 20,20 \
+  -o ${pair_id}_trim_R1.fastq.gz -p ${pair_id}_trim_R2.fastq.gz \
+  ${reads[0]} ${reads[1]} > ${pair_id}_report.txt
+  """
+}
+
+
+/*          urqt             quality trimming                                     */
+/* for paired-end data */
+
+
+process trimming {
+  tag "${reads}"
+  cpus 4
+  publishDir "results/fastq/trimming2/", mode: 'copy'
+
+  input:
+  set pair_id, file(reads) from fastq_files_cut
+
+  output:
+  file "*_trim2_R{1,2}.fastq.gz" into fastq_files_trim2
+
+  script:
+"""
+UrQt --t 20 --m ${task.cpus} --gz \
+--in ${reads[0]} --inpair ${reads[1]} \
+--out ${reads[0].baseName}_trim_R1.fastq.gz --outpair ${reads[1].baseName}_trim_R2.fastq.gz \
+> ${reads[0].baseName}_trimming_report.txt
+"""
+}
+
+