From 3fede7c6484b01a35245b50437d2fbd268b1731a Mon Sep 17 00:00:00 2001
From: Laurent Modolo <laurent@modolo.fr>
Date: Wed, 19 Dec 2018 16:38:19 +0100
Subject: [PATCH] deepTools: add plot_profile module

---
 .../deepTools/compute_matrix.config           |  2 +-
 src/nf_modules/deepTools/compute_matrix.nf    |  1 -
 src/nf_modules/deepTools/plot_profile.config  | 25 +++++++++++++
 src/nf_modules/deepTools/plot_profile.nf      | 37 +++++++++++++++++++
 src/nf_modules/deepTools/tests.sh             |  1 +
 5 files changed, 64 insertions(+), 2 deletions(-)
 create mode 100644 src/nf_modules/deepTools/plot_profile.config
 create mode 100644 src/nf_modules/deepTools/plot_profile.nf

diff --git a/src/nf_modules/deepTools/compute_matrix.config b/src/nf_modules/deepTools/compute_matrix.config
index cb32bf55..27e63ca6 100644
--- a/src/nf_modules/deepTools/compute_matrix.config
+++ b/src/nf_modules/deepTools/compute_matrix.config
@@ -10,7 +10,7 @@ profiles {
   }
   psmn {
     process{
-      withName: bam_to_bigwig {
+      withName: compute_matrix {
         beforeScript = "source /usr/share/lmod/lmod/init/bash; module use ~/privatemodules"
         module = "deepTools/3.0.2"
         executor = "sge"
diff --git a/src/nf_modules/deepTools/compute_matrix.nf b/src/nf_modules/deepTools/compute_matrix.nf
index 53b4b195..e9de4136 100644
--- a/src/nf_modules/deepTools/compute_matrix.nf
+++ b/src/nf_modules/deepTools/compute_matrix.nf
@@ -19,7 +19,6 @@ Channel
 process compute_matrix {
   tag "$file_id"
   cpus 4
-  echo true
   publishDir "results/mapping/region_matrix/", mode: 'copy'
 
   input:
diff --git a/src/nf_modules/deepTools/plot_profile.config b/src/nf_modules/deepTools/plot_profile.config
new file mode 100644
index 00000000..4a94d1de
--- /dev/null
+++ b/src/nf_modules/deepTools/plot_profile.config
@@ -0,0 +1,25 @@
+profiles {
+  docker {
+    docker.temp = 'auto'
+    docker.enabled = true
+    process {
+      withName: plot_profile {
+        container = "deeptools:3.0.2"
+      }
+    }
+  }
+  psmn {
+    process{
+      withName: plot_profile {
+        beforeScript = "source /usr/share/lmod/lmod/init/bash; module use ~/privatemodules"
+        module = "deepTools/3.0.2"
+        executor = "sge"
+        clusterOptions = "-m e -cwd -V"
+        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/deepTools/plot_profile.nf b/src/nf_modules/deepTools/plot_profile.nf
new file mode 100644
index 00000000..eb089714
--- /dev/null
+++ b/src/nf_modules/deepTools/plot_profile.nf
@@ -0,0 +1,37 @@
+params.matrix = "$baseDir/data/region_matrix/*.mat.gz"
+params.title = "plot title"
+
+log.info "matrix files : ${params.matrix}"
+log.info "plot title : ${params.title}"
+
+Channel
+  .fromPath( params.matrix )
+  .ifEmpty { error "Cannot find any matrix files matching: ${params.matrix}" }
+  .map { it -> [(it.baseName =~ /([^\.]*)/)[0][1], it]}
+  .set { matrix_files }
+
+process plot_profile {
+  tag "$file_id"
+  cpus 4
+  publishDir "results/mapping/region_matrix/", mode: 'copy'
+
+  input:
+    set file_id, file(matrix) from matrix_files
+
+  output:
+    set file_id, "*.pdf" into region_matrix
+
+  script:
+/*
+see more option at
+https://deeptools.readthedocs.io/en/develop/content/tools/plotProfile.html
+*/
+"""
+plotProfile -m ${matrix} \
+  --plotFileFormat=pdf \
+  -out ${file_id}.pdf \
+  --plotType=fill \
+  --perGroup \
+  --plotTitle "${params.title}"
+"""
+}
diff --git a/src/nf_modules/deepTools/tests.sh b/src/nf_modules/deepTools/tests.sh
index 63b8434e..06057a81 100755
--- a/src/nf_modules/deepTools/tests.sh
+++ b/src/nf_modules/deepTools/tests.sh
@@ -4,3 +4,4 @@
 
 ./nextflow src/nf_modules/deepTools/compute_matrix.nf -c src/nf_modules/deepTools/compute_matrix.config -profile docker --bw "results/mapping/bigwig/*.bw" --bed "data/tiny_dataset/annot/tiny.bed"
 
+./nextflow src/nf_modules/deepTools/plot_profile.nf -c src/nf_modules/deepTools/plot_profile.config -profile docker --matrix "results/mapping/region_matrix/*.mat.gz" --title "plot title"
-- 
GitLab