diff --git a/src/nf_modules/Bowtie2/indexing.config b/src/nf_modules/Bowtie2/indexing.config
index 434889bc922c66338e8459cb6990fb43e0d04ea1..c53d855a63f599cad802c3f12e0114c875bd3ee5 100644
--- a/src/nf_modules/Bowtie2/indexing.config
+++ b/src/nf_modules/Bowtie2/indexing.config
@@ -3,21 +3,33 @@ profiles {
     docker.temp = 'auto'
     docker.enabled = true
     process {
-      withName: mapping_fastq {
+      withName: index_fasta {
         container = "bowtie2:2.3.4.1"
+        cpus = 4
+      }
+    }
+  }
+  singularity {
+    singularity.enabled = true
+    process {
+      withName: index_fasta {
+        container = "file://bin/bowtie2:2.3.4.1.sif"
+        cpus = 4
       }
     }
   }
   psmn {
     process{
-      withName: mapping_fastq {
+      withName: index_fasta {
         beforeScript = "source /usr/share/lmod/lmod/init/bash; module use ~/privatemodules"
         module = "Bowtie2/2.3.4.1"
         executor = "sge"
         clusterOptions = "-m e -cwd -V"
+        cpus = 16
         memory = "20GB"
         time = "12h"
-        queue = 'monointeldeb128'
+        queue = 'E5-2670deb128A,E5-2670deb128B,E5-2670deb128C,E5-2670deb128D,E5-2670deb128E,E5-2670deb128F'
+        penv = 'openmp16'
       }
     }
   }
diff --git a/src/nf_modules/Bowtie2/indexing.nf b/src/nf_modules/Bowtie2/indexing.nf
index 4f3cde5e990f3528f2f000c8e68131edafdecf97..45318049b076f6dcad4d7ef2335185796a5e7234 100644
--- a/src/nf_modules/Bowtie2/indexing.nf
+++ b/src/nf_modules/Bowtie2/indexing.nf
@@ -9,7 +9,6 @@ Channel
 
 process index_fasta {
   tag "$fasta.baseName"
-  cpus 4
   publishDir "results/mapping/index/", mode: 'copy'
 
   input:
diff --git a/src/nf_modules/Bowtie2/mapping_paired.config b/src/nf_modules/Bowtie2/mapping_paired.config
index 30150ff97c6cbc333746b0a86d08c8da8db34c13..27933c3bf5582ae32fc7012598e8f05bb642a09b 100644
--- a/src/nf_modules/Bowtie2/mapping_paired.config
+++ b/src/nf_modules/Bowtie2/mapping_paired.config
@@ -5,6 +5,16 @@ profiles {
     process {
       withName: mapping_fastq {
         container = "bowtie2:2.3.4.1"
+        cpus = 4
+      }
+    }
+  }
+  singularity {
+    singularity.enabled = true
+    process {
+      withName: mapping_fastq {
+        container = "file://bin/bowtie2:2.3.4.1.sif"
+        cpus = 4
       }
     }
   }
@@ -15,6 +25,7 @@ profiles {
         module = "Bowtie2/2.3.4.1:SAMtools/1.7"
         executor = "sge"
         clusterOptions = "-m e -cwd -V"
+        cpus = 16
         memory = "30GB"
         time = "24h"
         queue = 'E5-2670deb128A,E5-2670deb128B,E5-2670deb128C,E5-2670deb128D,E5-2670deb128E,E5-2670deb128F'
diff --git a/src/nf_modules/Bowtie2/mapping_paired.nf b/src/nf_modules/Bowtie2/mapping_paired.nf
index 7422b143606e720138d07ea3b04fe16d4301c117..dc4667400ec33eed593b1b93decf42994d8777ad 100644
--- a/src/nf_modules/Bowtie2/mapping_paired.nf
+++ b/src/nf_modules/Bowtie2/mapping_paired.nf
@@ -15,7 +15,6 @@ Channel
 
 process mapping_fastq {
   tag "$pair_id"
-  cpus 4
   publishDir "results/mapping/bams/", mode: 'copy'
 
   input:
diff --git a/src/nf_modules/Bowtie2/mapping_single.config b/src/nf_modules/Bowtie2/mapping_single.config
index 30150ff97c6cbc333746b0a86d08c8da8db34c13..27933c3bf5582ae32fc7012598e8f05bb642a09b 100644
--- a/src/nf_modules/Bowtie2/mapping_single.config
+++ b/src/nf_modules/Bowtie2/mapping_single.config
@@ -5,6 +5,16 @@ profiles {
     process {
       withName: mapping_fastq {
         container = "bowtie2:2.3.4.1"
+        cpus = 4
+      }
+    }
+  }
+  singularity {
+    singularity.enabled = true
+    process {
+      withName: mapping_fastq {
+        container = "file://bin/bowtie2:2.3.4.1.sif"
+        cpus = 4
       }
     }
   }
@@ -15,6 +25,7 @@ profiles {
         module = "Bowtie2/2.3.4.1:SAMtools/1.7"
         executor = "sge"
         clusterOptions = "-m e -cwd -V"
+        cpus = 16
         memory = "30GB"
         time = "24h"
         queue = 'E5-2670deb128A,E5-2670deb128B,E5-2670deb128C,E5-2670deb128D,E5-2670deb128E,E5-2670deb128F'
diff --git a/src/nf_modules/Bowtie2/mapping_single.nf b/src/nf_modules/Bowtie2/mapping_single.nf
index 66676991aae710a5263d763dee2ad7dbde6b7a51..1b7954ec174cccd0ad70ee02b79b3fd5b1a91589 100644
--- a/src/nf_modules/Bowtie2/mapping_single.nf
+++ b/src/nf_modules/Bowtie2/mapping_single.nf
@@ -15,7 +15,6 @@ Channel
 
 process mapping_fastq {
   tag "$file_id"
-  cpus 4
   publishDir "results/mapping/bams/", mode: 'copy'
 
   input:
diff --git a/src/nf_modules/Bowtie2/tests.sh b/src/nf_modules/Bowtie2/tests.sh
index ab1483824cd1f9755d09495cd050c45cc4a82d30..01e349a7ccb3cce9c6afc9244e90abd9bb200656 100755
--- a/src/nf_modules/Bowtie2/tests.sh
+++ b/src/nf_modules/Bowtie2/tests.sh
@@ -1,17 +1,41 @@
 ./nextflow src/nf_modules/Bowtie2/indexing.nf \
   -c src/nf_modules/Bowtie2/indexing.config \
   -profile docker \
-  --fasta "data/tiny_dataset/fasta/tiny_v2.fasta"
+  --fasta "data/tiny_dataset/fasta/tiny_v2.fasta" \
+  -resume
 
 ./nextflow src/nf_modules/Bowtie2/mapping_single.nf \
   -c src/nf_modules/Bowtie2/mapping_single.config \
   -profile docker \
   --index "data/tiny_dataset/fasta/*.bt2" \
-  --fastq "data/tiny_dataset/fastq/tiny*_S.fastq"
+  --fastq "data/tiny_dataset/fastq/tiny*_S.fastq" \
+  -resume
 
 ./nextflow src/nf_modules/Bowtie2/mapping_paired.nf \
   -c src/nf_modules/Bowtie2/mapping_paired.config \
   -profile docker \
   --index "data/tiny_dataset/fasta/*.bt2" \
-  --fastq "data/tiny_dataset/fastq/tiny*_R{1,2}.fastq"
+  --fastq "data/tiny_dataset/fastq/tiny*_R{1,2}.fastq" \
+  -resume
 
+if [ -x "$(command -v singularity)" ]; then
+./nextflow src/nf_modules/Bowtie2/indexing.nf \
+  -c src/nf_modules/Bowtie2/indexing.config \
+  -profile singularity \
+  --fasta "data/tiny_dataset/fasta/tiny_v2.fasta" \
+  -resume
+
+./nextflow src/nf_modules/Bowtie2/mapping_single.nf \
+  -c src/nf_modules/Bowtie2/mapping_single.config \
+  -profile singularity \
+  --index "data/tiny_dataset/fasta/*.bt2" \
+  --fastq "data/tiny_dataset/fastq/tiny*_S.fastq" \
+  -resume
+
+./nextflow src/nf_modules/Bowtie2/mapping_paired.nf \
+  -c src/nf_modules/Bowtie2/mapping_paired.config \
+  -profile singularity \
+  --index "data/tiny_dataset/fasta/*.bt2" \
+  --fastq "data/tiny_dataset/fastq/tiny*_R{1,2}.fastq" \
+  -resume
+fi
diff --git a/src/singularity_modules/Bowtie2/2.3.4.1/Bowtie2.def b/src/singularity_modules/Bowtie2/2.3.4.1/Bowtie2.def
new file mode 100644
index 0000000000000000000000000000000000000000..73a177e449b3e3acb2330909edfb055cac9cb709
--- /dev/null
+++ b/src/singularity_modules/Bowtie2/2.3.4.1/Bowtie2.def
@@ -0,0 +1,23 @@
+Bootstrap: docker
+From: ubuntu:18.04
+
+%labels
+MAINTAINER Laurent Modolo
+
+%post
+BOWTIE2_VERSION=2.3.4.1
+SAMTOOLS_VERSION=1.7
+PACKAGES="bowtie2=${BOWTIE2_VERSION}* \
+samtools=${SAMTOOLS_VERSION}* \
+perl=5.26.1*"
+
+apt-get update && \
+apt-get install -y --no-install-recommends ${PACKAGES} && \
+apt-get clean
+
+%environment
+export BOWTIE2_VERSION=2.3.4.1
+export SAMTOOLS_VERSION=1.7
+
+%runscript
+exec /bin/bash "$@"
diff --git a/src/singularity_modules/Bowtie2/2.3.4.1/build.sh b/src/singularity_modules/Bowtie2/2.3.4.1/build.sh
new file mode 100755
index 0000000000000000000000000000000000000000..398fb1c79a1bb8b34d7dd1327824021906357abe
--- /dev/null
+++ b/src/singularity_modules/Bowtie2/2.3.4.1/build.sh
@@ -0,0 +1,3 @@
+#/bin/sh
+sudo singularity build --force bin/bowtie2:2.3.4.1.sif src/singularity_modules/Bowtie2/2.3.4.1/Bowtie2.def
+singularity sign bin/bowtie2:2.3.4.1.sif