diff --git a/src/nf_modules/danpos/main.nf b/src/nf_modules/danpos/main.nf
new file mode 100644
index 0000000000000000000000000000000000000000..0b3da90e1d6f465d843156bbbd491adfdd115897
--- /dev/null
+++ b/src/nf_modules/danpos/main.nf
@@ -0,0 +1,276 @@
+version = "v2.2.2_cv3"
+container_url = "biocontainers/danpos:${version}"
+
+params.dpos = "--smooth_width 0 -n N "
+params.dpos_out = ""
+
+process dpos_bam {
+  container = "${container_url}"
+  label "big_mem_mono_cpus"
+  tag "$file_id"
+  if (params.dpos_out != "") {
+    publishDir "results/${params.dpos_out}", mode: 'copy', pattern: "${file_prefix}/*"
+  }
+
+  input:
+    tuple val(file_id), path(fastq)
+    tuple val(file_id), path(bam_ip)
+    tuple val(file_id), path(bam_wce)
+
+  output:
+    tuple file_id, "${file_prefix}/pooled/*.wig" into wig
+    tuple val(file_id), path("${file_prefix}"), emit: folder
+
+  script:
+
+  switch(file_id) {
+    case {it instanceof List}:
+      file_prefix = file_id[0]
+    break
+    case {it instanceof Map}:
+      file_prefix = file_id.values()[0]
+    break
+    default:
+      file_prefix = file_id
+    break
+  }
+
+  m = 0
+  if (fastq.size() == 2){
+    m = 1
+  }
+"""
+danpos.py dpos -m ${m}
+  ${params.dpos} \
+  -b ${bam_wce} \
+  -o ${file_prefix} \
+  ${bam_ip}
+"""
+}
+
+process dpos_wig {
+  container = "${container_url}"
+  label "big_mem_mono_cpus"
+  tag "$file_id"
+  if (params.dpos_out != "") {
+    publishDir "results/${params.dpos_out}", mode: 'copy', pattern: "${file_prefix}/*"
+  }
+
+  input:
+    tuple val(file_id), path(fastq)
+    tuple val(file_id), path(wig_ip)
+    tuple val(file_id), path(wig_wce)
+
+  output:
+  tuple file_id, "${file_prefix}/pooled/*.wig" into wig
+  tuple val(file_id), path("${file_prefix}"), emit: folder
+
+  script:
+
+  switch(file_id) {
+    case {it instanceof List}:
+      file_prefix = file_id[0]
+    break
+    case {it instanceof Map}:
+      file_prefix = file_id.values()[0]
+    break
+    default:
+      file_prefix = file_id
+    break
+  }
+
+  m = 0
+  if (fastq.size() == 2){
+    m = 1
+  }
+"""
+danpos.py dpos -m ${m}
+  ${params.dpos} \
+  -b ${wig_wce} \
+  -o ${file_prefix} \
+  ${wig_ip}
+"""
+}
+
+process dpos_wigvswig {
+  container = "${container_url}"
+  label "big_mem_mono_cpus"
+  tag "$file_id"
+  if (params.dpos_out != "") {
+    publishDir "results/${params.dpos_out}", mode: 'copy', pattern: "${file_prefix}/*"
+  }
+
+  input:
+    tuple val(file_id), path(fastq)
+    tuple val(file_id), path(wig_ip_a)
+    tuple val(file_id), path(wig_wce_a)
+    tuple val(file_id), path(wig_ip_b)
+    tuple val(file_id), path(wig_wce_b)
+
+  output:
+  tuple file_id, "${file_prefix}/pooled/*.wig" into wig
+  tuple val(file_id), path("${file_prefix}"), emit: folder
+
+  script:
+
+  switch(file_id) {
+    case {it instanceof List}:
+      file_prefix = file_id[0]
+    break
+    case {it instanceof Map}:
+      file_prefix = file_id.values()[0]
+    break
+    default:
+      file_prefix = file_id
+    break
+  }
+
+  m = 0
+  if (fastq.size() == 2){
+    m = 1
+  }
+"""
+danpos.py dpos -m ${m}
+  ${params.dpos} \
+  -b ${wig_ip_a}:${wig_wce_a},${wig_ip_b}:${wig_wce_b} \
+  -o ${file_prefix} \
+  ${wig_ip_a}:${wig_ip_b}
+"""
+}
+
+params.dpeak = "--smooth_width 0 -n N "
+params.dpeak_out = ""
+
+process dpeak_bam {
+  container = "${container_url}"
+  label "big_mem_mono_cpus"
+  tag "$file_id"
+  if (params.dpeak_out != "") {
+    publishDir "results/${params.dpeak_out}", mode: 'copy', pattern: "${file_prefix}/*"
+  }
+
+  input:
+    tuple val(file_id), path(fastq)
+    tuple val(file_id), path(bam_ip)
+    tuple val(file_id), path(bam_wce)
+
+  output:
+    tuple file_id, "${file_prefix}/pooled/*.wig" into wig
+    tuple val(file_id), path("${file_prefix}"), emit: folder
+
+  script:
+
+  switch(file_id) {
+    case {it instanceof List}:
+      file_prefix = file_id[0]
+    break
+    case {it instanceof Map}:
+      file_prefix = file_id.values()[0]
+    break
+    default:
+      file_prefix = file_id
+    break
+  }
+
+  m = 0
+  if (fastq.size() == 2){
+    m = 1
+  }
+"""
+danpos.py dpeak -m ${m}
+  ${params.dpeak} \
+  -b ${bam_wce} \
+  -o ${file_prefix} \
+  ${bam_ip}
+"""
+}
+
+process dpeak_wig {
+  container = "${container_url}"
+  label "big_mem_mono_cpus"
+  tag "$file_id"
+  if (params.dpeak_out != "") {
+    publishDir "results/${params.dpeak_out}", mode: 'copy', pattern: "${file_prefix}/*"
+  }
+
+  input:
+    tuple val(file_id), path(fastq)
+    tuple val(file_id), path(wig_ip)
+    tuple val(file_id), path(wig_wce)
+
+  output:
+  tuple file_id, "${file_prefix}/pooled/*.wig" into wig
+  tuple val(file_id), path("${file_prefix}"), emit: folder
+
+  script:
+
+  switch(file_id) {
+    case {it instanceof List}:
+      file_prefix = file_id[0]
+    break
+    case {it instanceof Map}:
+      file_prefix = file_id.values()[0]
+    break
+    default:
+      file_prefix = file_id
+    break
+  }
+
+  m = 0
+  if (fastq.size() == 2){
+    m = 1
+  }
+"""
+danpos.py dpeak -m ${m}
+  ${params.dpeak} \
+  -b ${wig_wce} \
+  -o ${file_prefix} \
+  ${wig_ip}
+"""
+}
+
+process dpeak_wigvswig {
+  container = "${container_url}"
+  label "big_mem_mono_cpus"
+  tag "$file_id"
+  if (params.dpeak_out != "") {
+    publishDir "results/${params.dpeak_out}", mode: 'copy', pattern: "${file_prefix}/*"
+  }
+
+  input:
+    tuple val(file_id), path(fastq)
+    tuple val(file_id), path(wig_ip_a)
+    tuple val(file_id), path(wig_wce_a)
+    tuple val(file_id), path(wig_ip_b)
+    tuple val(file_id), path(wig_wce_b)
+
+  output:
+  tuple file_id, "${file_prefix}/pooled/*.wig" into wig
+  tuple val(file_id), path("${file_prefix}"), emit: folder
+
+  script:
+
+  switch(file_id) {
+    case {it instanceof List}:
+      file_prefix = file_id[0]
+    break
+    case {it instanceof Map}:
+      file_prefix = file_id.values()[0]
+    break
+    default:
+      file_prefix = file_id
+    break
+  }
+
+  m = 0
+  if (fastq.size() == 2){
+    m = 1
+  }
+"""
+danpos.py dpeak -m ${m}
+  ${params.dpeak} \
+  -b ${wig_ip_a}:${wig_wce_a},${wig_ip_b}:${wig_wce_b} \
+  -o ${file_prefix} \
+  ${wig_ip_a}:${wig_ip_b}
+"""
+}
\ No newline at end of file