diff --git a/buildContainers.nf b/buildContainers.nf index 0970eef673..50cdf8df03 100644 --- a/buildContainers.nf +++ b/buildContainers.nf @@ -178,21 +178,18 @@ def grabRevision() { def defineContainersList(){ // Return list of authorized containers return [ - 'fastqc', 'freebayes', 'gatk', 'igvtools', - 'multiqc', 'mutect1', 'picard', - 'qualimap', + 'qctools', 'r-base', 'runallelecount', 'sarek', 'snpeff', 'snpeffgrch37', 'snpeffgrch38', - 'vcftools', 'vepgrch37', 'vepgrch38' ] @@ -211,9 +208,9 @@ def helpMessage() { log.info " --containers: Choose which containers to build" log.info " Default: all" log.info " Possible values:" - log.info " all, fastqc, freebayes, gatk, igvtools, multiqc, mutect1" - log.info " picard, qualimap, r-base, runallelecount, sarek, snpeff" - log.info " snpeffgrch37, snpeffgrch38, vcftools, vepgrch37, vepgrch38" + log.info " all, freebayes, gatk, igvtools, mutect1, picard, qctools" + log.info " r-base, runallelecount, sarek, snpeff" + log.info " snpeffgrch37, snpeffgrch38, vepgrch37, vepgrch38" log.info " --docker: Build containers using Docker" log.info " --help" log.info " you're reading it" diff --git a/configuration/containers.config b/configuration/containers.config index 49651be1f2..ea772f22d5 100644 --- a/configuration/containers.config +++ b/configuration/containers.config @@ -22,15 +22,15 @@ process { $RecalibrateBam.container = "${params.repository}/gatk:${params.tag}" $RunAlleleCount.container = "${params.repository}/runallelecount:${params.tag}" $RunAscat.container = "${params.repository}/r-base:${params.tag}" - $RunBamQC.container = "${params.repository}/qualimap:${params.tag}" + $RunBamQC.container = "${params.repository}/qctools:${params.tag}" $RunBcftoolsStats.container = "${params.repository}/sarek:${params.tag}" $RunConvertAlleleCounts.container = "${params.repository}/r-base:${params.tag}" - $RunFastQC.container = "${params.repository}/fastqc:${params.tag}" + $RunFastQC.container = "${params.repository}/qctools:${params.tag}" $RunFreeBayes.container = "${params.repository}/freebayes:${params.tag}" $RunGenotypeGVCFs.container = "${params.repository}/gatk:${params.tag}" $RunHaplotypecaller.container = "${params.repository}/gatk:${params.tag}" $RunManta.container = "${params.repository}/sarek:${params.tag}" - $RunMultiQC.container = "${params.repository}/multiqc:${params.tag}" + $RunMultiQC.container = "${params.repository}/qctools:${params.tag}" $RunMutect1.container = "${params.repository}/mutect1:${params.tag}" $RunMutect2.container = "${params.repository}/gatk:${params.tag}" $RunSamtoolsStats.container = "${params.repository}/sarek:${params.tag}" @@ -39,6 +39,6 @@ process { $RunSnpeff.container = {params.genome == 'GRCh38' ? "${params.repository}/snpeffgrch38:${params.tag}" : "${params.repository}/snpeffgrch37:${params.tag}"} $RunStrelka.container = "${params.repository}/sarek:${params.tag}" $RunStrelkaBP.container = "${params.repository}/sarek:${params.tag}" - $RunVcftools.container = "${params.repository}/vcftools:${params.tag}" + $RunVcftools.container = "${params.repository}/qctools:${params.tag}" $RunVEP.container = {params.genome == 'GRCh38' ? "${params.repository}/vepgrch38:${params.tag}" : "${params.repository}/vepgrch37:${params.tag}"} } diff --git a/configuration/singularity-path.config b/configuration/singularity-path.config index bbbb6b6fc8..2257afd2a3 100644 --- a/configuration/singularity-path.config +++ b/configuration/singularity-path.config @@ -19,7 +19,7 @@ process { $BuildVCFIndex.container = "${params.containerPath}/igvtools-${params.tag}.img" $ConcatVCF.container = "${params.containerPath}/sarek-${params.tag}.img" $CreateRecalibrationTable.container = "${params.containerPath}/gatk-${params.tag}.img" - $GenerateMultiQCconfig.container = "${params.containerPath}/multiqc-${params.tag}.img" + $GenerateMultiQCconfig.container = "${params.containerPath}/qctools-${params.tag}.img" $IndelRealigner.container = "${params.containerPath}/gatk-${params.tag}.img" $MapReads.container = "${params.containerPath}/sarek-${params.tag}.img" $MarkDuplicates.container = "${params.containerPath}/picard-${params.tag}.img" @@ -28,15 +28,15 @@ process { $RecalibrateBam.container = "${params.containerPath}/gatk-${params.tag}.img" $RunAlleleCount.container = "${params.containerPath}/runallelecount-${params.tag}.img" $RunAscat.container = "${params.containerPath}/r-base-${params.tag}.img" - $RunBamQC.container = "${params.containerPath}/qualimap-${params.tag}.img" + $RunBamQC.container = "${params.containerPath}/qctools-${params.tag}.img" $RunBcftoolsStats.container = "${params.containerPath}/sarek-${params.tag}.img" $RunConvertAlleleCounts.container = "${params.containerPath}/r-base-${params.tag}.img" - $RunFastQC.container = "${params.containerPath}/fastqc-${params.tag}.img" + $RunFastQC.container = "${params.containerPath}/qctools-${params.tag}.img" $RunFreeBayes.container = "${params.containerPath}/freebayes-${params.tag}.img" $RunGenotypeGVCFs.container = "${params.containerPath}/gatk-${params.tag}.img" $RunHaplotypecaller.container = "${params.containerPath}/gatk-${params.tag}.img" $RunManta.container = "${params.containerPath}/sarek-${params.tag}.img" - $RunMultiQC.container = "${params.containerPath}/multiqc-${params.tag}.img" + $RunMultiQC.container = "${params.containerPath}/qctools-${params.tag}.img" $RunMutect1.container = "${params.containerPath}/mutect1-${params.tag}.img" $RunMutect2.container = "${params.containerPath}/gatk-${params.tag}.img" $RunSamtoolsStats.container = "${params.containerPath}/sarek-${params.tag}.img" @@ -45,6 +45,6 @@ process { $RunSnpeff.container = {params.genome == 'GRCh38' ? "${params.containerPath}/snpeffgrch38-${params.tag}.img" : "${params.containerPath}/snpeffgrch37-${params.tag}.img"} $RunStrelka.container = "${params.containerPath}/sarek-${params.tag}.img" $RunStrelkaBP.container = "${params.containerPath}/sarek-${params.tag}.img" - $RunVcftools.container = "${params.containerPath}/vcftools-${params.tag}.img" + $RunVcftools.container = "${params.containerPath}/qctools-${params.tag}.img" $RunVEP.container = {params.genome == 'GRCh38' ? "${params.containerPath}/vepgrch38-${params.tag}.img" : "${params.containerPath}/vepgrch37-${params.tag}.img"} } diff --git a/containers/fastqc/Dockerfile b/containers/fastqc/Dockerfile deleted file mode 100644 index 85237cb0d1..0000000000 --- a/containers/fastqc/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM openjdk:8 - -LABEL \ - author="Maxime Garcia" \ - description="FastQC image for use in Sarek" \ - maintainer="maxime.garcia@scilifelab.se" - -# Install libraries -RUN \ - apt-get update && apt-get install -y --no-install-recommends \ - wget \ - && rm -rf /var/lib/apt/lists/* - -# Setup ENV variables -ENV FASTQC_VERSION=0.11.5 - -# Install FastQC -RUN \ - wget --quiet -O fastqc_v${FASTQC_VERSION}.zip \ - http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v${FASTQC_VERSION}.zip \ - && unzip fastqc_v${FASTQC_VERSION}.zip -d /opt/ \ - && chmod 755 /opt/FastQC/fastqc \ - && ln -s /opt/FastQC/fastqc /usr/local/bin/fastqc \ - && rm fastqc_v${FASTQC_VERSION}.zip diff --git a/containers/multiqc/Dockerfile b/containers/multiqc/Dockerfile deleted file mode 100644 index 1e7325cf42..0000000000 --- a/containers/multiqc/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM ewels/multiqc:v1.5 - -LABEL \ - author="Maxime Garcia" \ - description="MultiQC image used in Sarek" \ - maintainer="maxime.garcia@scilifelab.se" diff --git a/containers/vcftools/Dockerfile b/containers/qctools/Dockerfile similarity index 66% rename from containers/vcftools/Dockerfile rename to containers/qctools/Dockerfile index 8995effec8..4b018cf723 100644 --- a/containers/vcftools/Dockerfile +++ b/containers/qctools/Dockerfile @@ -2,7 +2,7 @@ FROM nfcore/base:latest LABEL \ author="Maxime Garcia" \ - description="vcftools image used in Sarek 2.0" \ + description="Image with QC tools used in Sarek" \ maintainer="maxime.garcia@scilifelab.se" COPY environment.yml / @@ -12,4 +12,4 @@ RUN \ conda clean -a # Export PATH -ENV PATH /opt/conda/envs/sarek-vcftools-2.0/bin:$PATH +ENV PATH /opt/conda/envs/sarek-qctools-2.0/bin:$PATH diff --git a/containers/vcftools/environment.yml b/containers/qctools/environment.yml similarity index 55% rename from containers/vcftools/environment.yml rename to containers/qctools/environment.yml index 04faa110e1..d8c969924e 100644 --- a/containers/vcftools/environment.yml +++ b/containers/qctools/environment.yml @@ -1,9 +1,13 @@ # You can use this file to create a conda environment: # conda env create -f environment.yml -name: sarek-vcftools-2.0 +name: sarek-qctools-2.0 channels: - - defaults - - conda-forge - bioconda + - conda-forge + - defaults dependencies: -- vcftools=0.1.15 + - conda-forge::openjdk=8.0.144 + - fastqc=0.11.7 + - multiqc=1.5 + - qualimap=2.2.2a + - vcftools=0.1.15 diff --git a/containers/qualimap/Dockerfile b/containers/qualimap/Dockerfile deleted file mode 100644 index 4702b84b73..0000000000 --- a/containers/qualimap/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM openjdk:8 - -LABEL \ - author="Maxime Garcia" \ - description="Qualimap image for use in Sarek" \ - maintainer="maxime.garcia@scilifelab.se" - -# Install libraries -RUN \ - apt-get update && apt-get install -y --no-install-recommends \ - wget \ - && rm -rf /var/lib/apt/lists/* - -# Setup ENV variables -ENV \ - PATH=$PATH:/opt/qualimap \ - QUALIMAP_VERSION=2.2.1 - -# Install BamQC -RUN \ - wget --quiet -O qualimap_v${QUALIMAP_VERSION}.zip \ - https://bitbucket.org/kokonech/qualimap/downloads/qualimap_v${QUALIMAP_VERSION}.zip \ - && unzip qualimap_v${QUALIMAP_VERSION}.zip -d /opt/ \ - && rm qualimap_v${QUALIMAP_VERSION}.zip \ - && mv /opt/qualimap_v${QUALIMAP_VERSION} /opt/qualimap diff --git a/doc/CONTAINERS.md b/doc/CONTAINERS.md index ae09d00b3c..e6027acb22 100644 --- a/doc/CONTAINERS.md +++ b/doc/CONTAINERS.md @@ -3,26 +3,18 @@ Subsets of all containers can be dowloaded: For processing + germline variant calling + Reports: - - [fastqc](#fastqc-) - [gatk](#gatk-) - - [multiqc](#multiqc-) - [picard](#picard-) - - [qualimap](#qualimap-) - [sarek](#sarek-) - - [vcftools](#vcftools-) For processing + somatic variant calling + Reports: - - [fastqc](#fastqc-) - [freebayes](#freebayes-) - [gatk](#gatk-) - - [multiqc](#multiqc-) - [mutect1](#mutect1-) - [picard](#picard-) - - [qualimap](#qualimap-) - [r-base](#r-base-) - [runallelecount](#runallelecount-) - [sarek](#sarek-) - - [vcftools](#vcftools-) For annotation for GRCh37, you will need: - [snpeffgrch37](#snpeffgrch37-) @@ -34,11 +26,6 @@ For annotation for GRCh38, you will need: A container named after the process is made for each process. If a container can be reused, it will be named after the tool used. -## fastqc [![fastqc-docker status][fastqc-docker-badge]][fastqc-docker-link] - -- Based on `openjdk:8` -- Contain **[FastQC][fastqc-link]** 0.11.5 - ## freebayes [![freebayes-docker status][freebayes-docker-badge]][freebayes-docker-link] - Based on `debian:8.6` @@ -54,11 +41,6 @@ A container named after the process is made for each process. If a container can - Based on `openjdk:8-slim` - Contain **[IGVTools][igvtools-link]** 2.3.98 -## multiqc [![multiqc-docker status][multiqc-docker-badge]][multiqc-docker-link] - -- Based on `ewels/multiqc:v1.4` -- Contain **[MultiQC][multiqc-link]** 143 - ## mutect1 [![mutect1-docker status][mutect1-docker-badge]][mutect1-docker-link] - Based on `openjdk:7-slim` @@ -69,10 +51,13 @@ A container named after the process is made for each process. If a container can - Based on `openjdk:8-slim` - Contain **[Picard][picard-link]** 2.0.1 -## qualimap [![qualimap-docker status][qualimap-docker-badge]][qualimap-docker-link] +## qctools [![qctools-docker status][qctools-docker-badge]][qctools-docker-link] -- Based on `openjdk:8` +- Based on `nfcore/base:latest` +- Contain **[FastQC][fastqc-link]** 0.11.7 +- Contain **[MultiQC][multiqc-link]** 1.5 - Contain **[qualimap][qualimap-link]** 2.2.1 +- Contain **[vcftools][vcftools-link]** 0.1.15 ## runallelecount [![runallelecount-docker status][runallelecount-docker-badge]][runallelecount-docker-link] @@ -106,12 +91,6 @@ A container named after the process is made for each process. If a container can - Contain **[snpEff][snpeff-link]** 4.3i - Contain GRCh38.86 -## vcftools [![vcftools-docker status][vcftools-docker-badge]][vcftools-docker-link] - -- Based on `nfcore/base:latest` -- Contain **[vcftools][vcftools-link]** 0.1.15 - - ## vepgrch37 [![vepgrch37-docker status][vepgrch37-docker-badge]][vepgrch37-docker-link] - Based on `willmclaren/ensembl-vep:release_90.6` @@ -157,8 +136,8 @@ A container named after the process is made for each process. If a container can [picard-docker-badge]: https://img.shields.io/docker/automated/maxulysse/picard.svg [picard-docker-link]: https://hub.docker.com/r/maxulysse/picard [picard-link]: https://github.com/broadinstitute/picard -[qualimap-docker-badge]: https://img.shields.io/docker/automated/maxulysse/qualimap.svg -[qualimap-docker-link]: https://hub.docker.com/r/maxulysse/qualimap +[qctools-docker-badge]: https://img.shields.io/docker/automated/maxulysse/qctools.svg +[qctools-docker-link]: https://hub.docker.com/r/maxulysse/qctools [qualimap-link]: http://qualimap.bioinfo.cipf.es [rcolorbrewer-link]: https://CRAN.R-project.org/package=RColorBrewer [runallelecount-docker-badge]: https://img.shields.io/docker/automated/maxulysse/runallelecount.svg diff --git a/scripts/do_all.sh b/scripts/do_all.sh index 4a300b7474..5d542dc65a 100755 --- a/scripts/do_all.sh +++ b/scripts/do_all.sh @@ -57,8 +57,8 @@ function toLower() { if [[ $TOOL = docker ]] && [[ GRCh37,GRCh38 =~ $GENOME ]] then - nextflow run buildContainers.nf -profile ${PROFILE} --verbose --docker ${PUSH} --repository ${REPOSITORY} --tag ${TAG} --containers fastqc,freebayes,gatk,igvtools,multiqc,mutect1,picard,qualimap,r-base,runallelecount,sarek,snpeff,vcftools + nextflow run buildContainers.nf -profile ${PROFILE} --verbose --docker ${PUSH} --repository ${REPOSITORY} --tag ${TAG} --containers freebayes,gatk,igvtools,mutect1,picard,qctools,r-base,runallelecount,sarek,snpeff nextflow run buildContainers.nf -profile ${PROFILE} --verbose --docker ${PUSH} --repository ${REPOSITORY} --tag ${TAG} --containers snpeff$(toLower ${GENOME}),vep$(toLower ${GENOME}) else - nextflow run buildContainers.nf -profile ${PROFILE} --verbose --singularity --repository ${REPOSITORY} --tag ${TAG} --containerPath containers/ --containers fastqc,freebayes,gatk,igvtools,multiqc,mutect1,picard,qualimap,r-base,runallelecount,sarek,snpeff$(toLower ${GENOME}),vcftools,vep$(toLower ${GENOME}) + nextflow run buildContainers.nf -profile ${PROFILE} --verbose --singularity --repository ${REPOSITORY} --tag ${TAG} --containerPath containers/ --containers freebayes,gatk,igvtools,mutect1,picard,qctools,r-base,runallelecount,sarek,snpeff$(toLower ${GENOME}),vep$(toLower ${GENOME}) fi diff --git a/scripts/test.sh b/scripts/test.sh index 8fbfeb3d0b..773783935a 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -138,6 +138,6 @@ fi if [[ ALL,BUILDCONTAINERS =~ $TEST ]] && [[ $PROFILE == docker ]] then - nf_test buildContainers.nf --docker --containers fastqc,gatk,igvtools,multiqc,mutect1,picard,qualimap,runallelecount,r-base,snpeff,sarek + nf_test buildContainers.nf --docker --containers gatk,igvtools,mutect1,picard,qctools,runallelecount,r-base,snpeff,sarek clean_repo fi