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"