From 78954726b8cd1a0cfa49e147f74d63098757f810 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Fri, 27 Sep 2019 08:02:04 +0200 Subject: [PATCH 1/7] add automount for singularity --- nextflow.config | 1 + 1 file changed, 1 insertion(+) diff --git a/nextflow.config b/nextflow.config index 88c33ebe31..71cead284b 100644 --- a/nextflow.config +++ b/nextflow.config @@ -115,6 +115,7 @@ profiles { singularity.enabled = false } singularity { + autoMounts = true docker.enabled = false singularity.enabled = true } From a7d3e2e018f7eb37c8c66124c104f9b9ab508a98 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Fri, 27 Sep 2019 08:02:15 +0200 Subject: [PATCH 2/7] fix MultiQC collision --- main.nf | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/main.nf b/main.nf index 9a1f6a2c98..230d7458b6 100644 --- a/main.nf +++ b/main.nf @@ -594,19 +594,21 @@ process FastQCFQ { tag {idPatient + "-" + idRun} - publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idRun}", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/", mode: params.publishDirMode input: set idPatient, idSample, idRun, file("${idRun}_R1.fastq.gz"), file("${idRun}_R2.fastq.gz") from inputPairReadsFastQC output: - file "*_fastqc.{zip,html}" into fastQCFQReport + file("${idSample}/FastQC/${idRun}") into fastQCFQReport when: step == 'mapping' && !('fastqc' in skipQC) script: """ fastqc -t 2 -q ${idRun}_R1.fastq.gz ${idRun}_R2.fastq.gz + mkdir -p ${idSample}/FastQC/${idRun} + mv *_fastqc.zip *_fastqc.html ${idSample}/FastQC/${idRun} """ } @@ -615,19 +617,21 @@ process FastQCBAM { tag {idPatient + "-" + idRun} - publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idRun}", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/", mode: params.publishDirMode input: set idPatient, idSample, idRun, file("${idRun}.bam") from inputBAMFastQC output: - file "*_fastqc.{zip,html}" into fastQCBAMReport + file("${idSample}/FastQC/${idRun}") into fastQCBAMReport when: step == 'mapping' && !('fastqc' in skipQC) script: """ - fastqc -t 2 -q "${idRun}.bam" + fastqc -t 2 -q ${idRun}.bam + mkdir -p ${idSample}/FastQC/${idRun} + mv *_fastqc.zip *_fastqc.html ${idSample}/FastQC/${idRun} """ } @@ -960,14 +964,14 @@ process BamQC { tag {idPatient + "-" + idSample} - publishDir "${params.outdir}/Reports/${idSample}/bamQC", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/", mode: params.publishDirMode input: set idPatient, idSample, file(bam) from bamBamQC file(targetBED) from ch_targetBED output: - file("${bam.baseName}") into bamQCReport + file("${idSample}/bamQC/${bam.baseName}") into bamQCReport when: !('bamqc' in skipQC) @@ -983,7 +987,7 @@ process BamQC { -nt ${task.cpus} \ -skip-duplicated \ --skip-dup-mode 0 \ - -outdir ${bam.baseName} \ + -outdir ${idSample}/bamQC/${bam.baseName} \ -outformat HTML """ } @@ -2361,24 +2365,19 @@ compressVCFOutVEP = compressVCFOutVEP.dump(tag:'VCF') // STEP MULTIQC -multiQCReport = Channel.empty() - .mix( - bamQCReport, - bcftoolsReport, - fastQCReport, - markDuplicatesReport, - samtoolsStatsReport, - snpeffReport, - vcftoolsReport - ).collect() - process MultiQC { publishDir "${params.outdir}/Reports/MultiQC", mode: params.publishDirMode input: file (multiqcConfig) from Channel.value(params.multiqc_config ? file(params.multiqc_config) : "") - file (reports) from multiQCReport file (versions) from yamlSoftwareVersion + file ('*/bamQC/*') from bamQCReport.collect().ifEmpty([]) + file ('BCFToolsStats/*') from bcftoolsReport.collect().ifEmpty([]) + file ('*/FastQC/*') from fastQCReport.collect().ifEmpty([]) + file ('MarkDuplicates/*') from markDuplicatesReport.collect().ifEmpty([]) + file ('SamToolsStats/*') from samtoolsStatsReport.collect().ifEmpty([]) + file ('snpEff/*') from snpeffReport.collect().ifEmpty([]) + file ('VCFTools/*') from vcftoolsReport.collect().ifEmpty([]) output: set file("*multiqc_report.html"), file("*multiqc_data") into multiQCOut From 1de3880d8b700b197ca75b82994c07246b98e7ca Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Fri, 27 Sep 2019 08:15:04 +0200 Subject: [PATCH 3/7] enforcing file names to be idsample_idRun pre merging to avoid collision --- main.nf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/main.nf b/main.nf index 230d7458b6..8ffec57737 100644 --- a/main.nf +++ b/main.nf @@ -597,7 +597,7 @@ process FastQCFQ { publishDir "${params.outdir}/Reports/", mode: params.publishDirMode input: - set idPatient, idSample, idRun, file("${idRun}_R1.fastq.gz"), file("${idRun}_R2.fastq.gz") from inputPairReadsFastQC + set idPatient, idSample, idRun, file("${idSample}_${idRun}_R1.fastq.gz"), file("${idSample}_${idRun}_R2.fastq.gz") from inputPairReadsFastQC output: file("${idSample}/FastQC/${idRun}") into fastQCFQReport @@ -606,7 +606,7 @@ process FastQCFQ { script: """ - fastqc -t 2 -q ${idRun}_R1.fastq.gz ${idRun}_R2.fastq.gz + fastqc -t 2 -q ${idSample}_${idRun}_R1.fastq.gz ${idSample}_${idRun}_R2.fastq.gz mkdir -p ${idSample}/FastQC/${idRun} mv *_fastqc.zip *_fastqc.html ${idSample}/FastQC/${idRun} """ @@ -620,7 +620,7 @@ process FastQCBAM { publishDir "${params.outdir}/Reports/", mode: params.publishDirMode input: - set idPatient, idSample, idRun, file("${idRun}.bam") from inputBAMFastQC + set idPatient, idSample, idRun, file("${idSample}_${idRun}.bam") from inputBAMFastQC output: file("${idSample}/FastQC/${idRun}") into fastQCBAMReport @@ -629,7 +629,7 @@ process FastQCBAM { script: """ - fastqc -t 2 -q ${idRun}.bam + fastqc -t 2 -q ${idSample}_${idRun}.bam mkdir -p ${idSample}/FastQC/${idRun} mv *_fastqc.zip *_fastqc.html ${idSample}/FastQC/${idRun} """ @@ -652,8 +652,8 @@ process MapReads { file(fasta) from ch_fasta output: - set idPatient, idSample, idRun, file("${idRun}.bam") into bamMapped - set idPatient, idSample, file("${idRun}.bam") into bamMappedBamQC + set idPatient, idSample, idRun, file("${idSample}_${idRun}.bam") into bamMapped + set idPatient, idSample, file("${idSample}_${idRun}.bam") into bamMappedBamQC when: step == 'mapping' @@ -674,7 +674,7 @@ process MapReads { ${convertToFastq} bwa mem -K 100000000 -R \"${readGroup}\" ${extra} -t ${task.cpus} -M ${fasta} \ ${input} | \ - samtools sort --threads ${task.cpus} -m 2G - > ${idRun}.bam + samtools sort --threads ${task.cpus} -m 2G - > ${idSample}_${idRun}.bam """ } From 65ca1e63b127d5a53b0861acdf56f93d213ec2d3 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Fri, 27 Sep 2019 08:18:55 +0200 Subject: [PATCH 4/7] simplify fastqc and bamqc output --- main.nf | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/main.nf b/main.nf index 8ffec57737..4af6be2c60 100644 --- a/main.nf +++ b/main.nf @@ -594,21 +594,19 @@ process FastQCFQ { tag {idPatient + "-" + idRun} - publishDir "${params.outdir}/Reports/", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idRun}", mode: params.publishDirMode input: set idPatient, idSample, idRun, file("${idSample}_${idRun}_R1.fastq.gz"), file("${idSample}_${idRun}_R2.fastq.gz") from inputPairReadsFastQC output: - file("${idSample}/FastQC/${idRun}") into fastQCFQReport + file("*.{html.zip}") into fastQCFQReport when: step == 'mapping' && !('fastqc' in skipQC) script: """ fastqc -t 2 -q ${idSample}_${idRun}_R1.fastq.gz ${idSample}_${idRun}_R2.fastq.gz - mkdir -p ${idSample}/FastQC/${idRun} - mv *_fastqc.zip *_fastqc.html ${idSample}/FastQC/${idRun} """ } @@ -617,21 +615,19 @@ process FastQCBAM { tag {idPatient + "-" + idRun} - publishDir "${params.outdir}/Reports/", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idRun}", mode: params.publishDirMode input: set idPatient, idSample, idRun, file("${idSample}_${idRun}.bam") from inputBAMFastQC output: - file("${idSample}/FastQC/${idRun}") into fastQCBAMReport + file("*.{html.zip}") into fastQCBAMReport when: step == 'mapping' && !('fastqc' in skipQC) script: """ fastqc -t 2 -q ${idSample}_${idRun}.bam - mkdir -p ${idSample}/FastQC/${idRun} - mv *_fastqc.zip *_fastqc.html ${idSample}/FastQC/${idRun} """ } @@ -964,14 +960,14 @@ process BamQC { tag {idPatient + "-" + idSample} - publishDir "${params.outdir}/Reports/", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/bamQC", mode: params.publishDirMode input: set idPatient, idSample, file(bam) from bamBamQC file(targetBED) from ch_targetBED output: - file("${idSample}/bamQC/${bam.baseName}") into bamQCReport + file("${bam.baseName}") into bamQCReport when: !('bamqc' in skipQC) @@ -987,7 +983,7 @@ process BamQC { -nt ${task.cpus} \ -skip-duplicated \ --skip-dup-mode 0 \ - -outdir ${idSample}/bamQC/${bam.baseName} \ + -outdir ${bam.baseName} \ -outformat HTML """ } @@ -2371,9 +2367,9 @@ process MultiQC { input: file (multiqcConfig) from Channel.value(params.multiqc_config ? file(params.multiqc_config) : "") file (versions) from yamlSoftwareVersion - file ('*/bamQC/*') from bamQCReport.collect().ifEmpty([]) + file ('bamQC/*') from bamQCReport.collect().ifEmpty([]) file ('BCFToolsStats/*') from bcftoolsReport.collect().ifEmpty([]) - file ('*/FastQC/*') from fastQCReport.collect().ifEmpty([]) + file ('FastQC/*') from fastQCReport.collect().ifEmpty([]) file ('MarkDuplicates/*') from markDuplicatesReport.collect().ifEmpty([]) file ('SamToolsStats/*') from samtoolsStatsReport.collect().ifEmpty([]) file ('snpEff/*') from snpeffReport.collect().ifEmpty([]) From 230298de00eb2a789a6a1186a874d10d285183e6 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Fri, 27 Sep 2019 08:20:41 +0200 Subject: [PATCH 5/7] more consistency for fastqc and bamqc output --- main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.nf b/main.nf index 4af6be2c60..ba55a4682d 100644 --- a/main.nf +++ b/main.nf @@ -594,7 +594,7 @@ process FastQCFQ { tag {idPatient + "-" + idRun} - publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idRun}", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idSample}_${idRun}", mode: params.publishDirMode input: set idPatient, idSample, idRun, file("${idSample}_${idRun}_R1.fastq.gz"), file("${idSample}_${idRun}_R2.fastq.gz") from inputPairReadsFastQC @@ -615,7 +615,7 @@ process FastQCBAM { tag {idPatient + "-" + idRun} - publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idRun}", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idSample}_${idRun}", mode: params.publishDirMode input: set idPatient, idSample, idRun, file("${idSample}_${idRun}.bam") from inputBAMFastQC From a63a665d7f3a97139f59e1cef305a7124d8e13b4 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Fri, 27 Sep 2019 08:28:21 +0200 Subject: [PATCH 6/7] fix expected output from fastQC --- main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.nf b/main.nf index ba55a4682d..ae9da92a4e 100644 --- a/main.nf +++ b/main.nf @@ -600,7 +600,7 @@ process FastQCFQ { set idPatient, idSample, idRun, file("${idSample}_${idRun}_R1.fastq.gz"), file("${idSample}_${idRun}_R2.fastq.gz") from inputPairReadsFastQC output: - file("*.{html.zip}") into fastQCFQReport + file("*.{html,zip}") into fastQCFQReport when: step == 'mapping' && !('fastqc' in skipQC) @@ -621,7 +621,7 @@ process FastQCBAM { set idPatient, idSample, idRun, file("${idSample}_${idRun}.bam") from inputBAMFastQC output: - file("*.{html.zip}") into fastQCBAMReport + file("*.{html,zip}") into fastQCBAMReport when: step == 'mapping' && !('fastqc' in skipQC) From 99851812bdc5d50b1bde03e7f1cb8608c8f9a4f4 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Fri, 27 Sep 2019 08:30:25 +0200 Subject: [PATCH 7/7] update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8adbcab63a..d19537ef98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -91,6 +91,7 @@ Initial release of `nf-core/sarek`, created with the [nf-core](http://nf-co.re/) - [#35](https://github.com/nf-core/sarek/pull/35) - Refactor references handling - [#35](https://github.com/nf-core/sarek/pull/35) - use Channel values instead of `referenceMap` - [#37](https://github.com/nf-core/sarek/pull/37) - Bump version for Release +- [#38](https://github.com/nf-core/sarek/pull/38) - File names before merge is based on `${idSample}_${idRun}` instead of `${idRun}` ### `Removed` @@ -123,6 +124,7 @@ Initial release of `nf-core/sarek`, created with the [nf-core](http://nf-co.re/) - [#31](https://github.com/nf-core/sarek/pull/31) - Fix badges according to nf-core lint - [#31](https://github.com/nf-core/sarek/pull/31) - Fix rcolorbrewer version according to nf-core lint - [#33](https://github.com/nf-core/sarek/pull/33) - Fix MD Linting +- [#38](https://github.com/nf-core/sarek/pull/38) - Avoid collision in MultiQC ### `Deprecated`