From 78cee81bffa087e848e45f8784c94bb41c6ef9d8 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 21 Oct 2021 16:16:00 +0100 Subject: [PATCH 001/125] changes made by updating all nf-core modules --- modules.json | 16 ++-- .../modules/bowtie2/align/functions.nf | 54 +++++++----- modules/nf-core/modules/bowtie2/align/main.nf | 29 ++++--- .../nf-core/modules/bowtie2/align/meta.yml | 6 +- .../modules/bowtie2/build/functions.nf | 54 +++++++----- modules/nf-core/modules/bowtie2/build/main.nf | 10 ++- .../nf-core/modules/bowtie2/build/meta.yml | 6 +- .../nf-core/modules/cat/fastq/functions.nf | 54 +++++++----- modules/nf-core/modules/cat/fastq/main.nf | 13 ++- modules/nf-core/modules/cat/fastq/meta.yml | 5 ++ .../deeptools/computematrix/functions.nf | 54 +++++++----- .../modules/deeptools/computematrix/main.nf | 10 ++- .../modules/deeptools/computematrix/meta.yml | 6 +- .../deeptools/plotheatmap/functions.nf | 54 +++++++----- .../modules/deeptools/plotheatmap/main.nf | 41 --------- .../modules/deeptools/plotheatmap/meta.yml | 55 ------------ .../picard/markduplicates/functions.nf | 54 +++++++----- .../modules/picard/markduplicates/main.nf | 17 ++-- .../modules/picard/markduplicates/meta.yml | 83 ++++++++++--------- .../nf-core/modules/ucsc/bedclip/functions.nf | 54 +++++++----- modules/nf-core/modules/ucsc/bedclip/main.nf | 10 ++- modules/nf-core/modules/ucsc/bedclip/meta.yml | 6 +- .../ucsc/bedgraphtobigwig/functions.nf | 54 +++++++----- .../modules/ucsc/bedgraphtobigwig/main.nf | 16 ++-- .../modules/ucsc/bedgraphtobigwig/meta.yml | 6 +- modules/nf-core/modules/untar/functions.nf | 54 +++++++----- modules/nf-core/modules/untar/main.nf | 18 ++-- modules/nf-core/modules/untar/meta.yml | 6 +- 28 files changed, 445 insertions(+), 400 deletions(-) delete mode 100644 modules/nf-core/modules/deeptools/plotheatmap/main.nf delete mode 100644 modules/nf-core/modules/deeptools/plotheatmap/meta.yml diff --git a/modules.json b/modules.json index 8c7f2a5b..bf5fa9f8 100644 --- a/modules.json +++ b/modules.json @@ -13,16 +13,16 @@ "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" }, "bowtie2/align": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "bowtie2/build": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "cat/fastq": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "deeptools/computematrix": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "deeptools/plotheatmap": { "git_sha": "c5235a983d454787fa0c3247b02086969217163b" @@ -34,7 +34,7 @@ "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" }, "picard/markduplicates": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/flagstat": { "git_sha": "c5235a983d454787fa0c3247b02086969217163b" @@ -58,13 +58,13 @@ "git_sha": "4d89d6b2f0c478ac7ef80ece5cad44fdf7ffd614" }, "ucsc/bedclip": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "ucsc/bedgraphtobigwig": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "untar": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" } } } diff --git a/modules/nf-core/modules/bowtie2/align/functions.nf b/modules/nf-core/modules/bowtie2/align/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/bowtie2/align/functions.nf +++ b/modules/nf-core/modules/bowtie2/align/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/bowtie2/align/main.nf b/modules/nf-core/modules/bowtie2/align/main.nf index d43d479d..6f923951 100644 --- a/modules/nf-core/modules/bowtie2/align/main.nf +++ b/modules/nf-core/modules/bowtie2/align/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -25,12 +25,10 @@ process BOWTIE2_ALIGN { output: tuple val(meta), path('*.bam'), emit: bam tuple val(meta), path('*.log'), emit: log - path '*.version.txt' , emit: version + path "versions.yml" , emit: versions tuple val(meta), path('*fastq.gz'), optional:true, emit: fastq script: - def split_cpus = Math.floor(task.cpus/2) - def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" if (meta.single_end) { def unaligned = params.save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : '' @@ -39,13 +37,18 @@ process BOWTIE2_ALIGN { bowtie2 \\ -x \$INDEX \\ -U $reads \\ - --threads ${split_cpus} \\ + --threads $task.cpus \\ $unaligned \\ $options.args \\ 2> ${prefix}.bowtie2.log \\ - | samtools view -@ ${split_cpus} $options.args2 -bhS -o ${prefix}.bam - + | samtools view -@ $task.cpus $options.args2 -bhS -o ${prefix}.bam - - echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//' > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS """ } else { def unaligned = params.save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : '' @@ -55,11 +58,11 @@ process BOWTIE2_ALIGN { -x \$INDEX \\ -1 ${reads[0]} \\ -2 ${reads[1]} \\ - --threads ${split_cpus} \\ + --threads $task.cpus \\ $unaligned \\ $options.args \\ 2> ${prefix}.bowtie2.log \\ - | samtools view -@ ${split_cpus} $options.args2 -bhS -o ${prefix}.bam - + | samtools view -@ $task.cpus $options.args2 -bhS -o ${prefix}.bam - if [ -f ${prefix}.unmapped.fastq.1.gz ]; then mv ${prefix}.unmapped.fastq.1.gz ${prefix}.unmapped_1.fastq.gz @@ -67,7 +70,13 @@ process BOWTIE2_ALIGN { if [ -f ${prefix}.unmapped.fastq.2.gz ]; then mv ${prefix}.unmapped.fastq.2.gz ${prefix}.unmapped_2.fastq.gz fi - echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//' > ${software}.version.txt + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS """ } } diff --git a/modules/nf-core/modules/bowtie2/align/meta.yml b/modules/nf-core/modules/bowtie2/align/meta.yml index 9d9cd004..f9d54d87 100644 --- a/modules/nf-core/modules/bowtie2/align/meta.yml +++ b/modules/nf-core/modules/bowtie2/align/meta.yml @@ -33,10 +33,10 @@ output: type: file description: Output BAM file containing read alignments pattern: "*.{bam}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" - fastq: type: file description: Unaligned FastQ files diff --git a/modules/nf-core/modules/bowtie2/build/functions.nf b/modules/nf-core/modules/bowtie2/build/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/bowtie2/build/functions.nf +++ b/modules/nf-core/modules/bowtie2/build/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/bowtie2/build/main.nf b/modules/nf-core/modules/bowtie2/build/main.nf index 442fed18..bc95eea8 100644 --- a/modules/nf-core/modules/bowtie2/build/main.nf +++ b/modules/nf-core/modules/bowtie2/build/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,13 +23,15 @@ process BOWTIE2_BUILD { output: path 'bowtie2' , emit: index - path '*.version.txt', emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) """ mkdir bowtie2 bowtie2-build $options.args --threads $task.cpus $fasta bowtie2/${fasta.baseName} - echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//' > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') + END_VERSIONS """ } diff --git a/modules/nf-core/modules/bowtie2/build/meta.yml b/modules/nf-core/modules/bowtie2/build/meta.yml index 0a4cd3de..4531d079 100644 --- a/modules/nf-core/modules/bowtie2/build/meta.yml +++ b/modules/nf-core/modules/bowtie2/build/meta.yml @@ -23,10 +23,10 @@ output: type: file description: Bowtie2 genome index files pattern: "*.bt2" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@joseespinosa" - "@drpatelh" diff --git a/modules/nf-core/modules/cat/fastq/functions.nf b/modules/nf-core/modules/cat/fastq/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/cat/fastq/functions.nf +++ b/modules/nf-core/modules/cat/fastq/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/cat/fastq/main.nf b/modules/nf-core/modules/cat/fastq/main.nf index 55ccca90..538915a7 100644 --- a/modules/nf-core/modules/cat/fastq/main.nf +++ b/modules/nf-core/modules/cat/fastq/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,6 +23,7 @@ process CAT_FASTQ { output: tuple val(meta), path("*.merged.fastq.gz"), emit: reads + path "versions.yml" , emit: versions script: def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" @@ -31,6 +32,11 @@ process CAT_FASTQ { if (readList.size > 1) { """ cat ${readList.sort().join(' ')} > ${prefix}.merged.fastq.gz + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(cat --version 2>&1) | sed 's/^.*coreutils) //; s/ .*\$//') + END_VERSIONS """ } } else { @@ -41,6 +47,11 @@ process CAT_FASTQ { """ cat ${read1.sort().join(' ')} > ${prefix}_1.merged.fastq.gz cat ${read2.sort().join(' ')} > ${prefix}_2.merged.fastq.gz + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(cat --version 2>&1) | sed 's/^.*coreutils) //; s/ .*\$//') + END_VERSIONS """ } } diff --git a/modules/nf-core/modules/cat/fastq/meta.yml b/modules/nf-core/modules/cat/fastq/meta.yml index e7b8eebe..6c6c397e 100644 --- a/modules/nf-core/modules/cat/fastq/meta.yml +++ b/modules/nf-core/modules/cat/fastq/meta.yml @@ -28,6 +28,11 @@ output: type: file description: Merged fastq file pattern: "*.{merged.fastq.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + authors: - "@joseespinosa" - "@drpatelh" diff --git a/modules/nf-core/modules/deeptools/computematrix/functions.nf b/modules/nf-core/modules/deeptools/computematrix/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/deeptools/computematrix/functions.nf +++ b/modules/nf-core/modules/deeptools/computematrix/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/deeptools/computematrix/main.nf b/modules/nf-core/modules/deeptools/computematrix/main.nf index 739e7cc1..9fffdb8e 100644 --- a/modules/nf-core/modules/deeptools/computematrix/main.nf +++ b/modules/nf-core/modules/deeptools/computematrix/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -25,10 +25,9 @@ process DEEPTOOLS_COMPUTEMATRIX { output: tuple val(meta), path("*.mat.gz") , emit: matrix tuple val(meta), path("*.mat.tab"), emit: table - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ computeMatrix \\ @@ -39,6 +38,9 @@ process DEEPTOOLS_COMPUTEMATRIX { --outFileNameMatrix ${prefix}.computeMatrix.vals.mat.tab \\ --numberOfProcessors $task.cpus - computeMatrix --version | sed -e "s/computeMatrix //g" > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(computeMatrix --version | sed -e "s/computeMatrix //g") + END_VERSIONS """ } diff --git a/modules/nf-core/modules/deeptools/computematrix/meta.yml b/modules/nf-core/modules/deeptools/computematrix/meta.yml index d6fd78c7..584fade1 100644 --- a/modules/nf-core/modules/deeptools/computematrix/meta.yml +++ b/modules/nf-core/modules/deeptools/computematrix/meta.yml @@ -46,10 +46,10 @@ output: description: | tabular file containing the scores of the generated matrix pattern: "*.{computeMatrix.vals.mat.tab}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@jeremy1805" diff --git a/modules/nf-core/modules/deeptools/plotheatmap/functions.nf b/modules/nf-core/modules/deeptools/plotheatmap/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/deeptools/plotheatmap/functions.nf +++ b/modules/nf-core/modules/deeptools/plotheatmap/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/deeptools/plotheatmap/main.nf b/modules/nf-core/modules/deeptools/plotheatmap/main.nf deleted file mode 100644 index 8e25d96f..00000000 --- a/modules/nf-core/modules/deeptools/plotheatmap/main.nf +++ /dev/null @@ -1,41 +0,0 @@ -// Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' - -params.options = [:] -options = initOptions(params.options) - -process DEEPTOOLS_PLOTHEATMAP { - tag "$meta.id" - label 'process_low' - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:meta, publish_by_meta:['id']) } - - conda (params.enable_conda ? 'bioconda::deeptools=3.5.1' : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0" - } else { - container "quay.io/biocontainers/deeptools:3.5.1--py_0" - } - - input: - tuple val(meta), path(matrix) - - output: - tuple val(meta), path("*.pdf"), emit: pdf - tuple val(meta), path("*.tab"), emit: table - path "*.version.txt" , emit: version - - script: - def software = getSoftwareName(task.process) - def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" - """ - plotHeatmap \\ - $options.args \\ - --matrixFile $matrix \\ - --outFileName ${prefix}.plotHeatmap.pdf \\ - --outFileNameMatrix ${prefix}.plotHeatmap.mat.tab - - plotHeatmap --version | sed -e "s/plotHeatmap //g" > ${software}.version.txt - """ -} diff --git a/modules/nf-core/modules/deeptools/plotheatmap/meta.yml b/modules/nf-core/modules/deeptools/plotheatmap/meta.yml deleted file mode 100644 index 14311332..00000000 --- a/modules/nf-core/modules/deeptools/plotheatmap/meta.yml +++ /dev/null @@ -1,55 +0,0 @@ -name: deeptools_plotheatmap -description: plots values produced by deeptools_computematrix as a heatmap -keywords: - - plot - - heatmap - - scores - - matrix -tools: - - deeptools: - description: A set of user-friendly tools for normalization and visualization of deep-sequencing data - homepage: - documentation: https://deeptools.readthedocs.io/en/develop/index.html - tool_dev_url: https://github.com/deeptools/deepTools - doi: "10.1093/nar/gku365" - licence: ['GPL v3'] - -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test' ] - - matrix: - type: file - description: | - gzipped matrix file produced by deeptools_ - computematrix deeptools utility - pattern: "*.{mat.gz}" - -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - pdf: - type: file - description: | - Output figure containing resulting plot - pattern: "*.{plotHeatmap.pdf}" - - matrix: - type: file - description: | - File containing the matrix of values - used to generate the heatmap - pattern: "*.{plotHeatmap.mat.tab}" - - version: - type: file - description: File containing software version - pattern: "*.{version.txt}" - -authors: - - "@emiller88" - - "@drpatelh" - - "@joseespinosa" diff --git a/modules/nf-core/modules/picard/markduplicates/functions.nf b/modules/nf-core/modules/picard/markduplicates/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/picard/markduplicates/functions.nf +++ b/modules/nf-core/modules/picard/markduplicates/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/picard/markduplicates/main.nf b/modules/nf-core/modules/picard/markduplicates/main.nf index d20014bf..37b825d7 100644 --- a/modules/nf-core/modules/picard/markduplicates/main.nf +++ b/modules/nf-core/modules/picard/markduplicates/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,11 +23,11 @@ process PICARD_MARKDUPLICATES { output: tuple val(meta), path("*.bam") , emit: bam + tuple val(meta), path("*.bai") , optional:true, emit: bai tuple val(meta), path("*.metrics.txt"), emit: metrics - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" def avail_mem = 3 if (!task.memory) { @@ -40,10 +40,13 @@ process PICARD_MARKDUPLICATES { -Xmx${avail_mem}g \\ MarkDuplicates \\ $options.args \\ - INPUT=$bam \\ - OUTPUT=${prefix}.bam \\ - METRICS_FILE=${prefix}.MarkDuplicates.metrics.txt + -I $bam \\ + -O ${prefix}.bam \\ + -M ${prefix}.MarkDuplicates.metrics.txt - echo \$(picard MarkDuplicates --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d: > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(picard MarkDuplicates --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS """ } diff --git a/modules/nf-core/modules/picard/markduplicates/meta.yml b/modules/nf-core/modules/picard/markduplicates/meta.yml index 6420ce9a..13f2d350 100644 --- a/modules/nf-core/modules/picard/markduplicates/meta.yml +++ b/modules/nf-core/modules/picard/markduplicates/meta.yml @@ -1,46 +1,51 @@ name: picard_markduplicates description: Locate and tag duplicate reads in a BAM file keywords: - - markduplicates - - pcr - - duplicates - - bam - - sam - - cram + - markduplicates + - pcr + - duplicates + - bam + - sam + - cram tools: - - picard: - description: | - A set of command line tools (in Java) for manipulating high-throughput sequencing (HTS) - data and formats such as SAM/BAM/CRAM and VCF. - homepage: https://broadinstitute.github.io/picard/ - documentation: https://broadinstitute.github.io/picard/ + - picard: + description: | + A set of command line tools (in Java) for manipulating high-throughput sequencing (HTS) + data and formats such as SAM/BAM/CRAM and VCF. + homepage: https://broadinstitute.github.io/picard/ + documentation: https://broadinstitute.github.io/picard/ input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM file - pattern: "*.{bam}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file + pattern: "*.{bam}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM file with duplicate reads marked/removed - pattern: "*.{bam}" - - metrics: - type: file - description: Duplicate metrics file generated by picard - pattern: "*.{metrics.txt}" - - version: - type: file - description: File containing software version - pattern: "*.{version.txt}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file with duplicate reads marked/removed + pattern: "*.{bam}" + - bai: + type: file + description: An optional BAM index file. If desired, --CREATE_INDEX must be passed as a flag + pattern: "*.{bai}" + - metrics: + type: file + description: Duplicate metrics file generated by picard + pattern: "*.{metrics.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" + - "@drpatelh" + - "@projectoriented" diff --git a/modules/nf-core/modules/ucsc/bedclip/functions.nf b/modules/nf-core/modules/ucsc/bedclip/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/ucsc/bedclip/functions.nf +++ b/modules/nf-core/modules/ucsc/bedclip/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/ucsc/bedclip/main.nf b/modules/nf-core/modules/ucsc/bedclip/main.nf index d1a47554..5fbc2b3b 100644 --- a/modules/nf-core/modules/ucsc/bedclip/main.nf +++ b/modules/nf-core/modules/ucsc/bedclip/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -26,10 +26,9 @@ process UCSC_BEDCLIP { output: tuple val(meta), path("*.bedGraph"), emit: bedgraph - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ bedClip \\ @@ -37,6 +36,9 @@ process UCSC_BEDCLIP { $sizes \\ ${prefix}.bedGraph - echo $VERSION > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo $VERSION) + END_VERSIONS """ } diff --git a/modules/nf-core/modules/ucsc/bedclip/meta.yml b/modules/nf-core/modules/ucsc/bedclip/meta.yml index f20b4617..c7372925 100644 --- a/modules/nf-core/modules/ucsc/bedclip/meta.yml +++ b/modules/nf-core/modules/ucsc/bedclip/meta.yml @@ -28,10 +28,10 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" - bedgraph: type: file description: bedGraph file diff --git a/modules/nf-core/modules/ucsc/bedgraphtobigwig/functions.nf b/modules/nf-core/modules/ucsc/bedgraphtobigwig/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/ucsc/bedgraphtobigwig/functions.nf +++ b/modules/nf-core/modules/ucsc/bedgraphtobigwig/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/ucsc/bedgraphtobigwig/main.nf b/modules/nf-core/modules/ucsc/bedgraphtobigwig/main.nf index e5fe3b7f..f55cdb07 100644 --- a/modules/nf-core/modules/ucsc/bedgraphtobigwig/main.nf +++ b/modules/nf-core/modules/ucsc/bedgraphtobigwig/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -26,13 +26,19 @@ process UCSC_BEDGRAPHTOBIGWIG { output: tuple val(meta), path("*.bigWig"), emit: bigwig - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ - bedGraphToBigWig $bedgraph $sizes ${prefix}.bigWig - echo $VERSION > ${software}.version.txt + bedGraphToBigWig \\ + $bedgraph \\ + $sizes \\ + ${prefix}.bigWig + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo $VERSION) + END_VERSIONS """ } diff --git a/modules/nf-core/modules/ucsc/bedgraphtobigwig/meta.yml b/modules/nf-core/modules/ucsc/bedgraphtobigwig/meta.yml index 31365f48..1be1a3b7 100644 --- a/modules/nf-core/modules/ucsc/bedgraphtobigwig/meta.yml +++ b/modules/nf-core/modules/ucsc/bedgraphtobigwig/meta.yml @@ -33,10 +33,10 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" - bigwig: type: file description: bigWig file diff --git a/modules/nf-core/modules/untar/functions.nf b/modules/nf-core/modules/untar/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/untar/functions.nf +++ b/modules/nf-core/modules/untar/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/untar/main.nf b/modules/nf-core/modules/untar/main.nf index fc6d7ec5..efb9d825 100644 --- a/modules/nf-core/modules/untar/main.nf +++ b/modules/nf-core/modules/untar/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -22,14 +22,20 @@ process UNTAR { path archive output: - path "$untar" , emit: untar - path "*.version.txt", emit: version + path "$untar" , emit: untar + path "versions.yml", emit: versions script: - def software = getSoftwareName(task.process) untar = archive.toString() - '.tar.gz' """ - tar -xzvf $options.args $archive - echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//' > ${software}.version.txt + tar \\ + -xzvf \\ + $options.args \\ + $archive + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') + END_VERSIONS """ } diff --git a/modules/nf-core/modules/untar/meta.yml b/modules/nf-core/modules/untar/meta.yml index af4674f0..2b586c92 100644 --- a/modules/nf-core/modules/untar/meta.yml +++ b/modules/nf-core/modules/untar/meta.yml @@ -18,10 +18,10 @@ output: type: file description: pattern: "*.*" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@joseespinosa" - "@drpatelh" From f86e283acacabab1681e6d03874d007c63daf016 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 21 Oct 2021 16:17:48 +0100 Subject: [PATCH 002/125] changed versioning of calculate_frip module --- modules/local/modules/calculate_frip/main.nf | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/local/modules/calculate_frip/main.nf b/modules/local/modules/calculate_frip/main.nf index 65045f27..4a4483af 100644 --- a/modules/local/modules/calculate_frip/main.nf +++ b/modules/local/modules/calculate_frip/main.nf @@ -18,8 +18,8 @@ process CALCULATE_FRIP { output: tuple val(meta), path('frips.csv'), emit: frips - path '*.version.txt' , emit: version - + path "versions.yml" , emit: versions + script: """ frip.py \\ @@ -28,6 +28,9 @@ process CALCULATE_FRIP { --threads ${task.cpus} \\ --outpath . - python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\" > python.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + END_VERSIONS """ -} +} \ No newline at end of file From 3e45a8ada631c2f7a8cbfe8a3eb8b8051a788545 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 21 Oct 2021 16:23:42 +0100 Subject: [PATCH 003/125] changed versioning of calculate_peak_reprod module --- modules/local/modules/calculate_peak_reprod/main.nf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/local/modules/calculate_peak_reprod/main.nf b/modules/local/modules/calculate_peak_reprod/main.nf index 43807528..ff886c5e 100644 --- a/modules/local/modules/calculate_peak_reprod/main.nf +++ b/modules/local/modules/calculate_peak_reprod/main.nf @@ -18,7 +18,7 @@ process CALCULATE_PEAK_REPROD { output: tuple val(meta), path('peak_repro.csv'), emit: csv - path '*.version.txt' , emit: version + path "versions.yml" , emit: versions script: """ @@ -27,6 +27,9 @@ process CALCULATE_PEAK_REPROD { --threads ${task.cpus} \\ --outpath . - python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\" > python.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + END_VERSIONS """ } From fd347ac69cd6c3d6e44b89f82e5ede67cdb3ddb1 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 21 Oct 2021 16:31:04 +0100 Subject: [PATCH 004/125] updated all nf-core modules --- modules.json | 23 +++---- .../modules/bedtools/bamtobed/functions.nf | 54 +++++++++------ .../nf-core/modules/bedtools/bamtobed/main.nf | 10 +-- .../modules/bedtools/bamtobed/meta.yml | 6 +- .../modules/bedtools/merge/functions.nf | 54 +++++++++------ .../nf-core/modules/bedtools/merge/main.nf | 10 +-- .../nf-core/modules/bedtools/merge/meta.yml | 6 +- .../modules/deeptools/plotheatmap/main.nf | 43 ++++++++++++ .../modules/deeptools/plotheatmap/meta.yml | 55 +++++++++++++++ modules/nf-core/modules/fastqc/functions.nf | 54 +++++++++------ modules/nf-core/modules/fastqc/main.nf | 19 ++++-- modules/nf-core/modules/fastqc/meta.yml | 6 +- modules/nf-core/modules/gunzip/functions.nf | 68 ------------------- modules/nf-core/modules/gunzip/main.nf | 35 ---------- modules/nf-core/modules/gunzip/meta.yml | 27 -------- .../modules/samtools/flagstat/functions.nf | 54 +++++++++------ .../nf-core/modules/samtools/flagstat/main.nf | 10 +-- .../modules/samtools/flagstat/meta.yml | 6 +- .../modules/samtools/idxstats/functions.nf | 54 +++++++++------ .../nf-core/modules/samtools/idxstats/main.nf | 10 +-- .../modules/samtools/idxstats/meta.yml | 6 +- .../modules/samtools/index/functions.nf | 54 +++++++++------ .../nf-core/modules/samtools/index/main.nf | 10 +-- .../nf-core/modules/samtools/index/meta.yml | 6 +- .../modules/samtools/sort/functions.nf | 54 +++++++++------ modules/nf-core/modules/samtools/sort/main.nf | 10 +-- .../nf-core/modules/samtools/sort/meta.yml | 6 +- .../modules/samtools/stats/functions.nf | 54 +++++++++------ .../nf-core/modules/samtools/stats/main.nf | 10 +-- .../nf-core/modules/samtools/stats/meta.yml | 6 +- .../modules/samtools/view/functions.nf | 54 +++++++++------ modules/nf-core/modules/samtools/view/main.nf | 10 +-- .../nf-core/modules/samtools/view/meta.yml | 6 +- 33 files changed, 484 insertions(+), 406 deletions(-) create mode 100644 modules/nf-core/modules/deeptools/plotheatmap/main.nf create mode 100644 modules/nf-core/modules/deeptools/plotheatmap/meta.yml delete mode 100644 modules/nf-core/modules/gunzip/functions.nf delete mode 100644 modules/nf-core/modules/gunzip/main.nf delete mode 100644 modules/nf-core/modules/gunzip/meta.yml diff --git a/modules.json b/modules.json index bf5fa9f8..31762875 100644 --- a/modules.json +++ b/modules.json @@ -4,13 +4,13 @@ "repos": { "nf-core/modules": { "bedtools/bamtobed": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "bedtools/intersect": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "bedtools/merge": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "bowtie2/align": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" @@ -25,34 +25,31 @@ "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "deeptools/plotheatmap": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "fastqc": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" - }, - "gunzip": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "picard/markduplicates": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/flagstat": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/idxstats": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/index": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/sort": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/stats": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/view": { - "git_sha": "c5235a983d454787fa0c3247b02086969217163b" + "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "seacr/callpeak": { "git_sha": "4d89d6b2f0c478ac7ef80ece5cad44fdf7ffd614" diff --git a/modules/nf-core/modules/bedtools/bamtobed/functions.nf b/modules/nf-core/modules/bedtools/bamtobed/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/bedtools/bamtobed/functions.nf +++ b/modules/nf-core/modules/bedtools/bamtobed/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/bedtools/bamtobed/main.nf b/modules/nf-core/modules/bedtools/bamtobed/main.nf index 22f5713c..71c439d3 100644 --- a/modules/nf-core/modules/bedtools/bamtobed/main.nf +++ b/modules/nf-core/modules/bedtools/bamtobed/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,10 +23,9 @@ process BEDTOOLS_BAMTOBED { output: tuple val(meta), path("*.bed"), emit: bed - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ bedtools \\ @@ -35,6 +34,9 @@ process BEDTOOLS_BAMTOBED { -i $bam \\ | bedtools sort > ${prefix}.bed - bedtools --version | sed -e "s/bedtools v//g" > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(bedtools --version | sed -e "s/bedtools v//g") + END_VERSIONS """ } diff --git a/modules/nf-core/modules/bedtools/bamtobed/meta.yml b/modules/nf-core/modules/bedtools/bamtobed/meta.yml index 3594d2d4..0eaf3e2a 100644 --- a/modules/nf-core/modules/bedtools/bamtobed/meta.yml +++ b/modules/nf-core/modules/bedtools/bamtobed/meta.yml @@ -28,10 +28,10 @@ output: type: file description: Bed file containing genomic intervals. pattern: "*.{bed}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@yuukiiwa" - "@drpatelh" diff --git a/modules/nf-core/modules/bedtools/merge/functions.nf b/modules/nf-core/modules/bedtools/merge/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/bedtools/merge/functions.nf +++ b/modules/nf-core/modules/bedtools/merge/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/bedtools/merge/main.nf b/modules/nf-core/modules/bedtools/merge/main.nf index 4ac7d1a5..92a59f9e 100644 --- a/modules/nf-core/modules/bedtools/merge/main.nf +++ b/modules/nf-core/modules/bedtools/merge/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,10 +23,9 @@ process BEDTOOLS_MERGE { output: tuple val(meta), path('*.bed'), emit: bed - path '*.version.txt' , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ bedtools \\ @@ -35,6 +34,9 @@ process BEDTOOLS_MERGE { $options.args \\ > ${prefix}.bed - bedtools --version | sed -e "s/bedtools v//g" > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(bedtools --version | sed -e "s/bedtools v//g") + END_VERSIONS """ } diff --git a/modules/nf-core/modules/bedtools/merge/meta.yml b/modules/nf-core/modules/bedtools/merge/meta.yml index f75bea67..39e79cbd 100644 --- a/modules/nf-core/modules/bedtools/merge/meta.yml +++ b/modules/nf-core/modules/bedtools/merge/meta.yml @@ -28,10 +28,10 @@ output: type: file description: Overlapped bed file with combined features pattern: "*.{bed}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@Emiller88" - "@sruthipsuresh" diff --git a/modules/nf-core/modules/deeptools/plotheatmap/main.nf b/modules/nf-core/modules/deeptools/plotheatmap/main.nf new file mode 100644 index 00000000..19c243df --- /dev/null +++ b/modules/nf-core/modules/deeptools/plotheatmap/main.nf @@ -0,0 +1,43 @@ +// Import generic module functions +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' + +params.options = [:] +options = initOptions(params.options) + +process DEEPTOOLS_PLOTHEATMAP { + tag "$meta.id" + label 'process_low' + publishDir "${params.outdir}", + mode: params.publish_dir_mode, + saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:meta, publish_by_meta:['id']) } + + conda (params.enable_conda ? 'bioconda::deeptools=3.5.1' : null) + if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { + container "https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0" + } else { + container "quay.io/biocontainers/deeptools:3.5.1--py_0" + } + + input: + tuple val(meta), path(matrix) + + output: + tuple val(meta), path("*.pdf"), emit: pdf + tuple val(meta), path("*.tab"), emit: table + path "versions.yml" , emit: versions + + script: + def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" + """ + plotHeatmap \\ + $options.args \\ + --matrixFile $matrix \\ + --outFileName ${prefix}.plotHeatmap.pdf \\ + --outFileNameMatrix ${prefix}.plotHeatmap.mat.tab + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(plotHeatmap --version | sed -e "s/plotHeatmap //g") + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/deeptools/plotheatmap/meta.yml b/modules/nf-core/modules/deeptools/plotheatmap/meta.yml new file mode 100644 index 00000000..34f2865b --- /dev/null +++ b/modules/nf-core/modules/deeptools/plotheatmap/meta.yml @@ -0,0 +1,55 @@ +name: deeptools_plotheatmap +description: plots values produced by deeptools_computematrix as a heatmap +keywords: + - plot + - heatmap + - scores + - matrix +tools: + - deeptools: + description: A set of user-friendly tools for normalization and visualization of deep-sequencing data + homepage: + documentation: https://deeptools.readthedocs.io/en/develop/index.html + tool_dev_url: https://github.com/deeptools/deepTools + doi: "10.1093/nar/gku365" + licence: ['GPL v3'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - matrix: + type: file + description: | + gzipped matrix file produced by deeptools_ + computematrix deeptools utility + pattern: "*.{mat.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - pdf: + type: file + description: | + Output figure containing resulting plot + pattern: "*.{plotHeatmap.pdf}" + - matrix: + type: file + description: | + File containing the matrix of values + used to generate the heatmap + pattern: "*.{plotHeatmap.mat.tab}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@emiller88" + - "@drpatelh" + - "@joseespinosa" diff --git a/modules/nf-core/modules/fastqc/functions.nf b/modules/nf-core/modules/fastqc/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/fastqc/functions.nf +++ b/modules/nf-core/modules/fastqc/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/fastqc/main.nf b/modules/nf-core/modules/fastqc/main.nf index 39c327b2..9f6cfc55 100644 --- a/modules/nf-core/modules/fastqc/main.nf +++ b/modules/nf-core/modules/fastqc/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -24,24 +24,31 @@ process FASTQC { output: tuple val(meta), path("*.html"), emit: html tuple val(meta), path("*.zip") , emit: zip - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: // Add soft-links to original FastQs for consistent naming in pipeline - def software = getSoftwareName(task.process) - def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" + def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" if (meta.single_end) { """ [ ! -f ${prefix}.fastq.gz ] && ln -s $reads ${prefix}.fastq.gz fastqc $options.args --threads $task.cpus ${prefix}.fastq.gz - fastqc --version | sed -e "s/FastQC v//g" > ${software}.version.txt + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS """ } else { """ [ ! -f ${prefix}_1.fastq.gz ] && ln -s ${reads[0]} ${prefix}_1.fastq.gz [ ! -f ${prefix}_2.fastq.gz ] && ln -s ${reads[1]} ${prefix}_2.fastq.gz fastqc $options.args --threads $task.cpus ${prefix}_1.fastq.gz ${prefix}_2.fastq.gz - fastqc --version | sed -e "s/FastQC v//g" > ${software}.version.txt + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS """ } } diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/modules/fastqc/meta.yml index 8eb9953d..0ae08aee 100644 --- a/modules/nf-core/modules/fastqc/meta.yml +++ b/modules/nf-core/modules/fastqc/meta.yml @@ -40,10 +40,10 @@ output: type: file description: FastQC report archive pattern: "*_{fastqc.zip}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" - "@grst" diff --git a/modules/nf-core/modules/gunzip/functions.nf b/modules/nf-core/modules/gunzip/functions.nf deleted file mode 100644 index da9da093..00000000 --- a/modules/nf-core/modules/gunzip/functions.nf +++ /dev/null @@ -1,68 +0,0 @@ -// -// Utility functions used in nf-core DSL2 module files -// - -// -// Extract name of software tool from process name using $task.process -// -def getSoftwareName(task_process) { - return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() -} - -// -// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules -// -def initOptions(Map args) { - def Map options = [:] - options.args = args.args ?: '' - options.args2 = args.args2 ?: '' - options.args3 = args.args3 ?: '' - options.publish_by_meta = args.publish_by_meta ?: [] - options.publish_dir = args.publish_dir ?: '' - options.publish_files = args.publish_files - options.suffix = args.suffix ?: '' - return options -} - -// -// Tidy up and join elements of a list to return a path string -// -def getPathFromList(path_list) { - def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries - paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes - return paths.join('/') -} - -// -// Function to save/publish module results -// -def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) - } - } - } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } - } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" - } - } -} diff --git a/modules/nf-core/modules/gunzip/main.nf b/modules/nf-core/modules/gunzip/main.nf deleted file mode 100644 index 29248796..00000000 --- a/modules/nf-core/modules/gunzip/main.nf +++ /dev/null @@ -1,35 +0,0 @@ -// Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' - -params.options = [:] -options = initOptions(params.options) - -process GUNZIP { - tag "$archive" - label 'process_low' - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:[:], publish_by_meta:[]) } - - conda (params.enable_conda ? "conda-forge::sed=4.7" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv1/biocontainers_v1.2.0_cv1.img" - } else { - container "biocontainers/biocontainers:v1.2.0_cv1" - } - - input: - path archive - - output: - path "$gunzip", emit: gunzip - path "*.version.txt", emit: version - - script: - def software = getSoftwareName(task.process) - gunzip = archive.toString() - '.gz' - """ - gunzip -f $options.args $archive - echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//' > ${software}.version.txt - """ -} diff --git a/modules/nf-core/modules/gunzip/meta.yml b/modules/nf-core/modules/gunzip/meta.yml deleted file mode 100644 index 922e74e6..00000000 --- a/modules/nf-core/modules/gunzip/meta.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: gunzip -description: Compresses and decompresses files. -keywords: - - gunzip - - compression -tools: - - gunzip: - description: | - gzip is a file format and a software application used for file compression and decompression. - documentation: https://www.gnu.org/software/gzip/manual/gzip.html -input: - - archive: - type: file - description: File to be compressed/uncompressed - pattern: "*.*" -output: - - gunzip: - type: file - description: Compressed/uncompressed file - pattern: "*.*" - - version: - type: file - description: File containing software version - pattern: "*.{version.txt}" -authors: - - "@joseespinosa" - - "@drpatelh" diff --git a/modules/nf-core/modules/samtools/flagstat/functions.nf b/modules/nf-core/modules/samtools/flagstat/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/samtools/flagstat/functions.nf +++ b/modules/nf-core/modules/samtools/flagstat/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/samtools/flagstat/main.nf b/modules/nf-core/modules/samtools/flagstat/main.nf index d4852c66..f9115c6b 100644 --- a/modules/nf-core/modules/samtools/flagstat/main.nf +++ b/modules/nf-core/modules/samtools/flagstat/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,12 +23,14 @@ process SAMTOOLS_FLAGSTAT { output: tuple val(meta), path("*.flagstat"), emit: flagstat - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) """ samtools flagstat $bam > ${bam}.flagstat - echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS """ } diff --git a/modules/nf-core/modules/samtools/flagstat/meta.yml b/modules/nf-core/modules/samtools/flagstat/meta.yml index 8414bf54..d408cb76 100644 --- a/modules/nf-core/modules/samtools/flagstat/meta.yml +++ b/modules/nf-core/modules/samtools/flagstat/meta.yml @@ -40,9 +40,9 @@ output: type: file description: File containing samtools flagstat output pattern: "*.{flagstat}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" diff --git a/modules/nf-core/modules/samtools/idxstats/functions.nf b/modules/nf-core/modules/samtools/idxstats/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/samtools/idxstats/functions.nf +++ b/modules/nf-core/modules/samtools/idxstats/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/samtools/idxstats/main.nf b/modules/nf-core/modules/samtools/idxstats/main.nf index 14a07cfb..b005088a 100644 --- a/modules/nf-core/modules/samtools/idxstats/main.nf +++ b/modules/nf-core/modules/samtools/idxstats/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,12 +23,14 @@ process SAMTOOLS_IDXSTATS { output: tuple val(meta), path("*.idxstats"), emit: idxstats - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) """ samtools idxstats $bam > ${bam}.idxstats - echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS """ } diff --git a/modules/nf-core/modules/samtools/idxstats/meta.yml b/modules/nf-core/modules/samtools/idxstats/meta.yml index 530d0772..f4cb613f 100644 --- a/modules/nf-core/modules/samtools/idxstats/meta.yml +++ b/modules/nf-core/modules/samtools/idxstats/meta.yml @@ -41,9 +41,9 @@ output: type: file description: File containing samtools idxstats output pattern: "*.{idxstats}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" diff --git a/modules/nf-core/modules/samtools/index/functions.nf b/modules/nf-core/modules/samtools/index/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/samtools/index/functions.nf +++ b/modules/nf-core/modules/samtools/index/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/samtools/index/main.nf b/modules/nf-core/modules/samtools/index/main.nf index e1966fb3..febbc11c 100644 --- a/modules/nf-core/modules/samtools/index/main.nf +++ b/modules/nf-core/modules/samtools/index/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -24,12 +24,14 @@ process SAMTOOLS_INDEX { output: tuple val(meta), path("*.bai"), optional:true, emit: bai tuple val(meta), path("*.csi"), optional:true, emit: csi - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) """ samtools index $options.args $bam - echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS """ } diff --git a/modules/nf-core/modules/samtools/index/meta.yml b/modules/nf-core/modules/samtools/index/meta.yml index 5d076e3b..5f4dd3fb 100644 --- a/modules/nf-core/modules/samtools/index/meta.yml +++ b/modules/nf-core/modules/samtools/index/meta.yml @@ -38,10 +38,10 @@ output: type: file description: CSI index file pattern: "*.{csi}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" - "@ewels" diff --git a/modules/nf-core/modules/samtools/sort/functions.nf b/modules/nf-core/modules/samtools/sort/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/samtools/sort/functions.nf +++ b/modules/nf-core/modules/samtools/sort/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/samtools/sort/main.nf b/modules/nf-core/modules/samtools/sort/main.nf index 0a6b7048..b30f6f45 100644 --- a/modules/nf-core/modules/samtools/sort/main.nf +++ b/modules/nf-core/modules/samtools/sort/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,13 +23,15 @@ process SAMTOOLS_SORT { output: tuple val(meta), path("*.bam"), emit: bam - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ samtools sort $options.args -@ $task.cpus -o ${prefix}.bam -T $prefix $bam - echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS """ } diff --git a/modules/nf-core/modules/samtools/sort/meta.yml b/modules/nf-core/modules/samtools/sort/meta.yml index 704e8c1f..cd47c86d 100644 --- a/modules/nf-core/modules/samtools/sort/meta.yml +++ b/modules/nf-core/modules/samtools/sort/meta.yml @@ -34,10 +34,10 @@ output: type: file description: Sorted BAM/CRAM/SAM file pattern: "*.{bam,cram,sam}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" - "@ewels" diff --git a/modules/nf-core/modules/samtools/stats/functions.nf b/modules/nf-core/modules/samtools/stats/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/samtools/stats/functions.nf +++ b/modules/nf-core/modules/samtools/stats/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/samtools/stats/main.nf b/modules/nf-core/modules/samtools/stats/main.nf index 8c72d725..6218dd2d 100644 --- a/modules/nf-core/modules/samtools/stats/main.nf +++ b/modules/nf-core/modules/samtools/stats/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,12 +23,14 @@ process SAMTOOLS_STATS { output: tuple val(meta), path("*.stats"), emit: stats - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) """ samtools stats $bam > ${bam}.stats - echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS """ } diff --git a/modules/nf-core/modules/samtools/stats/meta.yml b/modules/nf-core/modules/samtools/stats/meta.yml index b549ff5c..d75d73e2 100644 --- a/modules/nf-core/modules/samtools/stats/meta.yml +++ b/modules/nf-core/modules/samtools/stats/meta.yml @@ -39,9 +39,9 @@ output: type: file description: File containing samtools stats output pattern: "*.{stats}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" diff --git a/modules/nf-core/modules/samtools/view/functions.nf b/modules/nf-core/modules/samtools/view/functions.nf index da9da093..85628ee0 100644 --- a/modules/nf-core/modules/samtools/view/functions.nf +++ b/modules/nf-core/modules/samtools/view/functions.nf @@ -9,6 +9,13 @@ def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + // // Function to initialise default values and to generate a Groovy Map of available options for nf-core modules // @@ -37,32 +44,35 @@ def getPathFromList(path_list) { // Function to save/publish module results // def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" } } diff --git a/modules/nf-core/modules/samtools/view/main.nf b/modules/nf-core/modules/samtools/view/main.nf index 2ca57032..ec1663e0 100644 --- a/modules/nf-core/modules/samtools/view/main.nf +++ b/modules/nf-core/modules/samtools/view/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) @@ -23,13 +23,15 @@ process SAMTOOLS_VIEW { output: tuple val(meta), path("*.bam"), emit: bam - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ samtools view $options.args $bam > ${prefix}.bam - echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS """ } diff --git a/modules/nf-core/modules/samtools/view/meta.yml b/modules/nf-core/modules/samtools/view/meta.yml index c35a8b03..2e66e7cd 100644 --- a/modules/nf-core/modules/samtools/view/meta.yml +++ b/modules/nf-core/modules/samtools/view/meta.yml @@ -34,10 +34,10 @@ output: type: file description: filtered/converted BAM/CRAM/SAM file pattern: "*.{bam,cram,sam}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" - "@joseespinosa" From e9996f31289821068d2de0e7797225938a49bc47 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 21 Oct 2021 16:39:52 +0100 Subject: [PATCH 005/125] Included functions, main and meta file for gunzip module --- modules/nf-core/modules/gunzip/functions.nf | 78 +++++++++++++++++++++ modules/nf-core/modules/gunzip/main.nf | 40 +++++++++++ modules/nf-core/modules/gunzip/meta.yml | 27 +++++++ 3 files changed, 145 insertions(+) create mode 100644 modules/nf-core/modules/gunzip/functions.nf create mode 100644 modules/nf-core/modules/gunzip/main.nf create mode 100644 modules/nf-core/modules/gunzip/meta.yml diff --git a/modules/nf-core/modules/gunzip/functions.nf b/modules/nf-core/modules/gunzip/functions.nf new file mode 100644 index 00000000..90478063 --- /dev/null +++ b/modules/nf-core/modules/gunzip/functions.nf @@ -0,0 +1,78 @@ +// +// Utility functions used in nf-core DSL2 module files +// + +// +// Extract name of software tool from process name using $task.process +// +def getSoftwareName(task_process) { + return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() +} + +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + +// +// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules +// +def initOptions(Map args) { + def Map options = [:] + options.args = args.args ?: '' + options.args2 = args.args2 ?: '' + options.args3 = args.args3 ?: '' + options.publish_by_meta = args.publish_by_meta ?: [] + options.publish_dir = args.publish_dir ?: '' + options.publish_files = args.publish_files + options.suffix = args.suffix ?: '' + return options +} + +// +// Tidy up and join elements of a list to return a path string +// +def getPathFromList(path_list) { + def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries + paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes + return paths.join('/') +} + +// +// Function to save/publish module results +// +def saveFiles(Map args) { + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] + } + path = path instanceof String ? path : '' + path_list.add(path) + } + } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" + } + } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" + } +} \ No newline at end of file diff --git a/modules/nf-core/modules/gunzip/main.nf b/modules/nf-core/modules/gunzip/main.nf new file mode 100644 index 00000000..84df1aff --- /dev/null +++ b/modules/nf-core/modules/gunzip/main.nf @@ -0,0 +1,40 @@ +// Import generic module functions +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' + +params.options = [:] +options = initOptions(params.options) + +process GUNZIP { + tag "$archive" + label 'process_low' + publishDir "${params.outdir}", + mode: params.publish_dir_mode, + saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:[:], publish_by_meta:[]) } + + conda (params.enable_conda ? "conda-forge::sed=4.7" : null) + if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { + container "https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv1/biocontainers_v1.2.0_cv1.img" + } else { + container "biocontainers/biocontainers:v1.2.0_cv1" + } + + input: + path archive + + output: + path "$gunzip", emit: gunzip + path "versions.yml" , emit: versions + + script: + gunzip = archive.toString() - '.gz' + """ + gunzip \\ + -f \\ + $options.args \\ + $archive + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//') + END_VERSIONS + """ +} \ No newline at end of file diff --git a/modules/nf-core/modules/gunzip/meta.yml b/modules/nf-core/modules/gunzip/meta.yml new file mode 100644 index 00000000..06f623b1 --- /dev/null +++ b/modules/nf-core/modules/gunzip/meta.yml @@ -0,0 +1,27 @@ +name: gunzip +description: Compresses and decompresses files. +keywords: + - gunzip + - compression +tools: + - gunzip: + description: | + gzip is a file format and a software application used for file compression and decompression. + documentation: https://www.gnu.org/software/gzip/manual/gzip.html +input: + - archive: + type: file + description: File to be compressed/uncompressed + pattern: "*.*" +output: + - gunzip: + type: file + description: Compressed/uncompressed file + pattern: "*.*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@joseespinosa" + - "@drpatelh" \ No newline at end of file From b973d10de9a00fc83f34e318eb833a15347fd742 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 21 Oct 2021 16:50:53 +0100 Subject: [PATCH 006/125] changed versioning of samtools_customview module --- modules/local/modules/samtools/custom_view/main.nf | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/local/modules/samtools/custom_view/main.nf b/modules/local/modules/samtools/custom_view/main.nf index 1bfd08cf..ec2463c0 100644 --- a/modules/local/modules/samtools/custom_view/main.nf +++ b/modules/local/modules/samtools/custom_view/main.nf @@ -23,13 +23,17 @@ process SAMTOOLS_CUSTOMVIEW { output: tuple val(meta), path("*.txt") , emit: tsv - path "*.version.log" , emit: version + path "versions.yml" , emit: versions script: def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ samtools view $options.args -@ $task.cpus $bam | $options.args2 > ${prefix}.txt - echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' > ${software}.version.log + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(samtools --version 2>&1 | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS """ } From adc2d8c9c5f6de3c65cbb3970ac421a88db1f813 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 21 Oct 2021 16:54:11 +0100 Subject: [PATCH 007/125] cleaned custom view spacing --- modules/local/modules/samtools/custom_view/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/modules/samtools/custom_view/main.nf b/modules/local/modules/samtools/custom_view/main.nf index ec2463c0..0581c2c2 100644 --- a/modules/local/modules/samtools/custom_view/main.nf +++ b/modules/local/modules/samtools/custom_view/main.nf @@ -23,7 +23,7 @@ process SAMTOOLS_CUSTOMVIEW { output: tuple val(meta), path("*.txt") , emit: tsv - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions script: def software = getSoftwareName(task.process) From 19c3cbf14bba992cf1a2a2b4abbd5cc14d2b26de Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 21 Oct 2021 16:58:03 +0100 Subject: [PATCH 008/125] changed versioning of trimgalore module --- modules/local/modules/trimgalore/main.nf | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/local/modules/trimgalore/main.nf b/modules/local/modules/trimgalore/main.nf index 5d0a27d1..ea5cde15 100644 --- a/modules/local/modules/trimgalore/main.nf +++ b/modules/local/modules/trimgalore/main.nf @@ -22,9 +22,9 @@ process TRIMGALORE { tuple val(meta), path(reads) output: - tuple val(meta), path("*trimmed.fastq.gz") , emit: reads + tuple val(meta), path("*trimmed.fastq.gz") , emit: reads tuple val(meta), path("*report.txt") , emit: log - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions tuple val(meta), path("*.html"), emit: html optional true tuple val(meta), path("*.zip") , emit: zip optional true @@ -64,7 +64,11 @@ process TRIMGALORE { $c_r1 \\ $tpc_r1 \\ ${prefix}.fastq.gz - echo \$(trim_galore --version 2>&1) | sed 's/^.*version //; s/Last.*\$//' > ${software}.version.txt + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(trim_galore --version 2>&1 | sed 's/^.*version //; s/Last.*\$//') + END_VERSIONS """ } else { """ @@ -81,7 +85,11 @@ process TRIMGALORE { $tpc_r2 \\ ${meta.id}_1.fastq.gz \\ ${meta.id}_2.fastq.gz - echo \$(trim_galore --version 2>&1) | sed 's/^.*version //; s/Last.*\$//' > ${software}.version.txt + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(trim_galore --version 2>&1 | sed 's/^.*version //; s/Last.*\$//') + END_VERSIONS mv ${meta.id}_1_val_1.fq.gz ${prefix_1}.fastq.gz mv ${meta.id}_2_val_2.fq.gz ${prefix_2}.fastq.gz From e2e17d22b0f96b95a3d92eded24cd73b51c1531e Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 10:14:46 +0100 Subject: [PATCH 009/125] changed versioning of awk_script module --- modules/local/awk_script.nf | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/local/awk_script.nf b/modules/local/awk_script.nf index 74f77c2a..a8c027f2 100644 --- a/modules/local/awk_script.nf +++ b/modules/local/awk_script.nf @@ -23,13 +23,17 @@ process AWK_SCRIPT { output: tuple val(meta), path("*.awk.txt"), emit: file - path "*.version.txt", emit: version - + path "versions.yml" , emit: versions + script: def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ awk $options.args -f $script $input > ${prefix}.awk.txt - awk -W version | head -n 1 | egrep -o "([0-9]{1,}\\.)+[0-9]{1,}" > ${software}.version.txt + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(awk -W version | head -n 1 | egrep -o "([0-9]{1,}\\.)+[0-9]{1,}") + END_VERSIONS """ } From 35f334c919e4b3b118a8417b293fcb93838082f7 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 10:16:54 +0100 Subject: [PATCH 010/125] changed versioning of awk.nf module --- modules/local/awk.nf | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/local/awk.nf b/modules/local/awk.nf index 23737a0f..6db53719 100644 --- a/modules/local/awk.nf +++ b/modules/local/awk.nf @@ -25,14 +25,18 @@ process AWK { output: tuple val(meta), path("*.awk.*"), emit: file - path "*.version.txt", emit: version - + path "versions.yml" , emit: versions + script: def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" def ext = options.ext ? "${options.ext}" : "txt" """ awk $options.args $options.command $input $options.command2 > ${prefix}.awk.${ext} - awk -W version | head -n 1 | egrep -o "([0-9]{1,}\\.)+[0-9]{1,}" > ${software}.version.txt + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(awk -W version | head -n 1 | egrep -o "([0-9]{1,}\\.)+[0-9]{1,}") + END_VERSIONS """ } From 510527048dc8df207554d2073fa8ab9da90e6b2d Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 10:18:21 +0100 Subject: [PATCH 011/125] changed versioning of bedtools_genomecov_scale module --- modules/local/bedtools_genomecov_scale.nf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/local/bedtools_genomecov_scale.nf b/modules/local/bedtools_genomecov_scale.nf index 8e8da70b..f1a67b6b 100644 --- a/modules/local/bedtools_genomecov_scale.nf +++ b/modules/local/bedtools_genomecov_scale.nf @@ -23,8 +23,8 @@ process BEDTOOLS_GENOMECOV_SCALE { output: tuple val(meta), path("*.bedGraph"), emit: bedgraph - path "*.version.txt" , emit: version - + path "versions.yml" , emit: versions + script: def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" @@ -33,6 +33,9 @@ process BEDTOOLS_GENOMECOV_SCALE { bedtools genomecov -ibam $bam $options.args -bg -scale $scale \\ | bedtools sort > ${prefix}.bedGraph - bedtools --version | sed -e "s/bedtools v//g" > ${software}.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(bedtools --version | sed -e "s/bedtools v//g") + END_VERSIONS """ } From 416cd3148cd2625574daea7ce1333f5f31a3cb50 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 10:22:31 +0100 Subject: [PATCH 012/125] Changed versioning of generate_reports module --- modules/local/generate_reports.nf | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/local/generate_reports.nf b/modules/local/generate_reports.nf index 568813e6..d0a39b0e 100644 --- a/modules/local/generate_reports.nf +++ b/modules/local/generate_reports.nf @@ -20,11 +20,11 @@ process GENERATE_REPORTS { path frag_len_header_multiqc output: - path '*.pdf', emit: pdf - path '*.csv', emit: csv - path '*.png', emit: png + path '*.pdf' , emit: pdf + path '*.csv' , emit: csv + path '*.png' , emit: png path '*frag_len_mqc.yaml', emit: frag_len_multiqc - path '*.version.txt', emit: version + path "versions.yml" , emit: versions script: def meta_data_resolved = meta_data ? meta_data : meta_data_ctrl @@ -43,7 +43,10 @@ process GENERATE_REPORTS { cat $frag_len_header_multiqc 03_03_frag_len_mqc.txt > frag_len_mqc.yaml fi - python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\" > python.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + END_VERSIONS """ } From 064a6fabc2f0dc247ee0f83640d9c47949c74903 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 10:24:50 +0100 Subject: [PATCH 013/125] Changed versioning get_chrom_sizes module --- modules/local/get_chrom_sizes.nf | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf index 3b386d5f..6c5e50fd 100644 --- a/modules/local/get_chrom_sizes.nf +++ b/modules/local/get_chrom_sizes.nf @@ -25,15 +25,19 @@ process GET_CHROM_SIZES { path fasta output: - path '*.sizes' , emit: sizes - path '*.fai' , emit: fai - path "*.version.txt", emit: version + path '*.sizes' , emit: sizes + path '*.fai' , emit: fai + path "versions.yml" , emit: versions script: def software = 'samtools' """ samtools faidx $fasta cut -f 1,2 ${fasta}.fai > ${fasta}.sizes - echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' > ${software}.version.txt + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS """ } From 9d8099d75a0fb669f6f180b47495ef86b8a3ad45 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 10:52:29 +0100 Subject: [PATCH 014/125] changed versioning igv.session module --- modules/local/python/igv_session.nf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/local/python/igv_session.nf b/modules/local/python/igv_session.nf index ddb4e1de..6a651495 100644 --- a/modules/local/python/igv_session.nf +++ b/modules/local/python/igv_session.nf @@ -20,6 +20,8 @@ process IGV_SESSION { path gtf path beds path bigwig + path "versions.yml" , emit: versions + output: path('*.{txt,xml,bed,bigWig,fa,gtf}', includeInputs:true) @@ -53,6 +55,11 @@ process IGV_SESSION { find -L * -iname "*.gtf" -exec echo -e {}"\\t0,48,73" \\; > gtf.igv.txt cat *.txt > igv_files.txt igv_files_to_session.py igv_session.xml igv_files.txt $genome --path_prefix './' + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + END_VERSIONS """ } From caafbc9689cb2232c8fe10ca716d142b764d27f4 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 10:54:30 +0100 Subject: [PATCH 015/125] changed versioning plot_consensus_peaks module --- modules/local/python/plot_consensus_peaks.nf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/local/python/plot_consensus_peaks.nf b/modules/local/python/plot_consensus_peaks.nf index 7bbc26d9..2b4ef389 100644 --- a/modules/local/python/plot_consensus_peaks.nf +++ b/modules/local/python/plot_consensus_peaks.nf @@ -18,7 +18,7 @@ process PLOT_CONSENSUS_PEAKS { output: path ("*.pdf"), optional:true, emit: pdf - path '*.version.txt', emit: version + path "versions.yml" , emit: versions script: """ @@ -26,7 +26,10 @@ process PLOT_CONSENSUS_PEAKS { --peaks "*.peaks.bed" \\ --outpath . - python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\" > python.version.txt + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + END_VERSIONS """ } From 943991590689e08f51606112e56472962d54a76d Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 10:55:35 +0100 Subject: [PATCH 016/125] Added new versioning to samplesheet_check file --- modules/local/python/samplesheet_check.nf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/local/python/samplesheet_check.nf b/modules/local/python/samplesheet_check.nf index 89547616..90fa04aa 100644 --- a/modules/local/python/samplesheet_check.nf +++ b/modules/local/python/samplesheet_check.nf @@ -22,11 +22,18 @@ process SAMPLESHEET_CHECK { output: path '*.csv' + path "versions.yml" , emit: versions + script: // This script is bundled with the pipeline, in nf-core/cutandrun/bin/ """ check_samplesheet.py $samplesheet samplesheet.valid.csv $params.igg_control + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + END_VERSIONS """ } From 931a8c92ebbfdd36bc8e1cae187a719ececda8a8 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 11:28:31 +0100 Subject: [PATCH 017/125] removed get_software_versions --- modules/local/get_software_versions.nf | 32 -------------------------- 1 file changed, 32 deletions(-) delete mode 100644 modules/local/get_software_versions.nf diff --git a/modules/local/get_software_versions.nf b/modules/local/get_software_versions.nf deleted file mode 100644 index aab21fa7..00000000 --- a/modules/local/get_software_versions.nf +++ /dev/null @@ -1,32 +0,0 @@ -// Import generic module functions -include { initOptions; saveFiles } from './common/functions' - -params.options = [:] -options = initOptions(params.options) - -process GET_SOFTWARE_VERSIONS { - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:'pipeline_info', meta:[:], publish_by_meta:[]) } - - conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/python:3.8.3" - } else { - container "quay.io/biocontainers/python:3.8.3" - } - - input: - path versions - - output: - path "software_versions.tsv" , emit: tsv - path 'software_versions_mqc.yaml', emit: yaml - - script: // This script is bundled with the pipeline, in nf-core/cutandrun/bin/ - """ - echo $workflow.manifest.version > pipeline.version.txt - echo $workflow.nextflow.version > nextflow.version.txt - scrape_software_versions.py &> software_versions_mqc.yaml - """ -} From f816bdc8eff770cf77796d4e5f8172053dd3eacc Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 11:29:52 +0100 Subject: [PATCH 018/125] Added CUSTOM_DUMPSOFTWAREVERSIONS module --- modules.json | 3 + .../custom/dumpsoftwareversions/functions.nf | 78 +++++++++++++ .../custom/dumpsoftwareversions/main.nf | 106 ++++++++++++++++++ .../custom/dumpsoftwareversions/meta.yml | 33 ++++++ 4 files changed, 220 insertions(+) create mode 100644 modules/nf-core/modules/custom/dumpsoftwareversions/functions.nf create mode 100644 modules/nf-core/modules/custom/dumpsoftwareversions/main.nf create mode 100644 modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml diff --git a/modules.json b/modules.json index 31762875..adf8a3b6 100644 --- a/modules.json +++ b/modules.json @@ -21,6 +21,9 @@ "cat/fastq": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, + "custom/dumpsoftwareversions": { + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" + }, "deeptools/computematrix": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/functions.nf b/modules/nf-core/modules/custom/dumpsoftwareversions/functions.nf new file mode 100644 index 00000000..85628ee0 --- /dev/null +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/functions.nf @@ -0,0 +1,78 @@ +// +// Utility functions used in nf-core DSL2 module files +// + +// +// Extract name of software tool from process name using $task.process +// +def getSoftwareName(task_process) { + return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() +} + +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + +// +// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules +// +def initOptions(Map args) { + def Map options = [:] + options.args = args.args ?: '' + options.args2 = args.args2 ?: '' + options.args3 = args.args3 ?: '' + options.publish_by_meta = args.publish_by_meta ?: [] + options.publish_dir = args.publish_dir ?: '' + options.publish_files = args.publish_files + options.suffix = args.suffix ?: '' + return options +} + +// +// Tidy up and join elements of a list to return a path string +// +def getPathFromList(path_list) { + def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries + paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes + return paths.join('/') +} + +// +// Function to save/publish module results +// +def saveFiles(Map args) { + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] + } + path = path instanceof String ? path : '' + path_list.add(path) + } + } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" + } + } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" + } +} diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf new file mode 100644 index 00000000..faf2073f --- /dev/null +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf @@ -0,0 +1,106 @@ +// Import generic module functions +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' + +params.options = [:] +options = initOptions(params.options) + +process CUSTOM_DUMPSOFTWAREVERSIONS { + label 'process_low' + publishDir "${params.outdir}", + mode: params.publish_dir_mode, + saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:'pipeline_info', meta:[:], publish_by_meta:[]) } + + // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container + conda (params.enable_conda ? "bioconda::multiqc=1.11" : null) + if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { + container "https://depot.galaxyproject.org/singularity/multiqc:1.11--pyhdfd78af_0" + } else { + container "quay.io/biocontainers/multiqc:1.11--pyhdfd78af_0" + } + + input: + path versions + + output: + path "software_versions.yml" , emit: yml + path "software_versions_mqc.yml", emit: mqc_yml + path "versions.yml" , emit: versions + + script: + """ + #!/usr/bin/env python + + import yaml + import platform + from textwrap import dedent + + def _make_versions_html(versions): + html = [ + dedent( + '''\\ + + + + + + + + + + ''' + ) + ] + for process, tmp_versions in sorted(versions.items()): + html.append("") + for i, (tool, version) in enumerate(sorted(tmp_versions.items())): + html.append( + dedent( + f'''\\ + + + + + + ''' + ) + ) + html.append("") + html.append("
Process Name Software Version
{process if (i == 0) else ''}{tool}{version}
") + return "\\n".join(html) + + module_versions = {} + module_versions["${getProcessName(task.process)}"] = { + 'python': platform.python_version(), + 'yaml': yaml.__version__ + } + + with open("$versions") as f: + workflow_versions = yaml.load(f, Loader=yaml.BaseLoader) | module_versions + + workflow_versions["Workflow"] = { + "Nextflow": "$workflow.nextflow.version", + "$workflow.manifest.name": "$workflow.manifest.version" + } + + versions_mqc = { + 'id': 'software_versions', + 'section_name': '${workflow.manifest.name} Software Versions', + 'section_href': 'https://github.com/${workflow.manifest.name}', + 'plot_type': 'html', + 'description': 'are collected at run time from the software output.', + 'data': _make_versions_html(workflow_versions) + } + + with open("software_versions.yml", 'w') as f: + yaml.dump(workflow_versions, f, default_flow_style=False) + with open("software_versions_mqc.yml", 'w') as f: + yaml.dump(versions_mqc, f, default_flow_style=False) + + with open('versions.yml', 'w') as f: + yaml.dump(module_versions, f, default_flow_style=False) + """ +} diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml new file mode 100644 index 00000000..c8310e35 --- /dev/null +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml @@ -0,0 +1,33 @@ +name: custom_dumpsoftwareversions +description: Custom module used to dump software versions within the nf-core pipeline template +keywords: + - custom + - version +tools: + - custom: + description: Custom module used to dump software versions within the nf-core pipeline template + homepage: https://github.com/nf-core/tools + documentation: https://github.com/nf-core/tools + licence: ['MIT'] +input: + - versions: + type: file + description: YML file containing software versions + pattern: "*.yml" + +output: + - yml: + type: file + description: Standard YML file containing software versions + pattern: "software_versions.yml" + - mqc_yml: + type: file + description: MultiQC custom content YML file containing software versions + pattern: "software_versions_mqc.yml" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@drpatelh" From 21226344cc6a675baaabce0a1ddc6646dcff45c1 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 11:33:24 +0100 Subject: [PATCH 019/125] Commented out all uses of get_software_versions module in cutandrun.nf --- workflows/cutandrun.nf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index b0a82a89..68f33c04 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -305,7 +305,7 @@ include { CALCULATE_PEAK_REPROD } from "../modules/local/modules/calcu include { EXPORT_META } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) include { EXPORT_META as EXPORT_META_CTRL } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) include { GENERATE_REPORTS } from "../modules/local/python/generate_reports" addParams( options: modules["generate_reports"] ) -include { GET_SOFTWARE_VERSIONS } from "../modules/local/get_software_versions" addParams( options: [publish_files : ["csv":""]] ) +//include { GET_SOFTWARE_VERSIONS } from "../modules/local/get_software_versions" addParams( options: [publish_files : ["csv":""]] ) include { MULTIQC } from "../modules/local/multiqc" addParams( options: multiqc_options ) /* @@ -1040,9 +1040,9 @@ workflow CUTANDRUN { .collect() .set { ch_software_versions } - GET_SOFTWARE_VERSIONS ( - ch_software_versions.map { it }.collect() - ) + //GET_SOFTWARE_VERSIONS ( + // ch_software_versions.map { it }.collect() + //) /* * MODULE: Multiqc @@ -1054,7 +1054,7 @@ workflow CUTANDRUN { MULTIQC ( ch_multiqc_config, ch_multiqc_custom_config.collect().ifEmpty([]), - GET_SOFTWARE_VERSIONS.out.yaml.collect(), + // GET_SOFTWARE_VERSIONS.out.yaml.collect(), ch_workflow_summary.collectFile(name: "workflow_summary_mqc.yaml"), FASTQC_TRIMGALORE.out.fastqc_zip.collect{it[1]}.ifEmpty([]), FASTQC_TRIMGALORE.out.trim_zip.collect{it[1]}.ifEmpty([]), From d9414aa140dc88f32719c4959791baa630a0c820 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 11:40:43 +0100 Subject: [PATCH 020/125] Included custom_dumpsoftwareversions & changed spacing in cutandrun.nf --- workflows/cutandrun.nf | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 68f33c04..e459d476 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -332,15 +332,16 @@ include { ANNOTATE_META_CSV as ANNOTATE_PEAK_REPRO_META } from "../subworkflows /* * MODULES */ -include { UCSC_BEDCLIP } from "../modules/nf-core/modules/ucsc/bedclip/main" addParams( options: modules["ucsc_bedclip"] ) -include { UCSC_BEDGRAPHTOBIGWIG } from "../modules/nf-core/modules/ucsc/bedgraphtobigwig/main" addParams( options: modules["ucsc_bedgraphtobigwig"] ) -include { SEACR_CALLPEAK } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) -include { SEACR_CALLPEAK as SEACR_CALLPEAK_NOIGG } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) -include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_GENE } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_gene"] ) -include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_PEAKS } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_peaks"] ) -include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_GENE } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_gene"] ) -include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_PEAKS } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_peaks"] ) -include { BEDTOOLS_INTERSECT } from "../modules/nf-core/modules/bedtools/intersect/main.nf" addParams( options: bedtools_intersect_options ) +include { UCSC_BEDCLIP } from "../modules/nf-core/modules/ucsc/bedclip/main" addParams( options: modules["ucsc_bedclip"] ) +include { UCSC_BEDGRAPHTOBIGWIG } from "../modules/nf-core/modules/ucsc/bedgraphtobigwig/main" addParams( options: modules["ucsc_bedgraphtobigwig"] ) +include { SEACR_CALLPEAK } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) +include { SEACR_CALLPEAK as SEACR_CALLPEAK_NOIGG } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) +include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_GENE } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_gene"] ) +include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_PEAKS } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_peaks"] ) +include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_GENE } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_gene"] ) +include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_PEAKS } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_peaks"] ) +include { BEDTOOLS_INTERSECT } from "../modules/nf-core/modules/bedtools/intersect/main.nf" addParams( options: bedtools_intersect_options ) +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' addParams( options: modules['custom_reporting_module']) /* * SUBWORKFLOW: Consisting entirely of nf-core/modules From 4198c1b7f57cfc8b9a454b73c005d8ccc13fcd0a Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 11:48:42 +0100 Subject: [PATCH 021/125] changed dump_softwareversions module parameters import specification --- workflows/cutandrun.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index e459d476..6b42be58 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -341,7 +341,7 @@ include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_PEAKS } from "../mo include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_GENE } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_gene"] ) include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_PEAKS } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_peaks"] ) include { BEDTOOLS_INTERSECT } from "../modules/nf-core/modules/bedtools/intersect/main.nf" addParams( options: bedtools_intersect_options ) -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' addParams( options: modules['custom_reporting_module']) +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' addParams( options: modules["dumpsoftwareversions"] ) /* * SUBWORKFLOW: Consisting entirely of nf-core/modules From 3a3eb5f7ae833fcdceba769134e50c7bcf88eb95 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 12:00:00 +0100 Subject: [PATCH 022/125] Changed include statement for CUSTOM_DUMPSOFTWAREVERSIONS & spacing --- workflows/cutandrun.nf | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 6b42be58..ed925fa7 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -305,7 +305,6 @@ include { CALCULATE_PEAK_REPROD } from "../modules/local/modules/calcu include { EXPORT_META } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) include { EXPORT_META as EXPORT_META_CTRL } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) include { GENERATE_REPORTS } from "../modules/local/python/generate_reports" addParams( options: modules["generate_reports"] ) -//include { GET_SOFTWARE_VERSIONS } from "../modules/local/get_software_versions" addParams( options: [publish_files : ["csv":""]] ) include { MULTIQC } from "../modules/local/multiqc" addParams( options: multiqc_options ) /* @@ -332,16 +331,16 @@ include { ANNOTATE_META_CSV as ANNOTATE_PEAK_REPRO_META } from "../subworkflows /* * MODULES */ -include { UCSC_BEDCLIP } from "../modules/nf-core/modules/ucsc/bedclip/main" addParams( options: modules["ucsc_bedclip"] ) -include { UCSC_BEDGRAPHTOBIGWIG } from "../modules/nf-core/modules/ucsc/bedgraphtobigwig/main" addParams( options: modules["ucsc_bedgraphtobigwig"] ) -include { SEACR_CALLPEAK } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) -include { SEACR_CALLPEAK as SEACR_CALLPEAK_NOIGG } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) -include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_GENE } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_gene"] ) -include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_PEAKS } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_peaks"] ) -include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_GENE } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_gene"] ) -include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_PEAKS } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_peaks"] ) -include { BEDTOOLS_INTERSECT } from "../modules/nf-core/modules/bedtools/intersect/main.nf" addParams( options: bedtools_intersect_options ) -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' addParams( options: modules["dumpsoftwareversions"] ) +include { UCSC_BEDCLIP } from "../modules/nf-core/modules/ucsc/bedclip/main" addParams( options: modules["ucsc_bedclip"] ) +include { UCSC_BEDGRAPHTOBIGWIG } from "../modules/nf-core/modules/ucsc/bedgraphtobigwig/main" addParams( options: modules["ucsc_bedgraphtobigwig"] ) +include { SEACR_CALLPEAK } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) +include { SEACR_CALLPEAK as SEACR_CALLPEAK_NOIGG } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) +include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_GENE } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_gene"] ) +include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_PEAKS } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_peaks"] ) +include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_GENE } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_gene"] ) +include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_PEAKS } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_peaks"] ) +include { BEDTOOLS_INTERSECT } from "../modules/nf-core/modules/bedtools/intersect/main.nf" addParams( options: bedtools_intersect_options ) +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' addParams( options: [publish_files : ['_versions.yml':'']] ) /* * SUBWORKFLOW: Consisting entirely of nf-core/modules From 6ffe5f6b407ac5bbb5179965b38b506f7291a9fe Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 12:01:49 +0100 Subject: [PATCH 023/125] Included CUSTOM_DUMPSOFTWAREVERSIONS call, removed get_software_versions --- workflows/cutandrun.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index ed925fa7..bc7085ba 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -1040,9 +1040,9 @@ workflow CUTANDRUN { .collect() .set { ch_software_versions } - //GET_SOFTWARE_VERSIONS ( - // ch_software_versions.map { it }.collect() - //) + CUSTOM_DUMPSOFTWAREVERSIONS ( + ch_software_versions.unique().collectFile() + ) /* * MODULE: Multiqc From 91c22912d47413fe5ea135581a64c94e1dec0d24 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 12:03:36 +0100 Subject: [PATCH 024/125] Included CUSTOM_DUMPSOFTWAREVERSIONS output in multiqc call --- workflows/cutandrun.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index bc7085ba..85db096f 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -1054,7 +1054,7 @@ workflow CUTANDRUN { MULTIQC ( ch_multiqc_config, ch_multiqc_custom_config.collect().ifEmpty([]), - // GET_SOFTWARE_VERSIONS.out.yaml.collect(), + CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect(), ch_workflow_summary.collectFile(name: "workflow_summary_mqc.yaml"), FASTQC_TRIMGALORE.out.fastqc_zip.collect{it[1]}.ifEmpty([]), FASTQC_TRIMGALORE.out.trim_zip.collect{it[1]}.ifEmpty([]), From 7980700d32589c30a1414abfc2d32378853b512e Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 27 Oct 2021 14:40:18 +0100 Subject: [PATCH 025/125] Debugging --- modules/local/get_chrom_sizes.nf | 2 +- modules/local/python/samplesheet_check.nf | 8 ------- workflows/cutandrun.nf | 29 ++++++++++++----------- 3 files changed, 16 insertions(+), 23 deletions(-) diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf index 41f97d18..02dd59fa 100644 --- a/modules/local/get_chrom_sizes.nf +++ b/modules/local/get_chrom_sizes.nf @@ -27,7 +27,7 @@ process GET_CHROM_SIZES { output: path '*.sizes' , emit: sizes path '*.fai' , emit: fai - path "versions.yml" , emit: versions + path "versions.yml", emit: versions script: def software = 'samtools' diff --git a/modules/local/python/samplesheet_check.nf b/modules/local/python/samplesheet_check.nf index 90fa04aa..e3791a6f 100644 --- a/modules/local/python/samplesheet_check.nf +++ b/modules/local/python/samplesheet_check.nf @@ -22,18 +22,10 @@ process SAMPLESHEET_CHECK { output: path '*.csv' - path "versions.yml" , emit: versions - - script: // This script is bundled with the pipeline, in nf-core/cutandrun/bin/ """ check_samplesheet.py $samplesheet samplesheet.valid.csv $params.igg_control - - cat <<-END_VERSIONS > versions.yml - ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") - END_VERSIONS """ } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 85db096f..d49d52e2 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -23,7 +23,7 @@ checkPathParamList = [ for (param in checkPathParamList) { if (param) { file(param, checkIfExists: true) } } // Check mandatory parameters that cannot be checked in the groovy lib as we want a channel for them -if (params.input) { ch_input = file(params.input) } else { exit 1, "Input samplesheet not specified!" } +if (params.input) { ch_input = file(params.input) } else { exit 1, "Input samplesheet not specified!" } ch_blacklist = Channel.empty() if (params.blacklist) { @@ -379,19 +379,20 @@ workflow CUTANDRUN { INPUT_CHECK ( ch_input ) - .map { - meta, fastq -> - meta.id = meta.id.split("_")[0..-2].join("_") - [ meta, fastq ] } - .groupTuple(by: [0]) - .branch { - meta, fastq -> - single : fastq.size() == 1 - return [ meta, fastq.flatten() ] - multiple: fastq.size() > 1 - return [ meta, fastq.flatten() ] - } - .set { ch_fastq } + // .map { + // meta, fastq -> + // meta.id = meta.id.split("_")[0..-2].join("_") + // [ meta, fastq ] } + // .groupTuple(by: [0]) + // .branch { + // meta, fastq -> + // single : fastq.size() == 1 + // return [ meta, fastq.flatten() ] + // multiple: fastq.size() > 1 + // return [ meta, fastq.flatten() ] + // } + // .set { ch_fastq } + ch_input | view } /* From 78d343685eb05413dadd48a1e063155c38932462 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Wed, 27 Oct 2021 14:54:25 +0100 Subject: [PATCH 026/125] test --- modules/local/python/samplesheet_check.nf | 2 +- subworkflows/local/input_check.nf | 4 ++++ workflows/cutandrun.nf | 27 +++++++++++------------ 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/modules/local/python/samplesheet_check.nf b/modules/local/python/samplesheet_check.nf index e3791a6f..f745cca5 100644 --- a/modules/local/python/samplesheet_check.nf +++ b/modules/local/python/samplesheet_check.nf @@ -21,7 +21,7 @@ process SAMPLESHEET_CHECK { path samplesheet output: - path '*.csv' + path '*.csv', emit: csv script: // This script is bundled with the pipeline, in nf-core/cutandrun/bin/ """ diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf index a098b405..13b1edfa 100644 --- a/subworkflows/local/input_check.nf +++ b/subworkflows/local/input_check.nf @@ -14,10 +14,14 @@ workflow INPUT_CHECK { main: SAMPLESHEET_CHECK ( samplesheet ) + SAMPLESHEET_CHECK.out.csv | view + + SAMPLESHEET_CHECK.out.csv .splitCsv ( header:true, sep:"," ) .map { get_samplesheet_paths(it) } .set { reads } + emit: reads // channel: [ val(meta), [ reads ] ] } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index d49d52e2..6e3a7275 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -379,20 +379,19 @@ workflow CUTANDRUN { INPUT_CHECK ( ch_input ) - // .map { - // meta, fastq -> - // meta.id = meta.id.split("_")[0..-2].join("_") - // [ meta, fastq ] } - // .groupTuple(by: [0]) - // .branch { - // meta, fastq -> - // single : fastq.size() == 1 - // return [ meta, fastq.flatten() ] - // multiple: fastq.size() > 1 - // return [ meta, fastq.flatten() ] - // } - // .set { ch_fastq } - ch_input | view + .map { + meta, fastq -> + meta.id = meta.id.split("_")[0..-2].join("_") + [ meta, fastq ] } + .groupTuple(by: [0]) + .branch { + meta, fastq -> + single : fastq.size() == 1 + return [ meta, fastq.flatten() ] + multiple: fastq.size() > 1 + return [ meta, fastq.flatten() ] + } + .set { ch_fastq } } /* From 1a0e0e16295c2542b221d64e1da2eb66a4f8e45f Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Wed, 27 Oct 2021 17:25:04 +0100 Subject: [PATCH 027/125] tidy up --- modules/local/python/plot_consensus_peaks.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/python/plot_consensus_peaks.nf b/modules/local/python/plot_consensus_peaks.nf index 2b4ef389..b72bfe95 100644 --- a/modules/local/python/plot_consensus_peaks.nf +++ b/modules/local/python/plot_consensus_peaks.nf @@ -18,7 +18,7 @@ process PLOT_CONSENSUS_PEAKS { output: path ("*.pdf"), optional:true, emit: pdf - path "versions.yml" , emit: versions + path "versions.yml", emit: versions script: """ From fa31dcd648d1ec9c7f70967e7f9455bf0f355686 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Wed, 27 Oct 2021 17:25:17 +0100 Subject: [PATCH 028/125] added version to samplesheet check --- modules/local/python/samplesheet_check.nf | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/local/python/samplesheet_check.nf b/modules/local/python/samplesheet_check.nf index f745cca5..d7e2db91 100644 --- a/modules/local/python/samplesheet_check.nf +++ b/modules/local/python/samplesheet_check.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName } from '../common/functions' params.options = [:] options = initOptions(params.options) @@ -21,11 +21,17 @@ process SAMPLESHEET_CHECK { path samplesheet output: - path '*.csv', emit: csv + path '*.csv' , emit: csv + path "versions.yml", emit: versions script: // This script is bundled with the pipeline, in nf-core/cutandrun/bin/ """ check_samplesheet.py $samplesheet samplesheet.valid.csv $params.igg_control + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + END_VERSIONS """ } From 9b05619099f01d17b660fd30348769376bf818d3 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Wed, 27 Oct 2021 17:25:28 +0100 Subject: [PATCH 029/125] remove debug --- subworkflows/local/input_check.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf index 13b1edfa..773e775c 100644 --- a/subworkflows/local/input_check.nf +++ b/subworkflows/local/input_check.nf @@ -14,14 +14,12 @@ workflow INPUT_CHECK { main: SAMPLESHEET_CHECK ( samplesheet ) - SAMPLESHEET_CHECK.out.csv | view SAMPLESHEET_CHECK.out.csv .splitCsv ( header:true, sep:"," ) .map { get_samplesheet_paths(it) } .set { reads } - emit: reads // channel: [ val(meta), [ reads ] ] } From ae253f3ade54175648122792b16357469ba3a350 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Wed, 27 Oct 2021 17:25:42 +0100 Subject: [PATCH 030/125] Add DSL2 syntax to cat fastqc --- workflows/cutandrun.nf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 6e3a7275..85897b03 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -401,8 +401,10 @@ workflow CUTANDRUN { CAT_FASTQ ( ch_fastq.multiple ) - .mix(ch_fastq.single) - .set { ch_cat_fastq } + + CAT_FASTQ.out.reads + .mix(ch_fastq.single) + .set { ch_cat_fastq } } //EXAMPLE CHANNEL STRUCT: [[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false], [READS]] //ch_cat_fastq | view From 910d389815e4dd65760b83842f234727cf336327 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Wed, 27 Oct 2021 17:40:27 +0100 Subject: [PATCH 031/125] you get the idea --- subworkflows/local/fastqc_trimgalore.nf | 34 +++++++++++----------- subworkflows/local/input_check.nf | 1 + subworkflows/nf-core/bam_sort_samtools.nf | 2 +- subworkflows/nf-core/bam_stats_samtools.nf | 2 +- workflows/cutandrun.nf | 32 ++++++++++---------- 5 files changed, 37 insertions(+), 34 deletions(-) diff --git a/subworkflows/local/fastqc_trimgalore.nf b/subworkflows/local/fastqc_trimgalore.nf index 0992f9c6..fda61836 100644 --- a/subworkflows/local/fastqc_trimgalore.nf +++ b/subworkflows/local/fastqc_trimgalore.nf @@ -15,40 +15,40 @@ workflow FASTQC_TRIMGALORE { skip_trimming // boolean: true/false main: - fastqc_html = Channel.empty() - fastqc_zip = Channel.empty() - fastqc_version = Channel.empty() + fastqc_html = Channel.empty() + fastqc_zip = Channel.empty() + fastqc_versions = Channel.empty() if (!skip_fastqc) { FASTQC ( reads ).html.set { fastqc_html } - fastqc_zip = FASTQC.out.zip - fastqc_version = FASTQC.out.version + fastqc_zip = FASTQC.out.zip + fastqc_versions = FASTQC.out.versions } trim_html = Channel.empty() trim_zip = Channel.empty() trim_log = Channel.empty() - trimgalore_version = Channel.empty() + trimgalore_versions = Channel.empty() ch_output_reads = reads if (!skip_trimming) { TRIMGALORE ( reads ) ch_output_reads = TRIMGALORE.out.reads - trim_html = TRIMGALORE.out.html - trim_zip = TRIMGALORE.out.zip - trim_log = TRIMGALORE.out.log - trimgalore_version = TRIMGALORE.out.version + trim_html = TRIMGALORE.out.html + trim_zip = TRIMGALORE.out.zip + trim_log = TRIMGALORE.out.log + trimgalore_versions = TRIMGALORE.out.versions } emit: reads = ch_output_reads // channel: [ val(meta), [ reads ] ] - fastqc_html // channel: [ val(meta), [ html ] ] - fastqc_zip // channel: [ val(meta), [ zip ] ] - fastqc_version // path: *.version.txt + fastqc_html // channel: [ val(meta), [ html ] ] + fastqc_zip // channel: [ val(meta), [ zip ] ] + fastqc_versions // path: *.version.txt - trim_html // channel: [ val(meta), [ html ] ] - trim_zip // channel: [ val(meta), [ zip ] ] - trim_log // channel: [ val(meta), [ txt ] ] - trimgalore_version // path: *.version.txt + trim_html // channel: [ val(meta), [ html ] ] + trim_zip // channel: [ val(meta), [ zip ] ] + trim_log // channel: [ val(meta), [ txt ] ] + trimgalore_versions // path: *.version.txt } diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf index 773e775c..3a8f6e1a 100644 --- a/subworkflows/local/input_check.nf +++ b/subworkflows/local/input_check.nf @@ -22,4 +22,5 @@ workflow INPUT_CHECK { emit: reads // channel: [ val(meta), [ reads ] ] + versions = SAMPLESHEET_CHECK.out.versions } diff --git a/subworkflows/nf-core/bam_sort_samtools.nf b/subworkflows/nf-core/bam_sort_samtools.nf index 93619ba7..3360b896 100644 --- a/subworkflows/nf-core/bam_sort_samtools.nf +++ b/subworkflows/nf-core/bam_sort_samtools.nf @@ -40,5 +40,5 @@ workflow BAM_SORT_SAMTOOLS { stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - version = SAMTOOLS_SORT.out.version // path: *.version.txt + versions = SAMTOOLS_SORT.out.versions // path: *.version.txt } diff --git a/subworkflows/nf-core/bam_stats_samtools.nf b/subworkflows/nf-core/bam_stats_samtools.nf index 1501e2cb..7f844cf3 100644 --- a/subworkflows/nf-core/bam_stats_samtools.nf +++ b/subworkflows/nf-core/bam_stats_samtools.nf @@ -21,5 +21,5 @@ workflow BAM_STATS_SAMTOOLS { stats = SAMTOOLS_STATS.out.stats // channel: [ val(meta), [ stats ] ] flagstat = SAMTOOLS_FLAGSTAT.out.flagstat // channel: [ val(meta), [ flagstat ] ] idxstats = SAMTOOLS_IDXSTATS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - version = SAMTOOLS_STATS.out.version // path: *.version.txt + versions = SAMTOOLS_STATS.out.versions // path: *.version.txt } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 85897b03..1b50d5d1 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -379,19 +379,21 @@ workflow CUTANDRUN { INPUT_CHECK ( ch_input ) - .map { - meta, fastq -> - meta.id = meta.id.split("_")[0..-2].join("_") - [ meta, fastq ] } - .groupTuple(by: [0]) - .branch { - meta, fastq -> - single : fastq.size() == 1 - return [ meta, fastq.flatten() ] - multiple: fastq.size() > 1 - return [ meta, fastq.flatten() ] - } - .set { ch_fastq } + + INPUT_CHECK.out.reads + .map { + meta, fastq -> + meta.id = meta.id.split("_")[0..-2].join("_") + [ meta, fastq ] } + .groupTuple(by: [0]) + .branch { + meta, fastq -> + single : fastq.size() == 1 + return [ meta, fastq.flatten() ] + multiple: fastq.size() > 1 + return [ meta, fastq.flatten() ] + } + .set { ch_fastq } } /* @@ -419,8 +421,8 @@ workflow CUTANDRUN { params.skip_trimming ) ch_trimmed_reads = FASTQC_TRIMGALORE.out.reads - ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.fastqc_version.first().ifEmpty(null)) - ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.trimgalore_version.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.fastqc_versions.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.trimgalore_versions.first().ifEmpty(null)) } //EXAMPLE CHANNEL STRUCT: [[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false], [READS]] //FASTQC_TRIMGALORE.out.reads | view From 9a107a983e389544edd0bc5c9a5bc8e193788b9a Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 10:42:41 +0100 Subject: [PATCH 032/125] changed versioning subworkflow align_bowtie2 --- subworkflows/local/align_bowtie2.nf | 4 ++-- workflows/cutandrun.nf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/subworkflows/local/align_bowtie2.nf b/subworkflows/local/align_bowtie2.nf index 4119e059..8d348139 100644 --- a/subworkflows/local/align_bowtie2.nf +++ b/subworkflows/local/align_bowtie2.nf @@ -36,8 +36,8 @@ workflow ALIGN_BOWTIE2 { BAM_SORT_SAMTOOLS_SPIKEIN ( BOWTIE2_SPIKEIN_ALIGN.out.bam ) emit: - bowtie2_version = BOWTIE2_ALIGN.out.version // path: *.version.txt - samtools_version = BAM_SORT_SAMTOOLS.out.version // path: *.version.txt + bowtie2_versions = BOWTIE2_ALIGN.out.versions // path: *.version.txt + samtools_versions = BAM_SORT_SAMTOOLS.out.versions // path: *.version.txt orig_bam = BOWTIE2_ALIGN.out.bam // channel: [ val(meta), bam ] orig_spikein_bam = BOWTIE2_SPIKEIN_ALIGN.out.bam // channel: [ val(meta), bam ] diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 1b50d5d1..ccf7bdd8 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -452,7 +452,7 @@ workflow CUTANDRUN { PREPARE_GENOME.out.bowtie2_index, PREPARE_GENOME.out.bowtie2_spikein_index ) - ch_software_versions = ch_software_versions.mix(ALIGN_BOWTIE2.out.bowtie2_version.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(ALIGN_BOWTIE2.out.bowtie2_versions.first().ifEmpty(null)) ch_orig_bam = ALIGN_BOWTIE2.out.orig_bam ch_orig_spikein_bam = ALIGN_BOWTIE2.out.orig_spikein_bam ch_bowtie2_log = ALIGN_BOWTIE2.out.bowtie2_log From 01031074e31935d733eeb1f4ddd3ac3707d79d2e Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 10:44:04 +0100 Subject: [PATCH 033/125] cleaned spacing --- subworkflows/local/align_bowtie2.nf | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/subworkflows/local/align_bowtie2.nf b/subworkflows/local/align_bowtie2.nf index 8d348139..f196508d 100644 --- a/subworkflows/local/align_bowtie2.nf +++ b/subworkflows/local/align_bowtie2.nf @@ -39,21 +39,21 @@ workflow ALIGN_BOWTIE2 { bowtie2_versions = BOWTIE2_ALIGN.out.versions // path: *.version.txt samtools_versions = BAM_SORT_SAMTOOLS.out.versions // path: *.version.txt - orig_bam = BOWTIE2_ALIGN.out.bam // channel: [ val(meta), bam ] - orig_spikein_bam = BOWTIE2_SPIKEIN_ALIGN.out.bam // channel: [ val(meta), bam ] - - bowtie2_log = BOWTIE2_ALIGN.out.log // channel: [ val(meta), log_final ] - bowtie2_spikein_log = BOWTIE2_SPIKEIN_ALIGN.out.log // channel: [ val(meta), log_final ] - - bam = BAM_SORT_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] - bai = BAM_SORT_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_SORT_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_SORT_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_SORT_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - - spikein_bam = BAM_SORT_SAMTOOLS_SPIKEIN.out.bam // channel: [ val(meta), [ bam ] ] - spikein_bai = BAM_SORT_SAMTOOLS_SPIKEIN.out.bai // channel: [ val(meta), [ bai ] ] - spikein_stats = BAM_SORT_SAMTOOLS_SPIKEIN.out.stats // channel: [ val(meta), [ stats ] ] - spikein_flagstat = BAM_SORT_SAMTOOLS_SPIKEIN.out.flagstat // channel: [ val(meta), [ flagstat ] ] - spikein_idxstats = BAM_SORT_SAMTOOLS_SPIKEIN.out.idxstats // channel: [ val(meta), [ idxstats ] ] + orig_bam = BOWTIE2_ALIGN.out.bam // channel: [ val(meta), bam ] + orig_spikein_bam = BOWTIE2_SPIKEIN_ALIGN.out.bam // channel: [ val(meta), bam ] + + bowtie2_log = BOWTIE2_ALIGN.out.log // channel: [ val(meta), log_final ] + bowtie2_spikein_log = BOWTIE2_SPIKEIN_ALIGN.out.log // channel: [ val(meta), log_final ] + + bam = BAM_SORT_SAMTOOLS.out.bam // channel: [ val(meta), [ bam ] ] + bai = BAM_SORT_SAMTOOLS.out.bai // channel: [ val(meta), [ bai ] ] + stats = BAM_SORT_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_SORT_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_SORT_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] + + spikein_bam = BAM_SORT_SAMTOOLS_SPIKEIN.out.bam // channel: [ val(meta), [ bam ] ] + spikein_bai = BAM_SORT_SAMTOOLS_SPIKEIN.out.bai // channel: [ val(meta), [ bai ] ] + spikein_stats = BAM_SORT_SAMTOOLS_SPIKEIN.out.stats // channel: [ val(meta), [ stats ] ] + spikein_flagstat = BAM_SORT_SAMTOOLS_SPIKEIN.out.flagstat // channel: [ val(meta), [ flagstat ] ] + spikein_idxstats = BAM_SORT_SAMTOOLS_SPIKEIN.out.idxstats // channel: [ val(meta), [ idxstats ] ] } From 90eab92e0c2d0cbf565f40aa37d1b141c64d7930 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 10:53:48 +0100 Subject: [PATCH 034/125] Changed versioning samtools_index and cleaned spacing --- subworkflows/nf-core/samtools_view_sort_stats.nf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/subworkflows/nf-core/samtools_view_sort_stats.nf b/subworkflows/nf-core/samtools_view_sort_stats.nf index 074d95e6..64d91680 100644 --- a/subworkflows/nf-core/samtools_view_sort_stats.nf +++ b/subworkflows/nf-core/samtools_view_sort_stats.nf @@ -39,10 +39,10 @@ workflow SAMTOOLS_VIEW_SORT_STATS { BAM_STATS_SAMTOOLS ( ch_bam_bai ) emit: - bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] - bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - samtools_version = SAMTOOLS_INDEX.out.version // path: *.version.txt + bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] + bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] + stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] + samtools_versions = SAMTOOLS_INDEX.out.versions // path: *.version.txt } From 55d8be7b165e53bde68199f28eb3e0aa86f25a43 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 11:00:23 +0100 Subject: [PATCH 035/125] Changed versioning mark_duplicates_picard and cleaned spacing --- .../nf-core/mark_duplicates_picard.nf | 22 +++++++++---------- workflows/cutandrun.nf | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/subworkflows/nf-core/mark_duplicates_picard.nf b/subworkflows/nf-core/mark_duplicates_picard.nf index e8a3eabb..7318d20f 100644 --- a/subworkflows/nf-core/mark_duplicates_picard.nf +++ b/subworkflows/nf-core/mark_duplicates_picard.nf @@ -20,12 +20,12 @@ workflow MARK_DUPLICATES_PICARD { */ ch_bam = Channel.empty() metrics = Channel.empty() - version = Channel.empty() + versions = Channel.empty() if( !params.control_only ) { PICARD_MARKDUPLICATES ( bam ) ch_bam = PICARD_MARKDUPLICATES.out.bam metrics = PICARD_MARKDUPLICATES.out.metrics - version = PICARD_MARKDUPLICATES.out.version + versions = PICARD_MARKDUPLICATES.out.versions } else { // Split out non igg files and run only on these bam.branch { it -> @@ -36,7 +36,7 @@ workflow MARK_DUPLICATES_PICARD { PICARD_MARKDUPLICATES ( ch_split.control ) metrics = PICARD_MARKDUPLICATES.out.metrics - version = PICARD_MARKDUPLICATES.out.version + versions = PICARD_MARKDUPLICATES.out.versions ch_bam = PICARD_MARKDUPLICATES.out.bam.mix ( ch_split.target ) } //out_bam | view @@ -60,13 +60,13 @@ workflow MARK_DUPLICATES_PICARD { BAM_STATS_SAMTOOLS ( ch_bam_bai ) emit: - bam = ch_bam // channel: [ val(meta), [ bam ] ] - metrics // channel: [ val(meta), [ metrics ] ] - picard_version = version // path: *.version.txt + bam = ch_bam // channel: [ val(meta), [ bam ] ] + metrics // channel: [ val(meta), [ metrics ] ] + picard_versions = versions // path: *.version.txt - bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - samtools_version = SAMTOOLS_INDEX.out.version // path: *.version.txt + bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] + stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] + samtools_versions = SAMTOOLS_INDEX.out.versions // path: *.version.txt } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index ccf7bdd8..9d0103da 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -505,7 +505,7 @@ workflow CUTANDRUN { ch_samtools_flagstat = MARK_DUPLICATES_PICARD.out.flagstat ch_samtools_idxstats = MARK_DUPLICATES_PICARD.out.idxstats ch_markduplicates_metrics = MARK_DUPLICATES_PICARD.out.metrics - ch_software_versions = ch_software_versions.mix(MARK_DUPLICATES_PICARD.out.picard_version.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(MARK_DUPLICATES_PICARD.out.picard_versions.first().ifEmpty(null)) } //EXAMPLE CHANNEL STRUCT: [[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false], [BAM]] //ch_samtools_bam | view From 6fbf84474108c7eea25fbfb7fe4179605f999067 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 11:06:27 +0100 Subject: [PATCH 036/125] Changed versioning UCSC_BEDGRAPHTOBIGWIG in cutandrun.nf --- workflows/cutandrun.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 9d0103da..4a7e120c 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -640,7 +640,7 @@ workflow CUTANDRUN { UCSC_BEDCLIP.out.bedgraph, PREPARE_GENOME.out.chrom_sizes ) - ch_software_versions = ch_software_versions.mix(UCSC_BEDGRAPHTOBIGWIG.out.version.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(UCSC_BEDGRAPHTOBIGWIG.out.versions.first().ifEmpty(null)) //EXAMPLE CHANNEL STRUCT: [[META], BIGWIG] //UCSC_BEDGRAPHTOBIGWIG.out.bigwig | view From 5926c560a8a12336073536858ac39525f0e55230 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 12:49:15 +0100 Subject: [PATCH 037/125] changed software versioning SEACR_CALLPEAK module commented code In case the code has to be reused --- workflows/cutandrun.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 4a7e120c..f4191501 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -692,7 +692,7 @@ workflow CUTANDRUN { params.peak_threshold ) ch_seacr_bed = SEACR_CALLPEAK.out.bed - //ch_software_versions = ch_software_versions.mix(SEACR_CALLPEAK.out.version.first().ifEmpty(null)) + //ch_software_versions = ch_software_versions.mix(SEACR_CALLPEAK.out.versions.first().ifEmpty(null)) // EXAMPLE CHANNEL STRUCT: [[META], BED] //SEACR_CALLPEAK.out.bed | view } From 0c397b8ff9a730b67849ef2545c87a2d261d7764 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 12:49:55 +0100 Subject: [PATCH 038/125] changed versioning consensus_peak subworkflow --- subworkflows/local/consensus_peaks.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/subworkflows/local/consensus_peaks.nf b/subworkflows/local/consensus_peaks.nf index 26515393..37e09195 100644 --- a/subworkflows/local/consensus_peaks.nf +++ b/subworkflows/local/consensus_peaks.nf @@ -35,7 +35,7 @@ workflow CONSENSUS_PEAKS { } emit: - bed = BEDTOOLS_MERGE.out.bed // channel: [ val(meta), [ bed ] ] - filtered_bed = AWK.out.file // channel: [ val(meta), [ bed ] ] - bedtools_version = BEDTOOLS_MERGE.out.version // path: *.version.txt + bed = BEDTOOLS_MERGE.out.bed // channel: [ val(meta), [ bed ] ] + filtered_bed = AWK.out.file // channel: [ val(meta), [ bed ] ] + bedtools_versions = BEDTOOLS_MERGE.out.versions // path: *.version.txt } From 0d74c2ae7a051222accc3418d2f6d42f74dffcea Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 14:36:18 +0100 Subject: [PATCH 039/125] changed versioning calculate_fragments --- subworkflows/local/calculate_fragments.nf | 6 +++--- workflows/cutandrun.nf | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/subworkflows/local/calculate_fragments.nf b/subworkflows/local/calculate_fragments.nf index 6aeb4a0c..00207e0a 100644 --- a/subworkflows/local/calculate_fragments.nf +++ b/subworkflows/local/calculate_fragments.nf @@ -44,7 +44,7 @@ workflow CALCULATE_FRAGMENTS { bed = CUT.out.file // channel: [ val(meta), [ bed ] ] bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] - samtools_version = SAMTOOLS_SORT.out.version // path: *.version.txt - bedtools_version = BEDTOOLS_BAMTOBED.out.version // path: *.version.txt - awk_version = AWK.out.version // path: *.version.txt + samtools_versions = SAMTOOLS_SORT.out.versions // path: *.version.txt + bedtools_versions = BEDTOOLS_BAMTOBED.out.versions // path: *.version.txt + awk_versions = AWK.out.versions // path: *.version.txt } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index f4191501..98a1ee78 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -801,7 +801,7 @@ workflow CUTANDRUN { CALCULATE_FRAGMENTS ( ch_samtools_bam ) - ch_software_versions = ch_software_versions.mix(CALCULATE_FRAGMENTS.out.bedtools_version.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(CALCULATE_FRAGMENTS.out.bedtools_versions.first().ifEmpty(null)) //EXAMPLE CHANNEL STRUCT: NO CHANGE //CALCULATE_FRAGMENTS.out.bed | view From 35f5d6816dcd0cd06c16ce2a1bc5e8ba7a0bad81 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 14:47:48 +0100 Subject: [PATCH 040/125] Fixed versioning error in igv_session --- modules/local/python/igv_session.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/python/igv_session.nf b/modules/local/python/igv_session.nf index 6a651495..f57febdc 100644 --- a/modules/local/python/igv_session.nf +++ b/modules/local/python/igv_session.nf @@ -20,11 +20,11 @@ process IGV_SESSION { path gtf path beds path bigwig - path "versions.yml" , emit: versions - output: path('*.{txt,xml,bed,bigWig,fa,gtf}', includeInputs:true) + path "versions.yml" , emit: versions + script: output = '' From af7a21e4b88e7e64229d0513b0f1f210a4ea726d Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 14:50:17 +0100 Subject: [PATCH 041/125] Changed versioning for deeptools_comutematrix_gene --- workflows/cutandrun.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 98a1ee78..afaf8b5c 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -898,7 +898,7 @@ workflow CUTANDRUN { ch_bigwig_no_igg, PREPARE_GENOME.out.bed ) - ch_software_versions = ch_software_versions.mix(DEEPTOOLS_COMPUTEMATRIX_GENE.out.version.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(DEEPTOOLS_COMPUTEMATRIX_GENE.out.versions.first().ifEmpty(null)) /* * MODULE: Calculate DeepTools heatmap From 2120ebc8d44352dbdc19699f7b2504720326e4e9 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 15:58:09 +0100 Subject: [PATCH 042/125] Changed versioning in cutandrun.nf and prepare_genome.nf --- subworkflows/local/prepare_genome.nf | 22 +++++++++++----------- workflows/cutandrun.nf | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 1f55526c..caddf60b 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -78,7 +78,7 @@ workflow PREPARE_GENOME { */ ch_bt2_index = Channel.empty() ch_bt2_spikein_index = Channel.empty() - ch_bt2_version = Channel.empty() + ch_bt2_versions = Channel.empty() if ("bowtie2" in prepare_tool_indices) { if (params.bowtie2) { if (params.bowtie2.endsWith(".tar.gz")) { @@ -88,7 +88,7 @@ workflow PREPARE_GENOME { } } else { ch_bt2_index = BOWTIE2_BUILD ( ch_fasta ).index - ch_bt2_version = BOWTIE2_BUILD.out.version + ch_bt2_versions = BOWTIE2_BUILD.out.versions } if (params.spikein_bowtie2) { @@ -103,13 +103,13 @@ workflow PREPARE_GENOME { } emit: - fasta = ch_fasta // path: genome.fasta - chrom_sizes = ch_chrom_sizes // path: genome.sizes - spikein_chrom_sizes = ch_spikein_chrom_sizes // path: genome.sizes - gtf = ch_gtf // path: genome.gtf - bed = ch_gene_bed // path: genome.bed - bowtie2_index = ch_bt2_index // path: bt2/index/ - bowtie2_spikein_index = ch_bt2_spikein_index // path: bt2/index/ - bowtie2_version = ch_bt2_version // path: *.version.txt - samtools_version = GET_CHROM_SIZES.out.version // path: *.version.txt + fasta = ch_fasta // path: genome.fasta + chrom_sizes = ch_chrom_sizes // path: genome.sizes + spikein_chrom_sizes = ch_spikein_chrom_sizes // path: genome.sizes + gtf = ch_gtf // path: genome.gtf + bed = ch_gene_bed // path: genome.bed + bowtie2_index = ch_bt2_index // path: bt2/index/ + bowtie2_spikein_index = ch_bt2_spikein_index // path: bt2/index/ + bowtie2_versions = ch_bt2_versions // path: *.version.txt + samtools_versions = GET_CHROM_SIZES.out.versions // path: *.version.txt } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index afaf8b5c..f1ef4d03 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -368,8 +368,8 @@ workflow CUTANDRUN { PREPARE_GENOME ( prepare_tool_indices ) - ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.bowtie2_version.ifEmpty(null)) - ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.samtools_version.ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.bowtie2_versions.ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.samtools_versions.ifEmpty(null)) } /* @@ -1030,7 +1030,7 @@ workflow CUTANDRUN { ch_frag_len_header_multiqc // multiqc config header for fragment length distribution plot ) ch_frag_len_multiqc = GENERATE_REPORTS.out.frag_len_multiqc - ch_software_versions = ch_software_versions.mix(GENERATE_REPORTS.out.version.ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(GENERATE_REPORTS.out.versions.ifEmpty(null)) } /* From d0443cb181bfd555d05ad400f1917e06bce65540 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 15:59:32 +0100 Subject: [PATCH 043/125] Changed common functions.nf with the nf-core fastqc functions.nf file --- modules/local/common/functions.nf | 98 +++++++++++++++++++------------ 1 file changed, 59 insertions(+), 39 deletions(-) diff --git a/modules/local/common/functions.nf b/modules/local/common/functions.nf index d25eea86..ce468a6f 100644 --- a/modules/local/common/functions.nf +++ b/modules/local/common/functions.nf @@ -1,59 +1,79 @@ -/* - * ----------------------------------------------------- - * Utility functions used in nf-core DSL2 module files - * ----------------------------------------------------- - */ +// +// Utility functions used in nf-core DSL2 module files +// -/* - * Extract name of software tool from process name using $task.process - */ +// +// Extract name of software tool from process name using $task.process +// def getSoftwareName(task_process) { return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() } -/* - * Function to initialise default values and to generate a Groovy Map of available options for nf-core modules - */ +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + +// +// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules +// def initOptions(Map args) { def Map options = [:] - options.args = args.args ?: '' - options.args2 = args.args2 ?: '' - options.publish_by_id = args.publish_by_id ?: false - options.publish_dir = args.publish_dir ?: '' - options.publish_files = args.publish_files - options.suffix = args.suffix ?: '' + options.args = args.args ?: '' + options.args2 = args.args2 ?: '' + options.args3 = args.args3 ?: '' + options.publish_by_meta = args.publish_by_meta ?: [] + options.publish_dir = args.publish_dir ?: '' + options.publish_files = args.publish_files + options.suffix = args.suffix ?: '' return options } -/* - * Tidy up and join elements of a list to return a path string - */ +// +// Tidy up and join elements of a list to return a path string +// def getPathFromList(path_list) { - def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries - paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes + def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries + paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes return paths.join('/') } -/* - * Function to save/publish module results - */ +// +// Function to save/publish module results +// def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_id) { - path_list.add(args.publish_id) - } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] } + path = path instanceof String ? path : '' + path_list.add(path) } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" } } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" + } + } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" + } } + From d107de664f1d8f97317ec4c0014940f646c636d0 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 28 Oct 2021 16:36:05 +0100 Subject: [PATCH 044/125] changed include statements of all local modules --- modules/local/bedtools_genomecov_scale.nf | 2 +- modules/local/export_meta.nf | 2 +- modules/local/get_chrom_sizes.nf | 2 +- modules/local/linux/awk.nf | 2 +- modules/local/linux/awk_script.nf | 3 ++- modules/local/linux/cut.nf | 2 +- modules/local/linux/sort.nf | 2 +- modules/local/modules/calculate_frip/main.nf | 2 +- modules/local/modules/calculate_peak_reprod/main.nf | 2 +- modules/local/modules/trimgalore/main.nf | 2 +- modules/local/multiqc.nf | 2 +- modules/local/python/generate_reports.nf | 2 +- modules/local/python/igv_session.nf | 2 +- modules/local/python/plot_consensus_peaks.nf | 2 +- modules/local/python/samplesheet_check.nf | 2 +- modules/local/samtools_custom_view.nf | 2 +- 16 files changed, 17 insertions(+), 16 deletions(-) diff --git a/modules/local/bedtools_genomecov_scale.nf b/modules/local/bedtools_genomecov_scale.nf index dfb5e6e9..14bba779 100644 --- a/modules/local/bedtools_genomecov_scale.nf +++ b/modules/local/bedtools_genomecov_scale.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/export_meta.nf b/modules/local/export_meta.nf index 69423bca..50a388dd 100644 --- a/modules/local/export_meta.nf +++ b/modules/local/export_meta.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName } from './common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf index 02dd59fa..d85ef60f 100644 --- a/modules/local/get_chrom_sizes.nf +++ b/modules/local/get_chrom_sizes.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles } from './common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/linux/awk.nf b/modules/local/linux/awk.nf index 32245891..4ffa1a3b 100644 --- a/modules/local/linux/awk.nf +++ b/modules/local/linux/awk.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/linux/awk_script.nf b/modules/local/linux/awk_script.nf index 7d23e1c6..6202fb57 100644 --- a/modules/local/linux/awk_script.nf +++ b/modules/local/linux/awk_script.nf @@ -1,4 +1,5 @@ -include { initOptions; saveFiles; getSoftwareName } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../common/functions' + params.options = [:] options = initOptions(params.options) diff --git a/modules/local/linux/cut.nf b/modules/local/linux/cut.nf index f80be393..6c3233ac 100644 --- a/modules/local/linux/cut.nf +++ b/modules/local/linux/cut.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/linux/sort.nf b/modules/local/linux/sort.nf index 1a559b70..856e5a75 100644 --- a/modules/local/linux/sort.nf +++ b/modules/local/linux/sort.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/modules/calculate_frip/main.nf b/modules/local/modules/calculate_frip/main.nf index 4a4483af..d9d0af47 100644 --- a/modules/local/modules/calculate_frip/main.nf +++ b/modules/local/modules/calculate_frip/main.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/modules/calculate_peak_reprod/main.nf b/modules/local/modules/calculate_peak_reprod/main.nf index ff886c5e..809c4ce0 100644 --- a/modules/local/modules/calculate_peak_reprod/main.nf +++ b/modules/local/modules/calculate_peak_reprod/main.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/modules/trimgalore/main.nf b/modules/local/modules/trimgalore/main.nf index 257a6046..9596e332 100644 --- a/modules/local/modules/trimgalore/main.nf +++ b/modules/local/modules/trimgalore/main.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index 1867e3a9..5f83ce7f 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/python/generate_reports.nf b/modules/local/python/generate_reports.nf index e95fce14..08465d79 100644 --- a/modules/local/python/generate_reports.nf +++ b/modules/local/python/generate_reports.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/python/igv_session.nf b/modules/local/python/igv_session.nf index f57febdc..a15fc498 100644 --- a/modules/local/python/igv_session.nf +++ b/modules/local/python/igv_session.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/python/plot_consensus_peaks.nf b/modules/local/python/plot_consensus_peaks.nf index b72bfe95..b01913ec 100644 --- a/modules/local/python/plot_consensus_peaks.nf +++ b/modules/local/python/plot_consensus_peaks.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/python/samplesheet_check.nf b/modules/local/python/samplesheet_check.nf index d7e2db91..287623bf 100644 --- a/modules/local/python/samplesheet_check.nf +++ b/modules/local/python/samplesheet_check.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../common/functions' params.options = [:] options = initOptions(params.options) diff --git a/modules/local/samtools_custom_view.nf b/modules/local/samtools_custom_view.nf index 745dfd91..6ffbb48e 100644 --- a/modules/local/samtools_custom_view.nf +++ b/modules/local/samtools_custom_view.nf @@ -1,5 +1,5 @@ // Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './common/functions' params.options = [:] def options = initOptions(params.options) From fc07dc62e238b9636bd66c1040f10574d0d8de99 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 4 Nov 2021 12:53:17 +0000 Subject: [PATCH 045/125] Syntax tidy --- modules/local/get_chrom_sizes.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf index d85ef60f..1951ecb2 100644 --- a/modules/local/get_chrom_sizes.nf +++ b/modules/local/get_chrom_sizes.nf @@ -25,8 +25,8 @@ process GET_CHROM_SIZES { path fasta output: - path '*.sizes' , emit: sizes - path '*.fai' , emit: fai + path '*.sizes' , emit: sizes + path '*.fai' , emit: fai path "versions.yml", emit: versions script: From 24982bb5d4cbf3e5399eca8e8b86455dfb6dc7ca Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 4 Nov 2021 12:53:27 +0000 Subject: [PATCH 046/125] Updated picard to new command syntax --- conf/modules.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 44349822..a04cf8ae 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -91,7 +91,7 @@ params { */ "picard_markduplicates" { - args = "ASSUME_SORTED=true REMOVE_DUPLICATES=false VALIDATION_STRINGENCY=LENIENT TMP_DIR=tmp" + args = "-ASSUME_SORT_ORDER coordinate -REMOVE_DUPLICATES false -VALIDATION_STRINGENCY LENIENT -TMP_DIR tmp" suffix = ".target.markdup" publish_files = false } @@ -101,7 +101,7 @@ params { } "picard_dedup" { - args = "ASSUME_SORTED=true REMOVE_DUPLICATES=true VALIDATION_STRINGENCY=LENIENT TMP_DIR=tmp" + args = "-ASSUME_SORT_ORDER coordinate -REMOVE_DUPLICATES true -VALIDATION_STRINGENCY LENIENT -TMP_DIR tmp" suffix = ".target.dedup" publish_files = false } From 11067b960e69eff1014569efb7c11ff8a170cfbf Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 4 Nov 2021 12:53:34 +0000 Subject: [PATCH 047/125] Version output fix --- workflows/cutandrun.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index f1ef4d03..aab19e6e 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -368,8 +368,8 @@ workflow CUTANDRUN { PREPARE_GENOME ( prepare_tool_indices ) - ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.bowtie2_versions.ifEmpty(null)) - ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.samtools_versions.ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.bowtie2_versions) + ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.samtools_versions) } /* From 38253b4b44b93231f0c3c97ef24b88cc5ddfe169 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 11:31:04 +0000 Subject: [PATCH 048/125] changed version storage in cutandrun.nf --- workflows/cutandrun.nf | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index aab19e6e..7a15a7f9 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -421,8 +421,8 @@ workflow CUTANDRUN { params.skip_trimming ) ch_trimmed_reads = FASTQC_TRIMGALORE.out.reads - ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.fastqc_versions.first().ifEmpty(null)) - ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.trimgalore_versions.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.fastqc_versions) + ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.trimgalore_versions) } //EXAMPLE CHANNEL STRUCT: [[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false], [READS]] //FASTQC_TRIMGALORE.out.reads | view @@ -452,7 +452,7 @@ workflow CUTANDRUN { PREPARE_GENOME.out.bowtie2_index, PREPARE_GENOME.out.bowtie2_spikein_index ) - ch_software_versions = ch_software_versions.mix(ALIGN_BOWTIE2.out.bowtie2_versions.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(ALIGN_BOWTIE2.out.bowtie2_versions) ch_orig_bam = ALIGN_BOWTIE2.out.orig_bam ch_orig_spikein_bam = ALIGN_BOWTIE2.out.orig_spikein_bam ch_bowtie2_log = ALIGN_BOWTIE2.out.bowtie2_log @@ -505,7 +505,7 @@ workflow CUTANDRUN { ch_samtools_flagstat = MARK_DUPLICATES_PICARD.out.flagstat ch_samtools_idxstats = MARK_DUPLICATES_PICARD.out.idxstats ch_markduplicates_metrics = MARK_DUPLICATES_PICARD.out.metrics - ch_software_versions = ch_software_versions.mix(MARK_DUPLICATES_PICARD.out.picard_versions.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(MARK_DUPLICATES_PICARD.out.picard_versions) } //EXAMPLE CHANNEL STRUCT: [[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false], [BAM]] //ch_samtools_bam | view @@ -640,7 +640,7 @@ workflow CUTANDRUN { UCSC_BEDCLIP.out.bedgraph, PREPARE_GENOME.out.chrom_sizes ) - ch_software_versions = ch_software_versions.mix(UCSC_BEDGRAPHTOBIGWIG.out.versions.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(UCSC_BEDGRAPHTOBIGWIG.out.versions) //EXAMPLE CHANNEL STRUCT: [[META], BIGWIG] //UCSC_BEDGRAPHTOBIGWIG.out.bigwig | view @@ -692,7 +692,7 @@ workflow CUTANDRUN { params.peak_threshold ) ch_seacr_bed = SEACR_CALLPEAK.out.bed - //ch_software_versions = ch_software_versions.mix(SEACR_CALLPEAK.out.versions.first().ifEmpty(null)) + //ch_software_versions = ch_software_versions.mix(SEACR_CALLPEAK.out.versions) // EXAMPLE CHANNEL STRUCT: [[META], BED] //SEACR_CALLPEAK.out.bed | view } @@ -714,7 +714,7 @@ workflow CUTANDRUN { params.peak_threshold ) ch_seacr_bed = SEACR_CALLPEAK_NOIGG.out.bed - //ch_software_versions = ch_software_versions.mix(SEACR_NO_IGG.out.version.first().ifEmpty(null)) + //ch_software_versions = ch_software_versions.mix(SEACR_NO_IGG.out.versions) // EXAMPLE CHANNEL STRUCT: [[META], BED] //SEACR_NO_IGG.out.bed | view } @@ -801,7 +801,7 @@ workflow CUTANDRUN { CALCULATE_FRAGMENTS ( ch_samtools_bam ) - ch_software_versions = ch_software_versions.mix(CALCULATE_FRAGMENTS.out.bedtools_versions.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(CALCULATE_FRAGMENTS.out.bedtools_versions) //EXAMPLE CHANNEL STRUCT: NO CHANGE //CALCULATE_FRAGMENTS.out.bed | view @@ -898,7 +898,7 @@ workflow CUTANDRUN { ch_bigwig_no_igg, PREPARE_GENOME.out.bed ) - ch_software_versions = ch_software_versions.mix(DEEPTOOLS_COMPUTEMATRIX_GENE.out.versions.first().ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(DEEPTOOLS_COMPUTEMATRIX_GENE.out.versions) /* * MODULE: Calculate DeepTools heatmap @@ -1030,7 +1030,7 @@ workflow CUTANDRUN { ch_frag_len_header_multiqc // multiqc config header for fragment length distribution plot ) ch_frag_len_multiqc = GENERATE_REPORTS.out.frag_len_multiqc - ch_software_versions = ch_software_versions.mix(GENERATE_REPORTS.out.versions.ifEmpty(null)) + ch_software_versions = ch_software_versions.mix(GENERATE_REPORTS.out.versions) } /* From affb83a4e92571580198cf63abdf1594326d0cee Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 11:47:39 +0000 Subject: [PATCH 049/125] corrected versioning get_chrom_sizes --- modules/local/get_chrom_sizes.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf index 1951ecb2..8410b7a7 100644 --- a/modules/local/get_chrom_sizes.nf +++ b/modules/local/get_chrom_sizes.nf @@ -37,7 +37,7 @@ process GET_CHROM_SIZES { cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS - """ + """ } From d64d5609a6d14863f463a8736a84f629aaa782ce Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 11:49:27 +0000 Subject: [PATCH 050/125] corrected versioning samtools customview --- modules/local/samtools_custom_view.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/samtools_custom_view.nf b/modules/local/samtools_custom_view.nf index 6ffbb48e..a25fae7a 100644 --- a/modules/local/samtools_custom_view.nf +++ b/modules/local/samtools_custom_view.nf @@ -33,7 +33,7 @@ process SAMTOOLS_CUSTOMVIEW { cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(samtools --version 2>&1 | sed 's/^.*samtools //; s/Using.*\$//') + ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ } From d7fb0ffee7911d9e291f5970421fa990534ec993 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 12:11:46 +0000 Subject: [PATCH 051/125] corrected versioning bam_sort_samtools subworkflow --- subworkflows/nf-core/bam_sort_samtools.nf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/subworkflows/nf-core/bam_sort_samtools.nf b/subworkflows/nf-core/bam_sort_samtools.nf index 3360b896..4d23640e 100644 --- a/subworkflows/nf-core/bam_sort_samtools.nf +++ b/subworkflows/nf-core/bam_sort_samtools.nf @@ -14,15 +14,18 @@ workflow BAM_SORT_SAMTOOLS { ch_bam // channel: [ val(meta), [ bam ] ] main: + ch_versions = Channel.empty() /* * SORT BAM file */ SAMTOOLS_SORT ( ch_bam ) + ch_versions = ch_versions.mix(SAMTOOLS_SORT.out.versions) /* * Index BAM file */ SAMTOOLS_INDEX ( SAMTOOLS_SORT.out.bam ) + ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions) // Join bam/bai ch_bam_sample_id = SAMTOOLS_SORT.out.bam.map { row -> [row[0].id, row] } @@ -33,6 +36,7 @@ workflow BAM_SORT_SAMTOOLS { * Run samtools stats, flagstat and idxstats */ BAM_STATS_SAMTOOLS ( ch_bam_bai ) + ch_versions = ch_versions.mix(BAM_STATS_SAMTOOLS.out.versions) emit: bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] @@ -40,5 +44,5 @@ workflow BAM_SORT_SAMTOOLS { stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - versions = SAMTOOLS_SORT.out.versions // path: *.version.txt + versions = ch_versions // channel: [ versions.yml ] } From 76e99709cac8b406dd6774bd1818b89f46a377ab Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 12:13:03 +0000 Subject: [PATCH 052/125] syntax fix --- subworkflows/local/align_bowtie2.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subworkflows/local/align_bowtie2.nf b/subworkflows/local/align_bowtie2.nf index f196508d..d89fc001 100644 --- a/subworkflows/local/align_bowtie2.nf +++ b/subworkflows/local/align_bowtie2.nf @@ -36,8 +36,8 @@ workflow ALIGN_BOWTIE2 { BAM_SORT_SAMTOOLS_SPIKEIN ( BOWTIE2_SPIKEIN_ALIGN.out.bam ) emit: - bowtie2_versions = BOWTIE2_ALIGN.out.versions // path: *.version.txt - samtools_versions = BAM_SORT_SAMTOOLS.out.versions // path: *.version.txt + bowtie2_versions = BOWTIE2_ALIGN.out.versions // path: *.version.txt + samtools_versions = BAM_SORT_SAMTOOLS.out.versions // path: *.version.txt orig_bam = BOWTIE2_ALIGN.out.bam // channel: [ val(meta), bam ] orig_spikein_bam = BOWTIE2_SPIKEIN_ALIGN.out.bam // channel: [ val(meta), bam ] From cf1ce63acfe9bfd86b765ea62b92f5caa592d7b3 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 12:17:40 +0000 Subject: [PATCH 053/125] Corrected versioning bam_stats_samtools --- subworkflows/nf-core/bam_stats_samtools.nf | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/subworkflows/nf-core/bam_stats_samtools.nf b/subworkflows/nf-core/bam_stats_samtools.nf index 7f844cf3..43ecee3c 100644 --- a/subworkflows/nf-core/bam_stats_samtools.nf +++ b/subworkflows/nf-core/bam_stats_samtools.nf @@ -13,13 +13,20 @@ workflow BAM_STATS_SAMTOOLS { ch_bam_bai // channel: [ val(meta), [ bam ], [bai] ] main: + ch_versions = Channel.empty() + SAMTOOLS_STATS ( ch_bam_bai ) + ch_versions = ch_versions.mix(SAMTOOLS_STATS.out.versions) + SAMTOOLS_FLAGSTAT ( ch_bam_bai ) + ch_versions = ch_versions.mix(SAMTOOLS_FLAGSTAT.out.versions) + SAMTOOLS_IDXSTATS ( ch_bam_bai ) + ch_versions = ch_versions.mix(SAMTOOLS_IDXSTATS.out.versions) emit: stats = SAMTOOLS_STATS.out.stats // channel: [ val(meta), [ stats ] ] flagstat = SAMTOOLS_FLAGSTAT.out.flagstat // channel: [ val(meta), [ flagstat ] ] idxstats = SAMTOOLS_IDXSTATS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - versions = SAMTOOLS_STATS.out.versions // path: *.version.txt + versions = ch_versions // channel: [ versions.yml ] } From 38df60cd2b152ebc4b8b1d4818ef4c5ea81fd957 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 13:08:33 +0000 Subject: [PATCH 054/125] corrected versioning for ANNOTATE_META_AWK subworkflow --- subworkflows/local/annotate_meta_awk.nf | 8 +++++++- subworkflows/local/prepare_genome.nf | 4 ++-- workflows/cutandrun.nf | 9 +++++++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/subworkflows/local/annotate_meta_awk.nf b/subworkflows/local/annotate_meta_awk.nf index 0e855ff3..be59c6f5 100644 --- a/subworkflows/local/annotate_meta_awk.nf +++ b/subworkflows/local/annotate_meta_awk.nf @@ -18,6 +18,8 @@ workflow ANNOTATE_META_AWK { script main: + ch_versions = Channel.empty() + // Strip out the sample id from the meta in the passthrough ch_paths = passthrough.map { row -> [row[0].id, row[0], row[1..-1]].flatten() } @@ -25,6 +27,7 @@ workflow ANNOTATE_META_AWK { // Can run awk in script mode with a file from assets or with a setup of command line args if(params.script_mode) { AWK_SCRIPT ( report, script ) + ch_versions = ch_versions.mix(AWK_SCRIPT.out.versions) AWK_SCRIPT.out.file .splitCsv(header:true) @@ -39,6 +42,7 @@ workflow ANNOTATE_META_AWK { } else { AWK ( report ) + ch_versions = ch_versions.mix(AWK.out.versions) AWK.out.file .splitCsv(header:true) @@ -53,5 +57,7 @@ workflow ANNOTATE_META_AWK { } emit: - output = ch_annotated_meta // channel: [ val(annotated_meta), [ passthrough ] ] + output = ch_annotated_meta // channel: [ val(annotated_meta), [ passthrough ] ] + versions = ch_versions // channel: [ versions.yml ] + } diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index caddf60b..2fedfce7 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -11,8 +11,8 @@ include { GUNZIP as GUNZIP_FASTA } from "../../modules/nf-co include { GUNZIP as GUNZIP_SPIKEIN_FASTA } from "../../modules/nf-core/modules/gunzip/main.nf" addParams( options: params.spikein_genome_options ) include { GUNZIP as GUNZIP_GTF } from "../../modules/nf-core/modules/gunzip/main.nf" addParams( options: params.genome_options ) include { GUNZIP as GUNZIP_BED } from "../../modules/nf-core/modules/gunzip/main.nf" addParams( options: params.genome_options ) -include { GET_CHROM_SIZES } from "../../modules/local/get_chrom_sizes" addParams( options: params.genome_options ) -include { GET_CHROM_SIZES as GET_SPIKEIN_CHROM_SIZES } from "../../modules/local/get_chrom_sizes" addParams( options: params.spikein_genome_options ) +include { GET_CHROM_SIZES } from "../../modules/local/get_chrom_sizes" addParams( options: params.genome_options ) +include { GET_CHROM_SIZES as GET_SPIKEIN_CHROM_SIZES } from "../../modules/local/get_chrom_sizes" addParams( options: params.spikein_genome_options ) include { UNTAR as UNTAR_BT2_INDEX } from "../../modules/nf-core/modules/untar/main.nf" addParams( options: params.bt2_index_options ) include { UNTAR as UNTAR_SPIKEIN_BT2_INDEX } from "../../modules/nf-core/modules/untar/main.nf" addParams( options: params.bt2_spikein_index_options ) include { BOWTIE2_BUILD } from "../../modules/nf-core/modules/bowtie2/build/main" addParams( options: params.bt2_index_options ) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 7a15a7f9..90410efd 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -538,13 +538,16 @@ workflow CUTANDRUN { ch_bowtie2_log, ch_bt2_to_csv_awk ) + ch_software_versions = ch_software_versions.mix(ANNOTATE_BT2_META.out.versions) ANNOTATE_BT2_SPIKEIN_META ( ANNOTATE_BT2_META.out.output, ch_bowtie2_spikein_log, ch_bt2_to_csv_awk ) - ch_samtools_bam = ANNOTATE_BT2_SPIKEIN_META.out.output + ch_samtools_bam = ANNOTATE_BT2_SPIKEIN_META.out.output + ch_software_versions = ch_software_versions.mix(ANNOTATE_BT2_META.out.versions) + } // META-DATA example state: //[[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false, @@ -562,7 +565,9 @@ workflow CUTANDRUN { ch_markduplicates_metrics, ch_dummy_file.collect() ) - ch_samtools_bam = ANNOTATE_DEDUP_META.out.output + ch_samtools_bam = ANNOTATE_DEDUP_META.out.output + ch_software_versions = ch_software_versions.mix(ANNOTATE_DEDUP_META.out.versions) + } //EXAMPLE CHANNEL STRUCT: [[META + dedup_library:unknown library, dedup_unpaired_reads_examined:0, dedup_read_pairs_examined:350, dedup_secondary_or_supplementary_rds:0, // dedup_unmapped_reads:0, dedup_unpaired_read_duplicates:0, dedup_read_pair_duplicates:0, dedup_read_pair_optical_duplicates:0, dedup_percent_duplication:0, From d09094447483c7f2c23e72a5aa2a2d531759d70c Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 14:01:04 +0000 Subject: [PATCH 055/125] corrected versioning ALIGN_BOWTIE2 subworkflow --- subworkflows/local/align_bowtie2.nf | 12 ++++++++---- workflows/cutandrun.nf | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/subworkflows/local/align_bowtie2.nf b/subworkflows/local/align_bowtie2.nf index d89fc001..458cabad 100644 --- a/subworkflows/local/align_bowtie2.nf +++ b/subworkflows/local/align_bowtie2.nf @@ -9,8 +9,8 @@ params.samtools_spikein_options = [:] include { BOWTIE2_ALIGN } from "../../modules/nf-core/modules/bowtie2/align/main" addParams( options: params.align_options, save_unaligned: params.save_unaligned ) include { BOWTIE2_ALIGN as BOWTIE2_SPIKEIN_ALIGN } from "../../modules/nf-core/modules/bowtie2/align/main" addParams( options: params.spikein_align_options, save_unaligned: false ) -include { BAM_SORT_SAMTOOLS } from "../nf-core/bam_sort_samtools" addParams( samtools_sort_options: params.samtools_options, options: params.samtools_options ) -include { BAM_SORT_SAMTOOLS as BAM_SORT_SAMTOOLS_SPIKEIN } from "../nf-core/bam_sort_samtools" addParams( samtools_sort_options: params.samtools_spikein_options, options: params.samtools_spikein_options ) +include { BAM_SORT_SAMTOOLS } from "../nf-core/bam_sort_samtools" addParams( samtools_sort_options: params.samtools_options, options: params.samtools_options ) +include { BAM_SORT_SAMTOOLS as BAM_SORT_SAMTOOLS_SPIKEIN } from "../nf-core/bam_sort_samtools" addParams( samtools_sort_options: params.samtools_spikein_options, options: params.samtools_spikein_options ) workflow ALIGN_BOWTIE2 { take: @@ -19,10 +19,13 @@ workflow ALIGN_BOWTIE2 { spikein_index // channel: /path/to/bowtie2/spikein/index/ main: + ch_versions = Channel.empty() + /* * Map reads with BOWTIE2 to target genome */ BOWTIE2_ALIGN ( reads, index ) + ch_versions = ch_versions.mix(BOWTIE2_ALIGN.out.versions) /* * Map reads with BOWTIE2 to spike-in genome @@ -33,11 +36,12 @@ workflow ALIGN_BOWTIE2 { * Sort, index BAM file and run samtools stats, flagstat and idxstats */ BAM_SORT_SAMTOOLS ( BOWTIE2_ALIGN.out.bam ) + ch_versions = ch_versions.mix(BAM_SORT_SAMTOOLS.out.versions) + BAM_SORT_SAMTOOLS_SPIKEIN ( BOWTIE2_SPIKEIN_ALIGN.out.bam ) emit: - bowtie2_versions = BOWTIE2_ALIGN.out.versions // path: *.version.txt - samtools_versions = BAM_SORT_SAMTOOLS.out.versions // path: *.version.txt + versions = ch_versions // channel: [ versions.yml ] orig_bam = BOWTIE2_ALIGN.out.bam // channel: [ val(meta), bam ] orig_spikein_bam = BOWTIE2_SPIKEIN_ALIGN.out.bam // channel: [ val(meta), bam ] diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 90410efd..0d737381 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -452,7 +452,7 @@ workflow CUTANDRUN { PREPARE_GENOME.out.bowtie2_index, PREPARE_GENOME.out.bowtie2_spikein_index ) - ch_software_versions = ch_software_versions.mix(ALIGN_BOWTIE2.out.bowtie2_versions) + ch_software_versions = ch_software_versions.mix(ALIGN_BOWTIE2.out.versions) ch_orig_bam = ALIGN_BOWTIE2.out.orig_bam ch_orig_spikein_bam = ALIGN_BOWTIE2.out.orig_spikein_bam ch_bowtie2_log = ALIGN_BOWTIE2.out.bowtie2_log From 56225fce9e9d0f766363ae8bfa2a66e57d2b7c21 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 14:04:33 +0000 Subject: [PATCH 056/125] corrected syntax error storing version output ANNOTATE_BT2_SPIKEIN_META --- workflows/cutandrun.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 0d737381..ac230605 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -546,7 +546,7 @@ workflow CUTANDRUN { ch_bt2_to_csv_awk ) ch_samtools_bam = ANNOTATE_BT2_SPIKEIN_META.out.output - ch_software_versions = ch_software_versions.mix(ANNOTATE_BT2_META.out.versions) + ch_software_versions = ch_software_versions.mix(ANNOTATE_BT2_SPIKEIN_META.out.versions) } // META-DATA example state: From 6a254f8d961c633ef60233abf301e91448397df6 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 14:09:35 +0000 Subject: [PATCH 057/125] corrected versioning CALCULATE_FRAGMENTS subworkflow --- subworkflows/local/calculate_fragments.nf | 9 ++++++--- workflows/cutandrun.nf | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/subworkflows/local/calculate_fragments.nf b/subworkflows/local/calculate_fragments.nf index 00207e0a..1527fff2 100644 --- a/subworkflows/local/calculate_fragments.nf +++ b/subworkflows/local/calculate_fragments.nf @@ -20,22 +20,27 @@ workflow CALCULATE_FRAGMENTS { bam // channel: [ val(meta), [ bam ] ] main: + ch_versions = Channel.empty() /* * Filter BAM file */ SAMTOOLS_VIEW ( bam ) + ch_versions = ch_versions.mix(SAMTOOLS_VIEW.out.versions) /* * Sort BAM file */ SAMTOOLS_SORT ( SAMTOOLS_VIEW.out.bam ) + ch_versions = ch_versions.mix(SAMTOOLS_SORT.out.versions) // Convert to bed file BEDTOOLS_BAMTOBED ( SAMTOOLS_SORT.out.bam ) + ch_versions = ch_versions.mix(BEDTOOLS_BAMTOBED.out.versions) // Keep the read pairs that are on the same chromosome and fragment length less than 1000bp. AWK ( BEDTOOLS_BAMTOBED.out.bed ) + ch_versions = ch_versions.mix(AWK.out.versions) // Only extract the fragment related columns CUT ( AWK.out.file ) @@ -44,7 +49,5 @@ workflow CALCULATE_FRAGMENTS { bed = CUT.out.file // channel: [ val(meta), [ bed ] ] bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] - samtools_versions = SAMTOOLS_SORT.out.versions // path: *.version.txt - bedtools_versions = BEDTOOLS_BAMTOBED.out.versions // path: *.version.txt - awk_versions = AWK.out.versions // path: *.version.txt + versions = ch_versions // channel: [ versions.yml ] } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index ac230605..d0874f21 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -806,7 +806,7 @@ workflow CUTANDRUN { CALCULATE_FRAGMENTS ( ch_samtools_bam ) - ch_software_versions = ch_software_versions.mix(CALCULATE_FRAGMENTS.out.bedtools_versions) + ch_software_versions = ch_software_versions.mix(CALCULATE_FRAGMENTS.out.versions) //EXAMPLE CHANNEL STRUCT: NO CHANGE //CALCULATE_FRAGMENTS.out.bed | view From 2cdb620fbea39d6ae74464822ca2e90f053a52ef Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 14:12:05 +0000 Subject: [PATCH 058/125] syntax fix --- modules/local/python/plot_consensus_peaks.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/python/plot_consensus_peaks.nf b/modules/local/python/plot_consensus_peaks.nf index b01913ec..f062b5a4 100644 --- a/modules/local/python/plot_consensus_peaks.nf +++ b/modules/local/python/plot_consensus_peaks.nf @@ -17,7 +17,7 @@ process PLOT_CONSENSUS_PEAKS { path(consensus_peaks) output: - path ("*.pdf"), optional:true, emit: pdf + path ("*.pdf") , optional:true, emit: pdf path "versions.yml", emit: versions script: From d26a5586ae7b902901d4d28a9a41ba0d8cfd6889 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 14:16:10 +0000 Subject: [PATCH 059/125] corrected versioning CONSENSUS_PEAKS workflow --- subworkflows/local/consensus_peaks.nf | 9 ++++++++- workflows/cutandrun.nf | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/subworkflows/local/consensus_peaks.nf b/subworkflows/local/consensus_peaks.nf index 37e09195..ed27a0e7 100644 --- a/subworkflows/local/consensus_peaks.nf +++ b/subworkflows/local/consensus_peaks.nf @@ -19,23 +19,30 @@ workflow CONSENSUS_PEAKS { bed // channel: [ val(meta), [ bed ], count] main: + ch_versions = Channel.empty() // Sort bed files SORT ( bed ) + ch_versions = ch_versions.mix(SORT.out.versions) + // Merge peaks BEDTOOLS_MERGE ( SORT.out.file ) + ch_versions = ch_versions.mix(BEDTOOLS_MERGE.out.versions) // Filter peaks on minimum replicate consensus AWK ( BEDTOOLS_MERGE.out.bed ) + ch_versions = ch_versions.mix(AWK.out.versions) // Plot consensus peak sets if(params.run_peak_plotting) { PLOT_CONSENSUS_PEAKS ( BEDTOOLS_MERGE.out.bed.collect{it[1]}.ifEmpty([]) ) + ch_versions = ch_versions.mix(PLOT_CONSENSUS_PEAKS.out.versions) + } emit: bed = BEDTOOLS_MERGE.out.bed // channel: [ val(meta), [ bed ] ] filtered_bed = AWK.out.file // channel: [ val(meta), [ bed ] ] - bedtools_versions = BEDTOOLS_MERGE.out.versions // path: *.version.txt + versions = ch_versions // channel: [ versions.yml ] } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index d0874f21..036e7984 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -761,6 +761,8 @@ workflow CUTANDRUN { CONSENSUS_PEAKS_ALL ( ch_seacr_bed_all ) + ch_software_versions = ch_software_versions.mix(CONSENSUS_PEAKS_ALL.out.versions) + // EXAMPLE CHANNEL STRUCT: [[META], BED] //CONSENSUS_PEAKS_ALL.out.bed | view @@ -793,6 +795,8 @@ workflow CUTANDRUN { CONSENSUS_PEAKS ( ch_seacr_bed_group ) + ch_software_versions = ch_software_versions.mix(CONSENSUS_PEAKS.out.versions) + // EXAMPLE CHANNEL STRUCT: [[META], BED] //CONSENSUS_PEAKS.out.bed | view From 2983fec463956a4205d34ecc9d4d2a5f4edc6d35 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 14:23:49 +0000 Subject: [PATCH 060/125] corrected versioning FASTQC_TRIMGALORE submodule --- subworkflows/local/fastqc_trimgalore.nf | 32 ++++++++++++------------- workflows/cutandrun.nf | 3 +-- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/subworkflows/local/fastqc_trimgalore.nf b/subworkflows/local/fastqc_trimgalore.nf index fda61836..6c5e729b 100644 --- a/subworkflows/local/fastqc_trimgalore.nf +++ b/subworkflows/local/fastqc_trimgalore.nf @@ -15,40 +15,40 @@ workflow FASTQC_TRIMGALORE { skip_trimming // boolean: true/false main: + ch_versions = Channel.empty() + fastqc_html = Channel.empty() fastqc_zip = Channel.empty() - fastqc_versions = Channel.empty() if (!skip_fastqc) { FASTQC ( reads ).html.set { fastqc_html } - fastqc_zip = FASTQC.out.zip - fastqc_versions = FASTQC.out.versions + fastqc_zip = FASTQC.out.zip + ch_versions = ch_versions.mix(FASTQC.out.versions) } trim_html = Channel.empty() trim_zip = Channel.empty() trim_log = Channel.empty() - trimgalore_versions = Channel.empty() ch_output_reads = reads if (!skip_trimming) { TRIMGALORE ( reads ) ch_output_reads = TRIMGALORE.out.reads - trim_html = TRIMGALORE.out.html - trim_zip = TRIMGALORE.out.zip - trim_log = TRIMGALORE.out.log - trimgalore_versions = TRIMGALORE.out.versions + trim_html = TRIMGALORE.out.html + trim_zip = TRIMGALORE.out.zip + trim_log = TRIMGALORE.out.log + ch_versions = ch_versions.mix(TRIMGALORE.out.versions) + } emit: - reads = ch_output_reads // channel: [ val(meta), [ reads ] ] + reads = ch_output_reads // channel: [ val(meta), [ reads ] ] + versions = ch_versions // channel: [ versions.yml ] - fastqc_html // channel: [ val(meta), [ html ] ] - fastqc_zip // channel: [ val(meta), [ zip ] ] - fastqc_versions // path: *.version.txt + fastqc_html // channel: [ val(meta), [ html ] ] + fastqc_zip // channel: [ val(meta), [ zip ] ] - trim_html // channel: [ val(meta), [ html ] ] - trim_zip // channel: [ val(meta), [ zip ] ] - trim_log // channel: [ val(meta), [ txt ] ] - trimgalore_versions // path: *.version.txt + trim_html // channel: [ val(meta), [ html ] ] + trim_zip // channel: [ val(meta), [ zip ] ] + trim_log // channel: [ val(meta), [ txt ] ] } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 036e7984..f13dd017 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -421,8 +421,7 @@ workflow CUTANDRUN { params.skip_trimming ) ch_trimmed_reads = FASTQC_TRIMGALORE.out.reads - ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.fastqc_versions) - ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.trimgalore_versions) + ch_software_versions = ch_software_versions.mix(FASTQC_TRIMGALORE.out.versions) } //EXAMPLE CHANNEL STRUCT: [[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false], [READS]] //FASTQC_TRIMGALORE.out.reads | view From 2bddb42ee4471f15d94c1dbe4a58aa92d42bf42d Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 14:27:12 +0000 Subject: [PATCH 061/125] syntax fix --- modules/nf-core/modules/gunzip/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/nf-core/modules/gunzip/main.nf b/modules/nf-core/modules/gunzip/main.nf index 84df1aff..a52b0428 100644 --- a/modules/nf-core/modules/gunzip/main.nf +++ b/modules/nf-core/modules/gunzip/main.nf @@ -22,7 +22,7 @@ process GUNZIP { path archive output: - path "$gunzip", emit: gunzip + path "$gunzip" , emit: gunzip path "versions.yml" , emit: versions script: From b9df9166357b7467a18cf061a1a17c4ce6773f42 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 14:45:17 +0000 Subject: [PATCH 062/125] corrected versioning PREPARE_GENOME subworkflow --- subworkflows/local/prepare_genome.nf | 25 ++++++++++++++++++------- workflows/cutandrun.nf | 3 +-- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 2fedfce7..8ac3f8ee 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -23,11 +23,14 @@ workflow PREPARE_GENOME { prepare_tool_indices // list: tools to prepare indices for main: + ch_versions = Channel.empty() + /* * Uncompress genome fasta file if required */ if (params.fasta.endsWith(".gz")) { - ch_fasta = GUNZIP_FASTA ( params.fasta ).gunzip + ch_fasta = GUNZIP_FASTA ( params.fasta ).gunzip + ch_versions = ch_versions.mix(GUNZIP_FASTA.out.versions) } else { ch_fasta = file(params.fasta) } @@ -37,6 +40,7 @@ workflow PREPARE_GENOME { */ if (params.spikein_fasta.endsWith(".gz")) { ch_spikein_fasta = GUNZIP_SPIKEIN_FASTA ( params.spikein_fasta ).gunzip + ch_versions = ch_versions.mix(GUNZIP_SPIKEIN_FASTA.out.versions) } else { ch_spikein_fasta = file(params.spikein_fasta) } @@ -46,7 +50,8 @@ workflow PREPARE_GENOME { */ ch_gtf = Channel.empty() if (params.gtf.endsWith(".gz")) { - ch_gtf = GUNZIP_GTF ( params.gtf ).gunzip + ch_gtf = GUNZIP_GTF ( params.gtf ).gunzip + ch_versions = ch_versions.mix(GUNZIP_GTF.out.versions) } else { ch_gtf = file(params.gtf) } @@ -58,6 +63,7 @@ workflow PREPARE_GENOME { if (params.gene_bed){ if (params.gene_bed.endsWith(".gz")) { ch_gene_bed = GUNZIP_BED ( params.gene_bed ).gunzip + ch_versions = ch_versions.mix(GUNZIP_BED.out.versions) } else { ch_gene_bed = file(params.gene_bed) } @@ -67,6 +73,8 @@ workflow PREPARE_GENOME { * Create chromosome sizes file */ ch_chrom_sizes = GET_CHROM_SIZES ( ch_fasta ).sizes + ch_versions = ch_versions.mix(GET_CHROM_SIZES.out.versions) + /* * Create chromosome sizes file for spike_in @@ -83,22 +91,25 @@ workflow PREPARE_GENOME { if (params.bowtie2) { if (params.bowtie2.endsWith(".tar.gz")) { ch_bt2_index = UNTAR_BT2_INDEX ( params.bowtie2 ).untar + ch_versions = ch_versions.mix(UNTAR_BT2_INDEX.out.versions) } else { ch_bt2_index = file(params.bowtie2) } } else { - ch_bt2_index = BOWTIE2_BUILD ( ch_fasta ).index - ch_bt2_versions = BOWTIE2_BUILD.out.versions + ch_bt2_index = BOWTIE2_BUILD ( ch_fasta ).index + ch_versions = ch_versions.mix(BOWTIE2_BUILD.out.versions) } if (params.spikein_bowtie2) { if (params.spikein_bowtie2.endsWith(".tar.gz")) { ch_bt2_spikein_index = UNTAR_SPIKEIN_BT2_INDEX ( params.spikein_bowtie2 ).untar + ch_versions = ch_versions.mix(UNTAR_SPIKEIN_BT2_INDEX.out.versions) } else { ch_bt2_spikein_index = file(params.spikein_bowtie2) } } else { - ch_bt2_spikein_index = BOWTIE2_SPIKEIN_BUILD ( ch_spikein_fasta ).index + ch_bt2_spikein_index = BOWTIE2_SPIKEIN_BUILD ( ch_spikein_fasta ).index + ch_versions = ch_versions.mix(BOWTIE2_SPIKEIN_BUILD.out.versions) } } @@ -110,6 +121,6 @@ workflow PREPARE_GENOME { bed = ch_gene_bed // path: genome.bed bowtie2_index = ch_bt2_index // path: bt2/index/ bowtie2_spikein_index = ch_bt2_spikein_index // path: bt2/index/ - bowtie2_versions = ch_bt2_versions // path: *.version.txt - samtools_versions = GET_CHROM_SIZES.out.versions // path: *.version.txt + + versions = ch_versions // channel: [ versions.yml ] } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index f13dd017..f597ffb8 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -368,8 +368,7 @@ workflow CUTANDRUN { PREPARE_GENOME ( prepare_tool_indices ) - ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.bowtie2_versions) - ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.samtools_versions) + ch_software_versions = ch_software_versions.mix(PREPARE_GENOME.out.versions) } /* From 14518d548ebe29b765371cff8aa2963bb056ffaf Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 14:57:30 +0000 Subject: [PATCH 063/125] corrected versioning MARK_DUPLICATES_PICARD subworkflow --- .../nf-core/mark_duplicates_picard.nf | 36 ++++++++++--------- workflows/cutandrun.nf | 3 +- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/subworkflows/nf-core/mark_duplicates_picard.nf b/subworkflows/nf-core/mark_duplicates_picard.nf index 7318d20f..a9cef528 100644 --- a/subworkflows/nf-core/mark_duplicates_picard.nf +++ b/subworkflows/nf-core/mark_duplicates_picard.nf @@ -18,14 +18,14 @@ workflow MARK_DUPLICATES_PICARD { /* * Picard MarkDuplicates */ - ch_bam = Channel.empty() - metrics = Channel.empty() - versions = Channel.empty() + ch_bam = Channel.empty() + metrics = Channel.empty() + ch_versions = Channel.empty() if( !params.control_only ) { PICARD_MARKDUPLICATES ( bam ) - ch_bam = PICARD_MARKDUPLICATES.out.bam - metrics = PICARD_MARKDUPLICATES.out.metrics - versions = PICARD_MARKDUPLICATES.out.versions + ch_bam = PICARD_MARKDUPLICATES.out.bam + metrics = PICARD_MARKDUPLICATES.out.metrics + ch_versions = ch_versions.mix(PICARD_MARKDUPLICATES.out.versions) } else { // Split out non igg files and run only on these bam.branch { it -> @@ -35,9 +35,9 @@ workflow MARK_DUPLICATES_PICARD { .set { ch_split } PICARD_MARKDUPLICATES ( ch_split.control ) - metrics = PICARD_MARKDUPLICATES.out.metrics - versions = PICARD_MARKDUPLICATES.out.versions - ch_bam = PICARD_MARKDUPLICATES.out.bam.mix ( ch_split.target ) + ch_bam = PICARD_MARKDUPLICATES.out.bam.mix ( ch_split.target ) + metrics = PICARD_MARKDUPLICATES.out.metrics + ch_versions = ch_versions.mix(PICARD_MARKDUPLICATES.out.versions) } //out_bam | view @@ -45,6 +45,7 @@ workflow MARK_DUPLICATES_PICARD { * Index BAM file */ SAMTOOLS_INDEX ( ch_bam ) + ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions) // Join bam/bai ch_bam @@ -58,15 +59,16 @@ workflow MARK_DUPLICATES_PICARD { * Run samtools stats, flagstat and idxstats */ BAM_STATS_SAMTOOLS ( ch_bam_bai ) + ch_versions = ch_versions.mix(BAM_STATS_SAMTOOLS.out.versions) emit: - bam = ch_bam // channel: [ val(meta), [ bam ] ] - metrics // channel: [ val(meta), [ metrics ] ] - picard_versions = versions // path: *.version.txt + bam = ch_bam // channel: [ val(meta), [ bam ] ] + metrics // channel: [ val(meta), [ metrics ] ] + + bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] + stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - samtools_versions = SAMTOOLS_INDEX.out.versions // path: *.version.txt + versions = ch_versions // channel: [ versions.yml ] } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index f597ffb8..1443f8f0 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -503,7 +503,7 @@ workflow CUTANDRUN { ch_samtools_flagstat = MARK_DUPLICATES_PICARD.out.flagstat ch_samtools_idxstats = MARK_DUPLICATES_PICARD.out.idxstats ch_markduplicates_metrics = MARK_DUPLICATES_PICARD.out.metrics - ch_software_versions = ch_software_versions.mix(MARK_DUPLICATES_PICARD.out.picard_versions) + ch_software_versions = ch_software_versions.mix(MARK_DUPLICATES_PICARD.out.versions) } //EXAMPLE CHANNEL STRUCT: [[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false], [BAM]] //ch_samtools_bam | view @@ -522,6 +522,7 @@ workflow CUTANDRUN { ch_samtools_flagstat = DEDUP_PICARD.out.flagstat ch_samtools_idxstats = DEDUP_PICARD.out.idxstats ch_dedup_multiqc = DEDUP_PICARD.out.metrics + ch_software_versions = ch_software_versions.mix(DEDUP_PICARD.out.versions) } //EXAMPLE CHANNEL STRUCT: [[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false], [BAM]] //ch_samtools_bam | view From 8b64b8ed2f243d790902d5beaa18e32918f37ae4 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 15:17:17 +0000 Subject: [PATCH 064/125] syntax fix --- modules/local/linux/awk.nf | 2 +- workflows/cutandrun.nf | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/local/linux/awk.nf b/modules/local/linux/awk.nf index 4ffa1a3b..1f988bac 100644 --- a/modules/local/linux/awk.nf +++ b/modules/local/linux/awk.nf @@ -25,7 +25,7 @@ process AWK { output: tuple val(meta), path("*.awk.*"), emit: file - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions script: def software = getSoftwareName(task.process) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 1443f8f0..72a61cf7 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -378,6 +378,7 @@ workflow CUTANDRUN { INPUT_CHECK ( ch_input ) + ch_software_versions = ch_software_versions.mix(INPUT_CHECK.out.versions) INPUT_CHECK.out.reads .map { @@ -402,6 +403,7 @@ workflow CUTANDRUN { CAT_FASTQ ( ch_fastq.multiple ) + ch_software_versions = ch_software_versions.mix(CAT_FASTQ.out.versions) CAT_FASTQ.out.reads .mix(ch_fastq.single) @@ -485,6 +487,7 @@ workflow CUTANDRUN { ch_samtools_stats = SAMTOOLS_VIEW_SORT_STATS.out.stats ch_samtools_flagstat = SAMTOOLS_VIEW_SORT_STATS.out.flagstat ch_samtools_idxstats = SAMTOOLS_VIEW_SORT_STATS.out.idxstats + ch_software_versions = ch_software_versions.mix(SAMTOOLS_VIEW_SORT_STATS.out.versions) } //EXAMPLE CHANNEL STRUCT: [[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false], [BAM]] //ch_samtools_bam | view @@ -545,8 +548,6 @@ workflow CUTANDRUN { ch_bt2_to_csv_awk ) ch_samtools_bam = ANNOTATE_BT2_SPIKEIN_META.out.output - ch_software_versions = ch_software_versions.mix(ANNOTATE_BT2_SPIKEIN_META.out.versions) - } // META-DATA example state: //[[id:h3k27me3_R1, group:h3k27me3, replicate:1, single_end:false, @@ -624,6 +625,7 @@ workflow CUTANDRUN { BEDTOOLS_GENOMECOV_SCALE ( ch_samtools_bam_scale ) + ch_software_versions = ch_software_versions.mix(BEDTOOLS_GENOMECOV_SCALE.out.versions) //EXAMPLE CHANNEL STRUCT: [META], BEDGRAPH] //BEDTOOLS_GENOMECOV_SCALE.out.bedgraph | view @@ -634,6 +636,7 @@ workflow CUTANDRUN { BEDTOOLS_GENOMECOV_SCALE.out.bedgraph, PREPARE_GENOME.out.chrom_sizes ) + ch_software_versions = ch_software_versions.mix(UCSC_BEDCLIP.out.versions) //EXAMPLE CHANNEL STRUCT: [META], BEDGRAPH] //UCSC_BEDCLIP.out.bedgraph | view @@ -695,7 +698,8 @@ workflow CUTANDRUN { ch_bedgraph_paired, params.peak_threshold ) - ch_seacr_bed = SEACR_CALLPEAK.out.bed + ch_seacr_bed = SEACR_CALLPEAK.out.bed + ch_software_versions = ch_software_versions.mix(SEACR_CALLPEAK.out.versions) //ch_software_versions = ch_software_versions.mix(SEACR_CALLPEAK.out.versions) // EXAMPLE CHANNEL STRUCT: [[META], BED] //SEACR_CALLPEAK.out.bed | view From 46b30dc96b32dbd94624efb7b8647403597108ef Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 15:20:48 +0000 Subject: [PATCH 065/125] syntax fix --- modules/local/python/igv_session.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/python/igv_session.nf b/modules/local/python/igv_session.nf index a15fc498..4893265a 100644 --- a/modules/local/python/igv_session.nf +++ b/modules/local/python/igv_session.nf @@ -23,7 +23,7 @@ process IGV_SESSION { output: path('*.{txt,xml,bed,bigWig,fa,gtf}', includeInputs:true) - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions script: From edb78acbc06ca93866eda9afff50fa622807c0ca Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 15:29:58 +0000 Subject: [PATCH 066/125] Included software versioning for all modules and subworkflows run --- workflows/cutandrun.nf | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 72a61cf7..0537d8d5 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -721,7 +721,8 @@ workflow CUTANDRUN { ch_bedgraph_target_fctrl, params.peak_threshold ) - ch_seacr_bed = SEACR_CALLPEAK_NOIGG.out.bed + ch_seacr_bed = SEACR_CALLPEAK_NOIGG.out.bed + ch_software_versions = ch_software_versions.mix(SEACR_CALLPEAK_NOIGG.out.versions) //ch_software_versions = ch_software_versions.mix(SEACR_NO_IGG.out.versions) // EXAMPLE CHANNEL STRUCT: [[META], BED] //SEACR_NO_IGG.out.bed | view @@ -733,6 +734,7 @@ workflow CUTANDRUN { AWK_NAME_PEAK_BED ( ch_seacr_bed ) + ch_software_versions = ch_software_versions.mix(AWK_NAME_PEAK_BED.out.versions) // EXAMPLE CHANNEL STRUCT: [[META], BED] //AWK_NAME_PEAK_BED.out.file | view @@ -843,6 +845,7 @@ workflow CUTANDRUN { SAMTOOLS_CUSTOMVIEW ( ch_bam_bai ) + ch_software_versions = ch_software_versions.mix(SAMTOOLS_CUSTOMVIEW.out.versions) //SAMTOOLS_CUSTOMVIEW.out.tsv | view } @@ -865,6 +868,7 @@ workflow CUTANDRUN { ch_seacr_bed.collect{it[1]}.ifEmpty([]), UCSC_BEDGRAPHTOBIGWIG.out.bigwig.collect{it[1]}.ifEmpty([]) ) + ch_software_versions = ch_software_versions.mix(IGV_SESSION.out.versions) } if (run_deep_tools){ @@ -874,6 +878,7 @@ workflow CUTANDRUN { AWK_EDIT_PEAK_BED ( ch_seacr_bed ) + ch_software_versions = ch_software_versions.mix(AWK_EDIT_PEAK_BED.out.versions) //AWK_EDIT_PEAK_BED.out.file | view /* @@ -918,7 +923,7 @@ workflow CUTANDRUN { DEEPTOOLS_PLOTHEATMAP_GENE ( DEEPTOOLS_COMPUTEMATRIX_GENE.out.matrix ) - + ch_software_versions = ch_software_versions.mix(DEEPTOOLS_PLOTHEATMAP_GENE.out.versions) /* * MODULE: Compute DeepTools matrix used in heatmap plotting for Peaks */ @@ -955,6 +960,7 @@ workflow CUTANDRUN { CALCULATE_FRIP ( ch_bam_bai_bed ) + ch_software_versions = ch_software_versions.mix(CALCULATE_FRIP.out.versions) /* * SUBWORKFLOW: Annotate meta-data with frip stats @@ -964,7 +970,8 @@ workflow CUTANDRUN { CALCULATE_FRIP.out.frips ) ch_samtools_bam_ctrl = ch_samtools_bam - ch_samtools_bam = ANNOTATE_FRIP_META.out.output + ch_samtools_bam = ANNOTATE_FRIP_META.out.output + ch_software_versions = ch_software_versions.mix(ANNOTATE_FRIP_META.out.versions) //ch_samtools_bam | view /* @@ -992,6 +999,7 @@ workflow CUTANDRUN { ch_beds_intersect, "bed" ) + ch_software_versions = ch_software_versions.mix(BEDTOOLS_INTERSECT.out.versions) //EXAMPLE CHANNEL STRUCT: [[META], BED] //BEDTOOLS_INTERSECT.out.intersect | view @@ -1001,6 +1009,7 @@ workflow CUTANDRUN { CALCULATE_PEAK_REPROD ( BEDTOOLS_INTERSECT.out.intersect ) + ch_software_versions = ch_software_versions.mix(CALCULATE_PEAK_REPROD.out.versions) //EXAMPLE CHANNEL STRUCT: [[META], CSV] //CALCULATE_PEAK_REPROD.out.csv @@ -1012,6 +1021,7 @@ workflow CUTANDRUN { CALCULATE_PEAK_REPROD.out.csv ) ch_samtools_bam = ANNOTATE_PEAK_REPRO_META.out.output + ch_software_versions = ch_software_versions.mix(ANNOTATE_PEAK_REPRO_META.out.versions) //ch_samtools_bam | view /* From 8fcd57fd02f501afa0a04cae87150106353bb83e Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 15:35:50 +0000 Subject: [PATCH 067/125] corrected versioning SAMTOOLS_VIEW_SORT_STATS subworkflow --- .../nf-core/samtools_view_sort_stats.nf | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/subworkflows/nf-core/samtools_view_sort_stats.nf b/subworkflows/nf-core/samtools_view_sort_stats.nf index 64d91680..c302652d 100644 --- a/subworkflows/nf-core/samtools_view_sort_stats.nf +++ b/subworkflows/nf-core/samtools_view_sort_stats.nf @@ -16,20 +16,24 @@ workflow SAMTOOLS_VIEW_SORT_STATS { bam // channel: [ val(meta), [ bam ] ] main: + ch_versions = Channel.empty() /* * Filter BAM file */ SAMTOOLS_VIEW ( bam ) + ch_versions = ch_versions.mix(SAMTOOLS_VIEW.out.versions) /* * Sort BAM file */ SAMTOOLS_SORT ( SAMTOOLS_VIEW.out.bam ) + ch_versions = ch_versions.mix(SAMTOOLS_SORT.out.versions) /* * Index BAM file and run samtools stats, flagstat and idxstats */ SAMTOOLS_INDEX ( SAMTOOLS_SORT.out.bam ) + ch_versions = ch_versions.mix(SAMTOOLS_INDEX.out.versions) // Join bam/bai ch_bam_sample_id = SAMTOOLS_SORT.out.bam.map { row -> [row[0].id, row] } @@ -37,12 +41,13 @@ workflow SAMTOOLS_VIEW_SORT_STATS { ch_bam_bai = ch_bam_sample_id.join(ch_bai_sample_id, by: [0]).map {row -> [row[1][0], row[1][1], row[2][1]]} BAM_STATS_SAMTOOLS ( ch_bam_bai ) + ch_versions = ch_versions.mix(BAM_STATS_SAMTOOLS.out.versions) emit: - bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] - bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] - stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] - flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] - idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] - samtools_versions = SAMTOOLS_INDEX.out.versions // path: *.version.txt + bam = SAMTOOLS_SORT.out.bam // channel: [ val(meta), [ bam ] ] + bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] + stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] + flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] + idxstats = BAM_STATS_SAMTOOLS.out.idxstats // channel: [ val(meta), [ idxstats ] ] + versions = ch_versions // channel: [ versions.yml ] } From 43e955a3cedc5d6a8241136d8121c3fbc9e25126 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 15:38:01 +0000 Subject: [PATCH 068/125] removed versioning sort --- subworkflows/local/consensus_peaks.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/subworkflows/local/consensus_peaks.nf b/subworkflows/local/consensus_peaks.nf index ed27a0e7..ec90e371 100644 --- a/subworkflows/local/consensus_peaks.nf +++ b/subworkflows/local/consensus_peaks.nf @@ -23,8 +23,6 @@ workflow CONSENSUS_PEAKS { // Sort bed files SORT ( bed ) - ch_versions = ch_versions.mix(SORT.out.versions) - // Merge peaks BEDTOOLS_MERGE ( SORT.out.file ) From c84f10afd49389e1b17c15b7cc4abcc2e7c35d31 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 15:40:24 +0000 Subject: [PATCH 069/125] removed versioning annotate_frip_meta --- workflows/cutandrun.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 0537d8d5..fa5949f4 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -971,7 +971,6 @@ workflow CUTANDRUN { ) ch_samtools_bam_ctrl = ch_samtools_bam ch_samtools_bam = ANNOTATE_FRIP_META.out.output - ch_software_versions = ch_software_versions.mix(ANNOTATE_FRIP_META.out.versions) //ch_samtools_bam | view /* From 89fa904c0b3fb6510151092c08a6acc30e6bfff3 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 15:42:25 +0000 Subject: [PATCH 070/125] removed versioning annotate_peak_repro_meta --- workflows/cutandrun.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index fa5949f4..fe127d76 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -1020,7 +1020,6 @@ workflow CUTANDRUN { CALCULATE_PEAK_REPROD.out.csv ) ch_samtools_bam = ANNOTATE_PEAK_REPRO_META.out.output - ch_software_versions = ch_software_versions.mix(ANNOTATE_PEAK_REPRO_META.out.versions) //ch_samtools_bam | view /* From 61c309bbdc2cba9fbacbe101516b894d9671a3b9 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 16:22:26 +0000 Subject: [PATCH 071/125] removed versioning input_check --- workflows/cutandrun.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index fe127d76..dd1b9490 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -378,7 +378,6 @@ workflow CUTANDRUN { INPUT_CHECK ( ch_input ) - ch_software_versions = ch_software_versions.mix(INPUT_CHECK.out.versions) INPUT_CHECK.out.reads .map { From 4aa1b4059d59e08ded102596ea8acb85c681b176 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 10 Nov 2021 16:56:34 +0000 Subject: [PATCH 072/125] improved versioning trim galore --- modules/local/modules/trimgalore/main.nf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/local/modules/trimgalore/main.nf b/modules/local/modules/trimgalore/main.nf index 9596e332..019fbf26 100644 --- a/modules/local/modules/trimgalore/main.nf +++ b/modules/local/modules/trimgalore/main.nf @@ -66,8 +66,9 @@ process TRIMGALORE { ${prefix}.fastq.gz cat <<-END_VERSIONS > versions.yml - ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(trim_galore --version 2>&1 | sed 's/^.*version //; s/Last.*\$//') + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(trim_galore --version 2>&1) | sed 's/^.*version //; s/Last.*\$//') + cutadapt: \$(cutadapt --version) END_VERSIONS """ } else { @@ -87,8 +88,9 @@ process TRIMGALORE { ${meta.id}_2.fastq.gz cat <<-END_VERSIONS > versions.yml - ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(trim_galore --version 2>&1 | sed 's/^.*version //; s/Last.*\$//') + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(trim_galore --version 2>&1) | sed 's/^.*version //; s/Last.*\$//') + cutadapt: \$(cutadapt --version) END_VERSIONS mv ${meta.id}_1_val_1.fq.gz ${prefix_1}.fastq.gz From 8a830c0b0bfee5181190b0628a1b7704ab3f6823 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Thu, 11 Nov 2021 10:05:40 +0000 Subject: [PATCH 073/125] Finished versioning --- modules/local/get_chrom_sizes.nf | 2 +- modules/local/python/generate_reports.nf | 2 +- modules/local/python/igv_session.nf | 2 +- modules/local/python/plot_consensus_peaks.nf | 2 +- modules/local/python/samplesheet_check.nf | 2 +- workflows/cutandrun.nf | 10 +--------- 6 files changed, 6 insertions(+), 14 deletions(-) diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf index 8410b7a7..3a69a7b3 100644 --- a/modules/local/get_chrom_sizes.nf +++ b/modules/local/get_chrom_sizes.nf @@ -37,7 +37,7 @@ process GET_CHROM_SIZES { cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ } diff --git a/modules/local/python/generate_reports.nf b/modules/local/python/generate_reports.nf index 08465d79..914059ab 100644 --- a/modules/local/python/generate_reports.nf +++ b/modules/local/python/generate_reports.nf @@ -45,7 +45,7 @@ process GENERATE_REPORTS { cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + python: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") END_VERSIONS """ diff --git a/modules/local/python/igv_session.nf b/modules/local/python/igv_session.nf index 4893265a..5e0d6b39 100644 --- a/modules/local/python/igv_session.nf +++ b/modules/local/python/igv_session.nf @@ -58,7 +58,7 @@ process IGV_SESSION { cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + python: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") END_VERSIONS """ } diff --git a/modules/local/python/plot_consensus_peaks.nf b/modules/local/python/plot_consensus_peaks.nf index f062b5a4..b6d577ff 100644 --- a/modules/local/python/plot_consensus_peaks.nf +++ b/modules/local/python/plot_consensus_peaks.nf @@ -28,7 +28,7 @@ process PLOT_CONSENSUS_PEAKS { cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + python: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") END_VERSIONS """ diff --git a/modules/local/python/samplesheet_check.nf b/modules/local/python/samplesheet_check.nf index 287623bf..71e55844 100644 --- a/modules/local/python/samplesheet_check.nf +++ b/modules/local/python/samplesheet_check.nf @@ -30,7 +30,7 @@ process SAMPLESHEET_CHECK { cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: - ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") + python: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") END_VERSIONS """ } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index dd1b9490..3c807af6 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -867,7 +867,7 @@ workflow CUTANDRUN { ch_seacr_bed.collect{it[1]}.ifEmpty([]), UCSC_BEDGRAPHTOBIGWIG.out.bigwig.collect{it[1]}.ifEmpty([]) ) - ch_software_versions = ch_software_versions.mix(IGV_SESSION.out.versions) + // ch_software_versions = ch_software_versions.mix(IGV_SESSION.out.versions) } if (run_deep_tools){ @@ -1055,14 +1055,6 @@ workflow CUTANDRUN { /* * MODULE: Collect software versions used in pipeline */ - ch_software_versions - .map { it -> if (it) [ it.baseName, it ] } - .groupTuple() - .map { it[1][0] } - .flatten() - .collect() - .set { ch_software_versions } - CUSTOM_DUMPSOFTWAREVERSIONS ( ch_software_versions.unique().collectFile() ) From 7f5780614113788cb1c62e2aa03078f61584a079 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 10:55:33 +0000 Subject: [PATCH 074/125] Added bedtools sort back --- modules/nf-core/modules/bedtools/sort/main.nf | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 modules/nf-core/modules/bedtools/sort/main.nf diff --git a/modules/nf-core/modules/bedtools/sort/main.nf b/modules/nf-core/modules/bedtools/sort/main.nf new file mode 100644 index 00000000..bdba3376 --- /dev/null +++ b/modules/nf-core/modules/bedtools/sort/main.nf @@ -0,0 +1,42 @@ +// Import generic module functions +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' + +params.options = [:] +options = initOptions(params.options) + +process BEDTOOLS_SORT { + tag "$meta.id" + label 'process_medium' + publishDir "${params.outdir}", + mode: params.publish_dir_mode, + saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:meta, publish_by_meta:['id']) } + + conda (params.enable_conda ? "bioconda::bedtools=2.30.0" : null) + if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { + container "https://depot.galaxyproject.org/singularity/bedtools:2.30.0--hc088bd4_0" + } else { + container "quay.io/biocontainers/bedtools:2.30.0--hc088bd4_0" + } + + input: + tuple val(meta), path(bed) + + output: + tuple val(meta), path('*.bed'), emit: bed + path "versions.yml" , emit: versions + + script: + def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" + """ + bedtools \\ + sort \\ + -i $bed \\ + $options.args \\ + > ${prefix}.bed + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(bedtools --version | sed -e "s/bedtools v//g") + END_VERSIONS + """ +} From b95493f8b2769baa180482739deb506d46005452 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 11:02:52 +0000 Subject: [PATCH 075/125] Updated modules.json --- modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules.json b/modules.json index 0819b31b..502f9ebc 100644 --- a/modules.json +++ b/modules.json @@ -16,7 +16,7 @@ "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "bedtools/sort": { - "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" + "git_sha": "2959b4ba070d138d1577acc48d35cc669fbef972" }, "bowtie2/align": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" From b39ae0eed5e75888229b1eaa40b394c49f6e7441 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 11:03:02 +0000 Subject: [PATCH 076/125] Updated bedtools sort --- modules/nf-core/modules/bedtools/sort/main.nf | 11 ++++++----- .../nf-core/modules/bedtools/sort/meta.yml | 19 +++++++++++++------ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/modules/nf-core/modules/bedtools/sort/main.nf b/modules/nf-core/modules/bedtools/sort/main.nf index bdba3376..4a51c4b2 100644 --- a/modules/nf-core/modules/bedtools/sort/main.nf +++ b/modules/nf-core/modules/bedtools/sort/main.nf @@ -19,20 +19,21 @@ process BEDTOOLS_SORT { } input: - tuple val(meta), path(bed) + tuple val(meta), path(intervals) + val extension output: - tuple val(meta), path('*.bed'), emit: bed - path "versions.yml" , emit: versions + tuple val(meta), path("*.${extension}"), emit: sorted + path "versions.yml" , emit: versions script: def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" """ bedtools \\ sort \\ - -i $bed \\ + -i $intervals \\ $options.args \\ - > ${prefix}.bed + > ${prefix}.${extension} cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: diff --git a/modules/nf-core/modules/bedtools/sort/meta.yml b/modules/nf-core/modules/bedtools/sort/meta.yml index 5b8b41d7..c7b1b098 100644 --- a/modules/nf-core/modules/bedtools/sort/meta.yml +++ b/modules/nf-core/modules/bedtools/sort/meta.yml @@ -15,20 +15,26 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - bed: + - intervals: type: file - description: Input BED file - pattern: "*.{bed}" + description: BED/BEDGRAPH + pattern: "*.{bed|bedGraph}" + + - extension: + type: string + description: Extension of the output file (e. g., ".bg", ".bedgraph", ".txt", ".tab", etc.) It is set arbitrarily by the user and corresponds to the file format which depends on arguments. output: - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - bed: + + - sorted: type: file - description: Sorted BED file - pattern: "*.{bed}" + description: Sorted output file + pattern: "*.${extension}" + - versions: type: file description: File containing software versions @@ -37,3 +43,4 @@ authors: - "@Emiller88" - "@sruthipsuresh" - "@drpatelh" + - "@chris-cheshire" From d3420542756cda641df457c8b6d0ef39a0e70011 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 11:06:21 +0000 Subject: [PATCH 077/125] Updates to get pipeline working after merge conflicts --- workflows/cutandrun.nf | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index abffe62c..d9354f0d 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -303,7 +303,6 @@ include { CALCULATE_PEAK_REPROD } from "../modules/local/modules/calcu include { EXPORT_META } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) include { EXPORT_META as EXPORT_META_CTRL } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) include { GENERATE_REPORTS } from "../modules/local/python/generate_reports" addParams( options: modules["generate_reports"] ) -include { GET_SOFTWARE_VERSIONS } from "../modules/local/get_software_versions" addParams( options: [publish_files : ["csv":""]] ) include { MULTIQC } from "../modules/local/multiqc" addParams( options: multiqc_options ) /* @@ -330,18 +329,19 @@ include { ANNOTATE_META_CSV as ANNOTATE_PEAK_REPRO_META } from "../subworkflows /* * MODULES */ -include { CAT_FASTQ } from "../modules/nf-core/modules/cat/fastq/main" addParams( options: cat_fastq_options ) -include { BEDTOOLS_GENOMECOV } from "../modules/nf-core/modules/bedtools/genomecov/main" addParams( options: modules["bedtools_genomecov_bedgraph"] ) -include { BEDTOOLS_SORT } from "../modules/nf-core/modules/bedtools/sort/main" addParams( options: modules["sort_bedgraph"] ) -include { UCSC_BEDCLIP } from "../modules/nf-core/modules/ucsc/bedclip/main" addParams( options: modules["ucsc_bedclip"] ) -include { UCSC_BEDGRAPHTOBIGWIG } from "../modules/nf-core/modules/ucsc/bedgraphtobigwig/main" addParams( options: modules["ucsc_bedgraphtobigwig"] ) -include { SEACR_CALLPEAK } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) -include { SEACR_CALLPEAK as SEACR_CALLPEAK_NOIGG } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) -include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_GENE } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_gene"] ) -include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_PEAKS } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_peaks"] ) -include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_GENE } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_gene"] ) -include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_PEAKS } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_peaks"] ) -include { BEDTOOLS_INTERSECT } from "../modules/nf-core/modules/bedtools/intersect/main.nf" addParams( options: bedtools_intersect_options ) +include { CAT_FASTQ } from "../modules/nf-core/modules/cat/fastq/main" addParams( options: cat_fastq_options ) +include { BEDTOOLS_GENOMECOV } from "../modules/nf-core/modules/bedtools/genomecov/main" addParams( options: modules["bedtools_genomecov_bedgraph"] ) +include { BEDTOOLS_SORT } from "../modules/nf-core/modules/bedtools/sort/main" addParams( options: modules["sort_bedgraph"] ) +include { UCSC_BEDCLIP } from "../modules/nf-core/modules/ucsc/bedclip/main" addParams( options: modules["ucsc_bedclip"] ) +include { UCSC_BEDGRAPHTOBIGWIG } from "../modules/nf-core/modules/ucsc/bedgraphtobigwig/main" addParams( options: modules["ucsc_bedgraphtobigwig"] ) +include { SEACR_CALLPEAK } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) +include { SEACR_CALLPEAK as SEACR_CALLPEAK_NOIGG } from "../modules/nf-core/modules/seacr/callpeak/main" addParams( options: modules["seacr"] ) +include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_GENE } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_gene"] ) +include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_PEAKS } from "../modules/nf-core/modules/deeptools/computematrix/main" addParams( options: modules["dt_compute_mat_peaks"] ) +include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_GENE } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_gene"] ) +include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_PEAKS } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_peaks"] ) +include { BEDTOOLS_INTERSECT } from "../modules/nf-core/modules/bedtools/intersect/main.nf" addParams( options: bedtools_intersect_options ) +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' addParams( options: [publish_files : ['_versions.yml':'']] ) /* * SUBWORKFLOW: Consisting entirely of nf-core/modules @@ -627,7 +627,7 @@ workflow CUTANDRUN { ch_dummy_file, "bedGraph" ) - ch_software_versions = ch_software_versions.mix(BEDTOOLS_GENOMECOV_SCALE.out.versions) + ch_software_versions = ch_software_versions.mix(BEDTOOLS_GENOMECOV.out.versions) //EXAMPLE CHANNEL STRUCT: [META], BEDGRAPH] //BEDTOOLS_GENOMECOV.out.genomecov | view @@ -638,12 +638,13 @@ workflow CUTANDRUN { BEDTOOLS_GENOMECOV.out.genomecov, "bedGraph" ) + ch_software_versions = ch_software_versions.mix(BEDTOOLS_SORT.out.versions) /* * MODULE: Clip off bedgraphs so none overlap beyond chromosome edge */ UCSC_BEDCLIP ( - BEDTOOLS_SORT.out.sort, + BEDTOOLS_SORT.out.sorted, PREPARE_GENOME.out.chrom_sizes ) ch_software_versions = ch_software_versions.mix(UCSC_BEDCLIP.out.versions) @@ -664,7 +665,7 @@ workflow CUTANDRUN { /* * CHANNEL: Separate bedgraphs into target/control */ - BEDTOOLS_SORT.out.sort.branch { it -> + BEDTOOLS_SORT.out.sorted.branch { it -> target: it[0].group != "igg" control: it[0].group == "igg" } From be1f559c86382ca8044a77afbb3eaf627d8ee782 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 12:03:51 +0000 Subject: [PATCH 078/125] Added custom version dump module that has better version output --- assets/multiqc_config.yaml | 6 ++ modules.json | 3 - .../custom/dumpsoftwareversions/functions.nf | 0 .../custom/dumpsoftwareversions/main.nf | 71 +++++++++++++++++-- .../custom/dumpsoftwareversions/meta.yml | 0 modules/local/multiqc.nf | 1 + workflows/cutandrun.nf | 3 +- 7 files changed, 75 insertions(+), 9 deletions(-) rename modules/{nf-core => local}/modules/custom/dumpsoftwareversions/functions.nf (100%) rename modules/{nf-core => local}/modules/custom/dumpsoftwareversions/main.nf (59%) rename modules/{nf-core => local}/modules/custom/dumpsoftwareversions/meta.yml (100%) diff --git a/assets/multiqc_config.yaml b/assets/multiqc_config.yaml index 79e96ada..a2656ee4 100644 --- a/assets/multiqc_config.yaml +++ b/assets/multiqc_config.yaml @@ -46,6 +46,12 @@ module_order: - picard - custom_content +custom_content: + order: + - fragment_lengths + - software_versions + - software_versions_unique + # Don't show % Dups in the General Stats table (we have this from Picard) table_columns_visible: FastQC: diff --git a/modules.json b/modules.json index 502f9ebc..b673cfb9 100644 --- a/modules.json +++ b/modules.json @@ -27,9 +27,6 @@ "cat/fastq": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, - "custom/dumpsoftwareversions": { - "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" - }, "deeptools/computematrix": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/functions.nf b/modules/local/modules/custom/dumpsoftwareversions/functions.nf similarity index 100% rename from modules/nf-core/modules/custom/dumpsoftwareversions/functions.nf rename to modules/local/modules/custom/dumpsoftwareversions/functions.nf diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf b/modules/local/modules/custom/dumpsoftwareversions/main.nf similarity index 59% rename from modules/nf-core/modules/custom/dumpsoftwareversions/main.nf rename to modules/local/modules/custom/dumpsoftwareversions/main.nf index faf2073f..d46fb91f 100644 --- a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf +++ b/modules/local/modules/custom/dumpsoftwareversions/main.nf @@ -22,9 +22,10 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { path versions output: - path "software_versions.yml" , emit: yml - path "software_versions_mqc.yml", emit: mqc_yml - path "versions.yml" , emit: versions + path "software_versions.yml" , emit: yml + path "software_versions_mqc.yml" , emit: mqc_yml + path "software_versions_unique_mqc.yml", emit: mqc_unique_yml + path "local_versions.yml" , emit: versions script: """ @@ -72,6 +73,53 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { html.append("") return "\\n".join(html) + def _make_versions_unique_html(versions): + unique_versions = [] + + for process, tmp_versions in sorted(versions.items()): + for i, (tool, version) in enumerate(sorted(tmp_versions.items())): + tool_version = tool + "=" + version + if tool_version not in unique_versions: + unique_versions.append(tool_version) + + unique_versions.sort() + + html = [ + dedent( + '''\\ + + + + + + + + + ''' + ) + ] + + for tool_version in unique_versions: + tool_version_split = tool_version.split('=') + html.append("") + html.append( + dedent( + f'''\\ + + + + + ''' + ) + ) + html.append("") + html.append("
Software Version
{tool_version_split[0]}{tool_version_split[1]}
") + return "\\n".join(html) + module_versions = {} module_versions["${getProcessName(task.process)}"] = { 'python': platform.python_version(), @@ -88,19 +136,32 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { versions_mqc = { 'id': 'software_versions', - 'section_name': '${workflow.manifest.name} Software Versions', + 'section_name': '${workflow.manifest.name} Software Versions by Process', 'section_href': 'https://github.com/${workflow.manifest.name}', 'plot_type': 'html', 'description': 'are collected at run time from the software output.', 'data': _make_versions_html(workflow_versions) } + versions_mqc_unique = { + 'id': 'software_versions_unique', + 'section_name': '${workflow.manifest.name} Software Versions', + 'section_href': 'https://github.com/${workflow.manifest.name}', + 'plot_type': 'html', + 'description': 'are collected at run time from the software output.', + 'data': _make_versions_unique_html(workflow_versions) + } + with open("software_versions.yml", 'w') as f: yaml.dump(workflow_versions, f, default_flow_style=False) + with open("software_versions_mqc.yml", 'w') as f: yaml.dump(versions_mqc, f, default_flow_style=False) - with open('versions.yml', 'w') as f: + with open("software_versions_unique_mqc.yml", 'w') as f: + yaml.dump(versions_mqc_unique, f, default_flow_style=False) + + with open('local_versions.yml', 'w') as f: yaml.dump(module_versions, f, default_flow_style=False) """ } diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml b/modules/local/modules/custom/dumpsoftwareversions/meta.yml similarity index 100% rename from modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml rename to modules/local/modules/custom/dumpsoftwareversions/meta.yml diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index 5f83ce7f..72a683d2 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -21,6 +21,7 @@ process MULTIQC { path multiqc_config path multiqc_custom_config path software_versions + path software_versions_unique path workflow_summary path ('fastqc/*') path ('trimgalore/fastqc/*') diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index d9354f0d..08f5c28e 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -341,7 +341,7 @@ include { DEEPTOOLS_COMPUTEMATRIX as DEEPTOOLS_COMPUTEMATRIX_PEAKS } from "../mo include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_GENE } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_gene"] ) include { DEEPTOOLS_PLOTHEATMAP as DEEPTOOLS_PLOTHEATMAP_PEAKS } from "../modules/nf-core/modules/deeptools/plotheatmap/main" addParams( options: modules["dt_plotheatmap_peaks"] ) include { BEDTOOLS_INTERSECT } from "../modules/nf-core/modules/bedtools/intersect/main.nf" addParams( options: bedtools_intersect_options ) -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' addParams( options: [publish_files : ['_versions.yml':'']] ) +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/local/modules/custom/dumpsoftwareversions/main' addParams( options: [publish_files : ['_versions.yml':'']] ) // LOCAL FOR NOW WHILE PR IS DISCUSSED /* * SUBWORKFLOW: Consisting entirely of nf-core/modules @@ -1082,6 +1082,7 @@ workflow CUTANDRUN { ch_multiqc_config, ch_multiqc_custom_config.collect().ifEmpty([]), CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect(), + CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_unique_yml.collect(), ch_workflow_summary.collectFile(name: "workflow_summary_mqc.yaml"), FASTQC_TRIMGALORE.out.fastqc_zip.collect{it[1]}.ifEmpty([]), FASTQC_TRIMGALORE.out.trim_zip.collect{it[1]}.ifEmpty([]), From 48e7560ed81b008664c19dceeab64893622991ef Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 13:32:03 +0000 Subject: [PATCH 079/125] Removed scrape software versions --- bin/scrape_software_versions.py | 36 --------------------------------- 1 file changed, 36 deletions(-) delete mode 100755 bin/scrape_software_versions.py diff --git a/bin/scrape_software_versions.py b/bin/scrape_software_versions.py deleted file mode 100755 index b87f78a2..00000000 --- a/bin/scrape_software_versions.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function -import os - -results = {} -version_files = [x for x in os.listdir(".") if x.endswith(".version.txt")] -for version_file in version_files: - - software = version_file.replace(".version.txt", "") - if software == "pipeline": - software = "nf-core/cutandrun" - - with open(version_file) as fin: - version = fin.read().strip() - results[software] = version - -# Dump to YAML -print( - """ -id: 'software_versions' -section_name: 'nf-core/cutandrun Software Versions' -section_href: 'https://github.com/nf-core/cutandrun' -plot_type: 'html' -description: 'are collected at run time from the software output.' -data: | -
-""" -) -for k, v in sorted(results.items()): - print("
{}
{}
".format(k, v)) -print("
") - -# Write out as tsv file: -with open("software_versions.tsv", "w") as f: - for k, v in sorted(results.items()): - f.write("{}\t{}\n".format(k, v)) From ae97269efe4bb19d291ae4330ea45addd5654db8 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 13:37:19 +0000 Subject: [PATCH 080/125] Updated samtools custom view to 1.14 --- modules/local/samtools_custom_view.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/local/samtools_custom_view.nf b/modules/local/samtools_custom_view.nf index a25fae7a..da9e0266 100644 --- a/modules/local/samtools_custom_view.nf +++ b/modules/local/samtools_custom_view.nf @@ -11,11 +11,11 @@ process SAMTOOLS_CUSTOMVIEW { mode: params.publish_dir_mode, saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), publish_id:meta.id) } - conda (params.enable_conda ? "bioconda::samtools=1.10" : null) + conda (params.enable_conda ? "bioconda::samtools=1.14" : null) if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/samtools:1.10--h9402c20_2" + container "https://depot.galaxyproject.org/singularity/samtools:1.14--h9402c20_2" } else { - container "quay.io/biocontainers/samtools:1.10--h9402c20_2" + container "quay.io/biocontainers/samtools:1.14--h9402c20_2" } input: From a59575b86722ef84fc68bc7bb9f1d3d01a13ccd4 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 13:38:36 +0000 Subject: [PATCH 081/125] Updated gunzip --- modules.json | 3 +++ modules/nf-core/modules/gunzip/functions.nf | 2 +- modules/nf-core/modules/gunzip/main.nf | 5 +++-- modules/nf-core/modules/gunzip/meta.yml | 3 ++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules.json b/modules.json index b673cfb9..a0d5c8be 100644 --- a/modules.json +++ b/modules.json @@ -36,6 +36,9 @@ "fastqc": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, + "gunzip": { + "git_sha": "e560fbbc3ed68e62bc810a50f552394056f81762" + }, "picard/markduplicates": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, diff --git a/modules/nf-core/modules/gunzip/functions.nf b/modules/nf-core/modules/gunzip/functions.nf index 90478063..85628ee0 100644 --- a/modules/nf-core/modules/gunzip/functions.nf +++ b/modules/nf-core/modules/gunzip/functions.nf @@ -75,4 +75,4 @@ def saveFiles(Map args) { } else if (ioptions.publish_files == null) { return "${getPathFromList(path_list)}/$args.filename" } -} \ No newline at end of file +} diff --git a/modules/nf-core/modules/gunzip/main.nf b/modules/nf-core/modules/gunzip/main.nf index a52b0428..aec4569f 100644 --- a/modules/nf-core/modules/gunzip/main.nf +++ b/modules/nf-core/modules/gunzip/main.nf @@ -22,7 +22,7 @@ process GUNZIP { path archive output: - path "$gunzip" , emit: gunzip + path "$gunzip", emit: gunzip path "versions.yml" , emit: versions script: @@ -32,9 +32,10 @@ process GUNZIP { -f \\ $options.args \\ $archive + cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: ${getSoftwareName(task.process)}: \$(echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//') END_VERSIONS """ -} \ No newline at end of file +} diff --git a/modules/nf-core/modules/gunzip/meta.yml b/modules/nf-core/modules/gunzip/meta.yml index 06f623b1..3482f0d2 100644 --- a/modules/nf-core/modules/gunzip/meta.yml +++ b/modules/nf-core/modules/gunzip/meta.yml @@ -8,6 +8,7 @@ tools: description: | gzip is a file format and a software application used for file compression and decompression. documentation: https://www.gnu.org/software/gzip/manual/gzip.html + licence: ['GPL-3.0-or-later'] input: - archive: type: file @@ -24,4 +25,4 @@ output: pattern: "versions.yml" authors: - "@joseespinosa" - - "@drpatelh" \ No newline at end of file + - "@drpatelh" From 8faf4763c65c5daafa64cf2a499d5e97329f8425 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 13:48:48 +0000 Subject: [PATCH 082/125] Updated samtools in get_chrom_sizes --- modules/local/get_chrom_sizes.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf index 3a69a7b3..47d630ed 100644 --- a/modules/local/get_chrom_sizes.nf +++ b/modules/local/get_chrom_sizes.nf @@ -14,11 +14,11 @@ process GET_CHROM_SIZES { mode: params.publish_dir_mode, saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:"genome", publish_id:'') } - conda (params.enable_conda ? "bioconda::samtools=1.13" : null) + conda (params.enable_conda ? "bioconda::samtools=1.14" : null) if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/samtools:1.13--h8c37831_0" + container "https://depot.galaxyproject.org/singularity/samtools:1.14--h8c37831_0" } else { - container "quay.io/biocontainers/samtools:1.13--h8c37831_0" + container "quay.io/biocontainers/samtools:1.14--h8c37831_0" } input: From af26f7e3a7229828078ee282db2aaee73cdbbbf4 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 13:49:04 +0000 Subject: [PATCH 083/125] Moved generate reports to custom folder as docker image needed --- .../local/modules/generate_reports/Dockerfile | 8 ++ .../modules/generate_reports/environment.yml | 16 ++++ .../modules/generate_reports/functions.nf | 78 +++++++++++++++++++ .../generate_reports/main.nf} | 2 +- workflows/cutandrun.nf | 2 +- 5 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 modules/local/modules/generate_reports/Dockerfile create mode 100644 modules/local/modules/generate_reports/environment.yml create mode 100644 modules/local/modules/generate_reports/functions.nf rename modules/local/{python/generate_reports.nf => modules/generate_reports/main.nf} (98%) diff --git a/modules/local/modules/generate_reports/Dockerfile b/modules/local/modules/generate_reports/Dockerfile new file mode 100644 index 00000000..3f24a490 --- /dev/null +++ b/modules/local/modules/generate_reports/Dockerfile @@ -0,0 +1,8 @@ +FROM nfcore/base:1.14 +LABEL authors="chris.cheshire@crick.ac.uk" \ + description="Docker image containing all requirements for development of static reports" + +# Install conda packages +COPY ./environment.yml / +RUN conda env create -f /environment.yml && conda clean -a +ENV PATH /opt/conda/envs/reporting/bin:$PATH diff --git a/modules/local/modules/generate_reports/environment.yml b/modules/local/modules/generate_reports/environment.yml new file mode 100644 index 00000000..66860578 --- /dev/null +++ b/modules/local/modules/generate_reports/environment.yml @@ -0,0 +1,16 @@ +# conda env create -f environment.yml +name: reporting +channels: + - conda-forge + - bioconda + - defaults +dependencies: + # python version + - python=3.8.3 + + # conda packages + - numpy=1.20.* + - pandas=1.2.* + - seaborn=0.11.* + - pyranges=0.0.96 + - pysam=0.16.0.1 diff --git a/modules/local/modules/generate_reports/functions.nf b/modules/local/modules/generate_reports/functions.nf new file mode 100644 index 00000000..85628ee0 --- /dev/null +++ b/modules/local/modules/generate_reports/functions.nf @@ -0,0 +1,78 @@ +// +// Utility functions used in nf-core DSL2 module files +// + +// +// Extract name of software tool from process name using $task.process +// +def getSoftwareName(task_process) { + return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() +} + +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + +// +// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules +// +def initOptions(Map args) { + def Map options = [:] + options.args = args.args ?: '' + options.args2 = args.args2 ?: '' + options.args3 = args.args3 ?: '' + options.publish_by_meta = args.publish_by_meta ?: [] + options.publish_dir = args.publish_dir ?: '' + options.publish_files = args.publish_files + options.suffix = args.suffix ?: '' + return options +} + +// +// Tidy up and join elements of a list to return a path string +// +def getPathFromList(path_list) { + def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries + paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes + return paths.join('/') +} + +// +// Function to save/publish module results +// +def saveFiles(Map args) { + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] + } + path = path instanceof String ? path : '' + path_list.add(path) + } + } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" + } + } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" + } +} diff --git a/modules/local/python/generate_reports.nf b/modules/local/modules/generate_reports/main.nf similarity index 98% rename from modules/local/python/generate_reports.nf rename to modules/local/modules/generate_reports/main.nf index 914059ab..7ba8987f 100644 --- a/modules/local/python/generate_reports.nf +++ b/modules/local/modules/generate_reports/main.nf @@ -1,4 +1,4 @@ -include { initOptions; saveFiles; getSoftwareName; getProcessName } from '../common/functions' +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' params.options = [:] options = initOptions(params.options) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 08f5c28e..ed609ba5 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -302,7 +302,7 @@ include { CALCULATE_FRIP } from "../modules/local/modules/calcu include { CALCULATE_PEAK_REPROD } from "../modules/local/modules/calculate_peak_reprod/main" addParams( options: modules["calc_peak_repro"] ) include { EXPORT_META } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) include { EXPORT_META as EXPORT_META_CTRL } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) -include { GENERATE_REPORTS } from "../modules/local/python/generate_reports" addParams( options: modules["generate_reports"] ) +include { GENERATE_REPORTS } from "../modules/local/modules/generate_reports/main" addParams( options: modules["generate_reports"] ) include { MULTIQC } from "../modules/local/multiqc" addParams( options: multiqc_options ) /* From 387b14c928c8b415c5b4bfafda1a3fbaf6f2dd85 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 14:13:13 +0000 Subject: [PATCH 084/125] Fixed linting tests --- bin/scrape_software_versions.py | 36 ++++++++++++++++++++++++++ modules/local/get_software_versions.nf | 32 +++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 bin/scrape_software_versions.py create mode 100644 modules/local/get_software_versions.nf diff --git a/bin/scrape_software_versions.py b/bin/scrape_software_versions.py new file mode 100644 index 00000000..b87f78a2 --- /dev/null +++ b/bin/scrape_software_versions.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +from __future__ import print_function +import os + +results = {} +version_files = [x for x in os.listdir(".") if x.endswith(".version.txt")] +for version_file in version_files: + + software = version_file.replace(".version.txt", "") + if software == "pipeline": + software = "nf-core/cutandrun" + + with open(version_file) as fin: + version = fin.read().strip() + results[software] = version + +# Dump to YAML +print( + """ +id: 'software_versions' +section_name: 'nf-core/cutandrun Software Versions' +section_href: 'https://github.com/nf-core/cutandrun' +plot_type: 'html' +description: 'are collected at run time from the software output.' +data: | +
+""" +) +for k, v in sorted(results.items()): + print("
{}
{}
".format(k, v)) +print("
") + +# Write out as tsv file: +with open("software_versions.tsv", "w") as f: + for k, v in sorted(results.items()): + f.write("{}\t{}\n".format(k, v)) diff --git a/modules/local/get_software_versions.nf b/modules/local/get_software_versions.nf new file mode 100644 index 00000000..c02ce746 --- /dev/null +++ b/modules/local/get_software_versions.nf @@ -0,0 +1,32 @@ +// Import generic module functions +include { initOptions; saveFiles } from './common/functions' + +params.options = [:] +options = initOptions(params.options) + +process GET_SOFTWARE_VERSIONS { + publishDir "${params.outdir}", + mode: params.publish_dir_mode, + saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:'pipeline_info', meta:[:], publish_by_meta:[]) } + + conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) + if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { + container "https://depot.galaxyproject.org/singularity/python:3.8.3" + } else { + container "quay.io/biocontainers/python:3.8.3" + } + + input: + path versions + + output: + path "software_versions.tsv" , emit: tsv + path 'software_versions_mqc.yaml', emit: yaml + + script: // This script is bundled with the pipeline, in nf-core/cutandrun/bin/ + """ + echo $workflow.manifest.version > pipeline.version.txt + echo $workflow.nextflow.version > nextflow.version.txt + scrape_software_versions.py &> software_versions_mqc.yaml + """ +} \ No newline at end of file From 02c9a2d536843219ebc4f918f5d1378fd949a06e Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 14:14:46 +0000 Subject: [PATCH 085/125] Tidy --- modules/local/multiqc.nf | 1 - modules/local/samtools_custom_view.nf | 1 - 2 files changed, 2 deletions(-) diff --git a/modules/local/multiqc.nf b/modules/local/multiqc.nf index 72a683d2..57e656aa 100644 --- a/modules/local/multiqc.nf +++ b/modules/local/multiqc.nf @@ -1,4 +1,3 @@ -// Import generic module functions include { initOptions; saveFiles; getSoftwareName; getProcessName } from './common/functions' params.options = [:] diff --git a/modules/local/samtools_custom_view.nf b/modules/local/samtools_custom_view.nf index da9e0266..a2b495ae 100644 --- a/modules/local/samtools_custom_view.nf +++ b/modules/local/samtools_custom_view.nf @@ -1,4 +1,3 @@ -// Import generic module functions include { initOptions; saveFiles; getSoftwareName; getProcessName } from './common/functions' params.options = [:] From 15da5531b630e2b046ca2ada42b756b2b25e5f94 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 14:16:46 +0000 Subject: [PATCH 086/125] Tidy --- .github/workflows/awsfulltest.yml | 3 --- conf/base.config | 9 --------- 2 files changed, 12 deletions(-) diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index ca0703d5..c45341b7 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -15,9 +15,6 @@ jobs: steps: - name: Launch workflow via tower uses: nf-core/tower-action@master - # TODO nf-core: You can customise AWS full pipeline tests as required - # Add full size test data (but still relatively small datasets for few samples) - # on the `test_full.config` test runs with only one set of parameters with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} diff --git a/conf/base.config b/conf/base.config index fd108bf1..874f1c10 100644 --- a/conf/base.config +++ b/conf/base.config @@ -9,8 +9,6 @@ */ process { - - // TODO nf-core: Check the defaults for all processes cpus = { check_max( 1 * task.attempt, 'cpus' ) } memory = { check_max( 6.GB * task.attempt, 'memory' ) } time = { check_max( 4.h * task.attempt, 'time' ) } @@ -19,13 +17,6 @@ process { maxRetries = 1 maxErrors = '-1' - // Process-specific resource requirements - // NOTE - Please try and re-use the labels below as much as possible. - // These labels are used and recognised by default in DSL2 files hosted on nf-core/modules. - // If possible, it would be nice to keep the same label naming convention when - // adding in your local modules too. - // TODO nf-core: Customise requirements for specific processes. - // See https://www.nextflow.io/docs/latest/config.html#config-process-selectors withLabel:process_low { cpus = { check_max( 2 * task.attempt, 'cpus' ) } memory = { check_max( 12.GB * task.attempt, 'memory' ) } From aab57bb8a968f0ff1a6fa01949bf197c8c588d3b Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 14:18:35 +0000 Subject: [PATCH 087/125] Updated MIT licenses --- .../modules/bedtools/bamtobed/meta.yml | 1 + .../modules/bedtools/intersect/meta.yml | 1 + .../nf-core/modules/bedtools/merge/meta.yml | 1 + .../nf-core/modules/bowtie2/align/meta.yml | 1 + .../nf-core/modules/bowtie2/build/meta.yml | 1 + modules/nf-core/modules/cat/fastq/meta.yml | 1 + modules/nf-core/modules/fastqc/meta.yml | 1 + .../modules/picard/markduplicates/meta.yml | 1 + .../modules/samtools/flagstat/meta.yml | 48 ------------------- .../modules/samtools/idxstats/meta.yml | 1 + .../nf-core/modules/samtools/index/meta.yml | 47 ------------------ .../nf-core/modules/samtools/sort/meta.yml | 1 + .../nf-core/modules/samtools/view/meta.yml | 16 +++++-- modules/nf-core/modules/untar/meta.yml | 1 + 14 files changed, 24 insertions(+), 98 deletions(-) delete mode 100644 modules/nf-core/modules/samtools/flagstat/meta.yml delete mode 100644 modules/nf-core/modules/samtools/index/meta.yml diff --git a/modules/nf-core/modules/bedtools/bamtobed/meta.yml b/modules/nf-core/modules/bedtools/bamtobed/meta.yml index 0eaf3e2a..e8c67047 100644 --- a/modules/nf-core/modules/bedtools/bamtobed/meta.yml +++ b/modules/nf-core/modules/bedtools/bamtobed/meta.yml @@ -8,6 +8,7 @@ tools: description: | A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types. documentation: https://bedtools.readthedocs.io/en/latest/content/tools/complement.html + licence: ['MIT'] input: - meta: type: map diff --git a/modules/nf-core/modules/bedtools/intersect/meta.yml b/modules/nf-core/modules/bedtools/intersect/meta.yml index a14bf515..3bcb6ece 100644 --- a/modules/nf-core/modules/bedtools/intersect/meta.yml +++ b/modules/nf-core/modules/bedtools/intersect/meta.yml @@ -8,6 +8,7 @@ tools: description: | A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types. documentation: https://bedtools.readthedocs.io/en/latest/content/tools/intersect.html + licence: ['MIT'] input: - meta: type: map diff --git a/modules/nf-core/modules/bedtools/merge/meta.yml b/modules/nf-core/modules/bedtools/merge/meta.yml index 39e79cbd..40a42b7b 100644 --- a/modules/nf-core/modules/bedtools/merge/meta.yml +++ b/modules/nf-core/modules/bedtools/merge/meta.yml @@ -8,6 +8,7 @@ tools: description: | A set of tools for genomic analysis tasks, specifically enabling genome arithmetic (merge, count, complement) on various file types. documentation: https://bedtools.readthedocs.io/en/latest/content/tools/merge.html + licence: ['MIT'] input: - meta: type: map diff --git a/modules/nf-core/modules/bowtie2/align/meta.yml b/modules/nf-core/modules/bowtie2/align/meta.yml index f9d54d87..77c9e397 100644 --- a/modules/nf-core/modules/bowtie2/align/meta.yml +++ b/modules/nf-core/modules/bowtie2/align/meta.yml @@ -13,6 +13,7 @@ tools: homepage: http://bowtie-bio.sourceforge.net/bowtie2/index.shtml documentation: http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml doi: 10.1038/nmeth.1923 + licence: ['GPL-3.0-or-later'] input: - meta: type: map diff --git a/modules/nf-core/modules/bowtie2/build/meta.yml b/modules/nf-core/modules/bowtie2/build/meta.yml index 4531d079..ecc54e9b 100644 --- a/modules/nf-core/modules/bowtie2/build/meta.yml +++ b/modules/nf-core/modules/bowtie2/build/meta.yml @@ -14,6 +14,7 @@ tools: homepage: http://bowtie-bio.sourceforge.net/bowtie2/index.shtml documentation: http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml doi: 10.1038/nmeth.1923 + licence: ['GPL-3.0-or-later'] input: - fasta: type: file diff --git a/modules/nf-core/modules/cat/fastq/meta.yml b/modules/nf-core/modules/cat/fastq/meta.yml index 6c6c397e..1992fa34 100644 --- a/modules/nf-core/modules/cat/fastq/meta.yml +++ b/modules/nf-core/modules/cat/fastq/meta.yml @@ -8,6 +8,7 @@ tools: description: | The cat utility reads files sequentially, writing them to the standard output. documentation: https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html + licence: ['GPL-3.0-or-later'] input: - meta: type: map diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/modules/fastqc/meta.yml index 0ae08aee..b09553a3 100644 --- a/modules/nf-core/modules/fastqc/meta.yml +++ b/modules/nf-core/modules/fastqc/meta.yml @@ -15,6 +15,7 @@ tools: overrepresented sequences. homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ + licence: ['GPL-2.0-only'] input: - meta: type: map diff --git a/modules/nf-core/modules/picard/markduplicates/meta.yml b/modules/nf-core/modules/picard/markduplicates/meta.yml index 13f2d350..c9a08b36 100644 --- a/modules/nf-core/modules/picard/markduplicates/meta.yml +++ b/modules/nf-core/modules/picard/markduplicates/meta.yml @@ -14,6 +14,7 @@ tools: data and formats such as SAM/BAM/CRAM and VCF. homepage: https://broadinstitute.github.io/picard/ documentation: https://broadinstitute.github.io/picard/ + licence: ['MIT'] input: - meta: type: map diff --git a/modules/nf-core/modules/samtools/flagstat/meta.yml b/modules/nf-core/modules/samtools/flagstat/meta.yml deleted file mode 100644 index d408cb76..00000000 --- a/modules/nf-core/modules/samtools/flagstat/meta.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: samtools_flagstat -description: Counts the number of alignments in a BAM/CRAM/SAM file for each FLAG type -keywords: - - stats - - mapping - - counts - - bam - - sam - - cram -tools: - - samtools: - description: | - SAMtools is a set of utilities for interacting with and post-processing - short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. - These files are generated as output by short read aligners like BWA. - homepage: http://www.htslib.org/ - documentation: hhttp://www.htslib.org/doc/samtools.html - doi: 10.1093/bioinformatics/btp352 -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" - - bai: - type: file - description: Index for BAM/CRAM/SAM file - pattern: "*.{bai,crai,sai}" -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - flagstat: - type: file - description: File containing samtools flagstat output - pattern: "*.{flagstat}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@drpatelh" diff --git a/modules/nf-core/modules/samtools/idxstats/meta.yml b/modules/nf-core/modules/samtools/idxstats/meta.yml index f4cb613f..ec542f34 100644 --- a/modules/nf-core/modules/samtools/idxstats/meta.yml +++ b/modules/nf-core/modules/samtools/idxstats/meta.yml @@ -17,6 +17,7 @@ tools: homepage: http://www.htslib.org/ documentation: hhttp://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 + licence: ['MIT'] input: - meta: type: map diff --git a/modules/nf-core/modules/samtools/index/meta.yml b/modules/nf-core/modules/samtools/index/meta.yml deleted file mode 100644 index 5f4dd3fb..00000000 --- a/modules/nf-core/modules/samtools/index/meta.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: samtools_index -description: Index SAM/BAM/CRAM file -keywords: - - index - - bam - - sam - - cram -tools: - - samtools: - description: | - SAMtools is a set of utilities for interacting with and post-processing - short DNA sequence read alignments in the SAM, BAM and CRAM formats, written by Heng Li. - These files are generated as output by short read aligners like BWA. - homepage: http://www.htslib.org/ - documentation: hhttp://www.htslib.org/doc/samtools.html - doi: 10.1093/bioinformatics/btp352 -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bai: - type: file - description: BAM/CRAM/SAM index file - pattern: "*.{bai,crai,sai}" - - csi: - type: file - description: CSI index file - pattern: "*.{csi}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@drpatelh" - - "@ewels" diff --git a/modules/nf-core/modules/samtools/sort/meta.yml b/modules/nf-core/modules/samtools/sort/meta.yml index cd47c86d..3402a068 100644 --- a/modules/nf-core/modules/samtools/sort/meta.yml +++ b/modules/nf-core/modules/samtools/sort/meta.yml @@ -14,6 +14,7 @@ tools: homepage: http://www.htslib.org/ documentation: hhttp://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 + licence: ['MIT'] input: - meta: type: map diff --git a/modules/nf-core/modules/samtools/view/meta.yml b/modules/nf-core/modules/samtools/view/meta.yml index 2e66e7cd..8abf34af 100644 --- a/modules/nf-core/modules/samtools/view/meta.yml +++ b/modules/nf-core/modules/samtools/view/meta.yml @@ -14,16 +14,21 @@ tools: homepage: http://www.htslib.org/ documentation: hhttp://www.htslib.org/doc/samtools.html doi: 10.1093/bioinformatics/btp352 + licence: ['MIT'] input: - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - bam: + - input: type: file description: BAM/CRAM/SAM file pattern: "*.{bam,cram,sam}" + - fasta: + type: optional file + description: Reference file the CRAM was created with + pattern: "*.{fasta,fa}" output: - meta: type: map @@ -32,8 +37,12 @@ output: e.g. [ id:'test', single_end:false ] - bam: type: file - description: filtered/converted BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" + description: filtered/converted BAM/SAM file + pattern: "*.{bam,sam}" + - cram: + type: file + description: filtered/converted CRAM file + pattern: "*.cram" - versions: type: file description: File containing software versions @@ -41,3 +50,4 @@ output: authors: - "@drpatelh" - "@joseespinosa" + - "@FriederikeHanssen" diff --git a/modules/nf-core/modules/untar/meta.yml b/modules/nf-core/modules/untar/meta.yml index 2b586c92..51f94995 100644 --- a/modules/nf-core/modules/untar/meta.yml +++ b/modules/nf-core/modules/untar/meta.yml @@ -8,6 +8,7 @@ tools: description: | Extract tar.gz files. documentation: https://www.gnu.org/software/tar/manual/ + licence: ['GPL-3.0-or-later'] input: - archive: type: file From a0ae06d164db695968090a0736fcc65e34e82404 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 14:24:28 +0000 Subject: [PATCH 088/125] Updated modules --- modules.json | 24 +++++++++---------- modules/nf-core/modules/samtools/view/main.nf | 12 ++++++---- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/modules.json b/modules.json index a0d5c8be..bfb9451e 100644 --- a/modules.json +++ b/modules.json @@ -4,28 +4,28 @@ "repos": { "nf-core/modules": { "bedtools/bamtobed": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "bedtools/genomecov": { "git_sha": "e8b33e6eb1be2a03abdd2c06068f9a5cebc02bb4" }, "bedtools/intersect": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "bedtools/merge": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "bedtools/sort": { "git_sha": "2959b4ba070d138d1577acc48d35cc669fbef972" }, "bowtie2/align": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "bowtie2/build": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "cat/fastq": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "deeptools/computematrix": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" @@ -34,31 +34,31 @@ "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "fastqc": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "gunzip": { "git_sha": "e560fbbc3ed68e62bc810a50f552394056f81762" }, "picard/markduplicates": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "samtools/flagstat": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/idxstats": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "samtools/index": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/sort": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, "samtools/stats": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "samtools/view": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "ac1e6df076195cec553a2079c9cebd94026a0d47" }, "seacr/callpeak": { "git_sha": "4d89d6b2f0c478ac7ef80ece5cad44fdf7ffd614" @@ -70,7 +70,7 @@ "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, "untar": { - "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" + "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" } } } diff --git a/modules/nf-core/modules/samtools/view/main.nf b/modules/nf-core/modules/samtools/view/main.nf index ec1663e0..b7a047ee 100644 --- a/modules/nf-core/modules/samtools/view/main.nf +++ b/modules/nf-core/modules/samtools/view/main.nf @@ -19,16 +19,20 @@ process SAMTOOLS_VIEW { } input: - tuple val(meta), path(bam) + tuple val(meta), path(input) + path fasta output: - tuple val(meta), path("*.bam"), emit: bam - path "versions.yml" , emit: versions + tuple val(meta), path("*.bam") , optional: true, emit: bam + tuple val(meta), path("*.cram"), optional: true, emit: cram + path "versions.yml" , emit: versions script: def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" + def reference = fasta ? "--reference ${fasta} -C" : "" + def file_type = input.getExtension() """ - samtools view $options.args $bam > ${prefix}.bam + samtools view ${reference} $options.args $input > ${prefix}.${file_type} cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') From 20237f6c4cc1c8f6b5672f0d8e740ce07099bfd5 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 14:37:58 +0000 Subject: [PATCH 089/125] Fixed container versions --- modules/local/get_chrom_sizes.nf | 4 ++-- subworkflows/local/calculate_fragments.nf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf index 47d630ed..0d9c833e 100644 --- a/modules/local/get_chrom_sizes.nf +++ b/modules/local/get_chrom_sizes.nf @@ -16,9 +16,9 @@ process GET_CHROM_SIZES { conda (params.enable_conda ? "bioconda::samtools=1.14" : null) if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/samtools:1.14--h8c37831_0" + container "https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0" } else { - container "quay.io/biocontainers/samtools:1.14--h8c37831_0" + container "quay.io/biocontainers/samtools:1.14--hb421002_0" } input: diff --git a/subworkflows/local/calculate_fragments.nf b/subworkflows/local/calculate_fragments.nf index 1527fff2..fd9b4bdb 100644 --- a/subworkflows/local/calculate_fragments.nf +++ b/subworkflows/local/calculate_fragments.nf @@ -25,7 +25,7 @@ workflow CALCULATE_FRAGMENTS { /* * Filter BAM file */ - SAMTOOLS_VIEW ( bam ) + SAMTOOLS_VIEW ( bam, [] ) ch_versions = ch_versions.mix(SAMTOOLS_VIEW.out.versions) /* From 9b5bd8a904065995eec4d6a815ad18f253ac56da Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 14:38:17 +0000 Subject: [PATCH 090/125] Added code for new version of samtools view --- modules/local/samtools_custom_view.nf | 4 ++-- subworkflows/nf-core/samtools_view_sort_stats.nf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/local/samtools_custom_view.nf b/modules/local/samtools_custom_view.nf index a2b495ae..3d549e66 100644 --- a/modules/local/samtools_custom_view.nf +++ b/modules/local/samtools_custom_view.nf @@ -12,9 +12,9 @@ process SAMTOOLS_CUSTOMVIEW { conda (params.enable_conda ? "bioconda::samtools=1.14" : null) if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/samtools:1.14--h9402c20_2" + container "https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0" } else { - container "quay.io/biocontainers/samtools:1.14--h9402c20_2" + container "quay.io/biocontainers/samtools:1.14--hb421002_0" } input: diff --git a/subworkflows/nf-core/samtools_view_sort_stats.nf b/subworkflows/nf-core/samtools_view_sort_stats.nf index c302652d..3ebc3ed3 100644 --- a/subworkflows/nf-core/samtools_view_sort_stats.nf +++ b/subworkflows/nf-core/samtools_view_sort_stats.nf @@ -20,7 +20,7 @@ workflow SAMTOOLS_VIEW_SORT_STATS { /* * Filter BAM file */ - SAMTOOLS_VIEW ( bam ) + SAMTOOLS_VIEW ( bam, [] ) ch_versions = ch_versions.mix(SAMTOOLS_VIEW.out.versions) /* From 30e7ac1383a0a50287772f0fd261c03573e3a09e Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 14:44:43 +0000 Subject: [PATCH 091/125] Whitespace fixes --- modules/local/get_chrom_sizes.nf | 2 +- modules/local/get_software_versions.nf | 2 +- modules/local/linux/awk_script.nf | 2 +- modules/local/modules/calculate_frip/main.nf | 2 +- modules/local/modules/trimgalore/main.nf | 4 ++-- subworkflows/local/prepare_genome.nf | 2 +- subworkflows/nf-core/mark_duplicates_picard.nf | 2 +- workflows/cutandrun.nf | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf index 0d9c833e..2d356e79 100644 --- a/modules/local/get_chrom_sizes.nf +++ b/modules/local/get_chrom_sizes.nf @@ -39,5 +39,5 @@ process GET_CHROM_SIZES { ${getProcessName(task.process)}: samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS - """ + """ } diff --git a/modules/local/get_software_versions.nf b/modules/local/get_software_versions.nf index c02ce746..aab21fa7 100644 --- a/modules/local/get_software_versions.nf +++ b/modules/local/get_software_versions.nf @@ -29,4 +29,4 @@ process GET_SOFTWARE_VERSIONS { echo $workflow.nextflow.version > nextflow.version.txt scrape_software_versions.py &> software_versions_mqc.yaml """ -} \ No newline at end of file +} diff --git a/modules/local/linux/awk_script.nf b/modules/local/linux/awk_script.nf index 6202fb57..3b9c8dd9 100644 --- a/modules/local/linux/awk_script.nf +++ b/modules/local/linux/awk_script.nf @@ -25,7 +25,7 @@ process AWK_SCRIPT { output: tuple val(meta), path("*.awk.txt"), emit: file path "versions.yml" , emit: versions - + script: def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" diff --git a/modules/local/modules/calculate_frip/main.nf b/modules/local/modules/calculate_frip/main.nf index d9d0af47..bcf738e9 100644 --- a/modules/local/modules/calculate_frip/main.nf +++ b/modules/local/modules/calculate_frip/main.nf @@ -19,7 +19,7 @@ process CALCULATE_FRIP { output: tuple val(meta), path('frips.csv'), emit: frips path "versions.yml" , emit: versions - + script: """ frip.py \\ diff --git a/modules/local/modules/trimgalore/main.nf b/modules/local/modules/trimgalore/main.nf index 019fbf26..222292a0 100644 --- a/modules/local/modules/trimgalore/main.nf +++ b/modules/local/modules/trimgalore/main.nf @@ -64,7 +64,7 @@ process TRIMGALORE { $c_r1 \\ $tpc_r1 \\ ${prefix}.fastq.gz - + cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: ${getSoftwareName(task.process)}: \$(echo \$(trim_galore --version 2>&1) | sed 's/^.*version //; s/Last.*\$//') @@ -86,7 +86,7 @@ process TRIMGALORE { $tpc_r2 \\ ${meta.id}_1.fastq.gz \\ ${meta.id}_2.fastq.gz - + cat <<-END_VERSIONS > versions.yml ${getProcessName(task.process)}: ${getSoftwareName(task.process)}: \$(echo \$(trim_galore --version 2>&1) | sed 's/^.*version //; s/Last.*\$//') diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 8ac3f8ee..9773668d 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -121,6 +121,6 @@ workflow PREPARE_GENOME { bed = ch_gene_bed // path: genome.bed bowtie2_index = ch_bt2_index // path: bt2/index/ bowtie2_spikein_index = ch_bt2_spikein_index // path: bt2/index/ - + versions = ch_versions // channel: [ versions.yml ] } diff --git a/subworkflows/nf-core/mark_duplicates_picard.nf b/subworkflows/nf-core/mark_duplicates_picard.nf index a9cef528..cc0d9807 100644 --- a/subworkflows/nf-core/mark_duplicates_picard.nf +++ b/subworkflows/nf-core/mark_duplicates_picard.nf @@ -64,7 +64,7 @@ workflow MARK_DUPLICATES_PICARD { emit: bam = ch_bam // channel: [ val(meta), [ bam ] ] metrics // channel: [ val(meta), [ metrics ] ] - + bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), [ bai ] ] stats = BAM_STATS_SAMTOOLS.out.stats // channel: [ val(meta), [ stats ] ] flagstat = BAM_STATS_SAMTOOLS.out.flagstat // channel: [ val(meta), [ flagstat ] ] diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index ed609ba5..db21ddb2 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -379,7 +379,7 @@ workflow CUTANDRUN { INPUT_CHECK ( ch_input ) - + INPUT_CHECK.out.reads .map { meta, fastq -> From 9e331787b5946da5e04a806036ca1f94fe7a9791 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 11 Nov 2021 14:47:55 +0000 Subject: [PATCH 092/125] Whitespace fixes --- modules/local/linux/awk.nf | 2 +- modules/local/modules/calculate_frip/main.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/linux/awk.nf b/modules/local/linux/awk.nf index 1f988bac..febedf46 100644 --- a/modules/local/linux/awk.nf +++ b/modules/local/linux/awk.nf @@ -26,7 +26,7 @@ process AWK { output: tuple val(meta), path("*.awk.*"), emit: file path "versions.yml" , emit: versions - + script: def software = getSoftwareName(task.process) def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" diff --git a/modules/local/modules/calculate_frip/main.nf b/modules/local/modules/calculate_frip/main.nf index bcf738e9..382f4861 100644 --- a/modules/local/modules/calculate_frip/main.nf +++ b/modules/local/modules/calculate_frip/main.nf @@ -33,4 +33,4 @@ process CALCULATE_FRIP { ${getSoftwareName(task.process)}: \$(python --version | grep -E -o \"([0-9]{1,}\\.)+[0-9]{1,}\") END_VERSIONS """ -} \ No newline at end of file +} From 88cd9982a1b6a96cd3daba67c39a35a96b415a22 Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 17 Nov 2021 11:21:30 +0000 Subject: [PATCH 093/125] Included nf-core CUSTOM_GETCHROMSIZES module --- modules.json | 3 + .../modules/custom/getchromsizes/functions.nf | 78 +++++++++++++++++++ .../modules/custom/getchromsizes/main.nf | 39 ++++++++++ .../modules/custom/getchromsizes/meta.yml | 39 ++++++++++ subworkflows/local/prepare_genome.nf | 8 +- 5 files changed, 163 insertions(+), 4 deletions(-) create mode 100644 modules/nf-core/modules/custom/getchromsizes/functions.nf create mode 100644 modules/nf-core/modules/custom/getchromsizes/main.nf create mode 100644 modules/nf-core/modules/custom/getchromsizes/meta.yml diff --git a/modules.json b/modules.json index bfb9451e..fa218a14 100644 --- a/modules.json +++ b/modules.json @@ -27,6 +27,9 @@ "cat/fastq": { "git_sha": "3aacd46da2b221ed47aaa05c413a828538d2c2ae" }, + "custom/getchromsizes": { + "git_sha": "13b8a16f4a6945af9df146b67972eb70b52e9844" + }, "deeptools/computematrix": { "git_sha": "49da8642876ae4d91128168cd0db4f1c858d7792" }, diff --git a/modules/nf-core/modules/custom/getchromsizes/functions.nf b/modules/nf-core/modules/custom/getchromsizes/functions.nf new file mode 100644 index 00000000..85628ee0 --- /dev/null +++ b/modules/nf-core/modules/custom/getchromsizes/functions.nf @@ -0,0 +1,78 @@ +// +// Utility functions used in nf-core DSL2 module files +// + +// +// Extract name of software tool from process name using $task.process +// +def getSoftwareName(task_process) { + return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() +} + +// +// Extract name of module from process name using $task.process +// +def getProcessName(task_process) { + return task_process.tokenize(':')[-1] +} + +// +// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules +// +def initOptions(Map args) { + def Map options = [:] + options.args = args.args ?: '' + options.args2 = args.args2 ?: '' + options.args3 = args.args3 ?: '' + options.publish_by_meta = args.publish_by_meta ?: [] + options.publish_dir = args.publish_dir ?: '' + options.publish_files = args.publish_files + options.suffix = args.suffix ?: '' + return options +} + +// +// Tidy up and join elements of a list to return a path string +// +def getPathFromList(path_list) { + def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries + paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes + return paths.join('/') +} + +// +// Function to save/publish module results +// +def saveFiles(Map args) { + def ioptions = initOptions(args.options) + def path_list = [ ioptions.publish_dir ?: args.publish_dir ] + + // Do not publish versions.yml unless running from pytest workflow + if (args.filename.equals('versions.yml') && !System.getenv("NF_CORE_MODULES_TEST")) { + return null + } + if (ioptions.publish_by_meta) { + def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta + for (key in key_list) { + if (args.meta && key instanceof String) { + def path = key + if (args.meta.containsKey(key)) { + path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] + } + path = path instanceof String ? path : '' + path_list.add(path) + } + } + } + if (ioptions.publish_files instanceof Map) { + for (ext in ioptions.publish_files) { + if (args.filename.endsWith(ext.key)) { + def ext_list = path_list.collect() + ext_list.add(ext.value) + return "${getPathFromList(ext_list)}/$args.filename" + } + } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" + } +} diff --git a/modules/nf-core/modules/custom/getchromsizes/main.nf b/modules/nf-core/modules/custom/getchromsizes/main.nf new file mode 100644 index 00000000..fb46986b --- /dev/null +++ b/modules/nf-core/modules/custom/getchromsizes/main.nf @@ -0,0 +1,39 @@ +// Import generic module functions +include { initOptions; saveFiles; getSoftwareName; getProcessName } from './functions' + +params.options = [:] +options = initOptions(params.options) + +process CUSTOM_GETCHROMSIZES { + tag "$fasta" + label 'process_low' + publishDir "${params.outdir}", + mode: params.publish_dir_mode, + saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:meta, publish_by_meta:['id']) } + + conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { + container "https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0" + } else { + container "quay.io/biocontainers/samtools:1.14--hb421002_0" + } + + input: + path fasta + + output: + path '*.sizes' , emit: sizes + path '*.fai' , emit: fai + path "versions.yml", emit: versions + + script: + """ + samtools faidx $fasta + cut -f 1,2 ${fasta}.fai > ${fasta}.sizes + + cat <<-END_VERSIONS > versions.yml + ${getProcessName(task.process)}: + ${getSoftwareName(task.process)}: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/modules/custom/getchromsizes/meta.yml b/modules/nf-core/modules/custom/getchromsizes/meta.yml new file mode 100644 index 00000000..eb1db4bb --- /dev/null +++ b/modules/nf-core/modules/custom/getchromsizes/meta.yml @@ -0,0 +1,39 @@ +name: custom_getchromsizes +description: Generates a FASTA file of chromosome sizes and a fasta index file +keywords: + - fasta + - chromosome + - indexing +tools: + - samtools: + description: Tools for dealing with SAM, BAM and CRAM files + homepage: http://www.htslib.org/ + documentation: http://www.htslib.org/doc/samtools.html + tool_dev_url: https://github.com/samtools/samtools + doi: 10.1093/bioinformatics/btp352 + licence: ['MIT'] + +input: + - fasta: + type: file + description: FASTA file + pattern: "*.{fasta}" + +output: + - sizes: + type: file + description: File containing chromosome lengths + pattern: "*.{sizes}" + - fai: + type: file + description: FASTA index file + pattern: "*.{fai}" + - versions: + type: file + description: File containing software version + pattern: "versions.yml" + + +authors: + - "@tamara-hodgetts" + - "@chris-cheshire" diff --git a/subworkflows/local/prepare_genome.nf b/subworkflows/local/prepare_genome.nf index 9773668d..ab8cc9f8 100644 --- a/subworkflows/local/prepare_genome.nf +++ b/subworkflows/local/prepare_genome.nf @@ -11,8 +11,8 @@ include { GUNZIP as GUNZIP_FASTA } from "../../modules/nf-co include { GUNZIP as GUNZIP_SPIKEIN_FASTA } from "../../modules/nf-core/modules/gunzip/main.nf" addParams( options: params.spikein_genome_options ) include { GUNZIP as GUNZIP_GTF } from "../../modules/nf-core/modules/gunzip/main.nf" addParams( options: params.genome_options ) include { GUNZIP as GUNZIP_BED } from "../../modules/nf-core/modules/gunzip/main.nf" addParams( options: params.genome_options ) -include { GET_CHROM_SIZES } from "../../modules/local/get_chrom_sizes" addParams( options: params.genome_options ) -include { GET_CHROM_SIZES as GET_SPIKEIN_CHROM_SIZES } from "../../modules/local/get_chrom_sizes" addParams( options: params.spikein_genome_options ) +include { CUSTOM_GETCHROMSIZES } from "../../modules/nf-core/modules/custom/getchromsizes/main.nf" addParams( options: params.genome_options ) +include { CUSTOM_GETCHROMSIZES as GET_SPIKEIN_CHROM_SIZES } from "../../modules/nf-core/modules/custom/getchromsizes/main.nf" addParams( options: params.spikein_genome_options ) include { UNTAR as UNTAR_BT2_INDEX } from "../../modules/nf-core/modules/untar/main.nf" addParams( options: params.bt2_index_options ) include { UNTAR as UNTAR_SPIKEIN_BT2_INDEX } from "../../modules/nf-core/modules/untar/main.nf" addParams( options: params.bt2_spikein_index_options ) include { BOWTIE2_BUILD } from "../../modules/nf-core/modules/bowtie2/build/main" addParams( options: params.bt2_index_options ) @@ -72,8 +72,8 @@ workflow PREPARE_GENOME { /* * Create chromosome sizes file */ - ch_chrom_sizes = GET_CHROM_SIZES ( ch_fasta ).sizes - ch_versions = ch_versions.mix(GET_CHROM_SIZES.out.versions) + ch_chrom_sizes = CUSTOM_GETCHROMSIZES ( ch_fasta ).sizes + ch_versions = ch_versions.mix(CUSTOM_GETCHROMSIZES.out.versions) /* From a20936da339dc035b168e60d27f413f9ac0aa62c Mon Sep 17 00:00:00 2001 From: Tamara Hodgetts Date: Wed, 17 Nov 2021 11:25:03 +0000 Subject: [PATCH 094/125] deleted local get_chrom_sizes module --- modules/local/get_chrom_sizes.nf | 43 -------------------------------- 1 file changed, 43 deletions(-) delete mode 100644 modules/local/get_chrom_sizes.nf diff --git a/modules/local/get_chrom_sizes.nf b/modules/local/get_chrom_sizes.nf deleted file mode 100644 index 2d356e79..00000000 --- a/modules/local/get_chrom_sizes.nf +++ /dev/null @@ -1,43 +0,0 @@ -// Import generic module functions -include { initOptions; saveFiles; getSoftwareName; getProcessName } from './common/functions' - -params.options = [:] -options = initOptions(params.options) - -/* - * Get chromosome sizes from a fasta file - */ -process GET_CHROM_SIZES { - tag "$fasta" - label 'process_low' - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:"genome", publish_id:'') } - - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0" - } else { - container "quay.io/biocontainers/samtools:1.14--hb421002_0" - } - - input: - path fasta - - output: - path '*.sizes' , emit: sizes - path '*.fai' , emit: fai - path "versions.yml", emit: versions - - script: - def software = 'samtools' - """ - samtools faidx $fasta - cut -f 1,2 ${fasta}.fai > ${fasta}.sizes - - cat <<-END_VERSIONS > versions.yml - ${getProcessName(task.process)}: - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - END_VERSIONS - """ -} From a1389df5cdd18cb32925faacf3e53325b9f06bb8 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Fri, 19 Nov 2021 08:55:25 +0000 Subject: [PATCH 095/125] Added flow diagram to readme --- README.md | 2 ++ docs/images/cutandrun-flow-diagram-v1-0_2.png | Bin 0 -> 1005096 bytes 2 files changed, 2 insertions(+) create mode 100755 docs/images/cutandrun-flow-diagram-v1-0_2.png diff --git a/README.md b/README.md index 21f0ec41..72d75abb 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool The pipeline has been developed with continuous integration (CI) in mind. nf-core code and module linting as well as a battery of over 100 unit and integration tests run on pull request to the main repository and on release of the pipeline. On official release, automated CI tests run the pipeline on a full-sized dataset on the AWS cloud infrastructure. This ensures that the pipeline runs on AWS, has sensible resource allocation defaults set to run on real-world datasets, and permits the persistent storage of results to benchmark between pipeline releases and other analysis sources. The results obtained from the full-sized test can be viewed on the [nf-core website](https://nf-co.re/cutandrun/results). +![pipeline_diagram](docs/images/cutandrun-flow-diagram-v1-0_2.png) + ## Pipeline summary 1. Check input files diff --git a/docs/images/cutandrun-flow-diagram-v1-0_2.png b/docs/images/cutandrun-flow-diagram-v1-0_2.png new file mode 100755 index 0000000000000000000000000000000000000000..a0a2742591cf5e33cd485f44a45e059036a8ea65 GIT binary patch literal 1005096 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

-3-SIm;+_ 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ⅈ7g%anA{d9+3R=%F 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%0ARgixCI|EQmmXF4?_Pt>z<|p%O`)NuK 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�H(9qG} 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∋|}Y>gBvwt}_I(R2j&K=z?$Is^L- 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�pv?d4aqX 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%0DLn=`j*-5G8-dM|j8n~8K|rBk_r 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

=@Uk=FO_s2K*u$%han`7-*Q6XV{|I$NOws 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 Vu+1Dj@U}a$hxzJW5VXK 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

bZo1EFmHGn} z0{{IOK%vO$;1~YtPPq49E@&bH7Cm8l#EL}gkNl1$xgzmGsEtS$%Jg;YnlGL5+|mg_ zOO>G($q1Og99n%5k63zXAK->AuSs8i?;1eXQ9@FN(E(oLAVB-el@cli-Z!{UgR=Bx zZyluTfFXZL9*KD;R)rLW#%SgX&|43%Xx{LA+;6J|=wR#HvRjhv%}L2Y8xUPS=qreS z2F!amYb~Jbz0Pal4&-g|?RE*tBg+P$?g5R&T$lD@q;}e1;XKe>!Q^^yyDobV2Sdi5 z-8(2+ISd(}KLy0PjsmR(QjCJ(jllQ__jkF4jtP% zxFGq9Hw~6R84vQ*E=l0z`VTa_;5nP1`yVT@+o^bLee|`4SA4O3SA_bgcg^Gi6nc-0 zH5=EieD{w-O*cpCsXgrDhbnBY>vr|YaF;{)wQ$r_HkxiYRJ+{mP5n%ybP_3+M7sTm z5PcFwA>p?*@btV@Vhy#8k-@L&QP;v~gO>cx{r{1HeDCaz06zm6pRwnrdKW;5P-k@x z0iH_VWKIJ!DdY*(wpYBy`JpL)hFC`nn|k%mkxt$m_Q^CjLszq7HP-FVt1TRY%4<%| zDIMHKh6SPLw;dTaXQ@fZzM-#iqsl+Wl&~L8ibXj0%e?Gv2QEvPHmNiNg@wMC!dIhR z#P{1=VkU-CQ_=jhNCHWn1?bh4S%lsRV#><#h z$POx!ijVD|UH3cp8(4^n2+woD^VC$*Xz)*%GpSpa*9mp~y;=0dyC96Wuqfs-_mwP^)ka)aD{#|;v}}hi0b1ms)yc26E>{6Wvo60cG*ulz!&q}sPT#i!2ltsX z(*^$svI44FXmF$ODa%N{f6_r80EC1_j%ys*SijV@B)J8`3~m zE#QuNmGD*8)E+XPdAa5)`OE8CSVrG8D>O1l42XR3zU zpp_-{+Xb0`?yxfdzV{v8)Ndyd>h4rOQj5L%Y8Pb{u+6a{!G!3Gbt^;I$@(V^mJ9hv znlY7(@YxQBG)x~IKrVG1UTK4p6``<2P@v+yl*aOBPAGc9WkLguFmrm!Dg$KMd+%eK zGIcHf3DFXkDTwW*f=cb3by;B1`A;vv9kD!%u9AU9=Dx7&GcdyB=8+_P_1tKg;Rvc^ z!+w*}VAOef0Igr32PG=ChWFhr>ak#e?w9((>4Jte>3E_K^-5XfbC1DDEB*Wf(5;#% zyAK+C-QK+u6DOC9{R!jH{__FVJHebQ)AmpF*WGN-H_YC@nq1rfUe7kpk5KH#u0KUo zjF@V!jN_H5%`oivNq6oh;^G}DwiiW z(JJ)u(nu%YsZXEEg`mjyYGmXtbT*W*FS?K1Sz%Uja2<4sW^KD9dbLRDRw}`_;Wq2F zkjVTvuXF0mDQAK=yc%G%$v^P56Q6G+6phB9$@uc94d|RE8}!9M?xZ5J{g8Dd63}u{ zANj#v3}^+xj2`$Y3!%%~(t00ocbTKKHyhH7vO%L|4yPRP^q5#h?Xgzomgna8cVZGe z)5gY=T?3P{xyLUHO+lS3T(Jib5-`LAKcpBDt*+)$E}HrtF;62yR6>1UOb{fOv1Et_ zcQ3~yH#IC31Jth5h5Wtu3fTJ!{eyfJE_H8GR({`K-(wHEeiA?4WXo0US}9dDQuV8i2!~>w{jJvDrB8jZ=4W^QqT}b9pDq$0KND}j8STW^BBvN~i`Q47x$dpQ z)$E2gg<7SJI5+d0!z`2j69ZX!Qjz#0wI{=W;)xHHS345pSY)n)_I(3 zpI9N-2plJOctf9(C`;O66SYMLu6W!l9x<+sZN6K0@xHBJhwu2~D9MzuYUv?kMm5jRb^HC-1-prO-^^+;7SE+e~D!!vfLE|+4+XdB> zykS)E31c6Vr1a@gtFFwM>~q1}Rnxq?wr(WUCVdqsZnBBg;Bm#zy_MJZh2_?)K8+u+7{>y$V^R{GX+yX@+TlNKOV}4Ei#@Lt@$S2WW zJIHfON8c^HEyiWH{t_TQ)}dKgCnrUIBTIYpI*`t+&k+ANSVJd9COVT(5>VfAHHx$HVUy_CLO^qlwlNiHYTGzjp?g(7jf;!g)iU zFL$Xfs>6=^uU$;sWA|$@Gj>KkZ}bTprv%7{pA#Z+1uO9MxR@zG08u9{v!;uNY8JTPyWBPso41@Q~^IobqxY);AKn z%s4aK!N#M1AbFe#s46HO9j8On=CyS3@*8iJ2b{`60tcY?F<7SpH{(&t-uch@x3Ur| zZv?sX-ht-VfJL^4sz6wi`0v6otpS>dCJP`BfMI-z-|wACY?~Wx6?b}qM!X$d6CW;) z4dXPsU@od}xwBR!uvTF;wl!qBc{LZCtTU+lHJ(}Wt z{+Y}22EW&nT&=tAM8}EE+eVv}H^z5oig4G9QL#1ZuM715$C1_(iU?TmH8%Ea(?TtD zQn%@Kl+Bt9-$?bfsq50_gEwMLOMF`M1B8Eu58>BSy;HDhm6T2LgBH!eE>|7CGMKmo zl+EV&#x_K7N7a2~Kks{f@dPMMGp^m=aP18J=@{G$t6GD7@c^tzCRbfe;I_e?k0yG0 zdcisk(4!6eJnR)LFqNI_ZUPHlcsu9Sty1#*W3{E@bWUUxCeJOSZ&$k`Nemi^5G;Jc3e?R&VATrv^d9AJe8WX)#k|h z(dfN~GkjZcwk^naHHNS&$W%mK+_pv}) z;ftz%9h<6}n!lf)xK`>qG2##I%Nk8#UN2?~SCrxzXaq6eWDWgRLnk)l(|$&Zqke$(D4Z zzNF6zDSeb*zoMSYlxtK{wU^;MV-Fei*@7-wq0Id_U5td&Q}a=qx=)I$nCu!G57HlS zPX`0Sn(pf9brspRcUA@ZzskrOEUhvSckVBEyAm;$s6CytaPfUNYts=h+lz|_QyKO# z*!L<17fX7Kwu_BvwJQ#fnf(eo$bH{XjLXl@FRM22Mbq6$HrW(i^tz*I9S)B2)5sFo z1Nc!dFCNz5wkQ~f07=e=bx~~(?!3LxUtoQqUcGq0DR>ID%rLfp4X-a(`Y7qQtlr0Z zLv8U}V0i8A?WdBbxSH;sPVSI4Et5>tHnRB1|1(z--6dmMmIK88gIaL!vTh`{HKC() zFYrdTNU%Lrl~buDIVo0KH-?1C)Ky?GqF18){rx4_2=};+CTW~m9UD3MEPHxwrd<0Q zemE_Li+RMN^`ou`!^fM7$?VED^!1jGNJMja;P%ELcPCd@e}ayZp=VnPn*6iS7-c{U z7>^F4<=4@nZOO|*Uq6Eoqwi`DCWnfq4kwSU{UGIAlD=DNEDsjih|;Up)~|PYOr*zK zY+Z-0x$m3_OZ_&H!To%kkim=dzRwyV$t7w}jWAT|LBkN1>XqVw;PZ;f3-j}4Wlkpb z`kh&~B}Mdp5s8QgPp6!~kxP93fSY+dv|xWGv3SGt2X$q2lVajMk~iG_^5cznpgML{ z)cfH>*+gx{!LzdqIlNcTB(hcD0yb~W0CWDwJsa!mhW&onoE_t08L-^Mujur}u6Q$m z_WC&VO9W`*;TH~9>@-jWnv%!1zrpuhJaN*$01{GbA{Q`$^pix$z%6~gTPsD`M z9*LVT3{Xe#m2`JJ`G-;qhfop(RGr(I*+@t}>pa$1%2P6fiB6*dxDF*f=L-6}++1hi zn6WNZ~kXOAIL9n=hU=% z_+H zioI#>=CjpKHP;^E-cbxl0CF}WVmwsM>pb)-H{kA%KRXtGt^Tjzyc=TR(TYdS#sOM@ zD_^Q$(tG#Oiqcf2^4!JGlgl83c)vIcr_q}rK~Pa(w$8+>T>zOkru!c;&c1F8slk>i z?;rAZlw7Bt%70oW;T#N4&R|{}M?-k<_HL}qM`FNC5<6uqXGD?$nfxB!%vL%ZBsa{OJwg+@?!2#*=q#-r=G=W z)h$F)Qc{MqCZP*~xYB>Y(vN(hoOYLe0VXu(_2>?1M2@<(z6*K+sD)D8-lXXcOZSB& zy}(&)&SF*GBYhblxfvSu>K(0p+wuK?OwG5^Q9+{z#k#@H37CpWf9MjNpO@qbObC3pPDtluMai+iKz;7xW@BQUtS^JRinS$WU=oRp9vpu-0j`Q!NKwnT%9 zQ@>dhvR4rN-ro2%KhHL5?wioWnRT_eDp}Pm`26uiZJ5rVnUPM>C9SXb2KW`;o`)T= zEGyNyn6jAJY^Ktcd20W4>gbX4r`b8untcc3dIK5^ehdvIx84(P`8scE5`4W-67aIg z<>!qM{Qa~O5){YTk9pqZ$>@A=D=Ly;|@BeNNq zv=WY3ep?i8;g=b3_w4%ZO@6Neg$E^nDvS-$OgIl*m*n9W5XgP7>kXFWUNwx|R}Q>Q zp!HhtsD`$cXWJgf9EsYf?$V%r{_(s~jaczMGc&WBwajCNAGwU61(e!{FHmX3HRNKK zAa%9p`gRxBsynfEii9Mtx;h2gyxIrKHRC^O$TwOV`6-2;M!q97* znl+d$U=(B-j;n_7208#qq^<=%SVi!+_q*U0GnTt33ROC>Os=m#`>P}51l+~Dg%IH; z%qYC}Q6KH=>jU8q*-Ssz4hxQDANBZlaLCqt($76qNBa7dVtL@cy1Ke99m%`~|2h!` z8#>^x*INKS^Zqvny&(f}!`?x`cl%Hh;81%tzxet4PcD;lV3rc@2?k@|qYoYeLw=l{ zy@Kaes1esX5q0rI6a-5H^Cl<5M89uHzt+XVvSuWJ;Zp6LCfPs=~F>UWp$^0+9izha(uZkLyTB7*R2Q~jW5gE z-NM87(DQ$QVVUvpJJ?q-y$7x`G{gIf!pa$IYl%=J}{=s;is%4kW$< z@n!E%-;=X&FTp*6S6H1XUOtiOJ0;I-ki7?82A`CX`rUmd*Xc$1g5+!o+^>`w6R^E2 zo0K&S7bHZ20s<**`gIWc3r6HoFl# zK5k3;9=fj_g1tkWa6U^Lo>~U3_qw_csJoG)7KaEO$$bvJN#3-eYCp|Cg;#`V66-bJTb#PGAca?fs`1jjQMU#7lrHh%Oad3IO{_N+vH-({NjOwW zEM;|?=JI?3hYw%D;1tT?t^uXwg<)MFvH@JJ4W~2-NuS2X2XuDN%$kX7>p)(B1Unns z=evd9LSdvaBs3KB2%UOj?a0i+Ldt}|>FUMI%={h4K890_y7Dq2BI8zO!7Wx7$lPqt zB+g)GAVQA$`>*G6RC#4(<&&pUuFCW2U~u4w-b(fX@r16@b#+0Z!-qdgHLB)P!d3b+ z6aL={o)55;g5Y%BVV5y$CZ_X!A3n%efIMwztd+n2P_MD2fI3aDZp%KDww%5~U_Ky2 z{-T9S-*erwF{w1ZcD$(Vv>x&B7615PX0gv1{WT zERp&1z~iw$`;;zk_+>`)^$7x42z|zyAo&D+Wp2fg{A<2_8;L0pFDt04tFKc(*%bCK zEj@H~C31PQfWL+1FSdi}eqXd{~c*26CuY(Zm z)FW_X)(Sq4+TTh#Ec*ob_$a^5Oq3!S+?K$cO1r~OE&)6Y{tC=xy)b^XS(=+QbpP^b z+nGddOG`_2LG)cni6rCO*Ecry{gE1_J0}Y9_sl2$qetHi47a`Ob`X!9otryAdSX#$ zl7XbBo``7$Y$nr8@c%oxG0zFt#gugA`9M>b-7RxhFIaW|mIdE1u=F-wTZ$v$Zy8cf zqR6q&yUhD?O;)P@X1|@Kwn+Y!h*Vu^6he+a!JF1m7W(ok7xh?ZzrJvA^nIf}<JANp>bDqJAwb1kR+#L##ckG@E4q0dT9e^>ua*4r2?)>@yl9gUOsX zgn2GmZrB7J;lJSAh75`Ggn?~&^5hA_Lxud=0l6U<2hHOtx_u81KydTO+c0-QuE&uI zN&M9z>DX&Pvx|G9Ey;8J%{QBtv&<0ARJ6qWy(bI@}x*ui09H+!y!_bz+rN+!Tk&MV%XCLFuPm}FRiiy#27MR9DTtyh19V?-$0iA2X$ZAGA+o>uLO7c8>WVPz z8M~v%4wB*64ogL;ydm~;brU?6?yt2mG6H~*_0ddKbXWZ9DK1vX*n1Kjp*%(1q{!eLTf6byE)&y@$7CrRH@$;kKj^HsE|E(5$wph+-c5J@|@Q`20@E z(Wnr`6WMa1CIqvZJAdz7#<8^_ugj|JHw$k=RyFWp0US1LQAk@EvMuH|a-YtYv`5kN z_-D@(bG0niO*i=;7U;{9E*pqWdDB)dSof3{6+PE7^mWT4;j?zzsv8^x0R+;_+VM81 zYVR;BwlQ3#v1OoV{g}?)NaPZ)=51Qd&v$6$rKh~$1C*$qNeDWH6^oq4(bxOv?dF`J zFjMAFZb$W#SS$xix3OBEs!NsVP2PVg<*^H*K$9}KcO80$AxI&G^zzBgt&Nnn^Ir;$ zHaL^`#zSis+qEGY10RM;x}2`bzt(p_gU538+KI*h&XbN;!njLGv(>A21i5a;& zGVlXslZB3_;cMwnv}nI1WT=g_Z)#hvc#6?Pb7{k5AO2B$hL#X}`rK0%j*y;%;c0u6 zLUo1zVt>^XsX)`Ef6aMZuJ`ta>`mNBzHr6P-_CUK-5VpUaNS_MjoiAC;z@m3eu73! z>l%rqx1|qY4_K2Dd-+wqCB5fciT+PDFd42dYDRb4Tv=mvD$_xRFQC8@@>d*YI*B4KoU(UYD*ebI$lc4xeZpU2ww2m!+;`gc95!EJL$ z1l4jfn5JuhaUyz;RT;QKh)#OW!K3*P?^-UEos&;I^IuPpmzyi)vxK1H5Yz>{2Ewgk zkxG0}f1-9{uyCVHsdi3-xV7P3=Q-c|etquO0HMx*?N?+_i+4@>$(%e6LG{B%`b_Sl zkU%De9FA=1KrnsfNz@kM3r|gTg8YL>R068AU4DI)UhUuwcVgtUwxl1~qkQUQEC)Ly zVp$=Cp(dgu$|=?RBzx-7^qDn}wb@9E0qWOOZV9!$&DhNj;jW)HDn)wk8SSOmVRsC{(X*K6Zq(&`EJ&S184gC%e^zwTuce+ z;J%@PrPoz!Af9;Z-!}sO#4c>p?!}IqOuXg{a&8l=wyqU9QQ7huy3+fZaA^-eacy4} z{%gi#&|^=%BzIWTnZ%a^yIwgfqX%aK<#R@=y+dOM*ZaH;x#^83wL~;6xxzcGf{pTS zD?F{$Q&va%WK@kp!l>=ZE}IP*-;*bM-2WE};(E6Gw*oqu3nlIvhOdNbHH&Im2Do|b zlPK{Vii?#n>ahCF7Th~W_6zK+voY9whTXZ(IyU@g_+^%T``&dY20Z(BI;EXeI*U`W z+>`LR+c-iyz<0Tcx5MgrQZld0NSW=_3q!et3&MW^qianT`S0s--=%n&I!_2jMn*(5 zPr3!~mIJ~^TiGdOBHk>P+T`m7l#@UGy-GkMI_Nn*+iJ}mk@1`kE*2I4d5J_ZCUGEF zsjaPrxVqcHAamE*OYUGvDU`&OMl9B|60>pXOk9K(55Sh5do+aFz3Q z_tj5VgnNc-9?q3XDdp6ttszM_wiV96`Vzyr3!a~>V6v`LbyOxp~~n((F=Ivla^=)PpF&~y|M)dzlw zdv{WS7Z*=}^;A!Suu42uSIA@s;)b z>Liz4pPX7uYjU~E5G;`F|9m1<-0c#FZVxZ-A{d?OGU#KHlNO9j-o<3^909w05qGV| z`>w9&%62O(r-T&$vy5%r*%?w#Zu{qCktYr`RZaabivoh@ z2X&^OyMKnnW9doVx|FMPNfz6}aN$-}>E!=u@5|$%eA~W9Dy_7LB2s4P?VpS=Z@ z>|2W>+mwADC8>lELY7FfCyjlH79?BtZHDao48}IwdyIbW_r9O!=DGiS-_QFte>8P9 z%yk{-aUSRQ*uIBvMYV5D%~p`h2ivbHBO}ELecw}l@u1z^x^4f5oe7r8mv2Uqw{U4R z_4D`10rXN*Pg$#RZVE%{hp~w0s{R_4fTAlhRx2CnEpKxw)=>-J1AN$Lzho2^6v$hx znQEeoX!i`xjmp((%z4sT4Op;e2I)t&a%xR|Emvx$L7|6R#;wa2 z4)412`wKZ+uxCEnsZb=MAwFT5NowyQfMZX*03_~fyn0x96SIbx1Gpq4WTyMjJe~wR zt;=cQ(;FoVqmQ%GN|~~RsYKM1ob;kM3W5xXxQsyoVgK=XKcOuGg&wrJlAf{}cEftt z#nMIUyx(@+D5JXZ@zL`(xEM>lrs=+`%a&{45eCUT(RDeA8)rLU5G9;GViWy zl#9XmH2+s}?ti`8li|-^e2c-#p0>SfWlpn$W1DGzd&y^}IWC!#totGs_}V-2r-K9f z2cj>qeQdfE^P0k27y9i%MXr#m#|KPyiV%G8d8f|1{dS$9NUi4Ehj+ElmWPy$u{}|2 zG07^(*`=n084xu15O)iJNYYs?Kmw*E-|H*GfV7I3iI#q`z7)vDb@uR>P#bYH&#Y6H z*}oSX3>-*)?-Rw}=6U5I11GiZONvt#*iGC|rDb%&*0flA2H{IaxI_H#R*k{AJ@B_3 z-_31FkL*Z~N*Bi88sOY#mISng_3E!Qk6frlE&j@m0z9bL8Jr%ibzAq0CA*j@6+aW@ z-TI!l!*TfmsZIVbzD;s;K#PpCmY{=Tr?|1(kZ95tgxm(TrwY7Qd0F^KD8YZgBsepo1w zRBUL~OxVIjB)6;Q46IT)*Z0>6eJ1XXjc%ngV=U68`6;_4Mu(7kod@Cp?vQ+;bF`KzAZeBHo%av)HccLD(JjJ&5J-qH+s-^9{#B$2||2kVxV2 zqPGR5{7E=CJ{=v7RImhU^cVd;hkagFc8IkK>)!RmFElhX>~J%IZs*78Yg?&TS~fWR zgogB8SpH8}j=;U7yn|coDTB3<-$n}G&#WD!FczQ4)sU0Y5gRWoQ<&VbQ&6womiB$} z$X5NgA{q$91M@3KIP@Sh`?y`2(y9TcN_ByQKiXm3^|sk*mzf}52wX({1Cw0G&|;~5 z!rI|=8S=VDzMgB}A7cHfD;$NCWF}@VE|y(gJFP8^K8iXU`OXEdXYtGsWjkzz>t!S{ z^K8Oe+2HQtdrU2*obgT8uDw;hF*rjl5l{iEqPg0X+YAV=JB@FeMDxTfTONk?B$&8; zOj(#TSseJvZrrqRgrg(B56liXz>$AGnTTN~P7NAGQ&b-HS2I@` z7vsk9JT*t@?Cey5v!2dH|7 zMwPwCMn|`tDl1)RF#-QRELB3ggkok^E%tAZW$osc4mXr%9j5_KxA~Ysu1$J+<~c#& zRRW)G%~uL$3V&ZsSZZJY8@g6@!j5|I(0~8_t=K`ZalDDy6-?Wro);B~IODIngPqVi z0%y!*$)E!4wUKiy2(L)7V_e%aii;@@nQlh9XKh?(8+gb)Oj^-DN$oUOH#G8{QCrJKlpbX2K#+ zBfA(PThbR0$OJhKq9jbxqZ0UYYQqF>t%ZGgoq4CwQ-aW1Ca6Uu>1aq}oThY%i|P;v zNiQyzPFq{#UT3Yqa)yQ%CHBSVfMSAzNV~*=bpSPR2QUDSXCWX5cEa@5yxwQ9wQ#OX zO1dAomd(pl0Y~JXbzo(9j%nrE%~qCWSLkT@(oObyi;zwv`KuWeh>Ui(x|`F_{ewuL zRj?`H__+Xb1!$Y;8#;(AA^1bo+*vD03jb;9n@$l0e5cwlzgqyU3k!lfbBFZVFc7)> zeahs+vMES9tv_3we~U0wiqE%@>@IMyRI5_YNKF;^A9TwrKZ&;^tf*+lOlV~IaZdD| zy8^siP_CIHfRcbmZQQCMLoP<~z-eiH1kR$gqBnhM*Q;6<6zWjSZMSVqdJ}ZgGg=Xi=OD4@5kVgd+6dGnhX z(Gma$xfq|t`MQKa8U2Z49%wx2LU_q_N23$4ND$8W_Fo)~5Yk3P=92=LuKlmgOwfDE`ISWTImfUNa5;K8UnFNC&cx%K$=0W z&=*mj1@aIY@6B`7;kysJ@q!zTG{id;jV#Ov|F?&R!`lUynL6}Bne0nhv?qqkgP3X( zt^bzx9ddEqbmZYpH*z8La7`7fpVI0a!(PfERukj|j1$grK#h*Pj$mN@CQaInlFE)4 z^p$zTnf+=c>F*_awEoeYtWIxhkoV29sPo2HJ%x2;-MM1|dyd~NAnK%*kRn-{#f~5l zqt{DPP7BzBRq5SovguS~i9aWLCdMsAVt|pykT#iFGH-yRej6_^g%d_3qR0hYdvMoy zgH*xUhguH$%E4o+vrxZO$lU9Wv`n4&B^ia3r7p}ppQdCvjI}_S7UI*1;JP7xH6VNa z)~7{gXWpc<9G`;x0aP@(>n+zxzi#`K1_e0H?hG2JDr#8M1PA33P-G6dngu=@eatjbl-r#y=<^Yg@2928kQx~rs z9Io+G{;08(d(T`_30F}fAVif+eUl{9zhg`7H$WeNE=2Wl6&CVEP*v{<*-&kV7K4n@ zVHyQTtGA|&KrQd>Rt((}H8QH2=(K~%QwVbX%N~g|U_Wz zAkw=2vpJqKutS zJKqJ+*N1Vct&~~^r`O`~DyuA;?gE%91O-JqW+poG2*|1Yq>gMVMc5OMqTcS$E}iKN z>Z>qo9azO_f9q62YL%HzjTXpAehsP9`xQJmZkym-tgB_-_H~F$>2M8-z(>wOG!!xo zN<%r@ImKU%tb2DJs&pgDL3>WHNw#j?E*cD_Q{CMjuJQwB@n);{vxvrlz3iXc11bSR z0eAn>!LrbB`;S8U9XqWB&@Ugo{*8mvUo}4r`q>6M2`uj`@<1a=zWHGyZ$}QHLsDZO1g*2xLyp~K)62Cn%3D?&x4H4;-Y<3Jxnd{J+1=TxuD9Ua zODnN~-9wnZ4vI3N(cg;7OMLVeB6S0WlLZ1@v*24a!UmU0Fhm*g%2(VeH8`;GU@SPJhsEIjq<#yZW`e>nX=ocVs^QB$`3z5vM* zypQn1s3|kgv0SQq<692(BAQ*S2Qb4fu#`#_T0ltVw|kOLkB~LIpuThKv5W02bV@-V zjQ!POfZCq>*Sk2~6U@xa>Pv3R6);bkPVNcQd+875k{TL;$&4J@MkXhr=;n>(HR?mf zL%q-{w#v(EUoM>9V9IXM5BMh#s{+4}1wGXX$O{4;M9xd#gDsl`cu>_3m>CoFOc(3! zy~q5OG8S5K`?nSFJAgaxAgC@EyEMWgsCP0kI*$QizGFsheYUEb8!1xEGRFDWlO3Aa z+2I73J~6<8UI@21Gk<}_=2ffcRCOTvul@x>yH*uM-rQRYvAL8d?lpqIEix42Hnm+W zxpK^SzQ6!gEY>Cd`oWE?Gb4lTP*EMEdhwo_4dO)hNqTMT0lkVo0<^{)Wd)*imyK^V ze?NT$2h=J(Q7pf@>au_O!O44pV(rc zP&Y3U3ru02c<+wd3DQs6V*dEhV2!No_?yvGz}qUG19Opu&Wi)#vQ&bkeBFEQ5TM;z z4@8|y(7EwtZf-6hAb>vC3d(rGtLZ&C5E>n^*S~*1{~)AK@2EjW(?`CZ7XROeh2Uw~ zPE2w((ewA)T0fQ_eUo66cQ7F}C!4j+&qmDF(b`IW=o{M|rk9uO!k?erXg_Gnk#U2m za*@MD&}sd}lrVwTMxm~NDor;{VIlE|dlNZ+SK{p^B1*nSaDJ_QxcgB2{^n=FCsfsk zBd!#11Rtu}EOOTIL!MP`*H>P)PmI`gr8v_w{gXg#PNPoIu%wt*5wd@4;*LimI>0i6 zTkPUQ;;{1VYW{qYQqxNYna1d`=4Lb%D-iA-h|49FHF;=8am?hPHx~Bwbl=N&oQMdo zRXhm&IUOI>*0t+H*0$o?Hwn(^=G0bddxb1^dL-8QS1Vh|bSbqyfM?SD(!r%5qj}H1 zF&ZDmue5%ewUod~nEfcx=8a3r zrz5OBzPOP!EU~H<$z>X57`Y85iWmq{l1XnPWt|DGw}?~h#*6CsGLmCpV8u6Or^zic zWdW$GBe}ZCgfl2`ZAPy z*`@qM6uFZ$Pwo!bxaTQ!u=5L3%BG+sn4(zijUJ1_0fBn#u(K6ZaCByyX;k z9Zs$@NMyL`;lsOz-C)WBcOWY7JCx0&HosWK6u{-#FK9}6I5ux_F07j3Y-J@S-qK$d zZc>=DG`}^|kXh!81FosQzP_Zpugo`{Ybf9*7403Uoa)wXM(w!}ZrK`nW(UG+xS$$y zy*dJ#w16;yLTr`fTu_l+%2K>xapOijrg69C6s5Fe=2t~FtsUjLIGYYNLcA}VoUj-Q zA&{ouTS`O0fcTc_14x^$1^z&4NWeED&qWOl-%~I;Ob{v!t4wV_&+K|)PGQ+&e+epn zM0NQ>?p%)n%6#S0rxkrdTszc8>Y`K>PLxfjW~6qt19ejc#PK zDc-MDn0ca_dHZ%F=K))MP+wM-Th7#84vvmoH}a3rA;y3r{C6jDGKuS^&2(jk%XB$8 zT$X&*qZxs)QgX_-usX}j%L{DV8nP7o3P$=sbttjC0OTx%`jXJv!L#76IaAf|D@#b$ zpvclDm6H-ItJ~VpO9R5uo-`b;b?^*rypN~U6*EISc#TG-Ffs2RUU-i{e1r<9$}R-Z zb8`wwL|g<1fNdHoZZ=9MePV;!+O0n2kM4z^KcXSN>e3FEGz!Od7U*gC^ToJ~Tnu3{ zaUPh4b;KoizxJ~qElDoravzOhFPZ&Tlgr7q2!9Hi4NbQ@u451y6#ieN>BYdkXxeP)aAsy#Sl=Z6KH1ObxPgUq3r~gts+A2t7^E zu*P{h4aq}Sl_Zu}RUzxJIGu~5&Cg@bHYLS+F8#=^d$hBEeB5d;%&bSK!E^dEKdb2b zuxVQW^mPsA>*&2^TlLZ6qTnWtz-X}X6`7F&JPIoUyJ+}67A`$XX$AM0Jk~8r$t0&W*aq}q~=8GWJrCo)IM4>p>JXvOev6EzZ|#Yg`7=RHszs(2`#mMy*Nlg}o8oigqk{}2Gr8${ya4)ou!e}=wvMbpt=r?lBJ zQLf~g^W8{?e8=>N5KnlP_4k8qts4 zlZLOOB)~o{-u+r^j4204sjMS=<0#QMqcbz5#TI#ln8HlEUJ2{aA8?Vu*@y zhLI$g)1I5~1T@-qPux{Jfxe@EZ)XvPXOmqH6-^FbO1fEOsP#c?%1b}CniNo5QjH#i z-Ky>2i?zB88yGmpw;h{4B7^vw-6Y7PHNws z9agFJn23oz>-?TKfzr*>Ns>hm%$m@MCbX7zT3@vZ^?Pfz9}Z2blRRy^ym>WcvrtQI zStjH}pqn0&lsq#HuinqT5@&k!q22{W{NOfdV1U-eGk2l%V!(Filhx}gbjPxoBpO2s`mW5Y8D)qyKO+H( z*~s%AHSax!w(SkAW=MMFx@Z`(6}Dn?e-Ia;$&IJju+XvM2yW1JqC-SD+GW%u&`|_< zt2^w&*MCTimho6p;90t)DsTo=X{cll6MMETi=_kDn4)DNK2yhYc9tDSqqb6srHdU< z^6BGON>f3Tqf4o&QG(ALTUp3G3ydt({wC;-eMx4LooC5K(eA5%&9`uIIU7M9N!5W_ zUN&XG0SqN^@*G7p81Mj!X`EG}Fz1?@9yey40<|vo5?YyHilMRy=DxISLKn}4hn!Ee zA)S+hX4vmbeXaV2hFwkLQ0xEkS3oONU_jTNsskG^@PpVt#4ief%l%UzxXQFb0p`O1 z!t#{tBJ{Y+#8#QYET5=-`6X@8by4)Q`4-=v!wdQ7+uO=s0*Dk)((<_z|KIdkSbmcl12-e)W8 z)`<$O|GZuKP>?QZHqSbKuwvDa0HWYFZjw;RCn*-`47hJ1FdGgT=}xDIqV%H%PRhB8 zJ6QO)yQ9e*54ukzN}2%Z0j!qFBswpuVI87Az^SXi;ljH1pUgZmbaLyuCR@P3Prqs>RK6Y5FuGf=PpR(+f*U7{Tom=+*QIHYCN ztEH65o$UZSI%*#I1 zCtcd2u-@cF)X!+QoQB;PpH3+Y46Dz&;f1ZKyz<@emHO}V_^^B=x)zf3Gc}jjA7-#6 zUg6redewt@g~{y-E*R@MI$&23aQKRp+-DPbNPs|K$^x^+C2g;hLj+?^x3kNI{S_0 zL8*~NPYjxP(gsbaU!%~}4gq8d$qb!CRzc7D`VC~((7u%}^rNXy`s>KE-A=S?&X+wX zUHRUDQno~kLX&C+7;?#l?V-H6bacGCFqbmfol1EP-1i0TY^_}3bwf#S-*()g8ky8K zHC>g7otn^J2bLp2090seQfsD8!neii0&ITJe^fIx0~@|38U9C_MUdSXqYqc6Jm(9c z+ZZOKC3u0>NFw1JsJ@+jIWJ!u*lPotG+-06`9%qOGvrr9u||)MT5CN#E^)4QXvX?> z-qquneG2yQbxY#6Ei6)?1N;r0Ghez&I`fli@llfTddqVRX{|on4HUT-8pv{fwUeom zq4iu=zKxMdGa>yVrQc@}X;ac2@{$40 zaO>0Gv~!`t7AVLsvEOrdoYT~hA`C{Mm{qf0NxA&$fuOI%SC|OIy#LIOQC1J2jRAEO zCmCeIya4^lBe)WHUX(vBnE?Ph2yi{gu~pav4nn(E&~#a5FP7QYT|efN+kOhnYeRwx z6!9AzWi2oK4*jOQ{u2fUH}?XM9F%0b{halA}eV!VYkHh071=^dtUtHv4Z0Y2& zT(xx0%aeY9p}O29KWshk&)2d4y8TcFKoW6oGRTaHC(s{rR<%0Dbt=I>jI9S$+;h-J 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 Date: Thu, 25 Nov 2021 10:04:59 +0000 Subject: [PATCH 096/125] Fix for dot in sample sheet error --- bin/lib/reports.py | 41 +++++++++++++++++++++++++------- tests/test_samplesheet_check.yml | 7 ++++++ 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/bin/lib/reports.py b/bin/lib/reports.py index 060a2837..ce3bd91a 100644 --- a/bin/lib/reports.py +++ b/bin/lib/reports.py @@ -129,10 +129,22 @@ def load_raw_frag_histogram(self): # Create dataframe from csv file for each file and save to a list dt_frag_i = pd.read_csv(dt_frag_list[i], sep='\t', header=None, names=['Size','Occurrences']) frag_base_i = os.path.basename(dt_frag_list[i]) - sample_id = frag_base_i.split(".")[0] - sample_id_split = sample_id.rsplit("_", 1) - rep_i = sample_id_split[1] - group_i = sample_id_split[0] + + # split txt files on dots + sample_id_list = frag_base_i.split(".") + + # join list on the elements of the sample id + separator = "" + sample_id = separator.join(sample_id_list[0:-2]) + + # split sample id on underscores + sample_id_split_list = sample_id.split("_") + + # take first element of this list for group id + group_i = separator.join(sample_id_split_list[0:-1]) + + # take last element of this list for replicate number + rep_i = sample_id_split_list[-1] # Create long forms of fragment histograms dt_frag_i_long = np.repeat(dt_frag_i['Size'].values, dt_frag_i['Occurrences'].values) @@ -203,10 +215,23 @@ def load_seacr_peaks(self): for i in list(range(len(seacr_bed_list))): seacr_bed_i = pd.read_csv(seacr_bed_list[i], sep='\t', header=None, usecols=[0,1,2,3,4], names=['chrom','start','end','total_signal','max_signal']) bed_base_i = os.path.basename(seacr_bed_list[i]) - sample_id = bed_base_i.split(".")[0] - sample_id_split = sample_id.rsplit("_", 1) - rep_i = sample_id_split[1] - group_i = sample_id_split[0] + + # split bed files on dots + bed_id_list = bed_base_i.split(".") + + # join list on the elements of the sample id + separator = "" + sample_id = separator.join(bed_id_list[0:-4]) + + # split sample id on underscores + sample_id_split_list = sample_id.split("_") + + # take first element of this list for group id + group_i = separator.join(sample_id_split_list[0:-1]) + + # take last element fo this list for replicate number + rep_i = sample_id_split_list[-1] + seacr_bed_i['group'] = np.repeat(group_i, seacr_bed_i.shape[0]) seacr_bed_i['replicate'] = np.repeat(rep_i, seacr_bed_i.shape[0]) diff --git a/tests/test_samplesheet_check.yml b/tests/test_samplesheet_check.yml index 55f6b7a6..c723a214 100644 --- a/tests/test_samplesheet_check.yml +++ b/tests/test_samplesheet_check.yml @@ -68,5 +68,12 @@ tags: - samplesheet - samplesheet_M_M + files: + - path: results/pipeline_info/samplesheet.valid.csv + +- name: test_samplesheet_check_group_name_with_dot + command: nextflow run main.nf -profile docker,test --input https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/samplesheet/test-GSE145187-small-dot.csv -c tests/config/nextflow.config + tags: + - samplesheet_group_dot files: - path: results/pipeline_info/samplesheet.valid.csv \ No newline at end of file From febfcb6f408dca0822fc706984ce134040773095 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Mon, 29 Nov 2021 13:55:04 +0000 Subject: [PATCH 097/125] Updated peak reprod calculation script to better handle file diff --- bin/peak_reproducability.py | 47 ++++++++++++++++++++++---------- conf/modules.config | 6 +++++ workflows/cutandrun.nf | 54 ++++++++++++++++++++++++++++--------- 3 files changed, 80 insertions(+), 27 deletions(-) diff --git a/bin/peak_reproducability.py b/bin/peak_reproducability.py index f6e52900..86d07a28 100755 --- a/bin/peak_reproducability.py +++ b/bin/peak_reproducability.py @@ -31,27 +31,44 @@ # Init peak_perc = 0 +numfiles = 0 +num_columns = 0 print('Reading file') -# Read file in using dask -ddf_inter = dd.read_csv(args.intersect, sep='\t', header=None, names=['chrom','start','end','overlap_1','key','a_name','b_name','count'], - dtype={'chrom':str,'start':np.int64,'end':np.int64,'overlap_1':np.float64,'key':np.float64,'a_name':str,'b_name':str,'count':np.int64}) +# Read first line +first_line = None +with open(args.intersect, "r") as file: + for line in file: + first_line = line + break -# Find number of files -numfiles = ddf_inter['b_name'].max().compute() - -# Check for table format -if isinstance(numfiles, str): - print('Detected single file, reloading table') +if first_line is not None: + first_line_split = first_line.split('\t') + num_columns = len(first_line_split) numfiles = 1 - ddf_inter = dd.read_csv(args.intersect, sep='\t', header=None, names=['chrom','start','end','overlap_1','overlap_2','key','name','count'], - dtype={'chrom':str,'start':np.int64,'end':np.int64,'overlap_1':np.float64,'overlap_2':np.float64,'key':str,'name':str,'count':np.int64}) - -print('Number of files: ' + str(numfiles)) -# Check for empty file if numfiles != 0: + print('Number of columns: ' + str(num_columns)) + + ddf_inter = None + if num_columns == 6: + # Read file in using dask + ddf_inter = dd.read_csv(args.intersect, sep='\t', header=None, names=['chrom','start','end','key','file_num','count'], + dtype={'chrom':str,'start':np.int64,'end':np.int64,'key':str, 'file_num':np.int32, 'count':np.int32}) + numfiles = ddf_inter['file_num'].max().compute() + + elif num_columns == 5: + # Read file in using dask + ddf_inter = dd.read_csv(args.intersect, sep='\t', header=None, names=['chrom','start','end','key','count'], + dtype={'chrom':str,'start':np.int64,'end':np.int64,'key':str, 'file_num':np.int32, 'count':np.int32}) + numfiles = 1 + else: + print('Invalid file format detected') + exit(1) + + print('Number of files: ' + str(numfiles)) + # Find total number of peaks ddf_inter_grouped = ddf_inter.groupby(by=["key"]).size() df_inter_grouped = ddf_inter_grouped.compute() @@ -73,6 +90,8 @@ # Calc peak percentage peak_perc = (overlap_peaks / total_peaks) * 100 +else: + print('Empty file detected') # Create string and write to file output_string = str(peak_perc) diff --git a/conf/modules.config b/conf/modules.config index 4443fa15..f3a870d0 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -252,6 +252,12 @@ params { publish_files = false } + "calc_peak_repro_cut" { + args = "-f 1,2,3,6" + suffix = ".repro" + ext = "bed" + } + "calc_peak_repro" { publish_files = false } diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index db21ddb2..1a5e02a4 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -292,18 +292,19 @@ multiqc_options.args += params.multiqc_title ? " --title \"$params.multiqc_title /* * MODULES */ -include { INPUT_CHECK } from "../subworkflows/local/input_check" addParams( options: [:] ) -include { AWK as AWK_NAME_PEAK_BED } from "../modules/local/linux/awk" addParams( options: modules["awk_name_peak_bed"] ) -include { IGV_SESSION } from "../modules/local/python/igv_session" addParams( options: modules["igv"] ) -include { AWK as AWK_EDIT_PEAK_BED } from "../modules/local/linux/awk" addParams( options: modules["awk_edit_peak_bed"] ) -include { AWK as AWK_FRAG_BIN } from "../modules/local/linux/awk" addParams( options: modules["awk_frag_bin"] ) -include { SAMTOOLS_CUSTOMVIEW } from "../modules/local/samtools_custom_view" addParams( options: modules["samtools_frag_len"] ) -include { CALCULATE_FRIP } from "../modules/local/modules/calculate_frip/main" addParams( options: modules["calc_frip"] ) -include { CALCULATE_PEAK_REPROD } from "../modules/local/modules/calculate_peak_reprod/main" addParams( options: modules["calc_peak_repro"] ) -include { EXPORT_META } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) -include { EXPORT_META as EXPORT_META_CTRL } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) -include { GENERATE_REPORTS } from "../modules/local/modules/generate_reports/main" addParams( options: modules["generate_reports"] ) -include { MULTIQC } from "../modules/local/multiqc" addParams( options: multiqc_options ) +include { INPUT_CHECK } from "../subworkflows/local/input_check" addParams( options: [:] ) +include { AWK as AWK_NAME_PEAK_BED } from "../modules/local/linux/awk" addParams( options: modules["awk_name_peak_bed"] ) +include { IGV_SESSION } from "../modules/local/python/igv_session" addParams( options: modules["igv"] ) +include { AWK as AWK_EDIT_PEAK_BED } from "../modules/local/linux/awk" addParams( options: modules["awk_edit_peak_bed"] ) +include { AWK as AWK_FRAG_BIN } from "../modules/local/linux/awk" addParams( options: modules["awk_frag_bin"] ) +include { SAMTOOLS_CUSTOMVIEW } from "../modules/local/samtools_custom_view" addParams( options: modules["samtools_frag_len"] ) +include { CALCULATE_FRIP } from "../modules/local/modules/calculate_frip/main" addParams( options: modules["calc_frip"] ) +include { CUT as CUT_CALC_REPROD } from "../modules/local/linux/cut" addParams( options: modules["calc_peak_repro_cut"] ) +include { CALCULATE_PEAK_REPROD } from "../modules/local/modules/calculate_peak_reprod/main" addParams( options: modules["calc_peak_repro"] ) +include { EXPORT_META } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) +include { EXPORT_META as EXPORT_META_CTRL } from "../modules/local/export_meta" addParams( options: modules["export_meta"] ) +include { GENERATE_REPORTS } from "../modules/local/modules/generate_reports/main" addParams( options: modules["generate_reports"] ) +include { MULTIQC } from "../modules/local/multiqc" addParams( options: multiqc_options ) /* * SUBWORKFLOW: Consisting of a mix of local and nf-core/modules @@ -984,10 +985,37 @@ workflow CUTANDRUN { ch_samtools_bam = ANNOTATE_FRIP_META.out.output //ch_samtools_bam | view + /* + * MODULE: Trim unwanted columns for downstream reporting + */ + CUT_CALC_REPROD ( + AWK_NAME_PEAK_BED.out.file + ) + + /* + * CHANNEL: Group samples based on group + */ + CUT_CALC_REPROD.out.file + .map { row -> [ row[0].group, row[1] ] } + .groupTuple(by: [0]) + .map { row -> + new_meta = [:] + new_meta.put( "id", row[0] ) + [ new_meta, row[1].flatten() ] + } + .map { row -> + [ row[0], row[1], row[1].size() ] + } + .filter { row -> row[2] > 1 } + .map { row -> + [ row[0], row[1] ] + } + .set { ch_seacr_bed_group_2 } + /* * CHANNEL: Per group, create a channel per one against all combination */ - ch_seacr_bed_group + ch_seacr_bed_group_2 .flatMap{ row -> new_output = [] From fbd396d255809a77d4953414291b53b7fa36df50 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Mon, 29 Nov 2021 14:25:02 +0000 Subject: [PATCH 098/125] frip now checks for empty files --- bin/frip.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/bin/frip.py b/bin/frip.py index 0faf1808..c9fc5231 100755 --- a/bin/frip.py +++ b/bin/frip.py @@ -37,18 +37,30 @@ frips = [] for idx, bam_file in enumerate(bam_file_list): - print("Calculating " + bam_file + " using " + peak_file_list[idx]) - cr = crpb.CountReadsPerBin([bam_file], bedFile=[peak_file_list[idx]], numberOfProcessors=int(args.threads)) + # Init + frip = 0 - # Calc the total number of reads in peaks per bam file - reads_at_peaks = cr.run() - total = reads_at_peaks.sum(axis=0) + # Read first line + first_line = None + with open(peak_file_list[idx], "r") as file: + for line in file: + first_line = line + break + + if first_line is not None: + print("Calculating " + bam_file + " using " + peak_file_list[idx]) + cr = crpb.CountReadsPerBin([bam_file], bedFile=[peak_file_list[idx]], numberOfProcessors=int(args.threads)) - # Load up bam file and get the total number of mapped reads - bam = pysam.AlignmentFile(bam_file) + # Calc the total number of reads in peaks per bam file + reads_at_peaks = cr.run() + total = reads_at_peaks.sum(axis=0) + + # Load up bam file and get the total number of mapped reads + bam = pysam.AlignmentFile(bam_file) + + # Calc frip + frip = float(total[0]) / bam.mapped - # Calc frip - frip = float(total[0]) / bam.mapped frips.append(str(frip)) # Log From 6f107d3f83b3a450a0fa34fe4f3d31451b5eee43 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Mon, 29 Nov 2021 14:27:22 +0000 Subject: [PATCH 099/125] Whitespace --- bin/frip.py | 2 +- bin/lib/reports.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/frip.py b/bin/frip.py index c9fc5231..f35d4103 100755 --- a/bin/frip.py +++ b/bin/frip.py @@ -46,7 +46,7 @@ for line in file: first_line = line break - + if first_line is not None: print("Calculating " + bam_file + " using " + peak_file_list[idx]) cr = crpb.CountReadsPerBin([bam_file], bedFile=[peak_file_list[idx]], numberOfProcessors=int(args.threads)) diff --git a/bin/lib/reports.py b/bin/lib/reports.py index ce3bd91a..d98620ba 100644 --- a/bin/lib/reports.py +++ b/bin/lib/reports.py @@ -132,8 +132,8 @@ def load_raw_frag_histogram(self): # split txt files on dots sample_id_list = frag_base_i.split(".") - - # join list on the elements of the sample id + + # join list on the elements of the sample id separator = "" sample_id = separator.join(sample_id_list[0:-2]) @@ -217,9 +217,9 @@ def load_seacr_peaks(self): bed_base_i = os.path.basename(seacr_bed_list[i]) # split bed files on dots - bed_id_list = bed_base_i.split(".") + bed_id_list = bed_base_i.split(".") - # join list on the elements of the sample id + # join list on the elements of the sample id separator = "" sample_id = separator.join(bed_id_list[0:-4]) From 3a21bea1012036a3a47b1baceaab2fffe4a1259c Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Mon, 29 Nov 2021 14:29:51 +0000 Subject: [PATCH 100/125] Updated min nextflow version --- .github/workflows/ci.yml | 6 +++--- nextflow.config | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ec62a99c..49a8f7a7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ jobs: strategy: matrix: # Nextflow versions: check pipeline minimum and current latest - nxf_ver: ['21.04.0', ''] + nxf_ver: ['21.04.3', ''] steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -62,7 +62,7 @@ jobs: strategy: matrix: # We only run this on the specified nextflow version for the pipeline - nxf_ver: ['21.04.0'] + nxf_ver: [''] steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -136,7 +136,7 @@ jobs: strategy: fail-fast: false matrix: - nxf_version: ["21.04.0"] + nxf_version: ["21.10.3"] tags: ["samplesheet", "verify_output_input", "verify_output_align_short", "verify_output_align_long", "verify_output_peak_calling", "verify_output_reporting", "verify_output_save", "verify_output_skip"] steps: - uses: actions/checkout@v2 diff --git a/nextflow.config b/nextflow.config index 2e50983c..4dc98f47 100644 --- a/nextflow.config +++ b/nextflow.config @@ -225,7 +225,7 @@ manifest { homePage = "https://github.com/nf-core/cutandrun" description = "Analysis pipeline for CUT&RUN and CUT&TAG experiments that includes sequencing QC, spike-in normalisation, IgG control normalisation, peak calling and downstream peak analysis." mainScript = "main.nf" - nextflowVersion = '!>=21.04.0' + nextflowVersion = '!>=21.04.3' version = '1.0.0' } From bf2e90af92f0fe87a2d8d0dd7c72fc9ac1cf01c1 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Mon, 29 Nov 2021 14:32:50 +0000 Subject: [PATCH 101/125] Updated badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 72d75abb..93d7d04b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/cutandrun/results) [![DOI](http://img.shields.io/badge/DOI-10.5281/zenodo.5653536-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.5653536) -[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.04.0-23aa62.svg?labelColor=000000)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.04.3-23aa62.svg?labelColor=000000)](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/) @@ -45,7 +45,7 @@ The pipeline has been developed with continuous integration (CI) in mind. nf-cor ## Quick Start -1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.04.0`) +1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.04.3`) 2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/), [`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 _(please only use [`Conda`](https://conda.io/miniconda.html) as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_ From d21d61e41617a3fa5d029aa29fff253a719aea4c Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 14:50:59 +0000 Subject: [PATCH 102/125] Made nextflow CI versioning more consistent --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 49a8f7a7..ad6cc813 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,8 +61,8 @@ jobs: NXF_ANSI_LOG: false strategy: matrix: - # We only run this on the specified nextflow version for the pipeline - nxf_ver: [''] + # Nextflow versions: check pipeline minimum and current latest + nxf_ver: ['21.04.3', ''] steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -136,7 +136,7 @@ jobs: strategy: fail-fast: false matrix: - nxf_version: ["21.10.3"] + nxf_version: ['21.04.3', ''] tags: ["samplesheet", "verify_output_input", "verify_output_align_short", "verify_output_align_long", "verify_output_peak_calling", "verify_output_reporting", "verify_output_save", "verify_output_skip"] steps: - uses: actions/checkout@v2 From 19108d3b75f02fb4652c84701dbb54c4f240fa5e Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 16:01:19 +0000 Subject: [PATCH 103/125] Updated gitattributes --- .gitattributes | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitattributes b/.gitattributes index 7fe55006..4920bfed 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,3 @@ *.config linguist-language=nextflow +modules/nf-core/** linguist-generated +subworkflows/nf-core/** linguist-generated \ No newline at end of file From b6f627145def4cbeb14e03606d4956a9d29ef186 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 16:12:17 +0000 Subject: [PATCH 104/125] Updated ci file --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ad6cc813..f13336fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,7 @@ jobs: env: NXF_VER: ${{ matrix.nxf_ver }} NXF_ANSI_LOG: false + CAPSULE_LOG: none strategy: matrix: # Nextflow versions: check pipeline minimum and current latest @@ -59,6 +60,7 @@ jobs: env: NXF_VER: ${{ matrix.nxf_ver }} NXF_ANSI_LOG: false + CAPSULE_LOG: none strategy: matrix: # Nextflow versions: check pipeline minimum and current latest @@ -99,6 +101,7 @@ jobs: NXF_VER: '' NXF_EDGE: 1 NXF_ANSI_LOG: false + CAPSULE_LOG: none steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -133,6 +136,7 @@ jobs: runs-on: ubuntu-20.04 env: NXF_ANSI_LOG: false + CAPSULE_LOG: none strategy: fail-fast: false matrix: From 70cd3e533ae32ccbc00a7cbc6852e79159db5ea3 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 16:23:52 +0000 Subject: [PATCH 105/125] Merge remote-tracking branch 'nf-core/nf-core-template-merge-2.2' into template_merge --- .gitattributes | 2 +- .github/CONTRIBUTING.md | 38 +++-------- .github/ISSUE_TEMPLATE/bug_report.md | 63 ------------------- .github/ISSUE_TEMPLATE/bug_report.yml | 52 +++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 1 - .github/ISSUE_TEMPLATE/feature_request.md | 32 ---------- .github/ISSUE_TEMPLATE/feature_request.yml | 11 ++++ .github/workflows/awsfulltest.yml | 11 ++-- .github/workflows/awstest.yml | 10 +-- .github/workflows/linting_comment.yml | 1 + CITATIONS.md | 2 +- README.md | 13 ++-- assets/multiqc_config.yaml | 2 +- assets/nf-core-cutandrun_logo.png | Bin 18251 -> 0 bytes assets/nf-core-cutandrun_logo_light.png | 9 +++ assets/sendmail_template.txt | 4 +- bin/scrape_software_versions.py | 36 ----------- conf/base.config | 3 + conf/test.config | 4 +- docs/images/nf-core-cutandrun_logo.png | Bin 34713 -> 0 bytes docs/images/nf-core-cutandrun_logo_dark.png | 11 ++++ docs/images/nf-core-cutandrun_logo_light.png | 13 ++++ docs/output.md | 8 +-- docs/usage.md | 36 ----------- lib/NfcoreSchema.groovy | 26 +++++--- lib/NfcoreTemplate.groovy | 30 +++------ lib/Utils.groovy | 7 --- lib/WorkflowMain.groovy | 8 +-- modules/local/get_software_versions.nf | 32 ---------- nextflow.config | 29 ++++++--- nextflow_schema.json | 29 --------- 31 files changed, 189 insertions(+), 334 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 assets/nf-core-cutandrun_logo.png create mode 100644 assets/nf-core-cutandrun_logo_light.png delete mode 100644 bin/scrape_software_versions.py delete mode 100644 docs/images/nf-core-cutandrun_logo.png create mode 100644 docs/images/nf-core-cutandrun_logo_dark.png create mode 100644 docs/images/nf-core-cutandrun_logo_light.png delete mode 100644 modules/local/get_software_versions.nf diff --git a/.gitattributes b/.gitattributes index 4920bfed..050bb120 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,3 @@ *.config linguist-language=nextflow modules/nf-core/** linguist-generated -subworkflows/nf-core/** linguist-generated \ No newline at end of file +subworkflows/nf-core/** linguist-generated diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 8054c7bb..8aa23896 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -68,16 +68,13 @@ If you wish to contribute a new step, please use the following coding standards: 1. Define the corresponding input channel into your new process from the expected previous process channel 2. Write the process block (see below). 3. Define the output channel if needed (see below). -4. Add any new flags/options to `nextflow.config` with a default (see below). -5. Add any new flags/options to `nextflow_schema.json` with help text (with `nf-core schema build`). -6. Add any new flags/options to the help message (for integer/text parameters, print to help the corresponding `nextflow.config` parameter). -7. Add sanity checks for all relevant parameters. -8. Add any new software to the `scrape_software_versions.py` script in `bin/` and the version command to the `scrape_software_versions` process in `main.nf`. -9. Do local tests that the new code works properly and as expected. -10. Add a new test command in `.github/workflow/ci.yml`. -11. If applicable add a [MultiQC](https://https://multiqc.info/) module. -12. Update MultiQC config `assets/multiqc_config.yaml` so relevant suffixes, name clean up, General Statistics Table column order, and module figures are in the right order. -13. Optional: Add any descriptions of MultiQC report sections and output files to `docs/output.md`. +4. Add any new parameters to `nextflow.config` with a default (see below). +5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core schema build` tool). +6. Add sanity checks and validation for all relevant parameters. +7. Perform local tests to validate that the new code works as expected. +8. If applicable, add a new test command in `.github/workflow/ci.yml`. +9. Update MultiQC config `assets/multiqc_config.yaml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. +10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`. ### Default values @@ -102,27 +99,6 @@ Please use the following naming schemes, to make it easy to understand what is g If you are using a new feature from core Nextflow, you may bump the minimum required version of nextflow in the pipeline with: `nf-core bump-version --nextflow . [min-nf-version]` -### Software version reporting - -If you add a new tool to the pipeline, please ensure you add the information of the tool to the `get_software_version` process. - -Add to the script block of the process, something like the following: - -```bash - --version &> v_.txt 2>&1 || true -``` - -or - -```bash - --help | head -n 1 &> v_.txt 2>&1 || true -``` - -You then need to edit the script `bin/scrape_software_versions.py` to: - -1. Add a Python regex for your tool's `--version` output (as in stored in the `v_.txt` file), to ensure the version is reported as a `v` and the version number e.g. `v2.1.1` -2. Add a HTML entry to the `OrderedDict` for formatting in MultiQC. - ### Images and figures For overview images and other documents we follow the nf-core [style guidelines and examples](https://nf-co.re/developers/design_guidelines). diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 566eb1e9..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: Bug report -about: Report something that is broken or incorrect -labels: bug ---- - - - -## Check Documentation - -I have checked the following places for your error: - -- [ ] [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) -- [ ] [nf-core/cutandrun pipeline documentation](https://nf-co.re/cutandrun/usage) - -## Description of the bug - - - -## Steps to reproduce - -Steps to reproduce the behaviour: - -1. Command line: -2. See error: - -## Expected behaviour - - - -## Log files - -Have you provided the following extra information/files: - -- [ ] The command used to run the pipeline -- [ ] The `.nextflow.log` file - -## System - -- Hardware: -- Executor: -- OS: -- Version - -## Nextflow Installation - -- Version: - -## Container engine - -- Engine: -- version: - -## Additional context - - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..0e11dc1f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,52 @@ + +name: Bug report +description: Report something that is broken or incorrect +labels: bug +body: + + - type: markdown + attributes: + value: | + Before you post this issue, please check the documentation: + + - [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) + - [nf-core/cutandrun pipeline documentation](https://nf-co.re/cutandrun/usage) + + - type: textarea + id: description + attributes: + label: Description of the bug + description: A clear and concise description of what the bug is. + validations: + required: true + + - type: textarea + id: command_used + attributes: + label: Command used and terminal output + description: Steps to reproduce the behaviour. Please paste the command you used to launch the pipeline and the output from your terminal. + render: console + placeholder: | + $ nextflow run ... + + Some output where something broke + + - type: textarea + id: files + attributes: + label: Relevant files + description: | + Please drag and drop the relevant files here. Create a `.zip` archive if the extension is not allowed. + Your verbose log file `.nextflow.log` is often useful _(this is a hidden file in the directory where you launched the pipeline)_ as well as custom Nextflow configuration files. + + - type: textarea + id: system + attributes: + label: System information + description: | + * Nextflow version _(eg. 21.10.3)_ + * Hardware _(eg. HPC, Desktop, Cloud)_ + * Executor _(eg. slurm, local, awsbatch)_ + * Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter or Charliecloud)_ + * OS _(eg. CentOS Linux, macOS, Linux Mint)_ + * Version of nf-core/cutandrun _(eg. 1.1, 1.5, 1.8.2)_ diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index f78ab65d..ab10753e 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,4 +1,3 @@ -blank_issues_enabled: false contact_links: - name: Join nf-core url: https://nf-co.re/join diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 59a8ac75..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for the nf-core/cutandrun pipeline -labels: enhancement ---- - - - -## Is your feature request related to a problem? Please describe - - - - - -## Describe the solution you'd like - - - -## Describe alternatives you've considered - - - -## Additional context - - diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..5ace88de --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,11 @@ +name: Feature request +description: Suggest an idea for the nf-core/cutandrun pipeline +labels: enhancement +body: + - type: textarea + id: description + attributes: + label: Description of feature + description: Please describe your suggestion for a new feature. It might help to describe a problem or use case, plus any alternatives that you have considered. + validations: + required: true diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index c45341b7..9029961c 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -14,11 +14,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: nf-core/tower-action@master + uses: nf-core/tower-action@v2 + # TODO nf-core: You can customise AWS full pipeline tests as required + # Add full size test data (but still relatively small datasets for few samples) + # on the `test_full.config` test runs with only one set of parameters with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} - bearer_token: ${{ secrets.TOWER_BEARER_TOKEN }} + access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} pipeline: ${{ github.repository }} revision: ${{ github.sha }} @@ -27,5 +30,5 @@ jobs: { "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/cutandrun/results-${{ github.sha }}" } - profiles: '[ "test_full", "aws_tower" ]' - + profiles: test_full,aws_tower + pre_run_script: 'export NXF_VER=21.10.3' diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 3725fd35..ad27798e 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -11,18 +11,18 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: nf-core/tower-action@master + uses: nf-core/tower-action@v2 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} - bearer_token: ${{ secrets.TOWER_BEARER_TOKEN }} + access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} pipeline: ${{ github.repository }} revision: ${{ github.sha }} workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/cutandrun/work-${{ github.sha }} parameters: | { - "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/cutandrun/results-${{ github.sha }}" + "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/cutandrun/results-test-${{ github.sha }}" } - profiles: '[ "test", "aws_tower" ]' - + profiles: test,aws_tower + pre_run_script: 'export NXF_VER=21.10.3' diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 90f03c6f..44d72994 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -15,6 +15,7 @@ jobs: uses: dawidd6/action-download-artifact@v2 with: workflow: linting.yml + workflow_conclusion: completed - name: Get PR number id: pr_number diff --git a/CITATIONS.md b/CITATIONS.md index 58576425..bc28ae31 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -12,7 +12,7 @@ * [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) -* [MultiQC](https://www.ncbi.nlm.nih.gov/pubmed/27312411/) +* [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. ## Software packaging/containerisation tools diff --git a/README.md b/README.md index 93d7d04b..a8adc50e 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# ![nf-core/cutandrun](docs/images/nf-core-cutandrun_logo.png) +# ![nf-core/cutandrun](docs/images/nf-core-cutandrun_logo_light.png#gh-light-mode-only) ![nf-core/cutandrun](docs/images/nf-core-cutandrun_logo_dark.png#gh-dark-mode-only) [![GitHub Actions CI Status](https://github.com/nf-core/cutandrun/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/cutandrun/actions?query=workflow%3A%22nf-core+CI%22) [![GitHub Actions Linting Status](https://github.com/nf-core/cutandrun/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/cutandrun/actions?query=workflow%3A%22nf-core+linting%22) [![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/cutandrun/results) [![DOI](http://img.shields.io/badge/DOI-10.5281/zenodo.5653536-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.5653536) -[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.04.3-23aa62.svg?labelColor=000000)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.10.3-23aa62.svg?labelColor=000000)](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/) @@ -45,18 +45,21 @@ The pipeline has been developed with continuous integration (CI) in mind. nf-cor ## Quick Start -1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.04.3`) +1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.10.3`) 2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/), [`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 _(please only use [`Conda`](https://conda.io/miniconda.html) 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 - nextflow run nf-core/cutandrun -profile test, + nextflow run nf-core/cutandrun -profile test,YOURPROFILE ``` + Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string. + + > * The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. > * Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. - > * If you are using `singularity` then the pipeline will auto-detect this and attempt to download the Singularity images directly as opposed to performing a conversion from Docker images. If you are persistently observing issues downloading Singularity images directly due to timeout or network issues then please use the `--singularity_pull_docker_container` parameter to pull and convert the Docker image instead. Alternatively, it is highly recommended to use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to pre-download all of the required containers before running the pipeline and to set the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options to be able to store and re-use the images from a central location for future pipeline runs. + > * If you are using `singularity` and are persistently observing issues downloading Singularity images directly due to timeout or network issues, then you can use the `--singularity_pull_docker_container` parameter to pull and convert the Docker image instead. Alternatively, you can use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. > * If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. 4. Start running your own analysis! diff --git a/assets/multiqc_config.yaml b/assets/multiqc_config.yaml index a2656ee4..ffea078c 100644 --- a/assets/multiqc_config.yaml +++ b/assets/multiqc_config.yaml @@ -1,7 +1,7 @@ report_comment: > This report has been generated by the nf-core/cutandrun analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. report_section_order: software_versions: order: -1000 diff --git a/assets/nf-core-cutandrun_logo.png b/assets/nf-core-cutandrun_logo.png deleted file mode 100644 index cd4c3d47369672c124d6b464b3a11bd8e6debe8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18251 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

}Yfz%G??j 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 bk9g4^PJWh%?s|i#<3L`^s>+m083+D9U^WyR diff --git a/assets/nf-core-cutandrun_logo_light.png b/assets/nf-core-cutandrun_logo_light.png new file mode 100644 index 00000000..dee3db82 --- /dev/null +++ b/assets/nf-core-cutandrun_logo_light.png @@ -0,0 +1,9 @@ + + + + 508 Resource Limit Is Reached + +

Resource Limit Is Reached

+The website is temporarily unable to service your request as it exceeded resource limit. +Please try again later. + diff --git a/assets/sendmail_template.txt b/assets/sendmail_template.txt index 64034571..d62ff2b1 100644 --- a/assets/sendmail_template.txt +++ b/assets/sendmail_template.txt @@ -12,9 +12,9 @@ $email_html Content-Type: image/png;name="nf-core-cutandrun_logo.png" Content-Transfer-Encoding: base64 Content-ID: -Content-Disposition: inline; filename="nf-core-cutandrun_logo.png" +Content-Disposition: inline; filename="nf-core-cutandrun_logo_light.png" -<% out << new File("$projectDir/assets/nf-core-cutandrun_logo.png"). +<% out << new File("$projectDir/assets/nf-core-cutandrun_logo_light.png"). bytes. encodeBase64(). toString(). diff --git a/bin/scrape_software_versions.py b/bin/scrape_software_versions.py deleted file mode 100644 index b87f78a2..00000000 --- a/bin/scrape_software_versions.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function -import os - -results = {} -version_files = [x for x in os.listdir(".") if x.endswith(".version.txt")] -for version_file in version_files: - - software = version_file.replace(".version.txt", "") - if software == "pipeline": - software = "nf-core/cutandrun" - - with open(version_file) as fin: - version = fin.read().strip() - results[software] = version - -# Dump to YAML -print( - """ -id: 'software_versions' -section_name: 'nf-core/cutandrun Software Versions' -section_href: 'https://github.com/nf-core/cutandrun' -plot_type: 'html' -description: 'are collected at run time from the software output.' -data: | -
-""" -) -for k, v in sorted(results.items()): - print("
{}
{}
".format(k, v)) -print("
") - -# Write out as tsv file: -with open("software_versions.tsv", "w") as f: - for k, v in sorted(results.items()): - f.write("{}\t{}\n".format(k, v)) diff --git a/conf/base.config b/conf/base.config index 874f1c10..a3e691e4 100644 --- a/conf/base.config +++ b/conf/base.config @@ -45,4 +45,7 @@ process { errorStrategy = 'retry' maxRetries = 2 } + withName:CUSTOM_DUMPSOFTWAREVERSIONS { + cache = false + } } diff --git a/conf/test.config b/conf/test.config index 01775813..3de9613c 100644 --- a/conf/test.config +++ b/conf/test.config @@ -16,8 +16,8 @@ params { // Limit resources so that this can run CI max_cpus = 2 - max_memory = 6.GB - max_time = 6.h + max_memory = '6.GB' + max_time = '6.h' // Input data input = 'https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/samplesheet/test-GSE145187-small.csv' diff --git a/docs/images/nf-core-cutandrun_logo.png b/docs/images/nf-core-cutandrun_logo.png deleted file mode 100644 index 7e8366961b8371a440683f918d0eb8b6284c231a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34713 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 + +503 Service Unavailable + +

Service Unavailable

+

The server is temporarily unable to service your +request due to maintenance downtime or capacity +problems. Please try again later.

+

Additionally, a 503 Service Unavailable +error was encountered while trying to use an ErrorDocument to handle the request.

+ diff --git a/docs/images/nf-core-cutandrun_logo_light.png b/docs/images/nf-core-cutandrun_logo_light.png new file mode 100644 index 00000000..1993002f --- /dev/null +++ b/docs/images/nf-core-cutandrun_logo_light.png @@ -0,0 +1,13 @@ + + +507 Insufficient Storage + +

Insufficient Storage

+

The method could not be performed on the resource +because the server is unable to store the +representation needed to successfully complete the +request. There is insufficient free space left in +your storage allocation.

+

Additionally, a 507 Insufficient Storage +error was encountered while trying to use an ErrorDocument to handle the request.

+ diff --git a/docs/output.md b/docs/output.md index 72bb9371..ecf2c8f9 100644 --- a/docs/output.md +++ b/docs/output.md @@ -301,10 +301,10 @@ A number of genome-specific files are generated by the pipeline because they are
Output files -- `pipeline_info/` - - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. - - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.csv`. - - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. +* `pipeline_info/` + * Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. + * Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. + * Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`.
diff --git a/docs/usage.md b/docs/usage.md index 0c7b82fb..d8c2ea03 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -185,42 +185,6 @@ process { > **NB:** We specify just the process name i.e. `STAR_ALIGN` in the config file and not the full task name string that is printed to screen in the error message or on the terminal whilst the pipeline is running i.e. `RNASEQ:ALIGN_STAR:STAR_ALIGN`. You may get a warning suggesting that the process selector isn't recognised but you can ignore that if the process name has been specified correctly. This is something that needs to be fixed upstream in core Nextflow. -### Tool-specific options - -For the ultimate flexibility, we have implemented and are using Nextflow DSL2 modules in a way where it is possible for both developers and users to change tool-specific command-line arguments (e.g. providing an additional command-line argument to the `STAR_ALIGN` process) as well as publishing options (e.g. saving files produced by the `STAR_ALIGN` process that aren't saved by default by the pipeline). In the majority of instances, as a user you won't have to change the default options set by the pipeline developer(s), however, there may be edge cases where creating a simple custom config file can improve the behaviour of the pipeline if for example it is failing due to a weird error that requires setting a tool-specific parameter to deal with smaller / larger genomes. - -The command-line arguments passed to STAR in the `STAR_ALIGN` module are a combination of: - -* Mandatory arguments or those that need to be evaluated within the scope of the module, as supplied in the [`script`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L49-L55) section of the module file. - -* An [`options.args`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L56) string of non-mandatory parameters that is set to be empty by default in the module but can be overwritten when including the module in the sub-workflow / workflow context via the `addParams` Nextflow option. - -The nf-core/rnaseq pipeline has a sub-workflow (see [terminology](https://github.com/nf-core/modules#terminology)) specifically to align reads with STAR and to sort, index and generate some basic stats on the resulting BAM files using SAMtools. At the top of this file we import the `STAR_ALIGN` module via the Nextflow [`include`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/subworkflows/nf-core/align_star.nf#L10) keyword and by default the options passed to the module via the `addParams` option are set as an empty Groovy map [here](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/subworkflows/nf-core/align_star.nf#L5); this in turn means `options.args` will be set to empty by default in the module file too. This is an intentional design choice and allows us to implement well-written sub-workflows composed of a chain of tools that by default run with the bare minimum parameter set for any given tool in order to make it much easier to share across pipelines and to provide the flexibility for users and developers to customise any non-mandatory arguments. - -When including the sub-workflow above in the main pipeline workflow we use the same `include` statement, however, we now have the ability to overwrite options for each of the tools in the sub-workflow including the [`align_options`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/workflows/rnaseq.nf#L225) variable that will be used specifically to overwrite the optional arguments passed to the `STAR_ALIGN` module. In this case, the options to be provided to `STAR_ALIGN` have been assigned sensible defaults by the developer(s) in the pipeline's [`modules.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/modules.config#L70-L74) and can be accessed and customised in the [workflow context](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/workflows/rnaseq.nf#L201-L204) too before eventually passing them to the sub-workflow as a Groovy map called `star_align_options`. These options will then be propagated from `workflow -> sub-workflow -> module`. - -As mentioned at the beginning of this section it may also be necessary for users to overwrite the options passed to modules to be able to customise specific aspects of the way in which a particular tool is executed by the pipeline. Given that all of the default module options are stored in the pipeline's `modules.config` as a [`params` variable](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/modules.config#L24-L25) it is also possible to overwrite any of these options via a custom config file. - -Say for example we want to append an additional, non-mandatory parameter (i.e. `--outFilterMismatchNmax 16`) to the arguments passed to the `STAR_ALIGN` module. Firstly, we need to copy across the default `args` specified in the [`modules.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/modules.config#L71) and create a custom config file that is a composite of the default `args` as well as the additional options you would like to provide. This is very important because Nextflow will overwrite the default value of `args` that you provide via the custom config. - -As you will see in the example below, we have: - -* appended `--outFilterMismatchNmax 16` to the default `args` used by the module. -* changed the default `publish_dir` value to where the files will eventually be published in the main results directory. -* appended `'bam':''` to the default value of `publish_files` so that the BAM files generated by the process will also be saved in the top-level results directory for the module. Note: `'out':'log'` means any file/directory ending in `out` will now be saved in a separate directory called `my_star_directory/log/`. - -```nextflow -params { - modules { - 'star_align' { - args = "--quantMode TranscriptomeSAM --twopassMode Basic --outSAMtype BAM Unsorted --readFilesCommand zcat --runRNGseed 0 --outFilterMultimapNmax 20 --alignSJDBoverhangMin 1 --outSAMattributes NH HI AS NM MD --quantTranscriptomeBan Singleend --outFilterMismatchNmax 16" - publish_dir = "my_star_directory" - publish_files = ['out':'log', 'tab':'log', 'bam':''] - } - } -} -``` - ### Updating containers The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. If for some reason you need to use a different version of a particular tool with the pipeline then you just need to identify the `process` name and override the Nextflow `container` definition for that process using the `withName` declaration. For example, in the [nf-core/viralrecon](https://nf-co.re/viralrecon) pipeline a tool called [Pangolin](https://github.com/cov-lineages/pangolin) has been used during the COVID-19 pandemic to assign lineages to SARS-CoV-2 genome sequenced samples. Given that the lineage assignments change quite frequently it doesn't make sense to re-release the nf-core/viralrecon everytime a new version of Pangolin has been released. However, you can override the default container used by the pipeline by creating a custom config file and passing it as a command-line argument via `-c custom.config`. diff --git a/lib/NfcoreSchema.groovy b/lib/NfcoreSchema.groovy index 8d6920dd..40ab65f2 100755 --- a/lib/NfcoreSchema.groovy +++ b/lib/NfcoreSchema.groovy @@ -105,9 +105,13 @@ class NfcoreSchema { // Collect expected parameters from the schema def expectedParams = [] + def enums = [:] for (group in schemaParams) { for (p in group.value['properties']) { expectedParams.push(p.key) + if (group.value['properties'][p.key].containsKey('enum')) { + enums[p.key] = group.value['properties'][p.key]['enum'] + } } } @@ -155,7 +159,7 @@ class NfcoreSchema { println '' log.error 'ERROR: Validation of pipeline parameters failed!' JSONObject exceptionJSON = e.toJSON() - printExceptions(exceptionJSON, params_json, log) + printExceptions(exceptionJSON, params_json, log, enums) println '' has_error = true } @@ -202,7 +206,7 @@ class NfcoreSchema { } def type = '[' + group_params.get(param).type + ']' def description = group_params.get(param).description - def defaultValue = group_params.get(param).default ? " [default: " + group_params.get(param).default.toString() + "]" : '' + def defaultValue = group_params.get(param).default != null ? " [default: " + group_params.get(param).default.toString() + "]" : '' def description_default = description + colors.dim + defaultValue + colors.reset // Wrap long description texts // Loosely based on https://dzone.com/articles/groovy-plain-text-word-wrap @@ -260,13 +264,12 @@ class NfcoreSchema { // Get pipeline parameters defined in JSON Schema def Map params_summary = [:] - def blacklist = ['hostnames'] def params_map = paramsLoad(getSchemaPath(workflow, schema_filename=schema_filename)) for (group in params_map.keySet()) { def sub_params = new LinkedHashMap() def group_params = params_map.get(group) // This gets the parameters of that particular group for (param in group_params.keySet()) { - if (params.containsKey(param) && !blacklist.contains(param)) { + if (params.containsKey(param)) { def params_value = params.get(param) def schema_value = group_params.get(param).default def param_type = group_params.get(param).type @@ -330,7 +333,7 @@ class NfcoreSchema { // // Loop over nested exceptions and print the causingException // - private static void printExceptions(ex_json, params_json, log) { + private static void printExceptions(ex_json, params_json, log, enums, limit=5) { def causingExceptions = ex_json['causingExceptions'] if (causingExceptions.length() == 0) { def m = ex_json['message'] =~ /required key \[([^\]]+)\] not found/ @@ -346,11 +349,20 @@ class NfcoreSchema { else { def param = ex_json['pointerToViolation'] - ~/^#\// def param_val = params_json[param].toString() - log.error "* --${param}: ${ex_json['message']} (${param_val})" + if (enums.containsKey(param)) { + def error_msg = "* --${param}: '${param_val}' is not a valid choice (Available choices" + if (enums[param].size() > limit) { + log.error "${error_msg} (${limit} of ${enums[param].size()}): ${enums[param][0..limit-1].join(', ')}, ... )" + } else { + log.error "${error_msg}: ${enums[param].join(', ')})" + } + } else { + log.error "* --${param}: ${ex_json['message']} (${param_val})" + } } } for (ex in causingExceptions) { - printExceptions(ex, params_json, log) + printExceptions(ex, params_json, log, enums) } } diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 44551e0a..2fc0a9b9 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -19,27 +19,16 @@ class NfcoreTemplate { } // - // Check params.hostnames + // Warn if a -profile or Nextflow config has not been provided to run the pipeline // - public static void hostName(workflow, params, log) { - Map colors = logColours(params.monochrome_logs) - if (params.hostnames) { - try { - def hostname = "hostname".execute().text.trim() - params.hostnames.each { prof, hnames -> - hnames.each { hname -> - if (hostname.contains(hname) && !workflow.profile.contains(prof)) { - log.info "=${colors.yellow}====================================================${colors.reset}=\n" + - "${colors.yellow}WARN: You are running with `-profile $workflow.profile`\n" + - " but your machine hostname is ${colors.white}'$hostname'${colors.reset}.\n" + - " ${colors.yellow_bold}Please use `-profile $prof${colors.reset}`\n" + - "=${colors.yellow}====================================================${colors.reset}=" - } - } - } - } catch (Exception e) { - log.warn "[$workflow.manifest.name] Could not determine 'hostname' - skipping check. Reason: ${e.message}." - } + public static void checkConfigProvided(workflow, log) { + if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { + log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + + " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + + " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + + " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + + "Please refer to the quick start section and usage docs for the pipeline.\n " } } @@ -168,7 +157,6 @@ class NfcoreTemplate { log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" } } else { - hostName(workflow, params, log) log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" } } diff --git a/lib/Utils.groovy b/lib/Utils.groovy index 18173e98..1b88aec0 100755 --- a/lib/Utils.groovy +++ b/lib/Utils.groovy @@ -37,11 +37,4 @@ class Utils { "===================================================================================" } } - - // - // Join module args with appropriate spacing - // - public static String joinModuleArgs(args_list) { - return ' ' + args_list.join(' ') - } } diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index 6742eb64..67d44c5d 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -59,6 +59,9 @@ 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 + NfcoreTemplate.checkConfigProvided(workflow, log) + // Check that conda channels are set-up correctly if (params.enable_conda) { Utils.checkCondaChannels(log) @@ -67,10 +70,7 @@ class WorkflowMain { // Check AWS batch settings NfcoreTemplate.awsBatch(workflow, params) - // Check the hostnames against configured profiles - NfcoreTemplate.hostName(workflow, params, log) - - // Check at least one form of input has been provided + // Check input has been provided if (!params.input) { log.error "Please specify an input for the pipeline e.g. '--input samplsheet.csv'." System.exit(1) diff --git a/modules/local/get_software_versions.nf b/modules/local/get_software_versions.nf deleted file mode 100644 index aab21fa7..00000000 --- a/modules/local/get_software_versions.nf +++ /dev/null @@ -1,32 +0,0 @@ -// Import generic module functions -include { initOptions; saveFiles } from './common/functions' - -params.options = [:] -options = initOptions(params.options) - -process GET_SOFTWARE_VERSIONS { - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:'pipeline_info', meta:[:], publish_by_meta:[]) } - - conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/python:3.8.3" - } else { - container "quay.io/biocontainers/python:3.8.3" - } - - input: - path versions - - output: - path "software_versions.tsv" , emit: tsv - path 'software_versions_mqc.yaml', emit: yaml - - script: // This script is bundled with the pipeline, in nf-core/cutandrun/bin/ - """ - echo $workflow.manifest.version > pipeline.version.txt - echo $workflow.nextflow.version > nextflow.version.txt - scrape_software_versions.py &> software_versions_mqc.yaml - """ -} diff --git a/nextflow.config b/nextflow.config index 4dc98f47..9a079bb3 100644 --- a/nextflow.config +++ b/nextflow.config @@ -88,7 +88,7 @@ params { igenomes_ignore = false validate_params = true show_hidden_params = false - schema_ignore_params = "genomes,modules,attribute" + schema_ignore_params = 'genomes' enable_conda = false singularity_pull_docker_container = false attribute = null @@ -187,14 +187,20 @@ profiles { // Load igenomes.config if required if (!params.igenomes_ignore) { - includeConfig "conf/igenomes.config" + includeConfig 'conf/igenomes.config' +} else { + 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. + env { PYTHONNOUSERSITE = 1 - R_PROFILE_USER = "/.Rprofile" - R_ENVIRON_USER = "/.Renviron" + R_PROFILE_USER = "/.Rprofile" + R_ENVIRON_USER = "/.Renviron" + JULIA_DEPOT_PATH = "/usr/local/share/julia" } // Capture exit codes from upstream processes when piping @@ -220,15 +226,18 @@ dag { } manifest { - name = "nf-core/cutandrun" - author = "Chris Cheshire and Charlotte West" - homePage = "https://github.com/nf-core/cutandrun" - description = "Analysis pipeline for CUT&RUN and CUT&TAG experiments that includes sequencing QC, spike-in normalisation, IgG control normalisation, peak calling and downstream peak analysis." - mainScript = "main.nf" - nextflowVersion = '!>=21.04.3' + name = 'nf-core/cutandrun' + author = 'Chris Cheshire and Charlotte West' + homePage = 'https://github.com/nf-core/cutandrun' + description = 'Analysis pipeline for CUT&RUN and CUT&TAG experiments that includes sequencing QC, spike-in normalisation, IgG control normalisation, peak calling and downstream peak analysis.' + mainScript = 'main.nf' + nextflowVersion = '!>=21.10.3' version = '1.0.0' } +// Load modules.config for DSL2 module specific options +includeConfig 'conf/modules.config' + // Function to ensure that resource requirements don't go beyond // a maximum limit def check_max(obj, type) { diff --git a/nextflow_schema.json b/nextflow_schema.json index 93eb050c..32f1fca0 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -345,12 +345,6 @@ "help_text": "If you're running offline, Nextflow will not be able to fetch the institutional config files from the internet. If you don't need them, then this is not a problem. If you do need them, you should download the files from the repo and tell Nextflow where to find them with this parameter.", "fa_icon": "fas fa-users-cog" }, - "hostnames": { - "type": "string", - "description": "Institutional configs hostname.", - "hidden": true, - "fa_icon": "fas fa-users-cog" - }, "config_profile_name": { "type": "string", "description": "Institutional config name.", @@ -425,22 +419,6 @@ "fa_icon": "fas fa-question-circle", "hidden": true }, - "publish_dir_mode": { - "type": "string", - "default": "copy", - "description": "Method used to save pipeline results to output directory.", - "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", - "fa_icon": "fas fa-copy", - "enum": [ - "symlink", - "rellink", - "link", - "copy", - "copyNoFollow", - "move" - ], - "hidden": true - }, "email_on_fail": { "type": "string", "description": "Email address for completion summary, only when pipeline fails.", @@ -501,13 +479,6 @@ "description": "Run this workflow with Conda. You can also use '-profile conda' instead of providing this parameter.", "hidden": true, "fa_icon": "fas fa-bacon" - }, - "singularity_pull_docker_container": { - "type": "boolean", - "description": "Instead of directly downloading Singularity images for use with Singularity, force the workflow to pull and convert Docker containers instead.", - "hidden": true, - "fa_icon": "fas fa-toolbox", - "help_text": "This may be useful for example if you are unable to directly pull Singularity containers to run the pipeline due to http/https proxy issues." } } } From 09411024918ed9b1a16204a121f24046f791b980 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 16:27:27 +0000 Subject: [PATCH 106/125] Updated incorrect logo images --- docs/images/nf-core-cutandrun_logo_dark.png | Bin 428 -> 34713 bytes docs/images/nf-core-cutandrun_logo_light.png | Bin 519 -> 34713 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/nf-core-cutandrun_logo_dark.png b/docs/images/nf-core-cutandrun_logo_dark.png index d46347c2d217dd9a7c090367c55a068226f937c1..7e8366961b8371a440683f918d0eb8b6284c231a 100644 GIT binary patch literal 34713 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

J-waT~81OO72jb}RoLJM9sUyE8jGGwP=P zT({r52Hx8DE$sF$+szslcT#Se_EpNdtuM&KawTQ+v8aUV!(c1b6Y4w!6D(Cvt4H`E zKADbS@9>1i;=z)V7g#7c)78Q2R21&3KiPRN)L6AW!IagA!AuZn7(F8!n;^O(3&GEL z`IdZS!SoYp3ZUbR4QN~-hc4sVpItBmfoJG&#Lk2yM)p}|n3k}!gi}7^1bED6U@;Ic zl^ka$&sv*cyhCf#Eg<}pQxJ33KjQ@CIv?|QCJpD_6tkR+I~LC|e?kXMA=kc(1G!N4 VJvv>8IrcTl)qtG)%H@^D#V=*Sk$eCE diff --git a/docs/images/nf-core-cutandrun_logo_light.png b/docs/images/nf-core-cutandrun_logo_light.png index 1993002f28494136e88a278dbbfcb5170b757b3e..7e8366961b8371a440683f918d0eb8b6284c231a 100644 GIT binary patch literal 34713 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 Date: Tue, 4 Jan 2022 16:32:08 +0000 Subject: [PATCH 107/125] Updated CI to min versions --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f13336fe..2a11e34e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: strategy: matrix: # Nextflow versions: check pipeline minimum and current latest - nxf_ver: ['21.04.3', ''] + nxf_ver: ['21.10.3', ''] steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -64,7 +64,7 @@ jobs: strategy: matrix: # Nextflow versions: check pipeline minimum and current latest - nxf_ver: ['21.04.3', ''] + nxf_ver: ['21.10.3', ''] steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -140,7 +140,7 @@ jobs: strategy: fail-fast: false matrix: - nxf_version: ['21.04.3', ''] + nxf_version: ['21.10.3', ''] tags: ["samplesheet", "verify_output_input", "verify_output_align_short", "verify_output_align_long", "verify_output_peak_calling", "verify_output_reporting", "verify_output_save", "verify_output_skip"] steps: - uses: actions/checkout@v2 From 442d704c293cded2006af966ff3f7a3cb7be7d88 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 16:34:02 +0000 Subject: [PATCH 108/125] Whitespace fixes --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 9a079bb3..cbdc46fe 100644 --- a/nextflow.config +++ b/nextflow.config @@ -193,7 +193,7 @@ if (!params.igenomes_ignore) { } // 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. +// 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. env { From 74c53e6bfe4eb38f221e43df3ff31cc97873998d Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 19:10:31 +0000 Subject: [PATCH 109/125] Fixed markdown --- docs/output.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/output.md b/docs/output.md index ecf2c8f9..f74f4424 100644 --- a/docs/output.md +++ b/docs/output.md @@ -301,10 +301,10 @@ A number of genome-specific files are generated by the pipeline because they are

Output files -* `pipeline_info/` - * Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. - * Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. - * Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. +- `pipeline_info/` + - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. + - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. + - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`.
From b6e263a0d55e1bcf2eb3532412bd1a1c67d0165b Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 19:12:11 +0000 Subject: [PATCH 110/125] Fixed images --- assets/nf-core-cutandrun_logo_light.png | Bin 288 -> 10910 bytes docs/images/nf-core-cutandrun_logo_dark.png | Bin 34713 -> 70744 bytes docs/images/nf-core-cutandrun_logo_light.png | Bin 34713 -> 70658 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/nf-core-cutandrun_logo_light.png b/assets/nf-core-cutandrun_logo_light.png index dee3db82069b61e9a5380d940355f47ff565057c..d2c6b4e26d43c1c91fd2a22a7b0e65775068d390 100644 GIT binary patch literal 10910 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 literal 288 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%0D6Aha9ZZvy3Owj0R@{kHIA1_W(q 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 literal 34713 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�ev`Q}H7y#R1zKkC5n?0_OP7^FqWWeXhX0t0pNK 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 G^8W!H+^;(T literal 34713 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 Date: Tue, 4 Jan 2022 19:19:50 +0000 Subject: [PATCH 111/125] Updated CI --- .github/workflows/ci.yml | 63 ++++++++++++---------------------------- 1 file changed, 19 insertions(+), 44 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a11e34e..65cea548 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,13 +18,21 @@ jobs: if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/cutandrun') }} runs-on: ubuntu-latest env: - NXF_VER: ${{ matrix.nxf_ver }} NXF_ANSI_LOG: false CAPSULE_LOG: none strategy: matrix: - # Nextflow versions: check pipeline minimum and current latest - nxf_ver: ['21.10.3', ''] + # Nextflow versions + include: + # Test pipeline minimum Nextflow version + - NXF_VER: '21.10.3' + NXF_EDGE: '' + # Test pipeline latest Nextflow version + - NXF_VER: '' + NXF_EDGE: '' + # Test latest edge release of Nextflow + - NXF_VER: '' + NXF_EDGE: '1' steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -58,13 +66,18 @@ jobs: if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/cutandrun') }} runs-on: ubuntu-latest env: - NXF_VER: ${{ matrix.nxf_ver }} NXF_ANSI_LOG: false CAPSULE_LOG: none strategy: matrix: - # Nextflow versions: check pipeline minimum and current latest - nxf_ver: ['21.10.3', ''] + # Nextflow versions + include: + # Test pipeline minimum Nextflow version + - NXF_VER: '21.10.3' + NXF_EDGE: '' + # Test pipeline latest Nextflow version + - NXF_VER: '' + NXF_EDGE: '' steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -89,44 +102,6 @@ jobs: run: | nextflow run ${GITHUB_WORKSPACE} -profile docker,test_full_small_local_zip - ##################################### - ### EDGE VERSION INTEGRATION TEST ### - ##################################### - test_edge: - name: Run standard pipeline test (edge version) - # Only run on push if this is the nf-core dev branch (merged PRs) - if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/cutandrun') }} - runs-on: ubuntu-latest - env: - NXF_VER: '' - NXF_EDGE: 1 - NXF_ANSI_LOG: false - CAPSULE_LOG: none - steps: - - name: Check out pipeline code - uses: actions/checkout@v2 - - - name: Install Nextflow - run: | - wget -qO- get.nextflow.io | bash - sudo mv nextflow /usr/local/bin/ - nextflow self-update - - # Work around for the unexpected end of file error that github actions seems to get when downloading compressed - # files during pipelie execution - - name: Download data - run: | - wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/hg38-chr20.fa.gz - wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/hg38-chr20-bowtie2.tar.gz - wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/hg38-chr20-genes.gtf.gz - wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/hg38-chr20-genes.bed.gz - wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/e_coli_U00096_3.fa.gz - wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/e_coli_U00096_3.tar.gz - - - name: Run pipeline with test data - run: | - nextflow run ${GITHUB_WORKSPACE} -profile docker,test_local_zip - ############################## ### UNIT TESTS ### ############################## From 45122bcf06808d3e19a0683d823f9b8a70966c7a Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 19:57:27 +0000 Subject: [PATCH 112/125] Added schema back in and removed all trace of attribute and hostname --- lib/WorkflowMain.groovy | 8 ++------ nextflow.config | 2 -- nextflow_schema.json | 23 +++++++++++++++++++++++ 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index 67d44c5d..87df6453 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -82,9 +82,7 @@ class WorkflowMain { // public static String getGenomeAttribute(params, attribute) { def val = '' - if (params.attribute) { - val = params.attribute - } else if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { + if (params.genomes && params.genome && params.genomes.containsKey(params.genome)) { if (params.genomes[ params.genome ].containsKey(attribute)) { val = params.genomes[ params.genome ][ attribute ] } @@ -97,9 +95,7 @@ class WorkflowMain { // public static String getGenomeAttributeSpikeIn(params, attribute) { def val = '' - if (params.attribute) { - val = params.attribute - } else if (params.genomes && params.spikein_genome && params.genomes.containsKey(params.spikein_genome)) { + if (params.genomes && params.spikein_genome && params.genomes.containsKey(params.spikein_genome)) { if (params.genomes[ params.spikein_genome ].containsKey(attribute)) { val = params.genomes[ params.spikein_genome ][ attribute ] } diff --git a/nextflow.config b/nextflow.config index cbdc46fe..95222227 100644 --- a/nextflow.config +++ b/nextflow.config @@ -91,12 +91,10 @@ params { schema_ignore_params = 'genomes' enable_conda = false singularity_pull_docker_container = false - attribute = null // Config options custom_config_version = "master" custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}" - hostnames = [:] config_profile_name = null config_profile_description = null config_profile_contact = null diff --git a/nextflow_schema.json b/nextflow_schema.json index 32f1fca0..14136925 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -419,6 +419,22 @@ "fa_icon": "fas fa-question-circle", "hidden": true }, + "publish_dir_mode": { + "type": "string", + "default": "copy", + "description": "Method used to save pipeline results to output directory.", + "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", + "fa_icon": "fas fa-copy", + "enum": [ + "symlink", + "rellink", + "link", + "copy", + "copyNoFollow", + "move" + ], + "hidden": true + }, "email_on_fail": { "type": "string", "description": "Email address for completion summary, only when pipeline fails.", @@ -479,6 +495,13 @@ "description": "Run this workflow with Conda. You can also use '-profile conda' instead of providing this parameter.", "hidden": true, "fa_icon": "fas fa-bacon" + }, + "singularity_pull_docker_container": { + "type": "boolean", + "description": "Instead of directly downloading Singularity images for use with Singularity, force the workflow to pull and convert Docker containers instead.", + "hidden": true, + "fa_icon": "fas fa-toolbox", + "help_text": "This may be useful for example if you are unable to directly pull Singularity containers to run the pipeline due to http/https proxy issues." } } } From b7e7a270509ecae149d1d42c766f47b4039703ce Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 20:17:58 +0000 Subject: [PATCH 113/125] updated CI --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65cea548..6eb3d1f2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: NXF_EDGE: '' # Test latest edge release of Nextflow - NXF_VER: '' - NXF_EDGE: '1' + NXF_EDGE: 1 steps: - name: Check out pipeline code uses: actions/checkout@v2 From 44a896fe3f4e8f3d6af37d6366f4af1726aeb0a4 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 20:25:58 +0000 Subject: [PATCH 114/125] Update ci --- .github/workflows/ci.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6eb3d1f2..2dfd4afb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,6 +38,11 @@ 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/ @@ -83,6 +88,11 @@ 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/ From 5b72325a286fbdb57de42a6ca3980c529a19d181 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 20:28:20 +0000 Subject: [PATCH 115/125] Updated CI --- .github/workflows/ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2dfd4afb..e481d521 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,9 +40,7 @@ jobs: - 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 }} + NXF_EDGE: ${{ matrix.NXF_EDGE }} run: | wget -qO- get.nextflow.io | bash sudo mv nextflow /usr/local/bin/ From a5b297f09a94f88e41cd6d1f86739ab53ff31566 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 4 Jan 2022 20:34:14 +0000 Subject: [PATCH 116/125] Updated CI --- .github/workflows/ci.yml | 65 ++++++++++++++++++++++++++-------------- 1 file changed, 43 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e481d521..65ca6691 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,6 +18,7 @@ jobs: if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/cutandrun') }} runs-on: ubuntu-latest env: + NXF_VER: ${{ matrix.nxf_ver }} NXF_ANSI_LOG: false CAPSULE_LOG: none strategy: @@ -26,21 +27,13 @@ jobs: include: # Test pipeline minimum Nextflow version - NXF_VER: '21.10.3' - NXF_EDGE: '' - # Test pipeline latest Nextflow version + # Test latest nextflow version - NXF_VER: '' - NXF_EDGE: '' - # Test latest edge release of Nextflow - - NXF_VER: '' - NXF_EDGE: 1 steps: - name: Check out pipeline code uses: actions/checkout@v2 - name: Install Nextflow - env: - NXF_VER: ${{ matrix.NXF_VER }} - NXF_EDGE: ${{ matrix.NXF_EDGE }} run: | wget -qO- get.nextflow.io | bash sudo mv nextflow /usr/local/bin/ @@ -69,28 +62,18 @@ jobs: if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/cutandrun') }} runs-on: ubuntu-latest env: + NXF_VER: ${{ matrix.nxf_ver }} NXF_ANSI_LOG: false CAPSULE_LOG: none strategy: matrix: - # Nextflow versions - include: - # Test pipeline minimum Nextflow version - - NXF_VER: '21.10.3' - NXF_EDGE: '' - # Test pipeline latest Nextflow version - - NXF_VER: '' - NXF_EDGE: '' + # Nextflow versions: check pipeline minimum and current latest + nxf_ver: ['21.10.3', ''] steps: - name: Check out pipeline code 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/ @@ -110,6 +93,44 @@ jobs: run: | nextflow run ${GITHUB_WORKSPACE} -profile docker,test_full_small_local_zip + ##################################### + ### EDGE VERSION INTEGRATION TEST ### + ##################################### + test_edge: + name: Run standard pipeline test (edge version) + # Only run on push if this is the nf-core dev branch (merged PRs) + if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/cutandrun') }} + runs-on: ubuntu-latest + env: + NXF_VER: '' + NXF_EDGE: 1 + NXF_ANSI_LOG: false + CAPSULE_LOG: none + steps: + - name: Check out pipeline code + uses: actions/checkout@v2 + + - name: Install Nextflow + run: | + wget -qO- get.nextflow.io | bash + sudo mv nextflow /usr/local/bin/ + nextflow self-update + + # Work around for the unexpected end of file error that github actions seems to get when downloading compressed + # files during pipelie execution + - name: Download data + run: | + wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/hg38-chr20.fa.gz + wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/hg38-chr20-bowtie2.tar.gz + wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/hg38-chr20-genes.gtf.gz + wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/hg38-chr20-genes.bed.gz + wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/e_coli_U00096_3.fa.gz + wget -q https://raw.githubusercontent.com/nf-core/test-datasets/cutandrun/reference/genomes/e_coli_U00096_3.tar.gz + + - name: Run pipeline with test data + run: | + nextflow run ${GITHUB_WORKSPACE} -profile docker,test_local_zip + ############################## ### UNIT TESTS ### ############################## From a0454ab97f749bc9a6b654109d4bc207b2d54feb Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Wed, 5 Jan 2022 08:57:39 +0000 Subject: [PATCH 117/125] Added 1.1 changelog --- CHANGELOG.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85e02ffa..b60670b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,3 +33,28 @@ We thank Harshil Patel ([@drpatelh](https://github.com/drpatelh)) and everyone i 2. Heatmap peak analysis ([`deepTools`](https://github.com/deeptools/deepTools/)) 13. Genome browser session ([`IGV`](https://software.broadinstitute.org/software/igv/)) 14. Present QC for raw read, alignment and duplicate reads ([`MultiQC`](http://multiqc.info/)) + +## [1.1] - 2022-01-05 + +### Enhancements & fixes + +* Updated pipeline template to nf-core/tools `2.2` +* [[#71](https://github.com/nf-core/cutandrun/issues/71)] - Bumped Nextflow version `21.04.0` -> `21.10.3` +* Added pipeline diagram to [[README](https://github.com/nf-core/cutandrun/blob/master/README.md)] +* Upgraded all modules (local and nf-core) to support the new versioning system +* The module `getchromsizes` was submitted to nf-core and moved from `local` to `nf-core` +* [[#57](https://github.com/nf-core/cutandrun/issues/57), [#66](https://github.com/nf-core/cutandrun/issues/66)] - Upgraded version reporting in multiqc to support both software version by module and unique software versions. This improves detection of multi-version software usage in the pipeline +* [[#54](https://github.com/nf-core/cutandrun/issues/54)] - Fixed pipeline error where dots in sample ids inside the sample sheet were not correctly handled +* [[#75](https://github.com/nf-core/cutandrun/issues/75)] - Fixed error caused by emtpy peak files being passed to the `CALCULATE_FRIP` and `CALCULATE_PEAK_REPROD` python reporting modules + +### Software dependencies + +Note, since the pipeline is now using Nextflow DSL2, each process will be run with its own [Biocontainer](https://biocontainers.pro/#/registry). This means that on occasion it is entirely possible for the pipeline to be using different versions of the same tool. However, the overall software dependency changes compared to the last release have been listed below for reference. + +| Dependency | Old version | New version | +|------------|-------------|-------------| +| `samtools` | 1.13 | 1.14 | + +> **NB:** Dependency has been __updated__ if both old and new version information is present. +> **NB:** Dependency has been __added__ if just the new version information is present. +> **NB:** Dependency has been __removed__ if version information isn't present. \ No newline at end of file From ec97f2ad8c7271d583197b3d64175111c68100b0 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Wed, 5 Jan 2022 08:59:08 +0000 Subject: [PATCH 118/125] bumped version --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 95222227..ef5696d3 100644 --- a/nextflow.config +++ b/nextflow.config @@ -230,7 +230,7 @@ manifest { description = 'Analysis pipeline for CUT&RUN and CUT&TAG experiments that includes sequencing QC, spike-in normalisation, IgG control normalisation, peak calling and downstream peak analysis.' mainScript = 'main.nf' nextflowVersion = '!>=21.10.3' - version = '1.0.0' + version = '1.1.0' } // Load modules.config for DSL2 module specific options From 1245b165a081af619d8f7dd6c0c9e5ea110fe36d Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Wed, 5 Jan 2022 09:03:34 +0000 Subject: [PATCH 119/125] Added NL --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b60670b2..50efee48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,4 +57,4 @@ Note, since the pipeline is now using Nextflow DSL2, each process will be run wi > **NB:** Dependency has been __updated__ if both old and new version information is present. > **NB:** Dependency has been __added__ if just the new version information is present. -> **NB:** Dependency has been __removed__ if version information isn't present. \ No newline at end of file +> **NB:** Dependency has been __removed__ if version information isn't present. From e0aed05673bbf82c3ca6992dc53e9dd3ab86586b Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 6 Jan 2022 08:37:30 +0000 Subject: [PATCH 120/125] Update assets/multiqc_config.yaml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matthias Hörtenhuber --- assets/multiqc_config.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/assets/multiqc_config.yaml b/assets/multiqc_config.yaml index ffea078c..7047181b 100644 --- a/assets/multiqc_config.yaml +++ b/assets/multiqc_config.yaml @@ -51,7 +51,9 @@ custom_content: - fragment_lengths - software_versions - software_versions_unique - +extra_fn_clean_exts: + - '_val_1' + - '_val_2' # Don't show % Dups in the General Stats table (we have this from Picard) table_columns_visible: FastQC: From af8390fc8c4cbf6d102fcc0894f63fed24845f52 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 6 Jan 2022 08:38:41 +0000 Subject: [PATCH 121/125] Updated awk conda version --- modules/local/linux/awk.nf | 2 +- modules/local/linux/awk_script.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/local/linux/awk.nf b/modules/local/linux/awk.nf index febedf46..e53768b0 100644 --- a/modules/local/linux/awk.nf +++ b/modules/local/linux/awk.nf @@ -13,7 +13,7 @@ process AWK { mode: params.publish_dir_mode, saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), publish_id:'') } - conda (params.enable_conda ? "conda-forge::sed=4.7" : null) + conda (params.enable_conda ? "conda-forge::gawk=5.1.0" : null) if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { container "https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv1/biocontainers_v1.2.0_cv1.img" } else { diff --git a/modules/local/linux/awk_script.nf b/modules/local/linux/awk_script.nf index 3b9c8dd9..2a772147 100644 --- a/modules/local/linux/awk_script.nf +++ b/modules/local/linux/awk_script.nf @@ -11,7 +11,7 @@ process AWK_SCRIPT { mode: params.publish_dir_mode, saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), publish_id:'') } - conda (params.enable_conda ? "conda-forge::sed=4.7" : null) + conda (params.enable_conda ? "conda-forge::gawk=5.1.0" : null) if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { container "https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv1/biocontainers_v1.2.0_cv1.img" } else { From 530d738250c0fb71abcafb7ece1e7c0ef416f040 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 6 Jan 2022 08:43:57 +0000 Subject: [PATCH 122/125] Added commenting --- workflows/cutandrun.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/workflows/cutandrun.nf b/workflows/cutandrun.nf index 1a5e02a4..4d933a28 100644 --- a/workflows/cutandrun.nf +++ b/workflows/cutandrun.nf @@ -880,7 +880,8 @@ workflow CUTANDRUN { ch_seacr_bed.collect{it[1]}.ifEmpty([]), UCSC_BEDGRAPHTOBIGWIG.out.bigwig.collect{it[1]}.ifEmpty([]) ) - // ch_software_versions = ch_software_versions.mix(IGV_SESSION.out.versions) + //TODO - this version ouptut causes an error for an unknown reason + //ch_software_versions = ch_software_versions.mix(IGV_SESSION.out.versions) } if (run_deep_tools){ From c79aa4f900dc618b39b7bf5820952b0db0aa5064 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 6 Jan 2022 09:32:03 +0000 Subject: [PATCH 123/125] Added column cast for violin plot gen --- bin/lib/reports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/lib/reports.py b/bin/lib/reports.py index d98620ba..e88d5378 100644 --- a/bin/lib/reports.py +++ b/bin/lib/reports.py @@ -539,7 +539,7 @@ def peak_widths(self): ## add peak width column self.seacr_beds['peak_width'] = self.seacr_beds['end'] - self.seacr_beds['start'] - self.seacr_beds['peak_width'] = self.seacr_beds['peak_width'].abs() + self.seacr_beds['peak_width'] = self.seacr_beds['peak_width'].abs().astype('float64') ax = sns.violinplot(data=self.seacr_beds, x="group", y="peak_width", hue="replicate", palette = "viridis") ax.xaxis.set_tick_params(labelrotation=45) From 1ee004c13c10a428e5e6e31750872b209fe5a5b8 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 6 Jan 2022 14:23:22 +0000 Subject: [PATCH 124/125] Added GFF support for reporting --- bin/igv_files_to_session.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/igv_files_to_session.py b/bin/igv_files_to_session.py index 6443dc42..cf7c3124 100755 --- a/bin/igv_files_to_session.py +++ b/bin/igv_files_to_session.py @@ -94,6 +94,10 @@ def igv_files_to_session(XMLOut,ListFile,Genome,PathPrefix=''): XMLStr += '\t\t Date: Mon, 10 Jan 2022 09:07:30 +0000 Subject: [PATCH 125/125] Updated change log --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50efee48..aa38bd27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,9 +43,11 @@ We thank Harshil Patel ([@drpatelh](https://github.com/drpatelh)) and everyone i * Added pipeline diagram to [[README](https://github.com/nf-core/cutandrun/blob/master/README.md)] * Upgraded all modules (local and nf-core) to support the new versioning system * The module `getchromsizes` was submitted to nf-core and moved from `local` to `nf-core` +* Added support for GFF files in IGV session generation * [[#57](https://github.com/nf-core/cutandrun/issues/57), [#66](https://github.com/nf-core/cutandrun/issues/66)] - Upgraded version reporting in multiqc to support both software version by module and unique software versions. This improves detection of multi-version software usage in the pipeline * [[#54](https://github.com/nf-core/cutandrun/issues/54)] - Fixed pipeline error where dots in sample ids inside the sample sheet were not correctly handled * [[#75](https://github.com/nf-core/cutandrun/issues/75)] - Fixed error caused by emtpy peak files being passed to the `CALCULATE_FRIP` and `CALCULATE_PEAK_REPROD` python reporting modules +* [[#83]](https://github.com/nf-core/cutandrun/issues/83) - Fixed error in violin chart generation with cast to int64 ### Software dependencies

)bNtXB<>| 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