diff --git a/src/nf_modules/sra-tools/sra-tools.config b/src/nf_modules/sra-tools/sra-tools.config
new file mode 100644
index 0000000000000000000000000000000000000000..c49af21986d26422f7b2f0243a2237e324459301
--- /dev/null
+++ b/src/nf_modules/sra-tools/sra-tools.config
@@ -0,0 +1,17 @@
+profiles {
+  docker {
+    docker.temp = 'auto'
+    docker.enabled = true
+    process {
+      $fastqdump {
+      container = "sratoolkit:2.8.2"
+      }    }
+  }
+  sge {
+    process{
+      $fastqdump {
+        beforeScript = "module purge; module load SRAtoolkit/2.8.2"
+      }
+    }
+  }
+}
diff --git a/src/nf_modules/sra-tools/sra-tools.nf b/src/nf_modules/sra-tools/sra-tools.nf
new file mode 100644
index 0000000000000000000000000000000000000000..0ffa4f350dbd29e78b37317b35500efd041bb08f
--- /dev/null
+++ b/src/nf_modules/sra-tools/sra-tools.nf
@@ -0,0 +1,43 @@
+/*
+* sra-tools :
+
+*/
+
+/*                      fastq-dump
+* Imputs : srr list
+* Outputs : fastq files
+*/
+
+params.list_srr = "$baseDir/data/SRR/*.txt"
+
+log.info "downloading list srr : ${params.list_srr}"
+
+Channel
+  .fromPath( params.list_srr )
+  .ifEmpty { error "Cannot find any bam files matching: ${params.list_srr}" }
+  .splitCsv(header: true)
+  .set { SRR }
+
+//run is the column name containing SRR ids
+
+  process fastq-dump {
+  tag {"${x.run}"}
+  publishDir "results/download/fastq/${x.run}/", mode: 'copy'
+  input:
+  val x  from SRR
+  output:
+  file("*") into fastq
+
+  script:
+
+  """
+
+  fastq-dump --split-files --defline-seq '@\$ac_\$si/\$ri' --defline-qual "+"  ${x.run}
+  if [ -f ${x.run}_1.fastq ]
+  then
+    true
+  else
+    touch ${x.run}.fastq
+  fi
+"""
+  }
diff --git a/src/nf_modules/sra-tools/tests/fastqdump.nf b/src/nf_modules/sra-tools/tests/fastqdump.nf
new file mode 100644
index 0000000000000000000000000000000000000000..8fdd50e489719c87aa356897492ab6b948317fd5
--- /dev/null
+++ b/src/nf_modules/sra-tools/tests/fastqdump.nf
@@ -0,0 +1,43 @@
+/*
+* sra-tools :
+
+*/
+
+/*                      fastq-dump
+* Imputs : srr list
+* Outputs : fastq files
+*/
+
+params.list_srr = "$baseDir/data/SRR/*.txt"
+
+log.info "downloading list srr : ${params.list_srr}"
+
+Channel
+  .fromPath( params.list_srr )
+  .ifEmpty { error "Cannot find any bam files matching: ${params.list_srr}" }
+  .splitCsv(header: true)
+  .set { SRR }
+
+//run is the column name containing SRR ids
+
+  process fastqdump {
+  tag {"${x.run}"}
+  publishDir "results/download/fastq/${x.run}/", mode: 'copy'
+  input:
+  val x  from SRR
+  output:
+  file("*") into fastq
+
+  script:
+
+  """
+ #for test only 10000  reads are downloading with the option -N 10000 -X 20000
+  fastq-dump --split-files --defline-seq '@\$ac_\$si/\$ri' --defline-qual "+" -N 10000 -X 20000 ${x.run}
+  if [ -f ${x.run}_1.fastq ]
+  then
+    true
+  else
+    touch ${x.run}.fastq
+  fi
+"""
+  }
diff --git a/src/nf_modules/sra-tools/tests/list-srr.txt b/src/nf_modules/sra-tools/tests/list-srr.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a9cd1d0e97a6ed45f50b640d2fef3cbbe232e1f9
--- /dev/null
+++ b/src/nf_modules/sra-tools/tests/list-srr.txt
@@ -0,0 +1,7 @@
+run
+ERR572281
+ERR572146
+ERR572201
+ERR638114
+ERR638115
+ERR638116
diff --git a/src/nf_modules/sra-tools/tests/tests.sh b/src/nf_modules/sra-tools/tests/tests.sh
new file mode 100755
index 0000000000000000000000000000000000000000..59e6c554ee37cb8d9f5bf57e8265884cdc39c374
--- /dev/null
+++ b/src/nf_modules/sra-tools/tests/tests.sh
@@ -0,0 +1,4 @@
+nextflow src/nf_modules/sra-tools/tests/fastqdump.nf \
+  -c src/nf_modules/sra-tools/sra-tools.config \
+  -profile docker \
+  --list_srr "src/nf_modules/sra-tools/tests/list-srr.txt"