diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 1342a9d7b3..b73045800a 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -9,8 +9,7 @@ jobs: test: runs-on: ubuntu-18.04 steps: - # PRs are only ok if coming from an nf-core dev branch - - uses: actions/checkout@v1 + # PRs are only ok if coming from an nf-core `dev` branch or a fork `patch` branch - name: Check PRs run: | { [[ $(git remote get-url origin) == *nf-core/sarek ]] && [[ ${GITHUB_HEAD_REF} = "dev" ]]; } || [[ ${GITHUB_HEAD_REF} == "patch" ]] \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 25fcef4914..50cb42f278 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,8 +17,7 @@ jobs: sudo mv nextflow /usr/local/bin/ - name: Download and tag image run: | - docker pull nfcore/sarek:dev - docker tag nfcore/sarek:dev nfcore/sarek:dev + docker pull nfcore/sarek:dev && docker tag nfcore/sarek:dev nfcore/sarek:dev - name: Run test run: | nextflow run ${GITHUB_WORKSPACE} -profile test,docker @@ -26,8 +25,8 @@ jobs: runs-on: ubuntu-18.04 strategy: matrix: - annotator: [snpeff] - specie: [GRCh37] + tools: [snpeff] + species: [GRCh37] steps: - uses: actions/checkout@v1 - name: Install Nextflow @@ -38,13 +37,12 @@ jobs: NXF_VER: '19.10.0' - name: Download and tag images run: | - docker pull nfcore/sarek:dev - docker tag nfcore/sarek:dev nfcore/sarek:dev - docker pull nfcore/sarek${{ matrix.annotator }}:dev.${{ matrix.specie }} - docker tag nfcore/sarek${{ matrix.annotator }}:dev.${{ matrix.specie }} nfcore/sarek${{ matrix.annotator }}:dev.${{ matrix.specie }} + docker pull nfcore/sarek:dev && docker tag nfcore/sarek:dev nfcore/sarek:dev + docker pull nfcore/sarek${{ matrix.tools }}:dev.${{ matrix.species }} + docker tag nfcore/sarek${{ matrix.tools }}:dev.${{ matrix.species }} nfcore/sarek${{ matrix.tools }}:dev.${{ matrix.species }} - name: Run annotation test run: | - nextflow run . -profile test_annotation,docker --verbose --tools ${{ matrix.annotator }} + nextflow run . -profile test_annotation,docker --verbose --tools ${{ matrix.tools }} germline: runs-on: ubuntu-18.04 steps: @@ -57,8 +55,7 @@ jobs: NXF_VER: '19.10.0' - name: Download and tag image run: | - docker pull nfcore/sarek:dev - docker tag nfcore/sarek:dev nfcore/sarek:dev + docker pull nfcore/sarek:dev && docker tag nfcore/sarek:dev nfcore/sarek:dev - name: Get test data run: | git clone --single-branch --branch sarek https://github.com/nf-core/test-datasets.git data @@ -83,8 +80,7 @@ jobs: NXF_VER: '19.10.0' - name: Download and tag image run: | - docker pull nfcore/sarek:dev - docker tag nfcore/sarek:dev nfcore/sarek:dev + docker pull nfcore/sarek:dev && docker tag nfcore/sarek:dev nfcore/sarek:dev - name: Run test for minimal genomes run: | nextflow run . -profile test,docker --skipQC all --verbose --genome ${{ matrix.genome }} ${{ matrix.intervals }} --tools Manta,mpileup,Strelka @@ -103,8 +99,7 @@ jobs: NXF_VER: '19.10.0' - name: Download and tag image run: | - docker pull nfcore/sarek:dev - docker tag nfcore/sarek:dev nfcore/sarek:dev + docker pull nfcore/sarek:dev && docker tag nfcore/sarek:dev nfcore/sarek:dev - name: Run ${{ matrix.profile }} test run: | nextflow run . -profile ${{ matrix.profile }},docker --verbose @@ -123,8 +118,7 @@ jobs: NXF_VER: '19.10.0' - name: Download and tag image run: | - docker pull nfcore/sarek:dev - docker tag nfcore/sarek:dev nfcore/sarek:dev + docker pull nfcore/sarek:dev && docker tag nfcore/sarek:dev nfcore/sarek:dev - name: Run ${{ matrix.tool }} test run: | nextflow run . -profile test_tool,docker --verbose --tools ${{ matrix.tool }} diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 53f1efd031..8a1cb0f907 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -47,7 +47,7 @@ jobs: pip install --upgrade pip - name: Install nf-core tools run: | - pip install nf-core + pip install --upgrade --force-reinstall git+https://github.com/nf-core/tools.git@dev - name: Run nf-core lint run: | nf-core lint ${GITHUB_WORKSPACE} \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3713a63aff..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,42 +0,0 @@ -sudo: required -language: python -jdk: openjdk8 -services: docker -python: '3.6' -cache: pip -matrix: - fast_finish: true - -before_install: - # PRs to master are only ok if coming from dev branch - - '[ $TRAVIS_PULL_REQUEST = "false" ] || [ $TRAVIS_BRANCH != "master" ] || ([ $TRAVIS_PULL_REQUEST_SLUG = $TRAVIS_REPO_SLUG ] && ([ $TRAVIS_PULL_REQUEST_BRANCH = "dev" ] || [ $TRAVIS_PULL_REQUEST_BRANCH = "patch" ]))' - # Pull the docker image first so the test doesn't wait for this - - docker pull nfcore/sarek:dev - # Fake the tag locally so that the pipeline runs properly - # Looks weird when this is :dev to :dev, but makes sense when testing code for a release (:dev to :1.0.1) - - docker tag nfcore/sarek:dev nfcore/sarek:dev - -install: - # Install Nextflow - - mkdir /tmp/nextflow && cd /tmp/nextflow - - wget -qO- get.nextflow.io | bash - - sudo ln -s /tmp/nextflow/nextflow /usr/local/bin/nextflow - # Install nf-core/tools - - pip install --upgrade pip - - pip install nf-core - # Reset - - mkdir ${TRAVIS_BUILD_DIR}/tests && cd ${TRAVIS_BUILD_DIR}/tests - # Install markdownlint-cli - - sudo apt-get install npm && npm install -g markdownlint-cli - -env: - - NXF_VER='19.10.0' # Specify a minimum NF version that should be tested and work - - NXF_VER='' # Plus: get the latest NF version and check that it works - -script: - # Lint the pipeline code - - nf-core lint ${TRAVIS_BUILD_DIR} - # Lint the documentation - - markdownlint ${TRAVIS_BUILD_DIR} -c ${TRAVIS_BUILD_DIR}/.github/markdownlint.yml - # Run the pipeline with the test profile - - nextflow run ${TRAVIS_BUILD_DIR} -profile test,docker \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 39ebf8f102..f5f7b18cca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,10 +17,50 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - [#76](https://github.com/nf-core/sarek/pull/76) - Use `gatk4-spark` instead of `gatk4` in `environment.yml` - [#80](https://github.com/nf-core/sarek/pull/80) - Re-bump `dev` branch - [#85](https://github.com/nf-core/sarek/pull/85) - Use new merged vcf files for known indels to simplify setting up channel +- [#107](https://github.com/nf-core/sarek/pull/107) - Switch params to snake_case ### `Fixed` - [#83](https://github.com/nf-core/sarek/pull/83) - Fix some typos in `docs/input.md` +- [#107](https://github.com/nf-core/sarek/pull/107) - Fix linting + +### `Deprecated` + +- [#107](https://github.com/nf-core/sarek/pull/107) - `--annotateTools` is now deprecated, use `--annotate_tools` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--cadd_InDels` is now deprecated, use `--cadd_indels` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--cadd_InDels_tbi` is now deprecated, use `--cadd_indels_tbi` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--cadd_WG_SNVs` is now deprecated, use `--cadd_wg_snvs` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--cadd_WG_SNVs_tbi` is now deprecated, use `--cadd_wg_snvs_tbi` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--maxMultiqcEmailFileSize` is now deprecated, use `--max_multiqc_email_size` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--noGVCF` is now deprecated, use `--no_gvcf` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--noStrelkaBP` is now deprecated, use `--no_strelka_bp` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--nucleotidesPerSecond` is now deprecated, use `--nucleotides_per_second` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--publishDirMode` is now deprecated, use `--publish_dir_mode` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--saveGenomeIndex` is now deprecated, use `--save_reference` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--skipQC` is now deprecated, use `--skip_qc` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--snpEff_cache` is now deprecated, use `--snpeff_cache` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--targetBed` is now deprecated, use `--target_bed` instead + +### `Removed` + +- [#107](https://github.com/nf-core/sarek/pull/107) - `--acLociGC` is now removed, use `--ac_loci_gc` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--acLoci` is now removed, use `--ac_loci` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--bwaIndex` is now removed, use `--bwa` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--chrDir` is now removed, use `--chr_dir` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--chrLength` is now removed, use `--chr_length` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--dbsnpIndex` is now removed, use `--dbsnp_index` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--fastaFai` is now removed, use `--fasta_fai` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--genomeDict` is now removed, use `--dict` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--genomeFile` is now removed, use `--fasta` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--genomeIndex` is now removed, use `--fasta_fai` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--germlineResourceIndex` is now removed, use `--germline_resource_index` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--germlineResource` is now removed, use `--germline_resource` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--igenomesIgnore` is now removed, use `--igenomes_ignore` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--knownIndelsIndex` is now removed, use `--known_indels_index` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--knownIndels` is now removed, use `--known_indels` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--singleCPUMem` is now removed, use `--single_cpu_mem` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--snpeffDb` is now removed, use `--snpeff_db` instead +- [#107](https://github.com/nf-core/sarek/pull/107) - `--vepCacheVersion` is now removed, use `--vep_cache_version` instead ## [2.5.2] - Jåkkåtjkaskajekna diff --git a/Dockerfile b/Dockerfile index 3c10ce1729..350ec57cf7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,8 @@ -FROM nfcore/base:1.7 +FROM nfcore/base:dev LABEL authors="Maxime Garcia, Szilveszter Juhos" \ description="Docker image containing all requirements for nf-core/sarek pipeline" COPY environment.yml / RUN conda env create -f /environment.yml && conda clean -a -ENV PATH /opt/conda/envs/nf-core-sarek-dev/bin:$PATH +RUN conda env export --name nf-core-sarek-dev > nf-core-sarek-dev.yml +ENV PATH /opt/conda/envs/nf-core-sarek-dev/bin:$PATH \ No newline at end of file diff --git a/conf/base.config b/conf/base.config index 7c889b04ba..9a24833d8b 100644 --- a/conf/base.config +++ b/conf/base.config @@ -11,7 +11,7 @@ process { cpus = {check_resource(params.cpus * task.attempt)} - memory = {check_resource((params.singleCPUMem as nextflow.util.MemoryUnit) * task.attempt)} + memory = {check_resource((params.single_cpu_mem as nextflow.util.MemoryUnit) * task.attempt)} time = {check_resource(24.h * task.attempt)} shell = ['/bin/bash', '-euo', 'pipefail'] @@ -39,10 +39,10 @@ process { } withLabel:memory_singleCPU_2_task { - memory = {check_resource((params.singleCPUMem as nextflow.util.MemoryUnit) * 2 * task.attempt)} + memory = {check_resource((params.single_cpu_mem as nextflow.util.MemoryUnit) * 2 * task.attempt)} } withLabel:memory_singleCPU_task_sq { - memory = {check_resource((params.singleCPUMem as nextflow.util.MemoryUnit) * task.attempt * task.attempt)} + memory = {check_resource((params.single_cpu_mem as nextflow.util.MemoryUnit) * task.attempt * task.attempt)} } withLabel:memory_max { diff --git a/conf/genomes.config b/conf/genomes.config index 8f6b0539da..24d970f0df 100644 --- a/conf/genomes.config +++ b/conf/genomes.config @@ -10,61 +10,61 @@ params { genomes { 'GRCh37' { - acLoci = "${params.genomes_base}/1000G_phase3_20130502_SNP_maf0.3.loci" - acLociGC = "${params.genomes_base}/1000G_phase3_20130502_SNP_maf0.3.loci.gc" - bwaIndex = "${params.genomes_base}/human_g1k_v37_decoy.fasta.{amb,ann,bwt,pac,sa}" - chrDir = "${params.genomes_base}/Chromosomes" - chrLength = "${params.genomes_base}/human_g1k_v37_decoy.len" - dbsnp = "${params.genomes_base}/dbsnp_138.b37.vcf" - dbsnpIndex = "${params.genomes_base}/dbsnp_138.b37.vcf.idx" - dict = "${params.genomes_base}/human_g1k_v37_decoy.dict" - fasta = "${params.genomes_base}/human_g1k_v37_decoy.fasta" - fastaFai = "${params.genomes_base}/human_g1k_v37_decoy.fasta.fai" - germlineResource = "${params.genomes_base}/gnomAD.r2.1.1.GRCh37.PASS.AC.AF.only.vcf.gz" - germlineResourceIndex = "${params.genomes_base}/gnomAD.r2.1.1.GRCh37.PASS.AC.AF.only.vcf.gz.tbi" - intervals = "${params.genomes_base}/wgs_calling_regions_Sarek.list" - knownIndels = "${params.genomes_base}/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf" - knownIndelsIndex = "${params.genomes_base}/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf.idx" - snpeffDb = 'GRCh37.75' - species = 'homo_sapiens' - vepCacheVersion = '95' + ac_loci = "${params.genomes_base}/1000G_phase3_20130502_SNP_maf0.3.loci" + ac_loci_gc = "${params.genomes_base}/1000G_phase3_20130502_SNP_maf0.3.loci.gc" + bwa = "${params.genomes_base}/human_g1k_v37_decoy.fasta.{amb,ann,bwt,pac,sa}" + chr_dir = "${params.genomes_base}/Chromosomes" + chr_length = "${params.genomes_base}/human_g1k_v37_decoy.len" + dbsnp = "${params.genomes_base}/dbsnp_138.b37.vcf" + dbsnp_index = "${params.genomes_base}/dbsnp_138.b37.vcf.idx" + dict = "${params.genomes_base}/human_g1k_v37_decoy.dict" + fasta = "${params.genomes_base}/human_g1k_v37_decoy.fasta" + fasta_fai = "${params.genomes_base}/human_g1k_v37_decoy.fasta.fai" + germline_resource = "${params.genomes_base}/gnomAD.r2.1.1.GRCh37.PASS.AC.AF.only.vcf.gz" + germline_resource_index = "${params.genomes_base}/gnomAD.r2.1.1.GRCh37.PASS.AC.AF.only.vcf.gz.tbi" + intervals = "${params.genomes_base}/wgs_calling_regions_Sarek.list" + known_indels = "${params.genomes_base}/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf" + known_indels_index = "${params.genomes_base}/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf.idx" + snpeff_db = 'GRCh37.75' + species = 'homo_sapiens' + vep_cache_version = '95' } 'GRCh38' { - acLoci = "${params.genomes_base}/1000G_phase3_GRCh38_maf0.3.loci" - acLociGC = "${params.genomes_base}/1000G_phase3_GRCh38_maf0.3.loci.gc" - bwaIndex = "${params.genomes_base}/Homo_sapiens_assembly38.fasta.64.{alt,amb,ann,bwt,pac,sa}" - chrDir = "${params.genomes_base}/Chromosomes" - chrLength = "${params.genomes_base}/Homo_sapiens_assembly38.len" - dbsnp = "${params.genomes_base}/dbsnp_146.hg38.vcf.gz" - dbsnpIndex = "${params.genomes_base}/dbsnp_146.hg38.vcf.gz.tbi" - dict = "${params.genomes_base}/Homo_sapiens_assembly38.dict" - fasta = "${params.genomes_base}/Homo_sapiens_assembly38.fasta" - fastaFai = "${params.genomes_base}/Homo_sapiens_assembly38.fasta.fai" - germlineResource = "${params.genomes_base}/gnomAD.r2.1.1.GRCh38.PASS.AC.AF.only.vcf.gz" - germlineResourceIndex = "${params.genomes_base}/gnomAD.r2.1.1.GRCh38.PASS.AC.AF.only.vcf.gz.tbi" - intervals = "${params.genomes_base}/wgs_calling_regions.hg38.bed" - knownIndels = "${params.genomes_base}/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz" - knownIndelsIndex = "${params.genomes_base}/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz.tbi" - snpeffDb = 'GRCh38.86' - species = 'homo_sapiens' - vepCacheVersion = '95' + ac_loci = "${params.genomes_base}/1000G_phase3_GRCh38_maf0.3.loci" + ac_loci_gc = "${params.genomes_base}/1000G_phase3_GRCh38_maf0.3.loci.gc" + bwa = "${params.genomes_base}/Homo_sapiens_assembly38.fasta.64.{alt,amb,ann,bwt,pac,sa}" + chr_dir = "${params.genomes_base}/Chromosomes" + chr_length = "${params.genomes_base}/Homo_sapiens_assembly38.len" + dbsnp = "${params.genomes_base}/dbsnp_146.hg38.vcf.gz" + dbsnp_index = "${params.genomes_base}/dbsnp_146.hg38.vcf.gz.tbi" + dict = "${params.genomes_base}/Homo_sapiens_assembly38.dict" + fasta = "${params.genomes_base}/Homo_sapiens_assembly38.fasta" + fasta_fai = "${params.genomes_base}/Homo_sapiens_assembly38.fasta.fai" + germline_resource = "${params.genomes_base}/gnomAD.r2.1.1.GRCh38.PASS.AC.AF.only.vcf.gz" + germline_resource_index = "${params.genomes_base}/gnomAD.r2.1.1.GRCh38.PASS.AC.AF.only.vcf.gz.tbi" + intervals = "${params.genomes_base}/wgs_calling_regions.hg38.bed" + known_indels = "${params.genomes_base}/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz" + known_indels_index = "${params.genomes_base}/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz.tbi" + snpeff_db = 'GRCh38.86' + species = 'homo_sapiens' + vep_cache_version = '95' } 'minimalGRCh37' { - fasta = "${params.genomes_base}/human_g1k_v37_decoy.small.fasta" + fasta = "${params.genomes_base}/human_g1k_v37_decoy.small.fasta" } 'smallGRCh37' { - dbsnp = "${params.genomes_base}/dbsnp_138.b37.small.vcf.gz" - fasta = "${params.genomes_base}/human_g1k_v37_decoy.small.fasta" - germlineResource = "${params.genomes_base}/dbsnp_138.b37.small.vcf.gz" - intervals = "${params.genomes_base}/small.intervals" - knownIndels = "${params.genomes_base}/Mills_1000G_gold_standard_and_1000G_phase1.indels.b37.small.vcf.gz" - snpeffDb = 'GRCh37.75' - species = 'homo_sapiens' - vepCacheVersion = '95' + dbsnp = "${params.genomes_base}/dbsnp_138.b37.small.vcf.gz" + fasta = "${params.genomes_base}/human_g1k_v37_decoy.small.fasta" + germline_resource = "${params.genomes_base}/dbsnp_138.b37.small.vcf.gz" + intervals = "${params.genomes_base}/small.intervals" + known_indels = "${params.genomes_base}/Mills_1000G_gold_standard_and_1000G_phase1.indels.b37.small.vcf.gz" + snpeff_db = 'GRCh37.75' + species = 'homo_sapiens' + vep_cache_version = '95' } 'smallerGRCh37' { - fasta = "${params.genomes_base}/human_g1k_v37_decoy.small.fasta" - knownIndels = "${params.genomes_base}/dbsnp_138.b37.small.vcf.gz" + fasta = "${params.genomes_base}/human_g1k_v37_decoy.small.fasta" + known_indels = "${params.genomes_base}/dbsnp_138.b37.small.vcf.gz" } } } diff --git a/conf/igenomes.config b/conf/igenomes.config index 7ecdd98b40..49088ef144 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -10,196 +10,196 @@ params { genomes { 'GRCh37' { - acLoci = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/ASCAT/1000G_phase3_20130502_SNP_maf0.3.loci" - acLociGC = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/ASCAT/1000G_phase3_20130502_SNP_maf0.3.loci.gc" - bwaIndex = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/BWAIndex/human_g1k_v37_decoy.fasta.{amb,ann,bwt,pac,sa}" - chrDir = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/Chromosomes" - chrLength = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/Length/human_g1k_v37_decoy.len" - dbsnp = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/dbsnp_138.b37.vcf" - dbsnpIndex = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/dbsnp_138.b37.vcf.idx" - dict = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/WholeGenomeFasta/human_g1k_v37_decoy.dict" - fasta = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/WholeGenomeFasta/human_g1k_v37_decoy.fasta" - fastaFai = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/WholeGenomeFasta/human_g1k_v37_decoy.fasta.fai" - germlineResource = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GermlineResource/gnomAD.r2.1.1.GRCh37.PASS.AC.AF.only.vcf.gz" - germlineResourceIndex = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GermlineResource/gnomAD.r2.1.1.GRCh37.PASS.AC.AF.only.vcf.gz.tbi" - intervals = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/intervals/wgs_calling_regions_Sarek.list" - knownIndels = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf" - knownIndelsIndex = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf.idx" - snpeffDb = 'GRCh37.75' - species = 'homo_sapiens' - vepCacheVersion = '95' + ac_loci = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/ASCAT/1000G_phase3_20130502_SNP_maf0.3.loci" + ac_lociGC = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/ASCAT/1000G_phase3_20130502_SNP_maf0.3.loci.gc" + bwa = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/BWAIndex/human_g1k_v37_decoy.fasta.{amb,ann,bwt,pac,sa}" + chr_dir = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/Chromosomes" + chr_length = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/Length/human_g1k_v37_decoy.len" + dbsnp = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/dbsnp_138.b37.vcf" + dbsnp_index = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/dbsnp_138.b37.vcf.idx" + dict = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/WholeGenomeFasta/human_g1k_v37_decoy.dict" + fasta = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/WholeGenomeFasta/human_g1k_v37_decoy.fasta" + fasta_fai = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Sequence/WholeGenomeFasta/human_g1k_v37_decoy.fasta.fai" + germline_resource = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GermlineResource/gnomAD.r2.1.1.GRCh37.PASS.AC.AF.only.vcf.gz" + germline_resource_index = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GermlineResource/gnomAD.r2.1.1.GRCh37.PASS.AC.AF.only.vcf.gz.tbi" + intervals = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/intervals/wgs_calling_regions_Sarek.list" + known_indels = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf" + known_indels_index = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh37/Annotation/GATKBundle/{1000G_phase1,Mills_and_1000G_gold_standard}.indels.b37.vcf.idx" + snpeff_db = 'GRCh37.75' + species = 'homo_sapiens' + vep_cache_version = '95' } 'GRCh38' { - acLoci = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/ASCAT/1000G_phase3_GRCh38_maf0.3.loci" - acLociGC = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/ASCAT/1000G_phase3_GRCh38_maf0.3.loci.gc" - bwaIndex = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/BWAIndex/Homo_sapiens_assembly38.fasta.64.{alt,amb,ann,bwt,pac,sa}" - chrDir = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/Chromosomes" - chrLength = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/Length/Homo_sapiens_assembly38.len" - dbsnp = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/dbsnp_146.hg38.vcf.gz" - dbsnpIndex = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/dbsnp_146.hg38.vcf.gz.tbi" - dict = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/WholeGenomeFasta/Homo_sapiens_assembly38.dict" - fasta = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/WholeGenomeFasta/Homo_sapiens_assembly38.fasta" - fastaFai = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/WholeGenomeFasta/Homo_sapiens_assembly38.fasta.fai" - germlineResource = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GermlineResource/gnomAD.r2.1.1.GRCh38.PASS.AC.AF.only.vcf.gz" - germlineResourceIndex = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GermlineResource/gnomAD.r2.1.1.GRCh38.PASS.AC.AF.only.vcf.gz.tbi" - intervals = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/intervals/wgs_calling_regions.hg38.bed" - knownIndels = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz" - knownIndelsIndex = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz.tbi" - snpeffDb = 'GRCh38.86' - species = 'homo_sapiens' - vepCacheVersion = '95' + ac_loci = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/ASCAT/1000G_phase3_GRCh38_maf0.3.loci" + ac_lociGC = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/ASCAT/1000G_phase3_GRCh38_maf0.3.loci.gc" + bwa = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/BWAIndex/Homo_sapiens_assembly38.fasta.64.{alt,amb,ann,bwt,pac,sa}" + chr_dir = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/Chromosomes" + chr_length = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/Length/Homo_sapiens_assembly38.len" + dbsnp = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/dbsnp_146.hg38.vcf.gz" + dbsnp_index = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/dbsnp_146.hg38.vcf.gz.tbi" + dict = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/WholeGenomeFasta/Homo_sapiens_assembly38.dict" + fasta = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/WholeGenomeFasta/Homo_sapiens_assembly38.fasta" + fasta_fai = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Sequence/WholeGenomeFasta/Homo_sapiens_assembly38.fasta.fai" + germline_resource = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GermlineResource/gnomAD.r2.1.1.GRCh38.PASS.AC.AF.only.vcf.gz" + germline_resource_index = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GermlineResource/gnomAD.r2.1.1.GRCh38.PASS.AC.AF.only.vcf.gz.tbi" + intervals = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/intervals/wgs_calling_regions.hg38.bed" + known_indels = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz" + known_indels_index = "${params.igenomes_base}/Homo_sapiens/GATK/GRCh38/Annotation/GATKBundle/{Mills_and_1000G_gold_standard.indels.hg38,beta/Homo_sapiens_assembly38.known_indels}.vcf.gz.tbi" + snpeff_db = 'GRCh38.86' + species = 'homo_sapiens' + vep_cache_version = '95' } 'GRCm38' { - bwaIndex = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - chrDir = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Chromosomes" - chrLength = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Length/GRCm38.len" - dbsnp = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/MouseGenomeProject/Annotation/mgp.v5.merged.snps_all.dbSNP142.vcf.gz" - dbsnpIndex = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/MouseGenomeProject/Annotation/mgp.v5.merged.snps_all.dbSNP142.vcf.gz.tbi" - dict = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.dict" - fasta = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.fa" - fastaFai = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.fa.fai" - intervals = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Annotation/intervals/GRCm38_calling_list.bed" - knownIndels = "${params.igenomes_base}/Mus_musculus/Annotation/MouseGenomeProject/mgp.v5.merged.indels.dbSNP142.normed.vcf.gz" - knownIndelsIndex = "${params.igenomes_base}/Mus_musculus/Annotation/MouseGenomeProject/mgp.v5.merged.indels.dbSNP142.normed.vcf.gz.tbi" - snpeffDb = 'GRCm38.86' - species = 'mus_musculus' - vepCacheVersion = '98' + bwa = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + chr_dir = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Chromosomes" + chr_length = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Length/GRCm38.len" + dbsnp = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/MouseGenomeProject/Annotation/mgp.v5.merged.snps_all.dbSNP142.vcf.gz" + dbsnp_index = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/MouseGenomeProject/Annotation/mgp.v5.merged.snps_all.dbSNP142.vcf.gz.tbi" + dict = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.dict" + fasta = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.fa" + fasta_fai = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.fa.fai" + intervals = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Annotation/intervals/GRCm38_calling_list.bed" + known_indels = "${params.igenomes_base}/Mus_musculus/Annotation/MouseGenomeProject/mgp.v5.merged.indels.dbSNP142.normed.vcf.gz" + known_indels_index = "${params.igenomes_base}/Mus_musculus/Annotation/MouseGenomeProject/mgp.v5.merged.indels.dbSNP142.normed.vcf.gz.tbi" + snpeff_db = 'GRCm38.86' + species = 'mus_musculus' + vep_cache_version = '98' } 'TAIR10' { - bwaIndex = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/WholeGenomeFasta/genome.fa" } 'EB2' { - bwaIndex = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/WholeGenomeFasta/genome.fa" } 'UMD3.1' { - bwaIndex = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/WholeGenomeFasta/genome.fa" } 'bosTau8' { - bwaIndex = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/WholeGenomeFasta/genome.fa" } 'WBcel235' { - bwaIndex = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/WholeGenomeFasta/genome.fa" } 'ce10' { - bwaIndex = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/WholeGenomeFasta/genome.fa" } 'CanFam3.1' { - bwaIndex = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/WholeGenomeFasta/genome.fa" } 'canFam3' { - bwaIndex = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/WholeGenomeFasta/genome.fa" } 'GRCz10' { - bwaIndex = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/WholeGenomeFasta/genome.fa" } 'danRer10' { - bwaIndex = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/WholeGenomeFasta/genome.fa" } 'BDGP6' { - bwaIndex = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/WholeGenomeFasta/genome.fa" } 'dm6' { - bwaIndex = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/WholeGenomeFasta/genome.fa" } 'EquCab2' { - bwaIndex = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/WholeGenomeFasta/genome.fa" } 'equCab2' { - bwaIndex = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/WholeGenomeFasta/genome.fa" } 'EB1' { - bwaIndex = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/WholeGenomeFasta/genome.fa" } 'Galgal4' { - bwaIndex = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/WholeGenomeFasta/genome.fa" } 'galGal4' { - bwaIndex = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/WholeGenomeFasta/genome.fa" } 'Gm01' { - bwaIndex = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/WholeGenomeFasta/genome.fa" } 'hg38' { - bwaIndex = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa" } 'hg19' { - bwaIndex = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/WholeGenomeFasta/genome.fa" } 'Mmul_1' { - bwaIndex = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/WholeGenomeFasta/genome.fa" } 'mm10' { - bwaIndex = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/WholeGenomeFasta/genome.fa" } 'IRGSP-1.0' { - bwaIndex = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/WholeGenomeFasta/genome.fa" } 'CHIMP2.1.4' { - bwaIndex = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/WholeGenomeFasta/genome.fa" } 'panTro4' { - bwaIndex = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/WholeGenomeFasta/genome.fa" } 'Rnor_6.0' { - bwaIndex = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/WholeGenomeFasta/genome.fa" } 'rn6' { - bwaIndex = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/WholeGenomeFasta/genome.fa" } 'R64-1-1' { - bwaIndex = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/WholeGenomeFasta/genome.fa" } 'sacCer3' { - bwaIndex = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/WholeGenomeFasta/genome.fa" } 'EF2' { - bwaIndex = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/WholeGenomeFasta/genome.fa" } 'Sbi1' { - bwaIndex = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/WholeGenomeFasta/genome.fa" } 'Sscrofa10.2' { - bwaIndex = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/WholeGenomeFasta/genome.fa" } 'susScr3' { - bwaIndex = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/WholeGenomeFasta/genome.fa" } 'AGPv3' { - bwaIndex = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" - fasta = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/WholeGenomeFasta/genome.fa" + bwa = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/BWAIndex/genome.fa.{amb,ann,bwt,pac,sa}" + fasta = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/WholeGenomeFasta/genome.fa" } } } diff --git a/conf/test.config b/conf/test.config index d8b3673d9c..e7144d8cd1 100644 --- a/conf/test.config +++ b/conf/test.config @@ -17,7 +17,7 @@ params { // Input data input = 'https://github.com/nf-core/test-datasets/raw/sarek/testdata/tsv/tiny-manta-https.tsv' // Small reference genome - igenomesIgnore = true + igenomes_ignore = true genome = 'smallGRCh37' genomes_base = "https://github.com/nf-core/test-datasets/raw/sarek/reference" } diff --git a/conf/test_targeted.config b/conf/test_targeted.config index b3575300c1..2daa595512 100644 --- a/conf/test_targeted.config +++ b/conf/test_targeted.config @@ -10,6 +10,6 @@ includeConfig 'test.config' params { - targetBed = 'https://github.com/nf-core/test-datasets/raw/sarek/testdata/tsv/tiny-manta-https.tsv' + target_bed = 'https://github.com/nf-core/test-datasets/raw/sarek/testdata/target.bed' tools = 'manta,strelka' } \ No newline at end of file diff --git a/docs/usage.md b/docs/usage.md index 1d74294890..258ad38a78 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -11,42 +11,61 @@ - [--sample](#--sample) - [--sampleDir](#--sampledir) - [--annotateVCF](#--annotatevcf) + - [--no_gvcf](#--no_gvcf) - [--noGVCF](#--nogvcf) + - [--skip_qc](#--skip_qc) - [--skipQC](#--skipqc) - [--noReports](#--noreports) + - [--nucleotides_per_second](#--nucleotides_per_second) - [--nucleotidesPerSecond](#--nucleotidespersecond) - [--step](#--step) - [--tools](#--tools) - [--sentieon](#--sentieon) + - [--no_strelka_bp](#--no_strelka_bp) - [--noStrelkaBP](#--nostrelkabp) - [--no_intervals](#--no_intervals) + - [--target_bed](#--target_bed) - [--targetBED](#--targetbed) - [Reference genomes](#reference-genomes) - [--genome (using iGenomes)](#--genome-using-igenomes) + - [--ac_loci](#--ac_loci) - [--acLoci](#--acloci) + - [--ac_loci_gc](#--ac_loci_gc) - [--acLociGC](#--aclocigc) + - [--bwa](#--bwa) - [--bwaIndex](#--bwaindex) + - [--chr_dir](#--chr_dir) - [--chrDir](#--chrdir) + - [--chr_length](#--chr_length) - [--chrLength](#--chrlength) - [--dbsnp](#--dbsnp) + - [--dbsnp_index](#--dbsnp_index) - [--dbsnpIndex](#--dbsnpindex) - [--dict](#--dict) - [--fasta](#--fasta) + - [--fasta_fai](#--fasta_fai) - [--fastaFai](#--fastafai) - [--genomeDict](#--genomedict) - [--genomeFile](#--genomefile) - [--genomeIndex](#--genomeindex) + - [--germline_resource](#--germline_resource) - [--germlineResource](#--germlineresource) + - [--germline_resource_index](#--germline_resource_index) - [--germlineResourceIndex](#--germlineresourceindex) - [--intervals](#--intervals) + - [--known_indels](#--known_indels) - [--knownIndels](#--knownindels) + - [--known_indels_index](#--known_indels_index) - [--knownIndelsIndex](#--knownindelsindex) - [--pon](#--pon) - [--pon_index](#--pon_index) + - [--snpeff_db](#--snpeff_db) - [--snpeffDb](#--snpeffdb) + - [--species](#--species) + - [--vep_cache_version](#--vep_cache_version) - [--vepCacheVersion](#--vepcacheversion) + - [--igenomes_ignore](#--igenomes_ignore) - [--igenomesIgnore](#--igenomesignore) - - [--species](#--species) - [Job resources](#job-resources) - [Automatic resubmission](#automatic-resubmission) - [Custom resource requests](#custom-resource-requests) @@ -55,6 +74,8 @@ - [--awsregion](#--awsregion) - [Other command line parameters](#other-command-line-parameters) - [--outdir](#--outdir) +- [--publish_dir_mode](#--publish_dir_mode) +- [--publishDirMode](#--publishdirmode) - [--sequencing_center](#--sequencing_center) - [--email](#--email) - [-name](#-name) @@ -63,6 +84,8 @@ - [--custom_config_version](#--custom_config_version) - [--custom_config_base](#--custom_config_base) - [--max_memory](#--max_memory) + - [--single_cpu_mem](#--single_cpu_mem) + - [--singleCPUMem](#--singlecpumem) - [--max_time](#--max_time) - [--max_cpus](#--max_cpus) - [--plaintext_email](#--plaintext_email) @@ -195,77 +218,51 @@ For example: > :warning: This params is deprecated -- it will be removed in a future release. > Please check: [`--input`](#--input) -Use this to specify the location of your input TSV file, on `mapping`, `recalibrate` and `variantcalling` steps. -For example: - -```bash ---sample sample.tsv -``` - -Multiple TSV files can be specified if the path must be enclosed in quotes - -Use this to specify the location to a directory on `mapping` step with a single germline sample only. -For example: - -```bash ---sample PathToDirectory -``` - -Use this to specify the location of your VCF input file on `annotate` step. -For example: - -```bash ---sample sample.vcf -``` - -Multiple VCF files can be specified if the path must be enclosed in quotes - ### --sampleDir > :warning: This params is deprecated -- it will be removed in a future release. > Please check: [`--input`](#--input) -Use this to specify the location to a directory on `mapping` step with a single germline sample only. -For example: - -```bash ---sampleDir PathToDirectory -``` - ### --annotateVCF > :warning: This params is deprecated -- it will be removed in a future release. > Please check: [`--input`](#--input) -Use this to specify the location of your VCF input file on `annotate` step. -For example: +Multiple VCF files can be specified if the path must be enclosed in quotes -```bash ---annotateVCF sample.vcf -``` +### --no_gvcf -Multiple VCF files can be specified if the path must be enclosed in quotes +Use this to disable g.vcf from `HaplotypeCaller`. ### --noGVCF -Use this to disable g.vcf from `HaplotypeCaller`. +> :warning: This params is deprecated -- it will be removed in a future release. +> Please check: [`--no_gvcf`](#--no_gvcf) -### --skipQC +### --skip_qc Use this to disable specific QC and Reporting tools. Available: `all`, `bamQC`, `BCFtools`, `FastQC`, `MultiQC`, `samtools`, `vcftools`, `versions` Default: `None` +### --skipQC + +> :warning: This params is deprecated -- it will be removed in a future release. +> Please check: [`--skip_qc`](#--skip_qc) + ### --noReports > :warning: This params is deprecated -- it will be removed in a future release. > Please check: [`--skipQC`](#--skipQC) -Use this to disable all QC and Reporting tools. +### --nucleotides_per_second + +Use this to estimate of how many seconds it will take to call variants on any interval, the default value is `1000` is it's not specified in the `.bed` file. ### --nucleotidesPerSecond -Use this to estimate of how many seconds it will take to call variants on any interval, the default value is `1000` is it's not specified in the `.bed` file. +> :warning: This params is deprecated -- it will be removed in a future release. +> Please check: [`--nucleotides_per_second`](#--nucleotides_per_second) ### --step @@ -287,18 +284,28 @@ Please refer to the [nf-core/configs](https://github.com/nf-core/configs#adding- Or ask us on the [nf-core Slack](http://nf-co.re/join/slack) on the following channels: [#sarek](https://nfcore.slack.com/channels/sarek) [#configs](https://nfcore.slack.com/channels/configs). -### --noStrelkaBP +### --no_strelka_bp Use this not to use `Manta` `candidateSmallIndels` for `Strelka` as Best Practice. +### --noStrelkaBP + +> :warning: This params is deprecated -- it will be removed in a future release. +> Please check: [`--no_strelka_bp`](#--no_strelka_bp) + ### --no_intervals Disable usage of intervals file, and disable automatic generation of intervals file when none are provided. -### --targetBED +### --target_bed Use this to specify the target BED file for targeted or whole exome sequencing. +### --targetBED + +> :warning: This params is deprecated -- it will be removed in a future release. +> Please check: [`--target_bed`](#--target_bed) + ## Reference genomes The pipeline config files come bundled with paths to the Illumina iGenomes reference index files. @@ -408,64 +415,94 @@ The syntax for this reference configuration is as follows: params { genomes { 'GRCh38' { - acLoci = '' - acLociGC = '' - bwaIndex = '' - dbsnp = '' - dbsnpIndex = '' - dict = '' - fasta = '' - fastaFai = '' - intervals = '' - knownIndels = '' - knownIndelsIndex = '' - snpeffDb = '' - vepCacheVersion = '' + ac_loci = '' + ac_lociGC = '' + bwa = '' + chr_dir = '' + chr_length = '' + dbsnp = '' + dbsnp_index = '' + dict = '' + fasta = '' + fasta_fai = '' + germline_resource = '' + germline_resource_index = '' + intervals = '' + known_indels = '' + known_indels_index = '' + snpeff_db = '' + species = '' + vep_cache_version = '' } // Any number of additional genomes, key is used with --genome } } ``` +### --ac_loci + +If you prefer, you can specify the full path to your reference genome when you run the pipeline: + +```bash +--ac_loci '[path to the acLoci file]' +``` + ### --acLoci +> :warning: This params has been removed. +> Please check: [`--ac_loci`](#--ac_loci) + +### --ac_loci_gc + If you prefer, you can specify the full path to your reference genome when you run the pipeline: ```bash ---acLoci '[path to the acLoci file]' +--ac_loci_gc '[path to the acLociGC file]' ``` ### --acLociGC +> :warning: This params has been removed. +> Please check: [`--ac_loci_gc`](#--ac_loci_gc) + +### --bwa + If you prefer, you can specify the full path to your reference genome when you run the pipeline: ```bash ---acLociGC '[path to the acLociGC file]' +--bwa '[path to the bwa indexes]' ``` ### --bwaIndex +> :warning: This params has been removed. +> Please check: [`--bwa`](#--bwa) + +### --chr_dir + If you prefer, you can specify the full path to your reference genome when you run the pipeline: ```bash ---bwaIndex '[path to the bwa indexes]' +--chr_dir '[path to the Chromosomes folder]' ``` ### --chrDir +> :warning: This params has been removed. +> Please check: [`--chr_dir`](#--chr_dir) + +### --chr_length + If you prefer, you can specify the full path to your reference genome when you run the pipeline: ```bash ---chrDir '[path to the Chromosomes folder]' +--chr_length '[path to the Chromosomes length file]' ``` ### --chrLength -If you prefer, you can specify the full path to your reference genome when you run the pipeline: - -```bash ---chrLength '[path to the Chromosomes length file]' -``` +> :warning: This params has been removed. +> Please check: [`--chr_length`](#--chr_length) ### --dbsnp @@ -475,14 +512,19 @@ If you prefer, you can specify the full path to your reference genome when you r --dbsnp '[path to the dbsnp file]' ``` -### --dbsnpIndex +### --dbsnp_index If you prefer, you can specify the full path to your reference genome when you run the pipeline: ```bash ---dbsnpIndex '[path to the dbsnp index]' +--dbsnp_index '[path to the dbsnp index]' ``` +### --dbsnpIndex + +> :warning: This params has been removed. +> Please check: [`--dbsnp_index`](#--dbsnp_index) + ### --dict If you prefer, you can specify the full path to your reference genome when you run the pipeline: @@ -499,48 +541,35 @@ If you prefer, you can specify the full path to your reference genome when you r --fasta '[path to the reference fasta file]' ``` -### --fastaFai +### --fasta_fai If you prefer, you can specify the full path to your reference genome when you run the pipeline: ```bash ---fastaFai '[path to the reference index]' +--fasta_fai '[path to the reference index]' ``` -### --genomeDict +### --fastaFai -> :warning: This params is deprecated -- it will be removed in a future release. -> Please check: [`--dict`](#--dict) +> :warning: This params has been removed. +> Please check: [`--dbsnp_index`](#--dbsnp_index) -If you prefer, you can specify the full path to your reference genome when you run the pipeline: +### --genomeDict -```bash ---dict '[path to the dict file]' -``` +> :warning: This params has been removed. +> Please check: [`--dict`](#--dict) ### --genomeFile -> :warning: This params is deprecated -- it will be removed in a future release. +> :warning: This params has been removed. > Please check: [`--fasta`](#--fasta) -If you prefer, you can specify the full path to your reference genome when you run the pipeline: - -```bash ---fasta '[path to the reference fasta file]' -``` - ### --genomeIndex -> :warning: This params is deprecated -- it will be removed in a future release. +> :warning: This params has been removed. > Please check: [`--fastaFai`](#--fastaFai) -If you prefer, you can specify the full path to your reference genome when you run the pipeline: - -```bash ---fastaFai '[path to the reference index]' -``` - -### --germlineResource +### --germline_resource The [germline resource VCF file](https://software.broadinstitute.org/gatk/documentation/tooldocs/current/org_broadinstitute_hellbender_tools_walkers_mutect_Mutect2.php#--germline-resource) (bgzipped and tabixed) needed by GATK4 Mutect2 is a collection of calls that are likely present in the sample, with allele frequencies. The AF info field must be present. @@ -548,18 +577,28 @@ You can find a smaller, stripped gnomAD VCF file (most of the annotation is remo To add your own germline resource supply ```bash ---germlineResource '[path to my resource.vcf.gz]' +--germline_resource '[path to my resource.vcf.gz]' ``` -### --germlineResourceIndex +### --germlineResource -Tabix index of the germline resource specified at [`--germlineResource`](#--germlineResource). +> :warning: This params has been removed. +> Please check: [`--germline_resource`](#--germline_resource) + +### --germline_resource_index + +Tabix index of the germline resource specified at [`--germline_resource`](#--germline_resource). To add your own germline resource supply ```bash ---germlineResourceIndex '[path to my resource.vcf.gz.idx]' +--germline_resource_index '[path to my resource.vcf.gz.idx]' ``` +### --germlineResourceIndex + +> :warning: This params has been removed. +> Please check: [`--germline_resource_index`](#--germline_resource_index) + ### --intervals If you prefer, you can specify the full path to your reference genome when you run the pipeline: @@ -568,22 +607,32 @@ If you prefer, you can specify the full path to your reference genome when you r --intervals '[path to the intervals file]' ``` -### --knownIndels +### --known_indels If you prefer, you can specify the full path to your reference genome when you run the pipeline: ```bash ---knownIndels '[path to the knownIndels file]' +--known_indels '[path to the knownIndels file]' ``` -### --knownIndelsIndex +### --knownIndels + +> :warning: This params has been removed. +> Please check: [`--known_indels`](#--known_indels) + +### --known_indels_index If you prefer, you can specify the full path to your reference genome when you run the pipeline: ```bash ---knownIndelsIndex '[path to the knownIndels index]' +--known_indels_index '[path to the knownIndels index]' ``` +### --knownIndelsIndex + +> :warning: This params has been removed. +> Please check: [`--known_indels_index`](#--known_indels_index) + ### --pon When a panel of normals [PON](https://gatkforums.broadinstitute.org/gatk/discussion/24057/how-to-call-somatic-mutations-using-gatk4-mutect2#latest) is defined, you will get filtered somatic calls as a result. @@ -602,30 +651,49 @@ If the PON file is bgzipped, there has to be a tabixed index file at the same di Tabix index of the panel-of-normals bgzipped VCF file. -### --snpeffDb +### --snpeff_db If you prefer, you can specify the DB version when you run the pipeline: ```bash ---snpeffDb '[version of the snpEff DB]' +--snpeff_db '[version of the snpEff DB]' ``` -### --vepCacheVersion +### --snpeffDb + +> :warning: This params has been removed. +> Please check: [`--snpeff_db`](#--snpeff_db) + +### --species + +This specifies the species used for running VEP annotation. For human data, this needs to be set to `homo_sapiens`, for mouse data `mus_musculus` as the annotation needs to know where to look for appropriate annotation references. If you use iGenomes or a local resource with `genomes.conf`, this has already been set for you appropriately. + +### --vep_cache_version If you prefer, you can specify the cache version when you run the pipeline: ```bash ---vepCacheVersion '[version of the VEP cache]' +--vep_cache_version '[version of the VEP cache]' ``` -### --igenomesIgnore +### --vepCacheVersion + +> :warning: This params has been removed. +> Please check: [`--vep_cache_version`](#--vep_cache_version) + +### --igenomes_ignore Do not load `igenomes.config` when running the pipeline. You may choose this option if you observe clashes between custom parameters and those supplied in `igenomes.config`. -### --species +```bash +--igenomes_ignore +``` -This specifies the species used for running VEP annotation. For human data, this needs to be set to `homo_sapiens`, for mouse data `mus_musculus` as the annotation needs to know where to look for appropriate annotation references. If you use iGenomes or a local resource with `genomes.conf`, this has already been set for you appropriately. +### --igenomesIgnore + +> :warning: This params has been removed. +> Please check: [`--igenomes_ignore`](#--igenomes_ignore) ## Job resources @@ -669,6 +737,17 @@ Please make sure to also set the `-w/--work-dir` and `--outdir` parameters to a The output directory where the results will be saved. Default: `results/ +## --publish_dir_mode + +The file publishing method. +Available: `symlink`, `rellink`, `link`, `copy`, `copyNoFollow`, `move` +Default: `copy` + +## --publishDirMode + +> :warning: This params is deprecated -- it will be removed in a future release. +> Please check: [`--publish_dir_mode`](#--publish_dir_mode) + ### --sequencing_center The sequencing center that will be used in the BAM CN field @@ -743,6 +822,16 @@ nextflow run /path/to/pipeline/ --custom_config_base /path/to/my/configs/configs Use to set a top-limit for the default memory requirement for each process. Should be a string in the format integer-unit eg. `--max_memory '8.GB'` +### --single_cpu_mem + +Use to set memory for a single CPU. +Should be a string in the format integer-unit eg. `--single_cpu_mem '8.GB'` + +### --singleCPUMem + +> :warning: This params has been removed. +> Please check: [`--single_cpu_mem`](#--single_cpu_mem) + ### --max_time Use to set a top-limit for the default time requirement for each process. diff --git a/main.nf b/main.nf index 5f3e1e2cf3..dd4a14118e 100644 --- a/main.nf +++ b/main.nf @@ -12,10 +12,10 @@ nf-core/sarek: from whole genome or targeted sequencing -------------------------------------------------------------------------------- @Homepage - https://sarek.scilifelab.se/ + https://nf-co.re/sarek -------------------------------------------------------------------------------- @Documentation - https://github.com/nf-core/sarek/README.md + https://nf-co.re/sarek/docs -------------------------------------------------------------------------------- */ @@ -41,12 +41,12 @@ def helpMessage() { Options: --genome Name of iGenomes reference - --noGVCF No g.vcf output from HaplotypeCaller - --noStrelkaBP Will not use Manta candidateSmallIndels for Strelka as Best Practice + --no_gvcf No g.vcf output from HaplotypeCaller + --no_strelka_bp Will not use Manta candidateSmallIndels for Strelka as Best Practice --no_intervals Disable usage of intervals - --nucleotidesPerSecond To estimate interval size + --nucleotides_per_second To estimate interval size Default: 1000.0 - --targetBED Target BED file for targeted or whole exome sequencing + --target_bed Target BED file for targeted or whole exome sequencing --step Specify starting step Available: Mapping, Recalibrate, VariantCalling, Annotate Default: Mapping @@ -56,53 +56,56 @@ def helpMessage() { and/or for annotation: snpEff, VEP, merge Default: None - --skipQC Specify which QC tools to skip when running Sarek + --skip_qc Specify which QC tools to skip when running Sarek Available: all, bamQC, BCFtools, FastQC, MultiQC, samtools, vcftools, versions Default: None - --annotateTools Specify from which tools Sarek will look for VCF files to annotate, only for step annotate + --annotate_tools Specify from which tools Sarek will look for VCF files to annotate, only for step annotate Available: HaplotypeCaller, Manta, Mutect2, Strelka, TIDDIT Default: None --sentieon If sentieon is available, will enable it for preprocessing, and variant calling Adds the following tools for --tools: DNAseq, DNAscope and TNscope - --annotation_cache Enable the use of cache for annotation, to be used with --snpEff_cache and/or --vep_cache - --snpEff_cache Specity the path to snpEff cache, to be used with --annotation_cache + --annotation_cache Enable the use of cache for annotation, to be used with --snpeff_cache and/or --vep_cache + --snpeff_cache Specity the path to snpEff cache, to be used with --annotation_cache --vep_cache Specity the path to VEP cache, to be used with --annotation_cache --pon panel-of-normals VCF (bgzipped, indexed). See: https://software.broadinstitute.org/gatk/documentation/tooldocs/current/org_broadinstitute_hellbender_tools_walkers_mutect_CreateSomaticPanelOfNormals.php --pon_index index of pon panel-of-normals VCF References If not specified in the configuration file or you wish to overwrite any of the references. - --acLoci acLoci file - --acLociGC acLoci GC file - --bwaIndex bwa indexes + --ac_loci acLoci file + --ac_loci_gc acLoci GC file + --bwa bwa indexes If none provided, will be generated automatically from the fasta reference --dbsnp dbsnp file - --dbsnpIndex dbsnp index + --dbsnp_index dbsnp index If none provided, will be generated automatically if a dbsnp file is provided --dict dict from the fasta reference If none provided, will be generated automatically from the fasta reference --fasta fasta reference - --fastafai reference index + --fasta_fai reference index If none provided, will be generated automatically from the fasta reference - --germlineResource Germline Resource File - --germlineResourceIndex Germline Resource Index + --germline_resource Germline Resource File + --germline_resource_index Germline Resource Index If none provided, will be generated automatically if a germlineResource file is provided --intervals intervals If none provided, will be generated automatically from the fasta reference Use --no_intervals to disable automatic generation - --knownIndels knownIndels file - --knownIndelsIndex knownIndels index + --known_indels knownIndels file + --known_indels_index knownIndels index If none provided, will be generated automatically if a knownIndels file is provided --species species for VEP - --snpeffDb snpeffDb version - --vepCacheVersion VEP Cache version + --snpeff_db snpeffDb version + --vep_cache_version VEP Cache version Other options: --outdir The output directory where the results will be saved + --publish_dir_mode Mode of publishing data in the output directory. + Available: symlink, rellink, link, copy, copyNoFollow, move + Default: copy --sequencing_center Name of sequencing center to be displayed in BAM file --multiqc_config Specify a custom config file for MultiQC --monochrome_logs Logs will be without colors --email Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits - --maxMultiqcEmailFileSize Theshold size for MultiQC report to be attached in notification email. If file generated by pipeline exceeds the threshold, it will not be attached (Default: 25MB) + --max_multiqc_email_size Theshold size for MultiQC report to be attached in notification email. If file generated by pipeline exceeds the threshold, it will not be attached (Default: 25MB) -name Name for the pipeline run. If not specified, Nextflow will automatically generate a random mnemonic AWSBatch options: @@ -111,21 +114,204 @@ def helpMessage() { """.stripIndent() } -/* - * SET UP CONFIGURATION VARIABLES - */ - // Show help message if (params.help) exit 0, helpMessage() -// Print warning message -if (params.noReports) log.warn "The params `--noReports` is deprecated -- it will be removed in a future release.\n\tPlease check: https://github.com/nf-core/sarek/blob/master/docs/usage.md#--skipQC" -if (params.annotateVCF) log.warn "The params `--annotateVCF` is deprecated -- it will be removed in a future release.\n\tPlease check: https://github.com/nf-core/sarek/blob/master/docs/usage.md#--input" -if (params.genomeDict) log.warn "The params `--genomeDict` is deprecated -- it will be removed in a future release.\n\tPlease check: https://github.com/nf-core/sarek/blob/master/docs/usage.md#--dict" -if (params.genomeFile) log.warn "The params `--genomeFile` is deprecated -- it will be removed in a future release.\n\tPlease check: https://github.com/nf-core/sarek/blob/master/docs/usage.md#--fasta" -if (params.genomeIndex) log.warn "The params `--genomeIndex` is deprecated -- it will be removed in a future release.\n\tPlease check: https://github.com/nf-core/sarek/blob/master/docs/usage.md#--fastaFai" -if (params.sample) log.warn "The params `--sample` is deprecated -- it will be removed in a future release.\n\tPlease check: https://github.com/nf-core/sarek/blob/master/docs/usage.md#--input" -if (params.sampleDir) log.warn "The params `--sampleDir` is deprecated -- it will be removed in a future release.\n\tPlease check: https://github.com/nf-core/sarek/blob/master/docs/usage.md#--input" +/* +================================================================================ + HANDLE OLD PARAMS +================================================================================ +*/ + +// Warnings for deprecated params + +params.annotateTools = null +if (params.annotateTools) { + log.warn "The params `--annotateTools` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--annotate_tools" + params.annotate_tools = params.annotateTools +} + +params.annotateVCF = null +if (params.annotateVCF) { + log.warn "The params `--annotateVCF` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--input" + input = params.annotateVCF +} + +params.cadd_InDels = null +if (params.cadd_InDels) { + log.warn "The params `--cadd_InDels is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--cadd_indels" + params.cadd_indels = params.cadd_InDels +} + +params.cadd_InDels_tbi = null +if (params.cadd_InDels_tbi) { + log.warn "The params `--cadd_InDels_tbi is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--cadd_indels_tbi" + params.cadd_indels_tbi = params.cadd_InDels_tbi +} + +params.cadd_WG_SNVs = null +if (params.cadd_WG_SNVs) { + log.warn "The params `--cadd_WG_SNVs is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--cadd_wg_snvs" + params.cadd_wg_snvs = params.cadd_WG_SNVs +} + +params.cadd_WG_SNVs_tbi = null +if (params.cadd_WG_SNVs_tbi) { + log.warn "The params `--cadd_WG_SNVs_tbi is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--cadd_wg_snvs_tbi" + params.cadd_wg_snvs_tbi = params.cadd_WG_SNVs_tbi +} + +params.maxMultiqcEmailFileSize = null +if (params.maxMultiqcEmailFileSize) { + log.warn "The params `--maxMultiqcEmailFileSize` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--max_multiqc_email_size" + params.max_multiqc_email_size = params.maxMultiqcEmailFileSize +} + +params.noGVCF = null +if (params.noGVCF) { + log.warn "The params `--noGVCF` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--no_gvcf" + params.no_gvcf = params.noGVCF +} + +params.noReports = null +if (params.noReports) { + log.warn "The params `--noReports` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--skip_qc" + params.skip_qc = 'all' +} + +params.noStrelkaBP = null +if (params.noStrelkaBP) { + log.warn "The params `--noStrelkaBP` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--no_strelka_bp" + params.no_strelka_bp = params.noStrelkaBP +} + +params.nucleotidesPerSecond = null +if (params.nucleotidesPerSecond) { + log.warn "The params `--nucleotidesPerSecond` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--nucleotides_per_second" + params.nucleotides_per_second = params.nucleotidesPerSecond +} + +params.publishDirMode = null +if (params.publishDirMode) { + log.warn "The params `--publishDirMode` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--publish_dir_mode" + params.publish_dir_mode = params.publishDirMode +} + +params.sample = null +if (params.sample) { + log.warn "The params `--sample` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--input" + params.input = params.sample +} + +params.sampleDir = null +if (params.sampleDir) { + log.warn "The params `--sampleDir` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--input" + params.input = params.sampleDir +} + +params.saveGenomeIndex = null +if (params.saveGenomeIndex) { + log.warn "The params `--saveGenomeIndex` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--save_reference" + params.save_reference = params.saveGenomeIndex +} + +params.skipQC = null +if (params.skipQC) { + log.warn "The params `--skipQC` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--skip_qc" + params.skip_qc = params.skipQC +} + +params.snpEff_cache = null +if (params.snpEff_cache) { + log.warn "The params `--snpEff_cache` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--snpeff_cache" + params.snpeff_cache = params.snpEff_cache +} + +params.targetBed = null +if (params.targetBed) { + log.warn "The params `--targetBed` is deprecated -- it will be removed in a future release." + log.warn "\tPlease check: https://nf-co.re/sarek/docs/usage.md#--target_bed" + params.target_bed = params.targetBed +} + +// Errors for removed params + +params.acLoci = null +if (params.acLoci) exit 1, "The params `--acLoci` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--ac_loci" + +params.acLociGC = null +if (params.acLociGC) exit 1, "The params `--acLociGC` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--ac_loci_gc" + +params.bwaIndex = null +if (params.bwaIndex) exit 1, "The params `--bwaIndex` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--bwa" + +params.chrDir = null +if (params.chrDir) exit 1, "The params `--chrDir` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--chr_dir" + +params.chrLength = null +if (params.chrLength) exit 1, "The params `--chrLength` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--chr_length" + +params.dnsnpIndex = null +if (params.dnsnpIndex) exit 1, "The params `--dnsnpIndex` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--dnsnp_index" + +params.fastaFai = null +if (params.fastaFai) exit 1, "The params `--fastaFai` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--fasta_fai" + +params.genomeDict = null +if (params.genomeDict) exit 1, "The params `--genomeDict` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--dict" + +params.genomeFile = null +if (params.genomeFile) exit 1, "The params `--genomeFile` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--fasta" + +params.genomeIndex = null +if (params.genomeIndex) exit 1, "The params `--genomeIndex` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--fasta_fai" + +params.germlineResource = null +if (params.germlineResource) exit 1, "The params `--germlineResource` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--germline_resource" + +params.germlineResourceIndex = null +if (params.germlineResourceIndex) exit 1, "The params `--germlineResourceIndex` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--germline_resource_index" + +params.igenomesIgnore = null +if (params.igenomesIgnore) exit 1, "The params `--igenomesIgnore` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--igenomes_ignore" + +params.knownIndels = null +if (params.knownIndels) exit 1, "The params `--knownIndels` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--known_indels" + +params.knownIndelsIndex = null +if (params.knownIndelsIndex) exit 1, "The params `--knownIndelsIndex` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--known_indels_index" + +params.snpeffDb = null +if (params.snpeffDb) exit 1, "The params `--snpeffDb` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--snpeff_db" + +params.singleCPUMem = null +if (params.singleCPUMem) exit 1, "The params `--singleCPUMem` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--single_cpu_mem" + +params.vepCacheVersion = null +if (params.vepCacheVersion) exit 1, "The params `--vepCacheVersion` has been removed.\n\tPlease check: https://nf-co.re/sarek/docs/usage.md#--vep_cache_version" + +/* +================================================================================ + SET UP CONFIGURATION VARIABLES +================================================================================ +*/ // Check if genome exists in the config file if (params.genomes && params.genome && !params.genomes.containsKey(params.genome)) { @@ -146,16 +332,13 @@ tools = params.tools ? params.tools.split(',').collect{it.trim().toLowerCase()} if (!checkParameterList(tools, toolList)) exit 1, 'Unknown tool(s), see --help for more information' skipQClist = defineSkipQClist() -skipQC = params.skipQC ? params.skipQC == 'all' ? skipQClist : params.skipQC.split(',').collect{it.trim().toLowerCase()} : [] +skipQC = params.skip_qc ? params.skip_qc == 'all' ? skipQClist : params.skip_qc.split(',').collect{it.trim().toLowerCase()} : [] if (!checkParameterList(skipQC, skipQClist)) exit 1, 'Unknown QC tool(s), see --help for more information' annoList = defineAnnoList() -annotateTools = params.annotateTools ? params.annotateTools.split(',').collect{it.trim().toLowerCase()} : [] +annotateTools = params.annotate_tools ? params.annotate_tools.split(',').collect{it.trim().toLowerCase()} : [] if (!checkParameterList(annotateTools,annoList)) exit 1, 'Unknown tool(s) to annotate, see --help for more information' -// Handle deprecation -if (params.noReports) skipQC = skipQClist - // Has the run name been specified by the user? // This has the bonus effect of catching both -name and --name custom_runName = params.name @@ -178,11 +361,6 @@ tsvPath = null if (params.input && (hasExtension(params.input, "tsv") || hasExtension(params.input, "vcf") || hasExtension(params.input, "vcf.gz"))) tsvPath = params.input if (params.input && (hasExtension(params.input, "vcf") || hasExtension(params.input, "vcf.gz"))) step = "annotate" -// Handle deprecation -if (params.annotateVCF) tsvPath = params.annotateVCF -if (params.sample) tsvPath = params.sample -if (params.sampleDir) tsvPath = params.sampleDir - // If no input file specified, trying to get TSV files corresponding to step in the TSV directory // only for steps recalibrate and variantCalling if (!params.input && step != 'mapping' && step != 'annotate') { @@ -233,48 +411,48 @@ if (tsvPath) { // params.fasta has to be the first one params.fasta = params.genome && !('annotate' in step) ? params.genomes[params.genome].fasta ?: null : null // The rest can be sorted -params.acLoci = params.genome && 'ascat' in tools ? params.genomes[params.genome].acLoci ?: null : null -params.acLociGC = params.genome && 'ascat' in tools ? params.genomes[params.genome].acLociGC ?: null : null -params.bwaIndex = params.genome && params.fasta && 'mapping' in step ? params.genomes[params.genome].bwaIndex ?: null : null -params.chrDir = params.genome && 'controlfreec' in tools ? params.genomes[params.genome].chrDir ?: null : null -params.chrLength = params.genome && 'controlfreec' in tools ? params.genomes[params.genome].chrLength ?: null : null +params.ac_loci = params.genome && 'ascat' in tools ? params.genomes[params.genome].ac_loci ?: null : null +params.ac_loci_gc = params.genome && 'ascat' in tools ? params.genomes[params.genome].ac_loci_gc ?: null : null +params.bwa = params.genome && params.fasta && 'mapping' in step ? params.genomes[params.genome].bwa ?: null : null +params.chr_dir = params.genome && 'controlfreec' in tools ? params.genomes[params.genome].chr_dir ?: null : null +params.chr_length = params.genome && 'controlfreec' in tools ? params.genomes[params.genome].chr_length ?: null : null params.dbsnp = params.genome && ('mapping' in step || 'controlfreec' in tools || 'haplotypecaller' in tools || 'mutect2' in tools) ? params.genomes[params.genome].dbsnp ?: null : null -params.dbsnpIndex = params.genome && params.dbsnp ? params.genomes[params.genome].dbsnpIndex ?: null : null +params.dbsnp_index = params.genome && params.dbsnp ? params.genomes[params.genome].dbsnp_index ?: null : null params.dict = params.genome && params.fasta ? params.genomes[params.genome].dict ?: null : null -params.fastaFai = params.genome && params.fasta ? params.genomes[params.genome].fastaFai ?: null : null -params.germlineResource = params.genome && 'mutect2' in tools ? params.genomes[params.genome].germlineResource ?: null : null -params.germlineResourceIndex = params.genome && params.germlineResource ? params.genomes[params.genome].germlineResourceIndex ?: null : null +params.fasta_fai = params.genome && params.fasta ? params.genomes[params.genome].fasta_fai ?: null : null +params.germline_resource = params.genome && 'mutect2' in tools ? params.genomes[params.genome].germline_resource ?: null : null +params.germline_resource_index = params.genome && params.germline_resource ? params.genomes[params.genome].germline_resource_index ?: null : null params.intervals = params.genome && !('annotate' in step) ? params.genomes[params.genome].intervals ?: null : null -params.knownIndels = params.genome && 'mapping' in step ? params.genomes[params.genome].knownIndels ?: null : null -params.knownIndelsIndex = params.genome && params.knownIndels ? params.genomes[params.genome].knownIndelsIndex ?: null : null -params.snpeffDb = params.genome && 'snpeff' in tools ? params.genomes[params.genome].snpeffDb ?: null : null +params.known_indels = params.genome && 'mapping' in step ? params.genomes[params.genome].known_indels ?: null : null +params.known_indels_index = params.genome && params.known_indels ? params.genomes[params.genome].known_indels_index ?: null : null +params.snpeff_db = params.genome && 'snpeff' in tools ? params.genomes[params.genome].snpeff_db ?: null : null params.species = params.genome && 'vep' in tools ? params.genomes[params.genome].species ?: null : null -params.vepCacheVersion = params.genome && 'vep' in tools ? params.genomes[params.genome].vepCacheVersion ?: null : null +params.vep_cache_version = params.genome && 'vep' in tools ? params.genomes[params.genome].vep_cache_version ?: null : null // Initialize channels based on params -ch_acLoci = params.acLoci && 'ascat' in tools ? Channel.value(file(params.acLoci)) : "null" -ch_acLociGC = params.acLociGC && 'ascat' in tools ? Channel.value(file(params.acLociGC)) : "null" -ch_chrDir = params.chrDir && 'controlfreec' in tools ? Channel.value(file(params.chrDir)) : "null" -ch_chrLength = params.chrLength && 'controlfreec' in tools ? Channel.value(file(params.chrLength)) : "null" +ch_ac_loci = params.ac_loci && 'ascat' in tools ? Channel.value(file(params.ac_loci)) : "null" +ch_ac_loci_gc = params.ac_loci_gc && 'ascat' in tools ? Channel.value(file(params.ac_loci_gc)) : "null" +ch_chr_dir = params.chr_dir && 'controlfreec' in tools ? Channel.value(file(params.chr_dir)) : "null" +ch_chr_length = params.chr_length && 'controlfreec' in tools ? Channel.value(file(params.chr_length)) : "null" ch_dbsnp = params.dbsnp && ('mapping' in step || 'controlfreec' in tools || 'haplotypecaller' in tools || 'mutect2' in tools) ? Channel.value(file(params.dbsnp)) : "null" ch_fasta = params.fasta && !('annotate' in step) ? Channel.value(file(params.fasta)) : "null" -ch_fastaFai = params.fastaFai && !('annotate' in step) ? Channel.value(file(params.fastaFai)) : "null" -ch_germlineResource = params.germlineResource && 'mutect2' in tools ? Channel.value(file(params.germlineResource)) : "null" +ch_fai = params.fasta_fai && !('annotate' in step) ? Channel.value(file(params.fasta_fai)) : "null" +ch_germline_resource = params.germline_resource && 'mutect2' in tools ? Channel.value(file(params.germline_resource)) : "null" ch_intervals = params.intervals && !params.no_intervals && !('annotate' in step) ? Channel.value(file(params.intervals)) : "null" -ch_knownIndels = params.knownIndels && 'mapping' in step ? Channel.value(file(params.knownIndels)) : "null" +ch_known_indels = params.known_indels && 'mapping' in step ? Channel.value(file(params.known_indels)) : "null" -ch_snpEff_cache = params.snpEff_cache ? Channel.value(file(params.snpEff_cache)) : "null" -ch_snpeffDb = params.snpeffDb ? Channel.value(params.snpeffDb) : "null" -ch_vepCacheVersion = params.vepCacheVersion ? Channel.value(params.vepCacheVersion) : "null" +ch_snpeff_cache = params.snpeff_cache ? Channel.value(file(params.snpeff_cache)) : "null" +ch_snpeff_db = params.snpeff_db ? Channel.value(params.snpeff_db) : "null" +ch_vep_cache_version = params.vep_cache_version ? Channel.value(params.vep_cache_version) : "null" ch_vep_cache = params.vep_cache ? Channel.value(file(params.vep_cache)) : "null" // Optional files, not defined within the params.genomes[params.genome] scope -ch_cadd_InDels = params.cadd_InDels ? Channel.value(file(params.cadd_InDels)) : "null" -ch_cadd_InDels_tbi = params.cadd_InDels_tbi ? Channel.value(file(params.cadd_InDels_tbi)) : "null" -ch_cadd_WG_SNVs = params.cadd_WG_SNVs ? Channel.value(file(params.cadd_WG_SNVs)) : "null" -ch_cadd_WG_SNVs_tbi = params.cadd_WG_SNVs_tbi ? Channel.value(file(params.cadd_WG_SNVs_tbi)) : "null" +ch_cadd_indels = params.cadd_indels ? Channel.value(file(params.cadd_indels)) : "null" +ch_cadd_indels_tbi = params.cadd_indels_tbi ? Channel.value(file(params.cadd_indels_tbi)) : "null" +ch_cadd_wg_snvs = params.cadd_wg_snvs ? Channel.value(file(params.cadd_wg_snvs)) : "null" +ch_cadd_wg_snvs_tbi = params.cadd_wg_snvs_tbi ? Channel.value(file(params.cadd_wg_snvs_tbi)) : "null" ch_pon = params.pon ? Channel.value(file(params.pon)) : "null" -ch_targetBED = params.targetBED ? Channel.value(file(params.targetBED)) : "null" +ch_target_bed = params.target_bed ? Channel.value(file(params.target_bed)) : "null" /* ================================================================================ @@ -290,19 +468,19 @@ summary['Run Name'] = custom_runName ?: workflow.runName summary['Max Resources'] = "${params.max_memory} memory, ${params.max_cpus} cpus, ${params.max_time} time per job" if (workflow.containerEngine) summary['Container'] = "${workflow.containerEngine} - ${workflow.container}" if (params.input) summary['Input'] = params.input -if (params.targetBED) summary['Target BED'] = params.targetBED +if (params.target_bed) summary['Target BED'] = params.target_bed if (step) summary['Step'] = step if (params.tools) summary['Tools'] = tools.join(', ') -if (params.skipQC) summary['QC tools skip'] = skipQC.join(', ') +if (params.skip_qc) summary['QC tools skip'] = skipQC.join(', ') if (params.no_intervals && step != 'annotate') summary['Intervals'] = 'Do not use' -if ('haplotypecaller' in tools) summary['GVCF'] = params.noGVCF ? 'No' : 'Yes' -if ('strelka' in tools && 'manta' in tools ) summary['Strelka BP'] = params.noStrelkaBP ? 'No' : 'Yes' +if ('haplotypecaller' in tools) summary['GVCF'] = params.no_gvcf ? 'No' : 'Yes' +if ('strelka' in tools && 'manta' in tools ) summary['Strelka BP'] = params.no_strelka_bp ? 'No' : 'Yes' if (params.sequencing_center) summary['Sequenced by'] = params.sequencing_center if (params.pon && 'mutect2' in tools) summary['Panel of normals'] = params.pon -summary['Save Genome Index'] = params.saveGenomeIndex ? 'Yes' : 'No' -summary['Nucleotides/s'] = params.nucleotidesPerSecond +summary['Save Reference'] = params.save_reference ? 'Yes' : 'No' +summary['Nucleotides/s'] = params.nucleotides_per_second summary['Output dir'] = params.outdir summary['Launch dir'] = workflow.launchDir summary['Working dir'] = workflow.workDir @@ -310,27 +488,27 @@ summary['Script dir'] = workflow.projectDir summary['User'] = workflow.userName summary['genome'] = params.genome -if (params.fasta) summary['fasta'] = params.fasta -if (params.fastaFai) summary['fastaFai'] = params.fastaFai -if (params.dict) summary['dict'] = params.dict -if (params.bwaIndex) summary['bwaIndex'] = params.bwaIndex -if (params.germlineResource) summary['germlineResource'] = params.germlineResource -if (params.germlineResourceIndex) summary['germlineResourceIndex'] = params.germlineResourceIndex -if (params.intervals) summary['intervals'] = params.intervals -if (params.acLoci) summary['acLoci'] = params.acLoci -if (params.acLociGC) summary['acLociGC'] = params.acLociGC -if (params.chrDir) summary['chrDir'] = params.chrDir -if (params.chrLength) summary['chrLength'] = params.chrLength -if (params.dbsnp) summary['dbsnp'] = params.dbsnp -if (params.dbsnpIndex) summary['dbsnpIndex'] = params.dbsnpIndex -if (params.knownIndels) summary['knownIndels'] = params.knownIndels -if (params.knownIndelsIndex) summary['knownIndelsIndex'] = params.knownIndelsIndex -if (params.snpeffDb) summary['snpeffDb'] = params.snpeffDb -if (params.species) summary['species'] = params.species -if (params.vepCacheVersion) summary['vepCacheVersion'] = params.vepCacheVersion -if (params.species) summary['species'] = params.species -if (params.snpEff_cache) summary['snpEff_cache'] = params.snpEff_cache -if (params.vep_cache) summary['vep_cache'] = params.vep_cache +if (params.fasta) summary['fasta'] = params.fasta +if (params.fasta_fai) summary['fastaFai'] = params.fasta_fai +if (params.dict) summary['dict'] = params.dict +if (params.bwa) summary['bwa'] = params.bwa +if (params.germline_resource) summary['germlineResource'] = params.germline_resource +if (params.germline_resource_index) summary['germlineResourceIndex'] = params.germline_resource_index +if (params.intervals) summary['intervals'] = params.intervals +if (params.ac_loci) summary['acLoci'] = params.ac_loci +if (params.ac_loci_gc) summary['acLociGC'] = params.ac_loci_gc +if (params.chr_dir) summary['chrDir'] = params.chr_dir +if (params.chr_length) summary['chrLength'] = params.chr_length +if (params.dbsnp) summary['dbsnp'] = params.dbsnp +if (params.dbsnp_index) summary['dbsnpIndex'] = params.dbsnp_index +if (params.known_indels) summary['knownIndels'] = params.known_indels +if (params.known_indels_index) summary['knownIndelsIndex'] = params.known_indels_index +if (params.snpeff_db) summary['snpeffDb'] = params.snpeff_db +if (params.species) summary['species'] = params.species +if (params.vep_cache_version) summary['vepCacheVersion'] = params.vep_cache_version +if (params.species) summary['species'] = params.species +if (params.snpeff_cache) summary['snpEff_cache'] = params.snpeff_cache +if (params.vep_cache) summary['vep_cache'] = params.vep_cache if (workflow.profile == 'awsbatch') { summary['AWS Region'] = params.awsregion @@ -342,7 +520,7 @@ if (params.config_profile_contact) summary['Config Contact'] = params. if (params.config_profile_url) summary['Config URL'] = params.config_profile_url if (params.email) { summary['E-mail Address'] = params.email - summary['MultiQC maxsize'] = params.maxMultiqcEmailFileSize + summary['MultiQC maxsize'] = params.max_multiqc_email_size } log.info summary.collect { k, v -> "${k.padRight(18)}: $v" }.join("\n") if (params.monochrome_logs) log.info "----------------------------------------------------" @@ -355,7 +533,7 @@ checkHostname() * Parse software version numbers */ process GetSoftwareVersions { - publishDir path:"${params.outdir}/pipeline_info", mode: params.publishDirMode + publishDir path:"${params.outdir}/pipeline_info", mode: params.publish_dir_mode output: file 'software_versions_mqc.yaml' into yamlSoftwareVersion @@ -401,16 +579,16 @@ yamlSoftwareVersion = yamlSoftwareVersion.dump(tag:'SOFTWARE VERSIONS') process BuildBWAindexes { tag {fasta} - publishDir params.outdir, mode: params.publishDirMode, - saveAs: {params.saveGenomeIndex ? "reference_genome/BWAIndex/${it}" : null } + publishDir params.outdir, mode: params.publish_dir_mode, + saveAs: {params.save_reference ? "reference_genome/BWAIndex/${it}" : null } input: file(fasta) from ch_fasta output: - file("${fasta}.*") into bwaIndexes + file("${fasta}.*") into bwaBuilt - when: !(params.bwaIndex) && params.fasta && 'mapping' in step + when: !(params.bwa) && params.fasta && 'mapping' in step script: """ @@ -418,13 +596,13 @@ process BuildBWAindexes { """ } -ch_bwaIndex = params.bwaIndex ? Channel.value(file(params.bwaIndex)) : bwaIndexes +ch_bwa = params.bwa ? Channel.value(file(params.bwa)) : bwaBuilt process BuildDict { tag {fasta} - publishDir params.outdir, mode: params.publishDirMode, - saveAs: {params.saveGenomeIndex ? "reference_genome/${it}" : null } + publishDir params.outdir, mode: params.publish_dir_mode, + saveAs: {params.save_reference ? "reference_genome/${it}" : null } input: file(fasta) from ch_fasta @@ -448,16 +626,16 @@ ch_dict = params.dict ? Channel.value(file(params.dict)) : dictBuilt process BuildFastaFai { tag {fasta} - publishDir params.outdir, mode: params.publishDirMode, - saveAs: {params.saveGenomeIndex ? "reference_genome/${it}" : null } + publishDir params.outdir, mode: params.publish_dir_mode, + saveAs: {params.save_reference ? "reference_genome/${it}" : null } input: file(fasta) from ch_fasta output: - file("${fasta}.fai") into fastaFaiBuilt + file("${fasta}.fai") into faiBuilt - when: !(params.fastaFai) && params.fasta && !('annotate' in step) + when: !(params.fasta_fai) && params.fasta && !('annotate' in step) script: """ @@ -465,21 +643,21 @@ process BuildFastaFai { """ } -ch_fastaFai = params.fastaFai ? Channel.value(file(params.fastaFai)) : fastaFaiBuilt +ch_fai = params.fasta_fai ? Channel.value(file(params.fasta_fai)) : faiBuilt process BuildDbsnpIndex { tag {dbsnp} - publishDir params.outdir, mode: params.publishDirMode, - saveAs: {params.saveGenomeIndex ? "reference_genome/${it}" : null } + publishDir params.outdir, mode: params.publish_dir_mode, + saveAs: {params.save_reference ? "reference_genome/${it}" : null } input: file(dbsnp) from ch_dbsnp output: - file("${dbsnp}.tbi") into dbsnpIndexBuilt + file("${dbsnp}.tbi") into dbsnp_tbi - when: !(params.dbsnpIndex) && params.dbsnp && ('mapping' in step || 'controlfreec' in tools || 'haplotypecaller' in tools || 'mutect2' in tools) + when: !(params.dbsnp_index) && params.dbsnp && ('mapping' in step || 'controlfreec' in tools || 'haplotypecaller' in tools || 'mutect2' in tools) script: """ @@ -487,21 +665,21 @@ process BuildDbsnpIndex { """ } -ch_dbsnpIndex = params.dbsnp ? params.dbsnpIndex ? Channel.value(file(params.dbsnpIndex)) : dbsnpIndexBuilt : "null" +ch_dbsnp_tbi = params.dbsnp ? params.dbsnp_index ? Channel.value(file(params.dbsnp_index)) : dbsnp_tbi : "null" process BuildGermlineResourceIndex { tag {germlineResource} - publishDir params.outdir, mode: params.publishDirMode, - saveAs: {params.saveGenomeIndex ? "reference_genome/${it}" : null } + publishDir params.outdir, mode: params.publish_dir_mode, + saveAs: {params.save_reference ? "reference_genome/${it}" : null } input: - file(germlineResource) from ch_germlineResource + file(germlineResource) from ch_germline_resource output: - file("${germlineResource}.tbi") into germlineResourceIndexBuilt + file("${germlineResource}.tbi") into germline_resource_tbi - when: !(params.germlineResourceIndex) && params.germlineResource && 'mutect2' in tools + when: !(params.germline_resource_index) && params.germline_resource && 'mutect2' in tools script: """ @@ -509,21 +687,21 @@ process BuildGermlineResourceIndex { """ } -ch_germlineResourceIndex = params.germlineResource ? params.germlineResourceIndex ? Channel.value(file(params.germlineResourceIndex)) : germlineResourceIndexBuilt : "null" +ch_germline_resource_tbi = params.germline_resource ? params.germline_resource_index ? Channel.value(file(params.germline_resource_index)) : germline_resource_tbi : "null" process BuildKnownIndelsIndex { tag {knownIndels} - publishDir params.outdir, mode: params.publishDirMode, - saveAs: {params.saveGenomeIndex ? "reference_genome/${it}" : null } + publishDir params.outdir, mode: params.publish_dir_mode, + saveAs: {params.save_reference ? "reference_genome/${it}" : null } input: - each file(knownIndels) from ch_knownIndels + each file(knownIndels) from ch_known_indels output: - file("${knownIndels}.tbi") into knownIndelsIndexBuilt + file("${knownIndels}.tbi") into known_indels_tbi - when: !(params.knownIndelsIndex) && params.knownIndels && 'mapping' in step + when: !(params.known_indels_index) && params.known_indels && 'mapping' in step script: """ @@ -531,19 +709,19 @@ process BuildKnownIndelsIndex { """ } -ch_knownIndelsIndex = params.knownIndels ? params.knownIndelsIndex ? Channel.value(file(params.knownIndelsIndex)) : knownIndelsIndexBuilt.collect() : "null" +ch_known_indels_tbi = params.known_indels ? params.known_indels_index ? Channel.value(file(params.known_indels_index)) : known_indels_tbi.collect() : "null" process BuildPonIndex { tag {pon} - publishDir params.outdir, mode: params.publishDirMode, - saveAs: {params.saveGenomeIndex ? "reference_genome/${it}" : null } + publishDir params.outdir, mode: params.publish_dir_mode, + saveAs: {params.save_reference ? "reference_genome/${it}" : null } input: file(pon) from ch_pon output: - file("${pon}.tbi") into ponIndexBuilt + file("${pon}.tbi") into pon_tbi when: !(params.pon_index) && params.pon && ('tnscope' in tools || 'mutect2' in tools) @@ -553,16 +731,16 @@ process BuildPonIndex { """ } -ch_ponIndex = params.pon ? params.pon_index ? Channel.value(file(params.pon_index)) : ponIndexBuilt : "null" +ch_pon_tbi = params.pon ? params.pon_index ? Channel.value(file(params.pon_index)) : pon_tbi : "null" process BuildIntervals { tag {fastaFai} - publishDir params.outdir, mode: params.publishDirMode, - saveAs: {params.saveGenomeIndex ? "reference_genome/${it}" : null } + publishDir params.outdir, mode: params.publish_dir_mode, + saveAs: {params.save_reference ? "reference_genome/${it}" : null } input: - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: file("${fastaFai.baseName}.bed") into intervalBuilt @@ -605,7 +783,7 @@ process CreateIntervalBeds { t = \$5 # runtime estimate if (t == "") { # no runtime estimate in this row, assume default value - t = (\$3 - \$2) / ${params.nucleotidesPerSecond} + t = (\$3 - \$2) / ${params.nucleotides_per_second} } if (name == "" || (chunk > 600 && (chunk + t) > longest * 1.05)) { # start a new chunk @@ -644,7 +822,7 @@ bedIntervals = bedIntervals else { start = fields[1].toInteger() end = fields[2].toInteger() - duration += (end - start) / params.nucleotidesPerSecond + duration += (end - start) / params.nucleotides_per_second } } [duration, intervalFile] @@ -709,7 +887,7 @@ process FastQCFQ { tag {idPatient + "-" + idRun} - publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idSample}_${idRun}", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idSample}_${idRun}", mode: params.publish_dir_mode input: set idPatient, idSample, idRun, file("${idSample}_${idRun}_R1.fastq.gz"), file("${idSample}_${idRun}_R2.fastq.gz") from inputPairReadsFastQC @@ -731,7 +909,7 @@ process FastQCBAM { tag {idPatient + "-" + idRun} - publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idSample}_${idRun}", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/FastQC/${idSample}_${idRun}", mode: params.publish_dir_mode input: set idPatient, idSample, idRun, file("${idSample}_${idRun}.bam") from inputBamFastQC @@ -768,9 +946,9 @@ process MapReads { input: set idPatient, idSample, idRun, file(inputFile1), file(inputFile2) from inputPairReads - file(bwaIndex) from ch_bwaIndex + file(bwaIndex) from ch_bwa file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set idPatient, idSample, idRun, file("${idSample}_${idRun}.bam") into bamMapped @@ -821,9 +999,9 @@ process SentieonMapReads { input: set idPatient, idSample, idRun, file(inputFile1), file(inputFile2) from inputPairReadsSentieon - file(bwaIndex) from ch_bwaIndex + file(bwaIndex) from ch_bwa file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set idPatient, idSample, idRun, file("${idSample}_${idRun}.bam") into bamMappedSentieon @@ -925,7 +1103,7 @@ process IndexBamFile { output: set idPatient, idSample, file(bam), file("*.bai") into indexedBam - when: !params.knownIndels + when: !params.known_indels script: """ @@ -941,7 +1119,7 @@ process MarkDuplicatesSpark { tag {idPatient + "-" + idSample} - publishDir params.outdir, mode: params.publishDirMode, + publishDir params.outdir, mode: params.publish_dir_mode, saveAs: { if (it == "${idSample}.bam.metrics") "Reports/${idSample}/MarkDuplicates/${it}" else "Preprocessing/${idSample}/DuplicateMarked/${it}" @@ -954,7 +1132,7 @@ process MarkDuplicatesSpark { set idPatient, idSample, file("${idSample}.md.bam"), file("${idSample}.md.bam.bai") into duplicateMarkedBams file ("${idSample}.bam.metrics") optional true into markDuplicatesReport - when: params.knownIndels + when: params.known_indels script: markdup_java_options = task.memory.toGiga() > 8 ? params.markdup_java_options : "\"-Xms" + (task.memory.toGiga() / 2).trunc() + "g -Xmx" + (task.memory.toGiga() - 1) + "g\"" @@ -990,7 +1168,7 @@ process SentieonDedup { tag {idPatient + "-" + idSample} - publishDir params.outdir, mode: params.publishDirMode, + publishDir params.outdir, mode: params.publish_dir_mode, saveAs: { if (it == "${idSample}_*.txt" && 'sentieon' in skipQC) null else if (it == "${idSample}_*.txt") "Reports/${idSample}/Sentieon/${it}" @@ -1000,7 +1178,7 @@ process SentieonDedup { input: set idPatient, idSample, file(bam), file(bai) from bamForSentieonDedup file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set idPatient, idSample, file("${idSample}.deduped.bam"), file("${idSample}.deduped.bam.bai") into bamDedupedSentieon @@ -1046,22 +1224,22 @@ process BaseRecalibrator { input: set idPatient, idSample, file(bam), file(bai), file(intervalBed) from bamBaseRecalibrator file(dbsnp) from ch_dbsnp - file(dbsnpIndex) from ch_dbsnpIndex + file(dbsnpIndex) from ch_dbsnp_tbi file(fasta) from ch_fasta file(dict) from ch_dict - file(fastaFai) from ch_fastaFai - file(knownIndels) from ch_knownIndels - file(knownIndelsIndex) from ch_knownIndelsIndex + file(fastaFai) from ch_fai + file(knownIndels) from ch_known_indels + file(knownIndelsIndex) from ch_known_indels_tbi output: set idPatient, idSample, file("${prefix}${idSample}.recal.table") into tableGatherBQSRReports set idPatient, idSample into recalTableTSVnoInt - when: params.knownIndels + when: params.known_indels script: dbsnpOptions = params.dbsnp ? "--known-sites ${dbsnp}" : "" - knownOptions = params.knownIndels ? knownIndels.collect{"--known-sites ${it}"}.join(' ') : "" + knownOptions = params.known_indels ? knownIndels.collect{"--known-sites ${it}"}.join(' ') : "" prefix = params.no_intervals ? "" : "${intervalBed.baseName}_" intervalsOptions = params.no_intervals ? "" : "-L ${intervalBed}" // TODO: --use-original-qualities ??? @@ -1096,7 +1274,7 @@ process GatherBQSRReports { tag {idPatient + "-" + idSample} - publishDir "${params.outdir}/Preprocessing/${idSample}/DuplicateMarked", mode: params.publishDirMode, overwrite: false + publishDir "${params.outdir}/Preprocessing/${idSample}/DuplicateMarked", mode: params.publish_dir_mode, overwrite: false input: set idPatient, idSample, file(recal) from tableGatherBQSRReports @@ -1167,7 +1345,7 @@ process ApplyBQSR { set idPatient, idSample, file(bam), file(bai), file(recalibrationReport), file(intervalBed) from bamApplyBQSR file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set idPatient, idSample, file("${prefix}${idSample}.recal.bam") into bamMergeBamRecal @@ -1200,7 +1378,7 @@ process SentieonBQSR { tag {idPatient + "-" + idSample} - publishDir params.outdir, mode: params.publishDirMode, + publishDir params.outdir, mode: params.publish_dir_mode, saveAs: { if (it == "${idSample}_recal_result.csv" && 'sentieon' in skipQC) "Reports/${idSample}/Sentieon/${it}" else "Preprocessing/${idSample}/RecalSentieon/${it}" @@ -1209,12 +1387,12 @@ process SentieonBQSR { input: set idPatient, idSample, file(bam), file(bai) from bamDedupedSentieon file(dbsnp) from ch_dbsnp - file(dbsnpIndex) from ch_dbsnpIndex + file(dbsnpIndex) from ch_dbsnp_tbi file(fasta) from ch_fasta file(dict) from ch_dict - file(fastaFai) from ch_fastaFai - file(knownIndels) from ch_knownIndels - file(knownIndelsIndex) from ch_knownIndelsIndex + file(fastaFai) from ch_fai + file(knownIndels) from ch_known_indels + file(knownIndelsIndex) from ch_known_indels_tbi output: set idPatient, idSample, file("${idSample}.recal.bam"), file("${idSample}.recal.bam.bai") into bamRecalSentieon @@ -1284,7 +1462,7 @@ process MergeBamRecal { tag {idPatient + "-" + idSample} - publishDir "${params.outdir}/Preprocessing/${idSample}/Recalibrated", mode: params.publishDirMode + publishDir "${params.outdir}/Preprocessing/${idSample}/Recalibrated", mode: params.publish_dir_mode input: set idPatient, idSample, file(bam) from bamMergeBamRecal @@ -1310,7 +1488,7 @@ process IndexBamRecal { tag {idPatient + "-" + idSample} - publishDir "${params.outdir}/Preprocessing/${idSample}/Recalibrated", mode: params.publishDirMode + publishDir "${params.outdir}/Preprocessing/${idSample}/Recalibrated", mode: params.publish_dir_mode input: set idPatient, idSample, file("${idSample}.recal.bam") from bamMergeBamRecalNoInt @@ -1363,7 +1541,7 @@ process SamtoolsStats { tag {idPatient + "-" + idSample} - publishDir "${params.outdir}/Reports/${idSample}/SamToolsStats", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/SamToolsStats", mode: params.publish_dir_mode input: set idPatient, idSample, file(bam) from bamRecalSamToolsStats @@ -1389,11 +1567,11 @@ process BamQC { tag {idPatient + "-" + idSample} - publishDir "${params.outdir}/Reports/${idSample}/bamQC", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/bamQC", mode: params.publish_dir_mode input: set idPatient, idSample, file(bam) from bamBamQC - file(targetBED) from ch_targetBED + file(targetBED) from ch_target_bed output: file("${bam.baseName}") into bamQCReport @@ -1401,7 +1579,7 @@ process BamQC { when: !('bamqc' in skipQC) script: - use_bed = params.targetBED ? "-gff ${targetBED}" : '' + use_bed = params.target_bed ? "-gff ${targetBED}" : '' """ qualimap --java-mem-size=${task.memory.toGiga()}G \ bamqc \ @@ -1429,7 +1607,7 @@ bamQCReport = bamQCReport.dump(tag:'BamQC') if (params.sentieon && step == 'mapping') bamRecal = bamRecalSentieon // When no knownIndels for mapping, Channel bamRecal is indexedBam -bamRecal = (params.knownIndels && step == 'mapping') ? bamRecal : indexedBam +bamRecal = (params.known_indels && step == 'mapping') ? bamRecal : indexedBam // When starting with variant calling, Channel bamRecal is inputSample if (step == 'variantcalling') bamRecal = inputSample @@ -1459,10 +1637,10 @@ process HaplotypeCaller { input: set idPatient, idSample, file(bam), file(bai), file(intervalBed) from bamHaplotypeCaller file(dbsnp) from ch_dbsnp - file(dbsnpIndex) from ch_dbsnpIndex + file(dbsnpIndex) from ch_dbsnp_tbi file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set val("HaplotypeCallerGVCF"), idPatient, idSample, file("${intervalBed.baseName}_${idSample}.g.vcf") into gvcfHaplotypeCaller @@ -1485,7 +1663,7 @@ process HaplotypeCaller { gvcfHaplotypeCaller = gvcfHaplotypeCaller.groupTuple(by:[0, 1, 2]) -if (params.noGVCF) gvcfHaplotypeCaller.close() +if (params.no_gvcf) gvcfHaplotypeCaller.close() else gvcfHaplotypeCaller = gvcfHaplotypeCaller.dump(tag:'GVCF HaplotypeCaller') // STEP GATK HAPLOTYPECALLER.2 @@ -1496,10 +1674,10 @@ process GenotypeGVCFs { input: set idPatient, idSample, file(intervalBed), file(gvcf) from gvcfGenotypeGVCFs file(dbsnp) from ch_dbsnp - file(dbsnpIndex) from ch_dbsnpIndex + file(dbsnpIndex) from ch_dbsnp_tbi file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set val("HaplotypeCaller"), idPatient, idSample, file("${intervalBed.baseName}_${idSample}.vcf") into vcfGenotypeGVCFs @@ -1537,9 +1715,9 @@ process SentieonDNAseq { input: set idPatient, idSample, file(bam), file(bai) from bamSentieonDNAseq file(dbsnp) from ch_dbsnp - file(dbsnpIndex) from ch_dbsnpIndex + file(dbsnpIndex) from ch_dbsnp_tbi file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set val("SentieonDNAseq"), idPatient, idSample, file("DNAseq_${idSample}.vcf") into sentieonDNAseqVCF @@ -1572,9 +1750,9 @@ process SentieonDNAscope { input: set idPatient, idSample, file(bam), file(bai) from bamSentieonDNAscope file(dbsnp) from ch_dbsnp - file(dbsnpIndex) from ch_dbsnpIndex + file(dbsnpIndex) from ch_dbsnp_tbi file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set val("SentieonDNAscope"), idPatient, idSample, file("DNAscope_${idSample}.vcf") into sentieonDNAscopeVCF @@ -1621,13 +1799,13 @@ process StrelkaSingle { tag {idSample} - publishDir "${params.outdir}/VariantCalling/${idSample}/Strelka", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSample}/Strelka", mode: params.publish_dir_mode input: set idPatient, idSample, file(bam), file(bai) from bamStrelkaSingle file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai - file(targetBED) from ch_targetBED + file(fastaFai) from ch_fai + file(targetBED) from ch_target_bed output: set val("Strelka"), idPatient, idSample, file("*.vcf.gz"), file("*.vcf.gz.tbi") into vcfStrelkaSingle @@ -1635,8 +1813,8 @@ process StrelkaSingle { when: 'strelka' in tools script: - beforeScript = params.targetBED ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" - options = params.targetBED ? "--exome --callRegions call_targets.bed.gz" : "" + beforeScript = params.target_bed ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" + options = params.target_bed ? "--exome --callRegions call_targets.bed.gz" : "" """ ${beforeScript} configureStrelkaGermlineWorkflow.py \ @@ -1668,13 +1846,13 @@ process MantaSingle { tag {idSample} - publishDir "${params.outdir}/VariantCalling/${idSample}/Manta", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSample}/Manta", mode: params.publish_dir_mode input: set idPatient, idSample, file(bam), file(bai) from bamMantaSingle file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai - file(targetBED) from ch_targetBED + file(fastaFai) from ch_fai + file(targetBED) from ch_target_bed output: set val("Manta"), idPatient, idSample, file("*.vcf.gz"), file("*.vcf.gz.tbi") into vcfMantaSingle @@ -1682,8 +1860,8 @@ process MantaSingle { when: 'manta' in tools script: - beforeScript = params.targetBED ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" - options = params.targetBED ? "--exome --callRegions call_targets.bed.gz" : "" + beforeScript = params.target_bed ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" + options = params.target_bed ? "--exome --callRegions call_targets.bed.gz" : "" status = statusMap[idPatient, idSample] inputbam = status == 0 ? "--bam" : "--tumorBam" vcftype = status == 0 ? "diploid" : "tumor" @@ -1719,9 +1897,9 @@ vcfMantaSingle = vcfMantaSingle.dump(tag:'Single Manta') process TIDDIT { tag {idSample} - publishDir "${params.outdir}/VariantCalling/${idSample}/TIDDIT", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSample}/TIDDIT", mode: params.publish_dir_mode - publishDir params.outdir, mode: params.publishDirMode, + publishDir params.outdir, mode: params.publish_dir_mode, saveAs: { if (it == "TIDDIT_${idSample}.vcf") "VariantCalling/${idSample}/TIDDIT/${it}" else "Reports/${idSample}/TIDDIT/${it}" @@ -1730,7 +1908,7 @@ process TIDDIT { input: set idPatient, idSample, file(bam), file(bai) from bamTIDDIT file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set val("TIDDIT"), idPatient, idSample, file("*.vcf.gz"), file("*.tbi") into vcfTIDDIT @@ -1798,7 +1976,7 @@ process FreeBayes { input: set idPatient, idSampleNormal, file(bamNormal), file(baiNormal), idSampleTumor, file(bamTumor), file(baiTumor), file(intervalBed) from pairBamFreeBayes file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set val("FreeBayes"), idPatient, val("${idSampleTumor}_vs_${idSampleNormal}"), file("${intervalBed.baseName}_${idSampleTumor}_vs_${idSampleNormal}.vcf") into vcfFreeBayes @@ -1835,12 +2013,12 @@ process Mutect2 { set idPatient, idSampleNormal, file(bamNormal), file(baiNormal), idSampleTumor, file(bamTumor), file(baiTumor), file(intervalBed) from pairBamMutect2 file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai - file(germlineResource) from ch_germlineResource - file(germlineResourceIndex) from ch_germlineResourceIndex + file(fastaFai) from ch_fai + file(germlineResource) from ch_germline_resource + file(germlineResourceIndex) from ch_germline_resource_tbi file(intervals) from ch_intervals file(pon) from ch_pon - file(ponIndex) from ch_ponIndex + file(ponIndex) from ch_pon_tbi output: set val("Mutect2"), @@ -1883,16 +2061,16 @@ mutect2Stats = mutect2Stats.groupTuple(by:[0,1,2]) process MergeMutect2Stats { tag {idSampleTumor + "_vs_" + idSampleNormal} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/Mutect2", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/Mutect2", mode: params.publish_dir_mode input: set caller, idPatient, idSampleTumor_vs_idSampleNormal, file(vcfFiles) from mutect2OutForStats // corresponding small VCF chunks set idPatient, idSampleTumor, idSampleNormal, file(statsFiles) from mutect2Stats // the actual stats files file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai - file(germlineResource) from ch_germlineResource - file(germlineResourceIndex) from ch_germlineResourceIndex + file(fastaFai) from ch_fai + file(germlineResource) from ch_germline_resource + file(germlineResourceIndex) from ch_germline_resource_tbi file(intervals) from ch_intervals output: @@ -1923,12 +2101,12 @@ process ConcatVCF { tag {variantCaller + "-" + idSample} - publishDir "${params.outdir}/VariantCalling/${idSample}/${"$variantCaller"}", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSample}/${"$variantCaller"}", mode: params.publish_dir_mode input: set variantCaller, idPatient, idSample, file(vcFiles) from vcfConcatenateVCFs - file(fastaFai) from ch_fastaFai - file(targetBED) from ch_targetBED + file(fastaFai) from ch_fai + file(targetBED) from ch_target_bed output: // we have this funny *_* pattern to avoid copying the raw calls to publishdir @@ -1943,7 +2121,7 @@ process ConcatVCF { outputFile = "unfiltered_${variantCaller}_${idSample}.vcf" else outputFile = "${variantCaller}_${idSample}.vcf" - options = params.targetBED ? "-t ${targetBED}" : "" + options = params.target_bed ? "-t ${targetBED}" : "" """ concatenateVCFs.sh -i ${fastaFai} -c ${task.cpus} -o ${outputFile} ${options} """ @@ -1961,8 +2139,8 @@ process PileupSummariesForMutect2 { input: set idPatient, idSampleNormal, file(bamNormal), file(baiNormal), idSampleTumor, file(bamTumor), file(baiTumor), file(intervalBed) from pairBamPileupSummaries set idPatient, idSampleNormal, idSampleTumor, file(statsFile) from intervalStatsFiles - file(germlineResource) from ch_germlineResource - file(germlineResourceIndex) from ch_germlineResourceIndex + file(germlineResource) from ch_germline_resource + file(germlineResourceIndex) from ch_germline_resource_tbi output: set idPatient, @@ -1991,7 +2169,7 @@ process MergePileupSummaries { tag {idPatient + "_" + idSampleTumor} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}/Mutect2", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}/Mutect2", mode: params.publish_dir_mode input: set idPatient, idSampleTumor, file(pileupSums) from pileupSummaries @@ -2019,7 +2197,7 @@ process CalculateContamination { tag {idSampleTumor + "_vs_" + idSampleNormal} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}/Mutect2", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}/Mutect2", mode: params.publish_dir_mode input: set idPatient, idSampleNormal, file(bamNormal), file(baiNormal), idSampleTumor, file(bamTumor), file(baiTumor) from pairBamCalculateContamination @@ -2047,7 +2225,7 @@ process FilterMutect2Calls { tag {idSampleTN} - publishDir "${params.outdir}/VariantCalling/${idSampleTN}/${"$variantCaller"}", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTN}/${"$variantCaller"}", mode: params.publish_dir_mode input: set variantCaller, idPatient, idSampleTN, file(unfiltered), file(unfilteredIndex) from vcfConcatenatedForFilter @@ -2055,9 +2233,9 @@ process FilterMutect2Calls { file("${idSampleTN}_contamination.table") from contaminationTable file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai - file(germlineResource) from ch_germlineResource - file(germlineResourceIndex) from ch_germlineResourceIndex + file(fastaFai) from ch_fai + file(germlineResource) from ch_germline_resource + file(germlineResourceIndex) from ch_germline_resource_tbi file(intervals) from ch_intervals output: @@ -2094,11 +2272,11 @@ process SentieonTNscope { set idPatient, idSampleNormal, file(bamNormal), file(baiNormal), idSampleTumor, file(bamTumor), file(baiTumor) from pairBamTNscope file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai file(dbsnp) from ch_dbsnp - file(dbsnpIndex) from ch_dbsnpIndex + file(dbsnpIndex) from ch_dbsnp_tbi file(pon) from ch_pon - file(ponIndex) from ch_ponIndex + file(ponIndex) from ch_pon_tbi output: set val("SentieonTNscope"), idPatient, val("${idSampleTumor}_vs_${idSampleNormal}"), file("*.vcf") into vcfTNscope @@ -2129,7 +2307,7 @@ sentieonVCF = sentieonDNAseqVCF.mix(sentieonDNAscopeVCF, sentieonDNAscopeSVVCF, process CompressSentieonVCF { tag {"${idSample} - ${vcf}"} - publishDir "${params.outdir}/VariantCalling/${idSample}/${variantCaller}", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSample}/${variantCaller}", mode: params.publish_dir_mode input: set variantCaller, idPatient, idSample, file(vcf) from sentieonVCF @@ -2156,14 +2334,14 @@ process Strelka { tag {idSampleTumor + "_vs_" + idSampleNormal} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/Strelka", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/Strelka", mode: params.publish_dir_mode input: set idPatient, idSampleNormal, file(bamNormal), file(baiNormal), idSampleTumor, file(bamTumor), file(baiTumor) from pairBamStrelka file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai - file(targetBED) from ch_targetBED + file(fastaFai) from ch_fai + file(targetBED) from ch_target_bed output: set val("Strelka"), idPatient, val("${idSampleTumor}_vs_${idSampleNormal}"), file("*.vcf.gz"), file("*.vcf.gz.tbi") into vcfStrelka @@ -2171,8 +2349,8 @@ process Strelka { when: 'strelka' in tools script: - beforeScript = params.targetBED ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" - options = params.targetBED ? "--exome --callRegions call_targets.bed.gz" : "" + beforeScript = params.target_bed ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" + options = params.target_bed ? "--exome --callRegions call_targets.bed.gz" : "" """ ${beforeScript} configureStrelkaSomaticWorkflow.py \ @@ -2205,13 +2383,13 @@ process Manta { tag {idSampleTumor + "_vs_" + idSampleNormal} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/Manta", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/Manta", mode: params.publish_dir_mode input: set idPatient, idSampleNormal, file(bamNormal), file(baiNormal), idSampleTumor, file(bamTumor), file(baiTumor) from pairBamManta file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai - file(targetBED) from ch_targetBED + file(fastaFai) from ch_fai + file(targetBED) from ch_target_bed output: set val("Manta"), idPatient, val("${idSampleTumor}_vs_${idSampleNormal}"), file("*.vcf.gz"), file("*.vcf.gz.tbi") into vcfManta @@ -2220,8 +2398,8 @@ process Manta { when: 'manta' in tools script: - beforeScript = params.targetBED ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" - options = params.targetBED ? "--exome --callRegions call_targets.bed.gz" : "" + beforeScript = params.target_bed ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" + options = params.target_bed ? "--exome --callRegions call_targets.bed.gz" : "" """ ${beforeScript} configManta.py \ @@ -2271,23 +2449,23 @@ process StrelkaBP { tag {idSampleTumor + "_vs_" + idSampleNormal} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/Strelka", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/Strelka", mode: params.publish_dir_mode input: set idPatient, idSampleNormal, file(bamNormal), file(baiNormal), idSampleTumor, file(bamTumor), file(baiTumor), file(mantaCSI), file(mantaCSIi) from pairBamStrelkaBP file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai - file(targetBED) from ch_targetBED + file(fastaFai) from ch_fai + file(targetBED) from ch_target_bed output: set val("Strelka"), idPatient, val("${idSampleTumor}_vs_${idSampleNormal}"), file("*.vcf.gz"), file("*.vcf.gz.tbi") into vcfStrelkaBP - when: 'strelka' in tools && 'manta' in tools && !params.noStrelkaBP + when: 'strelka' in tools && 'manta' in tools && !params.no_strelka_bp script: - beforeScript = params.targetBED ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" - options = params.targetBED ? "--exome --callRegions call_targets.bed.gz" : "" + beforeScript = params.target_bed ? "bgzip --threads ${task.cpus} -c ${targetBED} > call_targets.bed.gz ; tabix call_targets.bed.gz" : "" + options = params.target_bed ? "--exome --callRegions call_targets.bed.gz" : "" """ ${beforeScript} configureStrelkaSomaticWorkflow.py \ @@ -2324,10 +2502,10 @@ process AlleleCounter { input: set idPatient, idSample, file(bam), file(bai) from bamAscat - file(acLoci) from ch_acLoci + file(acLoci) from ch_ac_loci file(dict) from ch_dict file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set idPatient, idSample, file("${idSample}.alleleCount") into alleleCounterOut @@ -2367,7 +2545,7 @@ process ConvertAlleleCounts { tag {idSampleTumor + "_vs_" + idSampleNormal} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/ASCAT", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/ASCAT", mode: params.publish_dir_mode input: set idPatient, idSampleNormal, idSampleTumor, file(alleleCountNormal), file(alleleCountTumor) from alleleCounterOut @@ -2393,11 +2571,11 @@ process Ascat { tag {idSampleTumor + "_vs_" + idSampleNormal} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/ASCAT", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/ASCAT", mode: params.publish_dir_mode input: set idPatient, idSampleNormal, idSampleTumor, file(bafNormal), file(logrNormal), file(bafTumor), file(logrTumor) from convertAlleleCountsOut - file(acLociGC) from ch_acLociGC + file(acLociGC) from ch_ac_loci_gc output: set val("ASCAT"), idPatient, idSampleNormal, idSampleTumor, file("${idSampleTumor}.*.{png,txt}") into ascatOut @@ -2424,7 +2602,7 @@ process Mpileup { input: set idPatient, idSample, file(bam), file(bai), file(intervalBed) from bamMpileup file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set idPatient, idSample, file("${prefix}${idSample}.pileup.gz") into mpileupMerge @@ -2455,7 +2633,7 @@ if (!params.no_intervals) { process MergeMpileup { tag {idSample} - publishDir params.outdir, mode: params.publishDirMode, saveAs: { it == "${idSample}.pileup.gz" ? "VariantCalling/${idSample}/mpileup/${it}" : '' } + publishDir params.outdir, mode: params.publish_dir_mode, saveAs: { it == "${idSample}.pileup.gz" ? "VariantCalling/${idSample}/mpileup/${it}" : '' } input: set idPatient, idSample, file(mpileup) from mpileupMerge @@ -2501,16 +2679,16 @@ process ControlFREEC { tag {idSampleTumor + "_vs_" + idSampleNormal} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/controlFREEC", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/controlFREEC", mode: params.publish_dir_mode input: set idPatient, idSampleNormal, idSampleTumor, file(mpileupNormal), file(mpileupTumor) from mpileupOut - file(chrDir) from ch_chrDir - file(chrLength) from ch_chrLength + file(chrDir) from ch_chr_dir + file(chrLength) from ch_chr_length file(dbsnp) from ch_dbsnp - file(dbsnpIndex) from ch_dbsnpIndex + file(dbsnpIndex) from ch_dbsnp_tbi file(fasta) from ch_fasta - file(fastaFai) from ch_fastaFai + file(fastaFai) from ch_fai output: set idPatient, idSampleNormal, idSampleTumor, file("${idSampleTumor}.pileup.gz_CNVs"), file("${idSampleTumor}.pileup.gz_ratio.txt"), file("${idSampleTumor}.pileup.gz_normal_CNVs"), file("${idSampleTumor}.pileup.gz_normal_ratio.txt"), file("${idSampleTumor}.pileup.gz_BAF.txt"), file("${idSampleNormal}.pileup.gz_BAF.txt") into controlFreecViz @@ -2565,7 +2743,7 @@ process ControlFreecViz { tag {idSampleTumor + "_vs_" + idSampleNormal} - publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/controlFREEC", mode: params.publishDirMode + publishDir "${params.outdir}/VariantCalling/${idSampleTumor}_vs_${idSampleNormal}/controlFREEC", mode: params.publish_dir_mode input: set idPatient, idSampleNormal, idSampleTumor, file(cnvTumor), file(ratioTumor), file(cnvNormal), file(ratioNormal), file(bafTumor), file(bafNormal) from controlFreecViz @@ -2644,7 +2822,7 @@ process BcftoolsStats { tag {"${variantCaller} - ${vcf}"} - publishDir "${params.outdir}/Reports/${idSample}/BCFToolsStats", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/BCFToolsStats", mode: params.publish_dir_mode input: set variantCaller, idSample, file(vcf) from vcfBCFtools @@ -2667,7 +2845,7 @@ process Vcftools { tag {"${variantCaller} - ${vcf}"} - publishDir "${params.outdir}/Reports/${idSample}/VCFTools", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/${idSample}/VCFTools", mode: params.publish_dir_mode input: set variantCaller, idSample, file(vcf) from vcfVCFtools @@ -2760,15 +2938,15 @@ vcfVep = vcfVep.map { process Snpeff { tag {"${idSample} - ${variantCaller} - ${vcf}"} - publishDir params.outdir, mode: params.publishDirMode, saveAs: { + publishDir params.outdir, mode: params.publish_dir_mode, saveAs: { if (it == "${reducedVCF}_snpEff.ann.vcf") null else "Reports/${idSample}/snpEff/${it}" } input: set variantCaller, idSample, file(vcf) from vcfSnpeff - file(dataDir) from ch_snpEff_cache - val snpeffDb from ch_snpeffDb + file(dataDir) from ch_snpeff_cache + val snpeffDb from ch_snpeff_db output: set file("${reducedVCF}_snpEff.txt"), file("${reducedVCF}_snpEff.html"), file("${reducedVCF}_snpEff.csv") into snpeffReport @@ -2778,7 +2956,7 @@ process Snpeff { script: reducedVCF = reduceVCF(vcf.fileName) - cache = (params.snpEff_cache && params.annotation_cache) ? "-dataDir \${PWD}/${dataDir}" : "" + cache = (params.snpeff_cache && params.annotation_cache) ? "-dataDir \${PWD}/${dataDir}" : "" """ snpEff -Xmx${task.memory.toGiga()}g \ ${snpeffDb} \ @@ -2802,7 +2980,7 @@ snpeffReport = snpeffReport.dump(tag:'snpEff report') process CompressVCFsnpEff { tag {"${idSample} - ${vcf}"} - publishDir "${params.outdir}/Annotation/${idSample}/snpEff", mode: params.publishDirMode + publishDir "${params.outdir}/Annotation/${idSample}/snpEff", mode: params.publish_dir_mode input: set variantCaller, idSample, file(vcf) from snpeffVCF @@ -2827,7 +3005,7 @@ process VEP { tag {"${idSample} - ${variantCaller} - ${vcf}"} - publishDir params.outdir, mode: params.publishDirMode, saveAs: { + publishDir params.outdir, mode: params.publish_dir_mode, saveAs: { if (it == "${reducedVCF}_VEP.summary.html") "Reports/${idSample}/VEP/${it}" else null } @@ -2835,11 +3013,11 @@ process VEP { input: set variantCaller, idSample, file(vcf), file(idx) from vcfVep file(dataDir) from ch_vep_cache - val cache_version from ch_vepCacheVersion - file(cadd_InDels) from ch_cadd_InDels - file(cadd_InDels_tbi) from ch_cadd_InDels_tbi - file(cadd_WG_SNVs) from ch_cadd_WG_SNVs - file(cadd_WG_SNVs_tbi) from ch_cadd_WG_SNVs_tbi + val cache_version from ch_vep_cache_version + file(cadd_InDels) from ch_cadd_indels + file(cadd_InDels_tbi) from ch_cadd_indels_tbi + file(cadd_WG_SNVs) from ch_cadd_wg_snvs + file(cadd_WG_SNVs_tbi) from ch_cadd_wg_snvs_tbi output: set variantCaller, idSample, file("${reducedVCF}_VEP.ann.vcf") into vepVCF @@ -2852,7 +3030,7 @@ process VEP { genome = params.genome == 'smallGRCh37' ? 'GRCh37' : params.genome dir_cache = (params.vep_cache && params.annotation_cache) ? " \${PWD}/${dataDir}" : "/.vep" - cadd = (params.cadd_cache && params.cadd_WG_SNVs && params.cadd_InDels) ? "--plugin CADD,whole_genome_SNVs.tsv.gz,InDels.tsv.gz" : "" + cadd = (params.cadd_cache && params.cadd_wg_snvs && params.cadd_indels) ? "--plugin CADD,whole_genome_SNVs.tsv.gz,InDels.tsv.gz" : "" genesplicer = params.genesplicer ? "--plugin GeneSplicer,/opt/conda/envs/nf-core-sarek-${workflow.manifest.version}/bin/genesplicer,/opt/conda/envs/nf-core-sarek-${workflow.manifest.version}/share/genesplicer-1.0-1/human,context=200,tmpdir=\$PWD/${reducedVCF}" : "--offline" """ mkdir ${reducedVCF} @@ -2890,7 +3068,7 @@ process VEPmerge { tag {"${idSample} - ${variantCaller} - ${vcf}"} - publishDir params.outdir, mode: params.publishDirMode, saveAs: { + publishDir params.outdir, mode: params.publish_dir_mode, saveAs: { if (it == "${reducedVCF}_VEP.summary.html") "Reports/${idSample}/VEP/${it}" else null } @@ -2898,11 +3076,11 @@ process VEPmerge { input: set variantCaller, idSample, file(vcf), file(idx) from compressVCFsnpEffOut file(dataDir) from ch_vep_cache - val cache_version from ch_vepCacheVersion - file(cadd_InDels) from ch_cadd_InDels - file(cadd_InDels_tbi) from ch_cadd_InDels_tbi - file(cadd_WG_SNVs) from ch_cadd_WG_SNVs - file(cadd_WG_SNVs_tbi) from ch_cadd_WG_SNVs_tbi + val cache_version from ch_vep_cache_version + file(cadd_InDels) from ch_cadd_indels + file(cadd_InDels_tbi) from ch_cadd_indels_tbi + file(cadd_WG_SNVs) from ch_cadd_wg_snvs + file(cadd_WG_SNVs_tbi) from ch_cadd_wg_snvs_tbi output: set variantCaller, idSample, file("${reducedVCF}_VEP.ann.vcf") into vepVCFmerge @@ -2914,7 +3092,7 @@ process VEPmerge { reducedVCF = reduceVCF(vcf.fileName) genome = params.genome == 'smallGRCh37' ? 'GRCh37' : params.genome dir_cache = (params.vep_cache && params.annotation_cache) ? " \${PWD}/${dataDir}" : "/.vep" - cadd = (params.cadd_cache && params.cadd_WG_SNVs && params.cadd_InDels) ? "--plugin CADD,whole_genome_SNVs.tsv.gz,InDels.tsv.gz" : "" + cadd = (params.cadd_cache && params.cadd_wg_snvs && params.cadd_indels) ? "--plugin CADD,whole_genome_SNVs.tsv.gz,InDels.tsv.gz" : "" genesplicer = params.genesplicer ? "--plugin GeneSplicer,/opt/conda/envs/nf-core-sarek-${workflow.manifest.version}/bin/genesplicer,/opt/conda/envs/nf-core-sarek-${workflow.manifest.version}/share/genesplicer-1.0-1/human,context=200,tmpdir=\$PWD/${reducedVCF}" : "--offline" """ mkdir ${reducedVCF} @@ -2951,7 +3129,7 @@ vcfCompressVCFvep = vepVCF.mix(vepVCFmerge) process CompressVCFvep { tag {"${idSample} - ${vcf}"} - publishDir "${params.outdir}/Annotation/${idSample}/VEP", mode: params.publishDirMode + publishDir "${params.outdir}/Annotation/${idSample}/VEP", mode: params.publish_dir_mode input: set variantCaller, idSample, file(vcf) from vcfCompressVCFvep @@ -2977,7 +3155,7 @@ compressVCFOutVEP = compressVCFOutVEP.dump(tag:'VCF') // STEP MULTIQC process MultiQC { - publishDir "${params.outdir}/Reports/MultiQC", mode: params.publishDirMode + publishDir "${params.outdir}/Reports/MultiQC", mode: params.publish_dir_mode input: file (multiqcConfig) from Channel.value(params.multiqc_config ? file(params.multiqc_config) : "") @@ -3062,7 +3240,7 @@ workflow.onComplete { def email_html = html_template.toString() // Render the sendmail template - def smail_fields = [ email: params.email, subject: subject, email_txt: email_txt, email_html: email_html, baseDir: "$baseDir", mqcFile: mqc_report, mqcMaxSize: params.maxMultiqcEmailFileSize.toBytes() ] + def smail_fields = [ email: params.email, subject: subject, email_txt: email_txt, email_html: email_html, baseDir: "$baseDir", mqcFile: mqc_report, mqcMaxSize: params.max_multiqc_email_size.toBytes() ] def sf = new File("$baseDir/assets/sendmail_template.txt") def sendmail_template = engine.createTemplate(sf).make(smail_fields) def sendmail_html = sendmail_template.toString() @@ -3208,17 +3386,6 @@ def checkParameterList(list, realList) { return list.every{ checkParameterExistence(it, realList) } } -// Check if params.item exists and return params.genomes[params.genome].item otherwise -def checkParamReturnFile(item) { - // Handle deprecation - if (params.genomeDict && item == "dict") return file(params.genomeDict) - if (params.genomeFile && item == "fasta") return file(params.genomeFile) - if (params.genomeIndex && item == "fastaFai") return file(params.genomeIndex) - - params."${item}" = params.genomes[params.genome]."${item}" - return file(params."${item}") -} - // Define list of available tools to annotate def defineAnnoList() { return [ diff --git a/nextflow.config b/nextflow.config index c82f5fab40..8a30e703ca 100644 --- a/nextflow.config +++ b/nextflow.config @@ -9,13 +9,13 @@ params { // Workflow flags - annotateTools = null // Only with --step annotate + annotate_tools = null // Only with --step annotate genome = 'GRCh38' input = null // No default input - noGVCF = null // g.vcf are produced by HaplotypeCaller - noStrelkaBP = null // Strelka will use Manta candidateSmallIndels if available + no_gvcf = null // g.vcf are produced by HaplotypeCaller + no_strelka_bp = null // Strelka will use Manta candidateSmallIndels if available no_intervals = null // Intervals will be built from the fasta file - skipQC = null // All QC tools are used + skip_qc = null // All QC tools are used step = 'mapping' // Starts with mapping tools = null // No default Variant Calling or Annotation tools @@ -24,23 +24,23 @@ params { cadd_cache = null // CADD cache disabled genesplicer = null // genesplicer disabled markdup_java_options = '"-Xms4000m -Xmx7g"' //Established values for markDuplicate memory consumption, see https://github.com/SciLifeLab/Sarek/pull/689 for details - nucleotidesPerSecond = 1000.0 // Default interval size + nucleotides_per_second = 1000.0 // Default interval size split_fastq = null // Fastq files will not be split by default outdir = './results' - publishDirMode = 'copy' // Default PublishDirMode (same as other nf-core pipelines) - saveGenomeIndex = null // Built Indexes not saved + publish_dir_mode = 'copy' // Default PublishDirMode (same as other nf-core pipelines) + save_reference = null // Built Indexes not saved sequencing_center = null // No sequencing center to be written in BAM header in MapReads process sentieon = null // Not using Sentieon by default // Optional files/directory - cadd_InDels = false // No CADD InDels file - cadd_InDels_tbi = false // No CADD InDels index - cadd_WG_SNVs = false // No CADD SNVs file - cadd_WG_SNVs_tbi = false // No CADD SNVs index + cadd_indels = false // No CADD InDels file + cadd_indels_tbi = false // No CADD InDels index + cadd_wg_snvs = false // No CADD SNVs file + cadd_wg_snvs_tbi = false // No CADD SNVs index pon = false // No default PON (Panel of Normals) file for GATK Mutect2 / Sentieon TNscope pon_index = false // No default PON index for GATK Mutect2 / Sentieon TNscope - snpEff_cache = null // No directory for snpEff cache - targetBED = false // No default TargetBED file for targeted sequencing + snpeff_cache = null // No directory for snpEff cache + target_bed = false // No default TargetBED file for targeted sequencing vep_cache = null // No directory for VEP cache // Custom config @@ -51,8 +51,8 @@ params { custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}" // Reference genomes - igenomesIgnore = false igenomes_base = 's3://ngi-igenomes/igenomes/' + igenomes_ignore = false // Default help = false @@ -64,7 +64,7 @@ params { // email email = false // No default email - maxMultiqcEmailFileSize = 25.MB + max_multiqc_email_size = 25.MB plaintext_email = false // Plaintext email disabled // Base specifications @@ -72,16 +72,7 @@ params { max_cpus = 16 max_memory = 128.GB max_time = 240.h - singleCPUMem = 7.GB - - // Deprecated params - annotateVCF = null - genomeDict = null - genomeFile = null - genomeIndex = null - noReports = null - sample = null - sampleDir = null + single_cpu_mem = 7.GB } // Container slug @@ -133,7 +124,7 @@ profiles { } // Load genomes.config or igenomes.config -if (!params.igenomesIgnore) { +if (!params.igenomes_ignore) { includeConfig 'conf/igenomes.config' } else { includeConfig 'conf/genomes.config'