From 473b10c9d7bbde9a6e1ea492fa210a3325a02047 Mon Sep 17 00:00:00 2001 From: Alexander Peltzer Date: Mon, 20 Aug 2018 18:42:00 +0200 Subject: [PATCH 01/13] Add DOI badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3a769ec03..308bdf159 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![Build Status](https://travis-ci.org/nf-core/rnaseq.svg?branch=master)](https://travis-ci.org/nf-core/rnaseq) [![Nextflow](https://img.shields.io/badge/nextflow-%E2%89%A50.31.1-brightgreen.svg)](https://www.nextflow.io/) +[![DOI](https://zenodo.org/badge/127293091.svg)](https://zenodo.org/badge/latestdoi/127293091) [![Gitter](https://img.shields.io/badge/gitter-%20join%20chat%20%E2%86%92-4fb99a.svg)](https://gitter.im/nf-core/Lobby) [![install with bioconda](https://img.shields.io/badge/install%20with-bioconda-brightgreen.svg)](http://bioconda.github.io/) From 5f92515b8769aaee1ea8b31e91a79cf5dad900c4 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Wed, 22 Aug 2018 12:42:46 +0200 Subject: [PATCH 02/13] Revert removal of executor = 'local' for workflow_summary_mqc. See nf-core/rnaseq#77 --- conf/base.config | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/base.config b/conf/base.config index c78239b5b..0ce25144a 100644 --- a/conf/base.config +++ b/conf/base.config @@ -92,6 +92,7 @@ process { withName:workflow_summary_mqc { memory = { check_max( 2.GB, 'memory' ) } cache = false + executor = 'local' errorStrategy = 'ignore' } } From 4fae3c4dcd27254d61eb142da81eebf33a62d441 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Wed, 22 Aug 2018 12:47:15 +0200 Subject: [PATCH 03/13] Bumped version to 1.1dev. Added to changelog. --- .travis.yml | 2 +- CHANGELOG.md | 8 ++++++++ Dockerfile | 2 +- Singularity | 4 ++-- environment.yml | 2 +- nextflow.config | 4 ++-- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index ba99d8215..d99bbd9fc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ before_install: # Pull the docker image first so the test doesn't wait for this - docker pull nfcore/rnaseq # Fake the tag locally so that the pipeline runs properly - - docker tag nfcore/rnaseq nfcore/rnaseq:1.0 + - docker tag nfcore/rnaseq nfcore/rnaseq:latest install: # Install Nextflow diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b41e1d39..6b542326b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # nf-core/rnaseq +## Version 1.1dev + +#### Bug Fixes +* [#77](https://github.com/nf-core/rnaseq/issues/77): Added back `executor = 'local'` for the `workflow_summary_mqc` + + + + ## [Version 1.0](https://github.com/nf-core/rnaseq/releases/tag/1.0) - 2018-08-20 This release marks the point where the pipeline was moved from [SciLifeLab/NGI-RNAseq](https://github.com/SciLifeLab/NGI-RNAseq) diff --git a/Dockerfile b/Dockerfile index 1c7574a5d..193a8c8e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,4 +5,4 @@ LABEL authors="phil.ewels@scilifelab.se" \ COPY environment.yml / RUN conda env create -f /environment.yml && conda clean -a -ENV PATH /opt/conda/envs/nf-core-rnaseq-1.0/bin:$PATH +ENV PATH /opt/conda/envs/nf-core-rnaseq-1.1dev/bin:$PATH diff --git a/Singularity b/Singularity index fa004de48..4ddd66a00 100644 --- a/Singularity +++ b/Singularity @@ -4,10 +4,10 @@ Bootstrap:docker %labels MAINTAINER Phil Ewels DESCRIPTION Singularity image containing all requirements for the nf-core/rnaseq pipeline - VERSION 1.0 + VERSION 1.1dev %environment - PATH=/opt/conda/envs/nf-core-rnaseq-1.0/bin:$PATH + PATH=/opt/conda/envs/nf-core-rnaseq-1.1dev/bin:$PATH export PATH %files diff --git a/environment.yml b/environment.yml index 6f78e33ea..3f31af172 100644 --- a/environment.yml +++ b/environment.yml @@ -1,6 +1,6 @@ # You can use this file to create a conda environment for this pipeline: # conda env create -f environment.yml -name: nf-core-rnaseq-1.0 +name: nf-core-rnaseq-1.1dev channels: - bioconda - conda-forge diff --git a/nextflow.config b/nextflow.config index 50aa65607..12fc66165 100644 --- a/nextflow.config +++ b/nextflow.config @@ -10,7 +10,7 @@ // Global default params, used in configs params { - container = 'nfcore/rnaseq:1.0' // Container slug. Stable releases should specify release tag! + container = 'nfcore/rnaseq:latest' // Container slug. Stable releases should specify release tag! // Pipeline Options aligner = 'star' @@ -46,7 +46,7 @@ params { readPaths = null tracedir = "${params.outdir}/pipeline_info" // TODO: Remove this if/when we can. See https://github.com/nextflow-io/nextflow/issues/840 - pipelineVersion = '1.0' + pipelineVersion = '1.1dev' } profiles { From db98b226a6a1113de8642a5621d9051b57f87516 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Thu, 6 Sep 2018 17:20:41 +0200 Subject: [PATCH 04/13] Skip QC updates * Made --skip_dupradar also skip Picard MarkDups * Added missing params.skip_rseqc check to that process * Added new --skip_edger option to skip the MDS and heatmap process --- main.nf | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/main.nf b/main.nf index a1abc371c..9885bb612 100644 --- a/main.nf +++ b/main.nf @@ -23,7 +23,7 @@ def helpMessage() { nf-core/rnaseq : RNA-Seq Best Practice v${params.pipelineVersion} ======================================================= - + Usage: The typical command for running the pipeline is as follows: @@ -80,7 +80,8 @@ def helpMessage() { --skip_rseqc Skip RSeQC --skip_genebody_coverage Skip calculating genebody coverage --skip_preseq Skip Preseq - --skip_dupradar Skip dupRadar + --skip_dupradar Skip dupRadar (and Picard MarkDups) + --skip_edger Skip edgeR MDS plot and heatmap --skip_multiqc Skip MultiQC AWSBatch options: @@ -126,6 +127,7 @@ params.skip_rseqc = false params.skip_genebody_coverage = false params.skip_preseq = false params.skip_dupradar = false +params.skip_edger = false params.skip_multiqc = false mdsplot_header = file("$baseDir/assets/mdsplot_header.txt") @@ -717,7 +719,7 @@ process rseqc { } when: - !params.skip_qc + !params.skip_qc && !params.skip_rseqc input: file bam_rseqc @@ -833,6 +835,9 @@ process markDuplicates { publishDir "${params.outdir}/markDuplicates", mode: 'copy', saveAs: {filename -> filename.indexOf("_metrics.txt") > 0 ? "metrics/$filename" : "$filename"} + when: + !params.skip_qc && !params.skip_dupradar + input: file bam from bam_markduplicates @@ -1013,6 +1018,9 @@ process sample_correlation { tag "${input_files[0].toString() - '.sorted_gene.featureCounts.txt' - 'Aligned'}" publishDir "${params.outdir}/sample_correlation", mode: 'copy' + when: + !params.skip_qc && !params.skip_edger + input: file input_files from geneCounts.collect() val num_bams from bam_count.count() From 05275c2b2310d0e623026ae49db0a4e79b79f76f Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Thu, 6 Sep 2018 17:23:19 +0200 Subject: [PATCH 05/13] Added docs for skipping QC steps --- docs/usage.md | 19 ++++++++++++++++--- main.nf | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index b24dbee3e..fa24aaff5 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -237,6 +237,19 @@ Sets trimming and standedness settings for the _SMARTer Stranded Total RNA-Seq K Equivalent to: `--forward_stranded` `--clip_r1 3` `--three_prime_clip_r2 3` +## Skipping QC steps +The pipeline contains a large number of quality control steps. Sometimes, it may not be desirable to run all of them if time and compute resources are limited. +The following options make this easy: + +* `--skip_qc` - Skip **all QC steps**, apart from MultiQC +* `--skip_fastqc` - Skip FastQC +* `--skip_rseqc` - Skip RSeQC +* `--skip_genebody_coverage` - Skip calculating the genebody coverage +* `--skip_preseq` - Skip Preseq +* `--skip_dupradar` - Skip dupRadar (and Picard MarkDups) +* `--skip_edger` - Skip edgeR MDS plot and heatmap +* `--skip_multiqc` - Skip MultiQC + ## Job Resources ### Automatic resubmission Each step in the pipeline has a default set of requirements for number of CPUs, memory and time. For most of the steps in the pipeline, if the job exits with an error code of `143` (exceeded requested resources) it will automatically resubmit with higher requests (2 x original, then 3 x original). If it still fails after three times then the pipeline is stopped. @@ -249,11 +262,11 @@ Running the pipeline on AWS Batch requires a couple of specific parameters to be ### `--awsqueue` The JobQueue that you intend to use on AWS Batch. ### `--awsregion` -The AWS region to run your job in. Default is set to `eu-west-1` but can be adjusted to your needs. +The AWS region to run your job in. Default is set to `eu-west-1` but can be adjusted to your needs. -Please make sure to also set the `-w/--work-dir` and `--outdir` parameters to a S3 storage bucket of your choice - you'll get an error message notifying you if you didn't. +Please make sure to also set the `-w/--work-dir` and `--outdir` parameters to a S3 storage bucket of your choice - you'll get an error message notifying you if you didn't. -### +### ## Other command line parameters ### `--outdir` The output directory where the results will be saved. diff --git a/main.nf b/main.nf index 9885bb612..85756d7be 100644 --- a/main.nf +++ b/main.nf @@ -75,7 +75,7 @@ def helpMessage() { --seqCenter Add sequencing center in @RG line of output BAM header QC options: - --skip_qc Skip all QC steps aside from MultiQC + --skip_qc Skip all QC steps apart from MultiQC --skip_fastqc Skip FastQC --skip_rseqc Skip RSeQC --skip_genebody_coverage Skip calculating genebody coverage From 148676bf3975c5705b740083fb3c7a5a84f054e2 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Fri, 7 Sep 2018 12:48:40 +0200 Subject: [PATCH 06/13] Config updates --- CHANGELOG.md | 5 +++ conf/binac.config | 8 ++--- conf/cfc.config | 6 ++-- conf/hebbe.config | 36 +++++++++++----------- conf/uppmax-modules.config | 63 -------------------------------------- main.nf | 2 +- nextflow.config | 5 --- 7 files changed, 31 insertions(+), 94 deletions(-) delete mode 100644 conf/uppmax-modules.config diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b542326b..3f682f003 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## Version 1.1dev +#### Pipeline updates +* Wrote docs and made minor tweaks to the `--skip_qc` and associated options +* Removed the depreciated `uppmax-modules` config profile +* Updated the `hebbe` config profile to use the new `withName` syntax too + #### Bug Fixes * [#77](https://github.com/nf-core/rnaseq/issues/77): Added back `executor = 'local'` for the `workflow_summary_mqc` diff --git a/conf/binac.config b/conf/binac.config index c35e58c92..524662e3a 100644 --- a/conf/binac.config +++ b/conf/binac.config @@ -6,13 +6,13 @@ */ singularity { - enabled = true + enabled = true } process { - beforeScript = 'module load devel/singularity/2.4.1' - executor = 'pbs' - queue = 'short' + beforeScript = 'module load devel/singularity/2.4.1' + executor = 'pbs' + queue = 'short' } params { diff --git a/conf/cfc.config b/conf/cfc.config index 23d1a2875..6883fbdb2 100644 --- a/conf/cfc.config +++ b/conf/cfc.config @@ -6,7 +6,7 @@ */ singularity { - enabled = true + enabled = true } /* @@ -14,8 +14,8 @@ singularity { */ process { - beforeScript = 'module load qbic/singularity_slurm/2.5.2' - executor = 'slurm' + beforeScript = 'module load qbic/singularity_slurm/2.5.2' + executor = 'slurm' } params { diff --git a/conf/hebbe.config b/conf/hebbe.config index 5b76ed805..799cb3ff0 100644 --- a/conf/hebbe.config +++ b/conf/hebbe.config @@ -16,24 +16,24 @@ process { /* The Hebbe scheduler fails if you try to request an amount of memory for a job */ memory = null - $makeSTARindex.memory = null - $makeHisatSplicesites.memory = null - $makeHISATindex.memory = null - $fastqc.memory = null - $trim_galore.memory = null - $star.memory = null - $hisat2Align.memory = null - $hisat2_sortOutput.memory = null - $rseqc.memory = null - $genebody_coverage.memory = null - $preseq.memory = null - $markDuplicates.memory = null - $dupradar.memory = null - $featureCounts.memory = null - $merge_featureCounts.memory = null - $stringtieFPKM.memory = null - $sample_correlation.memory = null - $multiqc.memory = null + withName:makeSTARindex.memory = null + withName:makeHisatSplicesites.memory = null + withName:makeHISATindex.memory = null + withName:fastqc.memory = null + withName:trim_galore.memory = null + withName:star.memory = null + withName:hisat2Align.memory = null + withName:hisat2_sortOutput.memory = null + withName:rseqc.memory = null + withName:genebody_coverage.memory = null + withName:preseq.memory = null + withName:markDuplicates.memory = null + withName:dupradar.memory = null + withName:featureCounts.memory = null + withName:merge_featureCounts.memory = null + withName:stringtieFPKM.memory = null + withName:sample_correlation.memory = null + withName:multiqc.memory = null } params { diff --git a/conf/uppmax-modules.config b/conf/uppmax-modules.config deleted file mode 100644 index c02f8fc37..000000000 --- a/conf/uppmax-modules.config +++ /dev/null @@ -1,63 +0,0 @@ -/* - * ------------------------------------------------- - * Nextflow config file with environment modules for UPPMAX (milou / irma) - * ------------------------------------------------- - */ - -process { - - // Global process config - executor = 'slurm' - clusterOptions = { "-A $params.project ${params.clusterOptions ?: ''}" } - - // Load bioinfo-tools module before we start - beforeScript = 'module load bioinfo-tools' - - // Environment modules and resource requirements - $makeSTARindex.module = ['bioinfo-tools', 'star/2.5.1b'] - $makeHisatSplicesites.module = ['bioinfo-tools', 'HISAT2/2.1.0'] - $makeHISATindex.module = ['bioinfo-tools', 'HISAT2/2.1.0'] - $fastqc.module = ['bioinfo-tools', 'FastQC/0.11.5'] - $trim_galore.module = ['bioinfo-tools', 'FastQC/0.11.5', 'TrimGalore/0.4.1'] - $star.module = ['bioinfo-tools', 'star/2.5.1b'] - $hisat2Align.module = ['bioinfo-tools', 'samtools/1.3', 'HISAT2/2.1.0'] - $hisat2_sortOutput.module = ['bioinfo-tools', 'samtools/1.3'] - $rseqc.module = ['bioinfo-tools', 'rseqc/2.6.1', 'samtools/1.3'] - $genebody_coverage.module = ['bioinfo-tools', 'rseqc/2.6.1', 'samtools/1.3'] - $preseq.module = ['bioinfo-tools', 'preseq/0.1.0'] - $markDuplicates.module = ['bioinfo-tools', 'samtools/1.3', 'picard/2.10.3'] - $dupradar.module = ['bioinfo-tools', 'R/3.2.3'] - $featureCounts.module = ['bioinfo-tools', 'subread/1.5.1'] - $merge_featureCounts.module = ['python/2.7.11'] - $stringtieFPKM.module = ['bioinfo-tools', 'StringTie/1.3.3'] - $sample_correlation.module = ['bioinfo-tools', 'R/3.2.3'] - // NB: Overwrite this in a config file in the working directory (nextflow.config) or with -c - // if you have your own installation of MultiQC outside of the environment module system. - // eg: Add the line: process.$multiqc.module = [] - $multiqc.module = ['bioinfo-tools', 'MultiQC/1.3'] - $get_software_versions.module = [ - 'bioinfo-tools', - 'FastQC/0.11.5', - 'HISAT2/2.1.0', - 'MultiQC/1.4', - 'picard/2.10.3', - 'preseq/0.1.0', - 'rseqc/2.6.1', - 'samtools/1.3', - 'star/2.5.1b', - 'StringTie/1.3.3', - 'subread/1.5.1', - 'TrimGalore/0.4.1' - ] -} - -params { - saveReference = true - // Max resources requested by a normal node on milou. If you need more memory, run on a fat node using: - // --clusterOptions "-C mem512GB" --max_memory "512GB" - max_memory = 128.GB - max_cpus = 16 - max_time = 240.h - // illumina iGenomes reference file paths on UPPMAX - igenomes_base = '/sw/data/uppnex/igenomes/' -} diff --git a/main.nf b/main.nf index 85756d7be..ad38d3017 100644 --- a/main.nf +++ b/main.nf @@ -205,7 +205,7 @@ if( params.aligner == 'hisat2' && params.splicesites ){ .ifEmpty { exit 1, "HISAT2 splice sites file not found: $alignment_splicesites" } .into { indexing_splicesites; alignment_splicesites } } -if( workflow.profile == 'uppmax' || workflow.profile == 'uppmax-modules' || workflow.profile == 'uppmax-devel' ){ +if( workflow.profile == 'uppmax' || workflow.profile == 'uppmax-devel' ){ if ( !params.project ) exit 1, "No UPPMAX project ID found! Use --project" } diff --git a/nextflow.config b/nextflow.config index 12fc66165..e6248408f 100644 --- a/nextflow.config +++ b/nextflow.config @@ -63,11 +63,6 @@ profiles { includeConfig 'conf/uppmax.config' includeConfig 'conf/igenomes.config' } - uppmax_modules { - includeConfig 'conf/base.config' - includeConfig 'conf/uppmax-modules.config' - includeConfig 'conf/igenomes.config' - } uppmax_devel { includeConfig 'conf/base.config' includeConfig 'conf/uppmax.config' From 8d9544b15ac9fe2d5cf9413dc3ca9fe917f2f588 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Tue, 11 Sep 2018 12:47:52 +0200 Subject: [PATCH 07/13] Fix withName syntax for hebbe profile --- conf/hebbe.config | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/conf/hebbe.config b/conf/hebbe.config index 799cb3ff0..86f84685e 100644 --- a/conf/hebbe.config +++ b/conf/hebbe.config @@ -15,25 +15,7 @@ process { clusterOptions = { "-A $params.project ${params.clusterOptions ?: ''}" } /* The Hebbe scheduler fails if you try to request an amount of memory for a job */ - memory = null - withName:makeSTARindex.memory = null - withName:makeHisatSplicesites.memory = null - withName:makeHISATindex.memory = null - withName:fastqc.memory = null - withName:trim_galore.memory = null - withName:star.memory = null - withName:hisat2Align.memory = null - withName:hisat2_sortOutput.memory = null - withName:rseqc.memory = null - withName:genebody_coverage.memory = null - withName:preseq.memory = null - withName:markDuplicates.memory = null - withName:dupradar.memory = null - withName:featureCounts.memory = null - withName:merge_featureCounts.memory = null - withName:stringtieFPKM.memory = null - withName:sample_correlation.memory = null - withName:multiqc.memory = null + withName: '*' { memory = null } } params { From 6a06f9e1b278bfa4e05e196a5636a9ce8a58ec5d Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Tue, 11 Sep 2018 12:51:53 +0200 Subject: [PATCH 08/13] Replace 1.4 for 1.0 in docs. Fixes nf-core/rnaseq#85 --- docs/configuration/adding_your_own.md | 8 ++++---- docs/configuration/local.md | 8 ++++---- docs/configuration/uppmax.md | 14 +++++++------- docs/usage.md | 4 +--- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/docs/configuration/adding_your_own.md b/docs/configuration/adding_your_own.md index c633aed06..c261c062e 100644 --- a/docs/configuration/adding_your_own.md +++ b/docs/configuration/adding_your_own.md @@ -51,7 +51,7 @@ nextflow run nf-core/rnaseq -profile docker --reads '' --fas Nextflow will recognise `nf-core/rnaseq` and download the pipeline from GitHub. The `-profile docker` configuration lists the [nfcore/rnaseq](https://hub.docker.com/r/nfcore/rnaseq/) image that we have created and is hosted at dockerhub, and this is downloaded. -The public docker images are tagged with the same version numbers as the code, which you can use to ensure reproducibility. When running the pipeline, specify the pipeline version with `-r`, for example `-r v1.4`. This uses pipeline code and docker image from this tagged version. +The public docker images are tagged with the same version numbers as the code, which you can use to ensure reproducibility. When running the pipeline, specify the pipeline version with `-r`, for example `-r 1.0`. This uses pipeline code and docker image from this tagged version. To add docker support to your own config file (instead of using the `docker` profile, which runs locally), add the following: @@ -91,17 +91,17 @@ If you intend to run the pipeline offline, nextflow will not be able to automati First, pull the image file where you have an internet connection: > NB: The "tag" at the end of this command corresponds to the pipeline version. -> Here, we're pulling the docker image for version 1.4 of the nfcore/rnaseq pipeline +> Here, we're pulling the docker image for version 1.0 of the nfcore/rnaseq pipeline > Make sure that this tag corresponds to the version of the pipeline that you're using ```bash -singularity pull --name nfcore-rnaseq-1.4.img docker://nfcore/rnaseq:1.4 +singularity pull --name nfcore-rnaseq-1.0.img docker://nfcore/rnaseq:1.0 ``` Then transfer this file and run the pipeline with this path: ```bash -nextflow run /path/to/nfcore-rnaseq -with-singularity /path/to/nfcore-rnaseq-1.4.img +nextflow run /path/to/nfcore-rnaseq -with-singularity /path/to/nfcore-rnaseq-1.0.img ``` ### Bioconda diff --git a/docs/configuration/local.md b/docs/configuration/local.md index 1a924a92b..b332f2794 100644 --- a/docs/configuration/local.md +++ b/docs/configuration/local.md @@ -19,7 +19,7 @@ Nextflow will recognise `nf-core/rnaseq` and download the pipeline from GitHub. For more information about how to work with reference genomes, see [`docs/configuration/reference_genomes.md`](docs/configuration/reference_genomes.md). ### Pipeline versions -The public docker images are tagged with the same version numbers as the code, which you can use to ensure reproducibility. When running the pipeline, specify the pipeline version with `-r`, for example `-r v1.4`. This uses pipeline code and docker image from this tagged version. +The public docker images are tagged with the same version numbers as the code, which you can use to ensure reproducibility. When running the pipeline, specify the pipeline version with `-r`, for example `-r 1.0`. This uses pipeline code and docker image from this tagged version. ## Singularity image @@ -32,15 +32,15 @@ If you intend to run the pipeline offline, nextflow will not be able to automati First, pull the image file where you have an internet connection: > NB: The "tag" at the end of this command corresponds to the pipeline version. -> Here, we're pulling the docker image for version 1.4 of the nfcore/rnaseq pipeline +> Here, we're pulling the docker image for version 1.0 of the nfcore/rnaseq pipeline > Make sure that this tag corresponds to the version of the pipeline that you're using ```bash -singularity pull --name nfcore-rnaseq-1.4.img docker://nfcore/rnaseq:1.4 +singularity pull --name nfcore-rnaseq-1.0.img docker://nfcore/rnaseq:1.0 ``` Then transfer this file and run the pipeline with this path: ```bash -nextflow run /path/to/nfcore-rnaseq -with-singularity /path/to/nfcore-rnaseq-1.4.img +nextflow run /path/to/nfcore-rnaseq -with-singularity /path/to/nfcore-rnaseq-1.0.img ``` diff --git a/docs/configuration/uppmax.md b/docs/configuration/uppmax.md index 3c7416ac1..af35fe7ba 100644 --- a/docs/configuration/uppmax.md +++ b/docs/configuration/uppmax.md @@ -20,11 +20,11 @@ First, to generate the singularity image, run the following command. Note that y First, pull the image file where you have an internet connection: > NB: The "tag" at the end of this command corresponds to the pipeline version. -> Here, we're pulling the docker image for version 1.4 of the nfcore/rnaseq pipeline +> Here, we're pulling the docker image for version 1.0 of the nfcore/rnaseq pipeline > Make sure that this tag corresponds to the version of the pipeline that you're using ```bash -singularity pull --name nfcore-rnaseq-1.4.img docker://nfcore/rnaseq:1.4 +singularity pull --name nfcore-rnaseq-1.0.img docker://nfcore/rnaseq:1.0 pwd # Prints path to your singularity container ``` @@ -35,9 +35,9 @@ or `.tar.gz` file). Once transferred, extract the pipeline files. For example, with a `.zip` file: ```bash -unzip 1.4.zip -mv rnaseq-1.4 nfcore-rnaseq # rename the folder -cd nfcore-rnaseq +unzip 1.0.zip +mv nfcore-rnaseq-1.0 nfcore-rnaseq # rename the folder +cd nfcore-rnaseq-1.0 pwd # Prints full path to your pipeline ``` @@ -46,12 +46,12 @@ and execute Nextflow with the path to the pipeline, as so: ```bash cd /path/to/my/data/analysis -nextflow run /path/to/nfcore-rnaseq -with-singularity /path/to/singularity/nfcore-rnaseq-1.4.img +nextflow run /path/to/nfcore-rnaseq-1.0 -with-singularity /path/to/singularity/nfcore-rnaseq-1.0.img ``` (Note that you'll need the other common flags such as `--reads` and `--genome` in addition to this command). -> NB: Note that you should _not_ use the `-r 1.4` flag recommended elsewhere. This tells Nextflow to download +> NB: Note that you should _not_ use the `-r 1.0` flag recommended elsewhere. This tells Nextflow to download > that version of the code when it runs. Here, you have already downloaded the code, so it generates an error. diff --git a/docs/usage.md b/docs/usage.md index fa24aaff5..b70ee9e3f 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -36,7 +36,7 @@ nextflow pull nf-core/rnaseq ### Reproducibility It's a good idea to specify a pipeline version when running the pipeline on your data. This ensures that a specific version of the pipeline code and software are used when you run your pipeline. If you keep using the same tag, you'll be running the same version of the pipeline, even if there have been changes to the code since. -First, go to the [nfcore/rnaseq releases page](https://github.com/nf-core/rnaseq/releases) and find the latest version number - numeric only (eg. `1.4`). Then specify this when running the pipeline with `-r` (one hyphen) - eg. `-r 1.4`. +First, go to the [nfcore/rnaseq releases page](https://github.com/nf-core/rnaseq/releases) and find the latest version number - numeric only (eg. `1.0`). Then specify this when running the pipeline with `-r` (one hyphen) - eg. `-r 1.0`. This version number will be logged in reports when you run the pipeline, so that you'll know what you used when you look back in the future. @@ -110,8 +110,6 @@ params { } ``` -> **NB:** Before v1.4 of the pipeline, the UPPMAX profile ran in reverse stranded mode by default. This was removed in the v1.4 release, so all profiles now run in unstranded mode by default. - If you have a default strandedness set in your personal config file you can use `--unstranded` to overwrite it for a given run. These flags affect the commands used for several steps in the pipeline - namely HISAT2, featureCounts, RSeQC (`RPKM_saturation.py`) and StringTie: From 446afc0cfc2720ff550e8465585b37a0f8dd4d8c Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Fri, 28 Sep 2018 12:02:59 +0200 Subject: [PATCH 09/13] Check if task.memory is false instead of null. Fixes nf-core/rnaseq#95 --- main.nf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main.nf b/main.nf index ad38d3017..cb4e365a0 100644 --- a/main.nf +++ b/main.nf @@ -335,7 +335,7 @@ if(params.aligner == 'star' && !params.star_index && fasta){ file "star" into star_index script: - def avail_mem = task.memory == null ? '' : "--limitGenomeGenerateRAM ${task.memory.toBytes() - 100000000}" + def avail_mem = task.memory ? "--limitGenomeGenerateRAM ${task.memory.toBytes() - 100000000}" : '' """ mkdir star STAR \\ @@ -387,7 +387,7 @@ if(params.aligner == 'hisat2' && !params.hisat2_index && fasta){ file "${fasta.baseName}.*.ht2" into hs2_indices script: - if( task.memory == null ){ + if( !task.memory ){ log.info "[HISAT2 index build] Available memory not known - defaulting to 0. Specify process memory requirements to change this." avail_mem = 0 } else { @@ -571,7 +571,7 @@ if(params.aligner == 'star'){ script: prefix = reads[0].toString() - ~/(_R1)?(_trimmed)?(_val_1)?(\.fq)?(\.fastq)?(\.gz)?$/ - def avail_mem = task.memory == null ? '' : "--limitBAMsortRAM ${task.memory.toBytes() - 100000000}" + def avail_mem = task.memory ? "--limitBAMsortRAM ${task.memory.toBytes() - 100000000}" : '' seqCenter = params.seqCenter ? "--outSAMattrRGline ID:$prefix 'CN:$params.seqCenter'" : '' """ STAR --genomeDir $index \\ @@ -678,7 +678,7 @@ if(params.aligner == 'hisat2'){ file "where_are_my_files.txt" script: - def avail_mem = task.memory == null ? '' : "-m ${task.memory.toBytes() / task.cpus}" + def avail_mem = task.memory ? "-m ${task.memory.toBytes() / task.cpus}" : '' """ samtools sort \\ $hisat2_bam \\ @@ -847,7 +847,7 @@ process markDuplicates { file "${bam.baseName}.markDups.bam.bai" script: - if( task.memory == null ){ + if( !task.memory ){ log.info "[Picard MarkDuplicates] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this." avail_mem = 3 } else { From 6f98b63c179e35d7a2fda94c7f1db3ff2e703854 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Fri, 28 Sep 2018 15:53:52 +0200 Subject: [PATCH 10/13] Use quotes for feature counts in MultiQC --- bin/mqc_features_stat.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/mqc_features_stat.py b/bin/mqc_features_stat.py index c1757d714..f3dfe109b 100755 --- a/bin/mqc_features_stat.py +++ b/bin/mqc_features_stat.py @@ -53,7 +53,7 @@ def mqc_feature_stat(bfile, features, outfile, sname=None): return # Prepare the output strings - out_head, out_value, out_mqc = ("Sample", sname, mqc_main) + out_head, out_value, out_mqc = ("Sample", "'{}'".format(sname), mqc_main) for ft, pt in fpercent.items(): out_head = "{}\tpercent_{}".format(out_head, ft) out_value = "{}\t{}".format(out_value, pt) @@ -72,4 +72,3 @@ def mqc_feature_stat(bfile, features, outfile, sname=None): parser.add_argument("-o", "--output", dest='output', default='biocount_percent.tsv', type=str, help="Sample Name") args = parser.parse_args() mqc_feature_stat(args.biocount, args.features, args.output, args.sample) - From 7c41065dd05bc79b156deafa60a1596e017cd8be Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Thu, 4 Oct 2018 16:52:17 +0200 Subject: [PATCH 11/13] Use new workflow.manifest.version instead of params.pipelineVersion. Updated changelog. --- .travis.yml | 2 +- CHANGELOG.md | 4 ++++ main.nf | 8 ++++---- nextflow.config | 7 ++----- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index d99bbd9fc..0a66a46e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ install: - mkdir ${TRAVIS_BUILD_DIR}/tests && cd ${TRAVIS_BUILD_DIR}/tests env: - - NXF_VER='0.31.1' # Specify a minimum NF version that should be tested and work + - NXF_VER='0.32.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: diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f682f003..344d6774b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,13 @@ * Wrote docs and made minor tweaks to the `--skip_qc` and associated options * Removed the depreciated `uppmax-modules` config profile * Updated the `hebbe` config profile to use the new `withName` syntax too +* Use new `workflow.manifest` variables in the pipeline script +* Updated minimum nextflow version to `0.32.0` #### Bug Fixes * [#77](https://github.com/nf-core/rnaseq/issues/77): Added back `executor = 'local'` for the `workflow_summary_mqc` +* [#95](https://github.com/nf-core/rnaseq/issues/95): Check if task.memory is false instead of null +* [#97](https://github.com/nf-core/rnaseq/issues/97): Resolved edge-case where numeric sample IDs are parsed as numbers causing some samples to be incorrectly overwritten. diff --git a/main.nf b/main.nf index cb4e365a0..2ba2cc83e 100644 --- a/main.nf +++ b/main.nf @@ -21,7 +21,7 @@ def helpMessage() { | \\| | \\__, \\__/ | \\ |___ \\`-._,-`-, `._,._,\' - nf-core/rnaseq : RNA-Seq Best Practice v${params.pipelineVersion} + nf-core/rnaseq : RNA-Seq Best Practice v${workflow.manifest.version} ======================================================= Usage: @@ -255,7 +255,7 @@ log.info """======================================================= | \\| | \\__, \\__/ | \\ |___ \\`-._,-`-, `._,._,\' - nf-core/rnaseq : RNA-Seq Best Practice v${params.pipelineVersion} + nf-core/rnaseq : RNA-Seq Best Practice v${workflow.manifest.version} =======================================================""" def summary = [:] summary['Run Name'] = custom_runName ?: workflow.runName @@ -1053,7 +1053,7 @@ process get_software_versions { script: """ - echo $params.pipelineVersion &> v_ngi_rnaseq.txt + echo $workflow.manifest.version &> v_ngi_rnaseq.txt echo $workflow.nextflow.version &> v_nextflow.txt fastqc --version &> v_fastqc.txt cutadapt --version &> v_cutadapt.txt @@ -1169,7 +1169,7 @@ workflow.onComplete { subject = "[nfcore/rnaseq] FAILED: $workflow.runName" } def email_fields = [:] - email_fields['version'] = params.pipelineVersion + email_fields['version'] = workflow.manifest.version email_fields['runName'] = custom_runName ?: workflow.runName email_fields['success'] = workflow.success email_fields['dateComplete'] = workflow.complete diff --git a/nextflow.config b/nextflow.config index e6248408f..1151b041f 100644 --- a/nextflow.config +++ b/nextflow.config @@ -45,8 +45,6 @@ params { maxMultiqcEmailFileSize = 25.MB readPaths = null tracedir = "${params.outdir}/pipeline_info" - // TODO: Remove this if/when we can. See https://github.com/nextflow-io/nextflow/issues/840 - pipelineVersion = '1.1dev' } profiles { @@ -137,10 +135,9 @@ manifest { description = 'Nextflow RNA-Seq analysis pipeline, part of the nf-core community.' homePage = 'https://github.com/nf-core/rnaseq' author = 'Phil Ewels, Rickard Hammarén' - // TODO: Define only here if/when we can. See https://github.com/nextflow-io/nextflow/issues/840 - pipelineVersion = params.pipelineVersion + version = '1.1dev' mainScript = 'main.nf' - nextflowVersion = '>=0.31.1' + nextflowVersion = '>=0.32.0' } // Function to ensure that resource requirements don't go beyond From e7af46b72e94f2a00e8a0feb68b15bb0265218b4 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Thu, 4 Oct 2018 17:11:54 +0200 Subject: [PATCH 12/13] Update readme badge nextflow version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 308bdf159..ae91cbf44 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # ![nfcore/rnaseq](docs/images/nfcore-rnaseq_logo.png) [![Build Status](https://travis-ci.org/nf-core/rnaseq.svg?branch=master)](https://travis-ci.org/nf-core/rnaseq) -[![Nextflow](https://img.shields.io/badge/nextflow-%E2%89%A50.31.1-brightgreen.svg)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/nextflow-%E2%89%A50.32.0-brightgreen.svg)](https://www.nextflow.io/) [![DOI](https://zenodo.org/badge/127293091.svg)](https://zenodo.org/badge/latestdoi/127293091) [![Gitter](https://img.shields.io/badge/gitter-%20join%20chat%20%E2%86%92-4fb99a.svg)](https://gitter.im/nf-core/Lobby) From 874c10d2ff9a71997073312eb89d758fe06d57a5 Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Fri, 5 Oct 2018 12:30:30 +0200 Subject: [PATCH 13/13] Bumped to v1.1 and updated software --- .travis.yml | 2 +- CHANGELOG.md | 4 +--- Dockerfile | 2 +- Singularity | 4 ++-- environment.yml | 10 +++++----- nextflow.config | 4 ++-- 6 files changed, 12 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0a66a46e9..2310a223f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ before_install: # Pull the docker image first so the test doesn't wait for this - docker pull nfcore/rnaseq # Fake the tag locally so that the pipeline runs properly - - docker tag nfcore/rnaseq nfcore/rnaseq:latest + - docker tag nfcore/rnaseq nfcore/rnaseq:1.1 install: # Install Nextflow diff --git a/CHANGELOG.md b/CHANGELOG.md index 344d6774b..cdf6abe75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # nf-core/rnaseq -## Version 1.1dev +## [Version 1.1](https://github.com/nf-core/rnaseq/releases/tag/1.1) - 2018-10-05 #### Pipeline updates * Wrote docs and made minor tweaks to the `--skip_qc` and associated options @@ -15,8 +15,6 @@ * [#97](https://github.com/nf-core/rnaseq/issues/97): Resolved edge-case where numeric sample IDs are parsed as numbers causing some samples to be incorrectly overwritten. - - ## [Version 1.0](https://github.com/nf-core/rnaseq/releases/tag/1.0) - 2018-08-20 This release marks the point where the pipeline was moved from [SciLifeLab/NGI-RNAseq](https://github.com/SciLifeLab/NGI-RNAseq) diff --git a/Dockerfile b/Dockerfile index 193a8c8e5..22c869296 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,4 +5,4 @@ LABEL authors="phil.ewels@scilifelab.se" \ COPY environment.yml / RUN conda env create -f /environment.yml && conda clean -a -ENV PATH /opt/conda/envs/nf-core-rnaseq-1.1dev/bin:$PATH +ENV PATH /opt/conda/envs/nf-core-rnaseq-1.1/bin:$PATH diff --git a/Singularity b/Singularity index 4ddd66a00..ae00bfdc4 100644 --- a/Singularity +++ b/Singularity @@ -4,10 +4,10 @@ Bootstrap:docker %labels MAINTAINER Phil Ewels DESCRIPTION Singularity image containing all requirements for the nf-core/rnaseq pipeline - VERSION 1.1dev + VERSION 1.1 %environment - PATH=/opt/conda/envs/nf-core-rnaseq-1.1dev/bin:$PATH + PATH=/opt/conda/envs/nf-core-rnaseq-1.1/bin:$PATH export PATH %files diff --git a/environment.yml b/environment.yml index 3f31af172..9a134df9b 100644 --- a/environment.yml +++ b/environment.yml @@ -1,17 +1,17 @@ # You can use this file to create a conda environment for this pipeline: # conda env create -f environment.yml -name: nf-core-rnaseq-1.1dev +name: nf-core-rnaseq-1.1 channels: - bioconda - conda-forge - defaults dependencies: - conda-forge::openjdk=8.0.144 # Needed for FastQC - conda build hangs without this - - fastqc=0.11.7 + - fastqc=0.11.8 - trim-galore=0.5.0 - - star=2.6.1a + - star=2.6.1b - hisat2=2.1.0 - - picard=2.18.11 + - picard=2.18.14 - bioconductor-dupradar=1.8.0 - conda-forge::r-data.table=1.11.4 - conda-forge::r-gplots=3.0.1 @@ -23,5 +23,5 @@ dependencies: - stringtie=1.3.4 - subread=1.6.2 - gffread=0.9.9 - - deeptools=3.1.1 + - deeptools=3.1.3 - multiqc=1.6 diff --git a/nextflow.config b/nextflow.config index 1151b041f..c15a1dd7b 100644 --- a/nextflow.config +++ b/nextflow.config @@ -10,7 +10,7 @@ // Global default params, used in configs params { - container = 'nfcore/rnaseq:latest' // Container slug. Stable releases should specify release tag! + container = 'nfcore/rnaseq:1.1' // Container slug. Stable releases should specify release tag! // Pipeline Options aligner = 'star' @@ -135,7 +135,7 @@ manifest { description = 'Nextflow RNA-Seq analysis pipeline, part of the nf-core community.' homePage = 'https://github.com/nf-core/rnaseq' author = 'Phil Ewels, Rickard Hammarén' - version = '1.1dev' + version = '1.1' mainScript = 'main.nf' nextflowVersion = '>=0.32.0' }