diff --git a/src/nf_modules/ribotish/ribotish.config b/src/nf_modules/ribotish/ribotish.config
new file mode 100644
index 0000000000000000000000000000000000000000..aa1d29516e191554ea50d14ea374845e2e8cc1a2
--- /dev/null
+++ b/src/nf_modules/ribotish/ribotish.config
@@ -0,0 +1,42 @@
+profiles {
+  docker {
+    docker.temp = 'auto'
+    docker.enabled = true
+    process {
+      withName: ribotish_quality {
+        container = "lbmc/ribotish:0.2.4"
+        cpus = 4
+      }
+      withName: ribotish_pred {
+        container = "lbmc/ribotish:0.2.4"
+        cpus = 4
+      }
+    }
+  }
+  psmn{
+    process{
+      withName: ribotish_quality {
+        beforeScript = "source .conda_psmn.sh"
+        conda = "src/.conda_envs/ribotish_0.2.4"
+        executor = "sge"
+        clusterOptions = "-cwd -V"
+        cpus = 8
+        memory = "30GB"
+        time = "24h"
+        queue = 'E5-2670deb128A,E5-2670deb128B,E5-2670deb128C,E5-2670deb128D,E5-2670deb128E,E5-2670deb128F'
+        penv = 'openmp16'
+      }
+      withName: ribotish_pred {
+        beforeScript = "source .conda_psmn.sh"
+        conda = "src/.conda_envs/ribotish_0.2.4"
+        executor = "sge"
+        clusterOptions = "-cwd -V"
+        cpus = 8
+        memory = "30GB"
+        time = "24h"
+        queue = 'E5-2670deb128A,E5-2670deb128B,E5-2670deb128C,E5-2670deb128D,E5-2670deb128E,E5-2670deb128F'
+        penv = 'openmp16'
+      }
+    }
+  }
+}
diff --git a/src/nf_modules/ribotish/ribotish_predict.nf b/src/nf_modules/ribotish/ribotish_predict.nf
new file mode 100644
index 0000000000000000000000000000000000000000..a07b16eb9b730aa9c00fedc17952e81896d5dc3e
--- /dev/null
+++ b/src/nf_modules/ribotish/ribotish_predict.nf
@@ -0,0 +1,49 @@
+params.bam = "data/*{Harr,CHX}*.bam"
+params.bai = "data/*{Harr,CHX}*.bam.bai"
+params.gff = "data/*.gtf"
+params.genome = "data/*.fa"
+params.quality = "results/quality/*"
+
+log.info "bam files : ${params.bam}"
+
+Channel
+.fromFilePairs( params.bam )
+.ifEmpty { error "Cannot find any bam files matching: ${params.bam}" }
+.set { bam_files }
+Channel
+.fromFilePairs( params.bai )
+.ifEmpty { error "Cannot find any bai files matching: ${params.bai}" }
+.set { bai_files }
+Channel
+  .fromPath( params.gff )
+  .ifEmpty { error "Cannot find any gff files matching: ${params.gff}" }
+  .set { gff_files }
+Channel
+  .fromPath( params.genome )
+  .ifEmpty { error "Cannot find any fasta files matching: ${params.genome}" }
+  .set { genome_files }
+Channel
+  .fromPath( params.files )
+  .ifEmpty { error "Cannot find any files matching: ${params.quality}" }
+  .set { quality_files }
+
+process ribotish_pred {
+  tag "$file_id"
+  publishDir "results/pred/", mode: 'copy'
+
+  input:
+  set file_id, file(bam) from bam_files
+  set bai_id, file(bai) from bai_files
+  file gff from gff_files.collect()
+  file genome from genome_files.collect()
+  file quality from quality_files.collect()
+
+  output:
+  set file_id, "*" into pred
+
+  script:
+"""
+ribotish predict -t ${bam[0]} -b ${bam[1]} -g ${gff} -f ${genome} \
+-o ${file_id}_pred.txt --harr -p ${task.cpus} --alt
+"""
+}
diff --git a/src/nf_modules/ribotish/ribotish_quality.nf b/src/nf_modules/ribotish/ribotish_quality.nf
new file mode 100644
index 0000000000000000000000000000000000000000..2f5bcd6abdef1601337ff908abc0156a18d9c05f
--- /dev/null
+++ b/src/nf_modules/ribotish/ribotish_quality.nf
@@ -0,0 +1,41 @@
+params.bam = "data/*{.bam,.bam.bai}"
+params.gff = "data/*.gtf"
+params.length = "25,35"
+params.th = "0.5"
+
+log.info "bam files : ${params.bam}"
+
+Channel
+  .fromFilePairs( params.bam )
+  .ifEmpty { error "Cannot find any bam files matching: ${params.bam}" }
+  .set { bam_files }
+Channel
+  .fromPath( params.gff )
+  .ifEmpty { error "Cannot find any gff files matching: ${params.gff}" }
+  .set { gff_files }
+
+process ribotish_quality {
+  tag "$file_id"
+  publishDir "results/quality/", mode: 'copy'
+
+  input:
+  set file_id, file(bam) from bam_files
+  file gff from gff_files.collect()
+
+  output:
+  set file_id, "*" into quality
+
+  script:
+  tis_parameters = ""
+  if (bam =~ /Harr/) {
+    tis_parameters = "-t"
+  }
+"""
+ribotish quality -b ${bam[0]} \
+                 -g ${gff} \
+                 -p ${task.cpus} \
+                 -l ${params.length} \
+                 --th ${params.th} \
+                 ${tis_parameters}
+"""
+}
diff --git a/src/nf_modules/ribotish/tests.sh b/src/nf_modules/ribotish/tests.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0894f2bc24a361778b85ff42bcf383e4baf57eca
--- /dev/null
+++ b/src/nf_modules/ribotish/tests.sh
@@ -0,0 +1,6 @@
+./nextflow src/nf_modules/ribotish/ribotish_quality.nf \
+  -c src/nf_modules/ribotish/ribotish.config \
+  -profile docker \
+  --bam "data/tiny_dataset/map/tiny_v2.bam" \
+  --gff "data/tiny_dataset/annot/tiny.gtf" \
+  -resume