diff --git a/.editorconfig b/.editorconfig index b6b3190776..b78de6e655 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,7 +8,7 @@ trim_trailing_whitespace = true indent_size = 4 indent_style = space -[*.{md,yml,yaml,html,css,scss,js}] +[*.{md,yml,yaml,html,css,scss,js,cff}] indent_size = 2 # These files are edited and tested upstream in nf-core/modules diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index cc79873479..6f7814ecbf 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -15,8 +15,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/sare - [ ] This comment contains a description of changes (with reason). - [ ] If you've fixed a bug or added code that should be tested, add tests! - - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/sarek/tree/master/.github/CONTRIBUTING.md) - - [ ] If necessary, also make a PR on the nf-core/sarek _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. +- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/sarek/tree/master/.github/CONTRIBUTING.md)- [ ] If necessary, also make a PR on the nf-core/sarek _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. - [ ] Make sure your code lints (`nf-core lint`). - [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 634fe4eb7f..03e790cb99 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,6 @@ on: env: NXF_ANSI_LOG: false - CAPSULE_LOG: none jobs: test: @@ -22,14 +21,9 @@ jobs: # HACK Remove after DSL2 rewrite is done fail-fast: false matrix: - # Nextflow versions - include: - # Test pipeline minimum Nextflow version - - NXF_VER: "21.10.3" - NXF_EDGE: "" - # Test latest edge release of Nextflow - - NXF_VER: "" - NXF_EDGE: "1" + NXF_VER: + - "22.04.5" + - "latest-everything" test: - "aligner" - "alignment_to_fastq" @@ -67,15 +61,9 @@ jobs: uses: actions/checkout@v2 - name: Install Nextflow - env: - NXF_VER: ${{ matrix.NXF_VER }} - # Uncomment only if the edge release is more recent than the latest stable release - # See https://github.com/nextflow-io/nextflow/issues/2467 - # NXF_EDGE: ${{ matrix.NXF_EDGE }} - run: | - wget -qO- get.nextflow.io | bash - sudo mv nextflow /usr/local/bin/ - nextflow self-update + uses: nf-core/setup-nextflow@v1 + with: + version: "${{ matrix.NXF_VER }}" - name: Set up Python uses: actions/setup-python@v2 diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 77358dee77..8a5ce69b89 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -35,6 +35,36 @@ jobs: - name: Run Prettier --check run: prettier --check ${GITHUB_WORKSPACE} + PythonBlack: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Check code lints with Black + uses: psf/black@stable + + # If the above check failed, post a comment on the PR explaining the failure + - name: Post PR comment + if: failure() + uses: mshick/add-pr-comment@v1 + with: + message: | + ## Python linting (`black`) is failing + + To keep the code consistent with lots of contributors, we run automated code consistency checks. + To fix this CI test, please run: + + * Install [`black`](https://black.readthedocs.io/en/stable/): `pip install black` + * Fix formatting errors in your pipeline: `black .` + + Once you push these changes the test should pass, and you can hide this comment :+1: + + We highly recommend setting up Black in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! + + Thanks again for your contribution! + repo-token: ${{ secrets.GITHUB_TOKEN }} + allow-repeats: false + nf-core: runs-on: ubuntu-latest steps: @@ -42,15 +72,11 @@ jobs: uses: actions/checkout@v2 - name: Install Nextflow - env: - CAPSULE_LOG: none - run: | - wget -qO- get.nextflow.io | bash - sudo mv nextflow /usr/local/bin/ + uses: nf-core/setup-nextflow@v1 - uses: actions/setup-python@v3 with: - python-version: "3.6" + python-version: "3.7" architecture: "x64" - name: Install dependencies diff --git a/CHANGELOG.md b/CHANGELOG.md index 9317494ee2..51ebdaa1ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#691](https://github.com/nf-core/sarek/pull/691) - To run the same pytest as before locally, use `PROFILE=docker` - [#692](https://github.com/nf-core/sarek/pull/692) - Use `params.tools=strelka` in profile `test` - [#696](https://github.com/nf-core/sarek/pull/696) - Adding check of md5-sums in CI-tests +- [#720](https://github.com/nf-core/sarek/pull/720) - Sync `TEMPLATE` with `tools` `2.5` ### Fixed diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000000..017666c018 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,56 @@ +cff-version: 1.2.0 +message: "If you use `nf-core tools` in your work, please cite the `nf-core` publication" +authors: + - family-names: Ewels + given-names: Philip + - family-names: Peltzer + given-names: Alexander + - family-names: Fillinger + given-names: Sven + - family-names: Patel + given-names: Harshil + - family-names: Alneberg + given-names: Johannes + - family-names: Wilm + given-names: Andreas + - family-names: Garcia + given-names: Maxime Ulysse + - family-names: Di Tommaso + given-names: Paolo + - family-names: Nahnsen + given-names: Sven +title: "The nf-core framework for community-curated bioinformatics pipelines." +version: 2.4.1 +doi: 10.1038/s41587-020-0439-x +date-released: 2022-05-16 +url: https://github.com/nf-core/tools +prefered-citation: + type: article + authors: + - family-names: Ewels + given-names: Philip + - family-names: Peltzer + given-names: Alexander + - family-names: Fillinger + given-names: Sven + - family-names: Patel + given-names: Harshil + - family-names: Alneberg + given-names: Johannes + - family-names: Wilm + given-names: Andreas + - family-names: Garcia + given-names: Maxime Ulysse + - family-names: Di Tommaso + given-names: Paolo + - family-names: Nahnsen + given-names: Sven + doi: 10.1038/s41587-020-0439-x + journal: nature biotechnology + start: 276 + end: 278 + title: "The nf-core framework for community-curated bioinformatics pipelines." + issue: 3 + volume: 38 + year: 2020 + url: https://dx.doi.org/10.1038/s41587-020-0439-x diff --git a/README.md b/README.md index 350fc8d1c9..43557831f7 100644 --- a/README.md +++ b/README.md @@ -4,18 +4,18 @@ [![GitHub Actions CI Status](https://github.com/nf-core/sarek/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/sarek/actions?query=workflow%3A%22nf-core+CI%22) [![GitHub Actions Linting Status](https://github.com/nf-core/sarek/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/sarek/actions?query=workflow%3A%22nf-core+linting%22) -[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?logo=Amazon%20AWS)](https://nf-co.re/sarek/results) -[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.4945321-1073c8)](https://doi.org/10.5281/zenodo.4945321) +[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/sarek/results) +[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.4945321-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.4945321-1073c8) -[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.10.3-23aa62.svg)](https://www.nextflow.io/) -[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?logo=anaconda)](https://docs.conda.io/en/latest/) -[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?logo=docker)](https://www.docker.com/) -[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg)](https://sylabs.io/docs/) +[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A522.04.5-23aa62.svg)](https://www.nextflow.io/) +[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) +[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) +[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) [![Launch on Nextflow Tower](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Nextflow%20Tower-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/nf-core/sarek) -[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23sarek-4A154B?logo=slack)](https://nfcore.slack.com/channels/sarek) -[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?logo=twitter)](https://twitter.com/nf_core) -[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?logo=youtube)](https://www.youtube.com/c/nf-core) +[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23sarek-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/sarek) +[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?labelColor=000000&logo=twitter)](https://twitter.com/nf_core) +[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core) ## Introduction @@ -49,13 +49,13 @@ By default, the pipeline currently performs the following: ## Quick Start -1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.10.3`) +1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=22.04.5`) 2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/) (you can follow [this tutorial](https://singularity-tutorial.github.io/01-installation/)), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(you can use [`Conda`](https://conda.io/miniconda.html) both to install Nextflow itself and also to manage software within pipelines. Please only use it within pipelines as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_. 3. Download the pipeline and test it on a minimal dataset with a single command: - ```console + ```bash nextflow run nf-core/sarek -profile test,YOURPROFILE --outdir ``` @@ -68,8 +68,8 @@ By default, the pipeline currently performs the following: 4. Start running your own analysis! - ```console - nextflow run nf-core/sarek -profile --input samplesheet.csv --outdir --genome GRCh38 + ```bash + nextflow run nf-core/sarek --input samplesheet.csv --outdir --genome GATK.GRCh38 -profile ``` See [usage docs](https://nf-co.re/sarek/usage) for all of the available options when running the pipeline. diff --git a/assets/email_template.txt b/assets/email_template.txt index 2be647eac1..6a5d28bb03 100644 --- a/assets/email_template.txt +++ b/assets/email_template.txt @@ -6,7 +6,6 @@ `._,._,' nf-core/sarek v${version} ---------------------------------------------------- - Run Name: $runName <% if (success){ diff --git a/conf/base.config b/conf/base.config index 70ba051d96..f2a8cc5a25 100644 --- a/conf/base.config +++ b/conf/base.config @@ -21,6 +21,11 @@ process { // Process-specific resource requirements // See https://www.nextflow.io/docs/latest/config.html#config-process-selectors + withLabel:process_single { + cpus = { check_max( 1 , 'cpus' ) } + memory = { check_max( 6.GB * task.attempt, 'memory' ) } + time = { check_max( 4.h * task.attempt, 'time' ) } + } withLabel:process_low { cpus = { check_max( 2 * task.attempt, 'cpus' ) } memory = { check_max( 12.GB * task.attempt, 'memory' ) } diff --git a/docs/usage.md b/docs/usage.md index 498f7c1dd5..1508fc63d4 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -15,18 +15,18 @@ Sarek is designed to handle single samples, such as single-normal or single-tumo The typical command for running the pipeline is as follows: -```console -nextflow run nf-core/sarek --input samplesheet.csv --outdir -profile docker +```bash +nextflow run nf-core/sarek --input samplesheet.csv --outdir --genome GATK.GRCh38 -profile docker ``` This will launch the pipeline with the `docker` configuration profile. See below for more information about profiles. Note that the pipeline will create the following files in your working directory: -```console -work # Directory containing the nextflow working files -results # Finished results (configurable, see below) -.nextflow.log # Log file from Nextflow +```bash +work # Directory containing the nextflow working files + # Finished results in specified location (defined with --outdir) +.nextflow_log # Log file from Nextflow # Other nextflow hidden files, eg. history of pipeline runs and old logs. ``` @@ -46,7 +46,7 @@ Output from Variant Calling and/or Annotation will be in a specific directory fo Multiple CSV files can be specified if the path is enclosed in quotes. -```console +```bash --input '[path to sample sheet file(s)]' ``` @@ -78,26 +78,26 @@ This step can be started either from FastQ files or (u)BAMs. The CSV must contai Minimal config file: -```console +```bash patient,sample,lane,fastq_1,fastq_2 patient1,test_sample,lane_1,test_1.fastq.gz,test_2.fastq.gz ``` -```console +```bash patient,sample,lane,bam patient1,test_sample,lane_1,test.bam ``` In this example, the sample is multiplexed over three lanes: -```console +```bash patient,sample,lane,fastq_1,fastq_2 patient1,test_sample,lane_1,test_L001_1.fastq.gz,test_L001_2.fastq.gz patient1,test_sample,lane_2,test_L002_1.fastq.gz,test_L002_2.fastq.gz patient1,test_sample,lane_3,test_L003_1.fastq.gz,test_L003_2.fastq.gz ``` -```console +```bash patient,sample,lane,bam patient1,test_sample,1,test_L001.bam patient1,test_sample,2,test_L002.bam @@ -108,7 +108,7 @@ patient1,test_sample,3,test_L003.bam In this example, all possible columns are used. There are three lanes for the normal sample, two for the tumor sample, and one for the relapse sample, including the `sex` and `status` information per patient: -```console +```bash patient,sex,status,sample,lane,fastq_1,fastq_2 patient1,XX,0,normal_sample,lane_1,test_L001_1.fastq.gz,test_L001_2.fastq.gz patient1,XX,0,normal_sample,lane_2,test_L002_1.fastq.gz,test_L002_2.fastq.gz @@ -118,7 +118,7 @@ patient1,XX,1,tumor_sample,lane_2,test2_L002_1.fastq.gz,test2_L002_2.fastq.gz patient1,XX,1,relapse_sample,lane_1,test3_L001_1.fastq.gz,test3_L001_2.fastq.gz ``` -```console +```bash patient,sex,status,sample,lane,bam patient1,XX,0,normal_sample,lane_1,test_L001.bam patient1,XX,0,normal_sample,lane_2,test_L002.bam @@ -138,12 +138,12 @@ For starting from duplicate marking, the CSV file must contain at least the colu Example: -```console +```bash patient,sample,bam,bai patient1,test_sample,test_mapped.bam,test_mapped.bam.bai ``` -```console +```bash patient,sample,cram,crai patient1,test_sample,test_mapped.cram,test_mapped.cram.crai ``` @@ -154,14 +154,14 @@ The Sarek-generated CSV file is stored under `results/csv/mapped.csv` if in a pr In this example, all possible columns are used including the `sex` and `status` information per patient: -```console +```bash patient,sex,status,sample,bam,bai patient1,XX,0,test_sample,test_mapped.bam,test_mapped.bam.bai patient1,XX,1,tumor_sample,test2_mapped.bam,test2_mapped.bam.bai patient1,XX,1,relapse_sample,test3_mapped.bam,test3_mapped.bam.bai ``` -```console +```bash patient,sex,status,sample,cram,crai patient1,XX,0,normal_sample,test_mapped.cram,test_mapped.cram.crai patient1,XX,1,tumor_sample,test2_mapped.cram,test2_mapped.cram.crai @@ -174,12 +174,12 @@ For starting directly from preparing the recalibration tables, the CSV file must Example: -```console +```bash patient,sample,bam,bai patient1,test_sample,test_md.bam,test_md.bam.bai ``` -```console +```bash patient,sample,cram,crai patient1,test_sample,test_md.cram,test_md.cram.crai ``` @@ -190,14 +190,14 @@ The Sarek-generated CSV file is stored under `results/csv/markduplicates_no_tabl In this example, all possible columns are used including the `sex` and `status` information per patient: -```console +```bash patient,sex,status,sample,bam,bai patient1,XX,0,test_sample,test_md.bam,test_md.bam.bai patient1,XX,1,tumor_sample,test2_md.bam,test2_md.bam.bai patient1,XX,1,relapse_sample,test3_md.bam,test3_md.bam.bai ``` -```console +```bash patient,sex,status,sample,cram,crai patient1,XX,0,normal_sample,test_md.cram,test_md.cram.crai patient1,XX,1,tumor_sample,test2_md.cram,test2_md.cram.crai @@ -210,12 +210,12 @@ For starting from base quality score recalibration the CSV file must contain at Example: -```console +```bash patient,sample,bam,bai,table patient1,test_sample,test_mapped.cram,test_mapped.cram.crai,test.table ``` -```console +```bash patient,sample,cram,crai,table patient1,test_sample,test_mapped.cram,test_mapped.cram.crai,test.table ``` @@ -226,7 +226,7 @@ The Sarek-generated CSV file is stored under `results/csv/markduplicates.csv` an In this example, all possible columns are used including the `sex` and `status` information per patient: -```console +```bash patient,sex,status,sample,cram,crai,table patient1,XX,0,test_sample,test_mapped.cram,test_mapped.cram.crai,test.table patient1,XX,1,tumor_sample,test2_mapped.cram,test2_mapped.cram.crai,test2.table @@ -239,12 +239,12 @@ For starting from the variant calling step, the CSV file must contain at least t Example: -```console +```bash patient,sample,bam,bai patient1,test_sample,test_mapped.bam,test_mapped.bam.bai ``` -```console +```bash patient,sample,cram,crai patient1,test_sample,test_mapped.cram,test_mapped.cram.crai ``` @@ -255,7 +255,7 @@ The Sarek-generated CSV file is stored under `results/csv/recalibrated.csv` and In this example, all possible columns are used including the `sex` and `status` information per patient: -```console +```bash patient,sex,status,sample,cram,crai patient1,XX,0,normal_sample,test_mapped.cram,test_mapped.cram.crai patient1,XX,1,tumor_sample,test2_mapped.cram,test2_mapped.cram.crai @@ -270,7 +270,7 @@ As Sarek will use [bgzip](http://www.htslib.org/doc/bgzip.html) and [tabix](http Example: -```console +```bash patient,sample,vcf patient1,test_sample,test.vcf.gz ``` @@ -281,7 +281,7 @@ The Sarek-generated CSV file is stored under `results/csv/variantcalled.csv` and In this example, all possible columns are used including the `variantcaller` information per sample: -```console +```bash patient,sample,variantcaller,vcf test,sample3,strelka,sample3.variants.vcf.gz test,sample4_vs_sample3,manta,sample4_vs_sample3.diploid_sv.vcf.gz @@ -292,7 +292,7 @@ test,sample4_vs_sample3,manta,sample4_vs_sample3.somatic_sv.vcf.gz When you run the above command, Nextflow automatically pulls the pipeline code from GitHub and stores it as a cached version. When running the pipeline after this, it will always use the cached version if available - even if the pipeline has been updated since. To make sure that you're running the latest version of the pipeline, make sure that you regularly update the cached version of the pipeline: -```console +```bash nextflow pull nf-core/sarek ``` @@ -358,7 +358,7 @@ Specify the path to a specific config file (this is a core Nextflow command). Se In some cases, the Nextflow Java virtual machines can start to request a large amount of memory. We recommend adding the following line to your environment to limit this (typically in `~/.bashrc` or `~./bash_profile`): -```console +```bash NXF_OPTS='-Xms1g -Xmx4g' ``` @@ -379,7 +379,7 @@ Whilst the default requirements set within the pipeline will hopefully work for For example, if the nf-core/rnaseq pipeline is failing after multiple re-submissions of the `STAR_ALIGN` process due to an exit code of `137` this would indicate that there is an out of memory issue: -```console +```bash [62/149eb0] NOTE: Process `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) -- Execution is retried (1) Error executing process > 'NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)' @@ -482,7 +482,7 @@ If you have any questions or issues please send us a message on [Slack](https:// When using default parameters only, sarek runs preprocessing and `Strelka2`. This is reflected in the default test profile: -```console +```bash nextflow run nf-core/sarek -r 3.0.1 -profile test, ``` @@ -550,7 +550,7 @@ The pipeline comes with a number of possible paths and tools that can be used. Due to the small test data size, unfortunately not everything can be tested from top-to-bottom, but often is done by utilizing the pipeline's `--step` parameter. Annotation has to tested separatly from the remaining workflow, since we use references for `C.elegans`, while the remaining tests are run on downsampled human data. -```console +```bash nextflow run nf-core/sarek -r 3.0.1 -profile test, --tools snpeff --step annotation ``` @@ -626,7 +626,7 @@ If you have problems running processes that make use of Spark such as `MarkDupli You are probably experiencing issues with the limit of open files in your system. You can check your current limit by typing the following: -```console +```bash ulimit -n ``` @@ -635,20 +635,20 @@ In order to increase the size limit permanently you can: Edit the file `/etc/security/limits.conf` and add the lines: -```console +```bash * soft nofile 65535 * hard nofile 65535 ``` Edit the file `/etc/sysctl.conf` and add the line: -```console +```bash fs.file-max = 65535 ``` Edit the file `/etc/sysconfig/docker` and add the new limits to OPTIONS like this: -```console +```bash OPTIONS=”—default-ulimit nofile=65535:65535" ``` @@ -690,7 +690,7 @@ If none of your required genome files are in igenomes, `--igenomes_ignore` must Minimal example for custom genomes: -```console +```bash nextflow run nf-core/sarek --genome null --igenomes_ignore --fasta ``` @@ -700,13 +700,13 @@ If you don't want to use some of the provided reference genomes, they can be ove Example for using a custom known indels file: -```console +```bash nextflow run nf-core/sarek --known_indels --genome GRCh38.GATK ``` Example for not using known indels, but all other provided reference file: -```console +```bash nextflow run nf-core/sarek --known_indels false --genome GRCh38.GATK ``` @@ -751,7 +751,7 @@ You need to specify the cache directory using `--snpeff_cache` and `--vep_cache` Example: -```console +```bash nextflow run nf-core/sarek --tools snpEff --step annotate --sample --snpeff_cache nextflow run nf-core/sarek --tools VEP --step annotate --sample --vep_cache ``` diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index cda2212438..ca07670e3c 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -59,6 +59,7 @@ class WorkflowMain { } // Print parameter summary log to screen + log.info paramsSummaryLog(workflow, params, log) // Check that a -profile or Nextflow config has been provided to run the pipeline @@ -78,7 +79,6 @@ class WorkflowMain { WorkflowSarek.retrieveInput(params, log) } } - // // Get attribute from genome config file e.g. fasta // diff --git a/lib/WorkflowSarek.groovy b/lib/WorkflowSarek.groovy index 485b893024..8f6bbc9cb6 100755 --- a/lib/WorkflowSarek.groovy +++ b/lib/WorkflowSarek.groovy @@ -10,6 +10,7 @@ class WorkflowSarek { public static void initialise(params, log) { genomeExistsError(params, log) + if (!params.fasta) { log.error "Genome fasta file not specified with e.g. '--fasta genome.fa' or via a detectable config file." System.exit(1) @@ -41,9 +42,7 @@ class WorkflowSarek { yaml_file_text += "data: |\n" yaml_file_text += "${summary_section}" return yaml_file_text - } - - // + }// // Exit pipeline if incorrect --genome key provided // private static void genomeExistsError(params, log) { diff --git a/modules.json b/modules.json index ab566a5a5c..804374e532 100644 --- a/modules.json +++ b/modules.json @@ -3,245 +3,328 @@ "homePage": "https://github.com/nf-core/sarek", "repos": { "nf-core/modules": { - "ascat": { - "git_sha": "98ffb090029d17a9fb8de75dadcfe6bc8b6377ec" - }, - "bcftools/sort": { - "git_sha": "682f789f93070bd047868300dd018faf3d434e7c" - }, - "bcftools/stats": { - "git_sha": "535975eb81c9e48eb0403c136b7f1dd7acb1afad" - }, - "bwa/index": { - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "bwa/mem": { - "git_sha": "4f5274c3de0c9521f5033893ff61057a74c45ba9" - }, - "bwamem2/index": { - "git_sha": "49b18b1639f4f7104187058866a8fab33332bdfe" - }, - "bwamem2/mem": { - "git_sha": "4f5274c3de0c9521f5033893ff61057a74c45ba9" - }, - "cat/cat": { - "git_sha": "eeda4136c096688d04cc40bb3c70d948213ed641" - }, - "cat/fastq": { - "git_sha": "9aadd9a6d3f5964476582319b3a1c54a3e3fe7c9" - }, - "cnvkit/antitarget": { - "git_sha": "58c5ec2f4eb44eff1fb7cc9e02df07bd448c6aaf" - }, - "cnvkit/batch": { - "git_sha": "2f3ddc90fbeda9fcf54f25b84465f5ac149d2b75" - }, - "cnvkit/reference": { - "git_sha": "8208140d21f3a754fff2e177db7a0e570fa2af6e" - }, - "controlfreec/assesssignificance": { - "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b" - }, - "controlfreec/freec": { - "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b" - }, - "controlfreec/freec2bed": { - "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b" - }, - "controlfreec/freec2circos": { - "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b" - }, - "controlfreec/makegraph": { - "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b" - }, - "custom/dumpsoftwareversions": { - "git_sha": "e5b44499efcf6f7fb24874886bac60591c5d94dd" - }, - "deepvariant": { - "git_sha": "fd5f6f5f4ffef4ab5a4e809bd3211bbc71c38d30" - }, - "dragmap/align": { - "git_sha": "4f5274c3de0c9521f5033893ff61057a74c45ba9" - }, - "dragmap/hashtable": { - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "ensemblvep": { - "git_sha": "973151e9eab9bac400aa99f099075a10cdd8e84c" - }, - "fastp": { - "git_sha": "7e8ad566883449e7939062b5e2bcf53fc1e0002f" - }, - "fastqc": { - "git_sha": "49b18b1639f4f7104187058866a8fab33332bdfe" - }, - "fgbio/callmolecularconsensusreads": { - "git_sha": "6720d88f4e46e67b9a225f06bfb10c8e8ae04a84" - }, - "fgbio/fastqtobam": { - "git_sha": "6720d88f4e46e67b9a225f06bfb10c8e8ae04a84" - }, - "fgbio/groupreadsbyumi": { - "git_sha": "6720d88f4e46e67b9a225f06bfb10c8e8ae04a84" - }, - "freebayes": { - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "gatk4/applybqsr": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/applybqsrspark": { - "git_sha": "6a4732ef3b76b54d75533e6be9ba57e3008d4853" - }, - "gatk4/applyvqsr": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/baserecalibrator": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/baserecalibratorspark": { - "git_sha": "6a4732ef3b76b54d75533e6be9ba57e3008d4853" - }, - "gatk4/calculatecontamination": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/cnnscorevariants": { - "git_sha": "5d72500d601432f5396e9022c3a709854197db1a" - }, - "gatk4/createsequencedictionary": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/estimatelibrarycomplexity": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/filtermutectcalls": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/filtervarianttranches": { - "git_sha": "175ea9b7f95a0e2fd3679f7a052c6dcb60b61a6e" - }, - "gatk4/gatherbqsrreports": { - "git_sha": "848ee9a215d02d80be033bfa60881700f2bd914c" - }, - "gatk4/gatherpileupsummaries": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/genomicsdbimport": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/genotypegvcfs": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/getpileupsummaries": { - "git_sha": "1ac223ad436c1410e9c16a5966274b7ca1f8d855" - }, - "gatk4/haplotypecaller": { - "git_sha": "e53d091a6de1ae9fd681351c085d8abe076ba1ec" - }, - "gatk4/intervallisttobed": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/learnreadorientationmodel": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/markduplicates": { - "git_sha": "df2620cfc7e4c21b14ed03c1c928f09fbabf83c4" - }, - "gatk4/markduplicatesspark": { - "git_sha": "8e8f4c9c51a7b229dd45e9b287d48115c238baf3" - }, - "gatk4/mergemutectstats": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/mergevcfs": { - "git_sha": "4199a05aeb0ec277d40cb112949bb85893310873" - }, - "gatk4/mutect2": { - "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7" - }, - "gatk4/variantrecalibrator": { - "git_sha": "edfe28a5e0088b66ee92e7c58186059f9b5e62d5" - }, - "manta/germline": { - "git_sha": "ffedf09b6e84b479c9c901274f74bb33f3777243" - }, - "manta/somatic": { - "git_sha": "979e57b7ac6a405a395dd7a6dbe1a275c5bc226b" - }, - "manta/tumoronly": { - "git_sha": "979e57b7ac6a405a395dd7a6dbe1a275c5bc226b" - }, - "mosdepth": { - "git_sha": "72a31b76eb1b58879e0d91fb1d992e0118693098" - }, - "msisensorpro/msi_somatic": { - "git_sha": "f0800157544a82ae222931764483331a81812012" - }, - "msisensorpro/scan": { - "git_sha": "f0800157544a82ae222931764483331a81812012" - }, - "multiqc": { - "git_sha": "5138acca0985ca01c38a1c4fba917d83772b1106" - }, - "samblaster": { - "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773" - }, - "samtools/bam2fq": { - "git_sha": "5510ea39fe638594bc26ac34cadf4a84bf27d159" - }, - "samtools/collatefastq": { - "git_sha": "705f8c9ac4dfdf07666e71abde28f267e2dfd5eb" - }, - "samtools/convert": { - "git_sha": "da79396f066a96450d9cc9f115c17c9d738595fd" - }, - "samtools/faidx": { - "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773" - }, - "samtools/index": { - "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773" - }, - "samtools/merge": { - "git_sha": "720027275ccdc1363bb2a19c6412da148e31d94b" - }, - "samtools/mpileup": { - "git_sha": "454e0acc09de7cdcc90007420bfe8afa251286fb" - }, - "samtools/stats": { - "git_sha": "f48a24770e24358e58de66e9b805a70d77cd154b" - }, - "samtools/view": { - "git_sha": "6b64f9cb6c3dd3577931cc3cd032d6fb730000ce" - }, - "snpeff": { - "git_sha": "ffe037504897df081a7497fa5f495d8e23e93e24" - }, - "strelka/germline": { - "git_sha": "e5b44499efcf6f7fb24874886bac60591c5d94dd" - }, - "strelka/somatic": { - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" - }, - "svdb/merge": { - "git_sha": "6b011dd14821385c282e030c6d993d2116aed23f" - }, - "tabix/bgziptabix": { - "git_sha": "9dbaffff88013bc21460a989cde7a5aa172c2e0b" - }, - "tabix/tabix": { - "git_sha": "b3e9b88e80880f450ad79a95b2b7aa05e1de5484" - }, - "tiddit/sv": { - "git_sha": "b689b8ed88a9f89eb2f7c75d3eb0bace77ade109" - }, - "untar": { - "git_sha": "51be617b1ca9bff973655eb899d591ed6ab253b5" - }, - "unzip": { - "git_sha": "e080f4c8acf5760039ed12ec1f206170f3f9a918" - }, - "vcftools": { - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" + "git_url": "https://github.com/nf-core/modules.git", + "modules": { + "ascat": { + "git_sha": "98ffb090029d17a9fb8de75dadcfe6bc8b6377ec", + "branch": "master" + }, + "bcftools/sort": { + "git_sha": "682f789f93070bd047868300dd018faf3d434e7c", + "branch": "master" + }, + "bcftools/stats": { + "git_sha": "535975eb81c9e48eb0403c136b7f1dd7acb1afad", + "branch": "master" + }, + "bwa/index": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d", + "branch": "master" + }, + "bwa/mem": { + "git_sha": "4f5274c3de0c9521f5033893ff61057a74c45ba9", + "branch": "master" + }, + "bwamem2/index": { + "git_sha": "49b18b1639f4f7104187058866a8fab33332bdfe", + "branch": "master" + }, + "bwamem2/mem": { + "git_sha": "4f5274c3de0c9521f5033893ff61057a74c45ba9", + "branch": "master" + }, + "cat/cat": { + "git_sha": "eeda4136c096688d04cc40bb3c70d948213ed641", + "branch": "master" + }, + "cat/fastq": { + "git_sha": "9aadd9a6d3f5964476582319b3a1c54a3e3fe7c9", + "branch": "master" + }, + "cnvkit/antitarget": { + "git_sha": "58c5ec2f4eb44eff1fb7cc9e02df07bd448c6aaf", + "branch": "master" + }, + "cnvkit/batch": { + "git_sha": "2f3ddc90fbeda9fcf54f25b84465f5ac149d2b75", + "branch": "master" + }, + "cnvkit/reference": { + "git_sha": "8208140d21f3a754fff2e177db7a0e570fa2af6e", + "branch": "master" + }, + "controlfreec/assesssignificance": { + "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b", + "branch": "master" + }, + "controlfreec/freec": { + "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b", + "branch": "master" + }, + "controlfreec/freec2bed": { + "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b", + "branch": "master" + }, + "controlfreec/freec2circos": { + "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b", + "branch": "master" + }, + "controlfreec/makegraph": { + "git_sha": "9ae34a01d1747019fd37753ff4cafb05aec35a2b", + "branch": "master" + }, + "custom/dumpsoftwareversions": { + "git_sha": "e5b44499efcf6f7fb24874886bac60591c5d94dd", + "branch": "master" + }, + "deepvariant": { + "git_sha": "fd5f6f5f4ffef4ab5a4e809bd3211bbc71c38d30", + "branch": "master" + }, + "dragmap/align": { + "git_sha": "4f5274c3de0c9521f5033893ff61057a74c45ba9", + "branch": "master" + }, + "dragmap/hashtable": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d", + "branch": "master" + }, + "ensemblvep": { + "git_sha": "973151e9eab9bac400aa99f099075a10cdd8e84c", + "branch": "master" + }, + "fastp": { + "git_sha": "7e8ad566883449e7939062b5e2bcf53fc1e0002f", + "branch": "master" + }, + "fastqc": { + "git_sha": "49b18b1639f4f7104187058866a8fab33332bdfe", + "branch": "master" + }, + "fgbio/callmolecularconsensusreads": { + "git_sha": "6720d88f4e46e67b9a225f06bfb10c8e8ae04a84", + "branch": "master" + }, + "fgbio/fastqtobam": { + "git_sha": "6720d88f4e46e67b9a225f06bfb10c8e8ae04a84", + "branch": "master" + }, + "fgbio/groupreadsbyumi": { + "git_sha": "6720d88f4e46e67b9a225f06bfb10c8e8ae04a84", + "branch": "master" + }, + "freebayes": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d", + "branch": "master" + }, + "gatk4/applybqsr": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/applybqsrspark": { + "git_sha": "6a4732ef3b76b54d75533e6be9ba57e3008d4853", + "branch": "master" + }, + "gatk4/applyvqsr": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/baserecalibrator": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/baserecalibratorspark": { + "git_sha": "6a4732ef3b76b54d75533e6be9ba57e3008d4853", + "branch": "master" + }, + "gatk4/calculatecontamination": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/cnnscorevariants": { + "git_sha": "5d72500d601432f5396e9022c3a709854197db1a", + "branch": "master" + }, + "gatk4/createsequencedictionary": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/estimatelibrarycomplexity": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/filtermutectcalls": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/filtervarianttranches": { + "git_sha": "175ea9b7f95a0e2fd3679f7a052c6dcb60b61a6e", + "branch": "master" + }, + "gatk4/gatherbqsrreports": { + "git_sha": "848ee9a215d02d80be033bfa60881700f2bd914c", + "branch": "master" + }, + "gatk4/gatherpileupsummaries": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/genomicsdbimport": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/genotypegvcfs": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/getpileupsummaries": { + "git_sha": "1ac223ad436c1410e9c16a5966274b7ca1f8d855", + "branch": "master" + }, + "gatk4/haplotypecaller": { + "git_sha": "e53d091a6de1ae9fd681351c085d8abe076ba1ec", + "branch": "master" + }, + "gatk4/intervallisttobed": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/learnreadorientationmodel": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/markduplicates": { + "git_sha": "df2620cfc7e4c21b14ed03c1c928f09fbabf83c4", + "branch": "master" + }, + "gatk4/markduplicatesspark": { + "git_sha": "8e8f4c9c51a7b229dd45e9b287d48115c238baf3", + "branch": "master" + }, + "gatk4/mergemutectstats": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/mergevcfs": { + "git_sha": "4199a05aeb0ec277d40cb112949bb85893310873", + "branch": "master" + }, + "gatk4/mutect2": { + "git_sha": "169b2b96c1167f89ab07127b7057c1d90a6996c7", + "branch": "master" + }, + "gatk4/variantrecalibrator": { + "git_sha": "edfe28a5e0088b66ee92e7c58186059f9b5e62d5", + "branch": "master" + }, + "manta/germline": { + "git_sha": "ffedf09b6e84b479c9c901274f74bb33f3777243", + "branch": "master" + }, + "manta/somatic": { + "git_sha": "979e57b7ac6a405a395dd7a6dbe1a275c5bc226b", + "branch": "master" + }, + "manta/tumoronly": { + "git_sha": "979e57b7ac6a405a395dd7a6dbe1a275c5bc226b", + "branch": "master" + }, + "mosdepth": { + "git_sha": "72a31b76eb1b58879e0d91fb1d992e0118693098", + "branch": "master" + }, + "msisensorpro/msi_somatic": { + "git_sha": "f0800157544a82ae222931764483331a81812012", + "branch": "master" + }, + "msisensorpro/scan": { + "git_sha": "f0800157544a82ae222931764483331a81812012", + "branch": "master" + }, + "multiqc": { + "git_sha": "5138acca0985ca01c38a1c4fba917d83772b1106", + "branch": "master" + }, + "samblaster": { + "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773", + "branch": "master" + }, + "samtools/bam2fq": { + "git_sha": "5510ea39fe638594bc26ac34cadf4a84bf27d159", + "branch": "master" + }, + "samtools/collatefastq": { + "git_sha": "705f8c9ac4dfdf07666e71abde28f267e2dfd5eb", + "branch": "master" + }, + "samtools/convert": { + "git_sha": "da79396f066a96450d9cc9f115c17c9d738595fd", + "branch": "master" + }, + "samtools/faidx": { + "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773", + "branch": "master" + }, + "samtools/index": { + "git_sha": "897c33d5da084b61109500ee44c01da2d3e4e773", + "branch": "master" + }, + "samtools/merge": { + "git_sha": "720027275ccdc1363bb2a19c6412da148e31d94b", + "branch": "master" + }, + "samtools/mpileup": { + "git_sha": "454e0acc09de7cdcc90007420bfe8afa251286fb", + "branch": "master" + }, + "samtools/stats": { + "git_sha": "f48a24770e24358e58de66e9b805a70d77cd154b", + "branch": "master" + }, + "samtools/view": { + "git_sha": "6b64f9cb6c3dd3577931cc3cd032d6fb730000ce", + "branch": "master" + }, + "snpeff": { + "git_sha": "ffe037504897df081a7497fa5f495d8e23e93e24", + "branch": "master" + }, + "strelka/germline": { + "git_sha": "e5b44499efcf6f7fb24874886bac60591c5d94dd", + "branch": "master" + }, + "strelka/somatic": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d", + "branch": "master" + }, + "svdb/merge": { + "git_sha": "6b011dd14821385c282e030c6d993d2116aed23f", + "branch": "master" + }, + "tabix/bgziptabix": { + "git_sha": "9dbaffff88013bc21460a989cde7a5aa172c2e0b", + "branch": "master" + }, + "tabix/tabix": { + "git_sha": "b3e9b88e80880f450ad79a95b2b7aa05e1de5484", + "branch": "master" + }, + "tiddit/sv": { + "git_sha": "b689b8ed88a9f89eb2f7c75d3eb0bace77ade109", + "branch": "master" + }, + "untar": { + "git_sha": "51be617b1ca9bff973655eb899d591ed6ab253b5", + "branch": "master" + }, + "unzip": { + "git_sha": "e080f4c8acf5760039ed12ec1f206170f3f9a918", + "branch": "master" + }, + "vcftools": { + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d", + "branch": "master" + } } } } diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py index d139039254..787bdb7b1b 100644 --- a/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py @@ -1,9 +1,10 @@ #!/usr/bin/env python -import yaml import platform from textwrap import dedent +import yaml + def _make_versions_html(versions): html = [ @@ -58,11 +59,12 @@ def _make_versions_html(versions): for process, process_versions in versions_by_process.items(): module = process.split(":")[-1] try: - assert versions_by_module[module] == process_versions, ( - "We assume that software versions are the same between all modules. " - "If you see this error-message it means you discovered an edge-case " - "and should open an issue in nf-core/tools. " - ) + if versions_by_module[module] != process_versions: + raise AssertionError( + "We assume that software versions are the same between all modules. " + "If you see this error-message it means you discovered an edge-case " + "and should open an issue in nf-core/tools. " + ) except KeyError: versions_by_module[module] = process_versions diff --git a/nextflow.config b/nextflow.config index c1fca80120..af08566031 100644 --- a/nextflow.config +++ b/nextflow.config @@ -13,7 +13,7 @@ params { input = null // No default input step = 'mapping' // Starts with mapping - // Genome and references options + // References genome = 'GATK.GRCh38' igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false @@ -104,6 +104,7 @@ params { schema_ignore_params = 'genomes,snpeff_version,vep_version,cf_ploidy' enable_conda = false + // Config options custom_config_version = 'master' custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}" @@ -112,6 +113,7 @@ params { config_profile_url = null config_profile_name = null + // Max resource options // Defaults only, expecting to be overwritten max_memory = '128.GB' @@ -136,6 +138,7 @@ try { System.err.println("WARNING: Could not load nf-core/config/sarek profiles: ${params.custom_config_base}/pipeline/sarek.config") } + profiles { debug { process.beforeScript = 'echo $HOSTNAME' } conda { @@ -146,6 +149,15 @@ profiles { shifter.enabled = false charliecloud.enabled = false } + mamba { + params.enable_conda = true + conda.useMamba = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } docker { docker.enabled = true docker.userEmulation = { params.use_gatk_spark ? false : true }.call() @@ -184,11 +196,17 @@ profiles { podman.enabled = false shifter.enabled = false } + gitpod { + executor.name = 'local' + executor.cpus = 16 + executor.memory = 60.GB + } test { includeConfig 'conf/test.config' } test_full { includeConfig 'conf/test_full.config' } test_full_somatic { includeConfig 'conf/test_full_somatic.config' } } + // Load igenomes.config if required if (!params.igenomes_ignore) { includeConfig 'conf/igenomes.config' @@ -196,6 +214,7 @@ if (!params.igenomes_ignore) { params.genomes = [:] } + // Export these variables to prevent local Python/R libraries from conflicting with those in the container // The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. // See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable. @@ -234,7 +253,7 @@ manifest { homePage = 'https://github.com/nf-core/sarek' description = 'An open-source analysis pipeline to detect germline or somatic variants from whole genome or targeted sequencing' mainScript = 'main.nf' - nextflowVersion = '!>=21.10.3' + nextflowVersion = '!>=22.04.5' version = '3.1dev' } diff --git a/tests/test_tools.yml b/tests/test_tools.yml index ff6d6d8444..a3f54dc1e5 100644 --- a/tests/test_tools.yml +++ b/tests/test_tools.yml @@ -166,11 +166,11 @@ - path: results/variant_calling/controlfreec/sample4_vs_sample3/sample4_vs_sample3_BAF.png # binary changes md5sums on reruns. - path: results/variant_calling/controlfreec/sample4_vs_sample3/sample4_vs_sample3_ratio.log2.png - md5sum: 279341ecc087319e421da6af0eb31f33 + # binary changes md5sums on reruns. - path: results/variant_calling/controlfreec/sample4_vs_sample3/sample4_vs_sample3_ratio.png - md5sum: 192f56e54e985ea5cf3756387dbbc6cc + # binary changes md5sums on reruns. - path: results/variant_calling/mpileup/sample4_vs_sample3/sample4_vs_sample3.normal.mpileup.gz - md5sum: f541e71aad4942260996107edaaed477 + # binary changes md5sums on reruns. - path: results/variant_calling/mpileup/sample4_vs_sample3/sample4_vs_sample3.tumor.mpileup.gz # binary changes md5sums on reruns. - path: results/cnvkit @@ -221,9 +221,9 @@ - path: results/variant_calling/controlfreec/sample4_vs_sample3/sample4_vs_sample3_sample.cpn md5sum: d41d8cd98f00b204e9800998ecf8427e - path: results/variant_calling/mpileup/sample4_vs_sample3/sample4_vs_sample3.normal.mpileup.gz - md5sum: 1fe7bb27b18005ee78acfebcb15f4930 + # binary changes md5sums on reruns. - path: results/variant_calling/mpileup/sample4_vs_sample3/sample4_vs_sample3.tumor.mpileup.gz - md5sum: 40544e727f449b14523a4f2e20c69420 + # binary changes md5sums on reruns. - path: results/controlfreec should_exist: false - path: results/mpileup @@ -266,7 +266,7 @@ - path: results/variant_calling/controlfreec/sample2/sample2_sample.cpn md5sum: d41d8cd98f00b204e9800998ecf8427e - path: results/variant_calling/mpileup/sample2/sample2.tumor.mpileup.gz - md5sum: d41d8cd98f00b204e9800998ecf8427e + # binary changes md5sums on reruns. - path: results/controlfreec should_exist: false - path: results/mpileup @@ -1101,7 +1101,7 @@ - path: results/no_intervals.bed.gz.tbi md5sum: f3dac01ea66b95fe477446fde2d31489 - path: results/variant_calling/mpileup/sample2/sample2.tumor.mpileup.gz - md5sum: 40544e727f449b14523a4f2e20c69420 + # binary changes md5sums on reruns. - path: results/mpileup should_exist: false - name: Run variant calling on germline sample to test mpileup @@ -1112,7 +1112,7 @@ files: - path: results/multiqc - path: results/variant_calling/mpileup/sample1/sample1.normal.mpileup.gz - md5sum: f541e71aad4942260996107edaaed477 + # binary changes md5sums on reruns. - path: results/mpileup should_exist: false - name: Run variant calling on germline sample to test mpileup without intervals @@ -1130,7 +1130,7 @@ - path: results/no_intervals.bed.gz.tbi md5sum: f3dac01ea66b95fe477446fde2d31489 - path: results/variant_calling/mpileup/sample1/sample1.normal.mpileup.gz - md5sum: 1fe7bb27b18005ee78acfebcb15f4930 + # binary changes md5sums on reruns. - path: results/mpileup should_exist: false - name: Run variant calling on tumor only sample with mutect2