From 38b450d0be865af4f60dd4674a4fc47ddbf1e6e1 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sidorov Date: Tue, 16 Mar 2021 09:54:29 +0000 Subject: [PATCH 001/592] hifiasm copied from fastqc --- software/hifiasm/functions.nf | 59 ++++++++++++++++++++++++++++ software/hifiasm/main.nf | 47 +++++++++++++++++++++++ software/hifiasm/meta.yml | 72 +++++++++++++++++++++++++++++++++++ 3 files changed, 178 insertions(+) create mode 100644 software/hifiasm/functions.nf create mode 100644 software/hifiasm/main.nf create mode 100644 software/hifiasm/meta.yml diff --git a/software/hifiasm/functions.nf b/software/hifiasm/functions.nf new file mode 100644 index 00000000..d25eea86 --- /dev/null +++ b/software/hifiasm/functions.nf @@ -0,0 +1,59 @@ +/* + * ----------------------------------------------------- + * 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.publish_by_id = args.publish_by_id ?: false + 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_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" + } + } + } else if (ioptions.publish_files == null) { + return "${getPathFromList(path_list)}/$args.filename" + } + } +} diff --git a/software/hifiasm/main.nf b/software/hifiasm/main.nf new file mode 100644 index 00000000..4e847876 --- /dev/null +++ b/software/hifiasm/main.nf @@ -0,0 +1,47 @@ +// Import generic module functions +include { initOptions; saveFiles; getSoftwareName } from './functions' + +params.options = [:] +options = initOptions(params.options) + +process FASTQC { + 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), publish_id:meta.id) } + + conda (params.enable_conda ? "bioconda::fastqc=0.11.9" : null) + if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { + container "https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0" + } else { + container "quay.io/biocontainers/fastqc:0.11.9--0" + } + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path("*.html"), emit: html + tuple val(meta), path("*.zip") , emit: zip + path "*.version.txt" , emit: version + + 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}" + 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 + """ + } 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 + """ + } +} diff --git a/software/hifiasm/meta.yml b/software/hifiasm/meta.yml new file mode 100644 index 00000000..413aad8d --- /dev/null +++ b/software/hifiasm/meta.yml @@ -0,0 +1,72 @@ +name: fastqc +description: Run FastQC on sequenced reads +keywords: + - quality control + - qc + - adapters + - fastq +tools: + - fastqc: + description: | + FastQC gives general quality metrics about your reads. + It provides information about the quality score distribution + across your reads, the per base sequence content (%A/C/G/T). + You get information about adapter contamination and other + overrepresented sequences. + homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ + documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ +params: + - outdir: + type: string + description: | + The pipeline's output directory. By default, the module will + output files into `$params.outdir/` + - publish_dir_mode: + type: string + description: | + Value for the Nextflow `publishDir` mode parameter. + Available: symlink, rellink, link, copy, copyNoFollow, move. + - enable_conda: + type: boolean + description: | + Run the module with Conda using the software specified + via the `conda` directive + - 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. +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - html: + type: file + description: FastQC report + pattern: "*_{fastqc.html}" + - zip: + type: file + description: FastQC report archive + pattern: "*_{fastqc.zip}" + - version: + type: file + description: File containing software version + pattern: "*.{version.txt}" +authors: + - "@drpatelh" + - "@grst" + - "@ewels" + - "@FelixKrueger" From 2f675fbe7c60a67649dd4a02e72e2f1ee79f24d3 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sidorov Date: Tue, 16 Mar 2021 11:37:06 +0000 Subject: [PATCH 002/592] hifiasm tests init from fastqc --- tests/software/hifiasm/main.nf | 28 ++++++++++++++++++++++++++++ tests/software/hifiasm/test.yml | 19 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tests/software/hifiasm/main.nf create mode 100644 tests/software/hifiasm/test.yml diff --git a/tests/software/hifiasm/main.nf b/tests/software/hifiasm/main.nf new file mode 100644 index 00000000..f10b2357 --- /dev/null +++ b/tests/software/hifiasm/main.nf @@ -0,0 +1,28 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { FASTQC } from '../../../software/fastqc/main.nf' addParams( options: [:] ) + +/* + * Test with single-end data + */ +workflow test_fastqc_single_end { + + def input = [] + input = [ [ id:'test', single_end:true ], // meta map + [ file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_1.fastq.gz", checkIfExists: true) ] ] + FASTQC ( input ) +} + +/* + * Test with paired-end data + */ +workflow test_fastqc_paired_end { + + def input = [] + input = [[id: 'test', single_end: false], // meta map + [file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_1.fastq.gz", checkIfExists: true), + file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_2.fastq.gz", checkIfExists: true)]] + FASTQC (input) +} diff --git a/tests/software/hifiasm/test.yml b/tests/software/hifiasm/test.yml new file mode 100644 index 00000000..0fe0ebe0 --- /dev/null +++ b/tests/software/hifiasm/test.yml @@ -0,0 +1,19 @@ +- name: fastqc single-end + command: nextflow run ./tests/software/fastqc/ -entry test_fastqc_single_end -c tests/config/nextflow.config + tags: + - fastqc + - fastqc_single_end + files: + - path: ./output/fastqc/test_fastqc.html + - path: ./output/fastqc/test_fastqc.zip + +- name: fastqc paired-end + command: nextflow run ./tests/software/fastqc/ -entry test_fastqc_paired_end -c tests/config/nextflow.config + tags: + - fastqc + - fastqc_paired_end + files: + - path: ./output/fastqc/test_1_fastqc.html + - path: ./output/fastqc/test_2_fastqc.html + - path: ./output/fastqc/test_2_fastqc.zip + - path: ./output/fastqc/test_1_fastqc.zip From 390c835f9fc47574654aa0bfd55556bf376e98f2 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sidorov Date: Tue, 16 Mar 2021 11:54:42 +0000 Subject: [PATCH 003/592] meta.yml init; test.yml and main.nf for printing version --- software/hifiasm/meta.yml | 23 ++++++++++------------- tests/software/hifiasm/main.nf | 18 +++++++++--------- tests/software/hifiasm/test.yml | 22 +++++----------------- 3 files changed, 24 insertions(+), 39 deletions(-) diff --git a/software/hifiasm/meta.yml b/software/hifiasm/meta.yml index 413aad8d..9ef62628 100644 --- a/software/hifiasm/meta.yml +++ b/software/hifiasm/meta.yml @@ -1,20 +1,17 @@ -name: fastqc -description: Run FastQC on sequenced reads +name: hifiasm +description: Run hifiasm on Pacbio HiFi reads keywords: - - quality control - - qc - - adapters + - genome assembly + - pacbaio + - hifi + - long reads - fastq tools: - - fastqc: + - hifiasm: description: | - FastQC gives general quality metrics about your reads. - It provides information about the quality score distribution - across your reads, the per base sequence content (%A/C/G/T). - You get information about adapter contamination and other - overrepresented sequences. - homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ - documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ + hifiasm generates a genome assembly from long Pacbio HiFi reads. ...Haplotype resolution ...Using short reads. + homepage: https://github.com/chhylp123/hifiasm + documentation: https://github.com/chhylp123/hifiasm params: - outdir: type: string diff --git a/tests/software/hifiasm/main.nf b/tests/software/hifiasm/main.nf index f10b2357..66824584 100644 --- a/tests/software/hifiasm/main.nf +++ b/tests/software/hifiasm/main.nf @@ -2,27 +2,27 @@ nextflow.enable.dsl = 2 -include { FASTQC } from '../../../software/fastqc/main.nf' addParams( options: [:] ) +include { HIFIASM } from '../../../software/hifiasm/main.nf' addParams( options: [:] ) -/* +/* * Test with single-end data */ -workflow test_fastqc_single_end { +/* workflow test_fastqc_single_end { def input = [] input = [ [ id:'test', single_end:true ], // meta map [ file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_1.fastq.gz", checkIfExists: true) ] ] FASTQC ( input ) -} +} */ /* - * Test with paired-end data + * Test version printing */ -workflow test_fastqc_paired_end { +workflow test_hifiasm_version { - def input = [] +/* def input = [] input = [[id: 'test', single_end: false], // meta map [file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_1.fastq.gz", checkIfExists: true), - file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_2.fastq.gz", checkIfExists: true)]] - FASTQC (input) + file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_2.fastq.gz", checkIfExists: true)]] */ + HIFIASM () } diff --git a/tests/software/hifiasm/test.yml b/tests/software/hifiasm/test.yml index 0fe0ebe0..3825b238 100644 --- a/tests/software/hifiasm/test.yml +++ b/tests/software/hifiasm/test.yml @@ -1,19 +1,7 @@ -- name: fastqc single-end - command: nextflow run ./tests/software/fastqc/ -entry test_fastqc_single_end -c tests/config/nextflow.config +- name: hifiasm + command: nextflow run ./tests/software/hifiasm/ -entry test_hifiasm_version -c tests/config/nextflow.config tags: - - fastqc - - fastqc_single_end + - hifiasm + - hifiasm_version files: - - path: ./output/fastqc/test_fastqc.html - - path: ./output/fastqc/test_fastqc.zip - -- name: fastqc paired-end - command: nextflow run ./tests/software/fastqc/ -entry test_fastqc_paired_end -c tests/config/nextflow.config - tags: - - fastqc - - fastqc_paired_end - files: - - path: ./output/fastqc/test_1_fastqc.html - - path: ./output/fastqc/test_2_fastqc.html - - path: ./output/fastqc/test_2_fastqc.zip - - path: ./output/fastqc/test_1_fastqc.zip + - path: ./output/hifiasm/VERSION.txt From b58233794b05b287d0887c6803c6c2f7abf10db4 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sidorov Date: Tue, 16 Mar 2021 13:14:43 +0000 Subject: [PATCH 004/592] Add hifiasm version printing --- software/hifiasm/main.nf | 33 +++++++++++++++++++-------------- tests/software/hifiasm/test.yml | 4 ++-- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/software/hifiasm/main.nf b/software/hifiasm/main.nf index 4e847876..7a364be2 100644 --- a/software/hifiasm/main.nf +++ b/software/hifiasm/main.nf @@ -4,33 +4,34 @@ include { initOptions; saveFiles; getSoftwareName } from './functions' params.options = [:] options = initOptions(params.options) -process FASTQC { - tag "$meta.id" - label 'process_medium' +process HIFIASM { + //tag "$meta.id" + label 'process_high' publishDir "${params.outdir}", mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), publish_id:meta.id) } + saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), publish_id:'') } // publish_id:meta.id) } - conda (params.enable_conda ? "bioconda::fastqc=0.11.9" : null) + conda (params.enable_conda ? "bioconda::hifiasm=0.14" : null) if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0" + container "https://depot.galaxyproject.org/singularity/hifiasm:0.14--h8b12597_0" } else { - container "quay.io/biocontainers/fastqc:0.11.9--0" + container "quay.io/biocontainers/hifiasm:0.14--h8b12597_0" } - input: - tuple val(meta), path(reads) +/* input: + tuple val(meta), path(reads) */ output: - tuple val(meta), path("*.html"), emit: html - tuple val(meta), path("*.zip") , emit: zip +/* tuple val(meta), path("*.html"), emit: html + tuple val(meta), path("*.zip") , emit: zip */ path "*.version.txt" , emit: version 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}" - if (meta.single_end) { + //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 @@ -43,5 +44,9 @@ process FASTQC { 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 """ - } + } */ + + """ + hifiasm --version > ${software}.version.txt || exit 0 + """ } diff --git a/tests/software/hifiasm/test.yml b/tests/software/hifiasm/test.yml index 3825b238..e639f099 100644 --- a/tests/software/hifiasm/test.yml +++ b/tests/software/hifiasm/test.yml @@ -1,7 +1,7 @@ - name: hifiasm - command: nextflow run ./tests/software/hifiasm/ -entry test_hifiasm_version -c tests/config/nextflow.config + command: nextflow run ./tests/software/hifiasm -entry test_hifiasm_version -c tests/config/nextflow.config tags: - hifiasm - hifiasm_version files: - - path: ./output/hifiasm/VERSION.txt + - path: ./output/hifiasm/hifiasm.version.txt From 5a270c5ba7a0b382d2ca48ce42f7399a6003fa7d Mon Sep 17 00:00:00 2001 From: Sviatoslav Sidorov Date: Tue, 16 Mar 2021 15:55:59 +0000 Subject: [PATCH 005/592] Removed spaced on an empty line --- software/hifiasm/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/software/hifiasm/main.nf b/software/hifiasm/main.nf index 7a364be2..8686b6bc 100644 --- a/software/hifiasm/main.nf +++ b/software/hifiasm/main.nf @@ -30,7 +30,7 @@ process HIFIASM { // 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}" - + /* if (meta.single_end) { """ [ ! -f ${prefix}.fastq.gz ] && ln -s $reads ${prefix}.fastq.gz From 7aaf0b72486a6948f8e93f5905e56339dbca9ee5 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sidorov Date: Sun, 2 May 2021 14:09:03 +0100 Subject: [PATCH 006/592] Reverted hifiasm from main --- software/hifiasm/functions.nf | 59 ---------------------------- software/hifiasm/main.nf | 52 ------------------------- software/hifiasm/meta.yml | 69 --------------------------------- tests/software/hifiasm/main.nf | 28 ------------- tests/software/hifiasm/test.yml | 7 ---- 5 files changed, 215 deletions(-) delete mode 100644 software/hifiasm/functions.nf delete mode 100644 software/hifiasm/main.nf delete mode 100644 software/hifiasm/meta.yml delete mode 100644 tests/software/hifiasm/main.nf delete mode 100644 tests/software/hifiasm/test.yml diff --git a/software/hifiasm/functions.nf b/software/hifiasm/functions.nf deleted file mode 100644 index d25eea86..00000000 --- a/software/hifiasm/functions.nf +++ /dev/null @@ -1,59 +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.publish_by_id = args.publish_by_id ?: false - 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_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" - } - } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" - } - } -} diff --git a/software/hifiasm/main.nf b/software/hifiasm/main.nf deleted file mode 100644 index 8686b6bc..00000000 --- a/software/hifiasm/main.nf +++ /dev/null @@ -1,52 +0,0 @@ -// Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' - -params.options = [:] -options = initOptions(params.options) - -process HIFIASM { - //tag "$meta.id" - label 'process_high' - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), publish_id:'') } // publish_id:meta.id) } - - conda (params.enable_conda ? "bioconda::hifiasm=0.14" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/hifiasm:0.14--h8b12597_0" - } else { - container "quay.io/biocontainers/hifiasm:0.14--h8b12597_0" - } - -/* input: - tuple val(meta), path(reads) */ - - output: -/* tuple val(meta), path("*.html"), emit: html - tuple val(meta), path("*.zip") , emit: zip */ - path "*.version.txt" , emit: version - - 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}" - -/* 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 - """ - } 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 - """ - } */ - - """ - hifiasm --version > ${software}.version.txt || exit 0 - """ -} diff --git a/software/hifiasm/meta.yml b/software/hifiasm/meta.yml deleted file mode 100644 index 9ef62628..00000000 --- a/software/hifiasm/meta.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: hifiasm -description: Run hifiasm on Pacbio HiFi reads -keywords: - - genome assembly - - pacbaio - - hifi - - long reads - - fastq -tools: - - hifiasm: - description: | - hifiasm generates a genome assembly from long Pacbio HiFi reads. ...Haplotype resolution ...Using short reads. - homepage: https://github.com/chhylp123/hifiasm - documentation: https://github.com/chhylp123/hifiasm -params: - - outdir: - type: string - description: | - The pipeline's output directory. By default, the module will - output files into `$params.outdir/` - - publish_dir_mode: - type: string - description: | - Value for the Nextflow `publishDir` mode parameter. - Available: symlink, rellink, link, copy, copyNoFollow, move. - - enable_conda: - type: boolean - description: | - Run the module with Conda using the software specified - via the `conda` directive - - 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. -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - html: - type: file - description: FastQC report - pattern: "*_{fastqc.html}" - - zip: - type: file - description: FastQC report archive - pattern: "*_{fastqc.zip}" - - version: - type: file - description: File containing software version - pattern: "*.{version.txt}" -authors: - - "@drpatelh" - - "@grst" - - "@ewels" - - "@FelixKrueger" diff --git a/tests/software/hifiasm/main.nf b/tests/software/hifiasm/main.nf deleted file mode 100644 index 66824584..00000000 --- a/tests/software/hifiasm/main.nf +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { HIFIASM } from '../../../software/hifiasm/main.nf' addParams( options: [:] ) - -/* - * Test with single-end data - */ -/* workflow test_fastqc_single_end { - - def input = [] - input = [ [ id:'test', single_end:true ], // meta map - [ file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_1.fastq.gz", checkIfExists: true) ] ] - FASTQC ( input ) -} */ - -/* - * Test version printing - */ -workflow test_hifiasm_version { - -/* def input = [] - input = [[id: 'test', single_end: false], // meta map - [file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_1.fastq.gz", checkIfExists: true), - file("${launchDir}/tests/data/genomics/sarscov2/fastq/test_2.fastq.gz", checkIfExists: true)]] */ - HIFIASM () -} diff --git a/tests/software/hifiasm/test.yml b/tests/software/hifiasm/test.yml deleted file mode 100644 index e639f099..00000000 --- a/tests/software/hifiasm/test.yml +++ /dev/null @@ -1,7 +0,0 @@ -- name: hifiasm - command: nextflow run ./tests/software/hifiasm -entry test_hifiasm_version -c tests/config/nextflow.config - tags: - - hifiasm - - hifiasm_version - files: - - path: ./output/hifiasm/hifiasm.version.txt From 21ecd68bfe415ee78173813667f1bb0d465f7f4b Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 27 Jan 2022 08:43:02 +0100 Subject: [PATCH 007/592] fix: remove left-over unnecessary code --- modules/deeparg/predict/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/deeparg/predict/main.nf b/modules/deeparg/predict/main.nf index 1af0fd40..9408fa3d 100644 --- a/modules/deeparg/predict/main.nf +++ b/modules/deeparg/predict/main.nf @@ -11,7 +11,7 @@ process DEEPARG_PREDICT { input: tuple val(meta), path(fasta), val(model) - tuple path(db) + path(db) output: tuple val(meta), path("*.align.daa") , emit: daa From b412e6dabc99ea1b1bae07e09a4dbcb6e92e5439 Mon Sep 17 00:00:00 2001 From: Priyanka Surana Date: Thu, 27 Jan 2022 14:36:18 +0000 Subject: [PATCH 008/592] Busco module commit with nf-core v2.2 c1 --- modules/busco/main.nf | 42 +++++++++++++++++++++++ modules/busco/meta.yml | 52 +++++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/busco/main.nf | 26 +++++++++++++++ tests/modules/busco/nextflow.config | 5 +++ tests/modules/busco/test.yml | 20 +++++++++++ 6 files changed, 149 insertions(+) create mode 100644 modules/busco/main.nf create mode 100644 modules/busco/meta.yml create mode 100644 tests/modules/busco/main.nf create mode 100644 tests/modules/busco/nextflow.config create mode 100644 tests/modules/busco/test.yml diff --git a/modules/busco/main.nf b/modules/busco/main.nf new file mode 100644 index 00000000..445f8ed4 --- /dev/null +++ b/modules/busco/main.nf @@ -0,0 +1,42 @@ +process BUSCO { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::busco=5.2.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/busco:5.2.2--pyhdfd78af_0': + 'quay.io/biocontainers/busco:5.2.2--pyhdfd78af_0' }" + + input: + tuple val(meta), path(fasta) + path(augustus_config) + val(lineage) + + output: + tuple val(meta), path("${meta.id}/run_*/full_table.tsv"), emit: tsv + tuple val(meta), path("${meta.id}/run_*/short_summary.txt"), emit: txt + path "versions.yml" , emit: versions + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + if (lineage) args += " --lineage_dataset $lineage" + """ + # Ensure the input is uncompressed + gzip -cdf $fasta > __UNCOMPRESSED_FASTA_FILE__ + # Copy the image's AUGUSTUS config directory if it was not provided to the module + [ ! -e augustus_config ] && cp -a /usr/local/config augustus_config + AUGUSTUS_CONFIG_PATH=augustus_config \\ + busco \\ + $args \\ + --augustus \\ + --cpu $task.cpus \\ + --in __UNCOMPRESSED_FASTA_FILE__ \\ + --out $meta.id + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + busco: \$( busco --version 2>&1 | sed 's/^BUSCO //' ) + END_VERSIONS + """ +} diff --git a/modules/busco/meta.yml b/modules/busco/meta.yml new file mode 100644 index 00000000..0cd9e402 --- /dev/null +++ b/modules/busco/meta.yml @@ -0,0 +1,52 @@ +name: busco +description: Benchmarking Universal Single Copy Orthologs +keywords: + - quality control + - genome + - transcriptome + - proteome +tools: + - busco: + description: BUSCO provides measures for quantitative assessment of genome assembly, gene set, and transcriptome completeness based on evolutionarily informed expectations of gene content from near-universal single-copy orthologs selected from OrthoDB. + homepage: https://busco.ezlab.org/ + documentation: https://busco.ezlab.org/busco_userguide.html + tool_dev_url: https://gitlab.com/ezlab/busco + doi: "10.1007/978-1-4939-9173-0_14" + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Nucleic or amino acid sequence file in FASTA format + pattern: "*.{fasta}" + - augustus_config: + type: directory + description: AUGUSTUS config directory + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - tsv: + type: file + description: Full summary table + pattern: "*.{tsv}" + - txt: + type: file + description: Short summary text + pattern: "*.{txt}" + +authors: + - "@priyanka-surana" + - "@charles-plessy" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 2321c918..920b85bd 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -230,6 +230,10 @@ bowtie2/build: - modules/bowtie2/build/** - tests/modules/bowtie2/build_test/** +busco: + - modules/busco/** + - tests/modules/busco/** + bwa/aln: - modules/bwa/aln/** - tests/modules/bwa/aln/** diff --git a/tests/modules/busco/main.nf b/tests/modules/busco/main.nf new file mode 100644 index 00000000..28a4921c --- /dev/null +++ b/tests/modules/busco/main.nf @@ -0,0 +1,26 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BUSCO as BUSCO_BACTE } from '../../../modules/busco/main.nf' +include { BUSCO as BUSCO_CHR22 } from '../../../modules/busco/main.nf' +include { UNTAR } from '../../../modules/untar/main.nf' + +// This tests genome decompression, empty input channels and data download +workflow test_busco_bacteroidales { + input = [ [ id:'test' ], file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) ] + BUSCO_BACTE ( input, + [], + [] ) +} + +// This tests uncompressed genome, BUSCO lineage file provided via input channel, and offline mode +workflow test_busco_chr22 { + input = [ [ id:'test' ], file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ] + lineage_dataset = [ file(params.test_data['homo_sapiens']['genome']['chr22_odb10_tar_gz'], checkIfExists: true) ] + UNTAR(lineage_dataset) + BUSCO_CHR22 ( input, + [], + UNTAR.out.untar ) +} + diff --git a/tests/modules/busco/nextflow.config b/tests/modules/busco/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/busco/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/busco/test.yml b/tests/modules/busco/test.yml new file mode 100644 index 00000000..32553d2e --- /dev/null +++ b/tests/modules/busco/test.yml @@ -0,0 +1,20 @@ +- name: busco test_busco_bacteroidales + command: nextflow run ./tests/modules/busco -entry test_busco_bacteroidales -c ./tests/config/nextflow.config -c ./tests/modules/busco/nextflow.config + tags: + - busco + files: + - path: output/busco/test/run_bacteroidales_odb10/full_table.tsv + md5sum: 8d7b401d875ecd9291b01bf4485bf080 + - path: output/busco/test/run_bacteroidales_odb10/short_summary.txt + contains: ['Complete BUSCOs (C)'] + +- name: busco test_busco_chr22 + command: nextflow run ./tests/modules/busco -entry test_busco_chr22 -c ./tests/config/nextflow.config -c ./tests/modules/busco/nextflow.config + tags: + - busco + files: + - path: output/busco/test/run_chr22_odb10/full_table.tsv + md5sum: 83f20e8996c591338ada73b6ab0eb269 + - path: output/busco/test/run_chr22_odb10/short_summary.txt + contains: ['Complete BUSCOs (C)'] + From 1abcc938379595db0840dc32d1681cdebc268f74 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Fri, 28 Jan 2022 09:14:47 +0000 Subject: [PATCH 009/592] Ignores version file checking if testing for error --- tests/test_versions_yml.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_versions_yml.py b/tests/test_versions_yml.py index 2f78ab2e..19ba1cf9 100644 --- a/tests/test_versions_yml.py +++ b/tests/test_versions_yml.py @@ -16,7 +16,8 @@ def _get_workflow_names(): # test_config = yaml.safe_load(f.read_text()) test_config = yaml.load(f.read_text(), Loader=yaml.BaseLoader) for workflow in test_config: - yield workflow["name"] + if 'exit_code' not in workflow: + yield workflow["name"] @pytest.mark.workflow(*_get_workflow_names()) From 70ea9ac9a863061e22e7b5a8dd3fe07a29ecf4c4 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Fri, 28 Jan 2022 09:27:28 +0000 Subject: [PATCH 010/592] Added comment --- tests/test_versions_yml.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/test_versions_yml.py b/tests/test_versions_yml.py index 19ba1cf9..5d0bb39e 100644 --- a/tests/test_versions_yml.py +++ b/tests/test_versions_yml.py @@ -16,7 +16,9 @@ def _get_workflow_names(): # test_config = yaml.safe_load(f.read_text()) test_config = yaml.load(f.read_text(), Loader=yaml.BaseLoader) for workflow in test_config: - if 'exit_code' not in workflow: + # https://github.com/nf-core/modules/pull/1242 - added to cover tests + # that expect an error and therefore will not generate a versions.yml + if 'exit_code' not in workflow: yield workflow["name"] From 45acc79667b58b5888cdea7327e76c728e94d6df Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Wed, 9 Feb 2022 13:45:55 +0100 Subject: [PATCH 011/592] Update mosdepth (#1256) * nf-core create * svdb merge module and test * remove to-do from test.yml * version * update meta.yml * mosdepth update * update md5sums * add stub * add stub * remove svdb * remove merge * Add tests * code linting fix * undo previous commit * revert code linting fix --- modules/mosdepth/main.nf | 43 ++++++++++++++++++++++++++------- modules/mosdepth/meta.yml | 1 + tests/modules/mosdepth/main.nf | 26 +++++++++++++++++--- tests/modules/mosdepth/test.yml | 42 +++++++++++++++++++++++++++++--- 4 files changed, 96 insertions(+), 16 deletions(-) diff --git a/modules/mosdepth/main.nf b/modules/mosdepth/main.nf index cc7bc86b..ff91e06f 100644 --- a/modules/mosdepth/main.nf +++ b/modules/mosdepth/main.nf @@ -2,10 +2,10 @@ process MOSDEPTH { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? 'bioconda::mosdepth=0.3.2' : null) + conda (params.enable_conda ? 'bioconda::mosdepth=0.3.3' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mosdepth:0.3.2--h01d7912_0' : - 'quay.io/biocontainers/mosdepth:0.3.2--h01d7912_0' }" + 'https://depot.galaxyproject.org/singularity/mosdepth:0.3.3--hdfd78af_1' : + 'quay.io/biocontainers/mosdepth:0.3.3--hdfd78af_1'}" input: tuple val(meta), path(bam), path(bai) @@ -14,12 +14,13 @@ process MOSDEPTH { output: tuple val(meta), path('*.global.dist.txt') , emit: global_txt - tuple val(meta), path('*.region.dist.txt') , emit: regions_txt + tuple val(meta), path('*.region.dist.txt') , emit: regions_txt , optional:true tuple val(meta), path('*.summary.txt') , emit: summary_txt - tuple val(meta), path('*.per-base.bed.gz') , emit: per_base_bed - tuple val(meta), path('*.per-base.bed.gz.csi'), emit: per_base_csi - tuple val(meta), path('*.regions.bed.gz') , emit: regions_bed - tuple val(meta), path('*.regions.bed.gz.csi') , emit: regions_csi + tuple val(meta), path('*.per-base.d4') , emit: d4 , optional:true + tuple val(meta), path('*.per-base.bed.gz') , emit: per_base_bed, optional:true + tuple val(meta), path('*.per-base.bed.gz.csi'), emit: per_base_csi, optional:true + tuple val(meta), path('*.regions.bed.gz') , emit: regions_bed , optional:true + tuple val(meta), path('*.regions.bed.gz.csi') , emit: regions_csi , optional:true path "versions.yml" , emit: versions when: @@ -28,7 +29,13 @@ process MOSDEPTH { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def interval = window_size ? "--by ${window_size}" : "--by ${bed}" + if (window_size) { + interval = "--by ${window_size}" + } else if ( bed ) { + interval = "--by ${bed}" + } else { + interval = "" + } """ mosdepth \\ $interval \\ @@ -40,4 +47,22 @@ process MOSDEPTH { mosdepth: \$(mosdepth --version 2>&1 | sed 's/^.*mosdepth //; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.global.dist.txt + touch ${prefix}.region.dist.txt + touch ${prefix}.summary.txt + touch ${prefix}.per-base.d4 + touch ${prefix}.per-base.bed.gz + touch ${prefix}.per-base.bed.gz.csi + touch ${prefix}.regions.bed.gz + touch ${prefix}.regions.bed.gz.csi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + mosdepth: \$(mosdepth --version 2>&1 | sed 's/^.*mosdepth //; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/mosdepth/meta.yml b/modules/mosdepth/meta.yml index be568aa6..0ca7bce9 100644 --- a/modules/mosdepth/meta.yml +++ b/modules/mosdepth/meta.yml @@ -75,3 +75,4 @@ output: authors: - "@joseespinosa" - "@drpatelh" + - "@ramprasadn" diff --git a/tests/modules/mosdepth/main.nf b/tests/modules/mosdepth/main.nf index 8862204d..ddd68129 100644 --- a/tests/modules/mosdepth/main.nf +++ b/tests/modules/mosdepth/main.nf @@ -7,10 +7,30 @@ include { MOSDEPTH } from '../../../modules/mosdepth/main.nf' workflow test_mosdepth { input = [ [ id:'test', single_end:true ], [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ], - [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ] + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ] + ] + + MOSDEPTH ( input, [], [] ) +} + + +workflow test_mosdepth_window { + input = [ [ id:'test', single_end:true ], + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ], + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ] ] - dummy = file("dummy_file.txt") window = 100 - MOSDEPTH ( input, dummy, window ) + MOSDEPTH ( input, [], window ) +} + + +workflow test_mosdepth_bed { + input = [ [ id:'test', single_end:true ], + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ], + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ] + ] + bed = [ file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true) ] + + MOSDEPTH ( input, bed, [] ) } diff --git a/tests/modules/mosdepth/test.yml b/tests/modules/mosdepth/test.yml index e264ef3b..c66e0b89 100644 --- a/tests/modules/mosdepth/test.yml +++ b/tests/modules/mosdepth/test.yml @@ -4,16 +4,50 @@ - mosdepth files: - path: ./output/mosdepth/test.per-base.bed.gz.csi - md5sum: aa68536f55883aa60f4e68ac9b108358 + md5sum: b2aad62c41a7146680d31df505fcc8c5 - path: ./output/mosdepth/test.per-base.bed.gz - md5sum: b5f9c8ca49be6128a486f6b56514a6d0 + md5sum: 11b3f649072c2c7453febb085b1a9c33 + - path: ./output/mosdepth/test.mosdepth.global.dist.txt + md5sum: 2a1de1b0ecc361a21cd296ec4e1efd6a + - path: ./output/mosdepth/test.mosdepth.summary.txt + md5sum: 7b249dd3b3e58cc122fbd25ea84aa25d + +- name: mosdepth window + command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth_window -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config + tags: + - mosdepth + files: + - path: ./output/mosdepth/test.per-base.bed.gz.csi + md5sum: b2aad62c41a7146680d31df505fcc8c5 + - path: ./output/mosdepth/test.per-base.bed.gz + md5sum: 11b3f649072c2c7453febb085b1a9c33 - path: ./output/mosdepth/test.mosdepth.global.dist.txt md5sum: 2a1de1b0ecc361a21cd296ec4e1efd6a - path: ./output/mosdepth/test.regions.bed.gz - md5sum: 8e020ec602c02d240e0458642cf5ac5a + md5sum: 64e1ced01c4443d7c1796ef553992f0c - path: ./output/mosdepth/test.regions.bed.gz.csi - md5sum: 44aec43fc34785fcbe6d830c907c617a + md5sum: 9e312b4b0784bd46dfbd23b3a8afed6a - path: ./output/mosdepth/test.mosdepth.region.dist.txt md5sum: 65fbc824c4212c6884354d8ac72ad37e - path: ./output/mosdepth/test.mosdepth.summary.txt md5sum: 11804907dab069ddb99ca97bf2698572 + +- name: mosdepth bed + command: nextflow run ./tests/modules/mosdepth -entry test_mosdepth_bed -c ./tests/config/nextflow.config -c ./tests/modules/mosdepth/nextflow.config + tags: + - mosdepth + files: + - path: ./output/mosdepth/test.per-base.bed.gz.csi + md5sum: b2aad62c41a7146680d31df505fcc8c5 + - path: ./output/mosdepth/test.per-base.bed.gz + md5sum: 11b3f649072c2c7453febb085b1a9c33 + - path: ./output/mosdepth/test.mosdepth.global.dist.txt + md5sum: 2a1de1b0ecc361a21cd296ec4e1efd6a + - path: ./output/mosdepth/test.regions.bed.gz + md5sum: 347f877700d1dc42c95157199eff25d5 + - path: ./output/mosdepth/test.regions.bed.gz.csi + md5sum: ed5fbf46e3bdcbf60094df295bc40356 + - path: ./output/mosdepth/test.mosdepth.region.dist.txt + md5sum: 295564628113d2ec0ca34d7f661cfea8 + - path: ./output/mosdepth/test.mosdepth.summary.txt + md5sum: b07817412fd17819c14541e63bc4926c From c8ebd0de36c649a14fc92f2f73cbd9f691a8ce0a Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Wed, 9 Feb 2022 21:05:49 +0100 Subject: [PATCH 012/592] Add msisensorpro (#1267) * Add msisensorpro * remove absolute paths * fixing tests * fix msisensorpro tests * Update modules/msisensorpro/msi_somatic/main.nf Co-authored-by: Maxime U. Garcia * Update modules/msisensorpro/msi_somatic/main.nf Co-authored-by: Maxime U. Garcia * add when back in * add when back in * Update modules/msisensorpro/msi_somatic/main.nf Co-authored-by: Maxime U. Garcia * update description * Update main.nf * Update main.nf * Update main.nf Co-authored-by: Maxime U. Garcia --- modules/msisensorpro/msi_somatic/main.nf | 47 +++++++++++ modules/msisensorpro/msi_somatic/meta.yml | 80 +++++++++++++++++++ modules/msisensorpro/scan/main.nf | 35 ++++++++ modules/msisensorpro/scan/meta.yml | 43 ++++++++++ tests/config/pytest_modules.yml | 8 ++ .../modules/msisensorpro/msi_somatic/main.nf | 33 ++++++++ .../msisensorpro/msi_somatic/nextflow.config | 5 ++ .../modules/msisensorpro/msi_somatic/test.yml | 18 +++++ tests/modules/msisensorpro/scan/main.nf | 15 ++++ .../modules/msisensorpro/scan/nextflow.config | 5 ++ tests/modules/msisensorpro/scan/test.yml | 10 +++ 11 files changed, 299 insertions(+) create mode 100644 modules/msisensorpro/msi_somatic/main.nf create mode 100644 modules/msisensorpro/msi_somatic/meta.yml create mode 100644 modules/msisensorpro/scan/main.nf create mode 100644 modules/msisensorpro/scan/meta.yml create mode 100644 tests/modules/msisensorpro/msi_somatic/main.nf create mode 100644 tests/modules/msisensorpro/msi_somatic/nextflow.config create mode 100644 tests/modules/msisensorpro/msi_somatic/test.yml create mode 100644 tests/modules/msisensorpro/scan/main.nf create mode 100644 tests/modules/msisensorpro/scan/nextflow.config create mode 100644 tests/modules/msisensorpro/scan/test.yml diff --git a/modules/msisensorpro/msi_somatic/main.nf b/modules/msisensorpro/msi_somatic/main.nf new file mode 100644 index 00000000..e2da70de --- /dev/null +++ b/modules/msisensorpro/msi_somatic/main.nf @@ -0,0 +1,47 @@ +process MSISENSORPRO_MSI_SOMATIC { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::msisensor-pro=1.2.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/msisensor-pro:1.2.0--hfc31af2_0' : + 'quay.io/biocontainers/msisensor-pro:1.2.0--hfc31af2_0' }" + + input: + tuple val(meta), path(normal), path(normal_index), path(tumor), path(tumor_index), path(intervals) + path (fasta) + path (msisensor_scan) + + output: + tuple val(meta), path("${prefix}") , emit: output_report + tuple val(meta), path("${prefix}_dis") , emit: output_dis + tuple val(meta), path("${prefix}_germline"), emit: output_germline + tuple val(meta), path("${prefix}_somatic") , emit: output_somatic + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def fasta = fasta ? "-g ${fasta}" : "" + def intervals = intervals ? " -e ${intervals} " : "" + """ + msisensor-pro \\ + msi \\ + -d ${msisensor_scan} \\ + -n ${normal} \\ + -t ${tumor} \\ + ${fasta} \\ + -o $prefix \\ + -b ${task.cpus} \\ + ${intervals} \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + msisensor-pro: \$(msisensor-pro 2>&1 | sed -nE 's/Version:\\sv([0-9]\\.[0-9])/\\1/ p') + END_VERSIONS + """ +} diff --git a/modules/msisensorpro/msi_somatic/meta.yml b/modules/msisensorpro/msi_somatic/meta.yml new file mode 100644 index 00000000..09bc0e73 --- /dev/null +++ b/modules/msisensorpro/msi_somatic/meta.yml @@ -0,0 +1,80 @@ +name: msisensorpro_msi_somatic +description: MSIsensor-pro evaluates Microsatellite Instability (MSI) for cancer patients with next generation sequencing data. It accepts the whole genome sequencing, whole exome sequencing and target region (panel) sequencing data as input +keywords: + - micro-satellite-scan + - msisensor-pro + - msi + - somatic +tools: + - msisensorpro: + description: Microsatellite Instability (MSI) detection using high-throughput sequencing data. + homepage: https://github.com/xjtu-omics/msisensor-pro + documentation: https://github.com/xjtu-omics/msisensor-pro/wiki + tool_dev_url: https://github.com/xjtu-omics/msisensor-pro + doi: "doi.org/10.1016/j.gpb.2020.02.001" + licence: ['Custom Licence'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - normal: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - normal_index: + type: file + description: BAM/CRAM/SAM index file + pattern: "*.{bai,crai,sai}" + - tumor: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - tumor_index: + type: file + description: BAM/CRAM/SAM index file + pattern: "*.{bai,crai,sai}" + - intervals: + type: file + description: bed file containing interval information, optional + pattern: "*.{bed}" + - fasta: + type: file + description: Reference genome + pattern: "*.{fasta}" + - msisensor_scan: + type: file + description: Output from msisensor-pro/scan, conaining list of msi regions + pattern: "*.list" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output_report: + type: file + description: File containing final report with all detected microsatellites, unstable somatic microsatellites, msi score + - output_dis: + type: file + description: File containing distribution results + - output_germline: + type: file + description: File containing germline results + - output_somatic: + type: file + description: File containing somatic results + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - list: + type: file + description: File containing microsatellite list + pattern: "*.{list}" + +authors: + - "@FriederikeHanssen" diff --git a/modules/msisensorpro/scan/main.nf b/modules/msisensorpro/scan/main.nf new file mode 100644 index 00000000..752606d6 --- /dev/null +++ b/modules/msisensorpro/scan/main.nf @@ -0,0 +1,35 @@ +process MSISENSORPRO_SCAN { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::msisensor-pro=1.2.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/msisensor-pro:1.2.0--hfc31af2_0' : + 'quay.io/biocontainers/msisensor-pro:1.2.0--hfc31af2_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*.list"), emit: list + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + msisensor-pro \\ + scan \\ + -d $fasta \\ + -o ${prefix}.msisensor_scan.list \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + msisensor-pro: \$(msisensor-pro 2>&1 | sed -nE 's/Version:\\sv([0-9]\\.[0-9])/\\1/ p') + END_VERSIONS + """ +} diff --git a/modules/msisensorpro/scan/meta.yml b/modules/msisensorpro/scan/meta.yml new file mode 100644 index 00000000..72c1b84b --- /dev/null +++ b/modules/msisensorpro/scan/meta.yml @@ -0,0 +1,43 @@ +name: msisensorpro_scan +description: MSIsensor-pro evaluates Microsatellite Instability (MSI) for cancer patients with next generation sequencing data. It accepts the whole genome sequencing, whole exome sequencing and target region (panel) sequencing data as input +keywords: + - micro-satellite-scan + - msisensor-pro + - scan +tools: + - msisensorpro: + description: Microsatellite Instability (MSI) detection using high-throughput sequencing data. + homepage: https://github.com/xjtu-omics/msisensor-pro + documentation: https://github.com/xjtu-omics/msisensor-pro/wiki + tool_dev_url: https://github.com/xjtu-omics/msisensor-pro + doi: "doi.org/10.1016/j.gpb.2020.02.001" + licence: ['Custom Licence'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Reference genome + pattern: "*.{fasta}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - list: + type: file + description: File containing microsatellite list + pattern: "*.{list}" + +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 203005da..3dcdcfd7 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1004,6 +1004,14 @@ msisensor/scan: - modules/msisensor/scan/** - tests/modules/msisensor/scan/** +msisensorpro/msi_somatic: + - modules/msisensorpro/msi_somatic/** + - tests/modules/msisensorpro/msi_somatic/** + +msisensorpro/scan: + - modules/msisensorpro/scan/** + - tests/modules/msisensorpro/scan/** + mtnucratio: - modules/mtnucratio/** - tests/modules/mtnucratio/** diff --git a/tests/modules/msisensorpro/msi_somatic/main.nf b/tests/modules/msisensorpro/msi_somatic/main.nf new file mode 100644 index 00000000..4516ada5 --- /dev/null +++ b/tests/modules/msisensorpro/msi_somatic/main.nf @@ -0,0 +1,33 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MSISENSORPRO_MSI_SOMATIC } from '../../../../modules/msisensorpro/msi_somatic/main.nf' +include { MSISENSORPRO_SCAN } from '../../../../modules/msisensorpro/scan/main.nf' + +workflow test_msisensorpro_msi { + + scan_in = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + ] + + println scan_in + + MSISENSORPRO_SCAN ( scan_in ) + + input = [// meta map + [ id:'test'], + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + [] + ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + + MSISENSORPRO_SCAN.out.list.map{meta, list -> [list]}.set{list} + MSISENSORPRO_MSI_SOMATIC(input, fasta, list) + + +} diff --git a/tests/modules/msisensorpro/msi_somatic/nextflow.config b/tests/modules/msisensorpro/msi_somatic/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/msisensorpro/msi_somatic/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/msisensorpro/msi_somatic/test.yml b/tests/modules/msisensorpro/msi_somatic/test.yml new file mode 100644 index 00000000..22e7e864 --- /dev/null +++ b/tests/modules/msisensorpro/msi_somatic/test.yml @@ -0,0 +1,18 @@ +- name: msisensorpro msi_somatic test_msisensorpro_msi + command: nextflow run tests/modules/msisensorpro/msi_somatic -entry test_msisensorpro_msi -c tests/config/nextflow.config + tags: + - msisensorpro/msi_somatic + - msisensorpro + files: + - path: output/msisensorpro/test + md5sum: db7f2cc99ea79f79b0ba011c4bcbb43d + - path: output/msisensorpro/test.msisensor_scan.list + md5sum: 309d41b136993db24a9f3dade877753b + - path: output/msisensorpro/test_dis + md5sum: fc3e205b7ca50c9ecf3f70c87781e96f + - path: output/msisensorpro/test_germline + md5sum: ba585b355c08877b8bca4901f49d9311 + - path: output/msisensorpro/test_somatic + md5sum: 836e617ddded07ec1e39089fd595c3d8 + - path: output/msisensorpro/versions.yml + md5sum: b57279502ca6863c5406ed46e6b42994 diff --git a/tests/modules/msisensorpro/scan/main.nf b/tests/modules/msisensorpro/scan/main.nf new file mode 100644 index 00000000..cf57b820 --- /dev/null +++ b/tests/modules/msisensorpro/scan/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MSISENSORPRO_SCAN } from '../../../../modules/msisensorpro/scan/main.nf' + +workflow test_msisensorpro_scan { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + ] + + MSISENSORPRO_SCAN ( input ) +} diff --git a/tests/modules/msisensorpro/scan/nextflow.config b/tests/modules/msisensorpro/scan/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/msisensorpro/scan/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/msisensorpro/scan/test.yml b/tests/modules/msisensorpro/scan/test.yml new file mode 100644 index 00000000..be5100e2 --- /dev/null +++ b/tests/modules/msisensorpro/scan/test.yml @@ -0,0 +1,10 @@ +- name: msisensorpro scan test_msisensorpro_scan + command: nextflow run tests/modules/msisensorpro/scan -entry test_msisensorpro_scan -c tests/config/nextflow.config + tags: + - msisensorpro + - msisensorpro/scan + files: + - path: output/msisensorpro/test.msisensor_scan.list + md5sum: 309d41b136993db24a9f3dade877753b + - path: output/msisensorpro/versions.yml + md5sum: ed713232c854bce5c74d10097101ed06 From f5d5926516d2319c1af83fb4b33834cc4461ce62 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Thu, 10 Feb 2022 10:34:22 +0100 Subject: [PATCH 013/592] Update intervals (#1278) * Match target bed to input files * Intervals in getpileupsumamries * more interval updates * change targets in strelka * remove leftover channel * fix checksums * add new test vcfs * add new test vcfs * Update modules/freebayes/main.nf Co-authored-by: Maxime U. Garcia --- modules/freebayes/main.nf | 5 +-- modules/freebayes/meta.yml | 10 ++--- modules/gatk4/getpileupsummaries/main.nf | 14 ++++--- modules/gatk4/getpileupsummaries/meta.yml | 33 +++++++++++----- modules/gatk4/mutect2/main.nf | 7 ++-- modules/gatk4/mutect2/meta.yml | 8 ++-- modules/strelka/germline/main.nf | 6 +-- modules/strelka/somatic/main.nf | 11 +++--- modules/tabix/bgziptabix/main.nf | 2 +- tests/config/test_data.config | 6 +++ tests/modules/freebayes/main.nf | 39 +++++++++++-------- tests/modules/freebayes/test.yml | 10 ++--- .../modules/gatk4/getpileupsummaries/main.nf | 37 ++++++++++++++---- .../modules/gatk4/getpileupsummaries/test.yml | 25 +++++++++--- tests/modules/gatk4/mutect2/main.nf | 20 +++++----- tests/modules/gatk4/mutect2/nextflow.config | 4 -- tests/modules/strelka/germline/main.nf | 25 ++++++------ .../modules/strelka/germline/nextflow.config | 4 +- tests/modules/strelka/somatic/main.nf | 29 +++++++------- tests/modules/strelka/somatic/nextflow.config | 4 +- tests/modules/strelka/somatic/test.yml | 8 +--- 21 files changed, 183 insertions(+), 124 deletions(-) diff --git a/modules/freebayes/main.nf b/modules/freebayes/main.nf index e67e4c72..73b1da96 100644 --- a/modules/freebayes/main.nf +++ b/modules/freebayes/main.nf @@ -8,10 +8,9 @@ process FREEBAYES { 'quay.io/biocontainers/freebayes:1.3.5--py38ha193a2f_3' }" input: - tuple val(meta), path(input_1), path(input_1_index), path(input_2), path(input_2_index) + tuple val(meta), path(input_1), path(input_1_index), path(input_2), path(input_2_index), path(target_bed) path fasta path fasta_fai - path targets path samples path populations path cnv @@ -27,7 +26,7 @@ process FREEBAYES { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def input = input_2 ? "${input_1} ${input_2}" : "${input_1}" - def targets_file = targets ? "--target ${targets}" : "" + def targets_file = target_bed ? "--target ${target_bed}" : "" def samples_file = samples ? "--samples ${samples}" : "" def populations_file = populations ? "--populations ${populations}" : "" def cnv_file = cnv ? "--cnv-map ${cnv}" : "" diff --git a/modules/freebayes/meta.yml b/modules/freebayes/meta.yml index abba1daa..e9fb54c2 100644 --- a/modules/freebayes/meta.yml +++ b/modules/freebayes/meta.yml @@ -31,7 +31,11 @@ input: - input_index: type: file description: BAM/CRAM/SAM index file - pattern: "*.bam.bai" + pattern: "*.{bai,crai}" + - target_bed: + type: file + description: Optional - Limit analysis to targets listed in this BED-format FILE. + pattern: "*.bed" - fasta: type: file description: reference fasta file @@ -40,10 +44,6 @@ input: type: file description: reference fasta file index pattern: "*.{fa,fasta}.fai" - - targets: - type: file - description: Optional - Limit analysis to targets listed in this BED-format FILE. - pattern: "*.bed" - samples: type: file description: Optional - Limit analysis to samples listed (one per line) in the FILE. diff --git a/modules/gatk4/getpileupsummaries/main.nf b/modules/gatk4/getpileupsummaries/main.nf index 3667a210..6d98874f 100644 --- a/modules/gatk4/getpileupsummaries/main.nf +++ b/modules/gatk4/getpileupsummaries/main.nf @@ -8,10 +8,12 @@ process GATK4_GETPILEUPSUMMARIES { 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" input: - tuple val(meta), path(bam), path(bai) + tuple val(meta), path(input), path(index), path(intervals) + path fasta + path fai + path dict path variants path variants_tbi - path sites output: tuple val(meta), path('*.pileups.table'), emit: table @@ -23,9 +25,8 @@ process GATK4_GETPILEUPSUMMARIES { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sitesCommand = '' - - sitesCommand = sites ? " -L ${sites} " : " -L ${variants} " + def sitesCommand = intervals ? " -L ${intervals} " : " -L ${variants} " + def reference = fasta ? " -R ${fasta}" :"" def avail_mem = 3 if (!task.memory) { @@ -35,9 +36,10 @@ process GATK4_GETPILEUPSUMMARIES { } """ gatk --java-options "-Xmx${avail_mem}g" GetPileupSummaries \\ - -I $bam \\ + -I $input \\ -V $variants \\ $sitesCommand \\ + ${reference} \\ -O ${prefix}.pileups.table \\ $args diff --git a/modules/gatk4/getpileupsummaries/meta.yml b/modules/gatk4/getpileupsummaries/meta.yml index 0add299b..ccf6446d 100644 --- a/modules/gatk4/getpileupsummaries/meta.yml +++ b/modules/gatk4/getpileupsummaries/meta.yml @@ -23,14 +23,30 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test' ] - - bam: + - input: type: file - description: BAM file to be summarised. - pattern: "*.bam" - - bai: + description: BAM/CRAM file to be summarised. + pattern: "*.{bam,cram}" + - input_index: type: file - description: BAM file index. - pattern: "*.bam.bai" + description: BAM/CRAM file index. + pattern: "*.{bai,crai}" + - intervals: + type: file + description: File containing specified sites to be used for the summary. If this option is not specified, variants file is used instead automatically. + pattern: "*.interval_list" + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" + - fai: + type: file + description: Index of reference fasta file + pattern: "*.fasta.fai" + - dict: + type: file + description: GATK sequence dictionary + pattern: "*.dict" - variants: type: file description: Population vcf of germline sequencing, containing allele fractions. Is also used as sites file if no separate sites file is specified. @@ -39,10 +55,7 @@ input: type: file description: Index file for the germline resource. pattern: "*.vcf.gz.tbi" - - sites: - type: file - description: File containing specified sites to be used for the summary. If this option is not specified, variants file is used instead automatically. - pattern: "*.interval_list" + output: - pileup: diff --git a/modules/gatk4/mutect2/main.nf b/modules/gatk4/mutect2/main.nf index 1c8c3993..a7afe86d 100644 --- a/modules/gatk4/mutect2/main.nf +++ b/modules/gatk4/mutect2/main.nf @@ -8,11 +8,10 @@ process GATK4_MUTECT2 { 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" input: - tuple val(meta) , path(input) , path(input_index) , val(which_norm) + tuple val(meta) , path(input) , path(input_index) , path(intervals), val(which_norm) val run_single val run_pon val run_mito - val interval_label path fasta path fai path dict @@ -38,6 +37,7 @@ process GATK4_MUTECT2 { def normals_command = '' def inputs_command = '-I ' + input.join( ' -I ') + def interval = intervals ? "-L ${intervals}" : "" if(run_pon) { panels_command = '' @@ -48,7 +48,7 @@ process GATK4_MUTECT2 { normals_command = '' } else if(run_mito){ - panels_command = "-L ${interval_label} --mitochondria-mode" + panels_command = "-L ${intervals} --mitochondria-mode" normals_command = '' } else { @@ -68,6 +68,7 @@ process GATK4_MUTECT2 { ${inputs_command} \\ ${normals_command} \\ ${panels_command} \\ + ${interval} \\ -O ${prefix}.vcf.gz \\ $args diff --git a/modules/gatk4/mutect2/meta.yml b/modules/gatk4/mutect2/meta.yml index 83f6cb7c..94ce72ee 100644 --- a/modules/gatk4/mutect2/meta.yml +++ b/modules/gatk4/mutect2/meta.yml @@ -30,6 +30,10 @@ input: type: list description: list of BAM file indexes, also able to take CRAM indexes as an input pattern: "*.{bam.bai/cram.crai}" + - intervals: + type: File/string + description: Specify region the tools is run on. + pattern: ".{bed,interval_list}/chrM" - which_norm: type: list description: optional list of sample headers contained in the normal sample bam files (these are required for tumor_normal_pair mode) @@ -46,10 +50,6 @@ input: type: boolean description: Specify whether or not to run in mitochondria-mode instead of tumor_normal_pair mode pattern: "true/false" - - interval_label: - type: string - description: Specify the label used for mitochondrial chromosome when mutect2 is run in mitochondria mode. - pattern: "chrM" - fasta: type: file description: The reference fasta file diff --git a/modules/strelka/germline/main.nf b/modules/strelka/germline/main.nf index 1ce0da31..3f47d86f 100644 --- a/modules/strelka/germline/main.nf +++ b/modules/strelka/germline/main.nf @@ -8,11 +8,9 @@ process STRELKA_GERMLINE { 'quay.io/biocontainers/strelka:2.9.10--0' }" input: - tuple val(meta), path(input), path(input_index) + tuple val(meta), path(input), path(input_index), path (target_bed), path (target_bed_tbi) path fasta path fai - path target_bed - path target_bed_tbi output: tuple val(meta), path("*variants.vcf.gz") , emit: vcf @@ -27,7 +25,7 @@ process STRELKA_GERMLINE { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def regions = target_bed ? "--exome --callRegions ${target_bed}" : "" + def regions = target_bed ? "--callRegions ${target_bed}" : "" """ configureStrelkaGermlineWorkflow.py \\ --bam $input \\ diff --git a/modules/strelka/somatic/main.nf b/modules/strelka/somatic/main.nf index 22cce8cb..b61c09bd 100644 --- a/modules/strelka/somatic/main.nf +++ b/modules/strelka/somatic/main.nf @@ -8,11 +8,9 @@ process STRELKA_SOMATIC { 'quay.io/biocontainers/strelka:2.9.10--h9ee0642_1' }" input: - tuple val(meta), path(input_normal), path(input_index_normal), path(input_tumor), path(input_index_tumor), path(manta_candidate_small_indels), path(manta_candidate_small_indels_tbi) + tuple val(meta), path(input_normal), path(input_index_normal), path(input_tumor), path(input_index_tumor), path(manta_candidate_small_indels), path(manta_candidate_small_indels_tbi), path(target_bed), path(target_bed_index) path fasta path fai - path target_bed - path target_bed_tbi output: tuple val(meta), path("*.somatic_indels.vcf.gz") , emit: vcf_indels @@ -27,15 +25,16 @@ process STRELKA_SOMATIC { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def options_target_bed = target_bed ? "--exome --callRegions ${target_bed}" : "" + def options_target_bed = target_bed ? "--callRegions ${target_bed}" : "" def options_manta = manta_candidate_small_indels ? "--indelCandidates ${manta_candidate_small_indels}" : "" """ + configureStrelkaSomaticWorkflow.py \\ --tumor $input_tumor \\ --normal $input_normal \\ --referenceFasta $fasta \\ - $options_target_bed \\ - $options_manta \\ + ${options_target_bed} \\ + ${options_manta} \\ $args \\ --runDir strelka diff --git a/modules/tabix/bgziptabix/main.nf b/modules/tabix/bgziptabix/main.nf index 3f42ad21..12657599 100644 --- a/modules/tabix/bgziptabix/main.nf +++ b/modules/tabix/bgziptabix/main.nf @@ -22,7 +22,7 @@ process TABIX_BGZIPTABIX { def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ - bgzip -c $args $input > ${prefix}.gz + bgzip --threads ${task.cpus} -c $args $input > ${prefix}.gz tabix $args2 ${prefix}.gz cat <<-END_VERSIONS > versions.yml diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 7d0d3efa..165e8449 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -122,6 +122,9 @@ params { genome_21_fasta_fai = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai" genome_21_dict = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.dict" genome_21_interval_list = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.interval_list" + genome_21_multi_interval_bed = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed" + genome_21_multi_interval_bed_gz = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed.gz" + genome_21_multi_interval_bed_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed.gz.tbi" dbsnp_146_hg38_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.vcf.gz" dbsnp_146_hg38_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.vcf.gz.tbi" @@ -262,6 +265,9 @@ params { test2_genome_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.gz.tbi" test2_genome_vcf_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.idx" + test_genome21_indels_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz" + test_genome21_indels_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz.tbi" + test_broadpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/broadpeak/test.broadPeak" test2_broadpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/broadpeak/test2.broadPeak" diff --git a/tests/modules/freebayes/main.nf b/tests/modules/freebayes/main.nf index f8ae0ecb..6ed708c5 100644 --- a/tests/modules/freebayes/main.nf +++ b/tests/modules/freebayes/main.nf @@ -5,91 +5,98 @@ nextflow.enable.dsl = 2 include { FREEBAYES } from '../../../modules/freebayes/main.nf' workflow test_freebayes { - + targets = [] input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), [], - [] + [], + targets ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) - targets = [] + samples = [] populations = [] cnv = [] - FREEBAYES (input, fasta, fai, targets, samples, populations, cnv) + FREEBAYES (input, fasta, fai, samples, populations, cnv) } workflow test_freebayes_bed { + targets = file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true) input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), [], - [] + [], + targets ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) - targets = file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true) + samples = [] populations = [] cnv = [] - FREEBAYES (input, fasta, fai, targets, samples, populations, cnv) + FREEBAYES (input, fasta, fai, samples, populations, cnv) } workflow test_freebayes_cram { + targets = [] input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), [], - [] + [], + targets ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - targets = [] samples = [] populations = [] cnv = [] - FREEBAYES (input, fasta, fai, targets, samples, populations, cnv) + FREEBAYES (input, fasta, fai, samples, populations, cnv) } workflow test_freebayes_somatic { + targets = [] input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true), + targets ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - targets = [] + samples = [] populations = [] cnv = [] - FREEBAYES (input, fasta, fai, targets, samples, populations, cnv) + FREEBAYES (input, fasta, fai, samples, populations, cnv) } workflow test_freebayes_somatic_cram_intervals { + targets = file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram_crai'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram_crai'], checkIfExists: true), + targets ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - targets = file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) samples = [] populations = [] cnv = [] - FREEBAYES (input, fasta, fai, targets, samples, populations, cnv) + FREEBAYES (input, fasta, fai, samples, populations, cnv) } diff --git a/tests/modules/freebayes/test.yml b/tests/modules/freebayes/test.yml index 6cca692e..c3c8e30b 100644 --- a/tests/modules/freebayes/test.yml +++ b/tests/modules/freebayes/test.yml @@ -4,7 +4,7 @@ - freebayes files: - path: output/freebayes/test.vcf.gz - md5sum: 81d3e6ce7b6343d088b779567c3803eb + md5sum: f28d0b8e2ccedeac0e590ca2ecaac83d - path: output/freebayes/versions.yml md5sum: 53651eb835af65df829241257584a7d2 @@ -14,7 +14,7 @@ - freebayes files: - path: output/freebayes/test.vcf.gz - md5sum: 02645d014a63485162a7789007373b2a + md5sum: 1927441d1b7a4c48cbb61821de300ad4 - path: output/freebayes/versions.yml md5sum: becc93c8a0be580c09d55b955d60a5e1 @@ -24,7 +24,7 @@ - freebayes files: - path: output/freebayes/test.vcf.gz - md5sum: 3d0bfcd2129c62f8863952fa4c1054db + md5sum: 9b8d1d51d779bbea4086c7f7a2ece641 - path: output/freebayes/versions.yml md5sum: 2e5b266edfc6cab81353cfc72c00f67c @@ -34,7 +34,7 @@ - freebayes files: - path: output/freebayes/test.vcf.gz - md5sum: 22fec868210ba3baf685b214bfd8e74b + md5sum: dcaa639912174055c1380913d6102c01 - path: output/freebayes/versions.yml md5sum: 8fbdb4c052fb3e42b5508a966125fa05 @@ -44,6 +44,6 @@ - freebayes files: - path: output/freebayes/test.vcf.gz - md5sum: 527cf2937067bbd4117d95fd472bb928 + md5sum: b0052a2b83c0ba1b9686d0c96e61712f - path: output/freebayes/versions.yml md5sum: af97e3dfdc086188739907c3460e49e0 diff --git a/tests/modules/gatk4/getpileupsummaries/main.nf b/tests/modules/gatk4/getpileupsummaries/main.nf index 54a9b1f5..b0de9d6e 100644 --- a/tests/modules/gatk4/getpileupsummaries/main.nf +++ b/tests/modules/gatk4/getpileupsummaries/main.nf @@ -8,24 +8,45 @@ workflow test_gatk4_getpileupsummaries_just_variants { input = [ [ id:'test' ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true) , - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true) ] + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), + [] + ] variants = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'], checkIfExists: true) variants_tbi = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz_tbi'], checkIfExists: true) - sites = [] - - GATK4_GETPILEUPSUMMARIES ( input , variants , variants_tbi , sites ) + fasta = [] + fai = [] + dict = [] + GATK4_GETPILEUPSUMMARIES ( input , fasta, fai, dict, variants , variants_tbi ) } workflow test_gatk4_getpileupsummaries_separate_sites { input = [ [ id:'test' ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true) , - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true) ] + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_interval_list'], checkIfExists: true) ] variants = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'], checkIfExists: true) variants_tbi = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz_tbi'], checkIfExists: true) - sites = file(params.test_data['homo_sapiens']['genome']['genome_21_interval_list'], checkIfExists: true) - - GATK4_GETPILEUPSUMMARIES ( input , variants , variants_tbi , sites ) + fasta = [] + fai = [] + dict = [] + GATK4_GETPILEUPSUMMARIES ( input , fasta, fai, dict, variants , variants_tbi) +} + +workflow test_gatk4_getpileupsummaries_separate_sites_cram { + + input = [ [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true) , + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_interval_list'], checkIfExists: true) + ] + + variants = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'], checkIfExists: true) + variants_tbi = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz_tbi'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) + GATK4_GETPILEUPSUMMARIES ( input , fasta, fai, dict, variants , variants_tbi) } diff --git a/tests/modules/gatk4/getpileupsummaries/test.yml b/tests/modules/gatk4/getpileupsummaries/test.yml index 65ea30e7..c032acf0 100644 --- a/tests/modules/gatk4/getpileupsummaries/test.yml +++ b/tests/modules/gatk4/getpileupsummaries/test.yml @@ -1,17 +1,32 @@ - name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_just_variants - command: nextflow run ./tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_just_variants -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/getpileupsummaries/nextflow.config + command: nextflow run tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_just_variants -c tests/config/nextflow.config tags: - - gatk4 - gatk4/getpileupsummaries + - gatk4 files: - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 + - path: output/gatk4/versions.yml + md5sum: dd98374e3b5d35ddd1c6b3fa7e662dc5 - name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_separate_sites - command: nextflow run ./tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_separate_sites -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/getpileupsummaries/nextflow.config + command: nextflow run tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_separate_sites -c tests/config/nextflow.config tags: - - gatk4 - gatk4/getpileupsummaries + - gatk4 files: - - path: output/gatk4/test.pileups.table + - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 + - path: output/gatk4/versions.yml + md5sum: 080b6af7df182558aeab117668388d59 + +- name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_separate_sites_cram + command: nextflow run tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_separate_sites_cram -c tests/config/nextflow.config + tags: + - gatk4/getpileupsummaries + - gatk4 + files: + - path: output/gatk4/test.pileups.table + md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 + - path: output/gatk4/versions.yml + md5sum: 33458a9efa6d61c713af9f7b722d7134 diff --git a/tests/modules/gatk4/mutect2/main.nf b/tests/modules/gatk4/mutect2/main.nf index 94cf0416..19b22914 100644 --- a/tests/modules/gatk4/mutect2/main.nf +++ b/tests/modules/gatk4/mutect2/main.nf @@ -12,12 +12,12 @@ workflow test_gatk4_mutect2_tumor_normal_pair { [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true) ], + [], ["normal"] ] run_single = false run_pon = false run_mito = false - interval_label = [] fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) @@ -26,19 +26,19 @@ workflow test_gatk4_mutect2_tumor_normal_pair { panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, interval_label, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } workflow test_gatk4_mutect2_tumor_single { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true)], [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true)], + [], [] ] run_single = true run_pon = false run_mito = false - interval_label = [] fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) @@ -47,19 +47,19 @@ workflow test_gatk4_mutect2_tumor_single { panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, interval_label, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } workflow test_gatk4_mutect2_cram_input { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true)], [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true)], + [], [] ] run_single = true run_pon = false run_mito = false - interval_label = [] fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) @@ -68,19 +68,19 @@ workflow test_gatk4_mutect2_cram_input { panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, interval_label, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } workflow test_gatk4_mutect2_generate_pon { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true)], [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true)], + [], [] ] run_single = false run_pon = true run_mito = false - interval_label = [] fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) @@ -89,7 +89,7 @@ workflow test_gatk4_mutect2_generate_pon { panel_of_normals = [] panel_of_normals_tbi = [] - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, interval_label, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } // mitochondria mode would ideally have some mitochondria test data, but since the mitochondria settings only increase detection sensitivity, we can use the chr22 data as a stand in as it is already a small dataset, the extra variants detected compared to generate_pon shows the mode is working. @@ -97,12 +97,12 @@ workflow test_gatk4_mutect2_mitochondria { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['mitochon_standin_recalibrated_sorted_bam'], checkIfExists: true)], [ file(params.test_data['homo_sapiens']['illumina']['mitochon_standin_recalibrated_sorted_bam_bai'], checkIfExists: true)], + [ file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)], [] ] run_single = false run_pon = false run_mito = true - interval_label = 'chr22' fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) @@ -111,5 +111,5 @@ workflow test_gatk4_mutect2_mitochondria { panel_of_normals = [] panel_of_normals_tbi = [] - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, interval_label, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } diff --git a/tests/modules/gatk4/mutect2/nextflow.config b/tests/modules/gatk4/mutect2/nextflow.config index 0966fc15..8730f1c4 100644 --- a/tests/modules/gatk4/mutect2/nextflow.config +++ b/tests/modules/gatk4/mutect2/nextflow.config @@ -2,8 +2,4 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: GATK4_TEMPFIX_MUTECT2 { - ext.args = '--mitochondria-mode' - } - } diff --git a/tests/modules/strelka/germline/main.nf b/tests/modules/strelka/germline/main.nf index c50d76e1..312a4f72 100644 --- a/tests/modules/strelka/germline/main.nf +++ b/tests/modules/strelka/germline/main.nf @@ -9,28 +9,29 @@ workflow test_strelka_germline { [ id:'test'], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + [], + [] ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - target_bed = [] - target_bed_tbi = [] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) - STRELKA_GERMLINE ( input, fasta, fai, target_bed, target_bed_tbi ) + STRELKA_GERMLINE ( input, fasta, fai) } workflow test_strelka_germline_target_bed { + input = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz_tbi'], checkIfExists: true) ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - target_bed = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true) - target_bed_tbi = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) - STRELKA_GERMLINE ( input, fasta, fai, target_bed, target_bed_tbi ) + STRELKA_GERMLINE ( input, fasta, fai) } diff --git a/tests/modules/strelka/germline/nextflow.config b/tests/modules/strelka/germline/nextflow.config index 8730f1c4..5983e1b8 100644 --- a/tests/modules/strelka/germline/nextflow.config +++ b/tests/modules/strelka/germline/nextflow.config @@ -1,5 +1,7 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - + withName: STRELKA_GERMLINE { + ext.args = '--exome' + } } diff --git a/tests/modules/strelka/somatic/main.nf b/tests/modules/strelka/somatic/main.nf index b1d4efeb..ab75f0e2 100644 --- a/tests/modules/strelka/somatic/main.nf +++ b/tests/modules/strelka/somatic/main.nf @@ -12,18 +12,19 @@ workflow test_strelka_somatic { file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), - [],[] + [],[], + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz_tbi'], checkIfExists: true) ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true) - bed_tbi = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) - STRELKA_SOMATIC (input, fasta, fai, bed, bed_tbi ) + STRELKA_SOMATIC (input, fasta, fai ) } -workflow test_strelka__best_practices_somatic { +workflow test_strelka_best_practices_somatic { + input = [ [ id:'test', single_end:false ], // meta map @@ -31,14 +32,14 @@ workflow test_strelka__best_practices_somatic { file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test_genome21_indels_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome21_indels_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz_tbi'], checkIfExists: true) ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true) - bed_tbi = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) - STRELKA_SOMATIC ( input, fasta, fai, bed, bed_tbi ) + STRELKA_SOMATIC ( input, fasta, fai ) } diff --git a/tests/modules/strelka/somatic/nextflow.config b/tests/modules/strelka/somatic/nextflow.config index 8730f1c4..5676ba15 100644 --- a/tests/modules/strelka/somatic/nextflow.config +++ b/tests/modules/strelka/somatic/nextflow.config @@ -1,5 +1,7 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - + withName: STRELKA_SOMATIC { + ext.args = '--exome' + } } diff --git a/tests/modules/strelka/somatic/test.yml b/tests/modules/strelka/somatic/test.yml index a56f955a..787f3b19 100644 --- a/tests/modules/strelka/somatic/test.yml +++ b/tests/modules/strelka/somatic/test.yml @@ -6,20 +6,16 @@ files: - path: output/strelka/test.somatic_indels.vcf.gz - path: output/strelka/test.somatic_indels.vcf.gz.tbi - md5sum: 4cb176febbc8c26d717a6c6e67b9c905 - path: output/strelka/test.somatic_snvs.vcf.gz - path: output/strelka/test.somatic_snvs.vcf.gz.tbi - md5sum: 4cb176febbc8c26d717a6c6e67b9c905 -- name: strelka somatic test_strelka__best_practices_somatic - command: nextflow run ./tests/modules/strelka/somatic -entry test_strelka__best_practices_somatic -c ./tests/config/nextflow.config -c ./tests/modules/strelka/somatic/nextflow.config +- name: strelka somatic test_strelka_best_practices_somatic + command: nextflow run ./tests/modules/strelka/somatic -entry test_strelka_best_practices_somatic -c ./tests/config/nextflow.config -c ./tests/modules/strelka/somatic/nextflow.config tags: - strelka - strelka/somatic files: - path: output/strelka/test.somatic_indels.vcf.gz - path: output/strelka/test.somatic_indels.vcf.gz.tbi - md5sum: 4cb176febbc8c26d717a6c6e67b9c905 - path: output/strelka/test.somatic_snvs.vcf.gz - path: output/strelka/test.somatic_snvs.vcf.gz.tbi - md5sum: 4cb176febbc8c26d717a6c6e67b9c905 From d0240fee1ed2784cb55efc9a26afe1d0a8a6b8ed Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Thu, 10 Feb 2022 10:37:31 +0100 Subject: [PATCH 014/592] update manta to enable jointcalling (#1218) * update manta to enable jointcalling * fix lint errors * fix error * update comment * remove comment * suggestions from code review * add stub --- modules/manta/germline/main.nf | 31 +++++++++++---- modules/manta/germline/meta.yml | 9 +++-- tests/modules/manta/germline/main.nf | 41 ++++++++++++++------ tests/modules/manta/germline/nextflow.config | 4 ++ tests/modules/manta/germline/test.yml | 12 ++++++ 5 files changed, 74 insertions(+), 23 deletions(-) diff --git a/modules/manta/germline/main.nf b/modules/manta/germline/main.nf index fab789ec..664085c5 100644 --- a/modules/manta/germline/main.nf +++ b/modules/manta/germline/main.nf @@ -8,11 +8,11 @@ process MANTA_GERMLINE { 'quay.io/biocontainers/manta:1.6.0--h9ee0642_1' }" input: - tuple val(meta), path(input), path(input_index) + tuple val(meta), path(input), path(index) path fasta - path fai - path target_bed - path target_bed_tbi + path fasta_fai + tuple path(target_bed), path(target_bed_tbi) + output: tuple val(meta), path("*candidate_small_indels.vcf.gz") , emit: candidate_small_indels_vcf @@ -29,13 +29,14 @@ process MANTA_GERMLINE { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def options_manta = target_bed ? "--exome --callRegions $target_bed" : "" + def options_manta = target_bed ? "--callRegions $target_bed" : "" """ configManta.py \ - --bam $input \ + --bam ${input.join(' --bam ')} \ --reference $fasta \ + --runDir manta \ $options_manta \ - --runDir manta + $args python manta/runWorkflow.py -m local -j $task.cpus @@ -57,4 +58,20 @@ process MANTA_GERMLINE { manta: \$( configManta.py --version ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.candidate_small_indels.vcf.gz + touch ${prefix}.candidate_small_indels.vcf.gz.tbi + touch ${prefix}.candidate_sv.vcf.gz + touch ${prefix}.candidate_sv.vcf.gz.tbi + touch ${prefix}.diploid_sv.vcf.gz + touch ${prefix}.diploid_sv.vcf.gz.tbi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + manta: \$( configManta.py --version ) + END_VERSIONS + """ } diff --git a/modules/manta/germline/meta.yml b/modules/manta/germline/meta.yml index 3bdb8264..b74a9693 100644 --- a/modules/manta/germline/meta.yml +++ b/modules/manta/germline/meta.yml @@ -25,17 +25,17 @@ input: e.g. [ id:'test', single_end:false ] - input: type: file - description: BAM/CRAM/SAM file + description: BAM/CRAM/SAM file. For joint calling use a list of files. pattern: "*.{bam,cram,sam}" - - input_index: + - index: type: file - description: BAM/CRAM/SAM index file + description: BAM/CRAM/SAM index file. For joint calling use a list of files. pattern: "*.{bai,crai,sai}" - fasta: type: file description: Genome reference FASTA file pattern: "*.{fa,fasta}" - - fai: + - fasta_fai: type: file description: Genome reference FASTA index file pattern: "*.{fa.fai,fasta.fai}" @@ -85,3 +85,4 @@ output: authors: - "@maxulysse" + - "@ramprasadn" diff --git a/tests/modules/manta/germline/main.nf b/tests/modules/manta/germline/main.nf index f8adedb0..bad62629 100644 --- a/tests/modules/manta/germline/main.nf +++ b/tests/modules/manta/germline/main.nf @@ -7,29 +7,46 @@ include { MANTA_GERMLINE } from '../../../../modules/manta/germline/main.nf' workflow test_manta_germline { input = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)], + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)] ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = [] - bed_tbi = [] + bed = [[],[]] - MANTA_GERMLINE ( input, fasta, fai, bed, bed_tbi ) + MANTA_GERMLINE ( input, fasta, fai, bed ) } workflow test_manta_germline_target_bed { input = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)], + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)] ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true) - bed_tbi = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) + bed = [ + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true), + ] - MANTA_GERMLINE ( input, fasta, fai, bed, bed_tbi ) + MANTA_GERMLINE ( input, fasta, fai, bed ) +} + +workflow test_manta_germline_target_bed_jointcalling { + input = [ + [ id:'test'], // meta map + [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram'], checkIfExists: true)], + [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram_crai'], checkIfExists: true),] + ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + bed = [ + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true), + ] + + MANTA_GERMLINE ( input, fasta, fai, bed ) } diff --git a/tests/modules/manta/germline/nextflow.config b/tests/modules/manta/germline/nextflow.config index 8730f1c4..c82e3c5c 100644 --- a/tests/modules/manta/germline/nextflow.config +++ b/tests/modules/manta/germline/nextflow.config @@ -2,4 +2,8 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: MANTA_GERMLINE { + ext.args = '--exome ' + } + } diff --git a/tests/modules/manta/germline/test.yml b/tests/modules/manta/germline/test.yml index c6ead9eb..7ded24ad 100644 --- a/tests/modules/manta/germline/test.yml +++ b/tests/modules/manta/germline/test.yml @@ -22,3 +22,15 @@ - path: output/manta/test.candidate_sv.vcf.gz.tbi - path: output/manta/test.diploid_sv.vcf.gz - path: output/manta/test.diploid_sv.vcf.gz.tbi +- name: manta germline target bed jointcalling + command: nextflow run ./tests/modules/manta/germline -entry test_manta_germline_target_bed_jointcalling -c ./tests/config/nextflow.config -c ./tests/modules/manta/germline/nextflow.config + tags: + - manta + - manta/germline + files: + - path: output/manta/test.candidate_small_indels.vcf.gz + - path: output/manta/test.candidate_small_indels.vcf.gz.tbi + - path: output/manta/test.candidate_sv.vcf.gz + - path: output/manta/test.candidate_sv.vcf.gz.tbi + - path: output/manta/test.diploid_sv.vcf.gz + - path: output/manta/test.diploid_sv.vcf.gz.tbi From a9050b8ab66a88f2c63ffcacf5c1881ac795b8b4 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 10 Feb 2022 13:14:44 +0100 Subject: [PATCH 015/592] Fix test data paths for hmmer/hmmalign (#1272) * fix: remove left-over unnecessary code * Update main.nf --- tests/modules/hmmer/hmmalign/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/hmmer/hmmalign/main.nf b/tests/modules/hmmer/hmmalign/main.nf index 3bf6d452..8758b124 100644 --- a/tests/modules/hmmer/hmmalign/main.nf +++ b/tests/modules/hmmer/hmmalign/main.nf @@ -8,10 +8,10 @@ workflow test_hmmer_hmmalign { input = [ [ id:'test' ], // meta map - file('https://raw.githubusercontent.com/erikrikarddaniel/test-datasets/modules/data/delete_me/e_coli_k12_16s.fna') // Change to params.test_data syntax after the data is included in tests/config/test_data.config + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/e_coli_k12_16s.fna') // Change to params.test_data syntax after the data is included in tests/config/test_data.config ] - hmm = file('https://raw.githubusercontent.com/erikrikarddaniel/test-datasets/modules/data/delete_me/bac.16S_rRNA.hmm') + hmm = file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/bac.16S_rRNA.hmm') HMMER_HMMALIGN ( input, hmm ) } From d1f33be04f5d3e402398707037f56f13166df4fe Mon Sep 17 00:00:00 2001 From: Jose Espinosa-Carrasco Date: Fri, 11 Feb 2022 09:44:13 +0100 Subject: [PATCH 016/592] Bump multiqc version 1.12 (#1282) --- modules/multiqc/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/multiqc/main.nf b/modules/multiqc/main.nf index 0ff7cac1..1264aac1 100644 --- a/modules/multiqc/main.nf +++ b/modules/multiqc/main.nf @@ -1,10 +1,10 @@ process MULTIQC { label 'process_medium' - conda (params.enable_conda ? 'bioconda::multiqc=1.11' : null) + conda (params.enable_conda ? 'bioconda::multiqc=1.12' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.11--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.11--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.12--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.12--pyhdfd78af_0' }" input: path multiqc_files From fafae110686b9b2b5cea86b1d6682110105de0b1 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Fri, 11 Feb 2022 16:07:52 +0100 Subject: [PATCH 017/592] feat: nicer syntax (#1286) * feat: nicer syntax * feat: code polishing * feat: code polishing --- modules/manta/germline/main.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/manta/germline/main.nf b/modules/manta/germline/main.nf index 664085c5..5ddba51b 100644 --- a/modules/manta/germline/main.nf +++ b/modules/manta/germline/main.nf @@ -29,10 +29,11 @@ process MANTA_GERMLINE { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def input_files = input.collect{"--bam ${it}"}.join(' ') def options_manta = target_bed ? "--callRegions $target_bed" : "" """ configManta.py \ - --bam ${input.join(' --bam ')} \ + ${input_files} \ --reference $fasta \ --runDir manta \ $options_manta \ From 78e2e76b240ae206e661413b5b6ee7632aaeef33 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 11 Feb 2022 15:56:13 +0000 Subject: [PATCH 018/592] New module: ichorCNA (#1182) * hmmcopy/mapCounter * update test * Remove bam tag * Remove /tmp/ path from test.yml * Update modules/hmmcopy/mapcounter/meta.yml Incorporate formatting changes Co-authored-by: James A. Fellows Yates * Update modules/hmmcopy/mapcounter/meta.yml Co-authored-by: James A. Fellows Yates * Update tests/modules/hmmcopy/mapcounter/main.nf Co-authored-by: James A. Fellows Yates * ichorCNA run * Add panel of normals code * Try and fix tests * Edit string detection in tests * Fix linting issues * Just failing END_VERSIONS * Fixed versions.yml * Added DOI * Optional name for file * Add when command * Updated when * Update modules/ichorcna/createpon/main.nf Co-authored-by: Simon Pearce Co-authored-by: James A. Fellows Yates Co-authored-by: FriederikeHanssen --- modules/ichorcna/createpon/main.nf | 48 +++++++++++++ modules/ichorcna/createpon/meta.yml | 57 +++++++++++++++ modules/ichorcna/run/main.nf | 50 +++++++++++++ modules/ichorcna/run/meta.yml | 72 +++++++++++++++++++ tests/config/pytest_modules.yml | 8 +++ tests/modules/ichorcna/createpon/main.nf | 30 ++++++++ .../ichorcna/createpon/nextflow.config | 5 ++ tests/modules/ichorcna/createpon/test.yml | 21 ++++++ tests/modules/ichorcna/run/main.nf | 40 +++++++++++ tests/modules/ichorcna/run/nextflow.config | 5 ++ tests/modules/ichorcna/run/test.yml | 25 +++++++ 11 files changed, 361 insertions(+) create mode 100644 modules/ichorcna/createpon/main.nf create mode 100644 modules/ichorcna/createpon/meta.yml create mode 100644 modules/ichorcna/run/main.nf create mode 100644 modules/ichorcna/run/meta.yml create mode 100644 tests/modules/ichorcna/createpon/main.nf create mode 100644 tests/modules/ichorcna/createpon/nextflow.config create mode 100644 tests/modules/ichorcna/createpon/test.yml create mode 100644 tests/modules/ichorcna/run/main.nf create mode 100644 tests/modules/ichorcna/run/nextflow.config create mode 100644 tests/modules/ichorcna/run/test.yml diff --git a/modules/ichorcna/createpon/main.nf b/modules/ichorcna/createpon/main.nf new file mode 100644 index 00000000..6b249b32 --- /dev/null +++ b/modules/ichorcna/createpon/main.nf @@ -0,0 +1,48 @@ +def VERSION = '0.3.2' // Version information not provided by tool on CLI + +process ICHORCNA_CREATEPON { + label 'process_low' + + conda (params.enable_conda ? "bioconda::r-ichorcna=0.3.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/r-ichorcna:0.3.2--r41hdfd78af_0' : + 'quay.io/biocontainers/r-ichorcna:0.3.2--r41hdfd78af_0' }" + + input: + path wigs + path gc_wig + path map_wig + path centromere + + output: + path "*.rds" , emit: rds + path "*.txt" , emit: txt + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def centro = centromere ? "--centromere ${centromere}" : '' + def prefix = task.ext.prefix ?: "PoN" + + """ + echo ${wigs} | tr " " "\\n" > wig_files.txt + + createPanelOfNormals.R \\ + --filelist wig_files.txt \\ + --gcWig ${gc_wig} \\ + --mapWig ${map_wig} \\ + ${centro} \\ + ${args} \\ + --outfile ${prefix} + + rm wig_files.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ichorcna: $VERSION + END_VERSIONS + """ +} diff --git a/modules/ichorcna/createpon/meta.yml b/modules/ichorcna/createpon/meta.yml new file mode 100644 index 00000000..ce1eca0a --- /dev/null +++ b/modules/ichorcna/createpon/meta.yml @@ -0,0 +1,57 @@ +name: ichorcna_createpon +description: ichorCNA is an R package for calculating copy number alteration from (low-pass) whole genome sequencing, particularly for use in cell-free DNA. This module generates a panel of normals +keywords: + - ichorcna + - cnv + - cna + - cfDNA + - wgs + - panel_of_normals +tools: + - ichorcna: + description: Estimating tumor fraction in cell-free DNA from ultra-low-pass whole genome sequencing. + homepage: https://github.com/broadinstitute/ichorCNA + documentation: https://github.com/broadinstitute/ichorCNA/wiki + tool_dev_url: https://github.com/broadinstitute/ichorCNA + doi: "10.1038/s41467-017-00965-y" + licence: ['GPL v3'] + +input: + - wigs: + type: file + description: Any number of hmmcopy/readCounter processed .wig files giving the number of reads in the sample, in each genomic window. These will be averaged over to generate the panel of normals. + pattern: "*.{wig}" + + - gc_wig: + type: file + description: hmmcopy/gcCounter processed .wig file giving the gc content in the reference fasta, in each genomic window + pattern: "*.{wig}" + + - map_wig: + type: file + description: hmmcopy/mapCounter processed .wig file giving the mapability in the reference fasta, in each genomic window + pattern: "*.{wig}" + + - centromere: + type: file + description: Text file giving centromere locations of each genome, to exclude these windows + pattern: "*.{txt}" + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + + - rds: + type: file + description: R data file (.rds) containing panel of normals data, medians of each bin. + pattern: "*.rds" + + - txt: + type: file + description: Text file containing panel of normals data, medians of each bin. + pattern: "*.txt" + +authors: + - "@sppearce" diff --git a/modules/ichorcna/run/main.nf b/modules/ichorcna/run/main.nf new file mode 100644 index 00000000..cc72adc9 --- /dev/null +++ b/modules/ichorcna/run/main.nf @@ -0,0 +1,50 @@ +def VERSION = '0.3.2' // Version information not provided by tool on CLI + +process ICHORCNA_RUN { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::r-ichorcna=0.3.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/r-ichorcna:0.3.2--r41hdfd78af_0' : + 'quay.io/biocontainers/r-ichorcna:0.3.2--r41hdfd78af_0' }" + + input: + tuple val(meta), path(wig) + path gc_wig + path map_wig + path panel_of_normals + path centromere + + output: + tuple val(meta), path("*.cna.seg") , emit: cna_seg + tuple val(meta), path("*.params.txt") , emit: ichorcna_params + path "**/*genomeWide.pdf" , emit: genome_plot + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def pon = panel_of_normals ? "--normalPanel ${panel_of_normals}" : '' + def centro = centromere ? "--centromere ${centromere}" : '' + + """ + runIchorCNA.R --id ${prefix} \\ + $args \\ + --WIG ${wig} \\ + --id ${meta.id} \\ + --gcWig ${gc_wig} \\ + --mapWig ${map_wig} \\ + ${pon} \\ + ${centro} \\ + --outDir . + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ichorcna: $VERSION + END_VERSIONS + """ +} diff --git a/modules/ichorcna/run/meta.yml b/modules/ichorcna/run/meta.yml new file mode 100644 index 00000000..f0febddf --- /dev/null +++ b/modules/ichorcna/run/meta.yml @@ -0,0 +1,72 @@ +name: ichorcna_run +description: ichorCNA is an R package for calculating copy number alteration from (low-pass) whole genome sequencing, particularly for use in cell-free DNA +keywords: + - ichorcna + - cnv + - cna + - cfDNA + - wgs +tools: + - ichorcna: + description: Estimating tumor fraction in cell-free DNA from ultra-low-pass whole genome sequencing. + homepage: https://github.com/broadinstitute/ichorCNA + documentation: https://github.com/broadinstitute/ichorCNA/wiki + tool_dev_url: https://github.com/broadinstitute/ichorCNA + doi: "10.1038/s41467-017-00965-y" + licence: ['GPL v3'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - wig: + type: file + description: hmmcopy/readCounter processed .wig file giving the number of reads in the sample, in each genomic window + pattern: "*.{wig}" + + - gc_wig: + type: file + description: hmmcopy/gcCounter processed .wig file giving the gc content in the reference fasta, in each genomic window + pattern: "*.{wig}" + + - map_wig: + type: file + description: hmmcopy/mapCounter processed .wig file giving the mapability in the reference fasta, in each genomic window + pattern: "*.{wig}" + + - panel_of_normals: + type: file + description: Panel of normals data, generated by calling ichorCNA on a set of normal samples with the same window size etc. + pattern: "*.{rds}" + + - centromere: + type: file + description: Text file giving centromere locations of each genome, to exclude these windows + pattern: "*.{txt}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - cna_seg: + type: file + description: Predicted copy number variation per segment + pattern: "*.{cng.seg}" + - ichorcna_params: + type: file + description: A text file showing the values that ichorCNA has estimated for tumour fraction, ploidy etc + pattern: "*.{params.txt}" + - genome_plot: + type: file + description: A plot with the best-fit genome-wide CNV data + pattern: "*.{genomeWide.pdf}" +authors: + - "@sppearce" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 3dcdcfd7..ac82bd39 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -755,6 +755,14 @@ homer/makeucscfile: - modules/homer/makeucscfile/** - tests/modules/homer/makeucscfile/** +ichorcna/createpon: + - modules/ichorcna/createpon/** + - tests/modules/ichorcna/createpon/** + +ichorcna/run: + - modules/ichorcna/run/** + - tests/modules/ichorcna/run/** + idr: - modules/idr/** - tests/modules/idr/** diff --git a/tests/modules/ichorcna/createpon/main.nf b/tests/modules/ichorcna/createpon/main.nf new file mode 100644 index 00000000..0e86fb92 --- /dev/null +++ b/tests/modules/ichorcna/createpon/main.nf @@ -0,0 +1,30 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ICHORCNA_CREATEPON } from '../../../../modules/ichorcna/createpon/main.nf' + +workflow test_ichorcna_createpon { + + input = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/MBC_315.ctDNA.reads.wig", checkIfExists: true) + + gcwig = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/gc_hg19_1000kb.wig", checkIfExists: true) + mapwig = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/map_hg19_1000kb.wig", checkIfExists: true) + + centromere = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/GRCh37.p13_centromere_UCSC-gapTable.txt", checkIfExists: true) + + ICHORCNA_CREATEPON ( input, gcwig, mapwig, centromere ) +} + +workflow test_ichorcna_createpon2 { + + input = [file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/MBC_315.ctDNA.reads.wig", checkIfExists: true), + file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/MBC_315_T2.ctDNA.reads.wig", checkIfExists: true)] + + gcwig = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/gc_hg19_1000kb.wig", checkIfExists: true) + mapwig = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/map_hg19_1000kb.wig", checkIfExists: true) + + centromere = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/GRCh37.p13_centromere_UCSC-gapTable.txt", checkIfExists: true) + + ICHORCNA_CREATEPON ( input, gcwig, mapwig, centromere ) +} diff --git a/tests/modules/ichorcna/createpon/nextflow.config b/tests/modules/ichorcna/createpon/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/ichorcna/createpon/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/ichorcna/createpon/test.yml b/tests/modules/ichorcna/createpon/test.yml new file mode 100644 index 00000000..53422b78 --- /dev/null +++ b/tests/modules/ichorcna/createpon/test.yml @@ -0,0 +1,21 @@ +- name: ichorcna createpon test_ichorcna_createpon + command: nextflow run tests/modules/ichorcna/createpon -entry test_ichorcna_createpon -c tests/config/nextflow.config + tags: + - ichorcna/createpon + - ichorcna + files: + - path: output/ichorcna/PoN_median.txt + contains: ['seqnames'] + - path: output/ichorcna/versions.yml + md5sum: 59a2121301113cc013bfae65935e07f1 + +- name: ichorcna createpon test_ichorcna_createpon2 + command: nextflow run tests/modules/ichorcna/createpon -entry test_ichorcna_createpon2 -c tests/config/nextflow.config + tags: + - ichorcna/createpon + - ichorcna + files: + - path: output/ichorcna/PoN_median.txt + contains: ['seqnames'] + - path: output/ichorcna/versions.yml + md5sum: 31a5fcc0075dbe747f7736efbdb99644 diff --git a/tests/modules/ichorcna/run/main.nf b/tests/modules/ichorcna/run/main.nf new file mode 100644 index 00000000..8a830f62 --- /dev/null +++ b/tests/modules/ichorcna/run/main.nf @@ -0,0 +1,40 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ICHORCNA_RUN } from '../../../../modules/ichorcna/run/main.nf' +include { HMMCOPY_READCOUNTER } from '../../../../modules/hmmcopy/readcounter/main.nf' +include { HMMCOPY_GCCOUNTER } from '../../../../modules/hmmcopy/gccounter/main.nf' +include { HMMCOPY_MAPCOUNTER } from '../../../../modules/hmmcopy/mapcounter/main.nf' +include { HMMCOPY_GENERATEMAP } from '../../../../modules/hmmcopy/generatemap/main.nf' + +workflow test_ichorcna_run_no_panel { + + input = [ [ id:'test'], // meta map + file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/MBC_315.ctDNA.reads.wig", checkIfExists: true) + ] + + gcwig = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/gc_hg19_1000kb.wig", checkIfExists: true) + mapwig = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/map_hg19_1000kb.wig", checkIfExists: true) + + panel_of_normals = [] + centromere = [] + + ICHORCNA_RUN ( input, gcwig, mapwig, panel_of_normals, centromere) +} + +workflow test_ichorcna_run_inc_panel { + + input = [ [ id:'test'], // meta map + file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/MBC_315.ctDNA.reads.wig", checkIfExists: true) + ] + + gcwig = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/gc_hg19_1000kb.wig", checkIfExists: true) + mapwig = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/map_hg19_1000kb.wig", checkIfExists: true) + + panel_of_normals = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/HD_ULP_PoN_1Mb_median_normAutosome_mapScoreFiltered_median.rds", checkIfExists: true) + + centromere = file("https://raw.githubusercontent.com/broadinstitute/ichorCNA/master/inst/extdata/GRCh37.p13_centromere_UCSC-gapTable.txt", checkIfExists: true) + + ICHORCNA_RUN ( input, gcwig, mapwig, panel_of_normals, centromere) +} diff --git a/tests/modules/ichorcna/run/nextflow.config b/tests/modules/ichorcna/run/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/ichorcna/run/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/ichorcna/run/test.yml b/tests/modules/ichorcna/run/test.yml new file mode 100644 index 00000000..af78e4b3 --- /dev/null +++ b/tests/modules/ichorcna/run/test.yml @@ -0,0 +1,25 @@ +- name: ichorcna run test_ichorcna_run_no_panel + command: nextflow run tests/modules/ichorcna/run -entry test_ichorcna_run_no_panel -c tests/config/nextflow.config + tags: + - ichorcna + - ichorcna/run + files: + - path: output/ichorcna/test.cna.seg + contains: ['Corrected_Copy_Number'] + - path: output/ichorcna/test.params.txt + md5sum: e39a579cdcc9576679f06dc5c22605a7 + - path: output/ichorcna/versions.yml + md5sum: effb37e19bec3609417aaccad4b6a294 + +- name: ichorcna run test_ichorcna_run_inc_panel + command: nextflow run tests/modules/ichorcna/run -entry test_ichorcna_run_inc_panel -c tests/config/nextflow.config + tags: + - ichorcna + - ichorcna/run + files: + - path: output/ichorcna/test.cna.seg + contains: ['Corrected_Copy_Number'] + - path: output/ichorcna/test.params.txt + md5sum: 0b97e0269cd0b571f5a85890f6ddb181 + - path: output/ichorcna/versions.yml + md5sum: fc9d96de0a1c15cea59208305b14e535 From 6a9aa977ef30f47d9507137e900bbb34d57c79cb Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 14 Feb 2022 11:02:03 +0100 Subject: [PATCH 019/592] Minor meta.yml typo fix for `samtools fastq` (#1288) * fix: remove left-over unnecessary code * Correct typo in output meta information for fastq channel --- modules/samtools/fastq/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/samtools/fastq/meta.yml b/modules/samtools/fastq/meta.yml index 91fd476d..8ea78f47 100644 --- a/modules/samtools/fastq/meta.yml +++ b/modules/samtools/fastq/meta.yml @@ -31,7 +31,7 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - fasta: + - fastq: type: file description: compressed FASTQ file pattern: "*.fastq.gz" From 04e82ec61ab0fff88479e2ad4d54c2e2309ea463 Mon Sep 17 00:00:00 2001 From: Matthieu Muffato Date: Mon, 14 Feb 2022 16:30:48 +0000 Subject: [PATCH 020/592] First version of the biobambam/bammarkduplicates2 module (#1247) * First version of the biobambam/bammarkduplicates2 module * Fixed the path of versions.yml * Regenerated the checksums as the previous files were generated with a single core * Added the `when:` block, as per #1261 Co-authored-by: Harshil Patel Co-authored-by: Harshil Patel --- modules/biobambam/bammarkduplicates2/main.nf | 38 ++++++++++++++++ modules/biobambam/bammarkduplicates2/meta.yml | 44 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../biobambam/bammarkduplicates2/main.nf | 15 +++++++ .../bammarkduplicates2/nextflow.config | 5 +++ .../biobambam/bammarkduplicates2/test.yml | 12 +++++ 6 files changed, 118 insertions(+) create mode 100644 modules/biobambam/bammarkduplicates2/main.nf create mode 100644 modules/biobambam/bammarkduplicates2/meta.yml create mode 100644 tests/modules/biobambam/bammarkduplicates2/main.nf create mode 100644 tests/modules/biobambam/bammarkduplicates2/nextflow.config create mode 100644 tests/modules/biobambam/bammarkduplicates2/test.yml diff --git a/modules/biobambam/bammarkduplicates2/main.nf b/modules/biobambam/bammarkduplicates2/main.nf new file mode 100644 index 00000000..a93e55b5 --- /dev/null +++ b/modules/biobambam/bammarkduplicates2/main.nf @@ -0,0 +1,38 @@ +process BIOBAMBAM_BAMMARKDUPLICATES2 { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::biobambam=2.0.182" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/biobambam:2.0.182--h7d875b9_0': + 'quay.io/biocontainers/biobambam:2.0.182--h7d875b9_0' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("*.bam") , emit: bam + tuple val(meta), path("*.metrics.txt"), emit: metrics + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + bammarkduplicates2 \\ + $args \\ + I=$bam \\ + O=${prefix}.bam \\ + M=${prefix}.metrics.txt \\ + tmpfile=$prefix \\ + markthreads=$task.cpus + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bammarkduplicates2: \$(echo \$(bammarkduplicates2 --version 2>&1) | sed 's/^This is biobambam2 version //; s/..biobambam2 is .*\$//' ) + END_VERSIONS + """ +} diff --git a/modules/biobambam/bammarkduplicates2/meta.yml b/modules/biobambam/bammarkduplicates2/meta.yml new file mode 100644 index 00000000..c916517b --- /dev/null +++ b/modules/biobambam/bammarkduplicates2/meta.yml @@ -0,0 +1,44 @@ +name: biobambam_bammarkduplicates2 +description: Locate and tag duplicate reads in a BAM file +keywords: + - markduplicates + - bam + - cram +tools: + - biobambam: + description: | + biobambam is a set of tools for early stage alignment file processing. + homepage: https://gitlab.com/german.tischler/biobambam2 + documentation: https://gitlab.com/german.tischler/biobambam2/-/blob/master/README.md + doi: 10.1186/1751-0473-9-13 + licence: ['GPL v3'] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM/CRAM file + pattern: "*.{bam,cram}" +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 biobambam + pattern: "*.{metrics.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@muffato" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index ac82bd39..de061264 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -178,6 +178,10 @@ bedtools/subtract: - modules/bedtools/subtract/** - tests/modules/bedtools/subtract/** +biobambam/bammarkduplicates2: + - modules/biobambam/bammarkduplicates2/** + - tests/modules/biobambam/bammarkduplicates2/** + bismark/align: - modules/bismark/align/** - modules/bismark/genomepreparation/** diff --git a/tests/modules/biobambam/bammarkduplicates2/main.nf b/tests/modules/biobambam/bammarkduplicates2/main.nf new file mode 100644 index 00000000..aeab18b9 --- /dev/null +++ b/tests/modules/biobambam/bammarkduplicates2/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BIOBAMBAM_BAMMARKDUPLICATES2 } from '../../../../modules/biobambam/bammarkduplicates2/main.nf' + +workflow test_biobambam_bammarkduplicates2 { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + BIOBAMBAM_BAMMARKDUPLICATES2 ( input ) +} diff --git a/tests/modules/biobambam/bammarkduplicates2/nextflow.config b/tests/modules/biobambam/bammarkduplicates2/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biobambam/bammarkduplicates2/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biobambam/bammarkduplicates2/test.yml b/tests/modules/biobambam/bammarkduplicates2/test.yml new file mode 100644 index 00000000..d046dfe9 --- /dev/null +++ b/tests/modules/biobambam/bammarkduplicates2/test.yml @@ -0,0 +1,12 @@ +- name: biobambam bammarkduplicates2 test_biobambam_bammarkduplicates2 + command: nextflow run tests/modules/biobambam/bammarkduplicates2 -entry test_biobambam_bammarkduplicates2 -c tests/config/nextflow.config + tags: + - biobambam/bammarkduplicates2 + - biobambam + files: + - path: output/biobambam/test.bam + md5sum: 1cf7f957eb20b4ace9f10d0cf0a0649a + - path: output/biobambam/test.metrics.txt + md5sum: 30d6e7d90bb5df46329d4bc0144ce927 + - path: output/biobambam/versions.yml + md5sum: 0d6f3137ed4515333d73c779f2c24445 From 967fb22dedc2c8855f00e64c3d7b5814c85242a6 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Tue, 15 Feb 2022 11:29:36 +0100 Subject: [PATCH 021/592] Update versions (#1292) * Update versions * update checksums + remove variables as input for applyvqsr * sneak in removal of values and provide them via modules.config * update another checksum * more checksums * move vairable to config * remove controlfreec, wrong branch * add line break --- modules/gatk4/applybqsr/main.nf | 6 +++--- modules/gatk4/applyvqsr/main.nf | 15 +++----------- modules/gatk4/applyvqsr/meta.yml | 12 ----------- modules/gatk4/baserecalibrator/main.nf | 6 +++--- modules/gatk4/bedtointervallist/main.nf | 6 +++--- modules/gatk4/calculatecontamination/main.nf | 6 +++--- .../gatk4/createsequencedictionary/main.nf | 6 +++--- .../gatk4/createsomaticpanelofnormals/main.nf | 6 +++--- .../gatk4/estimatelibrarycomplexity/main.nf | 6 +++--- modules/gatk4/fastqtosam/main.nf | 6 +++--- modules/gatk4/filtermutectcalls/main.nf | 6 +++--- modules/gatk4/gatherbqsrreports/main.nf | 6 +++--- modules/gatk4/genomicsdbimport/main.nf | 6 +++--- modules/gatk4/genotypegvcfs/main.nf | 6 +++--- modules/gatk4/getpileupsummaries/main.nf | 6 +++--- modules/gatk4/haplotypecaller/main.nf | 6 +++--- modules/gatk4/indexfeaturefile/main.nf | 6 +++--- modules/gatk4/intervallisttools/main.nf | 6 +++--- .../gatk4/learnreadorientationmodel/main.nf | 6 +++--- modules/gatk4/markduplicates/main.nf | 6 +++--- modules/gatk4/mergebamalignment/main.nf | 6 +++--- modules/gatk4/mergevcfs/main.nf | 6 +++--- modules/gatk4/mutect2/main.nf | 6 +++--- modules/gatk4/revertsam/main.nf | 6 +++--- modules/gatk4/samtofastq/main.nf | 6 +++--- modules/gatk4/splitncigarreads/main.nf | 6 +++--- modules/gatk4/variantfiltration/main.nf | 6 +++--- modules/gatk4/variantrecalibrator/main.nf | 20 ++++--------------- modules/gatk4/variantrecalibrator/meta.yml | 20 ------------------- tests/modules/gatk4/applybqsr/test.yml | 12 +++++------ tests/modules/gatk4/applyvqsr/main.nf | 13 ++++-------- tests/modules/gatk4/applyvqsr/nextflow.config | 8 +++++++- tests/modules/gatk4/applyvqsr/test.yml | 4 ++-- .../gatk4/calculatecontamination/test.yml | 6 +++--- tests/modules/gatk4/fastqtosam/test.yml | 4 ++-- .../modules/gatk4/gatherbqsrreports/test.yml | 4 ++-- tests/modules/gatk4/genomicsdbimport/test.yml | 6 +++--- .../modules/gatk4/getpileupsummaries/test.yml | 6 +++--- tests/modules/gatk4/indexfeaturefile/test.yml | 6 +++--- tests/modules/gatk4/markduplicates/test.yml | 12 +++++------ tests/modules/gatk4/splitncigarreads/test.yml | 4 ++-- .../modules/gatk4/variantrecalibrator/main.nf | 15 ++++---------- .../gatk4/variantrecalibrator/nextflow.config | 8 +++++++- 43 files changed, 136 insertions(+), 189 deletions(-) diff --git a/modules/gatk4/applybqsr/main.nf b/modules/gatk4/applybqsr/main.nf index 672e93e0..851afc04 100644 --- a/modules/gatk4/applybqsr/main.nf +++ b/modules/gatk4/applybqsr/main.nf @@ -2,10 +2,10 @@ process GATK4_APPLYBQSR { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(bqsr_table), path(intervals) diff --git a/modules/gatk4/applyvqsr/main.nf b/modules/gatk4/applyvqsr/main.nf index 006840b3..3049aa79 100644 --- a/modules/gatk4/applyvqsr/main.nf +++ b/modules/gatk4/applyvqsr/main.nf @@ -2,19 +2,16 @@ process GATK4_APPLYVQSR { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(tbi), path(recal), path(recalidx), path(tranches) path fasta path fai path dict - val allelespecific - val truthsensitivity - val mode output: tuple val(meta), path("*.vcf.gz") , emit: vcf @@ -28,9 +25,6 @@ process GATK4_APPLYVQSR { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" refCommand = fasta ? "-R ${fasta} " : '' - alleleSpecificCommand = allelespecific ? '-AS' : '' - truthSensitivityCommand = truthsensitivity ? "--truth-sensitivity-filter-level ${truthsensitivity}" : '' - modeCommand = mode ? "--mode ${mode} " : 'SNP' def avail_mem = 3 if (!task.memory) { @@ -43,11 +37,8 @@ process GATK4_APPLYVQSR { ${refCommand} \\ -V ${vcf} \\ -O ${prefix}.vcf.gz \\ - ${alleleSpecificCommand} \\ - ${truthSensitivityCommand} \\ --tranches-file $tranches \\ --recal-file $recal \\ - ${modeCommand} \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/applyvqsr/meta.yml b/modules/gatk4/applyvqsr/meta.yml index b757f3e9..746d22ac 100644 --- a/modules/gatk4/applyvqsr/meta.yml +++ b/modules/gatk4/applyvqsr/meta.yml @@ -57,18 +57,6 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" - - allelespecific: - type: boolean - description: Whether or not to run ApplyVQSR in allele specific mode, this should be kept the same as the stage 1 VariantRecalibrator run. - pattern: "{true,false}" - - truthsensitivity: - type: double - description: Value to be used as the truth sensitivity cutoff score. - pattern: "99.0" - - mode: - type: String - description: Specifies which recalibration mode to employ, should be the same as the stage 1 VariantRecalibrator run. (SNP is default, BOTH is intended for testing only) - pattern: "{SNP,INDEL,BOTH}" output: - vcf: diff --git a/modules/gatk4/baserecalibrator/main.nf b/modules/gatk4/baserecalibrator/main.nf index 48c127f0..ecb41d9b 100644 --- a/modules/gatk4/baserecalibrator/main.nf +++ b/modules/gatk4/baserecalibrator/main.nf @@ -2,10 +2,10 @@ process GATK4_BASERECALIBRATOR { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(intervals) diff --git a/modules/gatk4/bedtointervallist/main.nf b/modules/gatk4/bedtointervallist/main.nf index 9f2b2dfe..74256dd1 100644 --- a/modules/gatk4/bedtointervallist/main.nf +++ b/modules/gatk4/bedtointervallist/main.nf @@ -2,10 +2,10 @@ process GATK4_BEDTOINTERVALLIST { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(bed) diff --git a/modules/gatk4/calculatecontamination/main.nf b/modules/gatk4/calculatecontamination/main.nf index 177f4878..298739ab 100644 --- a/modules/gatk4/calculatecontamination/main.nf +++ b/modules/gatk4/calculatecontamination/main.nf @@ -2,10 +2,10 @@ process GATK4_CALCULATECONTAMINATION { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(pileup), path(matched) diff --git a/modules/gatk4/createsequencedictionary/main.nf b/modules/gatk4/createsequencedictionary/main.nf index 714843c2..87d52a59 100644 --- a/modules/gatk4/createsequencedictionary/main.nf +++ b/modules/gatk4/createsequencedictionary/main.nf @@ -2,10 +2,10 @@ process GATK4_CREATESEQUENCEDICTIONARY { tag "$fasta" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: path fasta diff --git a/modules/gatk4/createsomaticpanelofnormals/main.nf b/modules/gatk4/createsomaticpanelofnormals/main.nf index a82c24d8..c030f4e3 100644 --- a/modules/gatk4/createsomaticpanelofnormals/main.nf +++ b/modules/gatk4/createsomaticpanelofnormals/main.nf @@ -2,10 +2,10 @@ process GATK4_CREATESOMATICPANELOFNORMALS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(genomicsdb) diff --git a/modules/gatk4/estimatelibrarycomplexity/main.nf b/modules/gatk4/estimatelibrarycomplexity/main.nf index 2894e305..ba68bf70 100644 --- a/modules/gatk4/estimatelibrarycomplexity/main.nf +++ b/modules/gatk4/estimatelibrarycomplexity/main.nf @@ -2,10 +2,10 @@ process GATK4_ESTIMATELIBRARYCOMPLEXITY { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(cram) diff --git a/modules/gatk4/fastqtosam/main.nf b/modules/gatk4/fastqtosam/main.nf index 631c0394..0c85a74f 100644 --- a/modules/gatk4/fastqtosam/main.nf +++ b/modules/gatk4/fastqtosam/main.nf @@ -2,10 +2,10 @@ process GATK4_FASTQTOSAM { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(reads) diff --git a/modules/gatk4/filtermutectcalls/main.nf b/modules/gatk4/filtermutectcalls/main.nf index a7dd9a61..77175c7d 100644 --- a/modules/gatk4/filtermutectcalls/main.nf +++ b/modules/gatk4/filtermutectcalls/main.nf @@ -2,10 +2,10 @@ process GATK4_FILTERMUTECTCALLS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(tbi), path(stats), path(orientationbias), path(segmentation), path(contaminationfile), val(contaminationest) diff --git a/modules/gatk4/gatherbqsrreports/main.nf b/modules/gatk4/gatherbqsrreports/main.nf index f8d91a92..279f1ac8 100644 --- a/modules/gatk4/gatherbqsrreports/main.nf +++ b/modules/gatk4/gatherbqsrreports/main.nf @@ -2,10 +2,10 @@ process GATK4_GATHERBQSRREPORTS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(recal_table) diff --git a/modules/gatk4/genomicsdbimport/main.nf b/modules/gatk4/genomicsdbimport/main.nf index e88471e1..d2d89ccc 100644 --- a/modules/gatk4/genomicsdbimport/main.nf +++ b/modules/gatk4/genomicsdbimport/main.nf @@ -2,10 +2,10 @@ process GATK4_GENOMICSDBIMPORT { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(tbi), path(intervalfile), val(intervalval), path(wspace) diff --git a/modules/gatk4/genotypegvcfs/main.nf b/modules/gatk4/genotypegvcfs/main.nf index c3e41229..2b0982de 100644 --- a/modules/gatk4/genotypegvcfs/main.nf +++ b/modules/gatk4/genotypegvcfs/main.nf @@ -2,10 +2,10 @@ process GATK4_GENOTYPEGVCFS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(gvcf), path(gvcf_index), path(intervals) diff --git a/modules/gatk4/getpileupsummaries/main.nf b/modules/gatk4/getpileupsummaries/main.nf index 6d98874f..5395c068 100644 --- a/modules/gatk4/getpileupsummaries/main.nf +++ b/modules/gatk4/getpileupsummaries/main.nf @@ -2,10 +2,10 @@ process GATK4_GETPILEUPSUMMARIES { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(input), path(index), path(intervals) diff --git a/modules/gatk4/haplotypecaller/main.nf b/modules/gatk4/haplotypecaller/main.nf index 6f03ffd2..33871fcf 100644 --- a/modules/gatk4/haplotypecaller/main.nf +++ b/modules/gatk4/haplotypecaller/main.nf @@ -2,10 +2,10 @@ process GATK4_HAPLOTYPECALLER { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(intervals) diff --git a/modules/gatk4/indexfeaturefile/main.nf b/modules/gatk4/indexfeaturefile/main.nf index b5add0e0..275e51f5 100644 --- a/modules/gatk4/indexfeaturefile/main.nf +++ b/modules/gatk4/indexfeaturefile/main.nf @@ -2,10 +2,10 @@ process GATK4_INDEXFEATUREFILE { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(feature_file) diff --git a/modules/gatk4/intervallisttools/main.nf b/modules/gatk4/intervallisttools/main.nf index 40c7fb19..352a3240 100644 --- a/modules/gatk4/intervallisttools/main.nf +++ b/modules/gatk4/intervallisttools/main.nf @@ -2,10 +2,10 @@ process GATK4_INTERVALLISTTOOLS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(interval_list) diff --git a/modules/gatk4/learnreadorientationmodel/main.nf b/modules/gatk4/learnreadorientationmodel/main.nf index 7d96c27e..4771a158 100644 --- a/modules/gatk4/learnreadorientationmodel/main.nf +++ b/modules/gatk4/learnreadorientationmodel/main.nf @@ -2,10 +2,10 @@ process GATK4_LEARNREADORIENTATIONMODEL { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(f1r2) diff --git a/modules/gatk4/markduplicates/main.nf b/modules/gatk4/markduplicates/main.nf index 735b093e..6b150655 100644 --- a/modules/gatk4/markduplicates/main.nf +++ b/modules/gatk4/markduplicates/main.nf @@ -2,10 +2,10 @@ process GATK4_MARKDUPLICATES { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(bams) diff --git a/modules/gatk4/mergebamalignment/main.nf b/modules/gatk4/mergebamalignment/main.nf index e636e1cd..cfeb23dd 100644 --- a/modules/gatk4/mergebamalignment/main.nf +++ b/modules/gatk4/mergebamalignment/main.nf @@ -2,10 +2,10 @@ process GATK4_MERGEBAMALIGNMENT { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(aligned), path(unmapped) diff --git a/modules/gatk4/mergevcfs/main.nf b/modules/gatk4/mergevcfs/main.nf index 3e9973e7..54e38667 100644 --- a/modules/gatk4/mergevcfs/main.nf +++ b/modules/gatk4/mergevcfs/main.nf @@ -2,10 +2,10 @@ process GATK4_MERGEVCFS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(vcfs) diff --git a/modules/gatk4/mutect2/main.nf b/modules/gatk4/mutect2/main.nf index a7afe86d..568d3393 100644 --- a/modules/gatk4/mutect2/main.nf +++ b/modules/gatk4/mutect2/main.nf @@ -2,10 +2,10 @@ process GATK4_MUTECT2 { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta) , path(input) , path(input_index) , path(intervals), val(which_norm) diff --git a/modules/gatk4/revertsam/main.nf b/modules/gatk4/revertsam/main.nf index 23f99ab4..b3bf9f95 100644 --- a/modules/gatk4/revertsam/main.nf +++ b/modules/gatk4/revertsam/main.nf @@ -2,10 +2,10 @@ process GATK4_REVERTSAM { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/gatk4/samtofastq/main.nf b/modules/gatk4/samtofastq/main.nf index 2da40b6c..53e5013f 100644 --- a/modules/gatk4/samtofastq/main.nf +++ b/modules/gatk4/samtofastq/main.nf @@ -2,10 +2,10 @@ process GATK4_SAMTOFASTQ { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/gatk4/splitncigarreads/main.nf b/modules/gatk4/splitncigarreads/main.nf index 6d0a35fd..fdd1d974 100644 --- a/modules/gatk4/splitncigarreads/main.nf +++ b/modules/gatk4/splitncigarreads/main.nf @@ -2,10 +2,10 @@ process GATK4_SPLITNCIGARREADS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/gatk4/variantfiltration/main.nf b/modules/gatk4/variantfiltration/main.nf index 3a41d20c..68f3d636 100644 --- a/modules/gatk4/variantfiltration/main.nf +++ b/modules/gatk4/variantfiltration/main.nf @@ -2,10 +2,10 @@ process GATK4_VARIANTFILTRATION { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(vcf_tbi) diff --git a/modules/gatk4/variantrecalibrator/main.nf b/modules/gatk4/variantrecalibrator/main.nf index df8a9599..31c9efbd 100644 --- a/modules/gatk4/variantrecalibrator/main.nf +++ b/modules/gatk4/variantrecalibrator/main.nf @@ -2,21 +2,17 @@ process GATK4_VARIANTRECALIBRATOR { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.4.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.4.1--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.4.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: tuple val(meta), path(vcf) , path(tbi) path fasta path fai path dict - val allelespecific tuple path(resvcfs), path(restbis), val(reslabels) - val annotation - val mode - val create_rscript output: tuple val(meta), path("*.recal") , emit: recal @@ -32,11 +28,7 @@ process GATK4_VARIANTRECALIBRATOR { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" refCommand = fasta ? "-R ${fasta} " : '' - alleleSpecificCommand = allelespecific ? '-AS' : '' resourceCommand = '--resource:' + reslabels.join( ' --resource:') - annotationCommand = '-an ' + annotation.join( ' -an ') - modeCommand = mode ? "--mode ${mode} " : 'SNP' - rscriptCommand = create_rscript ? "--rscript-file ${prefix}.plots.R" : '' def avail_mem = 3 if (!task.memory) { @@ -48,13 +40,9 @@ process GATK4_VARIANTRECALIBRATOR { gatk --java-options "-Xmx${avail_mem}g" VariantRecalibrator \\ ${refCommand} \\ -V ${vcf} \\ - ${alleleSpecificCommand} \\ - ${resourceCommand} \\ - ${annotationCommand} \\ - ${modeCommand} \\ -O ${prefix}.recal \\ --tranches-file ${prefix}.tranches \\ - ${rscriptCommand}\\ + ${resourceCommand} \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/variantrecalibrator/meta.yml b/modules/gatk4/variantrecalibrator/meta.yml index 92416a58..aac44b3a 100644 --- a/modules/gatk4/variantrecalibrator/meta.yml +++ b/modules/gatk4/variantrecalibrator/meta.yml @@ -45,10 +45,6 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" - - allelespecific: - type: boolean - description: specify whether to use allele specific annotations - pattern: "{true,false}" - resvcfs: type: list description: resource files to be used as truth, training and known sites resources, this imports the files into the module, file names are specified again in the resource_labels to be called via the command. @@ -57,22 +53,6 @@ input: type: list description: tbis for the corresponding vcfs files to be used as truth, training and known resources. pattern: '*/hapmap_3.3.hg38_chr21.vcf.gz.tbi' - - reslabels: - type: list - description: labels for the resource files to be used as truth, training and known sites resources, label should include an identifier,which kind of resource(s) it is, prior value and name of the file. - pattern: "hapmap,known=false,training=true,truth=true,prior=15.0 hapmap_3.3.hg38_chr21.vcf.gz" - - annotation: - type: list - description: specify which annotations should be used for calculations. - pattern: "['QD', 'MQ', 'FS', 'SOR']" - - mode: - type: string - description: specifies which recalibration mode to employ (SNP is default, BOTH is intended for testing only) - pattern: "{SNP,INDEL,BOTH}" - - rscript: - type: boolean - description: specify whether to generate rscript.plot output file - pattern: "{true,false}" output: - recal: type: file diff --git a/tests/modules/gatk4/applybqsr/test.yml b/tests/modules/gatk4/applybqsr/test.yml index 7449c210..4520c34b 100644 --- a/tests/modules/gatk4/applybqsr/test.yml +++ b/tests/modules/gatk4/applybqsr/test.yml @@ -5,9 +5,9 @@ - gatk4/applybqsr files: - path: output/gatk4/test.bam - md5sum: 908825edf1f229a072f91d8b753d95dd + md5sum: d088422be886dc8507ff97fcc7dd968a - path: output/gatk4/versions.yml - md5sum: b65c46529ae9658db0c596cbc26505c2 + md5sum: d5c6455d8a77aecc63f87c795fc3443e - name: gatk4 applybqsr test_gatk4_applybqsr_intervals command: nextflow run tests/modules/gatk4/applybqsr -entry test_gatk4_applybqsr_intervals -c tests/config/nextflow.config -c ./tests/modules/gatk4/applybqsr/nextflow.config @@ -16,9 +16,9 @@ - gatk4/applybqsr files: - path: output/gatk4/test.bam - md5sum: 50f8a79c7d528e02470416f81eb582bc + md5sum: 4bfa18d651abd945e240b05e70107716 - path: output/gatk4/versions.yml - md5sum: 17c8a40b3537e3400edebd1826d28385 + md5sum: cb4cb8a62e117b4adc643ae47883d53c - name: gatk4 applybqsr test_gatk4_applybqsr_cram command: nextflow run tests/modules/gatk4/applybqsr -entry test_gatk4_applybqsr_cram -c tests/config/nextflow.config -c ./tests/modules/gatk4/applybqsr/nextflow.config @@ -27,6 +27,6 @@ - gatk4/applybqsr files: - path: output/gatk4/test.cram - md5sum: cd8d4ba6181f714e74641adeb2f9aa1d + md5sum: 2e0bca197af4f043a4a85152e6edbe04 - path: output/gatk4/versions.yml - md5sum: 35218922e1929c699ea64de9f4c29fb5 + md5sum: 1efaa18be943bab4e4c54191d6eaa260 diff --git a/tests/modules/gatk4/applyvqsr/main.nf b/tests/modules/gatk4/applyvqsr/main.nf index 90a57aaa..c6e99d5c 100644 --- a/tests/modules/gatk4/applyvqsr/main.nf +++ b/tests/modules/gatk4/applyvqsr/main.nf @@ -2,7 +2,8 @@ nextflow.enable.dsl = 2 -include { GATK4_APPLYVQSR } from '../../../../modules/gatk4/applyvqsr/main.nf' +include { GATK4_APPLYVQSR as GATK4_APPLYVQSR_NO_ALLELSPECIFICITY } from '../../../../modules/gatk4/applyvqsr/main.nf' +include { GATK4_APPLYVQSR as GATK4_APPLYVQSR_WITH_ALLELSPECIFICITY} from '../../../../modules/gatk4/applyvqsr/main.nf' workflow test_gatk4_applyvqsr { input = [ [ id:'test'], // meta map @@ -15,11 +16,8 @@ workflow test_gatk4_applyvqsr { fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) - allelespecific = false - truthsensitivity = '99.0' - mode = 'SNP' - GATK4_APPLYVQSR ( input, fasta, fai, dict, allelespecific, truthsensitivity, mode ) + GATK4_APPLYVQSR_NO_ALLELSPECIFICITY ( input, fasta, fai, dict ) } workflow test_gatk4_applyvqsr_allele_specific { @@ -33,9 +31,6 @@ workflow test_gatk4_applyvqsr_allele_specific { fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) - allelespecific = true - truthsensitivity = '99.0' - mode = 'SNP' - GATK4_APPLYVQSR ( input, fasta, fai, dict, allelespecific, truthsensitivity, mode ) + GATK4_APPLYVQSR_WITH_ALLELSPECIFICITY ( input, fasta, fai, dict) } diff --git a/tests/modules/gatk4/applyvqsr/nextflow.config b/tests/modules/gatk4/applyvqsr/nextflow.config index 19934e76..bf943c23 100644 --- a/tests/modules/gatk4/applyvqsr/nextflow.config +++ b/tests/modules/gatk4/applyvqsr/nextflow.config @@ -1,5 +1,11 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: GATK4_APPLYVQSR_NO_ALLELSPECIFICITY { + ext.args = '--mode SNP --truth-sensitivity-filter-level 99.0' + } -} \ No newline at end of file + withName: GATK4_APPLYVQSR_WITH_ALLELSPECIFICITY { + ext.args = '--mode SNP --truth-sensitivity-filter-level 99.0 -AS' + } +} diff --git a/tests/modules/gatk4/applyvqsr/test.yml b/tests/modules/gatk4/applyvqsr/test.yml index b2acc6d8..7cb91c43 100644 --- a/tests/modules/gatk4/applyvqsr/test.yml +++ b/tests/modules/gatk4/applyvqsr/test.yml @@ -7,7 +7,7 @@ - path: output/gatk4/test.vcf.gz - path: output/gatk4/test.vcf.gz.tbi - path: output/gatk4/versions.yml - md5sum: 524a78cdfa56c8b09a4ff3f4cb278261 + md5sum: ce9c443375683e7f2958fe958759ad29 - name: gatk4 applyvqsr test_gatk4_applyvqsr_allele_specific command: nextflow run tests/modules/gatk4/applyvqsr -entry test_gatk4_applyvqsr_allele_specific -c tests/config/nextflow.config -c ./tests/modules/gatk4/applyvqsr/nextflow.config @@ -18,4 +18,4 @@ - path: output/gatk4/test.vcf.gz - path: output/gatk4/test.vcf.gz.tbi - path: output/gatk4/versions.yml - md5sum: 7a3c6e97628bd1f5f4e7fd429bf74a8e + md5sum: 521353d12d576de2864f1d18a3e54f14 diff --git a/tests/modules/gatk4/calculatecontamination/test.yml b/tests/modules/gatk4/calculatecontamination/test.yml index d598d1c0..4b73851d 100644 --- a/tests/modules/gatk4/calculatecontamination/test.yml +++ b/tests/modules/gatk4/calculatecontamination/test.yml @@ -7,7 +7,7 @@ - path: output/gatk4/test.contamination.table md5sum: 46c708c943b453da89a3da08acfdb2a7 - path: output/gatk4/versions.yml - md5sum: 79575dc2e6a7f0361f2d8b090c496070 + md5sum: 3da8f1c0de968886330a3f7a3a1c6616 - name: gatk4 calculatecontamination test_gatk4_calculatecontamination_matched_pair command: nextflow run tests/modules/gatk4/calculatecontamination -entry test_gatk4_calculatecontamination_matched_pair -c tests/config/nextflow.config -c ./tests/modules/gatk4/calculatecontamination/nextflow.config @@ -18,7 +18,7 @@ - path: output/gatk4/test.contamination.table md5sum: 46c708c943b453da89a3da08acfdb2a7 - path: output/gatk4/versions.yml - md5sum: 733f15ef7eb504daec9fd8cd9beef71a + md5sum: 14ab12a71b0c2b87d8cd53639a991b3a - name: gatk4 calculatecontamination test_gatk4_calculatecontamination_segmentation command: nextflow run tests/modules/gatk4/calculatecontamination -entry test_gatk4_calculatecontamination_segmentation -c tests/config/nextflow.config -c ./tests/modules/gatk4/calculatecontamination/nextflow.config @@ -31,4 +31,4 @@ - path: output/gatk4/test.segmentation.table md5sum: f4643d9319bde4efbfbe516d6fb13052 - path: output/gatk4/versions.yml - md5sum: 5396e33146addbe4a59d0f30cb573a3a + md5sum: d2e61315de31f512e448f0cb4b77db54 diff --git a/tests/modules/gatk4/fastqtosam/test.yml b/tests/modules/gatk4/fastqtosam/test.yml index 7f6357e8..07f9af15 100644 --- a/tests/modules/gatk4/fastqtosam/test.yml +++ b/tests/modules/gatk4/fastqtosam/test.yml @@ -6,7 +6,7 @@ files: - path: output/gatk4/test.bam - path: output/gatk4/versions.yml - md5sum: 03f3accdc3e3c392c1179213286a0b67 + md5sum: 381cdb2496b2fcc7bbc371a6e4156c7e - name: gatk4 fastqtosam test_gatk4_fastqtosam_paired_end command: nextflow run tests/modules/gatk4/fastqtosam -entry test_gatk4_fastqtosam_paired_end -c tests/config/nextflow.config -c ./tests/modules/gatk4/fastqtosam/nextflow.config @@ -16,4 +16,4 @@ files: - path: output/gatk4/test.bam - path: output/gatk4/versions.yml - md5sum: 144e7118d5f277ad5fba863213c810b0 + md5sum: 1d07c90cbd31992c9ba003f02d1b3502 diff --git a/tests/modules/gatk4/gatherbqsrreports/test.yml b/tests/modules/gatk4/gatherbqsrreports/test.yml index 521f2197..576889de 100644 --- a/tests/modules/gatk4/gatherbqsrreports/test.yml +++ b/tests/modules/gatk4/gatherbqsrreports/test.yml @@ -7,7 +7,7 @@ - path: output/gatk4/test.table md5sum: 9603b69fdc3b5090de2e0dd78bfcc4bf - path: output/gatk4/versions.yml - md5sum: b53101f71b0763e80855703ba4e1f101 + md5sum: 8d52c5aaab73294e9ea5491b95f3e1e1 - name: gatk4 gatherbqsrreports test_gatk4_gatherbqsrreports_multiple command: nextflow run tests/modules/gatk4/gatherbqsrreports -entry test_gatk4_gatherbqsrreports_multiple -c tests/config/nextflow.config @@ -18,4 +18,4 @@ - path: output/gatk4/test.table md5sum: 0c1257eececf95db8ca378272d0f21f9 - path: output/gatk4/versions.yml - md5sum: 584a6ebf04f54abcfcf4c8255e13ff2a + md5sum: 91cad396b9f2045c3cd8c0f256672e80 diff --git a/tests/modules/gatk4/genomicsdbimport/test.yml b/tests/modules/gatk4/genomicsdbimport/test.yml index d1a8f073..5c4ea2bb 100644 --- a/tests/modules/gatk4/genomicsdbimport/test.yml +++ b/tests/modules/gatk4/genomicsdbimport/test.yml @@ -19,7 +19,7 @@ - path: output/gatk4/test/vidmap.json md5sum: 18d3f68bd2cb6f4474990507ff95017a - path: output/gatk4/versions.yml - md5sum: 6fffaf981f099659cf820277d1f3c606 + md5sum: 91f5c3e9529982f9c819860b403576ce - name: gatk4 genomicsdbimport test_gatk4_genomicsdbimport_get_intervalslist command: nextflow run tests/modules/gatk4/genomicsdbimport -entry test_gatk4_genomicsdbimport_get_intervalslist -c tests/config/nextflow.config -c ./tests/modules/gatk4/genomicsdbimport/nextflow.config @@ -30,7 +30,7 @@ - path: output/gatk4/test.interval_list md5sum: 4c85812ac15fc1cd29711a851d23c0bf - path: output/gatk4/versions.yml - md5sum: 4a56022d6e08d54e8ba853637bf3b5f1 + md5sum: a898fe1cbc4acfa5936c0ffdcf121401 - path: output/untar/versions.yml md5sum: 8f080677b109aea2cfca50208b077534 @@ -55,6 +55,6 @@ - path: output/gatk4/test_genomicsdb/vidmap.json md5sum: 18d3f68bd2cb6f4474990507ff95017a - path: output/gatk4/versions.yml - md5sum: da6a815b7340683b1a56bdfd7e66d463 + md5sum: d87baa3f4218c5554cad3c008cb6cbc4 - path: output/untar/versions.yml md5sum: 9b2916aea9790bdf427c0cb38109110c diff --git a/tests/modules/gatk4/getpileupsummaries/test.yml b/tests/modules/gatk4/getpileupsummaries/test.yml index c032acf0..e3b25227 100644 --- a/tests/modules/gatk4/getpileupsummaries/test.yml +++ b/tests/modules/gatk4/getpileupsummaries/test.yml @@ -7,7 +7,7 @@ - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - path: output/gatk4/versions.yml - md5sum: dd98374e3b5d35ddd1c6b3fa7e662dc5 + md5sum: 059123619f3ed8d4cd178c4390b81e69 - name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_separate_sites command: nextflow run tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_separate_sites -c tests/config/nextflow.config @@ -18,7 +18,7 @@ - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - path: output/gatk4/versions.yml - md5sum: 080b6af7df182558aeab117668388d59 + md5sum: 76b5388b0c5b5762d8d33e34b23f181d - name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_separate_sites_cram command: nextflow run tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_separate_sites_cram -c tests/config/nextflow.config @@ -29,4 +29,4 @@ - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - path: output/gatk4/versions.yml - md5sum: 33458a9efa6d61c713af9f7b722d7134 + md5sum: 2fa51319c2b1d678ee00ab09512cf268 diff --git a/tests/modules/gatk4/indexfeaturefile/test.yml b/tests/modules/gatk4/indexfeaturefile/test.yml index 04c71ea2..938c2b91 100644 --- a/tests/modules/gatk4/indexfeaturefile/test.yml +++ b/tests/modules/gatk4/indexfeaturefile/test.yml @@ -15,7 +15,7 @@ - path: output/gatk4/genome.bed.gz.tbi md5sum: 4bc51e2351a6e83f20e13be75861f941 - path: output/gatk4/versions.yml - md5sum: 9eb24dc17c96971b7991b3e154279aa7 + md5sum: e5003204702f83aabdb4141272c704d2 - name: gatk4 indexfeaturefile test_gatk4_indexfeaturefile_vcf command: nextflow run tests/modules/gatk4/indexfeaturefile -entry test_gatk4_indexfeaturefile_vcf -c tests/config/nextflow.config -c ./tests/modules/gatk4/indexfeaturefile/nextflow.config @@ -25,7 +25,7 @@ files: - path: output/gatk4/test.genome.vcf.idx - path: output/gatk4/versions.yml - md5sum: f76543e715342bf1fcdeb20385e01fe9 + md5sum: 08cd7c49cfb752fc2905f600106a0345 - name: gatk4 indexfeaturefile test_gatk4_indexfeaturefile_vcf_gz command: nextflow run tests/modules/gatk4/indexfeaturefile -entry test_gatk4_indexfeaturefile_vcf_gz -c tests/config/nextflow.config @@ -36,4 +36,4 @@ - path: output/gatk4/test.genome.vcf.gz.tbi md5sum: fedd68eaddf8d31257853d9da8325bd3 - path: output/gatk4/versions.yml - md5sum: a5d988cf62648f700ffac7257e72b2c0 + md5sum: b388d1681831a40264a7a27f67a8b247 diff --git a/tests/modules/gatk4/markduplicates/test.yml b/tests/modules/gatk4/markduplicates/test.yml index 333de7c9..7bf49b56 100644 --- a/tests/modules/gatk4/markduplicates/test.yml +++ b/tests/modules/gatk4/markduplicates/test.yml @@ -5,12 +5,12 @@ - gatk4/markduplicates files: - path: output/gatk4/test.bai - md5sum: c8f7a9e426c768577f88f59cb1336bf3 + md5sum: e9c125e82553209933883b4fe2b8d7c2 - path: output/gatk4/test.bam - md5sum: fba0c99a0b087c90113a210e4465f91b + md5sum: 2efd50b2e6b7fd9bdf242cd9e266cfa9 - path: output/gatk4/test.metrics - path: output/gatk4/versions.yml - md5sum: dacbab0e112d2403b09df138d4e62895 + md5sum: 0bc949aaa8792cd6c537cdaab0e2c145 - name: gatk4 markduplicates test_gatk4_markduplicates_multiple_bams command: nextflow run tests/modules/gatk4/markduplicates -entry test_gatk4_markduplicates_multiple_bams -c tests/config/nextflow.config -c ./tests/modules/gatk4/markduplicates/nextflow.config @@ -19,9 +19,9 @@ - gatk4/markduplicates files: - path: output/gatk4/test.bai - md5sum: 325932c51f6898b02dfec469c984ba28 + md5sum: bad71df9c876e72a5bc0a3e0fd755f92 - path: output/gatk4/test.bam - md5sum: f7cba8104e3a7024a5e00c02304f7dea + md5sum: 8187febc6108ffef7f907e89b9c091a4 - path: output/gatk4/test.metrics - path: output/gatk4/versions.yml - md5sum: 14d0d085df7d2f9e770578d92c329299 + md5sum: b10d63cf7b2b672915cb30cea081ccd5 diff --git a/tests/modules/gatk4/splitncigarreads/test.yml b/tests/modules/gatk4/splitncigarreads/test.yml index a18fbb04..059d5e75 100644 --- a/tests/modules/gatk4/splitncigarreads/test.yml +++ b/tests/modules/gatk4/splitncigarreads/test.yml @@ -5,6 +5,6 @@ - gatk4/splitncigarreads files: - path: output/gatk4/test.bam - md5sum: 1d54057d9f403fba2068ac1aaa4b8a28 + md5sum: ceed15c0bd64ff5c38d3816905933b0b - path: output/gatk4/versions.yml - md5sum: f0f29af552075dc6bf8a13028e09f8e4 + md5sum: 27fceace2528a905ddca2b4db47c4bf5 diff --git a/tests/modules/gatk4/variantrecalibrator/main.nf b/tests/modules/gatk4/variantrecalibrator/main.nf index bbc1dff5..be7004e7 100644 --- a/tests/modules/gatk4/variantrecalibrator/main.nf +++ b/tests/modules/gatk4/variantrecalibrator/main.nf @@ -2,7 +2,8 @@ nextflow.enable.dsl = 2 -include { GATK4_VARIANTRECALIBRATOR } from '../../../../modules/gatk4/variantrecalibrator/main.nf' +include { GATK4_VARIANTRECALIBRATOR as GATK4_VARIANTRECALIBRATOR_NO_ALLELESPECIFICTY } from '../../../../modules/gatk4/variantrecalibrator/main.nf' +include { GATK4_VARIANTRECALIBRATOR as GATK4_VARIANTRECALIBRATOR_WITH_ALLELESPECIFICTY } from '../../../../modules/gatk4/variantrecalibrator/main.nf' workflow test_gatk4_variantrecalibrator { @@ -14,7 +15,6 @@ workflow test_gatk4_variantrecalibrator { fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) - allelespecific = false resources = [ [ file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz'], checkIfExists: true), @@ -35,11 +35,8 @@ workflow test_gatk4_variantrecalibrator { 'dbsnp,known=true,training=false,truth=false,prior=2.0 dbsnp_138.hg38.vcf.gz' ] ] - annotation = ['QD', 'MQ', 'FS', 'SOR'] - mode = 'SNP' - create_rscript = false - GATK4_VARIANTRECALIBRATOR ( input, fasta, fai, dict, allelespecific, resources, annotation, mode, create_rscript) + GATK4_VARIANTRECALIBRATOR_NO_ALLELESPECIFICTY ( input, fasta, fai, dict, resources) } workflow test_gatk4_variantrecalibrator_allele_specific { @@ -52,7 +49,6 @@ workflow test_gatk4_variantrecalibrator_allele_specific { fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) - allelespecific = true resources = [ [ file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz'], checkIfExists: true), @@ -73,9 +69,6 @@ workflow test_gatk4_variantrecalibrator_allele_specific { 'dbsnp,known=true,training=false,truth=false,prior=2.0 dbsnp_138.hg38.vcf.gz' ] ] - annotation = ['QD', 'MQ', 'FS'] - mode = 'SNP' - create_rscript = false - GATK4_VARIANTRECALIBRATOR ( input, fasta, fai, dict, allelespecific, resources, annotation, mode, create_rscript) + GATK4_VARIANTRECALIBRATOR_WITH_ALLELESPECIFICTY ( input, fasta, fai, dict, resources) } diff --git a/tests/modules/gatk4/variantrecalibrator/nextflow.config b/tests/modules/gatk4/variantrecalibrator/nextflow.config index 19934e76..69be3b9c 100644 --- a/tests/modules/gatk4/variantrecalibrator/nextflow.config +++ b/tests/modules/gatk4/variantrecalibrator/nextflow.config @@ -1,5 +1,11 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: GATK4_VARIANTRECALIBRATOR { + ext.args = '--mode SNP -an QD -an MQ -an FS -an SOR' + } -} \ No newline at end of file + withName: GATK4_VARIANTRECALIBRATOR_WITH_ALLELESPECIFICTY { + ext.args = '--mode SNP -an QD -an MQ -an FS -AS' + } +} From 12b0bc5aa9b116d9459311083a46de8f8aa98c90 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Tue, 15 Feb 2022 10:46:20 +0000 Subject: [PATCH 022/592] Bump Pangolin version to 3.1.20 (#1296) * Bump Pangolin version to 3.1.20 * Fix md5sum --- modules/pangolin/main.nf | 6 +++--- tests/modules/pangolin/test.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/pangolin/main.nf b/modules/pangolin/main.nf index 9fbc69b8..5af557ac 100644 --- a/modules/pangolin/main.nf +++ b/modules/pangolin/main.nf @@ -2,10 +2,10 @@ process PANGOLIN { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? 'bioconda::pangolin=3.1.19' : null) + conda (params.enable_conda ? 'bioconda::pangolin=3.1.20' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/pangolin:3.1.19--pyhdfd78af_0' : - 'quay.io/biocontainers/pangolin:3.1.19--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/pangolin:3.1.20--pyhdfd78af_0' : + 'quay.io/biocontainers/pangolin:3.1.20--pyhdfd78af_0' }" input: tuple val(meta), path(fasta) diff --git a/tests/modules/pangolin/test.yml b/tests/modules/pangolin/test.yml index 11f715bf..f11c5c1d 100644 --- a/tests/modules/pangolin/test.yml +++ b/tests/modules/pangolin/test.yml @@ -4,4 +4,4 @@ - pangolin files: - path: ./output/pangolin/test.pangolin.csv - md5sum: d92ede51bf3886f696f2089e86189125 + md5sum: 378f211c219bb644dea63adf7c3254fe From e745e167c1020928ef20ea1397b6b4d230681b4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20H=C3=B6rtenhuber?= Date: Tue, 15 Feb 2022 12:15:27 +0100 Subject: [PATCH 023/592] Fix formatting in yaml files, add yamllint config (#1279) * fix yml formatting * allow fastq.gz and fq.gz as file input, add meta.yml and test * fix yaml files * Revert "allow fastq.gz and fq.gz as file input, add meta.yml and test" This reverts commit 34002d7a7a8c7f7bb4600c3377f35c87849f71a4. * prettier magic! * fix comments for yamllint * remove node version number * fix linting errors Co-authored-by: Harshil Patel --- .github/workflows/code-linting.yml | 12 +- .gitpod.yml | 6 +- .markdownlint.yml | 2 +- .yamllint.yml | 5 + modules/abacas/meta.yml | 2 +- modules/adapterremoval/meta.yml | 80 ++++----- modules/agrvate/meta.yml | 2 +- modules/amps/meta.yml | 2 +- modules/arriba/meta.yml | 2 +- modules/artic/guppyplex/meta.yml | 2 +- modules/artic/minion/meta.yml | 8 +- modules/assemblyscan/meta.yml | 2 +- modules/ataqv/ataqv/meta.yml | 2 +- modules/bakta/meta.yml | 2 +- modules/bamaligncleaner/meta.yml | 2 +- modules/bamcmp/meta.yml | 9 +- modules/bamtools/convert/meta.yml | 2 +- modules/bamtools/split/meta.yml | 2 +- modules/bamutil/trimbam/meta.yml | 2 +- modules/bandage/image/meta.yml | 74 ++++---- modules/bbmap/align/meta.yml | 12 +- modules/bbmap/bbduk/meta.yml | 16 +- modules/bbmap/bbsplit/meta.yml | 2 +- modules/bbmap/index/meta.yml | 2 +- modules/bcftools/concat/meta.yml | 68 ++++---- modules/bcftools/consensus/meta.yml | 84 ++++----- modules/bcftools/filter/meta.yml | 68 ++++---- modules/bcftools/index/meta.yml | 2 +- modules/bcftools/isec/meta.yml | 84 ++++----- modules/bcftools/merge/meta.yml | 80 ++++----- modules/bcftools/mpileup/meta.yml | 100 +++++------ modules/bcftools/norm/meta.yml | 70 ++++---- modules/bcftools/query/meta.yml | 96 +++++------ modules/bcftools/reheader/meta.yml | 2 +- modules/bcftools/sort/meta.yml | 2 +- modules/bcftools/stats/meta.yml | 70 ++++---- modules/bcftools/view/meta.yml | 110 ++++++------ modules/bedtools/bamtobed/meta.yml | 62 +++---- modules/bedtools/complement/meta.yml | 72 ++++---- modules/bedtools/genomecov/meta.yml | 88 +++++----- modules/bedtools/getfasta/meta.yml | 52 +++--- modules/bedtools/intersect/meta.yml | 80 ++++----- modules/bedtools/makewindows/meta.yml | 2 +- modules/bedtools/maskfasta/meta.yml | 72 ++++---- modules/bedtools/merge/meta.yml | 64 +++---- modules/bedtools/slop/meta.yml | 64 +++---- modules/bedtools/sort/meta.yml | 72 ++++---- modules/bedtools/subtract/meta.yml | 18 +- modules/biobambam/bammarkduplicates2/meta.yml | 74 ++++---- modules/bismark/align/meta.yml | 104 +++++------ modules/bismark/deduplicate/meta.yml | 90 +++++----- modules/bismark/genomepreparation/meta.yml | 60 +++---- modules/bismark/methylationextractor/meta.yml | 120 ++++++------- modules/bismark/report/meta.yml | 106 ++++++------ modules/bismark/summary/meta.yml | 94 +++++----- modules/blast/blastn/meta.yml | 68 ++++---- modules/blast/makeblastdb/meta.yml | 48 +++--- modules/bowtie/align/meta.yml | 78 ++++----- modules/bowtie/build/meta.yml | 50 +++--- modules/bowtie2/align/meta.yml | 88 +++++----- modules/bowtie2/build/meta.yml | 52 +++--- modules/bwa/aln/meta.yml | 42 ++--- modules/bwa/index/meta.yml | 50 +++--- modules/bwa/mem/meta.yml | 86 +++++----- modules/bwa/sampe/meta.yml | 22 +-- modules/bwa/samse/meta.yml | 22 +-- modules/bwamem2/index/meta.yml | 46 ++--- modules/bwamem2/mem/meta.yml | 84 ++++----- modules/bwameth/align/meta.yml | 90 +++++----- modules/bwameth/index/meta.yml | 52 +++--- modules/cat/cat/meta.yml | 2 +- modules/cat/fastq/meta.yml | 62 +++---- modules/cellranger/count/meta.yml | 62 +++---- modules/cellranger/mkfastq/meta.yml | 46 ++--- modules/cellranger/mkgtf/meta.yml | 44 ++--- modules/cellranger/mkref/meta.yml | 58 +++---- modules/checkm/lineagewf/meta.yml | 2 +- modules/chromap/chromap/meta.yml | 28 +-- modules/chromap/index/meta.yml | 10 +- modules/clonalframeml/meta.yml | 2 +- modules/cmseq/polymut/meta.yml | 2 +- modules/cnvkit/batch/meta.yml | 14 +- modules/cooler/cload/meta.yml | 2 +- modules/cooler/digest/meta.yml | 2 +- modules/cooler/dump/meta.yml | 2 +- modules/cooler/merge/meta.yml | 2 +- modules/cooler/zoomify/meta.yml | 2 +- modules/csvtk/concat/meta.yml | 2 +- modules/csvtk/split/meta.yml | 6 +- modules/custom/dumpsoftwareversions/meta.yml | 2 +- modules/custom/getchromsizes/meta.yml | 3 +- modules/cutadapt/meta.yml | 2 +- modules/damageprofiler/meta.yml | 2 +- modules/dastool/dastool/meta.yml | 5 +- modules/dastool/scaffolds2bin/meta.yml | 2 +- modules/dedup/meta.yml | 4 +- modules/deeparg/downloaddata/meta.yml | 2 +- modules/deeparg/predict/meta.yml | 2 +- modules/deeptools/computematrix/meta.yml | 2 +- modules/deeptools/plotfingerprint/meta.yml | 2 +- modules/deeptools/plotheatmap/meta.yml | 2 +- modules/deeptools/plotprofile/meta.yml | 2 +- modules/deepvariant/meta.yml | 2 +- modules/delly/call/meta.yml | 2 +- modules/diamond/blastp/meta.yml | 34 ++-- modules/diamond/blastx/meta.yml | 44 ++--- modules/diamond/makedb/meta.yml | 2 +- modules/dragmap/align/meta.yml | 68 ++++---- modules/dragmap/hashtable/meta.yml | 44 ++--- modules/dragonflye/meta.yml | 8 +- modules/dshbio/exportsegments/meta.yml | 68 ++++---- modules/dshbio/filterbed/meta.yml | 64 +++---- modules/dshbio/filtergff3/meta.yml | 64 +++---- modules/dshbio/splitbed/meta.yml | 64 +++---- modules/dshbio/splitgff3/meta.yml | 64 +++---- modules/ectyper/meta.yml | 2 +- modules/emmtyper/meta.yml | 2 +- modules/ensemblvep/meta.yml | 114 ++++++------ modules/expansionhunter/meta.yml | 2 +- modules/fargene/meta.yml | 3 +- modules/fastani/meta.yml | 2 +- modules/fastp/meta.yml | 2 +- modules/fastqc/meta.yml | 90 +++++----- modules/fastqscan/meta.yml | 2 +- modules/fasttree/meta.yml | 2 +- .../callmolecularconsensusreads/meta.yml | 68 ++++---- modules/fgbio/fastqtobam/meta.yml | 14 +- modules/fgbio/groupreadsbyumi/meta.yml | 14 +- modules/fgbio/sortbam/meta.yml | 66 +++---- modules/filtlong/meta.yml | 2 +- modules/flash/meta.yml | 2 +- modules/freebayes/meta.yml | 10 +- modules/gatk4/applybqsr/meta.yml | 9 +- modules/gatk4/applyvqsr/meta.yml | 2 +- modules/gatk4/baserecalibrator/meta.yml | 9 +- modules/gatk4/bedtointervallist/meta.yml | 2 +- modules/gatk4/calculatecontamination/meta.yml | 2 +- .../gatk4/createsequencedictionary/meta.yml | 48 +++--- .../gatk4/estimatelibrarycomplexity/meta.yml | 2 +- modules/gatk4/fastqtosam/meta.yml | 7 +- modules/gatk4/filtermutectcalls/meta.yml | 2 +- modules/gatk4/gatherbqsrreports/meta.yml | 2 +- modules/gatk4/genotypegvcfs/meta.yml | 2 +- modules/gatk4/getpileupsummaries/meta.yml | 2 +- modules/gatk4/haplotypecaller/meta.yml | 8 +- modules/gatk4/indexfeaturefile/meta.yml | 2 +- modules/gatk4/intervallisttools/meta.yml | 2 +- .../gatk4/learnreadorientationmodel/meta.yml | 2 +- modules/gatk4/markduplicates/meta.yml | 5 +- modules/gatk4/mergebamalignment/meta.yml | 2 +- modules/gatk4/mergevcfs/meta.yml | 2 +- modules/gatk4/mutect2/meta.yml | 4 +- modules/gatk4/revertsam/meta.yml | 2 +- modules/gatk4/samtofastq/meta.yml | 2 +- modules/gatk4/splitncigarreads/meta.yml | 2 +- modules/gatk4/variantfiltration/meta.yml | 2 +- modules/gatk4/variantrecalibrator/meta.yml | 20 +++ modules/genmap/index/meta.yml | 2 +- modules/genmap/mappability/meta.yml | 2 +- modules/genrich/meta.yml | 3 +- modules/gffread/meta.yml | 8 +- modules/glnexus/meta.yml | 2 +- modules/graphmap2/align/meta.yml | 88 +++++----- modules/graphmap2/index/meta.yml | 46 ++--- modules/gstama/merge/meta.yml | 2 +- modules/gtdbtk/classifywf/meta.yml | 2 +- modules/gubbins/meta.yml | 10 +- modules/gunc/downloaddb/meta.yml | 2 +- modules/gunc/run/meta.yml | 2 +- modules/gunzip/meta.yml | 54 +++--- modules/hicap/meta.yml | 2 +- modules/hisat2/align/meta.yml | 22 +-- modules/hisat2/build/meta.yml | 12 +- modules/hisat2/extractsplicesites/meta.yml | 10 +- modules/hmmcopy/gccounter/meta.yml | 3 +- modules/hmmcopy/generatemap/meta.yml | 2 +- modules/hmmcopy/mapcounter/meta.yml | 2 +- modules/hmmcopy/readcounter/meta.yml | 2 +- modules/hmmer/hmmalign/meta.yml | 2 +- modules/homer/annotatepeaks/meta.yml | 2 +- modules/homer/findpeaks/meta.yml | 2 +- modules/homer/maketagdirectory/meta.yml | 2 +- modules/homer/makeucscfile/meta.yml | 2 +- modules/idr/meta.yml | 2 +- modules/iqtree/meta.yml | 2 +- modules/ismapper/meta.yml | 2 +- modules/isoseq3/cluster/meta.yml | 2 +- modules/isoseq3/refine/meta.yml | 2 +- modules/ivar/consensus/meta.yml | 98 +++++------ modules/ivar/trim/meta.yml | 90 +++++----- modules/ivar/variants/meta.yml | 98 +++++------ modules/kallisto/index/meta.yml | 2 +- modules/khmer/normalizebymedian/meta.yml | 2 +- modules/kleborate/meta.yml | 2 +- modules/kraken2/kraken2/meta.yml | 2 +- modules/last/dotplot/meta.yml | 2 +- modules/last/lastal/meta.yml | 2 +- modules/last/lastdb/meta.yml | 10 +- modules/last/mafconvert/meta.yml | 2 +- modules/last/mafswap/meta.yml | 2 +- modules/last/postmask/meta.yml | 2 +- modules/last/split/meta.yml | 2 +- modules/last/train/meta.yml | 2 +- modules/leehom/meta.yml | 3 +- modules/lima/meta.yml | 2 +- modules/lissero/meta.yml | 3 +- modules/lofreq/call/meta.yml | 2 +- modules/lofreq/callparallel/meta.yml | 2 +- modules/lofreq/filter/meta.yml | 2 +- modules/lofreq/indelqual/meta.yml | 2 +- modules/macrel/contigs/meta.yml | 2 +- modules/macs2/callpeak/meta.yml | 13 +- modules/malt/build/meta.yml | 2 +- modules/malt/run/meta.yml | 6 +- modules/maltextract/meta.yml | 2 +- modules/manta/germline/meta.yml | 2 +- modules/manta/somatic/meta.yml | 2 +- modules/manta/tumoronly/meta.yml | 2 +- modules/mapdamage2/meta.yml | 162 +++++++++--------- modules/mash/dist/meta.yml | 2 +- modules/mash/sketch/meta.yml | 2 +- modules/mashtree/meta.yml | 2 +- modules/maxbin2/meta.yml | 2 +- modules/medaka/meta.yml | 2 +- modules/megahit/meta.yml | 6 +- modules/meningotype/meta.yml | 2 +- .../jgisummarizebamcontigdepths/meta.yml | 2 +- modules/metabat2/metabat2/meta.yml | 7 +- modules/metaphlan3/meta.yml | 4 +- modules/methyldackel/extract/meta.yml | 102 +++++------ modules/methyldackel/mbias/meta.yml | 104 +++++------ modules/minia/meta.yml | 2 +- modules/miniasm/meta.yml | 2 +- modules/minimap2/align/meta.yml | 80 ++++----- modules/minimap2/index/meta.yml | 46 ++--- modules/mlst/meta.yml | 2 +- modules/mosdepth/meta.yml | 8 +- modules/msisensor/msi/meta.yml | 2 +- modules/msisensor/scan/meta.yml | 2 +- modules/mtnucratio/meta.yml | 2 +- modules/multiqc/meta.yml | 66 +++---- modules/mummer/meta.yml | 2 +- modules/muscle/meta.yml | 14 +- modules/nanolyse/meta.yml | 80 ++++----- modules/nanoplot/meta.yml | 104 +++++------ modules/ncbigenomedownload/meta.yml | 2 +- modules/nextclade/datasetget/meta.yml | 2 +- modules/nextclade/run/meta.yml | 2 +- modules/ngmaster/meta.yml | 2 +- modules/nucmer/meta.yml | 2 +- modules/optitype/meta.yml | 2 +- modules/pairix/meta.yml | 6 +- modules/pairtools/dedup/meta.yml | 2 +- modules/pairtools/flip/meta.yml | 2 +- modules/pairtools/parse/meta.yml | 2 +- modules/pairtools/restrict/meta.yml | 2 +- modules/pairtools/select/meta.yml | 2 +- modules/pairtools/sort/meta.yml | 2 +- modules/pangolin/meta.yml | 54 +++--- modules/paraclu/meta.yml | 2 +- modules/pbbam/pbmerge/meta.yml | 2 +- modules/pbccs/meta.yml | 2 +- modules/peddy/meta.yml | 2 +- modules/phyloflash/meta.yml | 2 +- .../picard/collectmultiplemetrics/meta.yml | 86 +++++----- modules/picard/collectwgsmetrics/meta.yml | 80 ++++----- modules/picard/filtersamreads/meta.yml | 64 +++---- modules/picard/markduplicates/meta.yml | 2 +- modules/picard/mergesamfiles/meta.yml | 68 ++++---- modules/picard/sortsam/meta.yml | 21 ++- modules/pirate/meta.yml | 2 +- modules/plasmidid/meta.yml | 2 +- modules/plink/extract/meta.yml | 2 +- modules/plink/vcf/meta.yml | 2 +- modules/plink2/extract/meta.yml | 6 +- modules/plink2/vcf/meta.yml | 6 +- modules/pmdtools/filter/meta.yml | 2 +- modules/preseq/lcextrap/meta.yml | 2 +- modules/prokka/meta.yml | 2 +- modules/pycoqc/meta.yml | 2 +- modules/pydamage/analyze/meta.yml | 2 +- modules/pydamage/filter/meta.yml | 2 +- modules/qcat/meta.yml | 62 +++---- modules/qualimap/bamqc/meta.yml | 86 +++++----- modules/quast/meta.yml | 2 +- modules/racon/meta.yml | 2 +- modules/rapidnj/meta.yml | 2 +- modules/rasusa/meta.yml | 14 +- modules/raven/meta.yml | 2 +- modules/raxmlng/meta.yml | 2 +- modules/roary/meta.yml | 2 +- modules/rsem/calculateexpression/meta.yml | 2 +- modules/rsem/preparereference/meta.yml | 2 +- modules/rseqc/bamstat/meta.yml | 2 +- modules/rseqc/inferexperiment/meta.yml | 2 +- modules/rseqc/innerdistance/meta.yml | 2 +- modules/rseqc/junctionannotation/meta.yml | 2 +- modules/rseqc/junctionsaturation/meta.yml | 2 +- modules/rseqc/readdistribution/meta.yml | 2 +- modules/rseqc/readduplication/meta.yml | 2 +- modules/rseqc/tin/meta.yml | 2 +- modules/salmon/index/meta.yml | 2 +- modules/salmon/quant/meta.yml | 2 +- modules/samblaster/meta.yml | 18 +- modules/samtools/ampliconclip/meta.yml | 18 +- modules/samtools/bam2fq/meta.yml | 6 +- modules/samtools/depth/meta.yml | 2 +- modules/samtools/faidx/meta.yml | 72 ++++---- modules/samtools/fastq/meta.yml | 70 ++++---- modules/samtools/fixmate/meta.yml | 34 ++-- modules/samtools/flagstat/meta.yml | 84 ++++----- modules/samtools/idxstats/meta.yml | 86 +++++----- modules/samtools/index/meta.yml | 92 +++++----- modules/samtools/merge/meta.yml | 94 +++++----- modules/samtools/mpileup/meta.yml | 84 ++++----- modules/samtools/sort/meta.yml | 74 ++++---- modules/samtools/stats/meta.yml | 92 +++++----- modules/samtools/view/meta.yml | 92 +++++----- modules/scoary/meta.yml | 2 +- modules/seacr/callpeak/meta.yml | 93 +++++----- modules/seqkit/split2/meta.yml | 64 +++---- modules/seqsero2/meta.yml | 2 +- modules/seqtk/mergepe/meta.yml | 4 +- modules/seqtk/sample/meta.yml | 2 +- modules/seqtk/subseq/meta.yml | 2 +- modules/sequenzautils/bam2seqz/meta.yml | 2 +- modules/sequenzautils/gcwiggle/meta.yml | 2 +- modules/seqwish/induce/meta.yml | 78 ++++----- modules/snpdists/meta.yml | 2 +- modules/snpeff/meta.yml | 100 +++++------ modules/snpsift/split/meta.yml | 2 +- modules/snpsites/meta.yml | 2 +- modules/spades/meta.yml | 5 +- modules/spatyper/meta.yml | 2 +- modules/sratools/fasterqdump/meta.yml | 2 +- modules/sratools/prefetch/meta.yml | 2 +- modules/staphopiasccmec/meta.yml | 2 +- modules/star/align/meta.yml | 2 +- modules/star/genomegenerate/meta.yml | 2 +- modules/strelka/germline/meta.yml | 2 +- modules/strelka/somatic/meta.yml | 2 +- modules/stringtie/merge/meta.yml | 58 +++---- modules/stringtie/stringtie/meta.yml | 98 +++++------ modules/subread/featurecounts/meta.yml | 18 +- modules/svdb/merge/meta.yml | 2 +- modules/svdb/query/meta.yml | 4 +- modules/tabix/bgzip/meta.yml | 68 ++++---- modules/tabix/bgziptabix/meta.yml | 76 ++++---- modules/tabix/tabix/meta.yml | 68 ++++---- modules/tbprofiler/profile/meta.yml | 2 +- modules/tiddit/sv/meta.yml | 88 +++++----- modules/transdecoder/longorf/meta.yml | 2 +- modules/transdecoder/predict/meta.yml | 2 +- modules/trimgalore/meta.yml | 104 +++++------ modules/ucsc/bedclip/meta.yml | 2 +- modules/ucsc/bigwigaverageoverbed/meta.yml | 2 +- modules/ucsc/liftover/meta.yml | 2 +- modules/ucsc/wigtobigwig/meta.yml | 2 +- modules/ultra/pipeline/meta.yml | 2 +- modules/umitools/dedup/meta.yml | 78 ++++----- modules/umitools/extract/meta.yml | 77 +++++---- modules/unicycler/meta.yml | 16 +- modules/untar/meta.yml | 42 ++--- modules/unzip/meta.yml | 4 +- modules/variantbam/meta.yml | 2 +- modules/vcflib/vcfuniq/meta.yml | 2 +- modules/vcftools/meta.yml | 2 +- modules/yara/index/meta.yml | 5 +- modules/yara/mapper/meta.yml | 5 +- subworkflows/nf-core/align_bowtie2/meta.yml | 14 +- .../nf-core/annotation_ensemblvep/meta.yml | 4 +- .../nf-core/annotation_snpeff/meta.yml | 4 +- .../nf-core/bam_sort_samtools/meta.yml | 10 +- .../nf-core/bam_stats_samtools/meta.yml | 10 +- .../fgbio_create_umi_consensus/meta.yml | 10 +- .../nf-core/gatk_create_som_pon/meta.yml | 4 +- .../meta.yml | 4 +- .../meta.yml | 4 +- subworkflows/nf-core/sra_fastq/meta.yml | 2 +- tests/modules/artic/minion/test.yml | 2 +- tests/modules/ataqv/ataqv/test.yml | 18 +- tests/modules/bbmap/bbsplit/test.yml | 6 +- tests/modules/bwameth/align/test.yml | 1 - tests/modules/checkm/lineagewf/test.yml | 1 - tests/modules/chromap/index/test.yml | 2 - tests/modules/dastool/dastool/test.yml | 4 +- tests/modules/deeptools/plotheatmap/test.yml | 1 - tests/modules/diamond/blastp/test.yml | 8 +- tests/modules/diamond/blastx/test.yml | 8 +- tests/modules/dragmap/hashtable/test.yml | 26 +-- tests/modules/ectyper/test.yml | 2 +- .../gatk4/calculatecontamination/test.yml | 14 +- tests/modules/gatk4/genotypegvcfs/test.yml | 45 ++++- .../modules/gatk4/getpileupsummaries/test.yml | 10 +- .../modules/gatk4/variantfiltration/test.yml | 10 +- tests/modules/imputeme/vcftoprs/test.yml | 2 +- tests/modules/iqtree/test.yml | 8 +- tests/modules/isoseq3/cluster/test.yml | 2 +- tests/modules/isoseq3/refine/test.yml | 2 +- .../modules/khmer/normalizebymedian/test.yml | 8 +- tests/modules/kleborate/test.yml | 2 +- tests/modules/lima/test.yml | 4 +- tests/modules/lissero/test.yml | 2 +- tests/modules/lofreq/call/test.yml | 5 +- tests/modules/lofreq/callparallel/test.yml | 5 +- tests/modules/malt/run/test.yml | 1 - tests/modules/medaka/test.yml | 2 +- tests/modules/metaphlan3/test.yml | 8 +- tests/modules/minimap2/align/test.yml | 2 +- tests/modules/nanoplot/test.yml | 1 - tests/modules/nucmer/test.yml | 4 +- tests/modules/optitype/test.yml | 2 +- tests/modules/pbccs/test.yml | 4 +- tests/modules/picard/filtersamreads/test.yml | 1 - tests/modules/picard/markduplicates/test.yml | 1 - tests/modules/pirate/test.yml | 58 +++---- tests/modules/qcat/test.yml | 2 +- tests/modules/raxmlng/test.yml | 24 +-- tests/modules/roary/test.yml | 27 +-- tests/modules/seacr/callpeak/test.yml | 2 +- tests/modules/seqsero2/test.yml | 4 +- tests/modules/snpsites/test.yml | 2 +- tests/modules/tbprofiler/profile/test.yml | 4 +- .../nf-core/gatk_create_som_pon/test.yml | 2 +- .../test.yml | 2 +- .../test.yml | 2 +- 426 files changed, 4713 insertions(+), 4665 deletions(-) create mode 100644 .yamllint.yml diff --git a/.github/workflows/code-linting.yml b/.github/workflows/code-linting.yml index d15c4af6..145dd5d9 100644 --- a/.github/workflows/code-linting.yml +++ b/.github/workflows/code-linting.yml @@ -12,9 +12,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: "10" + - uses: actions/setup-node@v2 - name: Install markdownlint run: npm install -g markdownlint-cli @@ -27,9 +25,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: "10" + - uses: actions/setup-node@v2 - name: Install editorconfig-checker run: npm install -g editorconfig-checker @@ -44,9 +40,7 @@ jobs: uses: actions/checkout@v2 - name: Install NodeJS - uses: actions/setup-node@v1 - with: - node-version: "10" + uses: actions/setup-node@v2 - name: Install yaml-lint run: npm install -g yaml-lint diff --git a/.gitpod.yml b/.gitpod.yml index 289c86e5..25078360 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,14 +1,14 @@ image: nfcore/gitpod:latest vscode: - extensions: # based on nf-core.nf-core-extensionpack + extensions: # based on nf-core.nf-core-extensionpack - codezombiech.gitignore # Language support for .gitignore files - # - cssho.vscode-svgviewer # SVG viewer + # - cssho.vscode-svgviewer # SVG viewer - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - mechatroner.rainbow-csv # Highlight columns in csv files in different colors - # - nextflow.nextflow # Nextflow syntax highlighting + # - nextflow.nextflow # Nextflow syntax highlighting - oderwat.indent-rainbow # Highlight indentation level - streetsidesoftware.code-spell-checker # Spelling checker for source code diff --git a/.markdownlint.yml b/.markdownlint.yml index 9b72da3c..7890d0f2 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -8,4 +8,4 @@ header-increment: false no-duplicate-header: siblings_only: true ul-indent: - indent: 4 + indent: 4 diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 00000000..6889fa34 --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,5 @@ +extends: default + +rules: + document-start: disable + line-length: disable diff --git a/modules/abacas/meta.yml b/modules/abacas/meta.yml index 039fb0be..c685e650 100644 --- a/modules/abacas/meta.yml +++ b/modules/abacas/meta.yml @@ -14,7 +14,7 @@ tools: documentation: http://abacas.sourceforge.net/documentation.html tool_dev_url: None doi: "10.1093/bioinformatics/btp347" - licence: ['GPL v2-or-later'] + licence: ["GPL v2-or-later"] input: - meta: diff --git a/modules/adapterremoval/meta.yml b/modules/adapterremoval/meta.yml index 05386fd8..4923fa42 100644 --- a/modules/adapterremoval/meta.yml +++ b/modules/adapterremoval/meta.yml @@ -1,50 +1,50 @@ name: adapterremoval description: Trim sequencing adapters and collapse overlapping reads keywords: - - trimming - - adapters - - merging - - fastq + - trimming + - adapters + - merging + - fastq tools: - - adapterremoval: - description: The AdapterRemoval v2 tool for merging and clipping reads. - homepage: https://github.com/MikkelSchubert/adapterremoval - documentation: https://adapterremoval.readthedocs.io - licence: ['GPL v3'] + - adapterremoval: + description: The AdapterRemoval v2 tool for merging and clipping reads. + homepage: https://github.com/MikkelSchubert/adapterremoval + documentation: https://adapterremoval.readthedocs.io + licence: ["GPL v3"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false, collapse:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - pattern: "*.{fq,fastq,fg.gz,fastq.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false, collapse:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + pattern: "*.{fq,fastq,fg.gz,fastq.gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input adapter trimmed FastQ files of size 1 or 2 for - single-end or collapsed data and paired-end data, respectively. - pattern: "*.{fastq.gz}" - - log: - type: file - description: AdapterRemoval log file - pattern: "*.log" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input adapter trimmed FastQ files of size 1 or 2 for + single-end or collapsed data and paired-end data, respectively. + pattern: "*.{fastq.gz}" + - log: + type: file + description: AdapterRemoval log file + pattern: "*.log" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@maxibor" + - "@maxibor" diff --git a/modules/agrvate/meta.yml b/modules/agrvate/meta.yml index a8ab5816..bcaa6c0b 100644 --- a/modules/agrvate/meta.yml +++ b/modules/agrvate/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/VishnuRaghuram94/AgrVATE tool_dev_url: https://github.com/VishnuRaghuram94/AgrVATE doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/amps/meta.yml b/modules/amps/meta.yml index 43d68599..34f825af 100644 --- a/modules/amps/meta.yml +++ b/modules/amps/meta.yml @@ -24,7 +24,7 @@ tools: documentation: "https://github.com/keyfm/amps" tool_dev_url: "https://github.com/keyfm/amps" doi: "10.1186/s13059-019-1903-0" - licence: ['GPL >=3'] + licence: ["GPL >=3"] input: - maltextract_results: diff --git a/modules/arriba/meta.yml b/modules/arriba/meta.yml index 6ca16dab..4bde2f08 100644 --- a/modules/arriba/meta.yml +++ b/modules/arriba/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://arriba.readthedocs.io/en/latest/ tool_dev_url: https://github.com/suhrig/arriba doi: "10.1101/gr.257246.119" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/artic/guppyplex/meta.yml b/modules/artic/guppyplex/meta.yml index 5056f908..fe288289 100644 --- a/modules/artic/guppyplex/meta.yml +++ b/modules/artic/guppyplex/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://artic.readthedocs.io/en/latest/ tool_dev_url: https://github.com/artic-network/fieldbioinformatics doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/artic/minion/meta.yml b/modules/artic/minion/meta.yml index 464e1dc7..5ef55673 100644 --- a/modules/artic/minion/meta.yml +++ b/modules/artic/minion/meta.yml @@ -1,6 +1,6 @@ name: artic_minion description: | - Run the alignment/variant-call/consensus logic of the artic pipeline + Run the alignment/variant-call/consensus logic of the artic pipeline keywords: - artic - aggregate @@ -12,7 +12,7 @@ tools: documentation: https://artic.readthedocs.io/en/latest/ tool_dev_url: https://github.com/artic-network/fieldbioinformatics doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map @@ -21,11 +21,11 @@ input: e.g. [ id:'test', single_end:false ] - fastq: type: file - description: FastQ file containing reads + description: FastQ file containing reads pattern: "*.{fastq.gz}" - fast5_dir: type: directory - description: Directory containing MinION FAST5 files + description: Directory containing MinION FAST5 files pattern: "*" - sequencing_summary: type: file diff --git a/modules/assemblyscan/meta.yml b/modules/assemblyscan/meta.yml index 40ea98b9..7b0b67fa 100644 --- a/modules/assemblyscan/meta.yml +++ b/modules/assemblyscan/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/rpetit3/assembly-scan tool_dev_url: https://github.com/rpetit3/assembly-scan doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/ataqv/ataqv/meta.yml b/modules/ataqv/ataqv/meta.yml index 760bf95f..a25272da 100644 --- a/modules/ataqv/ataqv/meta.yml +++ b/modules/ataqv/ataqv/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://github.com/ParkerLab/ataqv/blob/master/README.rst tool_dev_url: https://github.com/ParkerLab/ataqv doi: "https://doi.org/10.1016/j.cels.2020.02.009" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/bakta/meta.yml b/modules/bakta/meta.yml index 29e6edbe..b2bbbf7a 100644 --- a/modules/bakta/meta.yml +++ b/modules/bakta/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/oschwengers/bakta tool_dev_url: https://github.com/oschwengers/bakta doi: "10.1099/mgen.0.000685" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/bamaligncleaner/meta.yml b/modules/bamaligncleaner/meta.yml index d1e171f7..f248c1ad 100644 --- a/modules/bamaligncleaner/meta.yml +++ b/modules/bamaligncleaner/meta.yml @@ -8,7 +8,7 @@ tools: homepage: https://github.com/maxibor/bamAlignCleaner documentation: https://github.com/maxibor/bamAlignCleaner tool_dev_url: https://github.com/maxibor/bamAlignCleaner - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/bamcmp/meta.yml b/modules/bamcmp/meta.yml index 480d8609..36a5ff1b 100644 --- a/modules/bamcmp/meta.yml +++ b/modules/bamcmp/meta.yml @@ -10,14 +10,15 @@ keywords: tools: - bamcmp: - description: Bamcmp is a tool for deconvolving host and graft reads, using two bam files. Reads should be mapped to two genomes, and the mapped, - sorted bam files supplied to the tool. It is highly recommended to use the "-s as" option not the "-s mapq" option, else - reads which multimap to the contamination genome will be spuriously kept. + description: + Bamcmp is a tool for deconvolving host and graft reads, using two bam files. Reads should be mapped to two genomes, and the mapped, + sorted bam files supplied to the tool. It is highly recommended to use the "-s as" option not the "-s mapq" option, else + reads which multimap to the contamination genome will be spuriously kept. homepage: https://github.com/CRUKMI-ComputationalBiology/bamcmp documentation: https://github.com/CRUKMI-ComputationalBiology/bamcmp tool_dev_url: https://github.com/CRUKMI-ComputationalBiology/bamcmp doi: "10.1158/1541-7786.MCR-16-0431" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/bamtools/convert/meta.yml b/modules/bamtools/convert/meta.yml index acc7e4df..5796a4ab 100644 --- a/modules/bamtools/convert/meta.yml +++ b/modules/bamtools/convert/meta.yml @@ -19,7 +19,7 @@ tools: documentation: https://github.com/pezmaster31/bamtools/wiki tool_dev_url: http://github.com/pezmaster31/bamtools doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/bamtools/split/meta.yml b/modules/bamtools/split/meta.yml index b9b52f59..0e848212 100644 --- a/modules/bamtools/split/meta.yml +++ b/modules/bamtools/split/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://github.com/pezmaster31/bamtools/wiki tool_dev_url: http://github.com/pezmaster31/bamtools doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/bamutil/trimbam/meta.yml b/modules/bamutil/trimbam/meta.yml index a91ba0e1..29f8c951 100644 --- a/modules/bamutil/trimbam/meta.yml +++ b/modules/bamutil/trimbam/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://genome.sph.umich.edu/wiki/BamUtil:_trimBam tool_dev_url: https://github.com/statgen/bamUtil doi: "10.1101/gr.176552.114" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/bandage/image/meta.yml b/modules/bandage/image/meta.yml index 1c2b9840..1e824c4f 100644 --- a/modules/bandage/image/meta.yml +++ b/modules/bandage/image/meta.yml @@ -1,44 +1,44 @@ name: bandage_image description: Render an assembly graph in GFA 1.0 format to PNG and SVG image formats keywords: - - gfa - - graph - - assembly - - visualisation + - gfa + - graph + - assembly + - visualisation tools: - - bandage: - description: | - Bandage - a Bioinformatics Application for Navigating De novo Assembly Graphs Easily - homepage: https://github.com/rrwick/Bandage - documentation: https://github.com/rrwick/Bandage - licence: ['GPL-3.0-or-later'] + - bandage: + description: | + Bandage - a Bioinformatics Application for Navigating De novo Assembly Graphs Easily + homepage: https://github.com/rrwick/Bandage + documentation: https://github.com/rrwick/Bandage + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - gfa: - type: file - description: Assembly graph in GFA 1.0 format - pattern: "*.gfa" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - gfa: + type: file + description: Assembly graph in GFA 1.0 format + pattern: "*.gfa" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - png: - type: file - description: Bandage image in PNG format - pattern: "*.png" - - svg: - type: file - description: Bandage image in SVG format - pattern: "*.svg" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - png: + type: file + description: Bandage image in PNG format + pattern: "*.png" + - svg: + type: file + description: Bandage image in SVG format + pattern: "*.svg" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@heuermh" + - "@heuermh" diff --git a/modules/bbmap/align/meta.yml b/modules/bbmap/align/meta.yml index fe4d4334..a4682aee 100644 --- a/modules/bbmap/align/meta.yml +++ b/modules/bbmap/align/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/ tool_dev_url: None doi: "" - licence: ['UC-LBL license (see package)'] + licence: ["UC-LBL license (see package)"] input: - meta: @@ -24,14 +24,14 @@ input: - fastq: type: file description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. - ref: type: file description: | - Either "ref" a directory containing an index, the name of another directory - with a "ref" subdirectory containing an index or the name of a fasta formatted - nucleotide file containg the reference to map to. + Either "ref" a directory containing an index, the name of another directory + with a "ref" subdirectory containing an index or the name of a fasta formatted + nucleotide file containg the reference to map to. output: - meta: diff --git a/modules/bbmap/bbduk/meta.yml b/modules/bbmap/bbduk/meta.yml index 50ab6ed4..6abd3d97 100644 --- a/modules/bbmap/bbduk/meta.yml +++ b/modules/bbmap/bbduk/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/ tool_dev_url: None doi: "" - licence: ['UC-LBL license (see package)'] + licence: ["UC-LBL license (see package)"] input: - meta: @@ -20,14 +20,14 @@ input: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. - contaminants: - type: file - description: | - Reference files containing adapter and/or contaminant sequences for sequence kmer matching + type: file + description: | + Reference files containing adapter and/or contaminant sequences for sequence kmer matching output: - meta: diff --git a/modules/bbmap/bbsplit/meta.yml b/modules/bbmap/bbsplit/meta.yml index 2e3d07c0..9d9f10da 100644 --- a/modules/bbmap/bbsplit/meta.yml +++ b/modules/bbmap/bbsplit/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/ tool_dev_url: None doi: "" - licence: ['UC-LBL license (see package)'] + licence: ["UC-LBL license (see package)"] input: - meta: diff --git a/modules/bbmap/index/meta.yml b/modules/bbmap/index/meta.yml index 0b3e5778..e8b455ed 100644 --- a/modules/bbmap/index/meta.yml +++ b/modules/bbmap/index/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/ tool_dev_url: None doi: "" - licence: ['UC-LBL license (see package)'] + licence: ["UC-LBL license (see package)"] input: - fasta: diff --git a/modules/bcftools/concat/meta.yml b/modules/bcftools/concat/meta.yml index b2848595..3984276f 100644 --- a/modules/bcftools/concat/meta.yml +++ b/modules/bcftools/concat/meta.yml @@ -1,43 +1,43 @@ name: bcftools_concat description: Concatenate VCF files keywords: - - variant calling - - concat - - bcftools - - VCF + - variant calling + - concat + - bcftools + - VCF tools: - - concat: - description: | - Concatenate VCF files. - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - concat: + description: | + Concatenate VCF files. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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 ] - - vcfs: - type: files - description: | - List containing 2 or more vcf files - e.g. [ 'file1.vcf', 'file2.vcf' ] + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcfs: + type: files + description: | + List containing 2 or more vcf files + e.g. [ 'file1.vcf', 'file2.vcf' ] output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - vcf: - type: file - description: VCF concatenated output file - pattern: "*.{vcf.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF concatenated output file + pattern: "*.{vcf.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@abhi18av" diff --git a/modules/bcftools/consensus/meta.yml b/modules/bcftools/consensus/meta.yml index 761115a6..05a93a56 100644 --- a/modules/bcftools/consensus/meta.yml +++ b/modules/bcftools/consensus/meta.yml @@ -1,49 +1,49 @@ name: bcftools_consensus description: Compresses VCF files keywords: - - variant calling - - consensus - - VCF + - variant calling + - consensus + - VCF tools: - - consensus: - description: | - Create consensus sequence by applying VCF variants to a reference fasta file. - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - consensus: + description: | + Create consensus sequence by applying VCF variants to a reference fasta file. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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 ] - - vcf: - type: file - description: VCF file - pattern: "*.{vcf}" - - tbi: - type: file - description: tabix index file - pattern: "*.{tbi}" - - fasta: - type: file - description: FASTA reference file - pattern: "*.{fasta,fa}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF file + pattern: "*.{vcf}" + - tbi: + type: file + description: tabix index file + pattern: "*.{tbi}" + - fasta: + type: file + description: FASTA reference file + pattern: "*.{fasta,fa}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: FASTA reference consensus file - pattern: "*.{fasta,fa}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: FASTA reference consensus file + pattern: "*.{fasta,fa}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bcftools/filter/meta.yml b/modules/bcftools/filter/meta.yml index 72d28bf0..05a6d828 100644 --- a/modules/bcftools/filter/meta.yml +++ b/modules/bcftools/filter/meta.yml @@ -1,41 +1,41 @@ name: bcftools_filter description: Filters VCF files keywords: - - variant calling - - filtering - - VCF + - variant calling + - filtering + - VCF tools: - - filter: - description: | - Apply fixed-threshold filters to VCF files. - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - filter: + description: | + Apply fixed-threshold filters to VCF files. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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 ] - - vcf: - type: file - description: VCF input file - pattern: "*.{vcf}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF input file + pattern: "*.{vcf}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - vcf: - type: file - description: VCF filtered output file - pattern: "*.{vcf}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF filtered output file + pattern: "*.{vcf}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bcftools/index/meta.yml b/modules/bcftools/index/meta.yml index 0d5dd3ef..b883fa5f 100644 --- a/modules/bcftools/index/meta.yml +++ b/modules/bcftools/index/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://samtools.github.io/bcftools/howtos/index.html tool_dev_url: https://github.com/samtools/bcftools doi: "10.1093/gigascience/giab008" - licence: ['MIT', 'GPL-3.0-or-later'] + licence: ["MIT", "GPL-3.0-or-later"] input: - meta: diff --git a/modules/bcftools/isec/meta.yml b/modules/bcftools/isec/meta.yml index d0be6dce..d9554bcc 100644 --- a/modules/bcftools/isec/meta.yml +++ b/modules/bcftools/isec/meta.yml @@ -1,49 +1,49 @@ name: bcftools_isec description: Apply set operations to VCF files keywords: - - variant calling - - intersect - - union - - complement - - VCF + - variant calling + - intersect + - union + - complement + - VCF tools: - - isec: - description: | - Computes intersections, unions and complements of VCF files. - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - isec: + description: | + Computes intersections, unions and complements of VCF files. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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 ] - - vcfs: - type: files - description: | - List containing 2 or more vcf files - e.g. [ 'file1.vcf', 'file2.vcf' ] - - tbis: - type: files - description: | - List containing the tbi index files corresponding to the vcfs input files - e.g. [ 'file1.vcf.tbi', 'file2.vcf.tbi' ] + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcfs: + type: files + description: | + List containing 2 or more vcf files + e.g. [ 'file1.vcf', 'file2.vcf' ] + - tbis: + type: files + description: | + List containing the tbi index files corresponding to the vcfs input files + e.g. [ 'file1.vcf.tbi', 'file2.vcf.tbi' ] output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - results: - type: directory - description: Folder containing the set operations results perform on the vcf files - pattern: "${prefix}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - results: + type: directory + description: Folder containing the set operations results perform on the vcf files + pattern: "${prefix}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bcftools/merge/meta.yml b/modules/bcftools/merge/meta.yml index c7e3a280..4223fd54 100644 --- a/modules/bcftools/merge/meta.yml +++ b/modules/bcftools/merge/meta.yml @@ -1,47 +1,47 @@ name: bcftools_merge description: Merge VCF files keywords: - - variant calling - - merge - - VCF + - variant calling + - merge + - VCF tools: - - merge: - description: | - Merge VCF files. - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - merge: + description: | + Merge VCF files. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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 ] - - vcfs: - type: files - description: | - List containing 2 or more vcf files - e.g. [ 'file1.vcf', 'file2.vcf' ] - - tbis: - type: files - description: | - List containing the tbi index files corresponding to the vcfs input files - e.g. [ 'file1.vcf.tbi', 'file2.vcf.tbi' ] + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcfs: + type: files + description: | + List containing 2 or more vcf files + e.g. [ 'file1.vcf', 'file2.vcf' ] + - tbis: + type: files + description: | + List containing the tbi index files corresponding to the vcfs input files + e.g. [ 'file1.vcf.tbi', 'file2.vcf.tbi' ] output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - vcf: - type: file - description: VCF merged output file - pattern: "*.{vcf.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF merged output file + pattern: "*.{vcf.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bcftools/mpileup/meta.yml b/modules/bcftools/mpileup/meta.yml index 483d0e71..d10dac14 100644 --- a/modules/bcftools/mpileup/meta.yml +++ b/modules/bcftools/mpileup/meta.yml @@ -1,57 +1,57 @@ name: bcftools_mpileup description: Compresses VCF files keywords: - - variant calling - - mpileup - - VCF + - variant calling + - mpileup + - VCF tools: - - mpileup: - description: | - Generates genotype likelihoods at each genomic position with coverage. - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - mpileup: + description: | + Generates genotype likelihoods at each genomic position with coverage. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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: - type: file - description: Input BAM file - pattern: "*.{bam}" - - fasta: - type: file - description: FASTA reference file - pattern: "*.{fasta,fa}" - - save_mpileup: - type: boolean - description: Save mpileup file generated by bcftools mpileup - patter: "*.mpileup" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Input BAM file + pattern: "*.{bam}" + - fasta: + type: file + description: FASTA reference file + pattern: "*.{fasta,fa}" + - save_mpileup: + type: boolean + description: Save mpileup file generated by bcftools mpileup + patter: "*.mpileup" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - vcf: - type: file - description: VCF gzipped output file - pattern: "*.{vcf.gz}" - - tbi: - type: file - description: tabix index file - pattern: "*.{tbi}" - - stats: - type: file - description: Text output file containing stats - pattern: "*{stats.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF gzipped output file + pattern: "*.{vcf.gz}" + - tbi: + type: file + description: tabix index file + pattern: "*.{tbi}" + - stats: + type: file + description: Text output file containing stats + pattern: "*{stats.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bcftools/norm/meta.yml b/modules/bcftools/norm/meta.yml index 27978a53..ce4aee85 100644 --- a/modules/bcftools/norm/meta.yml +++ b/modules/bcftools/norm/meta.yml @@ -6,41 +6,41 @@ keywords: - variant calling - VCF tools: - - norm: - description: | - Normalize VCF files. - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - norm: + description: | + Normalize VCF files. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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 ] - - vcf: - type: file - description: | - The vcf file to be normalized - e.g. 'file1.vcf' - - fasta: - type: file - description: FASTA reference file - pattern: "*.{fasta,fa}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: | + The vcf file to be normalized + e.g. 'file1.vcf' + - fasta: + type: file + description: FASTA reference file + pattern: "*.{fasta,fa}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - vcf: - type: file - description: VCF normalized output file - pattern: "*.{vcf.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF normalized output file + pattern: "*.{vcf.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@abhi18av" + - "@abhi18av" diff --git a/modules/bcftools/query/meta.yml b/modules/bcftools/query/meta.yml index e49f13c8..fd4fd473 100644 --- a/modules/bcftools/query/meta.yml +++ b/modules/bcftools/query/meta.yml @@ -6,56 +6,56 @@ keywords: - bcftools - VCF tools: - - query: - description: | - Extracts fields from VCF or BCF files and outputs them in user-defined format. - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - query: + description: | + Extracts fields from VCF or BCF files and outputs them in user-defined format. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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 ] - - vcf: - type: file - description: | - The vcf file to be qeuried. - pattern: "*.{vcf.gz, vcf}" - - tbi: - type: file - description: | - The tab index for the VCF file to be inspected. - pattern: "*.tbi" - - regions: - type: file - description: | - Optionally, restrict the operation to regions listed in this file. - - targets: - type: file - description: | - Optionally, restrict the operation to regions listed in this file (doesn't rely upon index files) - - samples: - type: file - description: | - Optional, file of sample names to be included or excluded. - e.g. 'file.tsv' + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: | + The vcf file to be qeuried. + pattern: "*.{vcf.gz, vcf}" + - tbi: + type: file + description: | + The tab index for the VCF file to be inspected. + pattern: "*.tbi" + - regions: + type: file + description: | + Optionally, restrict the operation to regions listed in this file. + - targets: + type: file + description: | + Optionally, restrict the operation to regions listed in this file (doesn't rely upon index files) + - samples: + type: file + description: | + Optional, file of sample names to be included or excluded. + e.g. 'file.tsv' output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - txt: - type: file - description: BCFTools query output file - pattern: "*.txt" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - txt: + type: file + description: BCFTools query output file + pattern: "*.txt" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@abhi18av" - "@drpatelh" diff --git a/modules/bcftools/reheader/meta.yml b/modules/bcftools/reheader/meta.yml index ee8cba32..eaf44927 100644 --- a/modules/bcftools/reheader/meta.yml +++ b/modules/bcftools/reheader/meta.yml @@ -11,7 +11,7 @@ tools: homepage: http://samtools.github.io/bcftools/bcftools.html documentation: http://samtools.github.io/bcftools/bcftools.html#reheader doi: 10.1093/gigascience/giab008 - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/bcftools/sort/meta.yml b/modules/bcftools/sort/meta.yml index af894e82..0c244a48 100644 --- a/modules/bcftools/sort/meta.yml +++ b/modules/bcftools/sort/meta.yml @@ -11,7 +11,7 @@ tools: documentation: http://www.htslib.org/doc/bcftools.html tool_dev_url: https://github.com/samtools/bcftools doi: "10.1093/bioinformatics/btp352" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/bcftools/stats/meta.yml b/modules/bcftools/stats/meta.yml index 505bf729..304b88ec 100644 --- a/modules/bcftools/stats/meta.yml +++ b/modules/bcftools/stats/meta.yml @@ -1,42 +1,42 @@ name: bcftools_stats description: Generates stats from VCF files keywords: - - variant calling - - stats - - VCF + - variant calling + - stats + - VCF tools: - - stats: - description: | - Parses VCF or BCF and produces text file stats which is suitable for - machine processing and can be plotted using plot-vcfstats. - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - stats: + description: | + Parses VCF or BCF and produces text file stats which is suitable for + machine processing and can be plotted using plot-vcfstats. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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 ] - - vcf: - type: file - description: VCF input file - pattern: "*.{vcf}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF input file + pattern: "*.{vcf}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - stats: - type: file - description: Text output file containing stats - pattern: "*_{stats.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - stats: + type: file + description: Text output file containing stats + pattern: "*_{stats.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bcftools/view/meta.yml b/modules/bcftools/view/meta.yml index df5b0f8f..326fd1fa 100644 --- a/modules/bcftools/view/meta.yml +++ b/modules/bcftools/view/meta.yml @@ -1,63 +1,63 @@ name: bcftools_view description: View, subset and filter VCF or BCF files by position and filtering expression. Convert between VCF and BCF keywords: - - variant calling - - view - - bcftools - - VCF + - variant calling + - view + - bcftools + - VCF tools: - - view: - description: | - View, subset and filter VCF or BCF files by position and filtering expression. Convert between VCF and BCF - homepage: http://samtools.github.io/bcftools/bcftools.html - documentation: http://www.htslib.org/doc/bcftools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - view: + description: | + View, subset and filter VCF or BCF files by position and filtering expression. Convert between VCF and BCF + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: http://www.htslib.org/doc/bcftools.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 ] - - vcf: - type: file - description: | - The vcf file to be inspected. - e.g. 'file.vcf' - - index: - type: file - description: | - The tab index for the VCF file to be inspected. - e.g. 'file.tbi' - - regions: - type: file - description: | - Optionally, restrict the operation to regions listed in this file. - e.g. 'file.vcf' - - targets: - type: file - description: | - Optionally, restrict the operation to regions listed in this file (doesn't rely upon index files) - e.g. 'file.vcf' - - samples: - type: file - description: | - Optional, file of sample names to be included or excluded. - e.g. 'file.tsv' + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: | + The vcf file to be inspected. + e.g. 'file.vcf' + - index: + type: file + description: | + The tab index for the VCF file to be inspected. + e.g. 'file.tbi' + - regions: + type: file + description: | + Optionally, restrict the operation to regions listed in this file. + e.g. 'file.vcf' + - targets: + type: file + description: | + Optionally, restrict the operation to regions listed in this file (doesn't rely upon index files) + e.g. 'file.vcf' + - samples: + type: file + description: | + Optional, file of sample names to be included or excluded. + e.g. 'file.tsv' output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - vcf: - type: file - description: VCF normalized output file - pattern: "*.{vcf.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF normalized output file + pattern: "*.{vcf.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@abhi18av" + - "@abhi18av" diff --git a/modules/bedtools/bamtobed/meta.yml b/modules/bedtools/bamtobed/meta.yml index e8c67047..5a4ff73a 100644 --- a/modules/bedtools/bamtobed/meta.yml +++ b/modules/bedtools/bamtobed/meta.yml @@ -1,38 +1,38 @@ name: bedtools_bamtobed description: Converts a bam file to a bed12 file. keywords: - - bam - - bed + - bam + - bed tools: - - bedtools: - 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'] + - bedtools: + 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 - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: Input BAM file - pattern: "*.{bam}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Input BAM file + pattern: "*.{bam}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Bed file containing genomic intervals. - pattern: "*.{bed}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Bed file containing genomic intervals. + pattern: "*.{bed}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@yuukiiwa" - - "@drpatelh" + - "@yuukiiwa" + - "@drpatelh" diff --git a/modules/bedtools/complement/meta.yml b/modules/bedtools/complement/meta.yml index 2ad8749c..708a2161 100644 --- a/modules/bedtools/complement/meta.yml +++ b/modules/bedtools/complement/meta.yml @@ -1,43 +1,43 @@ name: bedtools_complement description: Returns all intervals in a genome that are not covered by at least one interval in the input BED/GFF/VCF file. keywords: - - bed - - complement + - bed + - complement tools: - - bedtools: - 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'] + - bedtools: + 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 - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Input BED file - pattern: "*.{bed}" - - sizes: - type: file - description: File which defines the chromosome lengths for a given genome - pattern: "*.{sizes}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Input BED file + pattern: "*.{bed}" + - sizes: + type: file + description: File which defines the chromosome lengths for a given genome + pattern: "*.{sizes}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Bed file with all genomic intervals that are not covered by at least one record from the input file. - pattern: "*.{bed}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Bed file with all genomic intervals that are not covered by at least one record from the input file. + pattern: "*.{bed}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@Emiller88" - - "@sruthipsuresh" - - "@drpatelh" + - "@Emiller88" + - "@sruthipsuresh" + - "@drpatelh" diff --git a/modules/bedtools/genomecov/meta.yml b/modules/bedtools/genomecov/meta.yml index 0713e95b..83bfab98 100644 --- a/modules/bedtools/genomecov/meta.yml +++ b/modules/bedtools/genomecov/meta.yml @@ -1,51 +1,51 @@ name: bedtools_genomecov description: Computes histograms (default), per-base reports (-d) and BEDGRAPH (-bg) summaries of feature coverage (e.g., aligned sequences) for a given genome. keywords: - - bed - - bam - - genomecov + - bed + - bam + - genomecov tools: - - bedtools: - 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/genomecov.html - licence: ['MIT'] + - bedtools: + 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/genomecov.html + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - intervals: - type: file - description: BAM/BED/GFF/VCF - pattern: "*.{bam|bed|gff|vcf}" - - scale: - type: value - description: Number containing the scale factor for the output. Set to 1 to disable. Setting to a value other than 1 will also get the -bg bedgraph output format as this is required for this command switch - - sizes: - type: file - description: Tab-delimited table of chromosome names in the first column and chromosome sizes in the second column - - 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. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - intervals: + type: file + description: BAM/BED/GFF/VCF + pattern: "*.{bam|bed|gff|vcf}" + - scale: + type: value + description: Number containing the scale factor for the output. Set to 1 to disable. Setting to a value other than 1 will also get the -bg bedgraph output format as this is required for this command switch + - sizes: + type: file + description: Tab-delimited table of chromosome names in the first column and chromosome sizes in the second column + - 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 ] - - genomecov: - type: file - description: Computed genome coverage file - pattern: "*.${extension}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - genomecov: + type: file + description: Computed genome coverage file + pattern: "*.${extension}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@Emiller88" - - "@sruthipsuresh" - - "@drpatelh" - - "@sidorov-si" - - "@chris-cheshire" + - "@Emiller88" + - "@sruthipsuresh" + - "@drpatelh" + - "@sidorov-si" + - "@chris-cheshire" diff --git a/modules/bedtools/getfasta/meta.yml b/modules/bedtools/getfasta/meta.yml index 38715c3d..11335100 100644 --- a/modules/bedtools/getfasta/meta.yml +++ b/modules/bedtools/getfasta/meta.yml @@ -1,34 +1,34 @@ name: bedtools_getfasta description: extract sequences in a FASTA file based on intervals defined in a feature file. keywords: - - bed - - fasta - - getfasta + - bed + - fasta + - getfasta tools: - - bedtools: - 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'] + - bedtools: + 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: - - bed: - type: file - description: Bed feature file - pattern: "*.{bed}" - - fasta: - type: file - description: Input fasta file - pattern: "*.{fa,fasta}" + - bed: + type: file + description: Bed feature file + pattern: "*.{bed}" + - fasta: + type: file + description: Input fasta file + pattern: "*.{fa,fasta}" output: - - fasta: - type: file - description: Output fasta file with extracted sequences - pattern: "*.{fa}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - fasta: + type: file + description: Output fasta file with extracted sequences + pattern: "*.{fa}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bedtools/intersect/meta.yml b/modules/bedtools/intersect/meta.yml index 3bcb6ece..6e21e928 100644 --- a/modules/bedtools/intersect/meta.yml +++ b/modules/bedtools/intersect/meta.yml @@ -1,47 +1,47 @@ name: bedtools_intersect description: Allows one to screen for overlaps between two sets of genomic features. keywords: - - bed - - intersect + - bed + - intersect tools: - - bedtools: - 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'] + - bedtools: + 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 - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - intervals1: - type: file - description: BAM/BED/GFF/VCF - pattern: "*.{bam|bed|gff|vcf}" - - intervals2: - type: file - description: BAM/BED/GFF/VCF - pattern: "*.{bam|bed|gff|vcf}" - - extension: - type: value - description: Extension of the output file. It is set by the user and corresponds to the file format which depends on arguments (e. g., ".bed", ".bam", ".txt", etc.). + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - intervals1: + type: file + description: BAM/BED/GFF/VCF + pattern: "*.{bam|bed|gff|vcf}" + - intervals2: + type: file + description: BAM/BED/GFF/VCF + pattern: "*.{bam|bed|gff|vcf}" + - extension: + type: value + description: Extension of the output file. It is set by the user and corresponds to the file format which depends on arguments (e. g., ".bed", ".bam", ".txt", etc.). output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - intersect: - type: file - description: File containing the description of overlaps found between the two features - pattern: "*.${extension}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - intersect: + type: file + description: File containing the description of overlaps found between the two features + pattern: "*.${extension}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@Emiller88" - - "@sruthipsuresh" - - "@drpatelh" - - "@sidorov-si" + - "@Emiller88" + - "@sruthipsuresh" + - "@drpatelh" + - "@sidorov-si" diff --git a/modules/bedtools/makewindows/meta.yml b/modules/bedtools/makewindows/meta.yml index a536d75f..9de31f43 100644 --- a/modules/bedtools/makewindows/meta.yml +++ b/modules/bedtools/makewindows/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://bedtools.readthedocs.io/en/latest/content/tools/makewindows.html tool_dev_url: None doi: "10.1093/bioinformatics/btq033" - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map diff --git a/modules/bedtools/maskfasta/meta.yml b/modules/bedtools/maskfasta/meta.yml index 0b7aa3ed..cc33df3e 100644 --- a/modules/bedtools/maskfasta/meta.yml +++ b/modules/bedtools/maskfasta/meta.yml @@ -1,44 +1,44 @@ name: bedtools_maskfasta description: masks sequences in a FASTA file based on intervals defined in a feature file. keywords: - - bed - - fasta - - maskfasta + - bed + - fasta + - maskfasta tools: - - bedtools: - 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'] + - bedtools: + 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 - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Bed feature file - pattern: "*.{bed}" - - fasta: - type: file - description: Input fasta file - pattern: "*.{fa,fasta}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Bed feature file + pattern: "*.{bed}" + - fasta: + type: file + description: Input fasta file + pattern: "*.{fa,fasta}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: Output masked fasta file - pattern: "*.{fa}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Output masked fasta file + pattern: "*.{fa}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bedtools/merge/meta.yml b/modules/bedtools/merge/meta.yml index 40a42b7b..76743679 100644 --- a/modules/bedtools/merge/meta.yml +++ b/modules/bedtools/merge/meta.yml @@ -1,39 +1,39 @@ name: bedtools_merge description: combines overlapping or “book-ended” features in an interval file into a single feature which spans all of the combined features. keywords: - - bed - - merge + - bed + - merge tools: - - bedtools: - 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'] + - bedtools: + 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 - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Input BED file - pattern: "*.{bed}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Input BED file + pattern: "*.{bed}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Overlapped bed file with combined features - pattern: "*.{bed}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Overlapped bed file with combined features + pattern: "*.{bed}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@Emiller88" - - "@sruthipsuresh" - - "@drpatelh" + - "@Emiller88" + - "@sruthipsuresh" + - "@drpatelh" diff --git a/modules/bedtools/slop/meta.yml b/modules/bedtools/slop/meta.yml index a4713936..4835b71b 100644 --- a/modules/bedtools/slop/meta.yml +++ b/modules/bedtools/slop/meta.yml @@ -1,39 +1,39 @@ name: bedtools_slop description: Adds a specified number of bases in each direction (unique values may be specified for either -l or -r) keywords: - - bed - - slopBed + - bed + - slopBed tools: - - bedtools: - 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/slop.html - licence: ['MIT'] + - bedtools: + 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/slop.html + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Input BED file - pattern: "*.{bed}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Input BED file + pattern: "*.{bed}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Slopped BED file - pattern: "*.{bed}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Slopped BED file + pattern: "*.{bed}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@Emiller88" - - "@sruthipsuresh" - - "@drpatelh" + - "@Emiller88" + - "@sruthipsuresh" + - "@drpatelh" diff --git a/modules/bedtools/sort/meta.yml b/modules/bedtools/sort/meta.yml index c7b1b098..369e51ff 100644 --- a/modules/bedtools/sort/meta.yml +++ b/modules/bedtools/sort/meta.yml @@ -1,46 +1,46 @@ name: bedtools_sort description: Sorts a feature file by chromosome and other criteria. keywords: - - bed - - sort + - bed + - sort tools: - - bedtools: - 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/sort.html - licence: ['MIT'] + - bedtools: + 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/sort.html + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - intervals: - type: file - description: BED/BEDGRAPH - pattern: "*.{bed|bedGraph}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - intervals: + type: file + 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. + - 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 ] + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - - sorted: - type: file - description: Sorted output file - pattern: "*.${extension}" + - sorted: + type: file + description: Sorted output file + pattern: "*.${extension}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@Emiller88" - - "@sruthipsuresh" - - "@drpatelh" - - "@chris-cheshire" + - "@Emiller88" + - "@sruthipsuresh" + - "@drpatelh" + - "@chris-cheshire" diff --git a/modules/bedtools/subtract/meta.yml b/modules/bedtools/subtract/meta.yml index b9245a55..19978f74 100644 --- a/modules/bedtools/subtract/meta.yml +++ b/modules/bedtools/subtract/meta.yml @@ -1,16 +1,16 @@ name: bedtools_subtract description: Finds overlaps between two sets of regions (A and B), removes the overlaps from A and reports the remaining portion of A. keywords: - - bed - - gff - - vcf - - subtract + - bed + - gff + - vcf + - subtract tools: - - bedtools: - 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/subtract.html - licence: ['MIT'] + - bedtools: + 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/subtract.html + licence: ["MIT"] input: - meta: diff --git a/modules/biobambam/bammarkduplicates2/meta.yml b/modules/biobambam/bammarkduplicates2/meta.yml index c916517b..52e2eb75 100644 --- a/modules/biobambam/bammarkduplicates2/meta.yml +++ b/modules/biobambam/bammarkduplicates2/meta.yml @@ -1,44 +1,44 @@ name: biobambam_bammarkduplicates2 description: Locate and tag duplicate reads in a BAM file keywords: - - markduplicates - - bam - - cram + - markduplicates + - bam + - cram tools: - - biobambam: - description: | - biobambam is a set of tools for early stage alignment file processing. - homepage: https://gitlab.com/german.tischler/biobambam2 - documentation: https://gitlab.com/german.tischler/biobambam2/-/blob/master/README.md - doi: 10.1186/1751-0473-9-13 - licence: ['GPL v3'] + - biobambam: + description: | + biobambam is a set of tools for early stage alignment file processing. + homepage: https://gitlab.com/german.tischler/biobambam2 + documentation: https://gitlab.com/german.tischler/biobambam2/-/blob/master/README.md + doi: 10.1186/1751-0473-9-13 + licence: ["GPL v3"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM/CRAM file - pattern: "*.{bam,cram}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM/CRAM file + pattern: "*.{bam,cram}" 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 biobambam - pattern: "*.{metrics.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - 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 biobambam + pattern: "*.{metrics.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@muffato" + - "@muffato" diff --git a/modules/bismark/align/meta.yml b/modules/bismark/align/meta.yml index 79948e1c..f780c959 100644 --- a/modules/bismark/align/meta.yml +++ b/modules/bismark/align/meta.yml @@ -1,59 +1,59 @@ name: bismark_align description: Performs alignment of BS-Seq reads using bismark keywords: - - bismark - - 3-letter genome - - map - - methylation - - 5mC - - methylseq - - bisulphite - - bam + - bismark + - 3-letter genome + - map + - methylation + - 5mC + - methylseq + - bisulphite + - bam tools: - - bismark: - description: | - Bismark is a tool to map bisulfite treated sequencing reads - and perform methylation calling in a quick and easy-to-use fashion. - homepage: https://github.com/FelixKrueger/Bismark - documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs - doi: 10.1093/bioinformatics/btr167 - licence: ['GPL-3.0-or-later'] + - bismark: + description: | + Bismark is a tool to map bisulfite treated sequencing reads + and perform methylation calling in a quick and easy-to-use fashion. + homepage: https://github.com/FelixKrueger/Bismark + documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs + doi: 10.1093/bioinformatics/btr167 + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - index: - type: dir - description: Bismark genome index directory - pattern: "BismarkIndex" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: dir + description: Bismark genome index directory + pattern: "BismarkIndex" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: Output BAM file containing read alignments - pattern: "*.{bam}" - - unmapped: - type: file - description: Output FastQ file(s) containing unmapped reads - pattern: "*.{fq.gz}" - - report: - type: file - description: Bismark alignment reports - pattern: "*{report.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - unmapped: + type: file + description: Output FastQ file(s) containing unmapped reads + pattern: "*.{fq.gz}" + - report: + type: file + description: Bismark alignment reports + pattern: "*{report.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/bismark/deduplicate/meta.yml b/modules/bismark/deduplicate/meta.yml index 9e28cd22..2b89e520 100644 --- a/modules/bismark/deduplicate/meta.yml +++ b/modules/bismark/deduplicate/meta.yml @@ -1,52 +1,52 @@ name: bismark_deduplicate description: | - Removes alignments to the same position in the genome - from the Bismark mapping output. + Removes alignments to the same position in the genome + from the Bismark mapping output. keywords: - - bismark - - 3-letter genome - - map - - methylation - - 5mC - - methylseq - - bisulphite - - bam + - bismark + - 3-letter genome + - map + - methylation + - 5mC + - methylseq + - bisulphite + - bam tools: - - bismark: - description: | - Bismark is a tool to map bisulfite treated sequencing reads - and perform methylation calling in a quick and easy-to-use fashion. - homepage: https://github.com/FelixKrueger/Bismark - documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs - doi: 10.1093/bioinformatics/btr167 - licence: ['GPL-3.0-or-later'] + - bismark: + description: | + Bismark is a tool to map bisulfite treated sequencing reads + and perform methylation calling in a quick and easy-to-use fashion. + homepage: https://github.com/FelixKrueger/Bismark + documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs + doi: 10.1093/bioinformatics/btr167 + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM file containing read alignments - pattern: "*.{bam}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file containing read alignments + pattern: "*.{bam}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: Deduplicated output BAM file containing read alignments - pattern: "*.{deduplicated.bam}" - - report: - type: file - description: Bismark deduplication reports - pattern: "*.{deduplication_report.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Deduplicated output BAM file containing read alignments + pattern: "*.{deduplicated.bam}" + - report: + type: file + description: Bismark deduplication reports + pattern: "*.{deduplication_report.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/bismark/genomepreparation/meta.yml b/modules/bismark/genomepreparation/meta.yml index 2a17f1fb..b30ff651 100644 --- a/modules/bismark/genomepreparation/meta.yml +++ b/modules/bismark/genomepreparation/meta.yml @@ -1,37 +1,37 @@ name: bismark_genomepreparation description: | - Converts a specified reference genome into two different bisulfite - converted versions and indexes them for alignments. + Converts a specified reference genome into two different bisulfite + converted versions and indexes them for alignments. keywords: - - bismark - - 3-letter genome - - index - - methylation - - 5mC - - methylseq - - bisulphite - - fasta + - bismark + - 3-letter genome + - index + - methylation + - 5mC + - methylseq + - bisulphite + - fasta tools: - - bismark: - description: | - Bismark is a tool to map bisulfite treated sequencing reads - and perform methylation calling in a quick and easy-to-use fashion. - homepage: https://github.com/FelixKrueger/Bismark - documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs - doi: 10.1093/bioinformatics/btr167 - licence: ['GPL-3.0-or-later'] + - bismark: + description: | + Bismark is a tool to map bisulfite treated sequencing reads + and perform methylation calling in a quick and easy-to-use fashion. + homepage: https://github.com/FelixKrueger/Bismark + documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs + doi: 10.1093/bioinformatics/btr167 + licence: ["GPL-3.0-or-later"] input: - - fasta: - type: file - description: Input genome fasta file + - fasta: + type: file + description: Input genome fasta file output: - - index: - type: dir - description: Bismark genome index directory - pattern: "BismarkIndex" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - index: + type: dir + description: Bismark genome index directory + pattern: "BismarkIndex" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/bismark/methylationextractor/meta.yml b/modules/bismark/methylationextractor/meta.yml index 602fc06d..407cefca 100644 --- a/modules/bismark/methylationextractor/meta.yml +++ b/modules/bismark/methylationextractor/meta.yml @@ -1,67 +1,67 @@ name: bismark_methylationextractor description: Extracts methylation information for individual cytosines from alignments. keywords: - - bismark - - consensus - - map - - methylation - - 5mC - - methylseq - - bisulphite - - bam - - bedGraph + - bismark + - consensus + - map + - methylation + - 5mC + - methylseq + - bisulphite + - bam + - bedGraph tools: - - bismark: - description: | - Bismark is a tool to map bisulfite treated sequencing reads - and perform methylation calling in a quick and easy-to-use fashion. - homepage: https://github.com/FelixKrueger/Bismark - documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs - doi: 10.1093/bioinformatics/btr167 - licence: ['GPL-3.0-or-later'] + - bismark: + description: | + Bismark is a tool to map bisulfite treated sequencing reads + and perform methylation calling in a quick and easy-to-use fashion. + homepage: https://github.com/FelixKrueger/Bismark + documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs + doi: 10.1093/bioinformatics/btr167 + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM file containing read alignments - pattern: "*.{bam}" - - index: - type: dir - description: Bismark genome index directory - pattern: "BismarkIndex" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file containing read alignments + pattern: "*.{bam}" + - index: + type: dir + description: Bismark genome index directory + pattern: "BismarkIndex" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bedgraph: - type: file - description: Bismark output file containing coverage and methylation metrics - pattern: "*.{bedGraph.gz}" - - methylation_calls: - type: file - description: Bismark output file containing strand-specific methylation calls - pattern: "*.{txt.gz}" - - coverage: - type: file - description: Bismark output file containing coverage metrics - pattern: "*.{cov.gz}" - - report: - type: file - description: Bismark splitting reports - pattern: "*_{splitting_report.txt}" - - mbias: - type: file - description: Text file containing methylation bias information - pattern: "*.{M-bias.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bedgraph: + type: file + description: Bismark output file containing coverage and methylation metrics + pattern: "*.{bedGraph.gz}" + - methylation_calls: + type: file + description: Bismark output file containing strand-specific methylation calls + pattern: "*.{txt.gz}" + - coverage: + type: file + description: Bismark output file containing coverage metrics + pattern: "*.{cov.gz}" + - report: + type: file + description: Bismark splitting reports + pattern: "*_{splitting_report.txt}" + - mbias: + type: file + description: Text file containing methylation bias information + pattern: "*.{M-bias.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/bismark/report/meta.yml b/modules/bismark/report/meta.yml index e849e109..002aeb34 100644 --- a/modules/bismark/report/meta.yml +++ b/modules/bismark/report/meta.yml @@ -1,60 +1,60 @@ name: bismark_report description: Collects bismark alignment reports keywords: - - bismark - - qc - - methylation - - 5mC - - methylseq - - bisulphite - - report + - bismark + - qc + - methylation + - 5mC + - methylseq + - bisulphite + - report tools: - - bismark: - description: | - Bismark is a tool to map bisulfite treated sequencing reads - and perform methylation calling in a quick and easy-to-use fashion. - homepage: https://github.com/FelixKrueger/Bismark - documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs - doi: 10.1093/bioinformatics/btr167 - licence: ['GPL-3.0-or-later'] + - bismark: + description: | + Bismark is a tool to map bisulfite treated sequencing reads + and perform methylation calling in a quick and easy-to-use fashion. + homepage: https://github.com/FelixKrueger/Bismark + documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs + doi: 10.1093/bioinformatics/btr167 + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - align_report: - type: file - description: Bismark alignment reports - pattern: "*{report.txt}" - - splitting_report: - type: file - description: Bismark splitting reports - pattern: "*{splitting_report.txt}" - - dedup_report: - type: file - description: Bismark deduplication reports - pattern: "*.{deduplication_report.txt}" - - mbias: - type: file - description: Text file containing methylation bias information - pattern: "*.{txt}" - - fasta: - type: file - description: Input genome fasta file + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - align_report: + type: file + description: Bismark alignment reports + pattern: "*{report.txt}" + - splitting_report: + type: file + description: Bismark splitting reports + pattern: "*{splitting_report.txt}" + - dedup_report: + type: file + description: Bismark deduplication reports + pattern: "*.{deduplication_report.txt}" + - mbias: + type: file + description: Text file containing methylation bias information + pattern: "*.{txt}" + - fasta: + type: file + description: Input genome fasta file output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - report: - type: file - description: Bismark reports - pattern: "*.{html,txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - report: + type: file + description: Bismark reports + pattern: "*.{html,txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/bismark/summary/meta.yml b/modules/bismark/summary/meta.yml index 0494bb8e..5c8e8b6a 100644 --- a/modules/bismark/summary/meta.yml +++ b/modules/bismark/summary/meta.yml @@ -1,54 +1,54 @@ name: bismark_summary description: | - Uses Bismark report files of several samples in a run folder - to generate a graphical summary HTML report. + Uses Bismark report files of several samples in a run folder + to generate a graphical summary HTML report. keywords: - - bismark - - qc - - methylation - - 5mC - - methylseq - - bisulphite - - report - - summary + - bismark + - qc + - methylation + - 5mC + - methylseq + - bisulphite + - report + - summary tools: - - bismark: - description: | - Bismark is a tool to map bisulfite treated sequencing reads - and perform methylation calling in a quick and easy-to-use fashion. - homepage: https://github.com/FelixKrueger/Bismark - documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs - doi: 10.1093/bioinformatics/btr167 - licence: ['GPL-3.0-or-later'] + - bismark: + description: | + Bismark is a tool to map bisulfite treated sequencing reads + and perform methylation calling in a quick and easy-to-use fashion. + homepage: https://github.com/FelixKrueger/Bismark + documentation: https://github.com/FelixKrueger/Bismark/tree/master/Docs + doi: 10.1093/bioinformatics/btr167 + licence: ["GPL-3.0-or-later"] input: - - bam: - type: file - description: Bismark alignment - pattern: "*.{bam}" - - align_report: - type: file - description: Bismark alignment reports - pattern: "*{report.txt}" - - dedup_report: - type: file - description: Bismark deduplication reports - pattern: "*.{deduplication_report.txt}" - - splitting_report: - type: file - description: Bismark splitting reports - pattern: "*{splitting_report.txt}" - - mbias: - type: file - description: Text file containing methylation bias information - pattern: "*.{txt}" + - bam: + type: file + description: Bismark alignment + pattern: "*.{bam}" + - align_report: + type: file + description: Bismark alignment reports + pattern: "*{report.txt}" + - dedup_report: + type: file + description: Bismark deduplication reports + pattern: "*.{deduplication_report.txt}" + - splitting_report: + type: file + description: Bismark splitting reports + pattern: "*{splitting_report.txt}" + - mbias: + type: file + description: Text file containing methylation bias information + pattern: "*.{txt}" output: - - summary: - type: file - description: Bismark summary - pattern: "*.{html,txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - summary: + type: file + description: Bismark summary + pattern: "*.{html,txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/blast/blastn/meta.yml b/modules/blast/blastn/meta.yml index 39acb663..2742278d 100644 --- a/modules/blast/blastn/meta.yml +++ b/modules/blast/blastn/meta.yml @@ -1,41 +1,41 @@ name: blast_blastn description: Queries a BLAST DNA database keywords: - - fasta - - blast - - blastn - - DNA sequence + - fasta + - blast + - blastn + - DNA sequence tools: - - blast: - description: | - BLAST finds regions of similarity between biological sequences. - homepage: https://blast.ncbi.nlm.nih.gov/Blast.cgi - documentation: https://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=Blastdocs - doi: 10.1016/S0022-2836(05)80360-2 - licence: ['US-Government-Work'] + - blast: + description: | + BLAST finds regions of similarity between biological sequences. + homepage: https://blast.ncbi.nlm.nih.gov/Blast.cgi + documentation: https://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=Blastdocs + doi: 10.1016/S0022-2836(05)80360-2 + licence: ["US-Government-Work"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: Input fasta file containing queries sequences - pattern: "*.{fa,fasta}" - - db: - type: directory - description: Directory containing blast database - pattern: "*" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Input fasta file containing queries sequences + pattern: "*.{fa,fasta}" + - db: + type: directory + description: Directory containing blast database + pattern: "*" output: - - txt: - type: file - description: File containing blastn hits - pattern: "*.{blastn.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - txt: + type: file + description: File containing blastn hits + pattern: "*.{blastn.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/blast/makeblastdb/meta.yml b/modules/blast/makeblastdb/meta.yml index c9d18cba..83c4b292 100644 --- a/modules/blast/makeblastdb/meta.yml +++ b/modules/blast/makeblastdb/meta.yml @@ -1,31 +1,31 @@ name: blast_makeblastdb description: Builds a BLAST database keywords: - - fasta - - blast - - database + - fasta + - blast + - database tools: - - blast: - description: | - BLAST finds regions of similarity between biological sequences. - homepage: https://blast.ncbi.nlm.nih.gov/Blast.cgi - documentation: https://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=Blastdocs - doi: 10.1016/S0022-2836(05)80360-2 - licence: ['US-Government-Work'] + - blast: + description: | + BLAST finds regions of similarity between biological sequences. + homepage: https://blast.ncbi.nlm.nih.gov/Blast.cgi + documentation: https://blast.ncbi.nlm.nih.gov/Blast.cgi?CMD=Web&PAGE_TYPE=Blastdocs + doi: 10.1016/S0022-2836(05)80360-2 + licence: ["US-Government-Work"] input: - - fasta: - type: file - description: Input fasta file - pattern: "*.{fa,fasta}" + - fasta: + type: file + description: Input fasta file + pattern: "*.{fa,fasta}" output: - - db: - type: directory - description: Output directory containing blast database files - pattern: "*" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - db: + type: directory + description: Output directory containing blast database files + pattern: "*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bowtie/align/meta.yml b/modules/bowtie/align/meta.yml index 07d480be..f5145b5a 100644 --- a/modules/bowtie/align/meta.yml +++ b/modules/bowtie/align/meta.yml @@ -1,46 +1,46 @@ name: bowtie_align description: Align reads to a reference genome using bowtie keywords: - - align - - fasta - - genome - - reference + - align + - fasta + - genome + - reference tools: - - bowtie: - description: | - bowtie is a software package for mapping DNA sequences against - a large reference genome, such as the human genome. - homepage: http://bowtie-bio.sourceforge.net/index.shtml - documentation: http://bowtie-bio.sourceforge.net/manual.shtml - arxiv: arXiv:1303.3997 - licence: ['Artistic-2.0'] + - bowtie: + description: | + bowtie is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bowtie-bio.sourceforge.net/index.shtml + documentation: http://bowtie-bio.sourceforge.net/manual.shtml + arxiv: arXiv:1303.3997 + licence: ["Artistic-2.0"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - index: - type: file - description: Bowtie genome index files - pattern: "*.ebwt" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: file + description: Bowtie genome index files + pattern: "*.ebwt" output: - - bam: - type: file - description: Output BAM file containing read alignments - pattern: "*.{bam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - - fastq: - type: file - description: Unaligned FastQ files - pattern: "*.fastq.gz" + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - fastq: + type: file + description: Unaligned FastQ files + pattern: "*.fastq.gz" authors: - - "@kevinmenden" + - "@kevinmenden" diff --git a/modules/bowtie/build/meta.yml b/modules/bowtie/build/meta.yml index 016adcfe..0c41bbac 100644 --- a/modules/bowtie/build/meta.yml +++ b/modules/bowtie/build/meta.yml @@ -1,32 +1,32 @@ name: bowtie_build description: Create bowtie index for reference genome keywords: - - index - - fasta - - genome - - reference + - index + - fasta + - genome + - reference tools: - - bowtie: - description: | - bowtie is a software package for mapping DNA sequences against - a large reference genome, such as the human genome. - homepage: http://bowtie-bio.sourceforge.net/index.shtml - documentation: http://bowtie-bio.sourceforge.net/manual.shtml - arxiv: arXiv:1303.3997 - licence: ['Artistic-2.0'] + - bowtie: + description: | + bowtie is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bowtie-bio.sourceforge.net/index.shtml + documentation: http://bowtie-bio.sourceforge.net/manual.shtml + arxiv: arXiv:1303.3997 + licence: ["Artistic-2.0"] input: - - fasta: - type: file - description: Input genome fasta file + - fasta: + type: file + description: Input genome fasta file output: - - index: - type: file - description: Bowtie genome index files - pattern: "*.ebwt" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - index: + type: file + description: Bowtie genome index files + pattern: "*.ebwt" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@kevinmenden" - - "@drpatelh" + - "@kevinmenden" + - "@drpatelh" diff --git a/modules/bowtie2/align/meta.yml b/modules/bowtie2/align/meta.yml index 77c9e397..f80421ec 100644 --- a/modules/bowtie2/align/meta.yml +++ b/modules/bowtie2/align/meta.yml @@ -1,51 +1,51 @@ name: bowtie2_align description: Align reads to a reference genome using bowtie2 keywords: - - align - - fasta - - genome - - reference + - align + - fasta + - genome + - reference tools: - - bowtie2: - description: | - Bowtie 2 is an ultrafast and memory-efficient tool for aligning - sequencing reads to long reference sequences. - 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'] + - bowtie2: + description: | + Bowtie 2 is an ultrafast and memory-efficient tool for aligning + sequencing reads to long reference sequences. + 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 - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - index: - type: file - description: Bowtie2 genome index files - pattern: "*.ebwt" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: file + description: Bowtie2 genome index files + pattern: "*.ebwt" output: - - bam: - type: file - description: Output BAM file containing read alignments - pattern: "*.{bam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - - fastq: - type: file - description: Unaligned FastQ files - pattern: "*.fastq.gz" - - log: - type: file - description: Aligment log - pattern: "*.log" + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - fastq: + type: file + description: Unaligned FastQ files + pattern: "*.fastq.gz" + - log: + type: file + description: Aligment log + pattern: "*.log" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bowtie2/build/meta.yml b/modules/bowtie2/build/meta.yml index ecc54e9b..2da9a217 100644 --- a/modules/bowtie2/build/meta.yml +++ b/modules/bowtie2/build/meta.yml @@ -1,33 +1,33 @@ name: bowtie2_build description: Builds bowtie index for reference genome keywords: - - build - - index - - fasta - - genome - - reference + - build + - index + - fasta + - genome + - reference tools: - - bowtie2: - description: | - Bowtie 2 is an ultrafast and memory-efficient tool for aligning - sequencing reads to long reference sequences. - 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'] + - bowtie2: + description: | + Bowtie 2 is an ultrafast and memory-efficient tool for aligning + sequencing reads to long reference sequences. + 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 - description: Input genome fasta file + - fasta: + type: file + description: Input genome fasta file output: - - index: - type: file - description: Bowtie2 genome index files - pattern: "*.bt2" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - index: + type: file + description: Bowtie2 genome index files + pattern: "*.bt2" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/bwa/aln/meta.yml b/modules/bwa/aln/meta.yml index d2424a5f..a8b74b8b 100644 --- a/modules/bwa/aln/meta.yml +++ b/modules/bwa/aln/meta.yml @@ -10,30 +10,30 @@ keywords: - map - fastq tools: - - bwa: - description: | - BWA is a software package for mapping DNA sequences against - a large reference genome, such as the human genome. - homepage: http://bio-bwa.sourceforge.net/ - documentation: http://bio-bwa.sourceforge.net/ - doi: "10.1093/bioinformatics/btp324" - licence: ['GPL-3.0-or-later'] + - bwa: + description: | + BWA is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bio-bwa.sourceforge.net/ + documentation: http://bio-bwa.sourceforge.net/ + doi: "10.1093/bioinformatics/btp324" + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - index: - type: file - description: BWA genome index files - pattern: "Directory containing BWA index *.{amb,ann,bwt,pac,sa}" + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: file + description: BWA genome index files + pattern: "Directory containing BWA index *.{amb,ann,bwt,pac,sa}" output: - meta: diff --git a/modules/bwa/index/meta.yml b/modules/bwa/index/meta.yml index 11d62df3..2bbd81d9 100644 --- a/modules/bwa/index/meta.yml +++ b/modules/bwa/index/meta.yml @@ -1,32 +1,32 @@ name: bwa_index description: Create BWA index for reference genome keywords: - - index - - fasta - - genome - - reference + - index + - fasta + - genome + - reference tools: - - bwa: - description: | - BWA is a software package for mapping DNA sequences against - a large reference genome, such as the human genome. - homepage: http://bio-bwa.sourceforge.net/ - documentation: http://www.htslib.org/doc/samtools.html - arxiv: arXiv:1303.3997 - licence: ['GPL-3.0-or-later'] + - bwa: + description: | + BWA is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bio-bwa.sourceforge.net/ + documentation: http://www.htslib.org/doc/samtools.html + arxiv: arXiv:1303.3997 + licence: ["GPL-3.0-or-later"] input: - - fasta: - type: file - description: Input genome fasta file + - fasta: + type: file + description: Input genome fasta file output: - - index: - type: file - description: BWA genome index files - pattern: "*.{amb,ann,bwt,pac,sa}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - index: + type: file + description: BWA genome index files + pattern: "*.{amb,ann,bwt,pac,sa}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@maxulysse" + - "@drpatelh" + - "@maxulysse" diff --git a/modules/bwa/mem/meta.yml b/modules/bwa/mem/meta.yml index c7c28f19..f84c5227 100644 --- a/modules/bwa/mem/meta.yml +++ b/modules/bwa/mem/meta.yml @@ -1,50 +1,50 @@ name: bwa_mem description: Performs fastq alignment to a fasta reference using BWA keywords: - - mem - - bwa - - alignment - - map - - fastq - - bam - - sam + - mem + - bwa + - alignment + - map + - fastq + - bam + - sam tools: - - bwa: - description: | - BWA is a software package for mapping DNA sequences against - a large reference genome, such as the human genome. - homepage: http://bio-bwa.sourceforge.net/ - documentation: http://www.htslib.org/doc/samtools.html - arxiv: arXiv:1303.3997 - licence: ['GPL-3.0-or-later'] + - bwa: + description: | + BWA is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bio-bwa.sourceforge.net/ + documentation: http://www.htslib.org/doc/samtools.html + arxiv: arXiv:1303.3997 + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - index: - type: file - description: BWA genome index files - pattern: "Directory containing BWA index *.{amb,ann,bwt,pac,sa}" - - sort_bam: - type: boolean - description: use samtools sort (true) or samtools view (false) - pattern: "true or false" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: file + description: BWA genome index files + pattern: "Directory containing BWA index *.{amb,ann,bwt,pac,sa}" + - sort_bam: + type: boolean + description: use samtools sort (true) or samtools view (false) + pattern: "true or false" output: - - bam: - type: file - description: Output BAM file containing read alignments - pattern: "*.{bam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@jeremy1805" + - "@drpatelh" + - "@jeremy1805" diff --git a/modules/bwa/sampe/meta.yml b/modules/bwa/sampe/meta.yml index 7b530a03..5920dc32 100644 --- a/modules/bwa/sampe/meta.yml +++ b/modules/bwa/sampe/meta.yml @@ -11,14 +11,14 @@ keywords: - sam - bam tools: - - bwa: - description: | - BWA is a software package for mapping DNA sequences against - a large reference genome, such as the human genome. - homepage: http://bio-bwa.sourceforge.net/ - documentation: http://bio-bwa.sourceforge.net/ - doi: "10.1093/bioinformatics/btp324" - licence: ['GPL-3.0-or-later'] + - bwa: + description: | + BWA is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bio-bwa.sourceforge.net/ + documentation: http://bio-bwa.sourceforge.net/ + doi: "10.1093/bioinformatics/btp324" + licence: ["GPL-3.0-or-later"] input: - meta: @@ -35,9 +35,9 @@ input: description: SAI file specified alongside meta and reads in input channel. pattern: "*.sai" - index: - type: directory - description: Directory containing BWA index files (amb,ann,bwt,pac,sa) from BWA_INDEX - pattern: "bwa/" + type: directory + description: Directory containing BWA index files (amb,ann,bwt,pac,sa) from BWA_INDEX + pattern: "bwa/" output: - meta: diff --git a/modules/bwa/samse/meta.yml b/modules/bwa/samse/meta.yml index 9a9ecb39..9524a4c8 100644 --- a/modules/bwa/samse/meta.yml +++ b/modules/bwa/samse/meta.yml @@ -12,14 +12,14 @@ keywords: - bam tools: - - bwa: - description: | - BWA is a software package for mapping DNA sequences against - a large reference genome, such as the human genome. - homepage: http://bio-bwa.sourceforge.net/ - documentation: http://bio-bwa.sourceforge.net/ - doi: "10.1093/bioinformatics/btp324" - licence: ['GPL-3.0-or-later'] + - bwa: + description: | + BWA is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bio-bwa.sourceforge.net/ + documentation: http://bio-bwa.sourceforge.net/ + doi: "10.1093/bioinformatics/btp324" + licence: ["GPL-3.0-or-later"] input: - meta: @@ -36,9 +36,9 @@ input: description: SAI file specified alongside meta and reads in input channel. pattern: "*.sai" - index: - type: directory - description: Directory containing BWA index files (amb,ann,bwt,pac,sa) from BWA_INDEX - pattern: "bwa/" + type: directory + description: Directory containing BWA index files (amb,ann,bwt,pac,sa) from BWA_INDEX + pattern: "bwa/" output: - meta: diff --git a/modules/bwamem2/index/meta.yml b/modules/bwamem2/index/meta.yml index e0f6014c..1b52448d 100644 --- a/modules/bwamem2/index/meta.yml +++ b/modules/bwamem2/index/meta.yml @@ -1,30 +1,30 @@ name: bwamem2_index description: Create BWA-mem2 index for reference genome keywords: - - index - - fasta - - genome - - reference + - index + - fasta + - genome + - reference tools: - - bwa: - description: | - BWA-mem2 is a software package for mapping DNA sequences against - a large reference genome, such as the human genome. - homepage: https://github.com/bwa-mem2/bwa-mem2 - documentation: https://github.com/bwa-mem2/bwa-mem2#usage - licence: ['MIT'] + - bwa: + description: | + BWA-mem2 is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: https://github.com/bwa-mem2/bwa-mem2 + documentation: https://github.com/bwa-mem2/bwa-mem2#usage + licence: ["MIT"] input: - - fasta: - type: file - description: Input genome fasta file + - fasta: + type: file + description: Input genome fasta file output: - - index: - type: file - description: BWA genome index files - pattern: "*.{0132,amb,ann,bwt.2bit.64,pac}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - index: + type: file + description: BWA genome index files + pattern: "*.{0132,amb,ann,bwt.2bit.64,pac}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@maxulysse" + - "@maxulysse" diff --git a/modules/bwamem2/mem/meta.yml b/modules/bwamem2/mem/meta.yml index 71e83759..25c97f91 100644 --- a/modules/bwamem2/mem/meta.yml +++ b/modules/bwamem2/mem/meta.yml @@ -1,49 +1,49 @@ name: bwamem2_mem description: Performs fastq alignment to a fasta reference using BWA keywords: - - mem - - bwa - - alignment - - map - - fastq - - bam - - sam + - mem + - bwa + - alignment + - map + - fastq + - bam + - sam tools: - - bwa: - description: | - BWA-mem2 is a software package for mapping DNA sequences against - a large reference genome, such as the human genome. - homepage: https://github.com/bwa-mem2/bwa-mem2 - documentation: http://www.htslib.org/doc/samtools.html - arxiv: arXiv:1303.3997 - licence: ['MIT'] + - bwa: + description: | + BWA-mem2 is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: https://github.com/bwa-mem2/bwa-mem2 + documentation: http://www.htslib.org/doc/samtools.html + arxiv: arXiv:1303.3997 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - index: - type: file - description: BWA genome index files - pattern: "Directory containing BWA index *.{0132,amb,ann,bwt.2bit.64,pac}" - - sort_bam: - type: boolean - description: use samtools sort (true) or samtools view (false) - pattern: "true or false" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: file + description: BWA genome index files + pattern: "Directory containing BWA index *.{0132,amb,ann,bwt.2bit.64,pac}" + - sort_bam: + type: boolean + description: use samtools sort (true) or samtools view (false) + pattern: "true or false" output: - - bam: - type: file - description: Output BAM file containing read alignments - pattern: "*.{bam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@maxulysse" + - "@maxulysse" diff --git a/modules/bwameth/align/meta.yml b/modules/bwameth/align/meta.yml index 1cd66237..1db8210e 100644 --- a/modules/bwameth/align/meta.yml +++ b/modules/bwameth/align/meta.yml @@ -1,52 +1,52 @@ name: bwameth_align description: Performs alignment of BS-Seq reads using bwameth keywords: - - bwameth - - alignment - - 3-letter genome - - map - - methylation - - 5mC - - methylseq - - bisulphite - - fastq - - bam + - bwameth + - alignment + - 3-letter genome + - map + - methylation + - 5mC + - methylseq + - bisulphite + - fastq + - bam tools: - - bwameth: - description: | - Fast and accurate alignment of BS-Seq reads - using bwa-mem and a 3-letter genome. - homepage: https://github.com/brentp/bwa-meth - documentation: https://github.com/brentp/bwa-meth - arxiv: arXiv:1401.1129 - licence: ['MIT'] + - bwameth: + description: | + Fast and accurate alignment of BS-Seq reads + using bwa-mem and a 3-letter genome. + homepage: https://github.com/brentp/bwa-meth + documentation: https://github.com/brentp/bwa-meth + arxiv: arXiv:1401.1129 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - index: - type: dir - description: Directory containing bwameth genome index + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: dir + description: Directory containing bwameth genome index output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: Output BAM file containing read alignments - pattern: "*.{bam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/bwameth/index/meta.yml b/modules/bwameth/index/meta.yml index 352dfd0f..8c116b6e 100644 --- a/modules/bwameth/index/meta.yml +++ b/modules/bwameth/index/meta.yml @@ -1,33 +1,33 @@ name: bwameth_index description: Performs indexing of c2t converted reference genome keywords: - - bwameth - - 3-letter genome - - index - - methylseq - - bisulphite - - fasta + - bwameth + - 3-letter genome + - index + - methylseq + - bisulphite + - fasta tools: - - bwameth: - description: | - Fast and accurate alignment of BS-Seq reads - using bwa-mem and a 3-letter genome. - homepage: https://github.com/brentp/bwa-meth - documentation: https://github.com/brentp/bwa-meth - arxiv: arXiv:1401.1129 - licence: ['MIT'] + - bwameth: + description: | + Fast and accurate alignment of BS-Seq reads + using bwa-mem and a 3-letter genome. + homepage: https://github.com/brentp/bwa-meth + documentation: https://github.com/brentp/bwa-meth + arxiv: arXiv:1401.1129 + licence: ["MIT"] input: - - fasta: - type: file - description: Input genome fasta file + - fasta: + type: file + description: Input genome fasta file output: - - index: - type: dir - description: Directory containing bwameth genome index - pattern: "index" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - index: + type: dir + description: Directory containing bwameth genome index + pattern: "index" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/cat/cat/meta.yml b/modules/cat/cat/meta.yml index b3f370ee..e0a6361d 100644 --- a/modules/cat/cat/meta.yml +++ b/modules/cat/cat/meta.yml @@ -10,7 +10,7 @@ tools: homepage: None documentation: https://man7.org/linux/man-pages/man1/cat.1.html tool_dev_url: None - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - files_in: type: file diff --git a/modules/cat/fastq/meta.yml b/modules/cat/fastq/meta.yml index 1992fa34..c836598e 100644 --- a/modules/cat/fastq/meta.yml +++ b/modules/cat/fastq/meta.yml @@ -1,39 +1,39 @@ name: cat_fastq description: Concatenates fastq files keywords: - - fastq - - concatenate + - fastq + - concatenate tools: - - cat: - 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'] + - cat: + 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 - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: list - description: | - List of input FastQ files to be concatenated. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: list + description: | + List of input FastQ files to be concatenated. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: Merged fastq file - pattern: "*.{merged.fastq.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: Merged fastq file + pattern: "*.{merged.fastq.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/cellranger/count/meta.yml b/modules/cellranger/count/meta.yml index e4647c98..c7c65751 100644 --- a/modules/cellranger/count/meta.yml +++ b/modules/cellranger/count/meta.yml @@ -1,40 +1,40 @@ name: cellranger_count description: Module to use Cell Ranger's pipelines analyze sequencing data produced from Chromium Single Cell Gene Expression. keywords: - - align - - count - - reference + - align + - count + - reference tools: - - cellranger: - description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process Chromium single-cell data to align reads, generate feature-barcode matrices, perform clustering and other secondary analysis, and more. - homepage: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger - documentation: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov - tool_dev_url: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov - doi: "" - licence: 10x Genomics EULA + - cellranger: + description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process Chromium single-cell data to align reads, generate feature-barcode matrices, perform clustering and other secondary analysis, and more. + homepage: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger + documentation: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov + tool_dev_url: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov + doi: "" + licence: 10x Genomics EULA input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - reference: - type: folder - description: Folder containing all the reference indices needed by Cell Ranger + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - reference: + type: folder + description: Folder containing all the reference indices needed by Cell Ranger output: - - outs: - type: file - description: Files containing the outputs of Cell Ranger - pattern: "sample-${meta.gem}/outs/*" - - versions: - type: file - description: File containing software version - pattern: "versions.yml" + - outs: + type: file + description: Files containing the outputs of Cell Ranger + pattern: "sample-${meta.gem}/outs/*" + - versions: + type: file + description: File containing software version + pattern: "versions.yml" authors: - "@ggabernet" - "@Emiller88" diff --git a/modules/cellranger/mkfastq/meta.yml b/modules/cellranger/mkfastq/meta.yml index e288fb8c..1aff3064 100644 --- a/modules/cellranger/mkfastq/meta.yml +++ b/modules/cellranger/mkfastq/meta.yml @@ -7,31 +7,31 @@ keywords: - illumina - bcl2fastq tools: - - cellranger: - description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process Chromium single-cell data to align reads, generate feature-barcode matrices, perform clustering and other secondary analysis, and more. - homepage: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger - documentation: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov - tool_dev_url: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov - doi: "" - licence: 10x Genomics EULA + - cellranger: + description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process Chromium single-cell data to align reads, generate feature-barcode matrices, perform clustering and other secondary analysis, and more. + homepage: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger + documentation: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov + tool_dev_url: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov + doi: "" + licence: 10x Genomics EULA input: - - bcl: - type: file - description: Base call files - pattern: "*.bcl.bgzf" - - csv: - type: file - description: Sample sheet - pattern: "*.csv" + - bcl: + type: file + description: Base call files + pattern: "*.bcl.bgzf" + - csv: + type: file + description: Sample sheet + pattern: "*.csv" output: - - fastq: - type: file - description: Unaligned FastQ files - pattern: "*.fastq.gz" - - versions: - type: file - description: File containing software version - pattern: "versions.yml" + - fastq: + type: file + description: Unaligned FastQ files + pattern: "*.fastq.gz" + - versions: + type: file + description: File containing software version + pattern: "versions.yml" authors: - "@ggabernet" - "@Emiller88" diff --git a/modules/cellranger/mkgtf/meta.yml b/modules/cellranger/mkgtf/meta.yml index c160072f..2136ef4e 100644 --- a/modules/cellranger/mkgtf/meta.yml +++ b/modules/cellranger/mkgtf/meta.yml @@ -1,31 +1,31 @@ name: cellranger_mkgtf description: Module to build a filtered gtf needed by the 10x Genomics Cell Ranger tool. Uses the cellranger mkgtf command. keywords: - - reference - - mkref - - index + - reference + - mkref + - index tools: - - cellranger: - description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process Chromium single-cell data to align reads, generate feature-barcode matrices, perform clustering and other secondary analysis, and more. - homepage: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger - documentation: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov - tool_dev_url: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov - doi: "" - licence: 10x Genomics EULA + - cellranger: + description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process Chromium single-cell data to align reads, generate feature-barcode matrices, perform clustering and other secondary analysis, and more. + homepage: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger + documentation: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov + tool_dev_url: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov + doi: "" + licence: 10x Genomics EULA input: - - gtf: - type: file - description: - pattern: "*.gtf" + - gtf: + type: file + description: + pattern: "*.gtf" output: - - gtf: - type: folder - description: gtf transcriptome file - pattern: "*.filtered.gtf" - - versions: - type: file - description: File containing software version - pattern: "versions.yml" + - gtf: + type: folder + description: gtf transcriptome file + pattern: "*.filtered.gtf" + - versions: + type: file + description: File containing software version + pattern: "versions.yml" authors: - "@ggabernet" - "@Emiller88" diff --git a/modules/cellranger/mkref/meta.yml b/modules/cellranger/mkref/meta.yml index 06bf5b93..171f6d08 100644 --- a/modules/cellranger/mkref/meta.yml +++ b/modules/cellranger/mkref/meta.yml @@ -1,37 +1,37 @@ name: cellranger_mkref description: Module to build the reference needed by the 10x Genomics Cell Ranger tool. Uses the cellranger mkref command. keywords: - - reference - - mkref - - index + - reference + - mkref + - index tools: - - cellranger: - description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process Chromium single-cell data to align reads, generate feature-barcode matrices, perform clustering and other secondary analysis, and more. - homepage: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger - documentation: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov - tool_dev_url: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov - doi: "" - licence: 10x Genomics EULA + - cellranger: + description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process Chromium single-cell data to align reads, generate feature-barcode matrices, perform clustering and other secondary analysis, and more. + homepage: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger + documentation: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov + tool_dev_url: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov + doi: "" + licence: 10x Genomics EULA input: - - fasta: - type: file - description: fasta genome file - pattern: "*.{fasta,fa}" - - gtf: - type: file - description: gtf transcriptome file - pattern: "*.gtf" - - reference_name: - type: val - description: name to give the reference folder - pattern: str + - fasta: + type: file + description: fasta genome file + pattern: "*.{fasta,fa}" + - gtf: + type: file + description: gtf transcriptome file + pattern: "*.gtf" + - reference_name: + type: val + description: name to give the reference folder + pattern: str output: - - reference: - type: folder - description: Folder containing all the reference indices needed by Cell Ranger - - versions: - type: file - description: File containing software version - pattern: "versions.yml" + - reference: + type: folder + description: Folder containing all the reference indices needed by Cell Ranger + - versions: + type: file + description: File containing software version + pattern: "versions.yml" authors: - "@ggabernet" diff --git a/modules/checkm/lineagewf/meta.yml b/modules/checkm/lineagewf/meta.yml index 29c6096e..bcdb472f 100644 --- a/modules/checkm/lineagewf/meta.yml +++ b/modules/checkm/lineagewf/meta.yml @@ -19,7 +19,7 @@ tools: documentation: https://github.com/Ecogenomics/CheckM/wiki tool_dev_url: https://github.com/Ecogenomics/CheckM doi: "10.1101/gr.186072.114" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/chromap/chromap/meta.yml b/modules/chromap/chromap/meta.yml index 57936c67..a86fddc9 100644 --- a/modules/chromap/chromap/meta.yml +++ b/modules/chromap/chromap/meta.yml @@ -1,19 +1,19 @@ name: chromap_chromap description: | - Performs preprocessing and alignment of chromatin fastq files to - fasta reference files using chromap. + Performs preprocessing and alignment of chromatin fastq files to + fasta reference files using chromap. keywords: - - chromap - - alignment - - map - - fastq - - bam - - sam - - hi-c - - atac-seq - - chip-seq - - trimming - - duplicate removal + - chromap + - alignment + - map + - fastq + - bam + - sam + - hi-c + - atac-seq + - chip-seq + - trimming + - duplicate removal tools: - chromap: description: Fast alignment and preprocessing of chromatin profiles @@ -21,7 +21,7 @@ tools: documentation: https://github.com/haowenz/chromap tool_dev_url: https://github.com/haowenz/chromap doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: type: map diff --git a/modules/chromap/index/meta.yml b/modules/chromap/index/meta.yml index a6a18fe9..6659221f 100644 --- a/modules/chromap/index/meta.yml +++ b/modules/chromap/index/meta.yml @@ -1,10 +1,10 @@ name: chromap_index description: Indexes a fasta reference genome ready for chromatin profiling. keywords: - - index - - fasta - - genome - - reference + - index + - fasta + - genome + - reference tools: - chromap: description: Fast alignment and preprocessing of chromatin profiles @@ -12,7 +12,7 @@ tools: documentation: https://github.com/haowenz/chromap tool_dev_url: https://github.com/haowenz/chromap doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - fasta: diff --git a/modules/clonalframeml/meta.yml b/modules/clonalframeml/meta.yml index 874a04be..af5cf91b 100644 --- a/modules/clonalframeml/meta.yml +++ b/modules/clonalframeml/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/xavierdidelot/clonalframeml/wiki tool_dev_url: https://github.com/xavierdidelot/ClonalFrameML doi: "10.1371/journal.pcbi.1004041" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/cmseq/polymut/meta.yml b/modules/cmseq/polymut/meta.yml index 49e6b519..56a65cd9 100644 --- a/modules/cmseq/polymut/meta.yml +++ b/modules/cmseq/polymut/meta.yml @@ -17,7 +17,7 @@ tools: homepage: https://github.com/SegataLab/cmseq documentation: https://github.com/SegataLab/cmseq tool_dev_url: https://github.com/SegataLab/cmseq - licence: ['MIT License'] + licence: ["MIT License"] input: - meta: diff --git a/modules/cnvkit/batch/meta.yml b/modules/cnvkit/batch/meta.yml index 0d263041..474c55f2 100644 --- a/modules/cnvkit/batch/meta.yml +++ b/modules/cnvkit/batch/meta.yml @@ -10,7 +10,7 @@ tools: CNVkit is a Python library and command-line software toolkit to infer and visualize copy number from high-throughput DNA sequencing data. It is designed for use with hybrid capture, including both whole-exome and custom target panels, and short-read sequencing platforms such as Illumina and Ion Torrent. homepage: https://cnvkit.readthedocs.io/en/stable/index.html documentation: https://cnvkit.readthedocs.io/en/stable/index.html - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] params: - outdir: type: string @@ -85,9 +85,9 @@ output: description: File containing software versions pattern: "versions.yml" authors: - - "@kaurravneet4123" - - "@KevinMenden" - - "@MaxUlysse" - - "@drpatelh" - - "@fbdtemme" - - "@lassefolkersen" + - "@kaurravneet4123" + - "@KevinMenden" + - "@MaxUlysse" + - "@drpatelh" + - "@fbdtemme" + - "@lassefolkersen" diff --git a/modules/cooler/cload/meta.yml b/modules/cooler/cload/meta.yml index 8ac75911..ddb0443b 100644 --- a/modules/cooler/cload/meta.yml +++ b/modules/cooler/cload/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://cooler.readthedocs.io/en/latest/index.html tool_dev_url: https://github.com/open2c/cooler doi: "10.1093/bioinformatics/btz540" - licence: ['BSD-3-clause'] + licence: ["BSD-3-clause"] input: - meta: diff --git a/modules/cooler/digest/meta.yml b/modules/cooler/digest/meta.yml index 6ce95ad7..56e2c08c 100644 --- a/modules/cooler/digest/meta.yml +++ b/modules/cooler/digest/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://cooler.readthedocs.io/en/latest/index.html tool_dev_url: https://github.com/open2c/cooler doi: "10.1093/bioinformatics/btz540" - licence: ['BSD-3-Clause'] + licence: ["BSD-3-Clause"] input: - fasta: diff --git a/modules/cooler/dump/meta.yml b/modules/cooler/dump/meta.yml index a9d1afd5..fc12cdf3 100644 --- a/modules/cooler/dump/meta.yml +++ b/modules/cooler/dump/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://cooler.readthedocs.io/en/latest/index.html tool_dev_url: https://github.com/open2c/cooler doi: "10.1093/bioinformatics/btz540" - licence: ['BSD-3-Clause'] + licence: ["BSD-3-Clause"] input: - meta: diff --git a/modules/cooler/merge/meta.yml b/modules/cooler/merge/meta.yml index f5c0a733..2688dc96 100644 --- a/modules/cooler/merge/meta.yml +++ b/modules/cooler/merge/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://cooler.readthedocs.io/en/latest/index.html tool_dev_url: https://github.com/open2c/cooler doi: "10.1093/bioinformatics/btz540" - licence: ['BSD-3-clause'] + licence: ["BSD-3-clause"] input: - meta: diff --git a/modules/cooler/zoomify/meta.yml b/modules/cooler/zoomify/meta.yml index 74bdbf44..d9e12b05 100644 --- a/modules/cooler/zoomify/meta.yml +++ b/modules/cooler/zoomify/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://cooler.readthedocs.io/en/latest/index.html tool_dev_url: https://github.com/open2c/cooler doi: "10.1093/bioinformatics/btz540" - licence: ['BSD-3-clause'] + licence: ["BSD-3-clause"] input: - meta: diff --git a/modules/csvtk/concat/meta.yml b/modules/csvtk/concat/meta.yml index 6c7f9f10..2d2f856d 100644 --- a/modules/csvtk/concat/meta.yml +++ b/modules/csvtk/concat/meta.yml @@ -11,7 +11,7 @@ tools: documentation: http://bioinf.shenwei.me/csvtk tool_dev_url: https://github.com/shenwei356/csvtk doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/csvtk/split/meta.yml b/modules/csvtk/split/meta.yml index 45b71d14..334cc6ac 100644 --- a/modules/csvtk/split/meta.yml +++ b/modules/csvtk/split/meta.yml @@ -7,13 +7,13 @@ keywords: tools: - csvtk: description: - CSVTK is a cross-platform, efficient and practical CSV/TSV toolkit - that allows rapid data investigation and manipulation. + CSVTK is a cross-platform, efficient and practical CSV/TSV toolkit + that allows rapid data investigation and manipulation. homepage: https://bioinf.shenwei.me/csvtk/ documentation: https://bioinf.shenwei.me/csvtk/ tool_dev_url: https://github.com/shenwei356/csvtk doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map diff --git a/modules/custom/dumpsoftwareversions/meta.yml b/modules/custom/dumpsoftwareversions/meta.yml index 5b5b8a60..60b546a0 100644 --- a/modules/custom/dumpsoftwareversions/meta.yml +++ b/modules/custom/dumpsoftwareversions/meta.yml @@ -8,7 +8,7 @@ tools: 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'] + licence: ["MIT"] input: - versions: type: file diff --git a/modules/custom/getchromsizes/meta.yml b/modules/custom/getchromsizes/meta.yml index eb1db4bb..ee6c2571 100644 --- a/modules/custom/getchromsizes/meta.yml +++ b/modules/custom/getchromsizes/meta.yml @@ -11,7 +11,7 @@ tools: documentation: http://www.htslib.org/doc/samtools.html tool_dev_url: https://github.com/samtools/samtools doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + licence: ["MIT"] input: - fasta: @@ -33,7 +33,6 @@ output: description: File containing software version pattern: "versions.yml" - authors: - "@tamara-hodgetts" - "@chris-cheshire" diff --git a/modules/cutadapt/meta.yml b/modules/cutadapt/meta.yml index b4e6f6e7..bcfe291c 100644 --- a/modules/cutadapt/meta.yml +++ b/modules/cutadapt/meta.yml @@ -11,7 +11,7 @@ tools: Cutadapt finds and removes adapter sequences, primers, poly-A tails and other types of unwanted sequence from your high-throughput sequencing reads. documentation: https://cutadapt.readthedocs.io/en/stable/index.html doi: DOI:10.14806/ej.17.1.200 - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map diff --git a/modules/damageprofiler/meta.yml b/modules/damageprofiler/meta.yml index 19ba908f..b41aeb8d 100644 --- a/modules/damageprofiler/meta.yml +++ b/modules/damageprofiler/meta.yml @@ -18,7 +18,7 @@ tools: documentation: https://damageprofiler.readthedocs.io/ tool_dev_url: https://github.com/Integrative-Transcriptomics/DamageProfiler doi: "10.1093/bioinformatics/btab190" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/dastool/dastool/meta.yml b/modules/dastool/dastool/meta.yml index 12d31e9f..a77df9bd 100644 --- a/modules/dastool/dastool/meta.yml +++ b/modules/dastool/dastool/meta.yml @@ -20,7 +20,7 @@ tools: documentation: https://github.com/cmks/DAS_Tool tool_dev_url: https://github.com/cmks/DAS_Tool doi: "10.1038/s41564-018-0171-1" - licence: ['BSD'] + licence: ["BSD"] input: - meta: @@ -47,7 +47,6 @@ input: type: val description: Engine used for single copy gene identification. USEARCH is not supported due to it being proprietary [blast/diamond] - output: - meta: type: map @@ -84,7 +83,7 @@ output: pattern: "*.proteins.faa" - fasta_archaea_scg: type: file - description: Results of archaeal single-copy-gene prediction + description: Results of archaeal single-copy-gene prediction pattern: "*.archaea.scg" - fasta_bacteria_scg: type: file diff --git a/modules/dastool/scaffolds2bin/meta.yml b/modules/dastool/scaffolds2bin/meta.yml index f41a3cf2..0bf8618d 100644 --- a/modules/dastool/scaffolds2bin/meta.yml +++ b/modules/dastool/scaffolds2bin/meta.yml @@ -20,7 +20,7 @@ tools: documentation: https://github.com/cmks/DAS_Tool tool_dev_url: https://github.com/cmks/DAS_Tool doi: "10.1038/s41564-018-0171-1" - licence: ['BSD'] + licence: ["BSD"] input: - meta: diff --git a/modules/dedup/meta.yml b/modules/dedup/meta.yml index 0ddd648f..17cf4e26 100644 --- a/modules/dedup/meta.yml +++ b/modules/dedup/meta.yml @@ -14,7 +14,7 @@ tools: documentation: https://dedup.readthedocs.io/en/latest/ tool_dev_url: https://github.com/apeltzer/DeDup doi: "10.1186/s13059-016-0918-z" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: @@ -54,7 +54,5 @@ output: description: Dedup log information pattern: "*log" - - authors: - "@jfy133" diff --git a/modules/deeparg/downloaddata/meta.yml b/modules/deeparg/downloaddata/meta.yml index 6cfa192e..352999e2 100644 --- a/modules/deeparg/downloaddata/meta.yml +++ b/modules/deeparg/downloaddata/meta.yml @@ -14,7 +14,7 @@ tools: documentation: https://bitbucket.org/gusphdproj/deeparg-ss/src/master/ tool_dev_url: https://bitbucket.org/gusphdproj/deeparg-ss/src/master/ doi: "10.1186/s40168-018-0401-z" - licence: ['MIT'] + licence: ["MIT"] input: - none: There is no input. This module downloads a pre-built database for use with deepARG. diff --git a/modules/deeparg/predict/meta.yml b/modules/deeparg/predict/meta.yml index 244b9df7..fa50c70e 100644 --- a/modules/deeparg/predict/meta.yml +++ b/modules/deeparg/predict/meta.yml @@ -16,7 +16,7 @@ tools: documentation: https://bitbucket.org/gusphdproj/deeparg-ss/src/master/ tool_dev_url: https://bitbucket.org/gusphdproj/deeparg-ss/src/master/ doi: "10.1186/s40168-018-0401-z" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/deeptools/computematrix/meta.yml b/modules/deeptools/computematrix/meta.yml index 584fade1..eaa990dd 100644 --- a/modules/deeptools/computematrix/meta.yml +++ b/modules/deeptools/computematrix/meta.yml @@ -12,7 +12,7 @@ tools: 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'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/deeptools/plotfingerprint/meta.yml b/modules/deeptools/plotfingerprint/meta.yml index 3acd1471..07c25748 100644 --- a/modules/deeptools/plotfingerprint/meta.yml +++ b/modules/deeptools/plotfingerprint/meta.yml @@ -12,7 +12,7 @@ tools: 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'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/deeptools/plotheatmap/meta.yml b/modules/deeptools/plotheatmap/meta.yml index 34f2865b..ea206fb6 100644 --- a/modules/deeptools/plotheatmap/meta.yml +++ b/modules/deeptools/plotheatmap/meta.yml @@ -12,7 +12,7 @@ tools: 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'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/deeptools/plotprofile/meta.yml b/modules/deeptools/plotprofile/meta.yml index 5b61aed4..795fda44 100644 --- a/modules/deeptools/plotprofile/meta.yml +++ b/modules/deeptools/plotprofile/meta.yml @@ -12,7 +12,7 @@ tools: 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'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/deepvariant/meta.yml b/modules/deepvariant/meta.yml index d4423d69..b2d480a3 100644 --- a/modules/deepvariant/meta.yml +++ b/modules/deepvariant/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/google/deepvariant tool_dev_url: https://github.com/google/deepvariant doi: "https://doi.org/10.1038/nbt.4235" - licence: ['BSD-3-clause'] + licence: ["BSD-3-clause"] input: - meta: diff --git a/modules/delly/call/meta.yml b/modules/delly/call/meta.yml index 56539188..642e095d 100644 --- a/modules/delly/call/meta.yml +++ b/modules/delly/call/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://github.com/dellytools/delly/blob/master/README.md tool_dev_url: None doi: "DOI:10.1093/bioinformatics/bts378" - licence: ['BSD-3-Clause'] + licence: ["BSD-3-Clause"] input: - meta: diff --git a/modules/diamond/blastp/meta.yml b/modules/diamond/blastp/meta.yml index 228c1a22..8ac1d371 100644 --- a/modules/diamond/blastp/meta.yml +++ b/modules/diamond/blastp/meta.yml @@ -12,32 +12,32 @@ tools: documentation: https://github.com/bbuchfink/diamond/wiki tool_dev_url: https://github.com/bbuchfink/diamond doi: "doi:10.1038/s41592-021-01101-x" - licence: ['GPL v3.0'] + licence: ["GPL v3.0"] input: - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - fasta: - type: file - description: Input fasta file containing query sequences - pattern: "*.{fa,fasta}" + type: file + description: Input fasta file containing query sequences + pattern: "*.{fa,fasta}" - db: - type: directory - description: Directory containing the protein blast database - pattern: "*" + type: directory + description: Directory containing the protein blast database + pattern: "*" output: - txt: - type: file - description: File containing blastp hits - pattern: "*.{blastp.txt}" + type: file + description: File containing blastp hits + pattern: "*.{blastp.txt}" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@spficklin" diff --git a/modules/diamond/blastx/meta.yml b/modules/diamond/blastx/meta.yml index 4a3ab9b6..7eb3d7b4 100644 --- a/modules/diamond/blastx/meta.yml +++ b/modules/diamond/blastx/meta.yml @@ -12,32 +12,32 @@ tools: documentation: https://github.com/bbuchfink/diamond/wiki tool_dev_url: https://github.com/bbuchfink/diamond doi: "doi:10.1038/s41592-021-01101-x" - licence: ['GPL v3.0'] + licence: ["GPL v3.0"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: Input fasta file containing query sequences - pattern: "*.{fa,fasta}" - - db: - type: directory - description: Directory containing the nucelotide blast database - pattern: "*" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Input fasta file containing query sequences + pattern: "*.{fa,fasta}" + - db: + type: directory + description: Directory containing the nucelotide blast database + pattern: "*" output: - - txt: - type: file - description: File containing blastx hits - pattern: "*.{blastx.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - txt: + type: file + description: File containing blastx hits + pattern: "*.{blastx.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@spficklin" diff --git a/modules/diamond/makedb/meta.yml b/modules/diamond/makedb/meta.yml index e378be7e..5db193ee 100644 --- a/modules/diamond/makedb/meta.yml +++ b/modules/diamond/makedb/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/bbuchfink/diamond/wiki tool_dev_url: https://github.com/bbuchfink/diamond doi: "doi:10.1038/s41592-021-01101-x" - licence: ['GPL v3.0'] + licence: ["GPL v3.0"] input: - fasta: diff --git a/modules/dragmap/align/meta.yml b/modules/dragmap/align/meta.yml index e943ccf8..dcce34fb 100644 --- a/modules/dragmap/align/meta.yml +++ b/modules/dragmap/align/meta.yml @@ -1,42 +1,42 @@ name: dragmap_align description: Performs fastq alignment to a reference using DRAGMAP keywords: - - alignment - - map - - fastq - - bam - - sam + - alignment + - map + - fastq + - bam + - sam tools: - - dragmap: - description: Dragmap is the Dragen mapper/aligner Open Source Software. - homepage: https://github.com/Illumina/dragmap - documentation: https://github.com/Illumina/dragmap - tool_dev_url: https://github.com/Illumina/dragmap#basic-command-line-usage - doi: "" - licence: ['GPL v3'] + - dragmap: + description: Dragmap is the Dragen mapper/aligner Open Source Software. + homepage: https://github.com/Illumina/dragmap + documentation: https://github.com/Illumina/dragmap + tool_dev_url: https://github.com/Illumina/dragmap#basic-command-line-usage + doi: "" + licence: ["GPL v3"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - hashmap: - type: file - description: DRAGMAP hash table - pattern: "Directory containing DRAGMAP hash table *.{cmp,.bin,.txt}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - hashmap: + type: file + description: DRAGMAP hash table + pattern: "Directory containing DRAGMAP hash table *.{cmp,.bin,.txt}" output: - - bam: - type: file - description: Output BAM file containing read alignments - pattern: "*.{bam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@Emiller88" diff --git a/modules/dragmap/hashtable/meta.yml b/modules/dragmap/hashtable/meta.yml index 86e58789..f86a5dbb 100644 --- a/modules/dragmap/hashtable/meta.yml +++ b/modules/dragmap/hashtable/meta.yml @@ -1,30 +1,30 @@ name: dragmap_hashtable description: Create DRAGEN hashtable for reference genome keywords: - - index - - fasta - - genome - - reference + - index + - fasta + - genome + - reference tools: - - dragmap: - description: Dragmap is the Dragen mapper/aligner Open Source Software. - homepage: https://github.com/Illumina/dragmap - documentation: https://github.com/Illumina/dragmap - tool_dev_url: https://github.com/Illumina/dragmap#basic-command-line-usage - doi: "" - licence: ['GPL v3'] + - dragmap: + description: Dragmap is the Dragen mapper/aligner Open Source Software. + homepage: https://github.com/Illumina/dragmap + documentation: https://github.com/Illumina/dragmap + tool_dev_url: https://github.com/Illumina/dragmap#basic-command-line-usage + doi: "" + licence: ["GPL v3"] input: - - fasta: - type: file - description: Input genome fasta file + - fasta: + type: file + description: Input genome fasta file output: - - hashmap: - type: file - description: DRAGMAP hash table - pattern: "*.{cmp,.bin,.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - hashmap: + type: file + description: DRAGMAP hash table + pattern: "*.{cmp,.bin,.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@Emiller88" diff --git a/modules/dragonflye/meta.yml b/modules/dragonflye/meta.yml index 773795db..3260a205 100644 --- a/modules/dragonflye/meta.yml +++ b/modules/dragonflye/meta.yml @@ -10,7 +10,7 @@ tools: description: Microbial assembly pipeline for Nanopore reads homepage: https://github.com/rpetit3/dragonflye documentation: https://github.com/rpetit3/dragonflye/blob/main/README.md - licence: ['GPL v2'] + licence: ["GPL v2"] input: - meta: @@ -19,9 +19,9 @@ input: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - reads: - type: file - description: Input Nanopore FASTQ file - pattern: "*.fastq.gz" + type: file + description: Input Nanopore FASTQ file + pattern: "*.fastq.gz" output: - meta: type: map diff --git a/modules/dshbio/exportsegments/meta.yml b/modules/dshbio/exportsegments/meta.yml index eddb6d09..5dcb1364 100644 --- a/modules/dshbio/exportsegments/meta.yml +++ b/modules/dshbio/exportsegments/meta.yml @@ -1,41 +1,41 @@ name: dshbio_exportsegments description: Export assembly segment sequences in GFA 1.0 format to FASTA format keywords: - - gfa - - assembly - - segment + - gfa + - assembly + - segment tools: - - dshbio: - description: | - Reads, features, variants, assemblies, alignments, genomic range trees, pangenome - graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 - or later. - homepage: https://github.com/heuermh/dishevelled-bio - documentation: https://github.com/heuermh/dishevelled-bio - licence: ['LGPL-3.0-or-later'] + - dshbio: + description: | + Reads, features, variants, assemblies, alignments, genomic range trees, pangenome + graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 + or later. + homepage: https://github.com/heuermh/dishevelled-bio + documentation: https://github.com/heuermh/dishevelled-bio + licence: ["LGPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - gfa: - type: file - description: Assembly segments in uncompressed or compressed GFA 1.0 format - pattern: "*.{gfa|gfa.bgz|gfa.gz|gfa.zst}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - gfa: + type: file + description: Assembly segments in uncompressed or compressed GFA 1.0 format + pattern: "*.{gfa|gfa.bgz|gfa.gz|gfa.zst}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: Assembly segment sequences in gzipped FASTA format - pattern: "*.{fa.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Assembly segment sequences in gzipped FASTA format + pattern: "*.{fa.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@heuermh" + - "@heuermh" diff --git a/modules/dshbio/filterbed/meta.yml b/modules/dshbio/filterbed/meta.yml index 77054be4..4547349e 100644 --- a/modules/dshbio/filterbed/meta.yml +++ b/modules/dshbio/filterbed/meta.yml @@ -1,39 +1,39 @@ name: dshbio_filterbed description: Filter features in gzipped BED format keywords: - - bed + - bed tools: - - dshbio: - description: | - Reads, features, variants, assemblies, alignments, genomic range trees, pangenome - graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 - or later. - homepage: https://github.com/heuermh/dishevelled-bio - documentation: https://github.com/heuermh/dishevelled-bio - licence: ['LGPL-3.0-or-later'] + - dshbio: + description: | + Reads, features, variants, assemblies, alignments, genomic range trees, pangenome + graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 + or later. + homepage: https://github.com/heuermh/dishevelled-bio + documentation: https://github.com/heuermh/dishevelled-bio + licence: ["LGPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Features in gzipped BED format - pattern: "*.{bed.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Features in gzipped BED format + pattern: "*.{bed.gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Features in gzipped BED format - pattern: "*.{bed.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Features in gzipped BED format + pattern: "*.{bed.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@heuermh" + - "@heuermh" diff --git a/modules/dshbio/filtergff3/meta.yml b/modules/dshbio/filtergff3/meta.yml index aa1bce43..b7de7939 100644 --- a/modules/dshbio/filtergff3/meta.yml +++ b/modules/dshbio/filtergff3/meta.yml @@ -1,39 +1,39 @@ name: dshbio_filtergff3 description: Filter features in gzipped GFF3 format keywords: - - gff3 + - gff3 tools: - - dshbio: - description: | - Reads, features, variants, assemblies, alignments, genomic range trees, pangenome - graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 - or later. - homepage: https://github.com/heuermh/dishevelled-bio - documentation: https://github.com/heuermh/dishevelled-bio - licence: ['LGPL-3.0-or-later'] + - dshbio: + description: | + Reads, features, variants, assemblies, alignments, genomic range trees, pangenome + graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 + or later. + homepage: https://github.com/heuermh/dishevelled-bio + documentation: https://github.com/heuermh/dishevelled-bio + licence: ["LGPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - gff3: - type: file - description: Features in gzipped GFF3 format - pattern: "*.{gff3.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - gff3: + type: file + description: Features in gzipped GFF3 format + pattern: "*.{gff3.gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - gff3: - type: file - description: Features in gzipped GFF3 format - pattern: "*.{gff3.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - gff3: + type: file + description: Features in gzipped GFF3 format + pattern: "*.{gff3.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@heuermh" + - "@heuermh" diff --git a/modules/dshbio/splitbed/meta.yml b/modules/dshbio/splitbed/meta.yml index a35ea25f..8e8c473f 100644 --- a/modules/dshbio/splitbed/meta.yml +++ b/modules/dshbio/splitbed/meta.yml @@ -1,39 +1,39 @@ name: dshbio_splitbed description: Split features in gzipped BED format keywords: - - bed + - bed tools: - - dshbio: - description: | - Reads, features, variants, assemblies, alignments, genomic range trees, pangenome - graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 - or later. - homepage: https://github.com/heuermh/dishevelled-bio - documentation: https://github.com/heuermh/dishevelled-bio - licence: ['LGPL-3.0-or-later'] + - dshbio: + description: | + Reads, features, variants, assemblies, alignments, genomic range trees, pangenome + graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 + or later. + homepage: https://github.com/heuermh/dishevelled-bio + documentation: https://github.com/heuermh/dishevelled-bio + licence: ["LGPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Features in gzipped BED format to split - pattern: "*.{bed.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Features in gzipped BED format to split + pattern: "*.{bed.gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Features in split gzipped BED formatted files - pattern: "*.{bed.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Features in split gzipped BED formatted files + pattern: "*.{bed.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@heuermh" + - "@heuermh" diff --git a/modules/dshbio/splitgff3/meta.yml b/modules/dshbio/splitgff3/meta.yml index fdbbe16a..d23f2a15 100644 --- a/modules/dshbio/splitgff3/meta.yml +++ b/modules/dshbio/splitgff3/meta.yml @@ -1,39 +1,39 @@ name: dshbio_splitgff3 description: Split features in gzipped GFF3 format keywords: - - gff3 + - gff3 tools: - - dshbio: - description: | - Reads, features, variants, assemblies, alignments, genomic range trees, pangenome - graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 - or later. - homepage: https://github.com/heuermh/dishevelled-bio - documentation: https://github.com/heuermh/dishevelled-bio - licence: ['LGPL-3.0-or-later'] + - dshbio: + description: | + Reads, features, variants, assemblies, alignments, genomic range trees, pangenome + graphs, and a bunch of random command line tools for bioinformatics. LGPL version 3 + or later. + homepage: https://github.com/heuermh/dishevelled-bio + documentation: https://github.com/heuermh/dishevelled-bio + licence: ["LGPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - gff3: - type: file - description: Features in gzipped GFF3 format to split - pattern: "*.{gff3.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - gff3: + type: file + description: Features in gzipped GFF3 format to split + pattern: "*.{gff3.gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - gff3: - type: file - description: Features in split gzipped GFF3 formatted files - pattern: "*.{gff3.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - gff3: + type: file + description: Features in split gzipped GFF3 formatted files + pattern: "*.{gff3.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@heuermh" + - "@heuermh" diff --git a/modules/ectyper/meta.yml b/modules/ectyper/meta.yml index a6beca29..233290e7 100644 --- a/modules/ectyper/meta.yml +++ b/modules/ectyper/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/phac-nml/ecoli_serotyping tool_dev_url: https://github.com/phac-nml/ecoli_serotyping doi: "" - licence: ['Apache 2'] + licence: ["Apache 2"] input: - meta: diff --git a/modules/emmtyper/meta.yml b/modules/emmtyper/meta.yml index 019a8e4c..a63c40b6 100644 --- a/modules/emmtyper/meta.yml +++ b/modules/emmtyper/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/MDU-PHL/emmtyper tool_dev_url: https://github.com/MDU-PHL/emmtyper doi: "" - licence: ['GNU General Public v3 (GPL v3)'] + licence: ["GNU General Public v3 (GPL v3)"] input: - meta: diff --git a/modules/ensemblvep/meta.yml b/modules/ensemblvep/meta.yml index 1b819227..cd9c8905 100644 --- a/modules/ensemblvep/meta.yml +++ b/modules/ensemblvep/meta.yml @@ -1,65 +1,65 @@ name: ENSEMBLVEP description: Ensembl Variant Effect Predictor (VEP) keywords: - - annotation + - annotation tools: - - ensemblvep: - description: | - VEP determines the effect of your variants (SNPs, insertions, deletions, CNVs - or structural variants) on genes, transcripts, and protein sequence, as well as regulatory regions. - homepage: https://www.ensembl.org/info/docs/tools/vep/index.html - documentation: https://www.ensembl.org/info/docs/tools/vep/script/index.html - licence: ['Apache-2.0'] + - ensemblvep: + description: | + VEP determines the effect of your variants (SNPs, insertions, deletions, CNVs + or structural variants) on genes, transcripts, and protein sequence, as well as regulatory regions. + homepage: https://www.ensembl.org/info/docs/tools/vep/index.html + documentation: https://www.ensembl.org/info/docs/tools/vep/script/index.html + licence: ["Apache-2.0"] params: - - use_cache: - type: boolean - description: | - Enable the usage of containers with cache - Does not work with conda - - vep_tag: - type: value - description: | - Specify the tag for the container - https://hub.docker.com/r/nfcore/vep/tags + - use_cache: + type: boolean + description: | + Enable the usage of containers with cache + Does not work with conda + - vep_tag: + type: value + description: | + Specify the tag for the container + https://hub.docker.com/r/nfcore/vep/tags input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - vcf: - type: file - description: | - vcf to annotate - - genome: - type: value - description: | - which genome to annotate with - - species: - type: value - description: | - which species to annotate with - - cache_version: - type: value - description: | - which version of the cache to annotate with - - cache: - type: file - description: | - path to VEP cache (optional) + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: | + vcf to annotate + - genome: + type: value + description: | + which genome to annotate with + - species: + type: value + description: | + which species to annotate with + - cache_version: + type: value + description: | + which version of the cache to annotate with + - cache: + type: file + description: | + path to VEP cache (optional) output: - - vcf: - type: file - description: | - annotated vcf - pattern: "*.ann.vcf" - - report: - type: file - description: VEP report file - pattern: "*.html" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - vcf: + type: file + description: | + annotated vcf + pattern: "*.ann.vcf" + - report: + type: file + description: VEP report file + pattern: "*.html" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@maxulysse" + - "@maxulysse" diff --git a/modules/expansionhunter/meta.yml b/modules/expansionhunter/meta.yml index 17d72bb4..3483c0db 100644 --- a/modules/expansionhunter/meta.yml +++ b/modules/expansionhunter/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/Illumina/ExpansionHunter/blob/master/docs/01_Introduction.md tool_dev_url: None doi: "10.1093/bioinformatics/btz431" - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/fargene/meta.yml b/modules/fargene/meta.yml index 35e98008..785b4cc3 100644 --- a/modules/fargene/meta.yml +++ b/modules/fargene/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://github.com/fannyhb/fargene tool_dev_url: https://github.com/fannyhb/fargene doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: @@ -96,6 +96,5 @@ output: description: The from FASTQ to FASTA converted input files and their translated input sequences. Are only saved if option --store-peptides is used. pattern: "*.{fasta}" - authors: - "@louperelo" diff --git a/modules/fastani/meta.yml b/modules/fastani/meta.yml index dc62d485..2a997716 100644 --- a/modules/fastani/meta.yml +++ b/modules/fastani/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://github.com/ParBLiSS/FastANI tool_dev_url: https://github.com/ParBLiSS/FastANI doi: 10.1038/s41467-018-07641-9 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/fastp/meta.yml b/modules/fastp/meta.yml index a1875faf..f53bb09f 100644 --- a/modules/fastp/meta.yml +++ b/modules/fastp/meta.yml @@ -10,7 +10,7 @@ tools: A tool designed to provide fast all-in-one preprocessing for FastQ files. This tool is developed in C++ with multithreading supported to afford high performance. documentation: https://github.com/OpenGene/fastp doi: https://doi.org/10.1093/bioinformatics/bty560 - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map diff --git a/modules/fastqc/meta.yml b/modules/fastqc/meta.yml index b09553a3..4da5bb5a 100644 --- a/modules/fastqc/meta.yml +++ b/modules/fastqc/meta.yml @@ -1,52 +1,52 @@ name: fastqc description: Run FastQC on sequenced reads keywords: - - quality control - - qc - - adapters - - fastq + - quality control + - qc + - adapters + - fastq tools: - - fastqc: - description: | - FastQC gives general quality metrics about your reads. - It provides information about the quality score distribution - across your reads, the per base sequence content (%A/C/G/T). - You get information about adapter contamination and other - 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'] + - fastqc: + description: | + FastQC gives general quality metrics about your reads. + It provides information about the quality score distribution + across your reads, the per base sequence content (%A/C/G/T). + You get information about adapter contamination and other + 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 - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - html: - type: file - description: FastQC report - pattern: "*_{fastqc.html}" - - zip: - type: file - description: FastQC report archive - pattern: "*_{fastqc.zip}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - html: + type: file + description: FastQC report + pattern: "*_{fastqc.html}" + - zip: + type: file + description: FastQC report archive + pattern: "*_{fastqc.zip}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@grst" - - "@ewels" - - "@FelixKrueger" + - "@drpatelh" + - "@grst" + - "@ewels" + - "@FelixKrueger" diff --git a/modules/fastqscan/meta.yml b/modules/fastqscan/meta.yml index 99538b5a..909a964f 100644 --- a/modules/fastqscan/meta.yml +++ b/modules/fastqscan/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/rpetit3/fastq-scan tool_dev_url: https://github.com/rpetit3/fastq-scan doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/fasttree/meta.yml b/modules/fasttree/meta.yml index 5906675b..c90e8d7c 100644 --- a/modules/fasttree/meta.yml +++ b/modules/fasttree/meta.yml @@ -10,7 +10,7 @@ tools: documentation: http://www.microbesonline.org/fasttree/#Usage tool_dev_url: None doi: "" - licence: ['GPL v2'] + licence: ["GPL v2"] input: - alignment: diff --git a/modules/fgbio/callmolecularconsensusreads/meta.yml b/modules/fgbio/callmolecularconsensusreads/meta.yml index 523f3214..37182512 100644 --- a/modules/fgbio/callmolecularconsensusreads/meta.yml +++ b/modules/fgbio/callmolecularconsensusreads/meta.yml @@ -2,44 +2,44 @@ name: fgbio_callmolecularconsensusreads description: Calls consensus sequences from reads with the same unique molecular tag. keywords: - - UMIs - - consensus sequence - - bam - - sam + - UMIs + - consensus sequence + - bam + - sam tools: - - fgbio: - description: Tools for working with genomic and high throughput sequencing data. - homepage: https://github.com/fulcrumgenomics/fgbio - documentation: http://fulcrumgenomics.github.io/fgbio/ - licence: ['MIT'] + - fgbio: + description: Tools for working with genomic and high throughput sequencing data. + homepage: https://github.com/fulcrumgenomics/fgbio + documentation: http://fulcrumgenomics.github.io/fgbio/ + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false, collapse:false ] - - bam: - type: file - description: | - The input SAM or BAM file. - pattern: "*.{bam,sam}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false, collapse:false ] + - bam: + type: file + description: | + The input SAM or BAM file. + pattern: "*.{bam,sam}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: | - Output SAM or BAM file to write consensus reads. - pattern: "*.{bam,sam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: | + Output SAM or BAM file to write consensus reads. + pattern: "*.{bam,sam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@sruthipsuresh" + - "@sruthipsuresh" diff --git a/modules/fgbio/fastqtobam/meta.yml b/modules/fgbio/fastqtobam/meta.yml index e356d315..3081cafc 100644 --- a/modules/fgbio/fastqtobam/meta.yml +++ b/modules/fgbio/fastqtobam/meta.yml @@ -1,6 +1,6 @@ name: fgbio_fastqtobam description: | - Using the FGBIO tools, converts FASTQ files sequenced with UMIs into BAM files, moving the UMI barcode into the RX field of the BAM file + Using the FGBIO tools, converts FASTQ files sequenced with UMIs into BAM files, moving the UMI barcode into the RX field of the BAM file keywords: - fastqtobam - fgbio @@ -11,7 +11,7 @@ tools: documentation: http://fulcrumgenomics.github.io/fgbio/tools/latest/ tool_dev_url: https://github.com/fulcrumgenomics/fgbio doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - reads: @@ -22,11 +22,11 @@ input: - read_structure: type: string description: | - A read structure should always be provided for each of the fastq files. - If single end, the string will contain only one structure (i.e. "2M11S+T"), if paired-end the string - will contain two structures separated by a blank space (i.e. "2M11S+T 2M11S+T"). - If the read does not contain any UMI, the structure will be +T (i.e. only template of any length). - https://github.com/fulcrumgenomics/fgbio/wiki/Read-Structures + A read structure should always be provided for each of the fastq files. + If single end, the string will contain only one structure (i.e. "2M11S+T"), if paired-end the string + will contain two structures separated by a blank space (i.e. "2M11S+T 2M11S+T"). + If the read does not contain any UMI, the structure will be +T (i.e. only template of any length). + https://github.com/fulcrumgenomics/fgbio/wiki/Read-Structures output: - meta: diff --git a/modules/fgbio/groupreadsbyumi/meta.yml b/modules/fgbio/groupreadsbyumi/meta.yml index 18ce149e..c544040b 100644 --- a/modules/fgbio/groupreadsbyumi/meta.yml +++ b/modules/fgbio/groupreadsbyumi/meta.yml @@ -1,11 +1,11 @@ name: fgbio_groupreadsbyumi description: | - Groups reads together that appear to have come from the same original molecule. - Reads are grouped by template, and then templates are sorted by the 5’ mapping positions - of the reads from the template, used from earliest mapping position to latest. - Reads that have the same end positions are then sub-grouped by UMI sequence. - (!) Note: the MQ tag is required on reads with mapped mates (!) - This can be added using samblaster with the optional argument --addMateTags. + Groups reads together that appear to have come from the same original molecule. + Reads are grouped by template, and then templates are sorted by the 5’ mapping positions + of the reads from the template, used from earliest mapping position to latest. + Reads that have the same end positions are then sub-grouped by UMI sequence. + (!) Note: the MQ tag is required on reads with mapped mates (!) + This can be added using samblaster with the optional argument --addMateTags. keywords: - UMI - groupreads @@ -17,7 +17,7 @@ tools: documentation: http://fulcrumgenomics.github.io/fgbio/tools/latest/ tool_dev_url: https://github.com/fulcrumgenomics/fgbio doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/fgbio/sortbam/meta.yml b/modules/fgbio/sortbam/meta.yml index b8040dab..465b9606 100644 --- a/modules/fgbio/sortbam/meta.yml +++ b/modules/fgbio/sortbam/meta.yml @@ -1,43 +1,43 @@ name: fgbio_sortbam description: Sorts a SAM or BAM file. Several sort orders are available, including coordinate, queryname, random, and randomquery. keywords: - - sort - - bam - - sam + - sort + - bam + - sam tools: - - fgbio: - description: Tools for working with genomic and high throughput sequencing data. - homepage: https://github.com/fulcrumgenomics/fgbio - documentation: http://fulcrumgenomics.github.io/fgbio/ - licence: ['MIT'] + - fgbio: + description: Tools for working with genomic and high throughput sequencing data. + homepage: https://github.com/fulcrumgenomics/fgbio + documentation: http://fulcrumgenomics.github.io/fgbio/ + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false, collapse:false ] - - bam: - type: file - description: | - The input SAM or BAM file to be sorted. - pattern: "*.{bam,sam}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false, collapse:false ] + - bam: + type: file + description: | + The input SAM or BAM file to be sorted. + pattern: "*.{bam,sam}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: | - Output SAM or BAM file. - pattern: "*.{bam,sam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: | + Output SAM or BAM file. + pattern: "*.{bam,sam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@sruthipsuresh" + - "@sruthipsuresh" diff --git a/modules/filtlong/meta.yml b/modules/filtlong/meta.yml index 7616a176..b3626e62 100644 --- a/modules/filtlong/meta.yml +++ b/modules/filtlong/meta.yml @@ -14,7 +14,7 @@ tools: documentation: None tool_dev_url: https://github.com/rrwick/Filtlong doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/flash/meta.yml b/modules/flash/meta.yml index 06807523..e5a783f5 100644 --- a/modules/flash/meta.yml +++ b/modules/flash/meta.yml @@ -11,7 +11,7 @@ tools: homepage: https://ccb.jhu.edu/software/FLASH/ documentation: {} doi: 10.1093/bioinformatics/btr507 - licence: ['GPL v3+'] + licence: ["GPL v3+"] input: - meta: diff --git a/modules/freebayes/meta.yml b/modules/freebayes/meta.yml index e9fb54c2..cbbd297e 100644 --- a/modules/freebayes/meta.yml +++ b/modules/freebayes/meta.yml @@ -16,7 +16,7 @@ tools: documentation: https://github.com/freebayes/freebayes tool_dev_url: https://github.com/freebayes/freebayes doi: "arXiv:1207.3907" - licence: ['MIT'] + licence: ["MIT"] input: - meta: @@ -55,10 +55,10 @@ input: - cnv: type: file description: | - A copy number map BED file, which has either a sample-level ploidy: - sample_name copy_number - or a region-specific format: - seq_name start end sample_name copy_number + A copy number map BED file, which has either a sample-level ploidy: + sample_name copy_number + or a region-specific format: + seq_name start end sample_name copy_number pattern: "*.bed" output: diff --git a/modules/gatk4/applybqsr/meta.yml b/modules/gatk4/applybqsr/meta.yml index ad1f82a1..82d3cbf3 100644 --- a/modules/gatk4/applybqsr/meta.yml +++ b/modules/gatk4/applybqsr/meta.yml @@ -6,13 +6,13 @@ keywords: tools: - gatk4: description: | - Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools - with a primary focus on variant discovery and genotyping. Its powerful processing engine - and high-performance computing features make it capable of taking on projects of any size. + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: @@ -47,7 +47,6 @@ input: description: GATK sequence dictionary pattern: "*.dict" - output: - meta: type: map diff --git a/modules/gatk4/applyvqsr/meta.yml b/modules/gatk4/applyvqsr/meta.yml index 746d22ac..4a99db45 100644 --- a/modules/gatk4/applyvqsr/meta.yml +++ b/modules/gatk4/applyvqsr/meta.yml @@ -17,7 +17,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/gatk4/baserecalibrator/meta.yml b/modules/gatk4/baserecalibrator/meta.yml index 641a50df..2e52b8ab 100644 --- a/modules/gatk4/baserecalibrator/meta.yml +++ b/modules/gatk4/baserecalibrator/meta.yml @@ -5,14 +5,13 @@ keywords: tools: - gatk4: description: | - Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools - with a primary focus on variant discovery and genotyping. Its powerful processing engine - and high-performance computing features make it capable of taking on projects of any size. + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] - + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/gatk4/bedtointervallist/meta.yml b/modules/gatk4/bedtointervallist/meta.yml index 910f9552..986f1592 100644 --- a/modules/gatk4/bedtointervallist/meta.yml +++ b/modules/gatk4/bedtointervallist/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: type: map diff --git a/modules/gatk4/calculatecontamination/meta.yml b/modules/gatk4/calculatecontamination/meta.yml index 8c843732..e5e870dc 100644 --- a/modules/gatk4/calculatecontamination/meta.yml +++ b/modules/gatk4/calculatecontamination/meta.yml @@ -16,7 +16,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/gatk4/createsequencedictionary/meta.yml b/modules/gatk4/createsequencedictionary/meta.yml index 54f479b3..bd247888 100644 --- a/modules/gatk4/createsequencedictionary/meta.yml +++ b/modules/gatk4/createsequencedictionary/meta.yml @@ -1,32 +1,32 @@ name: gatk4_createsequencedictionary description: Creates a sequence dictionary for a reference sequence keywords: - - dictionary - - fasta + - dictionary + - fasta tools: - - gatk: - description: | - Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools - with a primary focus on variant discovery and genotyping. Its powerful processing engine - and high-performance computing features make it capable of taking on projects of any size. - homepage: https://gatk.broadinstitute.org/hc/en-us - documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s - doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + - gatk: + description: | + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s + doi: 10.1158/1538-7445.AM2017-3590 + licence: ["Apache-2.0"] input: - - fasta: - type: file - description: Input fasta file - pattern: "*.{fasta,fa}" + - fasta: + type: file + description: Input fasta file + pattern: "*.{fasta,fa}" output: - - dict: - type: file - description: gatk dictionary file - pattern: "*.{dict}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - dict: + type: file + description: gatk dictionary file + pattern: "*.{dict}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@maxulysse" + - "@maxulysse" diff --git a/modules/gatk4/estimatelibrarycomplexity/meta.yml b/modules/gatk4/estimatelibrarycomplexity/meta.yml index 94c1817d..9f2dee60 100644 --- a/modules/gatk4/estimatelibrarycomplexity/meta.yml +++ b/modules/gatk4/estimatelibrarycomplexity/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/gatk4/fastqtosam/meta.yml b/modules/gatk4/fastqtosam/meta.yml index 8bd9eed5..0b173274 100644 --- a/modules/gatk4/fastqtosam/meta.yml +++ b/modules/gatk4/fastqtosam/meta.yml @@ -14,7 +14,7 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" - licence: ['MIT'] + licence: ["MIT"] input: - meta: @@ -24,8 +24,9 @@ input: e.g. [ id:'test', single_end:false ] - reads: type: file - description: List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + description: + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. pattern: "*.fastq.gz" output: diff --git a/modules/gatk4/filtermutectcalls/meta.yml b/modules/gatk4/filtermutectcalls/meta.yml index 7d85e2b9..5182c89f 100644 --- a/modules/gatk4/filtermutectcalls/meta.yml +++ b/modules/gatk4/filtermutectcalls/meta.yml @@ -1,6 +1,6 @@ name: gatk4_filtermutectcalls description: | - Filters the raw output of mutect2, can optionally use outputs of calculatecontamination and learnreadorientationmodel to improve filtering. + Filters the raw output of mutect2, can optionally use outputs of calculatecontamination and learnreadorientationmodel to improve filtering. keywords: - filtermutectcalls - mutect2 diff --git a/modules/gatk4/gatherbqsrreports/meta.yml b/modules/gatk4/gatherbqsrreports/meta.yml index f71afd69..62d008d2 100644 --- a/modules/gatk4/gatherbqsrreports/meta.yml +++ b/modules/gatk4/gatherbqsrreports/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" - licence: ['BSD-3-clause'] + licence: ["BSD-3-clause"] input: - meta: diff --git a/modules/gatk4/genotypegvcfs/meta.yml b/modules/gatk4/genotypegvcfs/meta.yml index 2c9767b2..e0550687 100644 --- a/modules/gatk4/genotypegvcfs/meta.yml +++ b/modules/gatk4/genotypegvcfs/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" - licence: ['BSD-3-clause'] + licence: ["BSD-3-clause"] input: - meta: diff --git a/modules/gatk4/getpileupsummaries/meta.yml b/modules/gatk4/getpileupsummaries/meta.yml index ccf6446d..a70cf1e5 100644 --- a/modules/gatk4/getpileupsummaries/meta.yml +++ b/modules/gatk4/getpileupsummaries/meta.yml @@ -15,7 +15,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/gatk4/haplotypecaller/meta.yml b/modules/gatk4/haplotypecaller/meta.yml index 869bd1d2..81851a96 100644 --- a/modules/gatk4/haplotypecaller/meta.yml +++ b/modules/gatk4/haplotypecaller/meta.yml @@ -7,13 +7,13 @@ keywords: tools: - gatk4: description: | - Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools - with a primary focus on variant discovery and genotyping. Its powerful processing engine - and high-performance computing features make it capable of taking on projects of any size. + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/gatk4/indexfeaturefile/meta.yml b/modules/gatk4/indexfeaturefile/meta.yml index eebe6b85..721350a9 100644 --- a/modules/gatk4/indexfeaturefile/meta.yml +++ b/modules/gatk4/indexfeaturefile/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" - licence: ['BSD-3-clause'] + licence: ["BSD-3-clause"] input: - meta: diff --git a/modules/gatk4/intervallisttools/meta.yml b/modules/gatk4/intervallisttools/meta.yml index 9e2d994f..804645f3 100644 --- a/modules/gatk4/intervallisttools/meta.yml +++ b/modules/gatk4/intervallisttools/meta.yml @@ -14,7 +14,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/gatk4/learnreadorientationmodel/meta.yml b/modules/gatk4/learnreadorientationmodel/meta.yml index 4eff6939..b2dd9612 100644 --- a/modules/gatk4/learnreadorientationmodel/meta.yml +++ b/modules/gatk4/learnreadorientationmodel/meta.yml @@ -15,7 +15,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/gatk4/markduplicates/meta.yml b/modules/gatk4/markduplicates/meta.yml index 5777067a..a7dbe8ec 100644 --- a/modules/gatk4/markduplicates/meta.yml +++ b/modules/gatk4/markduplicates/meta.yml @@ -6,14 +6,15 @@ keywords: - sort tools: - gatk4: - description: Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + description: + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360037052812-MarkDuplicates-Picard- tool_dev_url: https://github.com/broadinstitute/gatk doi: 10.1158/1538-7445.AM2017-3590 - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/gatk4/mergebamalignment/meta.yml b/modules/gatk4/mergebamalignment/meta.yml index c66c78db..b4bff490 100644 --- a/modules/gatk4/mergebamalignment/meta.yml +++ b/modules/gatk4/mergebamalignment/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: type: map diff --git a/modules/gatk4/mergevcfs/meta.yml b/modules/gatk4/mergevcfs/meta.yml index 597f9ec6..8d4123d9 100644 --- a/modules/gatk4/mergevcfs/meta.yml +++ b/modules/gatk4/mergevcfs/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: type: map diff --git a/modules/gatk4/mutect2/meta.yml b/modules/gatk4/mutect2/meta.yml index 94ce72ee..69a4acfe 100644 --- a/modules/gatk4/mutect2/meta.yml +++ b/modules/gatk4/mutect2/meta.yml @@ -1,5 +1,5 @@ name: gatk4_mutect2 -description: Call somatic SNVs and indels via local assembly of haplotypes. +description: Call somatic SNVs and indels via local assembly of haplotypes. keywords: - gatk4 - mutect2 @@ -14,7 +14,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/gatk4/revertsam/meta.yml b/modules/gatk4/revertsam/meta.yml index b52dcb36..6cc97d86 100644 --- a/modules/gatk4/revertsam/meta.yml +++ b/modules/gatk4/revertsam/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: type: map diff --git a/modules/gatk4/samtofastq/meta.yml b/modules/gatk4/samtofastq/meta.yml index de4624b5..60ca6aee 100644 --- a/modules/gatk4/samtofastq/meta.yml +++ b/modules/gatk4/samtofastq/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: type: map diff --git a/modules/gatk4/splitncigarreads/meta.yml b/modules/gatk4/splitncigarreads/meta.yml index fd6edda0..407e80bd 100644 --- a/modules/gatk4/splitncigarreads/meta.yml +++ b/modules/gatk4/splitncigarreads/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: type: map diff --git a/modules/gatk4/variantfiltration/meta.yml b/modules/gatk4/variantfiltration/meta.yml index 71f0b8b2..04b1c086 100644 --- a/modules/gatk4/variantfiltration/meta.yml +++ b/modules/gatk4/variantfiltration/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: type: map diff --git a/modules/gatk4/variantrecalibrator/meta.yml b/modules/gatk4/variantrecalibrator/meta.yml index aac44b3a..92416a58 100644 --- a/modules/gatk4/variantrecalibrator/meta.yml +++ b/modules/gatk4/variantrecalibrator/meta.yml @@ -45,6 +45,10 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" + - allelespecific: + type: boolean + description: specify whether to use allele specific annotations + pattern: "{true,false}" - resvcfs: type: list description: resource files to be used as truth, training and known sites resources, this imports the files into the module, file names are specified again in the resource_labels to be called via the command. @@ -53,6 +57,22 @@ input: type: list description: tbis for the corresponding vcfs files to be used as truth, training and known resources. pattern: '*/hapmap_3.3.hg38_chr21.vcf.gz.tbi' + - reslabels: + type: list + description: labels for the resource files to be used as truth, training and known sites resources, label should include an identifier,which kind of resource(s) it is, prior value and name of the file. + pattern: "hapmap,known=false,training=true,truth=true,prior=15.0 hapmap_3.3.hg38_chr21.vcf.gz" + - annotation: + type: list + description: specify which annotations should be used for calculations. + pattern: "['QD', 'MQ', 'FS', 'SOR']" + - mode: + type: string + description: specifies which recalibration mode to employ (SNP is default, BOTH is intended for testing only) + pattern: "{SNP,INDEL,BOTH}" + - rscript: + type: boolean + description: specify whether to generate rscript.plot output file + pattern: "{true,false}" output: - recal: type: file diff --git a/modules/genmap/index/meta.yml b/modules/genmap/index/meta.yml index 2ab0910d..73563c1d 100644 --- a/modules/genmap/index/meta.yml +++ b/modules/genmap/index/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://github.com/cpockrandt/genmap tool_dev_url: https://github.com/cpockrandt/genmap doi: "10.1093/bioinformatics/btaa222" - licence: ['BSD-3-Clause'] + licence: ["BSD-3-Clause"] input: - fasta: diff --git a/modules/genmap/mappability/meta.yml b/modules/genmap/mappability/meta.yml index d2835d92..5469cef5 100644 --- a/modules/genmap/mappability/meta.yml +++ b/modules/genmap/mappability/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://github.com/cpockrandt/genmap tool_dev_url: https://github.com/cpockrandt/genmap doi: "10.1093/bioinformatics/btaa222" - licence: ['BSD-3-Clause'] + licence: ["BSD-3-Clause"] input: - fasta: diff --git a/modules/genrich/meta.yml b/modules/genrich/meta.yml index 37184190..343c25d7 100644 --- a/modules/genrich/meta.yml +++ b/modules/genrich/meta.yml @@ -14,7 +14,7 @@ tools: documentation: https://github.com/jsh58/Genrich#readme tool_dev_url: https://github.com/jsh58/Genrich doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map @@ -77,4 +77,3 @@ output: pattern: "*.{version.txt}" authors: - "@JoseEspinosa" - diff --git a/modules/gffread/meta.yml b/modules/gffread/meta.yml index bf1a15cb..20335747 100644 --- a/modules/gffread/meta.yml +++ b/modules/gffread/meta.yml @@ -11,13 +11,13 @@ tools: documentation: http://ccb.jhu.edu/software/stringtie/gff.shtml#gffread tool_dev_url: https://github.com/gpertea/gffread doi: 10.12688/f1000research.23297.1 - licence: ['MIT'] + licence: ["MIT"] input: - gff: - type: file - description: A reference file in either the GFF3, GFF2 or GTF format. - pattern: "*.{gff, gtf}" + type: file + description: A reference file in either the GFF3, GFF2 or GTF format. + pattern: "*.{gff, gtf}" output: - gtf: diff --git a/modules/glnexus/meta.yml b/modules/glnexus/meta.yml index 5ba17cae..0fc19452 100644 --- a/modules/glnexus/meta.yml +++ b/modules/glnexus/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/dnanexus-rnd/GLnexus/wiki/Getting-Started tool_dev_url: None doi: https://doi.org/10.1101/343970 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/graphmap2/align/meta.yml b/modules/graphmap2/align/meta.yml index 9fb1507a..d498069b 100644 --- a/modules/graphmap2/align/meta.yml +++ b/modules/graphmap2/align/meta.yml @@ -1,51 +1,51 @@ name: graphmap2_align description: A versatile pairwise aligner for genomic and spliced nucleotide sequences keywords: - - align - - fasta - - fastq - - genome - - reference + - align + - fasta + - fastq + - genome + - reference tools: - - graphmap2: - description: | - A versatile pairwise aligner for genomic and spliced nucleotide sequences. - homepage: https://github.com/lbcb-sci/graphmap2 - documentation: https://github.com/lbcb-sci/graphmap2#graphmap2---a-highly-sensitive-and-accurate-mapper-for-long-error-prone-reads - licence: ['MIT'] + - graphmap2: + description: | + A versatile pairwise aligner for genomic and spliced nucleotide sequences. + homepage: https://github.com/lbcb-sci/graphmap2 + documentation: https://github.com/lbcb-sci/graphmap2#graphmap2---a-highly-sensitive-and-accurate-mapper-for-long-error-prone-reads + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fastq: - type: file - description: | - List of input FASTQ files - and paired-end data, respectively. - - fasta: - type: file - description: | - Reference database in FASTA format. - - index: - type: file - description: | - FASTA index in gmidx. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastq: + type: file + description: | + List of input FASTQ files + and paired-end data, respectively. + - fasta: + type: file + description: | + Reference database in FASTA format. + - index: + type: file + description: | + FASTA index in gmidx. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - sam: - type: file - description: Alignment in SAM format - pattern: "*.sam" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - sam: + type: file + description: Alignment in SAM format + pattern: "*.sam" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@yuukiiwa" - - "@drpatelh" + - "@yuukiiwa" + - "@drpatelh" diff --git a/modules/graphmap2/index/meta.yml b/modules/graphmap2/index/meta.yml index 92a0a3d7..8e9d2c1c 100644 --- a/modules/graphmap2/index/meta.yml +++ b/modules/graphmap2/index/meta.yml @@ -1,30 +1,30 @@ name: graphmap2_index description: A versatile pairwise aligner for genomic and spliced nucleotide sequences keywords: - - index - - fasta - - reference + - index + - fasta + - reference tools: - - graphmap2: - description: | - A versatile pairwise aligner for genomic and spliced nucleotide sequences. - homepage: https://github.com/lbcb-sci/graphmap2 - documentation: https://github.com/lbcb-sci/graphmap2#graphmap2---a-highly-sensitive-and-accurate-mapper-for-long-error-prone-reads - licence: ['MIT'] + - graphmap2: + description: | + A versatile pairwise aligner for genomic and spliced nucleotide sequences. + homepage: https://github.com/lbcb-sci/graphmap2 + documentation: https://github.com/lbcb-sci/graphmap2#graphmap2---a-highly-sensitive-and-accurate-mapper-for-long-error-prone-reads + licence: ["MIT"] input: - - fasta: - type: file - description: | - Reference database in FASTA format. + - fasta: + type: file + description: | + Reference database in FASTA format. output: - - gmidx: - type: file - description: Graphmap2 fasta index in gmidx format - pattern: "*.gmidx" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - gmidx: + type: file + description: Graphmap2 fasta index in gmidx format + pattern: "*.gmidx" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@yuukiiwa" - - "@drpatelh" + - "@yuukiiwa" + - "@drpatelh" diff --git a/modules/gstama/merge/meta.yml b/modules/gstama/merge/meta.yml index 1351b864..2f91a56d 100644 --- a/modules/gstama/merge/meta.yml +++ b/modules/gstama/merge/meta.yml @@ -16,7 +16,7 @@ tools: documentation: https://github.com/GenomeRIK/tama/wiki tool_dev_url: https://github.com/sguizard/gs-tama doi: "https://doi.org/10.1186/s12864-020-07123-7" - licence: ['GPL v3 License'] + licence: ["GPL v3 License"] input: - meta: diff --git a/modules/gtdbtk/classifywf/meta.yml b/modules/gtdbtk/classifywf/meta.yml index d70de362..86301035 100644 --- a/modules/gtdbtk/classifywf/meta.yml +++ b/modules/gtdbtk/classifywf/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://ecogenomics.github.io/GTDBTk/ tool_dev_url: https://github.com/Ecogenomics/GTDBTk doi: "10.1093/bioinformatics/btz848" - licence: ['GNU General Public v3 (GPL v3)'] + licence: ["GNU General Public v3 (GPL v3)"] input: - meta: diff --git a/modules/gubbins/meta.yml b/modules/gubbins/meta.yml index f73e2bb0..785366ad 100644 --- a/modules/gubbins/meta.yml +++ b/modules/gubbins/meta.yml @@ -1,8 +1,9 @@ name: gubbins -description: Gubbins (Genealogies Unbiased By recomBinations In Nucleotide Sequences) is an algorithm that iteratively identifies - loci containing elevated densities of base substitutions while concurrently constructing a phylogeny based on the - putative point mutations outside of these regions. -licence: ['GPL-2.0-only'] +description: + Gubbins (Genealogies Unbiased By recomBinations In Nucleotide Sequences) is an algorithm that iteratively identifies + loci containing elevated densities of base substitutions while concurrently constructing a phylogeny based on the + putative point mutations outside of these regions. +licence: ["GPL-2.0-only"] keywords: - recombination - alignment @@ -59,4 +60,3 @@ output: pattern: "*.{node_labelled.final_tree.tre}" authors: - "@avantonder" - diff --git a/modules/gunc/downloaddb/meta.yml b/modules/gunc/downloaddb/meta.yml index cb486da0..c36ff3f3 100644 --- a/modules/gunc/downloaddb/meta.yml +++ b/modules/gunc/downloaddb/meta.yml @@ -14,7 +14,7 @@ tools: documentation: https://grp-bork.embl-community.io/gunc/ tool_dev_url: https://github.com/grp-bork/gunc doi: "10.1186/s13059-021-02393-0" - licence: ['GNU General Public v3 or later (GPL v3+)'] + licence: ["GNU General Public v3 or later (GPL v3+)"] input: - db_name: diff --git a/modules/gunc/run/meta.yml b/modules/gunc/run/meta.yml index 1dd4a8ae..3a85e1fb 100644 --- a/modules/gunc/run/meta.yml +++ b/modules/gunc/run/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://grp-bork.embl-community.io/gunc/ tool_dev_url: https://github.com/grp-bork/gunc doi: "10.1186/s13059-021-02393-0" - licence: ['GNU General Public v3 or later (GPL v3+)'] + licence: ["GNU General Public v3 or later (GPL v3+)"] input: - meta: diff --git a/modules/gunzip/meta.yml b/modules/gunzip/meta.yml index ea1f1546..4d2ebc84 100644 --- a/modules/gunzip/meta.yml +++ b/modules/gunzip/meta.yml @@ -1,34 +1,34 @@ name: gunzip description: Compresses and decompresses files. keywords: - - gunzip - - compression + - 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 - licence: ['GPL-3.0-or-later'] + - 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 + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Optional groovy Map containing meta information - e.g. [ id:'test', single_end:false ] - - archive: - type: file - description: File to be compressed/uncompressed - pattern: "*.*" + - meta: + type: map + description: | + Optional groovy Map containing meta information + e.g. [ id:'test', single_end:false ] + - 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" + - gunzip: + type: file + description: Compressed/uncompressed file + pattern: "*.*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" - - "@jfy133" + - "@joseespinosa" + - "@drpatelh" + - "@jfy133" diff --git a/modules/hicap/meta.yml b/modules/hicap/meta.yml index 275df665..a027c050 100644 --- a/modules/hicap/meta.yml +++ b/modules/hicap/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/scwatts/hicap tool_dev_url: https://github.com/scwatts/hicap doi: "https://doi.org/10.1128/JCM.00190-19" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/hisat2/align/meta.yml b/modules/hisat2/align/meta.yml index 6011cc34..7550aefa 100644 --- a/modules/hisat2/align/meta.yml +++ b/modules/hisat2/align/meta.yml @@ -1,10 +1,10 @@ name: hisat2_align description: Align RNA-Seq reads to a reference with HISAT2 keywords: - - align - - fasta - - genome - - reference + - align + - fasta + - genome + - reference tools: - hisat2: @@ -12,19 +12,19 @@ tools: homepage: https://daehwankimlab.github.io/hisat2/ documentation: https://daehwankimlab.github.io/hisat2/manual/ doi: "10.1038/s41587-019-0201-4" - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - reads: type: file description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. - index: type: file description: HISAT2 genome index file @@ -38,8 +38,8 @@ output: - meta: type: map description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - bam: type: file description: Output BAM file containing read alignments diff --git a/modules/hisat2/build/meta.yml b/modules/hisat2/build/meta.yml index c08b296d..a2e1fd67 100644 --- a/modules/hisat2/build/meta.yml +++ b/modules/hisat2/build/meta.yml @@ -1,18 +1,18 @@ name: hisat2_build description: Builds HISAT2 index for reference genome keywords: - - build - - index - - fasta - - genome - - reference + - build + - index + - fasta + - genome + - reference tools: - hisat2: description: HISAT2 is a fast and sensitive alignment program for mapping next-generation sequencing reads (both DNA and RNA) to a population of human genomes as well as to a single reference genome. homepage: https://daehwankimlab.github.io/hisat2/ documentation: https://daehwankimlab.github.io/hisat2/manual/ doi: "10.1038/s41587-019-0201-4" - licence: ['MIT'] + licence: ["MIT"] input: - fasta: diff --git a/modules/hisat2/extractsplicesites/meta.yml b/modules/hisat2/extractsplicesites/meta.yml index 97227faf..7dc1bac8 100644 --- a/modules/hisat2/extractsplicesites/meta.yml +++ b/modules/hisat2/extractsplicesites/meta.yml @@ -1,10 +1,10 @@ name: hisat2_extractsplicesites description: Extracts splicing sites from a gtf files keywords: - - splicing - - gtf - - genome - - reference + - splicing + - gtf + - genome + - reference tools: - hisat2: @@ -12,7 +12,7 @@ tools: homepage: https://daehwankimlab.github.io/hisat2/ documentation: https://daehwankimlab.github.io/hisat2/manual/ doi: "10.1038/s41587-019-0201-4" - licence: ['MIT'] + licence: ["MIT"] input: - gtf: diff --git a/modules/hmmcopy/gccounter/meta.yml b/modules/hmmcopy/gccounter/meta.yml index 71727af2..ab101df6 100644 --- a/modules/hmmcopy/gccounter/meta.yml +++ b/modules/hmmcopy/gccounter/meta.yml @@ -11,14 +11,13 @@ tools: documentation: https://github.com/shahcompbio/hmmcopy_utils tool_dev_url: https://github.com/shahcompbio/hmmcopy_utils doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - fasta: type: file description: Input genome fasta file - output: - versions: type: file diff --git a/modules/hmmcopy/generatemap/meta.yml b/modules/hmmcopy/generatemap/meta.yml index ca43c6ce..7c345843 100644 --- a/modules/hmmcopy/generatemap/meta.yml +++ b/modules/hmmcopy/generatemap/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/shahcompbio/hmmcopy_utils tool_dev_url: https://github.com/shahcompbio/hmmcopy_utils doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - fasta: diff --git a/modules/hmmcopy/mapcounter/meta.yml b/modules/hmmcopy/mapcounter/meta.yml index 8f8b9aae..969a027d 100644 --- a/modules/hmmcopy/mapcounter/meta.yml +++ b/modules/hmmcopy/mapcounter/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/shahcompbio/hmmcopy_utils tool_dev_url: https://github.com/shahcompbio/hmmcopy_utils doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - bigwig: diff --git a/modules/hmmcopy/readcounter/meta.yml b/modules/hmmcopy/readcounter/meta.yml index 9b09a55c..81020ed9 100644 --- a/modules/hmmcopy/readcounter/meta.yml +++ b/modules/hmmcopy/readcounter/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/shahcompbio/hmmcopy_utils tool_dev_url: https://github.com/shahcompbio/hmmcopy_utils doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/hmmer/hmmalign/meta.yml b/modules/hmmer/hmmalign/meta.yml index 58dc6b92..296826d4 100644 --- a/modules/hmmer/hmmalign/meta.yml +++ b/modules/hmmer/hmmalign/meta.yml @@ -9,7 +9,7 @@ tools: documentation: http://hmmer.org/documentation.html tool_dev_url: None doi: "http://dx.doi.org/10.1371/journal.pcbi.1002195" - licence: ['BSD-3-Clause'] + licence: ["BSD-3-Clause"] input: - meta: diff --git a/modules/homer/annotatepeaks/meta.yml b/modules/homer/annotatepeaks/meta.yml index c3ab9460..b815e975 100644 --- a/modules/homer/annotatepeaks/meta.yml +++ b/modules/homer/annotatepeaks/meta.yml @@ -10,7 +10,7 @@ tools: HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of tools for Motif Discovery and next-gen sequencing analysis. documentation: http://homer.ucsd.edu/homer/ doi: 10.1016/j.molcel.2010.05.004. - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/homer/findpeaks/meta.yml b/modules/homer/findpeaks/meta.yml index 2aa8db26..e7cef0cd 100644 --- a/modules/homer/findpeaks/meta.yml +++ b/modules/homer/findpeaks/meta.yml @@ -9,7 +9,7 @@ tools: HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of tools for Motif Discovery and next-gen sequencing analysis. documentation: http://homer.ucsd.edu/homer/ doi: 10.1016/j.molcel.2010.05.004. - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/homer/maketagdirectory/meta.yml b/modules/homer/maketagdirectory/meta.yml index 802320f9..2472e0f0 100644 --- a/modules/homer/maketagdirectory/meta.yml +++ b/modules/homer/maketagdirectory/meta.yml @@ -9,7 +9,7 @@ tools: HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of tools for Motif Discovery and next-gen sequencing analysis. documentation: http://homer.ucsd.edu/homer/ doi: 10.1016/j.molcel.2010.05.004. - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/homer/makeucscfile/meta.yml b/modules/homer/makeucscfile/meta.yml index 68d5fcd4..273f456e 100644 --- a/modules/homer/makeucscfile/meta.yml +++ b/modules/homer/makeucscfile/meta.yml @@ -10,7 +10,7 @@ tools: HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of tools for Motif Discovery and next-gen sequencing analysis. documentation: http://homer.ucsd.edu/homer/ doi: 10.1016/j.molcel.2010.05.004. - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/idr/meta.yml b/modules/idr/meta.yml index c89e72a4..7442c25a 100644 --- a/modules/idr/meta.yml +++ b/modules/idr/meta.yml @@ -17,7 +17,7 @@ tools: documentation: None tool_dev_url: https://github.com/kundajelab/idr doi: "" - licence: ['GPL v2'] + licence: ["GPL v2"] input: - peaks: type: tuple of two files diff --git a/modules/iqtree/meta.yml b/modules/iqtree/meta.yml index 0a3b4e4c..2c34a3da 100644 --- a/modules/iqtree/meta.yml +++ b/modules/iqtree/meta.yml @@ -11,7 +11,7 @@ tools: documentation: http://www.iqtree.org/doc tool_dev_url: https://github.com/iqtree/iqtree2 doi: doi.org/10.1093/molbev/msaa015 - licence: ['GPL v2-or-later'] + licence: ["GPL v2-or-later"] input: - alignment: diff --git a/modules/ismapper/meta.yml b/modules/ismapper/meta.yml index 810c1674..5b0be8d3 100644 --- a/modules/ismapper/meta.yml +++ b/modules/ismapper/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/jhawkey/IS_mapper tool_dev_url: https://github.com/jhawkey/IS_mapper doi: "https://doi.org/10.1186/s12864-015-1860-2" - licence: ['BSD-3-Clause'] + licence: ["BSD-3-Clause"] input: - meta: diff --git a/modules/isoseq3/cluster/meta.yml b/modules/isoseq3/cluster/meta.yml index 4086ab05..84631978 100644 --- a/modules/isoseq3/cluster/meta.yml +++ b/modules/isoseq3/cluster/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://github.com/PacificBiosciences/IsoSeq/blob/master/isoseq-clustering.md tool_dev_url: https://github.com/PacificBiosciences/IsoSeq/blob/master/isoseq-clustering.md doi: "" - licence: ['BSD-3-Clause-Clear'] + licence: ["BSD-3-Clause-Clear"] input: - meta: diff --git a/modules/isoseq3/refine/meta.yml b/modules/isoseq3/refine/meta.yml index eefd015b..2e9e4092 100644 --- a/modules/isoseq3/refine/meta.yml +++ b/modules/isoseq3/refine/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/PacificBiosciences/IsoSeq/blob/master/isoseq-clustering.md tool_dev_url: https://github.com/PacificBiosciences/IsoSeq/blob/master/isoseq-clustering.md doi: "" - licence: ['BSD-3-Clause-Clear'] + licence: ["BSD-3-Clause-Clear"] input: - meta: diff --git a/modules/ivar/consensus/meta.yml b/modules/ivar/consensus/meta.yml index aa08ad98..fb562603 100644 --- a/modules/ivar/consensus/meta.yml +++ b/modules/ivar/consensus/meta.yml @@ -1,56 +1,56 @@ name: ivar_consensus description: Generate a consensus sequence from a BAM file using iVar keywords: - - amplicon sequencing - - consensus - - fasta + - amplicon sequencing + - consensus + - fasta tools: - - ivar: - description: | - iVar - a computational package that contains functions broadly useful for viral amplicon-based sequencing. - homepage: https://github.com/andersen-lab/ivar - documentation: https://andersen-lab.github.io/ivar/html/manualpage.html - licence: ['GPL-3.0-or-later'] + - ivar: + description: | + iVar - a computational package that contains functions broadly useful for viral amplicon-based sequencing. + homepage: https://github.com/andersen-lab/ivar + documentation: https://andersen-lab.github.io/ivar/html/manualpage.html + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: A sorted (with samtools sort) and trimmed (with iVar trim) bam file - pattern: "*.bam" - - fasta: - type: file - description: The reference sequence used for mapping and generating the BAM file - pattern: "*.fa" - - save_mpileup: - type: boolean - description: Save mpileup file generated by ivar consensus - patter: "*.mpileup" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: A sorted (with samtools sort) and trimmed (with iVar trim) bam file + pattern: "*.bam" + - fasta: + type: file + description: The reference sequence used for mapping and generating the BAM file + pattern: "*.fa" + - save_mpileup: + type: boolean + description: Save mpileup file generated by ivar consensus + patter: "*.mpileup" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: iVar generated consensus sequence - pattern: "*.fa" - - qual: - type: file - description: iVar generated quality file - pattern: "*.qual.txt" - - mpileup: - type: file - description: mpileup output from samtools mpileup [OPTIONAL] - pattern: "*.mpileup" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: iVar generated consensus sequence + pattern: "*.fa" + - qual: + type: file + description: iVar generated quality file + pattern: "*.qual.txt" + - mpileup: + type: file + description: mpileup output from samtools mpileup [OPTIONAL] + pattern: "*.mpileup" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@andersgs" - - "@drpatelh" + - "@andersgs" + - "@drpatelh" diff --git a/modules/ivar/trim/meta.yml b/modules/ivar/trim/meta.yml index 44bc742e..d01dd1a2 100644 --- a/modules/ivar/trim/meta.yml +++ b/modules/ivar/trim/meta.yml @@ -1,52 +1,52 @@ name: ivar_trim description: Trim primer sequences rom a BAM file with iVar keywords: - - amplicon sequencing - - trimming - - fasta + - amplicon sequencing + - trimming + - fasta tools: - - ivar: - description: | - iVar - a computational package that contains functions broadly useful for viral amplicon-based sequencing. - homepage: https://github.com/andersen-lab/ivar - documentation: https://andersen-lab.github.io/ivar/html/manualpage.html - licence: ['GPL-3.0-or-later'] + - ivar: + description: | + iVar - a computational package that contains functions broadly useful for viral amplicon-based sequencing. + homepage: https://github.com/andersen-lab/ivar + documentation: https://andersen-lab.github.io/ivar/html/manualpage.html + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: Co-ordinate sorted BAM file - pattern: "*.bam" - - bai: - type: file - description: Index file for co-ordinate sorted BAM file - pattern: "*.bai" - - bed: - type: file - description: BED file with primer labels and positions - pattern: "*.bed" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Co-ordinate sorted BAM file + pattern: "*.bam" + - bai: + type: file + description: Index file for co-ordinate sorted BAM file + pattern: "*.bai" + - bed: + type: file + description: BED file with primer labels and positions + pattern: "*.bed" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: iVar generated trimmed bam file (unsorted) - pattern: "*.bam" - - log: - type: file - description: Log file generated by iVar for use with MultiQC - pattern: "*.log" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: iVar generated trimmed bam file (unsorted) + pattern: "*.bam" + - log: + type: file + description: Log file generated by iVar for use with MultiQC + pattern: "*.log" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@andersgs" - - "@drpatelh" + - "@andersgs" + - "@drpatelh" diff --git a/modules/ivar/variants/meta.yml b/modules/ivar/variants/meta.yml index 29cbd958..6677ffb2 100644 --- a/modules/ivar/variants/meta.yml +++ b/modules/ivar/variants/meta.yml @@ -1,56 +1,56 @@ name: ivar_variants description: Call variants from a BAM file using iVar keywords: - - amplicon sequencing - - variants - - fasta + - amplicon sequencing + - variants + - fasta tools: - - ivar: - description: | - iVar - a computational package that contains functions broadly useful for viral amplicon-based sequencing. - homepage: https://github.com/andersen-lab/ivar - documentation: https://andersen-lab.github.io/ivar/html/manualpage.html - licence: ['GPL-3.0-or-later'] + - ivar: + description: | + iVar - a computational package that contains functions broadly useful for viral amplicon-based sequencing. + homepage: https://github.com/andersen-lab/ivar + documentation: https://andersen-lab.github.io/ivar/html/manualpage.html + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: A sorted (with samtools sort) and trimmed (with iVar trim) bam file - pattern: "*.bam" - - fasta: - type: file - description: The reference sequence used for mapping and generating the BAM file - pattern: "*.fa" - - gff: - type: file - description: A GFF file in the GFF3 format can be supplied to specify coordinates of open reading frames (ORFs). In absence of GFF file, amino acid translation will not be done. - patter: "*.gff" - - save_mpileup: - type: boolean - description: Save mpileup file generated by ivar variants - patter: "*.mpileup" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: A sorted (with samtools sort) and trimmed (with iVar trim) bam file + pattern: "*.bam" + - fasta: + type: file + description: The reference sequence used for mapping and generating the BAM file + pattern: "*.fa" + - gff: + type: file + description: A GFF file in the GFF3 format can be supplied to specify coordinates of open reading frames (ORFs). In absence of GFF file, amino acid translation will not be done. + patter: "*.gff" + - save_mpileup: + type: boolean + description: Save mpileup file generated by ivar variants + patter: "*.mpileup" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - tsv: - type: file - description: iVar generated TSV file with the variants - pattern: "*.tsv" - - mpileup: - type: file - description: mpileup output from samtools mpileup [OPTIONAL] - pattern: "*.mpileup" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - tsv: + type: file + description: iVar generated TSV file with the variants + pattern: "*.tsv" + - mpileup: + type: file + description: mpileup output from samtools mpileup [OPTIONAL] + pattern: "*.mpileup" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@andersgs" - - "@drpatelh" + - "@andersgs" + - "@drpatelh" diff --git a/modules/kallisto/index/meta.yml b/modules/kallisto/index/meta.yml index dd952e33..307650b2 100644 --- a/modules/kallisto/index/meta.yml +++ b/modules/kallisto/index/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://pachterlab.github.io/kallisto/manual tool_dev_url: https://github.com/pachterlab/kallisto doi: "" - licence: ['BSD-2-Clause'] + licence: ["BSD-2-Clause"] input: - fasta: diff --git a/modules/khmer/normalizebymedian/meta.yml b/modules/khmer/normalizebymedian/meta.yml index 2227750f..5bd2b205 100644 --- a/modules/khmer/normalizebymedian/meta.yml +++ b/modules/khmer/normalizebymedian/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://khmer.readthedocs.io/en/latest/ tool_dev_url: https://github.com/dib-lab/khmer doi: "https://doi.org/10.12688/f1000research.6924.1" - licence: ['BSD License'] + licence: ["BSD License"] input: - pe_reads: diff --git a/modules/kleborate/meta.yml b/modules/kleborate/meta.yml index eaf837e7..92ab08c8 100644 --- a/modules/kleborate/meta.yml +++ b/modules/kleborate/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/katholt/Kleborate/wiki tool_dev_url: https://github.com/katholt/Kleborate doi: 10.1038/s41467-021-24448-3 - licence: ['GPL v3 or later (GPL v3+)'] + licence: ["GPL v3 or later (GPL v3+)"] input: - meta: diff --git a/modules/kraken2/kraken2/meta.yml b/modules/kraken2/kraken2/meta.yml index 4b894705..9d6a3855 100644 --- a/modules/kraken2/kraken2/meta.yml +++ b/modules/kraken2/kraken2/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://ccb.jhu.edu/software/kraken2/ documentation: https://github.com/DerrickWood/kraken2/wiki/Manual doi: 10.1186/s13059-019-1891-0 - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map diff --git a/modules/last/dotplot/meta.yml b/modules/last/dotplot/meta.yml index 2ec94f58..3f718179 100644 --- a/modules/last/dotplot/meta.yml +++ b/modules/last/dotplot/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://gitlab.com/mcfrith/last/-/blob/main/doc/last-dotplot.rst tool_dev_url: https://gitlab.com/mcfrith/last doi: "" - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: diff --git a/modules/last/lastal/meta.yml b/modules/last/lastal/meta.yml index 94e76878..60d3a746 100644 --- a/modules/last/lastal/meta.yml +++ b/modules/last/lastal/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://gitlab.com/mcfrith/last/-/blob/main/doc/last-train.rst tool_dev_url: https://gitlab.com/mcfrith/last doi: "" - licence: ['GPL v3-or-later'] + licence: ["GPL v3-or-later"] input: - index: diff --git a/modules/last/lastdb/meta.yml b/modules/last/lastdb/meta.yml index e576fa18..53842b0a 100644 --- a/modules/last/lastdb/meta.yml +++ b/modules/last/lastdb/meta.yml @@ -12,19 +12,19 @@ tools: documentation: https://gitlab.com/mcfrith/last/-/blob/main/doc/lastdb.rst tool_dev_url: https://gitlab.com/mcfrith/last doi: "" - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - fastx: type: file description: > - Sequence file in FASTA or FASTQ format. - May be compressed with gzip. + Sequence file in FASTA or FASTQ format. + May be compressed with gzip. pattern: "*.{fasta,fasta.gz,fastq,fastq.gz}" output: diff --git a/modules/last/mafconvert/meta.yml b/modules/last/mafconvert/meta.yml index 3336f315..f41506d4 100644 --- a/modules/last/mafconvert/meta.yml +++ b/modules/last/mafconvert/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://gitlab.com/mcfrith/last/-/blob/main/doc/ tool_dev_url: https://gitlab.com/mcfrith/last doi: "" - licence: ['GPL v3-or-later'] + licence: ["GPL v3-or-later"] input: - meta: diff --git a/modules/last/mafswap/meta.yml b/modules/last/mafswap/meta.yml index ce97fe97..1abfbfc5 100644 --- a/modules/last/mafswap/meta.yml +++ b/modules/last/mafswap/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://gitlab.com/mcfrith/last/-/blob/main/doc/ tool_dev_url: https://gitlab.com/mcfrith/last doi: "" - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: diff --git a/modules/last/postmask/meta.yml b/modules/last/postmask/meta.yml index 02e602f6..eacc96d8 100644 --- a/modules/last/postmask/meta.yml +++ b/modules/last/postmask/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://gitlab.com/mcfrith/last/-/blob/main/doc/last-postmask.rst tool_dev_url: https://gitlab.com/mcfrith/last doi: "10.1371/journal.pone.0028819" - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: diff --git a/modules/last/split/meta.yml b/modules/last/split/meta.yml index bc16fe9a..490e0bb5 100644 --- a/modules/last/split/meta.yml +++ b/modules/last/split/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://gitlab.com/mcfrith/last/-/blob/main/doc/ tool_dev_url: https://gitlab.com/mcfrith/last doi: "" - licence: ['GPL v3-or-later'] + licence: ["GPL v3-or-later"] input: - meta: diff --git a/modules/last/train/meta.yml b/modules/last/train/meta.yml index 20c5780d..d564ec4b 100644 --- a/modules/last/train/meta.yml +++ b/modules/last/train/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://gitlab.com/mcfrith/last/-/blob/main/doc/last-train.rst tool_dev_url: https://gitlab.com/mcfrith/last doi: "" - licence: ['GPL v3-or-later'] + licence: ["GPL v3-or-later"] input: - index: diff --git a/modules/leehom/meta.yml b/modules/leehom/meta.yml index b0d6092a..658db227 100644 --- a/modules/leehom/meta.yml +++ b/modules/leehom/meta.yml @@ -16,7 +16,7 @@ tools: documentation: "https://github.com/grenaud/leeHom" tool_dev_url: "https://github.com/grenaud/leeHom" doi: "10.1093/nar/gku699" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: @@ -72,6 +72,5 @@ output: description: Log file of command pattern: "*.log" - authors: - "@jfy133" diff --git a/modules/lima/meta.yml b/modules/lima/meta.yml index 567632df..18770ef4 100644 --- a/modules/lima/meta.yml +++ b/modules/lima/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://lima.how/ tool_dev_url: https://github.com/pacificbiosciences/barcoding/ doi: "" - licence: ['BSD-3-Clause-Clear'] + licence: ["BSD-3-Clause-Clear"] input: - meta: diff --git a/modules/lissero/meta.yml b/modules/lissero/meta.yml index d4fb38df..990e2587 100644 --- a/modules/lissero/meta.yml +++ b/modules/lissero/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/MDU-PHL/LisSero/blob/master/README.md tool_dev_url: https://github.com/MDU-PHL/lissero doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: @@ -41,4 +41,3 @@ output: authors: - "@rpetit3" - diff --git a/modules/lofreq/call/meta.yml b/modules/lofreq/call/meta.yml index 97607663..972e286e 100644 --- a/modules/lofreq/call/meta.yml +++ b/modules/lofreq/call/meta.yml @@ -11,7 +11,7 @@ tools: homepage: https://csb5.github.io/lofreq/ documentation: https://csb5.github.io/lofreq/commands/ doi: "10.1093/nar/gks918 " - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/lofreq/callparallel/meta.yml b/modules/lofreq/callparallel/meta.yml index a7dbd637..cd9d9fa6 100644 --- a/modules/lofreq/callparallel/meta.yml +++ b/modules/lofreq/callparallel/meta.yml @@ -9,7 +9,7 @@ tools: homepage: https://csb5.github.io/lofreq/ documentation: https://csb5.github.io/lofreq/ doi: "10.1093/nar/gks918" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/lofreq/filter/meta.yml b/modules/lofreq/filter/meta.yml index fceee6f5..c530a092 100644 --- a/modules/lofreq/filter/meta.yml +++ b/modules/lofreq/filter/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://csb5.github.io/lofreq/ documentation: https://csb5.github.io/lofreq/commands/ doi: "10.1093/nar/gks918 " - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/lofreq/indelqual/meta.yml b/modules/lofreq/indelqual/meta.yml index a6ec7dc2..b98bf2c4 100644 --- a/modules/lofreq/indelqual/meta.yml +++ b/modules/lofreq/indelqual/meta.yml @@ -9,7 +9,7 @@ tools: description: Lofreq is a fast and sensitive variant-caller for inferring SNVs and indels from next-generation sequencing data. It's indelqual programme inserts indel qualities in a BAM file homepage: https://csb5.github.io/lofreq/ doi: "10.1093/nar/gks918" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/macrel/contigs/meta.yml b/modules/macrel/contigs/meta.yml index e0b2fabd..25473470 100644 --- a/modules/macrel/contigs/meta.yml +++ b/modules/macrel/contigs/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://macrel.readthedocs.io/en/latest/ tool_dev_url: https://github.com/BigDataBiology/macrel doi: "10.7717/peerj.10555" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/macs2/callpeak/meta.yml b/modules/macs2/callpeak/meta.yml index afb949ec..974ea33a 100644 --- a/modules/macs2/callpeak/meta.yml +++ b/modules/macs2/callpeak/meta.yml @@ -1,10 +1,10 @@ name: macs2_callpeak description: Peak calling of enriched genomic regions of ChIP-seq and ATAC-seq experiments keywords: - - alignment - - atac-seq - - chip-seq - - peak-calling + - alignment + - atac-seq + - chip-seq + - peak-calling tools: - macs2: description: Model Based Analysis for ChIP-Seq data @@ -12,7 +12,7 @@ tools: documentation: https://docs.csc.fi/apps/macs2/ tool_dev_url: https://github.com/macs3-project/MACS doi: "https://doi.org/10.1101/496521" - licence: ['BSD'] + licence: ["BSD"] input: - meta: @@ -28,7 +28,8 @@ input: description: The control file - macs2_gsize: type: string - description: Effective genome size. It can be 1.0e+9 or 1000000000, or shortcuts:'hs' for human (2.7e9), + description: + Effective genome size. It can be 1.0e+9 or 1000000000, or shortcuts:'hs' for human (2.7e9), 'mm' for mouse (1.87e9), 'ce' for C. elegans (9e7) and 'dm' for fruitfly (1.2e8) output: diff --git a/modules/malt/build/meta.yml b/modules/malt/build/meta.yml index 9985d834..c8fe06f6 100644 --- a/modules/malt/build/meta.yml +++ b/modules/malt/build/meta.yml @@ -17,7 +17,7 @@ tools: documentation: https://software-ab.informatik.uni-tuebingen.de/download/malt/manual.pdf tool_dev_url: None doi: "10.1038/s41559-017-0446-6" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - fastas: diff --git a/modules/malt/run/meta.yml b/modules/malt/run/meta.yml index 740ab8a5..7bd79290 100644 --- a/modules/malt/run/meta.yml +++ b/modules/malt/run/meta.yml @@ -16,7 +16,7 @@ tools: documentation: https://software-ab.informatik.uni-tuebingen.de/download/malt/manual.pdf tool_dev_url: None doi: "10.1038/s41559-017-0446-6" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - fastqs: @@ -26,11 +26,11 @@ input: - mode: type: string description: Program mode - pattern: 'Unknown|BlastN|BlastP|BlastX|Classifier' + pattern: "Unknown|BlastN|BlastP|BlastX|Classifier" - index: type: directory description: Index/database directory from malt-build - pattern: '*/' + pattern: "*/" output: - versions: type: file diff --git a/modules/maltextract/meta.yml b/modules/maltextract/meta.yml index 8f257100..843c1555 100644 --- a/modules/maltextract/meta.yml +++ b/modules/maltextract/meta.yml @@ -21,7 +21,7 @@ tools: documentation: https://github.com/rhuebler/hops tool_dev_url: https://github.com/rhuebler/hops doi: "https://doi.org/10.1186/s13059-019-1903-0" - licence: ['GPL 3'] + licence: ["GPL 3"] input: - rma6: diff --git a/modules/manta/germline/meta.yml b/modules/manta/germline/meta.yml index b74a9693..d6297ead 100644 --- a/modules/manta/germline/meta.yml +++ b/modules/manta/germline/meta.yml @@ -15,7 +15,7 @@ tools: documentation: https://github.com/Illumina/manta/blob/v1.6.0/docs/userGuide/README.md tool_dev_url: https://github.com/Illumina/manta doi: "10.1093/bioinformatics/btv710" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/manta/somatic/meta.yml b/modules/manta/somatic/meta.yml index ddd0eafe..ec9cc869 100644 --- a/modules/manta/somatic/meta.yml +++ b/modules/manta/somatic/meta.yml @@ -15,7 +15,7 @@ tools: documentation: https://github.com/Illumina/manta/blob/v1.6.0/docs/userGuide/README.md tool_dev_url: https://github.com/Illumina/manta doi: "10.1093/bioinformatics/btv710" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/manta/tumoronly/meta.yml b/modules/manta/tumoronly/meta.yml index 86d1c6c0..f902bc77 100644 --- a/modules/manta/tumoronly/meta.yml +++ b/modules/manta/tumoronly/meta.yml @@ -15,7 +15,7 @@ tools: documentation: https://github.com/Illumina/manta/blob/v1.6.0/docs/userGuide/README.md tool_dev_url: https://github.com/Illumina/manta doi: "10.1093/bioinformatics/btv710" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/mapdamage2/meta.yml b/modules/mapdamage2/meta.yml index e511a0a6..561a3960 100644 --- a/modules/mapdamage2/meta.yml +++ b/modules/mapdamage2/meta.yml @@ -14,7 +14,7 @@ tools: documentation: https://ginolhac.github.io/mapDamage/ tool_dev_url: https://github.com/ginolhac/mapDamage doi: "10.1093/bioinformatics/btt193" - licence: ['MIT'] + licence: ["MIT"] input: - meta: @@ -30,85 +30,85 @@ input: pattern: "*.{fasta}" output: - - meta: - type: map - description: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - - runtime_log: - type: file - description: Log file with a summary of command lines used and timestamps. - pattern: "Runtime_log.txt" - - fragmisincorporation_plot: - type: file - description: A pdf file that displays both fragmentation and misincorporation patterns. - pattern: "Fragmisincorporation_plot.pdf" - - length_plot: - type: file - description: A pdf file that displays length distribution of singleton reads per strand and cumulative frequencies of C->T at 5'-end and G->A at 3'-end are also displayed per strand. - pattern: "Length_plot.pdf" - - misincorporation: - type: file - description: Contains a table with occurrences for each type of mutations and relative positions from the reads ends. - pattern: "misincorporation.txt" - - pctot_freq: - type: file - description: Contains frequencies of Cytosine to Thymine mutations per position from the 5'-ends. - pattern: "5pCtoT_freq.txt" - - pgtoa_freq: - type: file - description: Contains frequencies of Guanine to Adenine mutations per position from the 3'-ends. - pattern: "3pGtoA_freq.txt" - - dnacomp: - type: file - description: Contains a table of the reference genome base composition per position, inside reads and adjacent regions. - pattern: "dnacomp.txt" - - lgdistribution: - type: file - description: Contains a table with read length distributions per strand. - pattern: "lgdistribution.txt" - - stats_out_mcmc_hist: - type: file - description: A MCMC histogram for the damage parameters and log likelihood. - pattern: "Stats_out_MCMC_hist.pdf" - - stats_out_mcmc_iter: - type: file - description: Values for the damage parameters and log likelihood in each MCMC iteration. - pattern: "Stats_out_MCMC_iter.csv" - - stats_out_mcmc_trace: - type: file - description: A MCMC trace plot for the damage parameters and log likelihood. - pattern: "Stats_out_MCMC_trace.pdf" - - stats_out_mcmc_iter_summ_stat: - type: file - description: Summary statistics for the damage parameters estimated posterior distributions. - pattern: "Stats_out_MCMC_iter_summ_stat.csv" - - stats_out_mcmc_post_pred: - type: file - description: Empirical misincorporation frequency and posterior predictive intervals from the fitted model. - pattern: "Stats_out_MCMC_post_pred.pdf" - - stats_out_mcmc_correct_prob: - type: file - description: Position specific probability of a C->T and G->A misincorporation is due to damage. - pattern: "Stats_out_MCMC_correct_prob.csv" - - dnacomp_genome: - type: file - description: Contains the global reference genome base composition (computed by seqtk). - pattern: "dnacomp_genome.csv" - - rescaled: - type: file - description: Rescaled BAM file, where likely post-mortem damaged bases have downscaled quality scores. - pattern: "*.{bam}" - - fasta: - type: file - description: Allignments in a FASTA file, only if flagged by -d. - pattern: "*.{fasta}" - - folder: - type: folder - description: Folder created when --plot-only, --rescale and --stats-only flags are passed. - pattern: "*/" + - meta: + type: map + description: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - runtime_log: + type: file + description: Log file with a summary of command lines used and timestamps. + pattern: "Runtime_log.txt" + - fragmisincorporation_plot: + type: file + description: A pdf file that displays both fragmentation and misincorporation patterns. + pattern: "Fragmisincorporation_plot.pdf" + - length_plot: + type: file + description: A pdf file that displays length distribution of singleton reads per strand and cumulative frequencies of C->T at 5'-end and G->A at 3'-end are also displayed per strand. + pattern: "Length_plot.pdf" + - misincorporation: + type: file + description: Contains a table with occurrences for each type of mutations and relative positions from the reads ends. + pattern: "misincorporation.txt" + - pctot_freq: + type: file + description: Contains frequencies of Cytosine to Thymine mutations per position from the 5'-ends. + pattern: "5pCtoT_freq.txt" + - pgtoa_freq: + type: file + description: Contains frequencies of Guanine to Adenine mutations per position from the 3'-ends. + pattern: "3pGtoA_freq.txt" + - dnacomp: + type: file + description: Contains a table of the reference genome base composition per position, inside reads and adjacent regions. + pattern: "dnacomp.txt" + - lgdistribution: + type: file + description: Contains a table with read length distributions per strand. + pattern: "lgdistribution.txt" + - stats_out_mcmc_hist: + type: file + description: A MCMC histogram for the damage parameters and log likelihood. + pattern: "Stats_out_MCMC_hist.pdf" + - stats_out_mcmc_iter: + type: file + description: Values for the damage parameters and log likelihood in each MCMC iteration. + pattern: "Stats_out_MCMC_iter.csv" + - stats_out_mcmc_trace: + type: file + description: A MCMC trace plot for the damage parameters and log likelihood. + pattern: "Stats_out_MCMC_trace.pdf" + - stats_out_mcmc_iter_summ_stat: + type: file + description: Summary statistics for the damage parameters estimated posterior distributions. + pattern: "Stats_out_MCMC_iter_summ_stat.csv" + - stats_out_mcmc_post_pred: + type: file + description: Empirical misincorporation frequency and posterior predictive intervals from the fitted model. + pattern: "Stats_out_MCMC_post_pred.pdf" + - stats_out_mcmc_correct_prob: + type: file + description: Position specific probability of a C->T and G->A misincorporation is due to damage. + pattern: "Stats_out_MCMC_correct_prob.csv" + - dnacomp_genome: + type: file + description: Contains the global reference genome base composition (computed by seqtk). + pattern: "dnacomp_genome.csv" + - rescaled: + type: file + description: Rescaled BAM file, where likely post-mortem damaged bases have downscaled quality scores. + pattern: "*.{bam}" + - fasta: + type: file + description: Allignments in a FASTA file, only if flagged by -d. + pattern: "*.{fasta}" + - folder: + type: folder + description: Folder created when --plot-only, --rescale and --stats-only flags are passed. + pattern: "*/" authors: -- "@darcy220606" + - "@darcy220606" diff --git a/modules/mash/dist/meta.yml b/modules/mash/dist/meta.yml index 8cbaa63c..5ca9373e 100644 --- a/modules/mash/dist/meta.yml +++ b/modules/mash/dist/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://mash.readthedocs.io/en/latest/sketches.html tool_dev_url: https://github.com/marbl/Mash doi: "10.1186/s13059-016-0997-x" - licence: ['https://github.com/marbl/Mash/blob/master/LICENSE.txt'] + licence: ["https://github.com/marbl/Mash/blob/master/LICENSE.txt"] input: - meta: diff --git a/modules/mash/sketch/meta.yml b/modules/mash/sketch/meta.yml index fba0e000..d5c0f3a1 100644 --- a/modules/mash/sketch/meta.yml +++ b/modules/mash/sketch/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://mash.readthedocs.io/en/latest/sketches.html tool_dev_url: https://github.com/marbl/Mash doi: "10.1186/s13059-016-0997-x" - licence: ['https://github.com/marbl/Mash/blob/master/LICENSE.txt'] + licence: ["https://github.com/marbl/Mash/blob/master/LICENSE.txt"] input: - meta: diff --git a/modules/mashtree/meta.yml b/modules/mashtree/meta.yml index 3cf74772..ec5ea338 100644 --- a/modules/mashtree/meta.yml +++ b/modules/mashtree/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/lskatz/mashtree tool_dev_url: https://github.com/lskatz/mashtree doi: "https://doi.org/10.21105/joss.01762" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/maxbin2/meta.yml b/modules/maxbin2/meta.yml index 358f8323..7971d481 100644 --- a/modules/maxbin2/meta.yml +++ b/modules/maxbin2/meta.yml @@ -16,7 +16,7 @@ tools: documentation: https://sourceforge.net/projects/maxbin/ tool_dev_url: https://sourceforge.net/projects/maxbin/ doi: "10.1093/bioinformatics/btv638" - licence: ['BSD 3-clause'] + licence: ["BSD 3-clause"] input: - meta: diff --git a/modules/medaka/meta.yml b/modules/medaka/meta.yml index d194464f..66557460 100644 --- a/modules/medaka/meta.yml +++ b/modules/medaka/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://nanoporetech.github.io/medaka/index.html tool_dev_url: https://github.com/nanoporetech/medaka doi: "" - licence: ['Mozilla Public License 2.0'] + licence: ["Mozilla Public License 2.0"] input: - meta: diff --git a/modules/megahit/meta.yml b/modules/megahit/meta.yml index e4b2181b..f9572ab4 100644 --- a/modules/megahit/meta.yml +++ b/modules/megahit/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://github.com/voutcn/megahit tool_dev_url: https://github.com/voutcn/megahit doi: "10.1093/bioinformatics/btv033" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: @@ -24,8 +24,8 @@ input: - reads: type: file description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively in gzipped or uncompressed FASTQ or FASTA format. + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively in gzipped or uncompressed FASTQ or FASTA format. output: - meta: diff --git a/modules/meningotype/meta.yml b/modules/meningotype/meta.yml index 07c2ff5e..fdef2836 100644 --- a/modules/meningotype/meta.yml +++ b/modules/meningotype/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/MDU-PHL/meningotype tool_dev_url: https://github.com/MDU-PHL/meningotype doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/metabat2/jgisummarizebamcontigdepths/meta.yml b/modules/metabat2/jgisummarizebamcontigdepths/meta.yml index 351a4701..ff0ab40e 100644 --- a/modules/metabat2/jgisummarizebamcontigdepths/meta.yml +++ b/modules/metabat2/jgisummarizebamcontigdepths/meta.yml @@ -14,7 +14,7 @@ tools: documentation: https://bitbucket.org/berkeleylab/metabat/src/master/ tool_dev_url: https://bitbucket.org/berkeleylab/metabat/src/master/ doi: "10.7717/peerj.7359" - licence: ['BSD-3-clause-LBNL'] + licence: ["BSD-3-clause-LBNL"] input: - meta: diff --git a/modules/metabat2/metabat2/meta.yml b/modules/metabat2/metabat2/meta.yml index 0ec07b02..04b8df4f 100644 --- a/modules/metabat2/metabat2/meta.yml +++ b/modules/metabat2/metabat2/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://bitbucket.org/berkeleylab/metabat/src/master/ tool_dev_url: https://bitbucket.org/berkeleylab/metabat/src/master/ doi: "10.7717/peerj.7359" - licence: ['BSD-3-clause-LBNL'] + licence: ["BSD-3-clause-LBNL"] input: - meta: @@ -28,8 +28,8 @@ input: - depth: type: file description: | - Optional text file listing the coverage per contig pre-generated - by metabat2_jgisummarizebamcontigdepths + Optional text file listing the coverage per contig pre-generated + by metabat2_jgisummarizebamcontigdepths pattern: "*.txt" output: @@ -63,7 +63,6 @@ output: description: cluster memberships as a matrix format. pattern: "*.tsv.gz" - authors: - "@maxibor" - "@jfy133" diff --git a/modules/metaphlan3/meta.yml b/modules/metaphlan3/meta.yml index 0d3c6f85..d10a27d7 100644 --- a/modules/metaphlan3/meta.yml +++ b/modules/metaphlan3/meta.yml @@ -8,11 +8,11 @@ keywords: - fasta tools: - metaphlan3: - description: Identify clades (phyla to species) present in the metagenome obtained from a microbiome sample and their relative abundance + description: Identify clades (phyla to species) present in the metagenome obtained from a microbiome sample and their relative abundance homepage: https://huttenhower.sph.harvard.edu/metaphlan/ documentation: https://github.com/biobakery/MetaPhlAn doi: "10.7554/eLife.65088" - licence: ['MIT License'] + licence: ["MIT License"] input: - meta: diff --git a/modules/methyldackel/extract/meta.yml b/modules/methyldackel/extract/meta.yml index 3c1dfb2a..810f2456 100644 --- a/modules/methyldackel/extract/meta.yml +++ b/modules/methyldackel/extract/meta.yml @@ -1,58 +1,58 @@ name: methyldackel_extract description: Extracts per-base methylation metrics from alignments keywords: - - methylation - - 5mC - - methylseq - - bisulphite - - consensus - - bedGraph - - bam - - cram + - methylation + - 5mC + - methylseq + - bisulphite + - consensus + - bedGraph + - bam + - cram tools: - - methyldackel: - description: | - A (mostly) universal methylation extractor - for BS-seq experiments. - homepage: https://github.com/brentp/bwa-meth - documentation: https://github.com/brentp/bwa-meth - arxiv: arXiv:1401.1129 - licence: ['MIT'] + - methyldackel: + description: | + A (mostly) universal methylation extractor + for BS-seq experiments. + homepage: https://github.com/brentp/bwa-meth + documentation: https://github.com/brentp/bwa-meth + arxiv: arXiv:1401.1129 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: Input genome fasta file - pattern: "*.{fasta,fa}" - - fai: - type: file - description: FASTA index file - pattern: "*.{fai}" - - bam: - type: file - description: BAM/CRAM file - pattern: "*.{bam,cram}" - - bai: - type: file - description: BAM/CRAM index file - pattern: "*.{bai,crai}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Input genome fasta file + pattern: "*.{fasta,fa}" + - fai: + type: file + description: FASTA index file + pattern: "*.{fai}" + - bam: + type: file + description: BAM/CRAM file + pattern: "*.{bam,cram}" + - bai: + type: file + description: BAM/CRAM index file + pattern: "*.{bai,crai}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bedgraph: - type: file - description: bedGraph file containing per-base methylation metrics - pattern: "*.{bedGraph}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bedgraph: + type: file + description: bedGraph file containing per-base methylation metrics + pattern: "*.{bedGraph}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/methyldackel/mbias/meta.yml b/modules/methyldackel/mbias/meta.yml index e66cde50..a83ca106 100644 --- a/modules/methyldackel/mbias/meta.yml +++ b/modules/methyldackel/mbias/meta.yml @@ -1,59 +1,59 @@ name: methyldackel_mbias description: Generates methylation bias plots from alignments keywords: - - methylation - - 5mC - - methylseq - - bisulphite - - methylation bias - - mbias - - qc - - bam - - cram + - methylation + - 5mC + - methylseq + - bisulphite + - methylation bias + - mbias + - qc + - bam + - cram tools: - - methyldackel: - description: | - A (mostly) universal methylation extractor - for BS-seq experiments. - homepage: https://github.com/brentp/bwa-meth - documentation: https://github.com/brentp/bwa-meth - arxiv: arXiv:1401.1129 - licence: ['MIT'] + - methyldackel: + description: | + A (mostly) universal methylation extractor + for BS-seq experiments. + homepage: https://github.com/brentp/bwa-meth + documentation: https://github.com/brentp/bwa-meth + arxiv: arXiv:1401.1129 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: Input genome fasta file - pattern: "*.{fasta,fa}" - - fai: - type: file - description: FASTA index file - pattern: "*.{fai}" - - bam: - type: file - description: BAM/CRAM file - pattern: "*.{bam,cram}" - - bai: - type: file - description: BAM/CRAM index file - pattern: "*.{bai,crai}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Input genome fasta file + pattern: "*.{fasta,fa}" + - fai: + type: file + description: FASTA index file + pattern: "*.{fai}" + - bam: + type: file + description: BAM/CRAM file + pattern: "*.{bam,cram}" + - bai: + type: file + description: BAM/CRAM index file + pattern: "*.{bai,crai}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - txt: - type: file - description: Text file containing methylation bias - pattern: "*.{txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - txt: + type: file + description: Text file containing methylation bias + pattern: "*.{txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/minia/meta.yml b/modules/minia/meta.yml index 397a1d49..ae86f75c 100644 --- a/modules/minia/meta.yml +++ b/modules/minia/meta.yml @@ -9,7 +9,7 @@ tools: a human genome on a desktop computer in a day. The output of Minia is a set of contigs. homepage: https://github.com/GATB/minia documentation: https://github.com/GATB/minia - licence: ['AGPL-3.0-or-later'] + licence: ["AGPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/miniasm/meta.yml b/modules/miniasm/meta.yml index e8aedb9a..59865945 100644 --- a/modules/miniasm/meta.yml +++ b/modules/miniasm/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/lh3/miniasm tool_dev_url: https://github.com/lh3/miniasm doi: "10.1093/bioinformatics/btw152" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/minimap2/align/meta.yml b/modules/minimap2/align/meta.yml index 9994fb05..89e24283 100644 --- a/modules/minimap2/align/meta.yml +++ b/modules/minimap2/align/meta.yml @@ -1,47 +1,47 @@ name: minimap2_align description: A versatile pairwise aligner for genomic and spliced nucleotide sequences keywords: - - align - - fasta - - fastq - - genome - - paf - - reference + - align + - fasta + - fastq + - genome + - paf + - reference tools: - - minimap2: - description: | - A versatile pairwise aligner for genomic and spliced nucleotide sequences. - homepage: https://github.com/lh3/minimap2 - documentation: https://github.com/lh3/minimap2#uguide - licence: ['MIT'] + - minimap2: + description: | + A versatile pairwise aligner for genomic and spliced nucleotide sequences. + homepage: https://github.com/lh3/minimap2 + documentation: https://github.com/lh3/minimap2#uguide + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FASTA or FASTQ files of size 1 and 2 for single-end - and paired-end data, respectively. - - reference: - type: file - description: | - Reference database in FASTA format. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FASTA or FASTQ files of size 1 and 2 for single-end + and paired-end data, respectively. + - reference: + type: file + description: | + Reference database in FASTA format. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - paf: - type: file - description: Alignment in PAF format - pattern: "*.paf" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - paf: + type: file + description: Alignment in PAF format + pattern: "*.paf" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@heuermh" + - "@heuermh" diff --git a/modules/minimap2/index/meta.yml b/modules/minimap2/index/meta.yml index 78a39bdd..3bf9f043 100644 --- a/modules/minimap2/index/meta.yml +++ b/modules/minimap2/index/meta.yml @@ -1,30 +1,30 @@ name: minimap2_index description: Provides fasta index required by minimap2 alignment. keywords: - - index - - fasta - - reference + - index + - fasta + - reference tools: - - minimap2: - description: | - A versatile pairwise aligner for genomic and spliced nucleotide sequences. - homepage: https://github.com/lh3/minimap2 - documentation: https://github.com/lh3/minimap2#uguide - licence: ['MIT'] + - minimap2: + description: | + A versatile pairwise aligner for genomic and spliced nucleotide sequences. + homepage: https://github.com/lh3/minimap2 + documentation: https://github.com/lh3/minimap2#uguide + licence: ["MIT"] input: - - fasta: - type: file - description: | - Reference database in FASTA format. + - fasta: + type: file + description: | + Reference database in FASTA format. output: - - mmi: - type: file - description: Minimap2 fasta index. - pattern: "*.mmi" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - mmi: + type: file + description: Minimap2 fasta index. + pattern: "*.mmi" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@yuukiiwa" - - "@drpatelh" + - "@yuukiiwa" + - "@drpatelh" diff --git a/modules/mlst/meta.yml b/modules/mlst/meta.yml index e9d2a09f..63667f96 100644 --- a/modules/mlst/meta.yml +++ b/modules/mlst/meta.yml @@ -9,7 +9,7 @@ tools: documentation: None tool_dev_url: None doi: "" - licence: ['GPL v2'] + licence: ["GPL v2"] input: - meta: diff --git a/modules/mosdepth/meta.yml b/modules/mosdepth/meta.yml index 0ca7bce9..636e966b 100644 --- a/modules/mosdepth/meta.yml +++ b/modules/mosdepth/meta.yml @@ -11,7 +11,7 @@ tools: Fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing. documentation: https://github.com/brentp/mosdepth doi: 10.1093/bioinformatics/btx699 - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map @@ -73,6 +73,6 @@ output: description: File containing software versions pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" - - "@ramprasadn" + - "@joseespinosa" + - "@drpatelh" + - "@ramprasadn" diff --git a/modules/msisensor/msi/meta.yml b/modules/msisensor/msi/meta.yml index e3f13e2e..5f291994 100644 --- a/modules/msisensor/msi/meta.yml +++ b/modules/msisensor/msi/meta.yml @@ -10,7 +10,7 @@ tools: documentation: None tool_dev_url: None doi: "10.1093/bioinformatics/btt755" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/msisensor/scan/meta.yml b/modules/msisensor/scan/meta.yml index 4900f8cc..5976166d 100644 --- a/modules/msisensor/scan/meta.yml +++ b/modules/msisensor/scan/meta.yml @@ -10,7 +10,7 @@ tools: documentation: None tool_dev_url: None doi: "10.1093/bioinformatics/btt755" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/mtnucratio/meta.yml b/modules/mtnucratio/meta.yml index 824af397..b8cdef36 100644 --- a/modules/mtnucratio/meta.yml +++ b/modules/mtnucratio/meta.yml @@ -15,7 +15,7 @@ tools: documentation: https://github.com/apeltzer/MTNucRatioCalculator tool_dev_url: https://github.com/apeltzer/MTNucRatioCalculator doi: "10.1186/s13059-016-0918-z" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/multiqc/meta.yml b/modules/multiqc/meta.yml index 63c75a45..6fa891ef 100644 --- a/modules/multiqc/meta.yml +++ b/modules/multiqc/meta.yml @@ -1,40 +1,40 @@ name: MultiQC description: Aggregate results from bioinformatics analyses across many samples into a single report keywords: - - QC - - bioinformatics tools - - Beautiful stand-alone HTML report + - QC + - bioinformatics tools + - Beautiful stand-alone HTML report tools: - - multiqc: - description: | - MultiQC searches a given directory for analysis logs and compiles a HTML report. - It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. - homepage: https://multiqc.info/ - documentation: https://multiqc.info/docs/ - licence: ['GPL-3.0-or-later'] + - multiqc: + description: | + MultiQC searches a given directory for analysis logs and compiles a HTML report. + It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. + homepage: https://multiqc.info/ + documentation: https://multiqc.info/docs/ + licence: ["GPL-3.0-or-later"] input: - - multiqc_files: - type: file - description: | - List of reports / files recognised by MultiQC, for example the html and zip output of FastQC + - multiqc_files: + type: file + description: | + List of reports / files recognised by MultiQC, for example the html and zip output of FastQC output: - - report: - type: file - description: MultiQC report file - pattern: "multiqc_report.html" - - data: - type: dir - description: MultiQC data dir - pattern: "multiqc_data" - - plots: - type: file - description: Plots created by MultiQC - pattern: "*_data" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - report: + type: file + description: MultiQC report file + pattern: "multiqc_report.html" + - data: + type: dir + description: MultiQC data dir + pattern: "multiqc_data" + - plots: + type: file + description: Plots created by MultiQC + pattern: "*_data" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@abhi18av" - - "@bunop" - - "@drpatelh" + - "@abhi18av" + - "@bunop" + - "@drpatelh" diff --git a/modules/mummer/meta.yml b/modules/mummer/meta.yml index 5f7a983c..ec4f0c86 100644 --- a/modules/mummer/meta.yml +++ b/modules/mummer/meta.yml @@ -11,7 +11,7 @@ tools: documentation: http://mummer.sourceforge.net/ tool_dev_url: http://mummer.sourceforge.net/ doi: https://doi.org/10.1186/gb-2004-5-2-r12 - licence: ['The Artistic License'] + licence: ["The Artistic License"] input: - meta: diff --git a/modules/muscle/meta.yml b/modules/muscle/meta.yml index d28afa72..274cc68d 100644 --- a/modules/muscle/meta.yml +++ b/modules/muscle/meta.yml @@ -1,15 +1,15 @@ name: muscle description: MUSCLE is a program for creating multiple alignments of amino acid or nucleotide sequences. A range of options are provided that give you the choice of optimizing accuracy, speed, or some compromise between the two keywords: - - msa - - multiple sequence alignment + - msa + - multiple sequence alignment tools: - muscle: - description: MUSCLE is a multiple sequence alignment tool with high accuracy and throughput - homepage: https://www.drive5.com/muscle - documentation: http://www.drive5.com/muscle/muscle.html#_Toc81224840 - doi: "https://pubmed.ncbi.nlm.nih.gov/15034147/" - licence: ['http://www.drive5.com/muscle/manual/license.html'] + description: MUSCLE is a multiple sequence alignment tool with high accuracy and throughput + homepage: https://www.drive5.com/muscle + documentation: http://www.drive5.com/muscle/muscle.html#_Toc81224840 + doi: "https://pubmed.ncbi.nlm.nih.gov/15034147/" + licence: ["http://www.drive5.com/muscle/manual/license.html"] input: - fasta: type: file diff --git a/modules/nanolyse/meta.yml b/modules/nanolyse/meta.yml index 326fc221..c5562a04 100644 --- a/modules/nanolyse/meta.yml +++ b/modules/nanolyse/meta.yml @@ -1,47 +1,47 @@ name: nanolyse description: DNA contaminant removal using NanoLyse keywords: - - contaminant_removal + - contaminant_removal tools: - - nanolyse: - description: | - DNA contaminant removal using NanoLyse - homepage: https://github.com/wdecoster/nanolyse - documentation: https://github.com/wdecoster/nanolyse#nanolyse - licence: ['GPL-3.0-or-later'] + - nanolyse: + description: | + DNA contaminant removal using NanoLyse + homepage: https://github.com/wdecoster/nanolyse + documentation: https://github.com/wdecoster/nanolyse#nanolyse + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fastq: - type: file - description: | - Basecalled reads in FASTQ.GZ format - pattern: "*.fastq.gz" - - fasta: - type: file - description: | - A reference fasta file against which to filter. - pattern: "*.fasta" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastq: + type: file + description: | + Basecalled reads in FASTQ.GZ format + pattern: "*.fastq.gz" + - fasta: + type: file + description: | + A reference fasta file against which to filter. + pattern: "*.fasta" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fastq: - type: file - description: Reads with contaminants removed in FASTQ format - pattern: "*.fastq.gz" - - log: - type: file - description: Log of the Nanolyse run. - pattern: "*.log" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastq: + type: file + description: Reads with contaminants removed in FASTQ format + pattern: "*.fastq.gz" + - log: + type: file + description: Log of the Nanolyse run. + pattern: "*.log" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@yuukiiwa" + - "@yuukiiwa" diff --git a/modules/nanoplot/meta.yml b/modules/nanoplot/meta.yml index 52ebb622..28c8c2d3 100644 --- a/modules/nanoplot/meta.yml +++ b/modules/nanoplot/meta.yml @@ -1,59 +1,59 @@ name: nanoplot description: Run NanoPlot on nanopore-sequenced reads keywords: - - quality control - - qc - - fastq - - sequencing summary - - nanopore + - quality control + - qc + - fastq + - sequencing summary + - nanopore tools: - - nanoplot: - description: | - NanoPlot is a tool for ploting long-read sequencing data and - alignment. - homepage: http://nanoplot.bioinf.be - documentation: https://github.com/wdecoster/NanoPlot - licence: ['GPL-3.0-or-later'] + - nanoplot: + description: | + NanoPlot is a tool for ploting long-read sequencing data and + alignment. + homepage: http://nanoplot.bioinf.be + documentation: https://github.com/wdecoster/NanoPlot + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fastq: - type: file - description: | - List of input basecalled-FastQ files. - - summary_txt: - type: file - description: | - List of sequencing_summary.txt files from running basecalling. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastq: + type: file + description: | + List of input basecalled-FastQ files. + - summary_txt: + type: file + description: | + List of sequencing_summary.txt files from running basecalling. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - html: - type: file - description: NanoPlot report - pattern: "*{.html}" - - png: - type: file - description: Plots generated by NanoPlot - pattern: "*{.png}" - - txt: - type: file - description: Stats from NanoPlot - pattern: "*{.txt}" - - log: - type: file - description: log file of NanoPlot run - pattern: "*{.log}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - html: + type: file + description: NanoPlot report + pattern: "*{.html}" + - png: + type: file + description: Plots generated by NanoPlot + pattern: "*{.png}" + - txt: + type: file + description: Stats from NanoPlot + pattern: "*{.txt}" + - log: + type: file + description: log file of NanoPlot run + pattern: "*{.log}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@yuukiiwa" + - "@drpatelh" + - "@yuukiiwa" diff --git a/modules/ncbigenomedownload/meta.yml b/modules/ncbigenomedownload/meta.yml index fd9e0a45..b4ff842a 100644 --- a/modules/ncbigenomedownload/meta.yml +++ b/modules/ncbigenomedownload/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/kblin/ncbi-genome-download tool_dev_url: https://github.com/kblin/ncbi-genome-download doi: "" - licence: ['Apache Software License'] + licence: ["Apache Software License"] input: - meta: diff --git a/modules/nextclade/datasetget/meta.yml b/modules/nextclade/datasetget/meta.yml index 1246d918..d5f65cda 100644 --- a/modules/nextclade/datasetget/meta.yml +++ b/modules/nextclade/datasetget/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/nextstrain/nextclade tool_dev_url: https://github.com/nextstrain/nextclade doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - dataset: diff --git a/modules/nextclade/run/meta.yml b/modules/nextclade/run/meta.yml index 40a863e6..d8f1eb37 100644 --- a/modules/nextclade/run/meta.yml +++ b/modules/nextclade/run/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/nextstrain/nextclade tool_dev_url: https://github.com/nextstrain/nextclade doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/ngmaster/meta.yml b/modules/ngmaster/meta.yml index 1dbb02a0..ec796965 100644 --- a/modules/ngmaster/meta.yml +++ b/modules/ngmaster/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/MDU-PHL/ngmaster/blob/master/README.md tool_dev_url: https://github.com/MDU-PHL/ngmaster doi: "10.1099/mgen.0.000076" - licence: ['GPL v3 only'] + licence: ["GPL v3 only"] input: - meta: diff --git a/modules/nucmer/meta.yml b/modules/nucmer/meta.yml index cccf723f..e9108ef2 100644 --- a/modules/nucmer/meta.yml +++ b/modules/nucmer/meta.yml @@ -10,7 +10,7 @@ tools: documentation: http://mummer.sourceforge.net/ tool_dev_url: http://mummer.sourceforge.net/ doi: "https://doi.org/10.1186/gb-2004-5-2-r12" - licence: ['The Artistic License'] + licence: ["The Artistic License"] input: - meta: diff --git a/modules/optitype/meta.yml b/modules/optitype/meta.yml index 37654463..4cacadda 100644 --- a/modules/optitype/meta.yml +++ b/modules/optitype/meta.yml @@ -10,7 +10,7 @@ tools: homepage: https://github.com/FRED-2/OptiType documentation: https://github.com/FRED-2/OptiType doi: "10.1093/bioinformatics/btu548" - licence: ['BSD-3-Clause'] + licence: ["BSD-3-Clause"] input: - meta: diff --git a/modules/pairix/meta.yml b/modules/pairix/meta.yml index 45577065..05f03f01 100644 --- a/modules/pairix/meta.yml +++ b/modules/pairix/meta.yml @@ -1,7 +1,7 @@ name: pairix description: | - a tool for indexing and querying on a block-compressed text file - containing pairs of genomic coordinates + a tool for indexing and querying on a block-compressed text file + containing pairs of genomic coordinates keywords: - index tools: @@ -11,7 +11,7 @@ tools: documentation: "https://github.com/4dn-dcic/pairix" tool_dev_url: "https://github.com/4dn-dcic/pairix" doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/pairtools/dedup/meta.yml b/modules/pairtools/dedup/meta.yml index 288b421e..00b0393c 100644 --- a/modules/pairtools/dedup/meta.yml +++ b/modules/pairtools/dedup/meta.yml @@ -9,7 +9,7 @@ tools: documentation: http://pairtools.readthedocs.io/ tool_dev_url: https://github.com/mirnylab/pairtools doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/pairtools/flip/meta.yml b/modules/pairtools/flip/meta.yml index 0d7aa082..2fe584e6 100644 --- a/modules/pairtools/flip/meta.yml +++ b/modules/pairtools/flip/meta.yml @@ -9,7 +9,7 @@ tools: documentation: http://pairtools.readthedocs.io/ tool_dev_url: https://github.com/mirnylab/pairtools doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/pairtools/parse/meta.yml b/modules/pairtools/parse/meta.yml index 8c9c30dc..c2f7691d 100644 --- a/modules/pairtools/parse/meta.yml +++ b/modules/pairtools/parse/meta.yml @@ -9,7 +9,7 @@ tools: documentation: http://pairtools.readthedocs.io/ tool_dev_url: https://github.com/mirnylab/pairtools doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/pairtools/restrict/meta.yml b/modules/pairtools/restrict/meta.yml index 0ab3b420..6b82f033 100644 --- a/modules/pairtools/restrict/meta.yml +++ b/modules/pairtools/restrict/meta.yml @@ -9,7 +9,7 @@ tools: documentation: http://pairtools.readthedocs.io/ tool_dev_url: https://github.com/mirnylab/pairtools doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/pairtools/select/meta.yml b/modules/pairtools/select/meta.yml index 5e45129b..667c6d0d 100644 --- a/modules/pairtools/select/meta.yml +++ b/modules/pairtools/select/meta.yml @@ -9,7 +9,7 @@ tools: documentation: http://pairtools.readthedocs.io/ tool_dev_url: https://github.com/mirnylab/pairtools doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/pairtools/sort/meta.yml b/modules/pairtools/sort/meta.yml index 6db2f9e2..f439c2ac 100644 --- a/modules/pairtools/sort/meta.yml +++ b/modules/pairtools/sort/meta.yml @@ -9,7 +9,7 @@ tools: documentation: http://pairtools.readthedocs.io/ tool_dev_url: https://github.com/mirnylab/pairtools doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/pangolin/meta.yml b/modules/pangolin/meta.yml index a2c0979a..93c25a75 100644 --- a/modules/pangolin/meta.yml +++ b/modules/pangolin/meta.yml @@ -1,34 +1,34 @@ name: pangolin description: Phylogenetic Assignment of Named Global Outbreak LINeages keywords: - - covid - - pangolin - - lineage + - covid + - pangolin + - lineage tools: - - star: - description: | - Phylogenetic Assignment of Named Global Outbreak LINeages - homepage: https://github.com/cov-lineages/pangolin#pangolearn-description - manual: https://github.com/cov-lineages/pangolin#pangolearn-description - licence: ['GPL-3.0-or-later'] + - star: + description: | + Phylogenetic Assignment of Named Global Outbreak LINeages + homepage: https://github.com/cov-lineages/pangolin#pangolearn-description + manual: https://github.com/cov-lineages/pangolin#pangolearn-description + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - - fasta: - type: file - description: | - The genome assembly to be evaluated + - meta: + type: map + description: | + Groovy Map containing sample information + - fasta: + type: file + description: | + The genome assembly to be evaluated output: - - report: - type: file - description: Pangolin lineage report - pattern: "*.{csv}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - report: + type: file + description: Pangolin lineage report + pattern: "*.{csv}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@kevinmenden" - - "@drpatelh" + - "@kevinmenden" + - "@drpatelh" diff --git a/modules/paraclu/meta.yml b/modules/paraclu/meta.yml index a3424c57..38043742 100644 --- a/modules/paraclu/meta.yml +++ b/modules/paraclu/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://gitlab.com/mcfrith/paraclu tool_dev_url: https://gitlab.com/mcfrith/paraclu doi: "" - licence: ['GPL v3-or-later'] + licence: ["GPL v3-or-later"] input: - meta: diff --git a/modules/pbbam/pbmerge/meta.yml b/modules/pbbam/pbmerge/meta.yml index 7042d86b..64b8d641 100644 --- a/modules/pbbam/pbmerge/meta.yml +++ b/modules/pbbam/pbmerge/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://pbbam.readthedocs.io/en/latest/tools/pbmerge.html tool_dev_url: https://github.com/pacificbiosciences/pbbam/ doi: "" - licence: ['BSD-3-Clause-Clear'] + licence: ["BSD-3-Clause-Clear"] input: - meta: diff --git a/modules/pbccs/meta.yml b/modules/pbccs/meta.yml index f55c0d71..5f3e1777 100644 --- a/modules/pbccs/meta.yml +++ b/modules/pbccs/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://ccs.how/ tool_dev_url: https://github.com/PacificBiosciences/ccs doi: "" - licence: ['BSD-3-Clause-Clear'] + licence: ["BSD-3-Clause-Clear"] input: - meta: diff --git a/modules/peddy/meta.yml b/modules/peddy/meta.yml index 7c3fcf45..b3f40bb5 100644 --- a/modules/peddy/meta.yml +++ b/modules/peddy/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://peddy.readthedocs.io/en/latest/ tool_dev_url: https://github.com/brentp/peddy doi: "https://doi.org/10.1016/j.ajhg.2017.01.017" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/phyloflash/meta.yml b/modules/phyloflash/meta.yml index 3ed7a9fa..d44001da 100644 --- a/modules/phyloflash/meta.yml +++ b/modules/phyloflash/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://hrgv.github.io/phyloFlash/usage.html tool_dev_url: https://github.com/HRGV/phyloFlash doi: "10.1128/mSystems.00920-20" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/picard/collectmultiplemetrics/meta.yml b/modules/picard/collectmultiplemetrics/meta.yml index 613afc62..68b5c65e 100644 --- a/modules/picard/collectmultiplemetrics/meta.yml +++ b/modules/picard/collectmultiplemetrics/meta.yml @@ -1,50 +1,50 @@ name: picard_collectmultiplemetrics description: Collect multiple metrics from a BAM file keywords: - - alignment - - metrics - - statistics - - insert - - quality - - bam + - alignment + - metrics + - statistics + - insert + - quality + - bam 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/ - licence: ['MIT'] + - 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/ + licence: ["MIT"] 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}" - - fasta: - type: file - description: Genome fasta file + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file + pattern: "*.{bam}" + - fasta: + type: file + description: Genome fasta file output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - metrics: - type: file - description: Alignment metrics files generated by picard - pattern: "*_{metrics}" - - pdf: - type: file - description: PDF plots of metrics - pattern: "*.{pdf}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - metrics: + type: file + description: Alignment metrics files generated by picard + pattern: "*_{metrics}" + - pdf: + type: file + description: PDF plots of metrics + pattern: "*.{pdf}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" + - "@drpatelh" diff --git a/modules/picard/collectwgsmetrics/meta.yml b/modules/picard/collectwgsmetrics/meta.yml index 5b4d8139..d6c3d012 100644 --- a/modules/picard/collectwgsmetrics/meta.yml +++ b/modules/picard/collectwgsmetrics/meta.yml @@ -1,47 +1,47 @@ name: picard_collectwgsmetrics description: Collect metrics about coverage and performance of whole genome sequencing (WGS) experiments. keywords: - - alignment - - metrics - - statistics - - quality - - bam + - alignment + - metrics + - statistics + - quality + - bam 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/ - licence: ['MIT'] + - 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/ + licence: ["MIT"] 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}" - - fasta: - type: file - description: Genome fasta file + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file + pattern: "*.{bam}" + - fasta: + type: file + description: Genome fasta file output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - metrics: - type: file - description: Alignment metrics files generated by picard - pattern: "*_{metrics}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - metrics: + type: file + description: Alignment metrics files generated by picard + pattern: "*_{metrics}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@flowuenne" - - "@lassefolkersen" + - "@drpatelh" + - "@flowuenne" + - "@lassefolkersen" diff --git a/modules/picard/filtersamreads/meta.yml b/modules/picard/filtersamreads/meta.yml index d63ebcf0..4a8bec5c 100644 --- a/modules/picard/filtersamreads/meta.yml +++ b/modules/picard/filtersamreads/meta.yml @@ -6,46 +6,46 @@ keywords: 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. + 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/ tool_dev_url: https://github.com/broadinstitute/picard doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: List of BAM files. If filtering without read list must be sorted by queryname with picard sortsam - pattern: "*.{bam}" - - filter: - type: value - description: Picard filter type - pattern: "includeAligned|excludeAligned|includeReadList|excludeReadList" - - readlist: - type: file - description: Optional text file containing reads IDs to include or exclude + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: List of BAM files. If filtering without read list must be sorted by queryname with picard sortsam + pattern: "*.{bam}" + - filter: + type: value + description: Picard filter type + pattern: "includeAligned|excludeAligned|includeReadList|excludeReadList" + - readlist: + type: file + description: Optional text file containing reads IDs to include or exclude output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: Filtered BAM file - pattern: "*.{bam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Filtered BAM file + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@jfy133" diff --git a/modules/picard/markduplicates/meta.yml b/modules/picard/markduplicates/meta.yml index c9a08b36..842817bc 100644 --- a/modules/picard/markduplicates/meta.yml +++ b/modules/picard/markduplicates/meta.yml @@ -14,7 +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'] + licence: ["MIT"] input: - meta: type: map diff --git a/modules/picard/mergesamfiles/meta.yml b/modules/picard/mergesamfiles/meta.yml index 3d010c3c..5f07ecd0 100644 --- a/modules/picard/mergesamfiles/meta.yml +++ b/modules/picard/mergesamfiles/meta.yml @@ -1,41 +1,41 @@ name: picard_mergesamfiles description: Merges multiple BAM files into a single file keywords: - - merge - - alignment - - bam - - sam + - merge + - alignment + - bam + - sam 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/ - licence: ['MIT'] + - 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/ + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: List of BAM files - pattern: "*.{bam}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: List of BAM files + pattern: "*.{bam}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: Merged BAM file - pattern: "*.{bam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Merged BAM file + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" + - "@drpatelh" diff --git a/modules/picard/sortsam/meta.yml b/modules/picard/sortsam/meta.yml index aa90e456..3e34225d 100644 --- a/modules/picard/sortsam/meta.yml +++ b/modules/picard/sortsam/meta.yml @@ -1,17 +1,17 @@ name: picard_sortsam description: Sorts BAM/SAM files based on a variety of picard specific criteria keywords: - - sort - - bam - - sam + - sort + - bam + - sam 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/ - licence: ['MIT'] + - 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/ + licence: ["MIT"] input: - meta: @@ -43,6 +43,5 @@ output: description: Sorted BAM/CRAM/SAM file pattern: "*.{bam}" - authors: - "@jfy133" diff --git a/modules/pirate/meta.yml b/modules/pirate/meta.yml index 296dd11d..d67a91e9 100644 --- a/modules/pirate/meta.yml +++ b/modules/pirate/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/SionBayliss/PIRATE/wiki tool_dev_url: https://github.com/SionBayliss/PIRATE doi: "https://doi.org/10.1093/gigascience/giz119" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/plasmidid/meta.yml b/modules/plasmidid/meta.yml index 8cde23c5..4887cb9a 100644 --- a/modules/plasmidid/meta.yml +++ b/modules/plasmidid/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/BU-ISCIII/plasmidID#readme tool_dev_url: https://github.com/BU-ISCIII/plasmidID doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/plink/extract/meta.yml b/modules/plink/extract/meta.yml index 3978fbb4..7fc2d116 100644 --- a/modules/plink/extract/meta.yml +++ b/modules/plink/extract/meta.yml @@ -10,7 +10,7 @@ tools: documentation: None tool_dev_url: None doi: "" - licence: ['GPL'] + licence: ["GPL"] input: - meta: diff --git a/modules/plink/vcf/meta.yml b/modules/plink/vcf/meta.yml index d39892b7..bd8ab133 100644 --- a/modules/plink/vcf/meta.yml +++ b/modules/plink/vcf/meta.yml @@ -12,7 +12,7 @@ tools: documentation: None tool_dev_url: "https://www.cog-genomics.org/plink/1.9/dev" doi: "" - licence: ['GPL'] + licence: ["GPL"] input: - meta: diff --git a/modules/plink2/extract/meta.yml b/modules/plink2/extract/meta.yml index 2323dbc7..07c13ebc 100644 --- a/modules/plink2/extract/meta.yml +++ b/modules/plink2/extract/meta.yml @@ -6,13 +6,13 @@ keywords: tools: - plink2: description: | - Whole genome association analysis toolset, designed to perform a range - of basic, large-scale analyses in a computationally efficient manner + Whole genome association analysis toolset, designed to perform a range + of basic, large-scale analyses in a computationally efficient manner homepage: http://www.cog-genomics.org/plink/2.0/ documentation: http://www.cog-genomics.org/plink/2.0/general_usage tool_dev_url: None doi: "10.1186/s13742-015-0047-8" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/plink2/vcf/meta.yml b/modules/plink2/vcf/meta.yml index 1b2f3a9b..5697ebef 100644 --- a/modules/plink2/vcf/meta.yml +++ b/modules/plink2/vcf/meta.yml @@ -6,13 +6,13 @@ keywords: tools: - plink2: description: | - Whole genome association analysis toolset, designed to perform a range - of basic, large-scale analyses in a computationally efficient manner + Whole genome association analysis toolset, designed to perform a range + of basic, large-scale analyses in a computationally efficient manner homepage: http://www.cog-genomics.org/plink/2.0/ documentation: http://www.cog-genomics.org/plink/2.0/general_usage tool_dev_url: None doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/pmdtools/filter/meta.yml b/modules/pmdtools/filter/meta.yml index 72abbfdc..58d562bf 100644 --- a/modules/pmdtools/filter/meta.yml +++ b/modules/pmdtools/filter/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/pontussk/PMDtools tool_dev_url: https://github.com/pontussk/PMDtools doi: "10.1073/pnas.1318934111" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/preseq/lcextrap/meta.yml b/modules/preseq/lcextrap/meta.yml index bdc61228..0e33df25 100755 --- a/modules/preseq/lcextrap/meta.yml +++ b/modules/preseq/lcextrap/meta.yml @@ -11,7 +11,7 @@ tools: documentation: None tool_dev_url: None doi: "" - licence: ['GPL'] + licence: ["GPL"] input: - meta: diff --git a/modules/prokka/meta.yml b/modules/prokka/meta.yml index 87446694..7fc9e185 100644 --- a/modules/prokka/meta.yml +++ b/modules/prokka/meta.yml @@ -9,7 +9,7 @@ tools: description: Rapid annotation of prokaryotic genomes homepage: https://github.com/tseemann/prokka doi: "10.1093/bioinformatics/btu153" - licence: ['GPL v2'] + licence: ["GPL v2"] input: - meta: diff --git a/modules/pycoqc/meta.yml b/modules/pycoqc/meta.yml index 33bd6b07..83748855 100644 --- a/modules/pycoqc/meta.yml +++ b/modules/pycoqc/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://tleonardi.github.io/pycoQC/ tool_dev_url: https://github.com/tleonardi/pycoQC doi: "10.21105/joss.01236" - licence: ['GNU General Public v3 (GPL v3)'] + licence: ["GNU General Public v3 (GPL v3)"] input: - meta: diff --git a/modules/pydamage/analyze/meta.yml b/modules/pydamage/analyze/meta.yml index 918fbce9..09dd25eb 100644 --- a/modules/pydamage/analyze/meta.yml +++ b/modules/pydamage/analyze/meta.yml @@ -19,7 +19,7 @@ tools: homepage: https://github.com/maxibor/pydamage documentation: https://pydamage.readthedocs.io/ tool_dev_url: https://github.com/maxibor/pydamage - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/pydamage/filter/meta.yml b/modules/pydamage/filter/meta.yml index 706e38b0..c732ab9b 100644 --- a/modules/pydamage/filter/meta.yml +++ b/modules/pydamage/filter/meta.yml @@ -19,7 +19,7 @@ tools: homepage: https://github.com/maxibor/pydamage documentation: https://pydamage.readthedocs.io/ tool_dev_url: https://github.com/maxibor/pydamage - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/qcat/meta.yml b/modules/qcat/meta.yml index e0ab6a0f..97b9b884 100644 --- a/modules/qcat/meta.yml +++ b/modules/qcat/meta.yml @@ -1,40 +1,40 @@ name: qcat description: Demultiplexer for Nanopore samples keywords: - - demultiplex + - demultiplex tools: - - qcat: - description: | - A demultiplexer for Nanopore samples - homepage: https://github.com/nanoporetech/qcat - documentation: https://github.com/nanoporetech/qcat#qcat - licence: ['MPL-2.0'] + - qcat: + description: | + A demultiplexer for Nanopore samples + homepage: https://github.com/nanoporetech/qcat + documentation: https://github.com/nanoporetech/qcat#qcat + licence: ["MPL-2.0"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - Non-demultiplexed fastq files + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + Non-demultiplexed fastq files output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: Demultiplexed fastq samples - pattern: "*.fastq.gz" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: Demultiplexed fastq samples + pattern: "*.fastq.gz" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@yuukiiwa" - - "@drpatelh" + - "@yuukiiwa" + - "@drpatelh" diff --git a/modules/qualimap/bamqc/meta.yml b/modules/qualimap/bamqc/meta.yml index 6888d30e..cf7cfb4f 100644 --- a/modules/qualimap/bamqc/meta.yml +++ b/modules/qualimap/bamqc/meta.yml @@ -1,50 +1,50 @@ name: qualimap_bamqc description: Evaluate alignment data keywords: - - quality control - - qc - - bam + - quality control + - qc + - bam tools: - - qualimap: - description: | - Qualimap 2 is a platform-independent application written in - Java and R that provides both a Graphical User Interface and - a command-line interface to facilitate the quality control of - alignment sequencing data and its derivatives like feature counts. - homepage: http://qualimap.bioinfo.cipf.es/ - documentation: http://qualimap.conesalab.org/doc_html/index.html - doi: 10.1093/bioinformatics/bts503 - licence: ['GPL-2.0-only'] + - qualimap: + description: | + Qualimap 2 is a platform-independent application written in + Java and R that provides both a Graphical User Interface and + a command-line interface to facilitate the quality control of + alignment sequencing data and its derivatives like feature counts. + homepage: http://qualimap.bioinfo.cipf.es/ + documentation: http://qualimap.conesalab.org/doc_html/index.html + doi: 10.1093/bioinformatics/bts503 + licence: ["GPL-2.0-only"] 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}" - - gff: - type: file - description: Feature file with regions of interest - pattern: "*.{gff,gtf,bed}" - - use_gff: - type: boolean - description: Specifies if feature file should be used or not + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file + pattern: "*.{bam}" + - gff: + type: file + description: Feature file with regions of interest + pattern: "*.{gff,gtf,bed}" + - use_gff: + type: boolean + description: Specifies if feature file should be used or not output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - results: - type: dir - description: Qualimap results dir - pattern: "*/*" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - results: + type: dir + description: Qualimap results dir + pattern: "*/*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@phue" + - "@phue" diff --git a/modules/quast/meta.yml b/modules/quast/meta.yml index 05faa8b8..f4bc38fc 100644 --- a/modules/quast/meta.yml +++ b/modules/quast/meta.yml @@ -10,7 +10,7 @@ tools: QUAST calculates quality metrics for genome assemblies homepage: http://bioinf.spbau.ru/quast doi: https://doi.org/10.1093/bioinformatics/btt086 - licence: ['GPL-2.0-only'] + licence: ["GPL-2.0-only"] input: - consensus: type: file diff --git a/modules/racon/meta.yml b/modules/racon/meta.yml index 2428f044..0cb3888e 100644 --- a/modules/racon/meta.yml +++ b/modules/racon/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/lbcb-sci/racon tool_dev_url: https://github.com/lbcb-sci/racon doi: https://doi.org/10.1101/gr.214270.116 - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/rapidnj/meta.yml b/modules/rapidnj/meta.yml index ead54e09..968baeb5 100644 --- a/modules/rapidnj/meta.yml +++ b/modules/rapidnj/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://birc.au.dk/software/rapidnj tool_dev_url: https://github.com/somme89/rapidNJ doi: "doi:10.1007/978-3-540-87361-7_10" - licence: ['GPL v2'] + licence: ["GPL v2"] input: - alignment: diff --git a/modules/rasusa/meta.yml b/modules/rasusa/meta.yml index 610afd3f..86bce584 100644 --- a/modules/rasusa/meta.yml +++ b/modules/rasusa/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/mbhall88/rasusa/blob/master/README.md tool_dev_url: https://github.com/mbhall88/rasusa doi: "10.5281/zenodo.3731394" - licence: ['MIT'] + licence: ["MIT"] input: - meta: @@ -20,14 +20,14 @@ input: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - reads: - type: file - description: List of input paired-end FastQ files + type: file + description: List of input paired-end FastQ files - genome_size: - type: string - description: Genome size of the species + type: string + description: Genome size of the species - depth_cutoff: - type: integer - description: Depth of coverage cutoff + type: integer + description: Depth of coverage cutoff output: - meta: diff --git a/modules/raven/meta.yml b/modules/raven/meta.yml index 644907a9..53917625 100644 --- a/modules/raven/meta.yml +++ b/modules/raven/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://github.com/lbcb-sci/raven#usage tool_dev_url: https://github.com/lbcb-sci/raven doi: doi.org/10.1038/s43588-021-00073-4 - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map diff --git a/modules/raxmlng/meta.yml b/modules/raxmlng/meta.yml index 3cc558f4..2a23537a 100644 --- a/modules/raxmlng/meta.yml +++ b/modules/raxmlng/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/amkozlov/raxml-ng/wiki tool_dev_url: https://github.com/amkozlov/raxml-ng doi: doi.org/10.1093/bioinformatics/btz305 - licence: ['GPL v2-or-later'] + licence: ["GPL v2-or-later"] input: - alignment: diff --git a/modules/roary/meta.yml b/modules/roary/meta.yml index 4cf42bdf..a24ae558 100644 --- a/modules/roary/meta.yml +++ b/modules/roary/meta.yml @@ -11,7 +11,7 @@ tools: documentation: http://sanger-pathogens.github.io/Roary/ tool_dev_url: https://github.com/sanger-pathogens/Roary/ doi: "http://dx.doi.org/10.1093/bioinformatics/btv421" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/rsem/calculateexpression/meta.yml b/modules/rsem/calculateexpression/meta.yml index fdfaa0c4..10b54b49 100644 --- a/modules/rsem/calculateexpression/meta.yml +++ b/modules/rsem/calculateexpression/meta.yml @@ -21,7 +21,7 @@ input: - reads: type: file description: Input reads for quantification - pattern: "*.fastq.gz"# + pattern: "*.fastq.gz" - index: type: file description: RSEM index diff --git a/modules/rsem/preparereference/meta.yml b/modules/rsem/preparereference/meta.yml index 062f0256..fbe57b20 100644 --- a/modules/rsem/preparereference/meta.yml +++ b/modules/rsem/preparereference/meta.yml @@ -10,7 +10,7 @@ tools: homepage: https://github.com/deweylab/RSEM documentation: https://github.com/deweylab/RSEM doi: https://doi.org/10.1186/1471-2105-12-323 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - fasta: type: file diff --git a/modules/rseqc/bamstat/meta.yml b/modules/rseqc/bamstat/meta.yml index 561ba195..2d7fa799 100644 --- a/modules/rseqc/bamstat/meta.yml +++ b/modules/rseqc/bamstat/meta.yml @@ -12,7 +12,7 @@ tools: homepage: http://rseqc.sourceforge.net/ documentation: http://rseqc.sourceforge.net/ doi: 10.1093/bioinformatics/bts356 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/rseqc/inferexperiment/meta.yml b/modules/rseqc/inferexperiment/meta.yml index 88eabc8a..b4162059 100644 --- a/modules/rseqc/inferexperiment/meta.yml +++ b/modules/rseqc/inferexperiment/meta.yml @@ -11,7 +11,7 @@ tools: homepage: http://rseqc.sourceforge.net/ documentation: http://rseqc.sourceforge.net/ doi: 10.1093/bioinformatics/bts356 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/rseqc/innerdistance/meta.yml b/modules/rseqc/innerdistance/meta.yml index 27bcf242..d10a4c44 100644 --- a/modules/rseqc/innerdistance/meta.yml +++ b/modules/rseqc/innerdistance/meta.yml @@ -11,7 +11,7 @@ tools: homepage: http://rseqc.sourceforge.net/ documentation: http://rseqc.sourceforge.net/ doi: 10.1093/bioinformatics/bts356 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/rseqc/junctionannotation/meta.yml b/modules/rseqc/junctionannotation/meta.yml index 56364232..a17b84e9 100644 --- a/modules/rseqc/junctionannotation/meta.yml +++ b/modules/rseqc/junctionannotation/meta.yml @@ -12,7 +12,7 @@ tools: homepage: http://rseqc.sourceforge.net/ documentation: http://rseqc.sourceforge.net/ doi: 10.1093/bioinformatics/bts356 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/rseqc/junctionsaturation/meta.yml b/modules/rseqc/junctionsaturation/meta.yml index 05d814ad..340fec0d 100644 --- a/modules/rseqc/junctionsaturation/meta.yml +++ b/modules/rseqc/junctionsaturation/meta.yml @@ -12,7 +12,7 @@ tools: homepage: http://rseqc.sourceforge.net/ documentation: http://rseqc.sourceforge.net/ doi: 10.1093/bioinformatics/bts356 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/rseqc/readdistribution/meta.yml b/modules/rseqc/readdistribution/meta.yml index 4c736878..94c64712 100644 --- a/modules/rseqc/readdistribution/meta.yml +++ b/modules/rseqc/readdistribution/meta.yml @@ -12,7 +12,7 @@ tools: homepage: http://rseqc.sourceforge.net/ documentation: http://rseqc.sourceforge.net/ doi: 10.1093/bioinformatics/bts356 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/rseqc/readduplication/meta.yml b/modules/rseqc/readduplication/meta.yml index 3623de80..5a866643 100644 --- a/modules/rseqc/readduplication/meta.yml +++ b/modules/rseqc/readduplication/meta.yml @@ -11,7 +11,7 @@ tools: homepage: http://rseqc.sourceforge.net/ documentation: http://rseqc.sourceforge.net/ doi: 10.1093/bioinformatics/bts356 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/rseqc/tin/meta.yml b/modules/rseqc/tin/meta.yml index 158b4033..6333ae14 100644 --- a/modules/rseqc/tin/meta.yml +++ b/modules/rseqc/tin/meta.yml @@ -12,7 +12,7 @@ tools: homepage: http://rseqc.sourceforge.net/ documentation: http://rseqc.sourceforge.net/ doi: 10.1093/bioinformatics/bts356 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/salmon/index/meta.yml b/modules/salmon/index/meta.yml index 3b0cd853..53c64152 100644 --- a/modules/salmon/index/meta.yml +++ b/modules/salmon/index/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://salmon.readthedocs.io/en/latest/salmon.html manual: https://salmon.readthedocs.io/en/latest/salmon.html doi: 10.1038/nmeth.4197 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - genome_fasta: type: file diff --git a/modules/salmon/quant/meta.yml b/modules/salmon/quant/meta.yml index 223ca82b..109109d8 100644 --- a/modules/salmon/quant/meta.yml +++ b/modules/salmon/quant/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://salmon.readthedocs.io/en/latest/salmon.html manual: https://salmon.readthedocs.io/en/latest/salmon.html doi: 10.1038/nmeth.4197 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/samblaster/meta.yml b/modules/samblaster/meta.yml index 4d51f4fe..776bef20 100644 --- a/modules/samblaster/meta.yml +++ b/modules/samblaster/meta.yml @@ -1,13 +1,13 @@ name: samblaster description: | - This module combines samtools and samblaster in order to use - samblaster capability to filter or tag SAM files, with the advantage - of maintaining both input and output in BAM format. - Samblaster input must contain a sequence header: for this reason it has been piped - with the "samtools view -h" command. - Additional desired arguments for samtools can be passed using: - options.args2 for the input bam file - options.args3 for the output bam file + This module combines samtools and samblaster in order to use + samblaster capability to filter or tag SAM files, with the advantage + of maintaining both input and output in BAM format. + Samblaster input must contain a sequence header: for this reason it has been piped + with the "samtools view -h" command. + Additional desired arguments for samtools can be passed using: + options.args2 for the input bam file + options.args3 for the output bam file keywords: - sort tools: @@ -21,7 +21,7 @@ tools: documentation: https://github.com/GregoryFaust/samblaster tool_dev_url: https://github.com/GregoryFaust/samblaster doi: "10.1093/bioinformatics/btu314" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/samtools/ampliconclip/meta.yml b/modules/samtools/ampliconclip/meta.yml index 8959b98d..1107cbcd 100644 --- a/modules/samtools/ampliconclip/meta.yml +++ b/modules/samtools/ampliconclip/meta.yml @@ -7,15 +7,15 @@ keywords: - samtools ampliconclip - samtools 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] input: - meta: diff --git a/modules/samtools/bam2fq/meta.yml b/modules/samtools/bam2fq/meta.yml index f35701c4..319a60cf 100644 --- a/modules/samtools/bam2fq/meta.yml +++ b/modules/samtools/bam2fq/meta.yml @@ -1,7 +1,7 @@ name: samtools_bam2fq description: | - The module uses bam2fq method from samtools to - convert a SAM, BAM or CRAM file to FASTQ format + The module uses bam2fq method from samtools to + convert a SAM, BAM or CRAM file to FASTQ format keywords: - bam2fq - samtools @@ -13,7 +13,7 @@ tools: documentation: http://www.htslib.org/doc/1.1/samtools.html tool_dev_url: None doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/samtools/depth/meta.yml b/modules/samtools/depth/meta.yml index a46fd332..861b04fa 100644 --- a/modules/samtools/depth/meta.yml +++ b/modules/samtools/depth/meta.yml @@ -12,7 +12,7 @@ tools: documentation: http://www.htslib.org/doc/samtools-depth.html tool_dev_url: https://github.com/samtools/samtools doi: "10.1093/bioinformatics/btp352" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/samtools/faidx/meta.yml b/modules/samtools/faidx/meta.yml index bae97a39..e9767764 100644 --- a/modules/samtools/faidx/meta.yml +++ b/modules/samtools/faidx/meta.yml @@ -1,43 +1,43 @@ name: samtools_faidx description: Index FASTA file keywords: - - index - - fasta + - index + - fasta 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: http://www.htslib.org/doc/samtools.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - 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: http://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 ] - - fasta: - type: file - description: FASTA file - pattern: "*.{fa,fasta}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: FASTA file + pattern: "*.{fa,fasta}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fai: - type: file - description: FASTA index file - pattern: "*.{fai}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fai: + type: file + description: FASTA index file + pattern: "*.{fai}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@ewels" - - "@phue" + - "@drpatelh" + - "@ewels" + - "@phue" diff --git a/modules/samtools/fastq/meta.yml b/modules/samtools/fastq/meta.yml index 8ea78f47..41055cfb 100644 --- a/modules/samtools/fastq/meta.yml +++ b/modules/samtools/fastq/meta.yml @@ -1,43 +1,43 @@ name: samtools_fastq description: Converts a SAM/BAM/CRAM file to FASTQ keywords: - - bam - - sam - - cram - - fastq + - bam + - sam + - cram + - fastq 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] 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}" + - 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 ] - - fastq: - type: file - description: compressed FASTQ file - pattern: "*.fastq.gz" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastq: + type: file + description: compressed FASTQ file + pattern: "*.fastq.gz" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@suzannejin" diff --git a/modules/samtools/fixmate/meta.yml b/modules/samtools/fixmate/meta.yml index 2cec6e7c..a72c5ca9 100644 --- a/modules/samtools/fixmate/meta.yml +++ b/modules/samtools/fixmate/meta.yml @@ -1,24 +1,24 @@ name: samtools_fixmate description: Samtools fixmate is a tool that can fill in information (insert size, cigar, mapq) about paired end reads onto the corresponding other read. Also has options to remove secondary/unmapped alignments and recalculate whether reads are proper pairs. keywords: - - fixmate - - samtools - - insert size - - repair - - bam - - paired - - read pairs + - fixmate + - samtools + - insert size + - repair + - bam + - paired + - read pairs 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: http://www.htslib.org/doc/samtools.html - tool_dev_url: https://github.com/samtools/samtools - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - 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: http://www.htslib.org/doc/samtools.html + tool_dev_url: https://github.com/samtools/samtools + doi: 10.1093/bioinformatics/btp352 + licence: ["MIT"] input: - meta: type: map diff --git a/modules/samtools/flagstat/meta.yml b/modules/samtools/flagstat/meta.yml index 9bd9ff89..95269063 100644 --- a/modules/samtools/flagstat/meta.yml +++ b/modules/samtools/flagstat/meta.yml @@ -1,49 +1,49 @@ 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 + - 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] 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}" + - 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" + - 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" + - "@drpatelh" diff --git a/modules/samtools/idxstats/meta.yml b/modules/samtools/idxstats/meta.yml index ec542f34..3710ab88 100644 --- a/modules/samtools/idxstats/meta.yml +++ b/modules/samtools/idxstats/meta.yml @@ -1,50 +1,50 @@ name: samtools_idxstats description: Reports alignment summary statistics for a BAM/CRAM/SAM file keywords: - - stats - - mapping - - counts - - chromosome - - bam - - sam - - cram + - stats + - mapping + - counts + - chromosome + - 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] 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}" + - 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 ] - - idxstats: - type: file - description: File containing samtools idxstats output - pattern: "*.{idxstats}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - idxstats: + type: file + description: File containing samtools idxstats output + pattern: "*.{idxstats}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" + - "@drpatelh" diff --git a/modules/samtools/index/meta.yml b/modules/samtools/index/meta.yml index 0905b3cd..e5cadbc2 100644 --- a/modules/samtools/index/meta.yml +++ b/modules/samtools/index/meta.yml @@ -1,53 +1,53 @@ name: samtools_index description: Index SAM/BAM/CRAM file keywords: - - index - - bam - - sam - - cram + - 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] 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}" + - 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}" - - crai: - 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" + - 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}" + - crai: + 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" - - "@maxulysse" + - "@drpatelh" + - "@ewels" + - "@maxulysse" diff --git a/modules/samtools/merge/meta.yml b/modules/samtools/merge/meta.yml index 2576a3a3..fb78e55c 100644 --- a/modules/samtools/merge/meta.yml +++ b/modules/samtools/merge/meta.yml @@ -1,54 +1,54 @@ name: samtools_merge description: Merge BAM or CRAM file keywords: - - merge - - bam - - sam - - cram + - merge + - 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - input_files: - type: file - description: BAM/CRAM file - pattern: "*.{bam,cram,sam}" - - fasta: - type: optional file - description: Reference file the CRAM was created with - pattern: "*.{fasta,fa}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input_files: + type: file + description: BAM/CRAM file + pattern: "*.{bam,cram,sam}" + - fasta: + type: optional file + description: Reference file the CRAM was created with + pattern: "*.{fasta,fa}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM file - pattern: "*.{bam}" - - cram: - type: file - description: CRAM file - pattern: "*.{cram}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file + pattern: "*.{bam}" + - cram: + type: file + description: CRAM file + pattern: "*.{cram}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@yuukiiwa " - - "@maxulysse" - - "@FriederikeHanssen" + - "@drpatelh" + - "@yuukiiwa " + - "@maxulysse" + - "@FriederikeHanssen" diff --git a/modules/samtools/mpileup/meta.yml b/modules/samtools/mpileup/meta.yml index fac7a5bc..c384f5c6 100644 --- a/modules/samtools/mpileup/meta.yml +++ b/modules/samtools/mpileup/meta.yml @@ -1,48 +1,48 @@ name: samtools_mpileup -description: BAM +description: BAM keywords: - - mpileup - - bam - - sam - - cram + - mpileup + - 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] 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}" - - fasta: - type: file - description: FASTA reference file - pattern: "*.{fasta,fa}" + - 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}" + - fasta: + type: file + description: FASTA reference file + pattern: "*.{fasta,fa}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - mpileup: - type: file - description: mpileup file - pattern: "*.{mpileup}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - mpileup: + type: file + description: mpileup file + pattern: "*.{mpileup}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@joseespinosa" + - "@drpatelh" + - "@joseespinosa" diff --git a/modules/samtools/sort/meta.yml b/modules/samtools/sort/meta.yml index 3402a068..a820c55a 100644 --- a/modules/samtools/sort/meta.yml +++ b/modules/samtools/sort/meta.yml @@ -1,44 +1,44 @@ name: samtools_sort description: Sort SAM/BAM/CRAM file keywords: - - sort - - bam - - sam - - cram + - sort + - 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] 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}" + - 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 ] - - bam: - type: file - description: Sorted BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@ewels" + - "@drpatelh" + - "@ewels" diff --git a/modules/samtools/stats/meta.yml b/modules/samtools/stats/meta.yml index 869e62e3..cac50b1c 100644 --- a/modules/samtools/stats/meta.yml +++ b/modules/samtools/stats/meta.yml @@ -1,53 +1,53 @@ name: samtools_stats description: Produces comprehensive statistics from SAM/BAM/CRAM file keywords: - - statistics - - counts - - bam - - sam - - cram + - statistics + - 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - input: - type: file - description: BAM/CRAM file from alignment - pattern: "*.{bam,cram}" - - input_index: - type: file - description: BAI/CRAI file from alignment - pattern: "*.{bai,crai}" - - fasta: - type: optional file - description: Reference file the CRAM was created with - pattern: "*.{fasta,fa}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: BAM/CRAM file from alignment + pattern: "*.{bam,cram}" + - input_index: + type: file + description: BAI/CRAI file from alignment + pattern: "*.{bai,crai}" + - fasta: + type: optional file + description: Reference file the CRAM was created with + pattern: "*.{fasta,fa}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - stats: - type: file - description: File containing samtools stats output - pattern: "*.{stats}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - stats: + type: file + description: File containing samtools stats output + pattern: "*.{stats}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@FriederikeHanssen" + - "@drpatelh" + - "@FriederikeHanssen" diff --git a/modules/samtools/view/meta.yml b/modules/samtools/view/meta.yml index 8abf34af..5604bfa7 100644 --- a/modules/samtools/view/meta.yml +++ b/modules/samtools/view/meta.yml @@ -1,53 +1,53 @@ name: samtools_view description: filter/convert SAM/BAM/CRAM file keywords: - - view - - bam - - sam - - cram + - view + - 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 - licence: ['MIT'] + - 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 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - 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}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - 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 - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - 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 - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + 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 + pattern: "versions.yml" authors: - - "@drpatelh" - - "@joseespinosa" - - "@FriederikeHanssen" + - "@drpatelh" + - "@joseespinosa" + - "@FriederikeHanssen" diff --git a/modules/scoary/meta.yml b/modules/scoary/meta.yml index e8e8515e..941064c3 100644 --- a/modules/scoary/meta.yml +++ b/modules/scoary/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/AdmiralenOla/Scoary tool_dev_url: https://github.com/AdmiralenOla/Scoary doi: "10.1186/s13059-016-1108-8" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/seacr/callpeak/meta.yml b/modules/seacr/callpeak/meta.yml index 53b3415f..3e215bfb 100644 --- a/modules/seacr/callpeak/meta.yml +++ b/modules/seacr/callpeak/meta.yml @@ -1,54 +1,53 @@ - name: seacr_callpeak description: Call peaks using SEACR on sequenced reads in bedgraph format keywords: - - peak-caller - - peaks - - bedgraph - - cut&tag - - cut&run - - chromatin - - seacr + - peak-caller + - peaks + - bedgraph + - cut&tag + - cut&run + - chromatin + - seacr tools: - - seacr: - description: | - SEACR is intended to call peaks and enriched regions from sparse CUT&RUN - or chromatin profiling data in which background is dominated by "zeroes" - (i.e. regions with no read coverage). - homepage: https://github.com/FredHutch/SEACR - documentation: https://github.com/FredHutch/SEACR - licence: ['GPL-2.0-only'] + - seacr: + description: | + SEACR is intended to call peaks and enriched regions from sparse CUT&RUN + or chromatin profiling data in which background is dominated by "zeroes" + (i.e. regions with no read coverage). + homepage: https://github.com/FredHutch/SEACR + documentation: https://github.com/FredHutch/SEACR + licence: ["GPL-2.0-only"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bedgraph: - type: file - description: | - The target bedgraph file from which the peaks will be calculated. - - ctrlbedgraph: - type: file - description: | - Control (IgG) data bedgraph file to generate an empirical threshold for peak calling. - - threshold: - type: value - description: | - Threshold value used to call peaks if the ctrlbedgraph input is set to []. Set to 1 if using a control bedgraph + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bedgraph: + type: file + description: | + The target bedgraph file from which the peaks will be calculated. + - ctrlbedgraph: + type: file + description: | + Control (IgG) data bedgraph file to generate an empirical threshold for peak calling. + - threshold: + type: value + description: | + Threshold value used to call peaks if the ctrlbedgraph input is set to []. Set to 1 if using a control bedgraph output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bed: - type: file - description: Bed file containing the calculated peaks. - pattern: "*.bed" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Bed file containing the calculated peaks. + pattern: "*.bed" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@chris-cheshire" + - "@chris-cheshire" diff --git a/modules/seqkit/split2/meta.yml b/modules/seqkit/split2/meta.yml index 90eec7f9..91c74b0c 100644 --- a/modules/seqkit/split2/meta.yml +++ b/modules/seqkit/split2/meta.yml @@ -1,39 +1,39 @@ name: seqkit_split2 description: Split single or paired-end fastq.gz files keywords: - - split - - fastq + - split + - fastq tools: - - seqkit: - description: | - Cross-platform and ultrafast toolkit for FASTA/Q file manipulation, written by Wei Shen. - homepage: https://github.com/shenwei356/seqkit - documentation: https://bioinf.shenwei.me/seqkit/ - doi: 10.1371/journal.pone.0163962 - licence: ['MIT'] + - seqkit: + description: | + Cross-platform and ultrafast toolkit for FASTA/Q file manipulation, written by Wei Shen. + homepage: https://github.com/shenwei356/seqkit + documentation: https://bioinf.shenwei.me/seqkit/ + doi: 10.1371/journal.pone.0163962 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: FastQ files - pattern: "*.{fq.gz/fastq.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: FastQ files + pattern: "*.{fq.gz/fastq.gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: Split fastq files - pattern: "*.{fq.gz/fastq.gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: Split fastq files + pattern: "*.{fq.gz/fastq.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@FriederikeHanssen" + - "@FriederikeHanssen" diff --git a/modules/seqsero2/meta.yml b/modules/seqsero2/meta.yml index ceea80e3..f20c194e 100644 --- a/modules/seqsero2/meta.yml +++ b/modules/seqsero2/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/denglab/SeqSero2 tool_dev_url: https://github.com/denglab/SeqSero2 doi: "10.1128/AEM.01746-19" - licence: ['GPL v2'] + licence: ["GPL v2"] input: - meta: diff --git a/modules/seqtk/mergepe/meta.yml b/modules/seqtk/mergepe/meta.yml index a342f60b..8248ee09 100644 --- a/modules/seqtk/mergepe/meta.yml +++ b/modules/seqtk/mergepe/meta.yml @@ -6,9 +6,9 @@ tools: - seqtk: description: Seqtk is a fast and lightweight tool for processing sequences in the FASTA or FASTQ format. Seqtk mergepe command merges pair-end reads into one interleaved file. homepage: https://github.com/lh3/seqtk - documentation: https://docs.csc.fi/apps/seqtk/ + documentation: https://docs.csc.fi/apps/seqtk/ tool_dev_url: https://github.com/lh3/seqtk - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/seqtk/sample/meta.yml b/modules/seqtk/sample/meta.yml index 6cc4d657..d92e54e5 100644 --- a/modules/seqtk/sample/meta.yml +++ b/modules/seqtk/sample/meta.yml @@ -8,7 +8,7 @@ tools: homepage: https://github.com/lh3/seqtk documentation: https://docs.csc.fi/apps/seqtk/ tool_dev_url: https://github.com/lh3/seqtk - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/seqtk/subseq/meta.yml b/modules/seqtk/subseq/meta.yml index 0d9a802b..d06efb55 100644 --- a/modules/seqtk/subseq/meta.yml +++ b/modules/seqtk/subseq/meta.yml @@ -8,7 +8,7 @@ tools: homepage: https://github.com/lh3/seqtk documentation: https://docs.csc.fi/apps/seqtk/ tool_dev_url: https://github.com/lh3/seqtk - licence: ['MIT'] + licence: ["MIT"] input: - sequences: diff --git a/modules/sequenzautils/bam2seqz/meta.yml b/modules/sequenzautils/bam2seqz/meta.yml index e05d2fa9..0168bd68 100755 --- a/modules/sequenzautils/bam2seqz/meta.yml +++ b/modules/sequenzautils/bam2seqz/meta.yml @@ -8,7 +8,7 @@ tools: homepage: https://sequenza-utils.readthedocs.io/en/latest/index.html documentation: https://sequenza-utils.readthedocs.io/en/latest/index.html doi: 10.1093/annonc/mdu479 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/sequenzautils/gcwiggle/meta.yml b/modules/sequenzautils/gcwiggle/meta.yml index 616e073b..6e9a1483 100644 --- a/modules/sequenzautils/gcwiggle/meta.yml +++ b/modules/sequenzautils/gcwiggle/meta.yml @@ -8,7 +8,7 @@ tools: homepage: https://sequenza-utils.readthedocs.io/en/latest/index.html documentation: https://sequenza-utils.readthedocs.io/en/latest/index.html doi: 10.1093/annonc/mdu479 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/seqwish/induce/meta.yml b/modules/seqwish/induce/meta.yml index 281e3994..b40360c6 100644 --- a/modules/seqwish/induce/meta.yml +++ b/modules/seqwish/induce/meta.yml @@ -1,47 +1,47 @@ name: seqwish_induce description: Induce a variation graph in GFA format from alignments in PAF format keywords: - - induce - - paf - - gfa - - graph - - variation graph + - induce + - paf + - gfa + - graph + - variation graph tools: - - seqwish: - description: | - seqwish implements a lossless conversion from pairwise alignments between - sequences to a variation graph encoding the sequences and their alignments. - homepage: https://github.com/ekg/seqwish - documentation: https://github.com/ekg/seqwish - licence: ['MIT'] + - seqwish: + description: | + seqwish implements a lossless conversion from pairwise alignments between + sequences to a variation graph encoding the sequences and their alignments. + homepage: https://github.com/ekg/seqwish + documentation: https://github.com/ekg/seqwish + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - paf: - type: file - description: PAF file of alignments - pattern: "*.{paf,paf.gz}" - - fasta: - type: file - description: FASTA file used to generate alignments - pattern: "*.{fa,fa.gz,fasta,fasta.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - paf: + type: file + description: PAF file of alignments + pattern: "*.{paf,paf.gz}" + - fasta: + type: file + description: FASTA file used to generate alignments + pattern: "*.{fa,fa.gz,fasta,fasta.gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - gfa: - type: file - description: Variation graph in GFA 1.0 format - pattern: "*.{gfa}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - gfa: + type: file + description: Variation graph in GFA 1.0 format + pattern: "*.{gfa}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@heuermh" + - "@heuermh" diff --git a/modules/snpdists/meta.yml b/modules/snpdists/meta.yml index bf4366ff..4eee3902 100644 --- a/modules/snpdists/meta.yml +++ b/modules/snpdists/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/tseemann/snp-dists tool_dev_url: https://github.com/tseemann/snp-dists doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/snpeff/meta.yml b/modules/snpeff/meta.yml index 8ba18683..c191b9ac 100644 --- a/modules/snpeff/meta.yml +++ b/modules/snpeff/meta.yml @@ -1,58 +1,58 @@ name: snpEff description: Genetic variant annotation and functional effect prediction toolbox keywords: - - annotation + - annotation tools: - - snpeff: - description: | - SnpEff is a variant annotation and effect prediction tool. - It annotates and predicts the effects of genetic variants on genes and proteins (such as amino acid changes). - homepage: https://pcingola.github.io/SnpEff/ - documentation: https://pcingola.github.io/SnpEff/se_introduction/ - licence: ['MIT'] + - snpeff: + description: | + SnpEff is a variant annotation and effect prediction tool. + It annotates and predicts the effects of genetic variants on genes and proteins (such as amino acid changes). + homepage: https://pcingola.github.io/SnpEff/ + documentation: https://pcingola.github.io/SnpEff/se_introduction/ + licence: ["MIT"] params: - - use_cache: - type: boolean - description: | - boolean to enable the usage of containers with cache - Enable the usage of containers with cache - Does not work with conda - - snpeff_tag: - type: value - description: | - Specify the tag for the container - https://hub.docker.com/r/nfcore/snpeff/tags + - use_cache: + type: boolean + description: | + boolean to enable the usage of containers with cache + Enable the usage of containers with cache + Does not work with conda + - snpeff_tag: + type: value + description: | + Specify the tag for the container + https://hub.docker.com/r/nfcore/snpeff/tags input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - vcf: - type: file - description: | - vcf to annotate - - db: - type: value - description: | - which db to annotate with - - cache: - type: file - description: | - path to snpEff cache (optional) + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: | + vcf to annotate + - db: + type: value + description: | + which db to annotate with + - cache: + type: file + description: | + path to snpEff cache (optional) output: - - vcf: - type: file - description: | - annotated vcf - pattern: "*.ann.vcf" - - report: - type: file - description: snpEff report file - pattern: "*.html" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - vcf: + type: file + description: | + annotated vcf + pattern: "*.ann.vcf" + - report: + type: file + description: snpEff report file + pattern: "*.html" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@maxulysse" + - "@maxulysse" diff --git a/modules/snpsift/split/meta.yml b/modules/snpsift/split/meta.yml index 5a125b62..48673c47 100644 --- a/modules/snpsift/split/meta.yml +++ b/modules/snpsift/split/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://pcingola.github.io/SnpEff/ss_introduction/ tool_dev_url: https://github.com/pcingola/SnpEff doi: "10.3389/fgene.2012.00035" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/snpsites/meta.yml b/modules/snpsites/meta.yml index 381d25cc..4149aeef 100644 --- a/modules/snpsites/meta.yml +++ b/modules/snpsites/meta.yml @@ -9,7 +9,7 @@ tools: description: Rapidly extracts SNPs from a multi-FASTA alignment. homepage: https://www.sanger.ac.uk/tool/snp-sites/ documentation: https://github.com/sanger-pathogens/snp-sites - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - alignment: type: file diff --git a/modules/spades/meta.yml b/modules/spades/meta.yml index b6878d3d..e49cd139 100644 --- a/modules/spades/meta.yml +++ b/modules/spades/meta.yml @@ -13,7 +13,7 @@ tools: documentation: http://cab.spbu.ru/files/release3.15.0/manual.html tool_dev_url: https://github.com/ablab/spades doi: 10.1089/cmb.2012.0021 - licence: ['GPL v2'] + licence: ["GPL v2"] input: - meta: type: map @@ -36,8 +36,7 @@ input: List of input FastQ files of size 1, originating from Oxford Nanopore technology. - hmm: type: file - description: - File or directory with amino acid HMMs for Spades HMM-guided mode. + description: File or directory with amino acid HMMs for Spades HMM-guided mode. output: - meta: type: map diff --git a/modules/spatyper/meta.yml b/modules/spatyper/meta.yml index 94f17a69..5fb7cc18 100644 --- a/modules/spatyper/meta.yml +++ b/modules/spatyper/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/HCGB-IGTP/spaTyper tool_dev_url: https://github.com/HCGB-IGTP/spaTyper doi: https://doi.org/10.5281/zenodo.4063625 - licence: ['LGPL v3'] + licence: ["LGPL v3"] input: - meta: diff --git a/modules/sratools/fasterqdump/meta.yml b/modules/sratools/fasterqdump/meta.yml index 1478bed8..ec5f69a5 100644 --- a/modules/sratools/fasterqdump/meta.yml +++ b/modules/sratools/fasterqdump/meta.yml @@ -10,7 +10,7 @@ tools: homepage: https://github.com/ncbi/sra-tools documentation: https://github.com/ncbi/sra-tools/wiki tool_dev_url: https://github.com/ncbi/sra-tools - licence: ['US-Government-Work'] + licence: ["US-Government-Work"] input: - meta: diff --git a/modules/sratools/prefetch/meta.yml b/modules/sratools/prefetch/meta.yml index 22213b29..e08b708c 100644 --- a/modules/sratools/prefetch/meta.yml +++ b/modules/sratools/prefetch/meta.yml @@ -10,7 +10,7 @@ tools: homepage: https://github.com/ncbi/sra-tools documentation: https://github.com/ncbi/sra-tools/wiki tool_dev_url: https://github.com/ncbi/sra-tools - licence: ['US-Government-Work'] + licence: ["US-Government-Work"] input: - meta: diff --git a/modules/staphopiasccmec/meta.yml b/modules/staphopiasccmec/meta.yml index 006e5389..38c920ed 100644 --- a/modules/staphopiasccmec/meta.yml +++ b/modules/staphopiasccmec/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/staphopia/staphopia-sccmec tool_dev_url: https://github.com/staphopia/staphopia-sccmec doi: https://doi.org/10.7717/peerj.5261 - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/star/align/meta.yml b/modules/star/align/meta.yml index 2d78b81a..7ee10f1c 100644 --- a/modules/star/align/meta.yml +++ b/modules/star/align/meta.yml @@ -13,7 +13,7 @@ tools: homepage: https://github.com/alexdobin/STAR manual: https://github.com/alexdobin/STAR/blob/master/doc/STARmanual.pdf doi: 10.1093/bioinformatics/bts635 - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map diff --git a/modules/star/genomegenerate/meta.yml b/modules/star/genomegenerate/meta.yml index 04ade195..8181157a 100644 --- a/modules/star/genomegenerate/meta.yml +++ b/modules/star/genomegenerate/meta.yml @@ -13,7 +13,7 @@ tools: homepage: https://github.com/alexdobin/STAR manual: https://github.com/alexdobin/STAR/blob/master/doc/STARmanual.pdf doi: 10.1093/bioinformatics/bts635 - licence: ['MIT'] + licence: ["MIT"] input: - fasta: type: file diff --git a/modules/strelka/germline/meta.yml b/modules/strelka/germline/meta.yml index 2eeb0f8f..c119532d 100644 --- a/modules/strelka/germline/meta.yml +++ b/modules/strelka/germline/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://github.com/Illumina/strelka/blob/v2.9.x/docs/userGuide/README.md tool_dev_url: https://github.com/Illumina/strelka doi: 10.1038/s41592-018-0051-x - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/strelka/somatic/meta.yml b/modules/strelka/somatic/meta.yml index 076c1036..b2a25504 100644 --- a/modules/strelka/somatic/meta.yml +++ b/modules/strelka/somatic/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://github.com/Illumina/strelka/blob/v2.9.x/docs/userGuide/README.md tool_dev_url: https://github.com/Illumina/strelka doi: 10.1038/s41592-018-0051-x - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/stringtie/merge/meta.yml b/modules/stringtie/merge/meta.yml index 02899766..df66696f 100644 --- a/modules/stringtie/merge/meta.yml +++ b/modules/stringtie/merge/meta.yml @@ -1,37 +1,37 @@ name: stringtie_merge description: Merges the annotation gtf file and the stringtie output gtf files keywords: - - merge - - gtf - - reference + - merge + - gtf + - reference tools: - - stringtie2: - description: | - Transcript assembly and quantification for RNA-Seq - homepage: https://ccb.jhu.edu/software/stringtie/index.shtml - documentation: https://ccb.jhu.edu/software/stringtie/index.shtml?t=manual - licence: ['MIT'] + - stringtie2: + description: | + Transcript assembly and quantification for RNA-Seq + homepage: https://ccb.jhu.edu/software/stringtie/index.shtml + documentation: https://ccb.jhu.edu/software/stringtie/index.shtml?t=manual + licence: ["MIT"] input: - - stringtie_gtf: - type: file - description: | - Stringtie transcript gtf output(s). - pattern: "*.gtf" - - annotation_gtf: - type: file - description: | - Annotation gtf file. - pattern: "*.gtf" + - stringtie_gtf: + type: file + description: | + Stringtie transcript gtf output(s). + pattern: "*.gtf" + - annotation_gtf: + type: file + description: | + Annotation gtf file. + pattern: "*.gtf" output: - - merged_gtf: - type: map - description: | - Merged gtf from annotation and stringtie output gtfs. - pattern: "*.gtf" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - merged_gtf: + type: map + description: | + Merged gtf from annotation and stringtie output gtfs. + pattern: "*.gtf" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@yuukiiwa" + - "@yuukiiwa" diff --git a/modules/stringtie/stringtie/meta.yml b/modules/stringtie/stringtie/meta.yml index 7e854caa..a462c574 100644 --- a/modules/stringtie/stringtie/meta.yml +++ b/modules/stringtie/stringtie/meta.yml @@ -1,57 +1,57 @@ name: stringtie description: Transcript assembly and quantification for RNA-Se keywords: - - transcript - - assembly - - quantification - - gtf + - transcript + - assembly + - quantification + - gtf tools: - - stringtie2: - description: | - Transcript assembly and quantification for RNA-Seq - homepage: https://ccb.jhu.edu/software/stringtie/index.shtml - documentation: https://ccb.jhu.edu/software/stringtie/index.shtml?t=manual - licence: ['MIT'] + - stringtie2: + description: | + Transcript assembly and quantification for RNA-Seq + homepage: https://ccb.jhu.edu/software/stringtie/index.shtml + documentation: https://ccb.jhu.edu/software/stringtie/index.shtml?t=manual + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: | - Stringtie transcript gtf output(s). - - gtf: - type: file - description: | - Annotation gtf file. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: | + Stringtie transcript gtf output(s). + - gtf: + type: file + description: | + Annotation gtf file. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - transcript_gtf: - type: file - description: transcript gtf - pattern: "*.{transcripts.gtf}" - - coverage_gtf: - type: file - description: coverage gtf - pattern: "*.{coverage.gtf}" - - abudance: - type: file - description: abudance - pattern: "*.{abudance.txt}" - - ballgown: - type: file - description: for running ballgown - pattern: "*.{ballgown}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - transcript_gtf: + type: file + description: transcript gtf + pattern: "*.{transcripts.gtf}" + - coverage_gtf: + type: file + description: coverage gtf + pattern: "*.{coverage.gtf}" + - abudance: + type: file + description: abudance + pattern: "*.{abudance.txt}" + - ballgown: + type: file + description: for running ballgown + pattern: "*.{ballgown}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" + - "@drpatelh" diff --git a/modules/subread/featurecounts/meta.yml b/modules/subread/featurecounts/meta.yml index 1100a091..cf02f1ea 100644 --- a/modules/subread/featurecounts/meta.yml +++ b/modules/subread/featurecounts/meta.yml @@ -1,10 +1,10 @@ name: subread_featurecounts description: Count reads that map to genomic features keywords: - - counts - - fasta - - genome - - reference + - counts + - fasta + - genome + - reference tools: - featurecounts: @@ -12,14 +12,14 @@ tools: homepage: http://bioinf.wehi.edu.au/featureCounts/ documentation: http://bioinf.wehi.edu.au/subread-package/SubreadUsersGuide.pdf doi: "10.1093/bioinformatics/btt656" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: type: map description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - bam: type: file description: BAM/SAM file containing read alignments @@ -33,8 +33,8 @@ output: - meta: type: map description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - counts: type: file description: Counts of reads mapping to features diff --git a/modules/svdb/merge/meta.yml b/modules/svdb/merge/meta.yml index 2092ddd9..e166bad0 100644 --- a/modules/svdb/merge/meta.yml +++ b/modules/svdb/merge/meta.yml @@ -7,7 +7,7 @@ tools: description: structural variant database software homepage: https://github.com/J35P312/SVDB documentation: https://github.com/J35P312/SVDB/blob/master/README.md - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map diff --git a/modules/svdb/query/meta.yml b/modules/svdb/query/meta.yml index 264b1904..e2a9e456 100644 --- a/modules/svdb/query/meta.yml +++ b/modules/svdb/query/meta.yml @@ -7,7 +7,7 @@ tools: description: structural variant database software homepage: https://github.com/J35P312/SVDB documentation: https://github.com/J35P312/SVDB/blob/master/README.md - licence: ['MIT'] + licence: ["MIT"] input: - meta: @@ -36,7 +36,7 @@ output: pattern: "versions.yml" - vcf: type: file - description: Annotated output VCF file + description: Annotated output VCF file pattern: "*_ann_svdbq.vcf" authors: diff --git a/modules/tabix/bgzip/meta.yml b/modules/tabix/bgzip/meta.yml index f8318c7c..207427e4 100644 --- a/modules/tabix/bgzip/meta.yml +++ b/modules/tabix/bgzip/meta.yml @@ -1,41 +1,41 @@ name: tabix_bgzip description: Compresses files keywords: - - compress - - bgzip - - tabix + - compress + - bgzip + - tabix tools: - - bgzip: - description: | - Bgzip compresses files in a similar manner to, and compatible with, gzip. - homepage: https://www.htslib.org/doc/tabix.html - documentation: http://www.htslib.org/doc/bgzip.html - doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + - bgzip: + description: | + Bgzip compresses files in a similar manner to, and compatible with, gzip. + homepage: https://www.htslib.org/doc/tabix.html + documentation: http://www.htslib.org/doc/bgzip.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 ] - - file: - type: file - description: text file + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - file: + type: file + description: text file output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - file: - type: file - description: Output compressed file - pattern: "*.{gz}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - file: + type: file + description: Output compressed file + pattern: "*.{gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" - - "@maxulysse" + - "@joseespinosa" + - "@drpatelh" + - "@maxulysse" diff --git a/modules/tabix/bgziptabix/meta.yml b/modules/tabix/bgziptabix/meta.yml index f2aed84d..49c03289 100644 --- a/modules/tabix/bgziptabix/meta.yml +++ b/modules/tabix/bgziptabix/meta.yml @@ -1,45 +1,45 @@ name: tabix_bgziptabix description: bgzip a sorted tab-delimited genome file and then create tabix index keywords: - - bgzip - - compress - - index - - tabix - - vcf + - bgzip + - compress + - index + - tabix + - vcf tools: - - tabix: - description: Generic indexer for TAB-delimited genome position files. - homepage: https://www.htslib.org/doc/tabix.html - documentation: https://www.htslib.org/doc/tabix.1.html - doi: 10.1093/bioinformatics/btq671 - licence: ['MIT'] + - tabix: + description: Generic indexer for TAB-delimited genome position files. + homepage: https://www.htslib.org/doc/tabix.html + documentation: https://www.htslib.org/doc/tabix.1.html + doi: 10.1093/bioinformatics/btq671 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - tab: - type: file - description: TAB-delimited genome position file - pattern: "*.{bed,gff,sam,vcf}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - tab: + type: file + description: TAB-delimited genome position file + pattern: "*.{bed,gff,sam,vcf}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - gz: - type: file - description: Output compressed file - pattern: "*.{gz}" - - tbi: - type: file - description: tabix index file - pattern: "*.{gz.tbi}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - gz: + type: file + description: Output compressed file + pattern: "*.{gz}" + - tbi: + type: file + description: tabix index file + pattern: "*.{gz.tbi}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@maxulysse" + - "@maxulysse" diff --git a/modules/tabix/tabix/meta.yml b/modules/tabix/tabix/meta.yml index 2e37c4ff..89478abe 100644 --- a/modules/tabix/tabix/meta.yml +++ b/modules/tabix/tabix/meta.yml @@ -1,41 +1,41 @@ name: tabix_tabix description: create tabix index from a sorted bgzip tab-delimited genome file keywords: - - index - - tabix - - vcf + - index + - tabix + - vcf tools: - - tabix: - description: Generic indexer for TAB-delimited genome position files. - homepage: https://www.htslib.org/doc/tabix.html - documentation: https://www.htslib.org/doc/tabix.1.html - doi: 10.1093/bioinformatics/btq671 - licence: ['MIT'] + - tabix: + description: Generic indexer for TAB-delimited genome position files. + homepage: https://www.htslib.org/doc/tabix.html + documentation: https://www.htslib.org/doc/tabix.1.html + doi: 10.1093/bioinformatics/btq671 + licence: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - tab: - type: file - description: TAB-delimited genome position file compressed with bgzip - pattern: "*.{bed.gz,gff.gz,sam.gz,vcf.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - tab: + type: file + description: TAB-delimited genome position file compressed with bgzip + pattern: "*.{bed.gz,gff.gz,sam.gz,vcf.gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - tbi: - type: file - description: tabix index file - pattern: "*.{tbi}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - tbi: + type: file + description: tabix index file + pattern: "*.{tbi}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" - - "@maxulysse" + - "@joseespinosa" + - "@drpatelh" + - "@maxulysse" diff --git a/modules/tbprofiler/profile/meta.yml b/modules/tbprofiler/profile/meta.yml index 0cac6d6b..5923cb32 100644 --- a/modules/tbprofiler/profile/meta.yml +++ b/modules/tbprofiler/profile/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://jodyphelan.gitbook.io/tb-profiler/ tool_dev_url: https://github.com/jodyphelan/TBProfiler doi: "10.1186/s13073-019-0650-x" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/tiddit/sv/meta.yml b/modules/tiddit/sv/meta.yml index f788ffa6..fc307081 100644 --- a/modules/tiddit/sv/meta.yml +++ b/modules/tiddit/sv/meta.yml @@ -1,51 +1,51 @@ name: tiddit_sv description: Identify chromosomal rearrangements. keywords: - - structural - - variants - - vcf + - structural + - variants + - vcf tools: - - sv: - description: Search for structural variants. - homepage: https://github.com/SciLifeLab/TIDDIT - documentation: https://github.com/SciLifeLab/TIDDIT/blob/master/README.md - doi: 10.12688/f1000research.11168.1 - licence: ['GPL-3.0-or-later'] + - sv: + description: Search for structural variants. + homepage: https://github.com/SciLifeLab/TIDDIT + documentation: https://github.com/SciLifeLab/TIDDIT/blob/master/README.md + doi: 10.12688/f1000research.11168.1 + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - fasta: - type: file - description: Input FASTA file - pattern: "*.{fasta,fa}" - - fai: - type: file - description: FASTA index file - pattern: "*.{fai}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Input FASTA file + pattern: "*.{fasta,fa}" + - fai: + type: file + description: FASTA index file + pattern: "*.{fai}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - vcf: - type: file - description: vcf - pattern: "*.{vcf}" - - ploidy: - type: file - description: tab - pattern: "*.{ploidy.tab}" - - signals: - type: file - description: tab - pattern: "*.{signals.tab}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: vcf + pattern: "*.{vcf}" + - ploidy: + type: file + description: tab + pattern: "*.{ploidy.tab}" + - signals: + type: file + description: tab + pattern: "*.{signals.tab}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@maxulysse" + - "@maxulysse" diff --git a/modules/transdecoder/longorf/meta.yml b/modules/transdecoder/longorf/meta.yml index d4749f4b..b039a261 100644 --- a/modules/transdecoder/longorf/meta.yml +++ b/modules/transdecoder/longorf/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/TransDecoder/TransDecoder/wiki tool_dev_url: https://github.com/TransDecoder/TransDecoder doi: "" - licence: ['Broad Institute'] + licence: ["Broad Institute"] input: - meta: diff --git a/modules/transdecoder/predict/meta.yml b/modules/transdecoder/predict/meta.yml index e25ce3a2..cb972112 100644 --- a/modules/transdecoder/predict/meta.yml +++ b/modules/transdecoder/predict/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/TransDecoder/TransDecoder/wiki tool_dev_url: https://github.com/TransDecoder/TransDecoder doi: "" - licence: ['Broad Institute'] + licence: ["Broad Institute"] input: - meta: diff --git a/modules/trimgalore/meta.yml b/modules/trimgalore/meta.yml index c7e1df1d..e99a8833 100644 --- a/modules/trimgalore/meta.yml +++ b/modules/trimgalore/meta.yml @@ -1,59 +1,59 @@ name: trimgalore description: Trim FastQ files using Trim Galore! keywords: - - trimming - - adapters - - sequencing adapters - - fastq + - trimming + - adapters + - sequencing adapters + - fastq tools: - - trimgalore: - description: | - A wrapper tool around Cutadapt and FastQC to consistently apply quality - and adapter trimming to FastQ files, with some extra functionality for - MspI-digested RRBS-type (Reduced Representation Bisufite-Seq) libraries. - homepage: https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/ - documentation: https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md - licence: ['GPL-3.0-or-later'] + - trimgalore: + description: | + A wrapper tool around Cutadapt and FastQC to consistently apply quality + and adapter trimming to FastQ files, with some extra functionality for + MspI-digested RRBS-type (Reduced Representation Bisufite-Seq) libraries. + homepage: https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/ + documentation: https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md + licence: ["GPL-3.0-or-later"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input adapter trimmed FastQ files of size 1 and 2 for - single-end and paired-end data, respectively. - pattern: "*.{fq.gz}" - - html: - type: file - description: FastQC report (optional) - pattern: "*_{fastqc.html}" - - zip: - type: file - description: FastQC report archive (optional) - pattern: "*_{fastqc.zip}" - - log: - type: file - description: Trim Galore! trimming report - pattern: "*_{report.txt}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input adapter trimmed FastQ files of size 1 and 2 for + single-end and paired-end data, respectively. + pattern: "*.{fq.gz}" + - html: + type: file + description: FastQC report (optional) + pattern: "*_{fastqc.html}" + - zip: + type: file + description: FastQC report archive (optional) + pattern: "*_{fastqc.zip}" + - log: + type: file + description: Trim Galore! trimming report + pattern: "*_{report.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@ewels" - - "@FelixKrueger" + - "@drpatelh" + - "@ewels" + - "@FelixKrueger" diff --git a/modules/ucsc/bedclip/meta.yml b/modules/ucsc/bedclip/meta.yml index c7372925..e6dd8ceb 100755 --- a/modules/ucsc/bedclip/meta.yml +++ b/modules/ucsc/bedclip/meta.yml @@ -9,7 +9,7 @@ tools: documentation: None tool_dev_url: None doi: "" - licence: ['varies; see http://genome.ucsc.edu/license'] + licence: ["varies; see http://genome.ucsc.edu/license"] input: - meta: diff --git a/modules/ucsc/bigwigaverageoverbed/meta.yml b/modules/ucsc/bigwigaverageoverbed/meta.yml index c2b31f88..96a3cabd 100644 --- a/modules/ucsc/bigwigaverageoverbed/meta.yml +++ b/modules/ucsc/bigwigaverageoverbed/meta.yml @@ -10,7 +10,7 @@ tools: documentation: None tool_dev_url: None doi: "" - licence: ['varies; see http://genome.ucsc.edu/license'] + licence: ["varies; see http://genome.ucsc.edu/license"] input: - meta: diff --git a/modules/ucsc/liftover/meta.yml b/modules/ucsc/liftover/meta.yml index 5c2febdc..9047558c 100644 --- a/modules/ucsc/liftover/meta.yml +++ b/modules/ucsc/liftover/meta.yml @@ -9,7 +9,7 @@ tools: documentation: None tool_dev_url: None doi: "" - licence: ['varies; see http://genome.ucsc.edu/license'] + licence: ["varies; see http://genome.ucsc.edu/license"] input: - meta: diff --git a/modules/ucsc/wigtobigwig/meta.yml b/modules/ucsc/wigtobigwig/meta.yml index 5ca94bb4..8eed29bb 100644 --- a/modules/ucsc/wigtobigwig/meta.yml +++ b/modules/ucsc/wigtobigwig/meta.yml @@ -12,7 +12,7 @@ tools: documentation: None tool_dev_url: None doi: "" - licence: ['varies; see http://genome.ucsc.edu/license'] + licence: ["varies; see http://genome.ucsc.edu/license"] input: - meta: diff --git a/modules/ultra/pipeline/meta.yml b/modules/ultra/pipeline/meta.yml index fa8366e8..1f1f7f11 100644 --- a/modules/ultra/pipeline/meta.yml +++ b/modules/ultra/pipeline/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/ksahlin/uLTRA tool_dev_url: https://github.com/ksahlin/uLTRA doi: "10.1093/bioinformatics/btab540" - licence: ['GNU GPLV3'] + licence: ["GNU GPLV3"] input: - meta: diff --git a/modules/umitools/dedup/meta.yml b/modules/umitools/dedup/meta.yml index f89cc1ea..2038b40d 100644 --- a/modules/umitools/dedup/meta.yml +++ b/modules/umitools/dedup/meta.yml @@ -1,47 +1,47 @@ name: umitools_dedup description: Deduplicate reads based on the mapping co-ordinate and the UMI attached to the read. keywords: - - umitools - - deduplication + - umitools + - deduplication tools: - - umi_tools: - description: > - UMI-tools contains tools for dealing with Unique Molecular Identifiers (UMIs)/Random Molecular Tags (RMTs) - and single cell RNA-Seq cell barcodes - documentation: https://umi-tools.readthedocs.io/en/latest/ - license: ['MIT'] + - umi_tools: + description: > + UMI-tools contains tools for dealing with Unique Molecular Identifiers (UMIs)/Random Molecular Tags (RMTs) + and single cell RNA-Seq cell barcodes + documentation: https://umi-tools.readthedocs.io/en/latest/ + license: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: | - BAM file containing reads to be deduplicated via UMIs. - pattern: "*.{bam}" - - bai: - type: file - description: | - BAM index files corresponding to the input BAM file. - pattern: "*.{bai}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: | + BAM file containing reads to be deduplicated via UMIs. + pattern: "*.{bam}" + - bai: + type: file + description: | + BAM index files corresponding to the input BAM file. + pattern: "*.{bai}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - bam: - type: file - description: BAM file with deduplicated UMIs. - pattern: "*.{bam}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file with deduplicated UMIs. + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@grst" - - "@klkeys" + - "@drpatelh" + - "@grst" + - "@klkeys" diff --git a/modules/umitools/extract/meta.yml b/modules/umitools/extract/meta.yml index ae6f9fee..7fc23f72 100644 --- a/modules/umitools/extract/meta.yml +++ b/modules/umitools/extract/meta.yml @@ -1,46 +1,47 @@ name: umitools_extract description: Extracts UMI barcode from a read and add it to the read name, leaving any sample barcode in place keywords: - - umitools - - extract + - umitools + - extract tools: - - umi_tools: - description: > - UMI-tools contains tools for dealing with Unique Molecular Identifiers (UMIs)/Random Molecular Tags (RMTs) - and single cell RNA-Seq cell barcodes - documentation: https://umi-tools.readthedocs.io/en/latest/ - license: ['MIT'] + - umi_tools: + description: > + UMI-tools contains tools for dealing with Unique Molecular Identifiers (UMIs)/Random Molecular Tags (RMTs) + and single cell RNA-Seq cell barcodes + documentation: https://umi-tools.readthedocs.io/en/latest/ + license: ["MIT"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: list - description: | - List of input FASTQ files whose UMIs will be extracted. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: list + description: | + List of input FASTQ files whose UMIs will be extracted. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: Extracted FASTQ files. | - For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | - For paired-end reads, pattern is \${prefix}.umi_extract_{1,2}.fastq.gz. - pattern: "*.{fastq.gz}" - - log: - type: file - description: Logfile for umi_tools - pattern: "*.{log}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: > + Extracted FASTQ files. | + For single-end reads, pattern is \${prefix}.umi_extract.fastq.gz. | + For paired-end reads, pattern is \${prefix}.umi_extract_{1,2}.fastq.gz. + pattern: "*.{fastq.gz}" + - log: + type: file + description: Logfile for umi_tools + pattern: "*.{log}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@grst" + - "@drpatelh" + - "@grst" diff --git a/modules/unicycler/meta.yml b/modules/unicycler/meta.yml index b04ac882..918faaf8 100644 --- a/modules/unicycler/meta.yml +++ b/modules/unicycler/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/rrwick/Unicycler tool_dev_url: https://github.com/rrwick/Unicycler doi: 10.1371/journal.pcbi.1005595 - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: type: map @@ -20,14 +20,14 @@ input: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - shortreads: - type: file - description: | - List of input Illumina FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + type: file + description: | + List of input Illumina FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. - longreads: - type: file - description: | - List of input FastQ files of size 1, PacBio or Nanopore long reads. + type: file + description: | + List of input FastQ files of size 1, PacBio or Nanopore long reads. output: - meta: type: map diff --git a/modules/untar/meta.yml b/modules/untar/meta.yml index 51f94995..e877a97c 100644 --- a/modules/untar/meta.yml +++ b/modules/untar/meta.yml @@ -1,28 +1,28 @@ name: untar description: Extract files. keywords: - - untar - - uncompress + - untar + - uncompress tools: - - untar: - description: | - Extract tar.gz files. - documentation: https://www.gnu.org/software/tar/manual/ - licence: ['GPL-3.0-or-later'] + - untar: + description: | + Extract tar.gz files. + documentation: https://www.gnu.org/software/tar/manual/ + licence: ["GPL-3.0-or-later"] input: - - archive: - type: file - description: File to be untar - pattern: "*.{tar}.{gz}" + - archive: + type: file + description: File to be untar + pattern: "*.{tar}.{gz}" output: - - untar: - type: file - description: - pattern: "*.*" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - untar: + type: file + description: + pattern: "*.*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@joseespinosa" - - "@drpatelh" + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/unzip/meta.yml b/modules/unzip/meta.yml index 7bca1ec2..79361527 100644 --- a/modules/unzip/meta.yml +++ b/modules/unzip/meta.yml @@ -9,7 +9,7 @@ tools: homepage: https://sourceforge.net/projects/p7zip/ documentation: https://sourceforge.net/projects/p7zip/ tool_dev_url: https://sourceforge.net/projects/p7zip" - licence: ['LGPL-2.1-or-later'] + licence: ["LGPL-2.1-or-later"] input: - archive: @@ -21,7 +21,7 @@ output: - unzipped_archive: type: directory description: Directory contents of the unzipped archive - pattern: '${archive.baseName}/' + pattern: "${archive.baseName}/" - versions: type: file description: File containing software versions diff --git a/modules/variantbam/meta.yml b/modules/variantbam/meta.yml index ddcd0656..aac72448 100644 --- a/modules/variantbam/meta.yml +++ b/modules/variantbam/meta.yml @@ -14,7 +14,7 @@ tools: documentation: https://github.com/walaj/VariantBam#table-of-contents tool_dev_url: https://github.com/walaj/VariantBam doi: 10.1093/bioinformatics/btw111 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/vcflib/vcfuniq/meta.yml b/modules/vcflib/vcfuniq/meta.yml index 3bfc679b..50a3617a 100644 --- a/modules/vcflib/vcfuniq/meta.yml +++ b/modules/vcflib/vcfuniq/meta.yml @@ -10,7 +10,7 @@ tools: homepage: https://github.com/vcflib/vcflib documentation: https://github.com/vcflib/vcflib#USAGE doi: "https://doi.org/10.1101/2021.05.21.445151" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/vcftools/meta.yml b/modules/vcftools/meta.yml index a8f864a9..7a85bdec 100644 --- a/modules/vcftools/meta.yml +++ b/modules/vcftools/meta.yml @@ -9,7 +9,7 @@ tools: documentation: http://vcftools.sourceforge.net/man_latest.html tool_dev_url: None doi: - licence: ['LGPL'] + licence: ["LGPL"] input: - meta: diff --git a/modules/yara/index/meta.yml b/modules/yara/index/meta.yml index 651a67ee..bdd6bf9a 100644 --- a/modules/yara/index/meta.yml +++ b/modules/yara/index/meta.yml @@ -13,7 +13,10 @@ tools: documentation: https://github.com/seqan/seqan tool_dev_url: https://github.com/seqan/seqan doi: "" - licence: ['https://raw.githubusercontent.com/seqan/seqan/develop/apps/yara/LICENSE'] + licence: + [ + "https://raw.githubusercontent.com/seqan/seqan/develop/apps/yara/LICENSE", + ] input: - fasta: diff --git a/modules/yara/mapper/meta.yml b/modules/yara/mapper/meta.yml index d49823d2..60089474 100644 --- a/modules/yara/mapper/meta.yml +++ b/modules/yara/mapper/meta.yml @@ -11,7 +11,10 @@ tools: documentation: https://github.com/seqan/seqan tool_dev_url: https://github.com/seqan/seqan doi: "" - licence: ['https://raw.githubusercontent.com/seqan/seqan/develop/apps/yara/LICENSE'] + licence: + [ + "https://raw.githubusercontent.com/seqan/seqan/develop/apps/yara/LICENSE", + ] input: - meta: diff --git a/subworkflows/nf-core/align_bowtie2/meta.yml b/subworkflows/nf-core/align_bowtie2/meta.yml index e149a212..40abd5a6 100644 --- a/subworkflows/nf-core/align_bowtie2/meta.yml +++ b/subworkflows/nf-core/align_bowtie2/meta.yml @@ -26,25 +26,25 @@ input: - index: type: file description: Bowtie2 genome index files - pattern: '*.ebwt' + pattern: "*.ebwt" # TODO Update when we decide on a standard for subworkflow docs output: - bam: type: file description: Output BAM file containing read alignments - pattern: '*.{bam}' + pattern: "*.{bam}" - versions: type: file description: File containing software versions - pattern: 'versions.yml' + pattern: "versions.yml" - fastq: type: file description: Unaligned FastQ files - pattern: '*.fastq.gz' + pattern: "*.fastq.gz" - log: type: file description: Alignment log - pattern: '*.log' - # TODO Add samtools outputs + pattern: "*.log" +# TODO Add samtools outputs authors: - - '@drpatelh' + - "@drpatelh" diff --git a/subworkflows/nf-core/annotation_ensemblvep/meta.yml b/subworkflows/nf-core/annotation_ensemblvep/meta.yml index e7d92ce9..991a8b2f 100644 --- a/subworkflows/nf-core/annotation_ensemblvep/meta.yml +++ b/subworkflows/nf-core/annotation_ensemblvep/meta.yml @@ -20,10 +20,10 @@ output: - versions: type: file description: File containing software versions - pattern: 'versions.yml' + pattern: "versions.yml" - vcf_tbi: type: file description: Compressed vcf file + tabix index pattern: "[ *{.vcf.gz,vcf.gz.tbi} ]" authors: - - '@maxulysse' + - "@maxulysse" diff --git a/subworkflows/nf-core/annotation_snpeff/meta.yml b/subworkflows/nf-core/annotation_snpeff/meta.yml index 164a0ee2..e0773626 100644 --- a/subworkflows/nf-core/annotation_snpeff/meta.yml +++ b/subworkflows/nf-core/annotation_snpeff/meta.yml @@ -20,10 +20,10 @@ output: - versions: type: file description: File containing software versions - pattern: 'versions.yml' + pattern: "versions.yml" - vcf_tbi: type: file description: Compressed vcf file + tabix index pattern: "[ *{.vcf.gz,vcf.gz.tbi} ]" authors: - - '@maxulysse' + - "@maxulysse" diff --git a/subworkflows/nf-core/bam_sort_samtools/meta.yml b/subworkflows/nf-core/bam_sort_samtools/meta.yml index a0e3f30b..51124475 100644 --- a/subworkflows/nf-core/bam_sort_samtools/meta.yml +++ b/subworkflows/nf-core/bam_sort_samtools/meta.yml @@ -20,7 +20,7 @@ input: - bam: type: file description: BAM/CRAM/SAM file - pattern: '*.{bam,cram,sam}' + pattern: "*.{bam,cram,sam}" # TODO Update when we decide on a standard for subworkflow docs output: - meta: @@ -31,11 +31,11 @@ output: - bam: type: file description: Sorted BAM/CRAM/SAM file - pattern: '*.{bam,cram,sam}' + pattern: "*.{bam,cram,sam}" - versions: type: file description: File containing software versions - pattern: 'versions.yml' + pattern: "versions.yml" authors: - - '@drpatelh' - - '@ewels' + - "@drpatelh" + - "@ewels" diff --git a/subworkflows/nf-core/bam_stats_samtools/meta.yml b/subworkflows/nf-core/bam_stats_samtools/meta.yml index 509c5c97..38fe8647 100644 --- a/subworkflows/nf-core/bam_stats_samtools/meta.yml +++ b/subworkflows/nf-core/bam_stats_samtools/meta.yml @@ -19,11 +19,11 @@ input: - bam: type: file description: BAM/CRAM/SAM file - pattern: '*.{bam,cram,sam}' + pattern: "*.{bam,cram,sam}" - bai: type: file description: Index for BAM/CRAM/SAM file - pattern: '*.{bai,crai,sai}' + pattern: "*.{bai,crai,sai}" # TODO Update when we decide on a standard for subworkflow docs output: - meta: @@ -34,10 +34,10 @@ output: - stats: type: file description: File containing samtools stats output - pattern: '*.{stats}' + pattern: "*.{stats}" - versions: type: file description: File containing software versions - pattern: 'versions.yml' + pattern: "versions.yml" authors: - - '@drpatelh' + - "@drpatelh" diff --git a/subworkflows/nf-core/fgbio_create_umi_consensus/meta.yml b/subworkflows/nf-core/fgbio_create_umi_consensus/meta.yml index 2cb61206..af4ad5bc 100644 --- a/subworkflows/nf-core/fgbio_create_umi_consensus/meta.yml +++ b/subworkflows/nf-core/fgbio_create_umi_consensus/meta.yml @@ -48,20 +48,20 @@ output: - versions: type: file description: File containing software versions - pattern: 'versions.yml' + pattern: "versions.yml" - ubam: type: file description: unmapped bam file - pattern: '*.bam' + pattern: "*.bam" - groupbam: type: file description: mapped bam file, where reads are grouped by UMI tag - pattern: '*.bam' + pattern: "*.bam" - consensusbam: type: file description: | mapped bam file, where reads are created as consensus of those belonging to the same UMI group - pattern: '*.bam' + pattern: "*.bam" authors: - - '@lescai' + - "@lescai" diff --git a/subworkflows/nf-core/gatk_create_som_pon/meta.yml b/subworkflows/nf-core/gatk_create_som_pon/meta.yml index 07404aae..bffb2d50 100644 --- a/subworkflows/nf-core/gatk_create_som_pon/meta.yml +++ b/subworkflows/nf-core/gatk_create_som_pon/meta.yml @@ -46,7 +46,7 @@ output: - versions: type: file description: File containing software versions - pattern: 'versions.yml' + pattern: "versions.yml" - mutect2_vcf: type: list description: List of compressed vcf files to be used to make the gendb workspace @@ -72,4 +72,4 @@ output: description: Index of pon_vcf file pattern: "*vcf.gz.tbi" authors: - - '@GCJMackenzie' + - "@GCJMackenzie" diff --git a/subworkflows/nf-core/gatk_tumor_normal_somatic_variant_calling/meta.yml b/subworkflows/nf-core/gatk_tumor_normal_somatic_variant_calling/meta.yml index 4c42addf..d5abdca9 100644 --- a/subworkflows/nf-core/gatk_tumor_normal_somatic_variant_calling/meta.yml +++ b/subworkflows/nf-core/gatk_tumor_normal_somatic_variant_calling/meta.yml @@ -74,7 +74,7 @@ output: - versions: type: file description: File containing software versions - pattern: 'versions.yml' + pattern: "versions.yml" - mutect2_vcf: type: file description: Compressed vcf file to be used for variant_calling. @@ -124,4 +124,4 @@ output: description: file containing statistics of the filtermutectcalls run. pattern: "*.filteringStats.tsv" authors: - - '@GCJMackenzie' + - "@GCJMackenzie" diff --git a/subworkflows/nf-core/gatk_tumor_only_somatic_variant_calling/meta.yml b/subworkflows/nf-core/gatk_tumor_only_somatic_variant_calling/meta.yml index 14329691..4c41f1f2 100644 --- a/subworkflows/nf-core/gatk_tumor_only_somatic_variant_calling/meta.yml +++ b/subworkflows/nf-core/gatk_tumor_only_somatic_variant_calling/meta.yml @@ -67,7 +67,7 @@ output: - versions: type: file description: File containing software versions - pattern: 'versions.yml' + pattern: "versions.yml" - mutect2_vcf: type: file description: Compressed vcf file to be used for variant_calling. @@ -105,4 +105,4 @@ output: description: file containing statistics of the filtermutectcalls run. pattern: "*.filteringStats.tsv" authors: - - '@GCJMackenzie' + - "@GCJMackenzie" diff --git a/subworkflows/nf-core/sra_fastq/meta.yml b/subworkflows/nf-core/sra_fastq/meta.yml index 3db93257..5114bce5 100644 --- a/subworkflows/nf-core/sra_fastq/meta.yml +++ b/subworkflows/nf-core/sra_fastq/meta.yml @@ -34,4 +34,4 @@ output: description: File containing software versions pattern: "versions.yml" authors: - - '@Midnighter' + - "@Midnighter" diff --git a/tests/modules/artic/minion/test.yml b/tests/modules/artic/minion/test.yml index 8b36b224..401a8470 100644 --- a/tests/modules/artic/minion/test.yml +++ b/tests/modules/artic/minion/test.yml @@ -34,7 +34,7 @@ md5sum: e6e184f1fa153868e3acea0eab42e484 - path: output/artic/test.minion.log.txt contains: - - 'artic_vcf_merge' + - "artic_vcf_merge" - path: output/artic/test.muscle.in.fasta md5sum: 40ae4c89de797d1548c642f0da7a86cc - path: output/artic/test.muscle.out.fasta diff --git a/tests/modules/ataqv/ataqv/test.yml b/tests/modules/ataqv/ataqv/test.yml index f9f2a888..5c5a10e0 100644 --- a/tests/modules/ataqv/ataqv/test.yml +++ b/tests/modules/ataqv/ataqv/test.yml @@ -6,7 +6,7 @@ files: - path: output/ataqv/test.ataqv.json contains: - - '"forward_mate_reads": 101' + - '"forward_mate_reads": 101' - name: ataqv ataqv test_ataqv_ataqv_problem_reads command: nextflow run ./tests/modules/ataqv/ataqv -entry test_ataqv_ataqv_problem_reads -c ./tests/config/nextflow.config -c ./tests/modules/ataqv/ataqv/nextflow.config @@ -17,8 +17,8 @@ - path: output/ataqv/1.problems md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/ataqv/test.ataqv.json - contains: - - '"forward_mate_reads": 101' + contains: + - '"forward_mate_reads": 101' - name: ataqv ataqv test_ataqv_ataqv_peak command: nextflow run ./tests/modules/ataqv/ataqv -entry test_ataqv_ataqv_peak -c ./tests/config/nextflow.config -c ./tests/modules/ataqv/ataqv/nextflow.config @@ -27,8 +27,8 @@ - ataqv/ataqv files: - path: output/ataqv/test.ataqv.json - contains: - - '"forward_mate_reads": 101' + contains: + - '"forward_mate_reads": 101' - name: ataqv ataqv test_ataqv_ataqv_tss command: nextflow run ./tests/modules/ataqv/ataqv -entry test_ataqv_ataqv_tss -c ./tests/config/nextflow.config -c ./tests/modules/ataqv/ataqv/nextflow.config @@ -37,8 +37,8 @@ - ataqv/ataqv files: - path: output/ataqv/test.ataqv.json - contains: - - '"forward_mate_reads": 101' + contains: + - '"forward_mate_reads": 101' - name: ataqv ataqv test_ataqv_ataqv_excluded_regs command: nextflow run ./tests/modules/ataqv/ataqv -entry test_ataqv_ataqv_excluded_regs -c ./tests/config/nextflow.config -c ./tests/modules/ataqv/ataqv/nextflow.config @@ -47,5 +47,5 @@ - ataqv/ataqv files: - path: output/ataqv/test.ataqv.json - contains: - - '"forward_mate_reads": 101' + contains: + - '"forward_mate_reads": 101' diff --git a/tests/modules/bbmap/bbsplit/test.yml b/tests/modules/bbmap/bbsplit/test.yml index add9b519..a1933211 100644 --- a/tests/modules/bbmap/bbsplit/test.yml +++ b/tests/modules/bbmap/bbsplit/test.yml @@ -7,17 +7,17 @@ - path: output/bbmap/bbsplit/ref/genome/1/chr1.chrom.gz - path: output/bbmap/bbsplit/ref/genome/1/info.txt contains: - - 'Chromosome' + - "Chromosome" - path: output/bbmap/bbsplit/ref/genome/1/merged_ref_9222711925172838098.fa.gz - path: output/bbmap/bbsplit/ref/genome/1/namelist.txt md5sum: 45e7a4cdc7a11a39ada56844ca3a1e30 - path: output/bbmap/bbsplit/ref/genome/1/reflist.txt contains: - - 'genome.fasta' + - "genome.fasta" - path: output/bbmap/bbsplit/ref/genome/1/scaffolds.txt.gz - path: output/bbmap/bbsplit/ref/genome/1/summary.txt contains: - - 'scaffolds' + - "scaffolds" - path: output/bbmap/bbsplit/ref/index/1/chr1_index_k13_c13_b1.block md5sum: 385913c1e84b77dc7bf36288ee1c8706 - path: output/bbmap/bbsplit/ref/index/1/chr1_index_k13_c13_b1.block2.gz diff --git a/tests/modules/bwameth/align/test.yml b/tests/modules/bwameth/align/test.yml index f921b5f4..161c627f 100644 --- a/tests/modules/bwameth/align/test.yml +++ b/tests/modules/bwameth/align/test.yml @@ -13,4 +13,3 @@ - bwameth/align files: - path: output/bwameth/test.bam - diff --git a/tests/modules/checkm/lineagewf/test.yml b/tests/modules/checkm/lineagewf/test.yml index 6749f6aa..f81e8c9c 100644 --- a/tests/modules/checkm/lineagewf/test.yml +++ b/tests/modules/checkm/lineagewf/test.yml @@ -32,4 +32,3 @@ - "contigs" - "UID1" - "genome" - diff --git a/tests/modules/chromap/index/test.yml b/tests/modules/chromap/index/test.yml index 430a53b7..dde1aa1b 100644 --- a/tests/modules/chromap/index/test.yml +++ b/tests/modules/chromap/index/test.yml @@ -5,5 +5,3 @@ - chromap files: - path: output/chromap/genome.index - - diff --git a/tests/modules/dastool/dastool/test.yml b/tests/modules/dastool/dastool/test.yml index e2161890..7f7eb19c 100644 --- a/tests/modules/dastool/dastool/test.yml +++ b/tests/modules/dastool/dastool/test.yml @@ -9,8 +9,8 @@ - path: output/dastool/test.tsv md5sum: 6e46c0be14dded7cb13af38f54feea47 - path: output/dastool/test_DASTool.log - contains: - - 'DAS Tool run on' + contains: + - "DAS Tool run on" - path: output/dastool/test_DASTool_scaffolds2bin.txt md5sum: 6e46c0be14dded7cb13af38f54feea47 - path: output/dastool/test_DASTool_summary.txt diff --git a/tests/modules/deeptools/plotheatmap/test.yml b/tests/modules/deeptools/plotheatmap/test.yml index 9273f840..ddc468e2 100644 --- a/tests/modules/deeptools/plotheatmap/test.yml +++ b/tests/modules/deeptools/plotheatmap/test.yml @@ -6,4 +6,3 @@ files: - path: output/deeptools/test.plotHeatmap.mat.tab - path: output/deeptools/test.plotHeatmap.pdf - diff --git a/tests/modules/diamond/blastp/test.yml b/tests/modules/diamond/blastp/test.yml index 673563cb..32dfacaa 100644 --- a/tests/modules/diamond/blastp/test.yml +++ b/tests/modules/diamond/blastp/test.yml @@ -1,8 +1,8 @@ - name: diamond blastp command: nextflow run ./tests/modules/diamond/blastp -entry test_diamond_blastp -c ./tests/config/nextflow.config -c ./tests/modules/diamond/blastp/nextflow.config tags: - - diamond - - diamond/blastp + - diamond + - diamond/blastp files: - - path: ./output/diamond/test.diamond_blastp.txt - md5sum: 3ca7f6290c1d8741c573370e6f8b4db0 + - path: ./output/diamond/test.diamond_blastp.txt + md5sum: 3ca7f6290c1d8741c573370e6f8b4db0 diff --git a/tests/modules/diamond/blastx/test.yml b/tests/modules/diamond/blastx/test.yml index ee94802f..fe7c6938 100644 --- a/tests/modules/diamond/blastx/test.yml +++ b/tests/modules/diamond/blastx/test.yml @@ -1,8 +1,8 @@ - name: diamond blastx command: nextflow run ./tests/modules/diamond/blastx -entry test_diamond_blastx -c ./tests/config/nextflow.config -c ./tests/modules/diamond/blastx/nextflow.config tags: - - diamond - - diamond/blastx + - diamond + - diamond/blastx files: - - path: ./output/diamond/test.diamond_blastx.txt - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: ./output/diamond/test.diamond_blastx.txt + md5sum: d41d8cd98f00b204e9800998ecf8427e diff --git a/tests/modules/dragmap/hashtable/test.yml b/tests/modules/dragmap/hashtable/test.yml index 59a3ed55..0534bdc2 100644 --- a/tests/modules/dragmap/hashtable/test.yml +++ b/tests/modules/dragmap/hashtable/test.yml @@ -4,16 +4,16 @@ - dragmap - dragmap/hashtable files: - - path: output/dragmap/dragmap/hash_table.cfg - - path: output/dragmap/dragmap/hash_table.cfg.bin - - path: output/dragmap/dragmap/hash_table.cmp - md5sum: bc210e5358fd65656f9aea297b59ec7d - - path: output/dragmap/dragmap/hash_table_stats.txt - - path: output/dragmap/dragmap/reference.bin - md5sum: b6b5c12a42416b990cd2844de8f33c5d - - path: output/dragmap/dragmap/ref_index.bin - md5sum: 8470be9566ecee77eb4aea6a38922a66 - - path: output/dragmap/dragmap/repeat_mask.bin - md5sum: 2439259a2fd32a1d0f4c53d585f3da3a - - path: output/dragmap/dragmap/str_table.bin - md5sum: 302e2b30993973527e69c6bcd1f093d0 + - path: output/dragmap/dragmap/hash_table.cfg + - path: output/dragmap/dragmap/hash_table.cfg.bin + - path: output/dragmap/dragmap/hash_table.cmp + md5sum: bc210e5358fd65656f9aea297b59ec7d + - path: output/dragmap/dragmap/hash_table_stats.txt + - path: output/dragmap/dragmap/reference.bin + md5sum: b6b5c12a42416b990cd2844de8f33c5d + - path: output/dragmap/dragmap/ref_index.bin + md5sum: 8470be9566ecee77eb4aea6a38922a66 + - path: output/dragmap/dragmap/repeat_mask.bin + md5sum: 2439259a2fd32a1d0f4c53d585f3da3a + - path: output/dragmap/dragmap/str_table.bin + md5sum: 302e2b30993973527e69c6bcd1f093d0 diff --git a/tests/modules/ectyper/test.yml b/tests/modules/ectyper/test.yml index 4f909bd9..15e0327d 100644 --- a/tests/modules/ectyper/test.yml +++ b/tests/modules/ectyper/test.yml @@ -6,6 +6,6 @@ - path: output/ectyper/blast_output_alleles.txt md5sum: 27f3f5e84f7da451b2948d61589cdb06 - path: output/ectyper/ectyper.log - contains: ['Serotype', 'RefSeq', 'O-type', 'finished'] + contains: ["Serotype", "RefSeq", "O-type", "finished"] - path: output/ectyper/test.tsv md5sum: ba923d7c7ee7d1047466aafc9a9df208 diff --git a/tests/modules/gatk4/calculatecontamination/test.yml b/tests/modules/gatk4/calculatecontamination/test.yml index 4b73851d..4cd44281 100644 --- a/tests/modules/gatk4/calculatecontamination/test.yml +++ b/tests/modules/gatk4/calculatecontamination/test.yml @@ -4,9 +4,9 @@ - gatk4 - gatk4/calculatecontamination files: - - path: output/gatk4/test.contamination.table + - path: output/gatk4/test.contamination.table md5sum: 46c708c943b453da89a3da08acfdb2a7 - - path: output/gatk4/versions.yml + - path: output/gatk4/versions.yml md5sum: 3da8f1c0de968886330a3f7a3a1c6616 - name: gatk4 calculatecontamination test_gatk4_calculatecontamination_matched_pair @@ -15,9 +15,9 @@ - gatk4 - gatk4/calculatecontamination files: - - path: output/gatk4/test.contamination.table + - path: output/gatk4/test.contamination.table md5sum: 46c708c943b453da89a3da08acfdb2a7 - - path: output/gatk4/versions.yml + - path: output/gatk4/versions.yml md5sum: 14ab12a71b0c2b87d8cd53639a991b3a - name: gatk4 calculatecontamination test_gatk4_calculatecontamination_segmentation @@ -26,9 +26,9 @@ - gatk4 - gatk4/calculatecontamination files: - - path: output/gatk4/test.contamination.table + - path: output/gatk4/test.contamination.table md5sum: 46c708c943b453da89a3da08acfdb2a7 - - path: output/gatk4/test.segmentation.table + - path: output/gatk4/test.segmentation.table md5sum: f4643d9319bde4efbfbe516d6fb13052 - - path: output/gatk4/versions.yml + - path: output/gatk4/versions.yml md5sum: d2e61315de31f512e448f0cb4b77db54 diff --git a/tests/modules/gatk4/genotypegvcfs/test.yml b/tests/modules/gatk4/genotypegvcfs/test.yml index 128a2238..a49673fd 100644 --- a/tests/modules/gatk4/genotypegvcfs/test.yml +++ b/tests/modules/gatk4/genotypegvcfs/test.yml @@ -5,7 +5,10 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: ['AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680'] + contains: + [ + "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", + ] - path: output/gatk4/test.genotyped.vcf.gz.tbi - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gz_input @@ -15,7 +18,10 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: ['AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680'] + contains: + [ + "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", + ] - path: output/gatk4/test.genotyped.vcf.gz.tbi - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gz_input_dbsnp @@ -25,7 +31,10 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: ['AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DB;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680'] + contains: + [ + "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DB;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", + ] - path: output/gatk4/test.genotyped.vcf.gz.tbi - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gz_input_intervals @@ -35,7 +44,10 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: ['AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680'] + contains: + [ + "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", + ] - path: output/gatk4/test.genotyped.vcf.gz.tbi - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gz_input_dbsnp_intervals @@ -45,7 +57,10 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: ['AC=2;AF=1.00;AN=2;DB;DP=20;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.00;QD=24.05;SOR=0.693'] + contains: + [ + "AC=2;AF=1.00;AN=2;DB;DP=20;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.00;QD=24.05;SOR=0.693", + ] - path: output/gatk4/test.genotyped.vcf.gz.tbi - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gendb_input @@ -55,7 +70,10 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: ['AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680'] + contains: + [ + "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", + ] - path: output/gatk4/test.genotyped.vcf.gz.tbi - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gendb_input_dbsnp @@ -65,7 +83,10 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: ['AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DB;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680'] + contains: + [ + "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DB;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", + ] - path: output/gatk4/test.genotyped.vcf.gz.tbi - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gendb_input_intervals @@ -75,7 +96,10 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: ['AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680'] + contains: + [ + "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", + ] - path: output/gatk4/test.genotyped.vcf.gz.tbi - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gendb_input_dbsnp_intervals @@ -85,5 +109,8 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: ['AC=2;AF=1.00;AN=2;DP=2;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;QD=18.66;SOR=0.693'] + contains: + [ + "AC=2;AF=1.00;AN=2;DP=2;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;QD=18.66;SOR=0.693", + ] - path: output/gatk4/test.genotyped.vcf.gz.tbi diff --git a/tests/modules/gatk4/getpileupsummaries/test.yml b/tests/modules/gatk4/getpileupsummaries/test.yml index e3b25227..e305d412 100644 --- a/tests/modules/gatk4/getpileupsummaries/test.yml +++ b/tests/modules/gatk4/getpileupsummaries/test.yml @@ -6,7 +6,7 @@ files: - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - - path: output/gatk4/versions.yml + - path: output/gatk4/versions.yml md5sum: 059123619f3ed8d4cd178c4390b81e69 - name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_separate_sites @@ -15,9 +15,9 @@ - gatk4/getpileupsummaries - gatk4 files: - - path: output/gatk4/test.pileups.table + - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - - path: output/gatk4/versions.yml + - path: output/gatk4/versions.yml md5sum: 76b5388b0c5b5762d8d33e34b23f181d - name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_separate_sites_cram @@ -26,7 +26,7 @@ - gatk4/getpileupsummaries - gatk4 files: - - path: output/gatk4/test.pileups.table + - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - - path: output/gatk4/versions.yml + - path: output/gatk4/versions.yml md5sum: 2fa51319c2b1d678ee00ab09512cf268 diff --git a/tests/modules/gatk4/variantfiltration/test.yml b/tests/modules/gatk4/variantfiltration/test.yml index b5da0e5c..068e8d63 100644 --- a/tests/modules/gatk4/variantfiltration/test.yml +++ b/tests/modules/gatk4/variantfiltration/test.yml @@ -5,7 +5,10 @@ - gatk4 files: - path: output/gatk4/test.filtered.vcf.gz - contains: ['BaseQRankSum=-1.318;DP=17;ExcessHet=3.0103;MLEAC=1,0,0;MLEAF=0.500,0.00,0.00;MQRankSum=0.000;RAW_MQandDP=61200,17;ReadPosRankSum=2.365'] + contains: + [ + "BaseQRankSum=-1.318;DP=17;ExcessHet=3.0103;MLEAC=1,0,0;MLEAF=0.500,0.00,0.00;MQRankSum=0.000;RAW_MQandDP=61200,17;ReadPosRankSum=2.365", + ] - path: output/gatk4/test.filtered.vcf.gz.tbi - name: gatk4 variantfiltration test_gatk4_variantfiltration_gz_input @@ -15,5 +18,8 @@ - gatk4 files: - path: output/gatk4/test.filtered.vcf.gz - contains: ['BaseQRankSum=-1.318;DP=17;ExcessHet=3.0103;MLEAC=1,0,0;MLEAF=0.500,0.00,0.00;MQRankSum=0.000;RAW_MQandDP=61200,17;ReadPosRankSum=2.365'] + contains: + [ + "BaseQRankSum=-1.318;DP=17;ExcessHet=3.0103;MLEAC=1,0,0;MLEAF=0.500,0.00,0.00;MQRankSum=0.000;RAW_MQandDP=61200,17;ReadPosRankSum=2.365", + ] - path: output/gatk4/test.filtered.vcf.gz.tbi diff --git a/tests/modules/imputeme/vcftoprs/test.yml b/tests/modules/imputeme/vcftoprs/test.yml index e5152a03..89f2d540 100644 --- a/tests/modules/imputeme/vcftoprs/test.yml +++ b/tests/modules/imputeme/vcftoprs/test.yml @@ -5,4 +5,4 @@ - imputeme/vcftoprs files: - path: output/imputeme/output.json - contains: [ 'type_2_diabetes_32541925":{"GRS":[24.01]' ] + contains: ['type_2_diabetes_32541925":{"GRS":[24.01]'] diff --git a/tests/modules/iqtree/test.yml b/tests/modules/iqtree/test.yml index 06de90d9..291472b0 100644 --- a/tests/modules/iqtree/test.yml +++ b/tests/modules/iqtree/test.yml @@ -5,7 +5,7 @@ files: - path: output/iqtree/informative_sites.fas.treefile contains: - - '(sample1:0.002' - - '(sample2:0.005' - - 'sample3:0.0005' - - 'sample4:0.001' + - "(sample1:0.002" + - "(sample2:0.005" + - "sample3:0.0005" + - "sample4:0.001" diff --git a/tests/modules/isoseq3/cluster/test.yml b/tests/modules/isoseq3/cluster/test.yml index b1f12df7..2df3024c 100644 --- a/tests/modules/isoseq3/cluster/test.yml +++ b/tests/modules/isoseq3/cluster/test.yml @@ -25,4 +25,4 @@ - path: output/isoseq3/test.transcripts.singletons.bam.pbi md5sum: 8e0e0681179c0c36209b49fa60783841 - path: output/isoseq3/test.transcripts.transcriptset.xml - contains: [ 'PacBio.DataSet.TranscriptSet' ] + contains: ["PacBio.DataSet.TranscriptSet"] diff --git a/tests/modules/isoseq3/refine/test.yml b/tests/modules/isoseq3/refine/test.yml index f2c63fda..82180ed9 100644 --- a/tests/modules/isoseq3/refine/test.yml +++ b/tests/modules/isoseq3/refine/test.yml @@ -9,7 +9,7 @@ - path: output/isoseq3/test.refine.bam.pbi md5sum: 8097cad9e472f2f79de6de5fe3dcc822 - path: output/isoseq3/test.refine.consensusreadset.xml - contains: [ 'pbds:ConsensusReadSet' ] + contains: ["pbds:ConsensusReadSet"] - path: output/isoseq3/test.refine.filter_summary.json md5sum: 87f8bdd5c60741f47b8a991e002f7ef3 - path: output/isoseq3/test.refine.report.csv diff --git a/tests/modules/khmer/normalizebymedian/test.yml b/tests/modules/khmer/normalizebymedian/test.yml index 0e61588f..f4d687ef 100644 --- a/tests/modules/khmer/normalizebymedian/test.yml +++ b/tests/modules/khmer/normalizebymedian/test.yml @@ -6,9 +6,9 @@ - khmer/normalizebymedian files: - path: output/khmer/only_pe.fastq.gz - # md5sum not stable even locally with docker (gzip done by tool) - #md5sum: 75e05f2e80cf4bd0b534d4b73f7c059c - + # md5sum not stable even locally with docker (gzip done by tool) + # md5sum: 75e05f2e80cf4bd0b534d4b73f7c059c + - name: khmer normalizebymedian only se reads command: nextflow run ./tests/modules/khmer/normalizebymedian -entry test_khmer_normalizebymedian_only_se -c ./tests/config/nextflow.config -c ./tests/modules/khmer/normalizebymedian/nextflow.config tags: @@ -16,7 +16,7 @@ - khmer/normalizebymedian files: - path: output/khmer/only_se.fastq.gz - + - name: khmer normalizebymedian mixed reads command: nextflow run ./tests/modules/khmer/normalizebymedian -entry test_khmer_normalizebymedian_mixed -c ./tests/config/nextflow.config -c ./tests/modules/khmer/normalizebymedian/nextflow.config tags: diff --git a/tests/modules/kleborate/test.yml b/tests/modules/kleborate/test.yml index 30d854d5..413ac2ae 100644 --- a/tests/modules/kleborate/test.yml +++ b/tests/modules/kleborate/test.yml @@ -4,4 +4,4 @@ - kleborate files: - path: output/kleborate/test.results.txt - contains: ['strain', 'genome', 'scaffolds'] + contains: ["strain", "genome", "scaffolds"] diff --git a/tests/modules/lima/test.yml b/tests/modules/lima/test.yml index 8d927624..2278cc90 100644 --- a/tests/modules/lima/test.yml +++ b/tests/modules/lima/test.yml @@ -8,9 +8,9 @@ - path: output/lima/test.fl.NEB_5p--NEB_Clontech_3p.bam.pbi md5sum: 6ae7f057304ad17dd9d5f565d72d3f7b - path: output/lima/test.fl.NEB_5p--NEB_Clontech_3p.consensusreadset.xml - contains: [ 'ConsensusReadSet' ] + contains: ["ConsensusReadSet"] - path: output/lima/test.fl.json - contains: [ 'ConsensusReadSet' ] + contains: ["ConsensusReadSet"] - path: output/lima/test.fl.lima.clips md5sum: fa03bc75bd78b2648a139fd67c69208f - path: output/lima/test.fl.lima.counts diff --git a/tests/modules/lissero/test.yml b/tests/modules/lissero/test.yml index 8dd7339e..688cfa82 100644 --- a/tests/modules/lissero/test.yml +++ b/tests/modules/lissero/test.yml @@ -4,4 +4,4 @@ - lissero files: - path: output/lissero/test.tsv - contains: ['ID', 'SEROTYPE', 'FULL'] + contains: ["ID", "SEROTYPE", "FULL"] diff --git a/tests/modules/lofreq/call/test.yml b/tests/modules/lofreq/call/test.yml index b9f42542..c84d08fb 100644 --- a/tests/modules/lofreq/call/test.yml +++ b/tests/modules/lofreq/call/test.yml @@ -5,4 +5,7 @@ - lofreq/call files: - path: output/lofreq/test.vcf.gz - contains: ['##INFO='] + contains: + [ + '##INFO=', + ] diff --git a/tests/modules/lofreq/callparallel/test.yml b/tests/modules/lofreq/callparallel/test.yml index db281012..c21eeaa7 100644 --- a/tests/modules/lofreq/callparallel/test.yml +++ b/tests/modules/lofreq/callparallel/test.yml @@ -5,4 +5,7 @@ - lofreq files: - path: output/lofreq/test.vcf.gz - contains: ['##INFO='] + contains: + [ + '##INFO=', + ] diff --git a/tests/modules/malt/run/test.yml b/tests/modules/malt/run/test.yml index 5b0742e4..335bc977 100644 --- a/tests/modules/malt/run/test.yml +++ b/tests/modules/malt/run/test.yml @@ -6,4 +6,3 @@ files: - path: output/malt/test_1.rma6 - path: output/malt/malt-run.log - diff --git a/tests/modules/medaka/test.yml b/tests/modules/medaka/test.yml index 54146bdc..02bd8927 100644 --- a/tests/modules/medaka/test.yml +++ b/tests/modules/medaka/test.yml @@ -4,4 +4,4 @@ - medaka files: - path: output/medaka/test.polished.genome.fa.gz - md5sum: f42303f1d6c2c79175faeb00e10b9a6e \ No newline at end of file + md5sum: f42303f1d6c2c79175faeb00e10b9a6e diff --git a/tests/modules/metaphlan3/test.yml b/tests/modules/metaphlan3/test.yml index 92e731d2..2a3bee01 100644 --- a/tests/modules/metaphlan3/test.yml +++ b/tests/modules/metaphlan3/test.yml @@ -5,7 +5,7 @@ files: - path: output/metaphlan3/test.biom contains: - - '"format": "Biological Observation Matrix 1.0.0","format_url": "http://biom-format.org","generated_by"' + - '"format": "Biological Observation Matrix 1.0.0","format_url": "http://biom-format.org","generated_by"' - path: output/metaphlan3/test.bowtie2out.txt md5sum: ef46a9c6a8ce9cae26fbfd5527116fd5 - path: output/metaphlan3/test_profile.txt @@ -36,7 +36,7 @@ files: - path: output/metaphlan3/test.biom contains: - - '"format": "Biological Observation Matrix 1.0.0","format_url": "http://biom-format.org","generated_by"' + - '"format": "Biological Observation Matrix 1.0.0","format_url": "http://biom-format.org","generated_by"' - path: output/metaphlan3/test.bowtie2out.txt md5sum: ce11486fcc0e68fe7152867a3634e09a - path: output/metaphlan3/test_profile.txt @@ -67,7 +67,7 @@ files: - path: output/metaphlan3/test.biom contains: - - '"format": "Biological Observation Matrix 1.0.0","format_url": "http://biom-format.org","generated_by"' + - '"format": "Biological Observation Matrix 1.0.0","format_url": "http://biom-format.org","generated_by"' - path: output/metaphlan3/test_profile.txt md5sum: e050d49f7df8a23617880ef9ed7745a0 - path: output/samtools/test.sam.bam @@ -98,7 +98,7 @@ files: - path: output/metaphlan3/test.biom contains: - - '"format": "Biological Observation Matrix 1.0.0","format_url": "http://biom-format.org","generated_by"' + - '"format": "Biological Observation Matrix 1.0.0","format_url": "http://biom-format.org","generated_by"' - path: output/metaphlan3/test.bowtie2out.txt md5sum: fece494a410b8328608a11de10af6396 - path: output/metaphlan3/test_profile.txt diff --git a/tests/modules/minimap2/align/test.yml b/tests/modules/minimap2/align/test.yml index 598a5d25..73dd73e2 100644 --- a/tests/modules/minimap2/align/test.yml +++ b/tests/modules/minimap2/align/test.yml @@ -14,4 +14,4 @@ - minimap2/align files: - path: ./output/minimap2/test.paf - md5sum: 5e7b55a26bf0ea3a2843423d3e0b9a28 \ No newline at end of file + md5sum: 5e7b55a26bf0ea3a2843423d3e0b9a28 diff --git a/tests/modules/nanoplot/test.yml b/tests/modules/nanoplot/test.yml index 6549953e..fc100a12 100644 --- a/tests/modules/nanoplot/test.yml +++ b/tests/modules/nanoplot/test.yml @@ -1,4 +1,3 @@ - - name: nanoplot_summary command: nextflow run ./tests/modules/nanoplot -entry test_nanoplot_summary -c ./tests/config/nextflow.config -c ./tests/modules/nanoplot/nextflow.config tags: diff --git a/tests/modules/nucmer/test.yml b/tests/modules/nucmer/test.yml index 62caced4..cebd0d4e 100644 --- a/tests/modules/nucmer/test.yml +++ b/tests/modules/nucmer/test.yml @@ -4,6 +4,6 @@ - nucmer files: - path: output/nucmer/test.coords - contains: ['MT192765.1'] + contains: ["MT192765.1"] - path: output/nucmer/test.delta - contains: ['MT192765.1'] + contains: ["MT192765.1"] diff --git a/tests/modules/optitype/test.yml b/tests/modules/optitype/test.yml index 7c2ff0d0..bb493077 100644 --- a/tests/modules/optitype/test.yml +++ b/tests/modules/optitype/test.yml @@ -6,4 +6,4 @@ - path: output/optitype/test/test_coverage_plot.pdf - path: output/optitype/test/test_result.tsv contains: - - '1446' + - "1446" diff --git a/tests/modules/pbccs/test.yml b/tests/modules/pbccs/test.yml index 5d481923..71549458 100644 --- a/tests/modules/pbccs/test.yml +++ b/tests/modules/pbccs/test.yml @@ -8,8 +8,8 @@ - path: output/pbccs/alz.chunk2.bam.pbi md5sum: 3112cda9744e3facbf38245d41aaf080 - path: output/pbccs/alz.chunk2.metrics.json.gz - contains: [ 'zmws' ] + contains: ["zmws"] - path: output/pbccs/alz.chunk2.report.json - contains: [ 'Created by pbcopper' ] + contains: ["Created by pbcopper"] - path: output/pbccs/alz.chunk2.report.txt md5sum: bbc5bd7a1269345cf7a7f3d4c746024b diff --git a/tests/modules/picard/filtersamreads/test.yml b/tests/modules/picard/filtersamreads/test.yml index a0ab712b..af30d6d2 100644 --- a/tests/modules/picard/filtersamreads/test.yml +++ b/tests/modules/picard/filtersamreads/test.yml @@ -7,7 +7,6 @@ - path: output/picard/test.filtered.bam md5sum: b44a6ca04811a9470c7813c3c9465fd5 - - name: picard filtersamreads readlist command: nextflow run ./tests/modules/picard/filtersamreads -entry test_picard_filtersamreads_readlist -c ./tests/config/nextflow.config -c ./tests/modules/picard/filtersamreads/nextflow.config tags: diff --git a/tests/modules/picard/markduplicates/test.yml b/tests/modules/picard/markduplicates/test.yml index beb54009..cfb5b5de 100644 --- a/tests/modules/picard/markduplicates/test.yml +++ b/tests/modules/picard/markduplicates/test.yml @@ -18,4 +18,3 @@ contains: - "1.0 97 97" - path: ./output/picard/test.bam - diff --git a/tests/modules/pirate/test.yml b/tests/modules/pirate/test.yml index b8d36b95..6ef9e6e0 100644 --- a/tests/modules/pirate/test.yml +++ b/tests/modules/pirate/test.yml @@ -4,23 +4,23 @@ - pirate files: - path: output/pirate/results/PIRATE.gene_families.ordered.tsv - contains: ['allele_name'] + contains: ["allele_name"] - path: output/pirate/results/PIRATE.gene_families.tsv - contains: ['allele_name'] + contains: ["allele_name"] - path: output/pirate/results/PIRATE.genomes_per_allele.tsv - contains: ['g0197'] + contains: ["g0197"] - path: output/pirate/results/PIRATE.log - contains: ['PIRATE input options'] + contains: ["PIRATE input options"] - path: output/pirate/results/PIRATE.pangenome_summary.txt md5sum: 4551c291bc06b21f984f25c09329ed7d - path: output/pirate/results/PIRATE.unique_alleles.tsv - contains: ['allele_name'] + contains: ["allele_name"] - path: output/pirate/results/binary_presence_absence.fasta - contains: ['GCF_000292685'] + contains: ["GCF_000292685"] - path: output/pirate/results/binary_presence_absence.nwk md5sum: 5b5d86bf97d97de37bb9db514abb7762 - path: output/pirate/results/cluster_alleles.tab - contains: ['g0001'] + contains: ["g0001"] - path: output/pirate/results/co-ords/GCF_000292685.co-ords.tab md5sum: d5ca0f06ca7ea1f5486683d5859bc9b8 - path: output/pirate/results/co-ords/GCF_000298385.co-ords.tab @@ -32,9 +32,9 @@ - path: output/pirate/results/genome_list.txt md5sum: 6534b1635c258ad92b829077addc1ff5 - path: output/pirate/results/link_clusters.log - contains: ['parsing paralog file'] + contains: ["parsing paralog file"] - path: output/pirate/results/loci_list.tab - contains: ['GCF_000298385_00242'] + contains: ["GCF_000298385_00242"] - path: output/pirate/results/loci_paralog_categories.tab md5sum: 6404d2a32526a398f42d7da768a389bd - path: output/pirate/results/modified_gffs/GCF_000292685.gff @@ -46,40 +46,40 @@ - path: output/pirate/results/pan_sequences.fasta md5sum: ed835c77fdb20c36aa9d5208eb7ca0cb - path: output/pirate/results/pangenome.connected_blocks.tsv - contains: ['block_number'] + contains: ["block_number"] - path: output/pirate/results/pangenome.edges - contains: ['g0259'] + contains: ["g0259"] - path: output/pirate/results/pangenome.gfa - contains: ['g0001'] + contains: ["g0001"] - path: output/pirate/results/pangenome.order.tsv - contains: ['g0172'] + contains: ["g0172"] - path: output/pirate/results/pangenome.reversed.tsv md5sum: b2396ce09a6e4178761eca6dc7f4434f - path: output/pirate/results/pangenome.syntenic_blocks.tsv - contains: ['g0091'] + contains: ["g0091"] - path: output/pirate/results/pangenome.temp - path: output/pirate/results/pangenome_iterations/pan_sequences.50.reclustered.reinflated - contains: ['GCF_000298385_00242'] + contains: ["GCF_000298385_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.60.reclustered.reinflated - contains: ['GCF_000298385_00242'] + contains: ["GCF_000298385_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.70.reclustered.reinflated - contains: ['GCF_000298385_00242'] + contains: ["GCF_000298385_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.80.reclustered.reinflated - contains: ['GCF_000298385_00242'] + contains: ["GCF_000298385_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.90.reclustered.reinflated - contains: ['GCF_000298385_00242'] + contains: ["GCF_000298385_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.95.reclustered.reinflated - contains: ['GCF_000298385_00242'] + contains: ["GCF_000298385_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.98.reclustered.reinflated - contains: ['GCF_000298385_00242'] + contains: ["GCF_000298385_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.blast.output md5sum: 9da25d27684bfcc5488987ab2d1fd3a1 - path: output/pirate/results/pangenome_iterations/pan_sequences.cdhit_clusters - contains: ['GCF_000298385_00081'] + contains: ["GCF_000298385_00081"] - path: output/pirate/results/pangenome_iterations/pan_sequences.core_clusters.tab - contains: ['GCF_000298385_00242'] + contains: ["GCF_000298385_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.mcl_log.txt - contains: ['chaos'] + contains: ["chaos"] - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta md5sum: 84668b6c65b57026a17a50b0edd02541 - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.pdb @@ -87,12 +87,12 @@ - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.ptf - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.pto - path: output/pirate/results/pangenome_log.txt - contains: ['Creating pangenome on amino acid'] + contains: ["Creating pangenome on amino acid"] - path: output/pirate/results/paralog_clusters.tab - contains: ['g0216'] + contains: ["g0216"] - path: output/pirate/results/representative_sequences.faa - contains: ['representative_genome'] + contains: ["representative_genome"] - path: output/pirate/results/representative_sequences.ffn - contains: ['representative_genome'] + contains: ["representative_genome"] - path: output/pirate/results/split_groups.log - contains: ['g0213'] + contains: ["g0213"] diff --git a/tests/modules/qcat/test.yml b/tests/modules/qcat/test.yml index 47ece983..04ddacff 100644 --- a/tests/modules/qcat/test.yml +++ b/tests/modules/qcat/test.yml @@ -5,4 +5,4 @@ files: - path: ./output/qcat/fastq/barcode06.fastq.gz - path: ./output/qcat/fastq/barcode12.fastq.gz - - path: ./output/qcat/fastq/none.fastq.gz \ No newline at end of file + - path: ./output/qcat/fastq/none.fastq.gz diff --git a/tests/modules/raxmlng/test.yml b/tests/modules/raxmlng/test.yml index 735b6a74..8054adac 100644 --- a/tests/modules/raxmlng/test.yml +++ b/tests/modules/raxmlng/test.yml @@ -5,10 +5,10 @@ files: - path: output/raxmlng/output.raxml.bestTree contains: - - 'sample1:0.359' - - 'sample2:1.50' - - 'sample3:0.000001' - - 'sample4:0.111' + - "sample1:0.359" + - "sample2:1.50" + - "sample3:0.000001" + - "sample4:0.111" - name: raxmlng bootstrap command: nextflow run ./tests/modules/raxmlng -entry test_raxmlng_bootstrap -c ./tests/config/nextflow.config -c ./tests/modules/raxmlng/nextflow.config @@ -17,15 +17,15 @@ files: - path: output/raxmlng/output.raxml.bestTree contains: - - 'sample1:0.359' - - 'sample2:1.50' - - 'sample3:0.000001' - - 'sample4:0.111' + - "sample1:0.359" + - "sample2:1.50" + - "sample3:0.000001" + - "sample4:0.111" - path: output/raxmlng/output.raxml.support contains: - - 'sample1:0.359' - - 'sample2:1.50' - - 'sample3:0.000001' - - 'sample4:0.111' + - "sample1:0.359" + - "sample2:1.50" + - "sample3:0.000001" + - "sample4:0.111" contains_regex: - '\)[89]\d:' diff --git a/tests/modules/roary/test.yml b/tests/modules/roary/test.yml index 981ab51c..11bdf2c7 100644 --- a/tests/modules/roary/test.yml +++ b/tests/modules/roary/test.yml @@ -4,36 +4,39 @@ - roary files: - path: output/roary/results/accessory.header.embl - contains: ['ID Genome standard; DNA; PRO; 1234 BP.'] + contains: ["ID Genome standard; DNA; PRO; 1234 BP."] - path: output/roary/results/accessory.tab - contains: ['FT'] + contains: ["FT"] - path: output/roary/results/accessory_binary_genes.fa md5sum: d4191cf748dd8016ad877857a034bef3 - path: output/roary/results/accessory_binary_genes.fa.newick md5sum: d4a2a64e781263ca1b9b3a4bc9d3a6ea - path: output/roary/results/accessory_graph.dot - contains: ['/* list of nodes */'] + contains: ["/* list of nodes */"] - path: output/roary/results/blast_identity_frequency.Rtab md5sum: 829baa25c3fad94b1af207265452a692 - path: output/roary/results/clustered_proteins - contains: ['JKHLNHAL_00087'] + contains: ["JKHLNHAL_00087"] - path: output/roary/results/core_accessory.header.embl - contains: ['ID Genome standard; DNA; PRO; 1234 BP.'] + contains: ["ID Genome standard; DNA; PRO; 1234 BP."] - path: output/roary/results/core_accessory.tab contains: ['FT /taxa="test1 test2 test3"'] - path: output/roary/results/core_accessory_graph.dot - contains: ['/* list of nodes */'] + contains: ["/* list of nodes */"] - path: output/roary/results/gene_presence_absence.Rtab - contains: ['Gene'] + contains: ["Gene"] - path: output/roary/results/gene_presence_absence.csv - contains: ['"Gene","Non-unique Gene name","Annotation","No. isolates","No. sequences"'] + contains: + [ + '"Gene","Non-unique Gene name","Annotation","No. isolates","No. sequences"', + ] - path: output/roary/results/number_of_conserved_genes.Rtab - contains: ['279'] + contains: ["279"] - path: output/roary/results/number_of_genes_in_pan_genome.Rtab - contains: ['279'] + contains: ["279"] - path: output/roary/results/number_of_new_genes.Rtab - contains: ['279'] + contains: ["279"] - path: output/roary/results/number_of_unique_genes.Rtab - contains: ['279'] + contains: ["279"] - path: output/roary/results/summary_statistics.txt md5sum: 3921b5445df6a7ed59408119b8860a58 diff --git a/tests/modules/seacr/callpeak/test.yml b/tests/modules/seacr/callpeak/test.yml index 63104bd0..83c1c59a 100644 --- a/tests/modules/seacr/callpeak/test.yml +++ b/tests/modules/seacr/callpeak/test.yml @@ -14,4 +14,4 @@ - seacr/callpeak files: - path: output/seacr/test_1.stringent.bed - md5sum: 1d23015c7087f7b48cc3139d53fd3463 \ No newline at end of file + md5sum: 1d23015c7087f7b48cc3139d53fd3463 diff --git a/tests/modules/seqsero2/test.yml b/tests/modules/seqsero2/test.yml index e2dec062..0ebb7324 100644 --- a/tests/modules/seqsero2/test.yml +++ b/tests/modules/seqsero2/test.yml @@ -6,6 +6,6 @@ - path: output/seqsero2/results/SeqSero_log.txt md5sum: d00242dfa734b5abb3622a6048f0b4fb - path: output/seqsero2/results/SeqSero_result.tsv - contains: ['Sample', 'Predicted', 'Note'] + contains: ["Sample", "Predicted", "Note"] - path: output/seqsero2/results/SeqSero_result.txt - contains: ['Sample', 'Predicted', 'Note'] + contains: ["Sample", "Predicted", "Note"] diff --git a/tests/modules/snpsites/test.yml b/tests/modules/snpsites/test.yml index d9c19cd5..9d80dd51 100644 --- a/tests/modules/snpsites/test.yml +++ b/tests/modules/snpsites/test.yml @@ -6,4 +6,4 @@ - path: output/snpsites/filtered_alignment.fas md5sum: f96c7513003e878e16fa9eac9fcda0f4 - path: output/snpsites/constant.sites.txt - md5sum: 8b9b226e3787f7baaefce07405af22c9 \ No newline at end of file + md5sum: 8b9b226e3787f7baaefce07405af22c9 diff --git a/tests/modules/tbprofiler/profile/test.yml b/tests/modules/tbprofiler/profile/test.yml index 8b40f1fa..6e30b784 100644 --- a/tests/modules/tbprofiler/profile/test.yml +++ b/tests/modules/tbprofiler/profile/test.yml @@ -6,7 +6,7 @@ files: - path: output/tbprofiler/bam/test.bam - path: output/tbprofiler/results/test.results.json - contains: ['genome_positions', 'locus_tag', 'tbprofiler_version'] + contains: ["genome_positions", "locus_tag", "tbprofiler_version"] - path: output/tbprofiler/vcf/test.targets.csq.vcf.gz - name: tbprofiler profile nanopore @@ -17,5 +17,5 @@ files: - path: output/tbprofiler/bam/test.bam - path: output/tbprofiler/results/test.results.json - contains: ['genome_positions', 'locus_tag', 'tbprofiler_version'] + contains: ["genome_positions", "locus_tag", "tbprofiler_version"] - path: output/tbprofiler/vcf/test.targets.csq.vcf.gz diff --git a/tests/subworkflows/nf-core/gatk_create_som_pon/test.yml b/tests/subworkflows/nf-core/gatk_create_som_pon/test.yml index 63cf64f8..2ce7c595 100644 --- a/tests/subworkflows/nf-core/gatk_create_som_pon/test.yml +++ b/tests/subworkflows/nf-core/gatk_create_som_pon/test.yml @@ -8,7 +8,7 @@ # - gatk4/genomicsdbimport # - gatk4/createsomaticpanelofnormals files: - # gatk4 mutect2 + # gatk4 mutect2 - path: output/gatk4/test1.vcf.gz - path: output/gatk4/test1.vcf.gz.stats md5sum: 4f77301a125913170b8e9e7828b4ca3f diff --git a/tests/subworkflows/nf-core/gatk_tumor_normal_somatic_variant_calling/test.yml b/tests/subworkflows/nf-core/gatk_tumor_normal_somatic_variant_calling/test.yml index 4b335065..759f4ed3 100644 --- a/tests/subworkflows/nf-core/gatk_tumor_normal_somatic_variant_calling/test.yml +++ b/tests/subworkflows/nf-core/gatk_tumor_normal_somatic_variant_calling/test.yml @@ -10,7 +10,7 @@ # - gatk4/calculatecontamination # - gatk4/filtermutectcalls files: - # gatk4 mutect2 + # gatk4 mutect2 - path: ./output/mutect2/test.vcf.gz - path: ./output/mutect2/test.vcf.gz.stats md5sum: 6ecb874e6a95aa48233587b876c2a7a9 diff --git a/tests/subworkflows/nf-core/gatk_tumor_only_somatic_variant_calling/test.yml b/tests/subworkflows/nf-core/gatk_tumor_only_somatic_variant_calling/test.yml index 9d2d5c10..5248f2ea 100644 --- a/tests/subworkflows/nf-core/gatk_tumor_only_somatic_variant_calling/test.yml +++ b/tests/subworkflows/nf-core/gatk_tumor_only_somatic_variant_calling/test.yml @@ -9,7 +9,7 @@ # - gatk4/calculatecontamination # - gatk4/filtermutectcalls files: - # gatk4 mutect2 + # gatk4 mutect2 - path: ./output/mutect2/test.vcf.gz - path: ./output/mutect2/test.vcf.gz.stats md5sum: 106c5828b02b906c97922618b6072169 From 75606893756ee2e2bf34d650c9973932301fb20a Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Tue, 15 Feb 2022 12:30:28 +0100 Subject: [PATCH 024/592] feat: add sourmash sketch (#1287) Co-authored-by: Jose Espinosa-Carrasco Co-authored-by: Harshil Patel --- modules/sourmash/sketch/main.nf | 35 ++++++++++++++++ modules/sourmash/sketch/meta.yml | 42 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/sourmash/sketch/main.nf | 15 +++++++ tests/modules/sourmash/sketch/nextflow.config | 5 +++ tests/modules/sourmash/sketch/test.yml | 10 +++++ 6 files changed, 111 insertions(+) create mode 100644 modules/sourmash/sketch/main.nf create mode 100644 modules/sourmash/sketch/meta.yml create mode 100644 tests/modules/sourmash/sketch/main.nf create mode 100644 tests/modules/sourmash/sketch/nextflow.config create mode 100644 tests/modules/sourmash/sketch/test.yml diff --git a/modules/sourmash/sketch/main.nf b/modules/sourmash/sketch/main.nf new file mode 100644 index 00000000..e16b605f --- /dev/null +++ b/modules/sourmash/sketch/main.nf @@ -0,0 +1,35 @@ +process SOURMASH_SKETCH { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::sourmash=4.2.4" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/sourmash:4.2.4--hdfd78af_0': + 'quay.io/biocontainers/sourmash:4.2.4--hdfd78af_0' }" + + input: + tuple val(meta), path(sequence) + + output: + tuple val(meta), path("*.sig"), emit: signatures + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: "dna --param-string 'scaled=1000,k=31'" + def prefix = task.ext.prefix ?: "${meta.id}" + """ + sourmash sketch \\ + $args \\ + --merge '${prefix}' \\ + --output '${prefix}.sig' \\ + $sequence + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sourmash: \$(echo \$(sourmash --version 2>&1) | sed 's/^sourmash //' ) + END_VERSIONS + """ +} diff --git a/modules/sourmash/sketch/meta.yml b/modules/sourmash/sketch/meta.yml new file mode 100644 index 00000000..9fb552bc --- /dev/null +++ b/modules/sourmash/sketch/meta.yml @@ -0,0 +1,42 @@ +name: sourmash_sketch +description: Create a signature (a hash sketch) of a sequence using sourmash +keywords: + - hash sketch + - signature +tools: + - sourmash: + description: Compute and compare MinHash signatures for DNA data sets. + homepage: https://sourmash.readthedocs.io/ + documentation: https://sourmash.readthedocs.io/ + tool_dev_url: https://github.com/dib-lab/sourmash + doi: "10.1186/s13059-016-0997-x" + licence: ['BSD-3-clause'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - sequence: + type: file + description: FastA file containing (genomic) sequence data + pattern: "*.{fna,fa,fasta}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - signatures: + type: file + description: MinHash signature of the given sequence + pattern: "*.{sig}" + +authors: + - "@Midnighter" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index de061264..52c7f569 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1417,6 +1417,10 @@ snpsites: - modules/snpsites/** - tests/modules/snpsites/** +sourmash/sketch: + - modules/sourmash/sketch/** + - tests/modules/sourmash/sketch/** + spades: - modules/spades/** - tests/modules/spades/** diff --git a/tests/modules/sourmash/sketch/main.nf b/tests/modules/sourmash/sketch/main.nf new file mode 100644 index 00000000..c9288c59 --- /dev/null +++ b/tests/modules/sourmash/sketch/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SOURMASH_SKETCH } from '../../../../modules/sourmash/sketch/main.nf' + +workflow test_sourmash_sketch { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + + SOURMASH_SKETCH ( input ) +} diff --git a/tests/modules/sourmash/sketch/nextflow.config b/tests/modules/sourmash/sketch/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/sourmash/sketch/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/sourmash/sketch/test.yml b/tests/modules/sourmash/sketch/test.yml new file mode 100644 index 00000000..5bd18967 --- /dev/null +++ b/tests/modules/sourmash/sketch/test.yml @@ -0,0 +1,10 @@ +- name: sourmash sketch test_sourmash_sketch + command: nextflow run tests/modules/sourmash/sketch -entry test_sourmash_sketch -c tests/config/nextflow.config + tags: + - sourmash + - sourmash/sketch + files: + - path: output/sourmash/test.sig + md5sum: 4b0dee307e35fc670cd0d416321e4961 + - path: output/sourmash/versions.yml + md5sum: ec70dabc3e4b3bf11d39c17a99ca4bc6 From a69faefee8ff63565629a2b6dfc40e08f4690b80 Mon Sep 17 00:00:00 2001 From: Hunter Seabolt <86739944+hseabolt@users.noreply.github.com> Date: Wed, 16 Feb 2022 11:28:08 -0500 Subject: [PATCH 025/592] Seqtk rename (#1304) * Added seqtk/rename module and tests code * Updated files and testing code for seqtk rename * Added meta map to seqtk/rename module def * updated prefix parameter usage * updated test.yml to remove local filepaths --> change to output * Added empty line to main.nf --- modules/seqtk/rename/main.nf | 40 +++++++++++++++++++++ modules/seqtk/rename/meta.yml | 42 ++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/seqtk/rename/main.nf | 19 ++++++++++ tests/modules/seqtk/rename/nextflow.config | 5 +++ tests/modules/seqtk/rename/test.yml | 21 +++++++++++ 6 files changed, 131 insertions(+) create mode 100644 modules/seqtk/rename/main.nf create mode 100644 modules/seqtk/rename/meta.yml create mode 100644 tests/modules/seqtk/rename/main.nf create mode 100644 tests/modules/seqtk/rename/nextflow.config create mode 100644 tests/modules/seqtk/rename/test.yml diff --git a/modules/seqtk/rename/main.nf b/modules/seqtk/rename/main.nf new file mode 100644 index 00000000..f50aad69 --- /dev/null +++ b/modules/seqtk/rename/main.nf @@ -0,0 +1,40 @@ +process SEQTK_RENAME { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::seqtk=1.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/seqtk:1.3--h5bf99c6_3' : + 'quay.io/biocontainers/seqtk:1.3--h5bf99c6_3' }" + + input: + tuple val(meta), path(sequences) + + output: + tuple val(meta), path("*.gz") , emit: sequences + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = "fasta" + if ("$sequences" ==~ /.+\.fq|.+\.fq.gz|.+\.fastq|.+\.fastq.gz/) { + extension = "fastq" + } + """ + seqtk \\ + rename \\ + $args \\ + $sequences \\ + $prefix | \\ + gzip -c --no-name > ${prefix}.renamed.${extension}.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqtk: \$(echo \$(seqtk 2>&1) | sed 's/^.*Version: //; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/seqtk/rename/meta.yml b/modules/seqtk/rename/meta.yml new file mode 100644 index 00000000..b68dec8e --- /dev/null +++ b/modules/seqtk/rename/meta.yml @@ -0,0 +1,42 @@ +name: seqtk_rename +description: Rename sequence names in FASTQ or FASTA files. +keywords: + - rename +tools: + - seqtk: + description: Seqtk is a fast and lightweight tool for processing sequences in the FASTA or FASTQ format. The seqtk rename command renames sequence names. + homepage: https://github.com/lh3/seqtk + documentation: https://docs.csc.fi/apps/seqtk/ + tool_dev_url: https://github.com/lh3/seqtk + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - sequences: + type: file + description: A FASTQ or FASTA file + pattern: "*.{fastq.gz, fastq, fq, fq.gz, fasta, fastq.gz, fa, fa.gz, fas, fas.gz, fna, fna.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - sequences: + type: file + description: FASTQ/FASTA file containing renamed sequences + pattern: "*.{fastq.gz, fasta.gz}" + +authors: + - "@hseabolt" + - "@mjcipriano" + - "@sateeshperi" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 52c7f569..1b855da9 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1377,6 +1377,10 @@ seqtk/mergepe: - modules/seqtk/mergepe/** - tests/modules/seqtk/mergepe/** +seqtk/rename: + - modules/seqtk/rename/** + - tests/modules/seqtk/rename/** + seqtk/sample: - modules/seqtk/sample/** - tests/modules/seqtk/sample/** diff --git a/tests/modules/seqtk/rename/main.nf b/tests/modules/seqtk/rename/main.nf new file mode 100644 index 00000000..1f81352d --- /dev/null +++ b/tests/modules/seqtk/rename/main.nf @@ -0,0 +1,19 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SEQTK_RENAME } from '../../../../modules/seqtk/rename/main.nf' + +workflow test_seqtk_rename { + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + ] + SEQTK_RENAME ( input ) +} + +workflow test_seqtk_rename_fq { + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + SEQTK_RENAME ( input ) +} diff --git a/tests/modules/seqtk/rename/nextflow.config b/tests/modules/seqtk/rename/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/seqtk/rename/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/seqtk/rename/test.yml b/tests/modules/seqtk/rename/test.yml new file mode 100644 index 00000000..75e919d9 --- /dev/null +++ b/tests/modules/seqtk/rename/test.yml @@ -0,0 +1,21 @@ +- name: seqtk rename test_seqtk_rename + command: nextflow run tests/modules/seqtk/rename -entry test_seqtk_rename -c tests/config/nextflow.config + tags: + - seqtk + - seqtk/rename + files: + - path: output/seqtk/test.renamed.fasta.gz + md5sum: 7b407952dcf0d925f1996e04a201d05b + - path: output/seqtk/versions.yml + md5sum: 24127592f1b9e5ee8e5ab04ee748c491 + +- name: seqtk rename test_seqtk_rename_fq + command: nextflow run tests/modules/seqtk/rename -entry test_seqtk_rename_fq -c tests/config/nextflow.config + tags: + - seqtk + - seqtk/rename + files: + - path: output/seqtk/test.renamed.fastq.gz + md5sum: babdfc2a3940a1e32a63479db2c1d600 + - path: output/seqtk/versions.yml + md5sum: 06c19670eb2b4185e8f4fa5dcf8fb0d5 From 871779213588426bf176d60d8307fe056143d5c0 Mon Sep 17 00:00:00 2001 From: nickhsmith Date: Wed, 16 Feb 2022 18:35:09 +0100 Subject: [PATCH 026/592] include intervals_index (#1308) * include intervals_index In order to run the GATK `GenotypeGVCFs` tool with an interval file (such as a .bed file) you need to have the corresponding index file. Otherwise you get the following error message ``` A USER ERROR has occurred: An index is required but was not found for file genome.bed.gz: work/6c/541fce2dc670597f62a571c72288c6/genome.bed.gz. Support for unindexed block-compressed files has been temporarily disabled. Try running IndexFeatureFile on the input. ``` including the index file fixes this problem * Update meta.yml --- modules/gatk4/genotypegvcfs/main.nf | 2 +- modules/gatk4/genotypegvcfs/meta.yml | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/gatk4/genotypegvcfs/main.nf b/modules/gatk4/genotypegvcfs/main.nf index 2b0982de..b596e005 100644 --- a/modules/gatk4/genotypegvcfs/main.nf +++ b/modules/gatk4/genotypegvcfs/main.nf @@ -8,7 +8,7 @@ process GATK4_GENOTYPEGVCFS { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(gvcf), path(gvcf_index), path(intervals) + tuple val(meta), path(gvcf), path(gvcf_index), path(intervals), path(intervals_index) path fasta path fasta_index path fasta_dict diff --git a/modules/gatk4/genotypegvcfs/meta.yml b/modules/gatk4/genotypegvcfs/meta.yml index e0550687..f465f835 100644 --- a/modules/gatk4/genotypegvcfs/meta.yml +++ b/modules/gatk4/genotypegvcfs/meta.yml @@ -27,7 +27,10 @@ input: pattern: ["*.{vcf,vcf.gz}", "*.{idx,tbi}"] - intervals: type: file - description: Bed file with the genomic regions included in the library (optional) + description: Interval file with the genomic regions included in the library (optional) + - intervals_index: + type: file + description: Interval index file (optional) - fasta: type: file description: Reference fasta file From 8c8be7d7c6c5b17b89f1c392866fc433b0f79d69 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Thu, 17 Feb 2022 15:05:21 +0100 Subject: [PATCH 027/592] Add gatherpileupsummaries (#1311) * Add gatherpileupsummaries * fix checksum * Update modules/gatk4/gatherpileupsummaries/main.nf * Add in when --- modules/gatk4/gatherpileupsummaries/main.nf | 45 +++++++++++++++++++ modules/gatk4/gatherpileupsummaries/meta.yml | 41 +++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../gatk4/gatherpileupsummaries/main.nf | 18 ++++++++ .../gatherpileupsummaries/nextflow.config | 5 +++ .../gatk4/gatherpileupsummaries/test.yml | 8 ++++ 6 files changed, 121 insertions(+) create mode 100644 modules/gatk4/gatherpileupsummaries/main.nf create mode 100644 modules/gatk4/gatherpileupsummaries/meta.yml create mode 100644 tests/modules/gatk4/gatherpileupsummaries/main.nf create mode 100644 tests/modules/gatk4/gatherpileupsummaries/nextflow.config create mode 100644 tests/modules/gatk4/gatherpileupsummaries/test.yml diff --git a/modules/gatk4/gatherpileupsummaries/main.nf b/modules/gatk4/gatherpileupsummaries/main.nf new file mode 100644 index 00000000..52e57127 --- /dev/null +++ b/modules/gatk4/gatherpileupsummaries/main.nf @@ -0,0 +1,45 @@ +process GATK4_GATHERPILEUPSUMMARIES { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + + + input: + tuple val(meta), path(pileup) + path dict + + output: + tuple val(meta), path("*.pileupsummaries.table"), emit: table + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def input = pileup.collect{ "-I ${it} " }.join(' ') + + def avail_mem = 3 + if (!task.memory) { + log.info '[GATK GatherPileupSummaries] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + gatk --java-options "-Xmx${avail_mem}g" \ + GatherPileupSummaries \ + --sequence-dictionary ${dict} \ + ${input} \ + -O ${prefix}.pileupsummaries.table + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/gatk4/gatherpileupsummaries/meta.yml b/modules/gatk4/gatherpileupsummaries/meta.yml new file mode 100644 index 00000000..7885a930 --- /dev/null +++ b/modules/gatk4/gatherpileupsummaries/meta.yml @@ -0,0 +1,41 @@ +name: gatk4_gatherpileupsummaries +description: write your description here +keywords: + - sort +tools: + - gatk4: + description: Genome Analysis Toolkit (GATK4) + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us + tool_dev_url: https://github.com/broadinstitute/gatk + doi: "10.1158/1538-7445.AM2017-3590" + licence: ['BSD-3-clause'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - pileup: + type: (list of) file(s) + description: Pileup files from gatk4/getpileupsummaries + pattern: "*.pileups.table" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - table: + type: file + description: Pileup file + pattern: "*.pileups.table" + +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 1b855da9..3825a873 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -580,6 +580,10 @@ gatk4/gatherbqsrreports: - modules/gatk4/gatherbqsrreports/** - tests/modules/gatk4/gatherbqsrreports/** +gatk4/gatherpileupsummaries: + - modules/gatk4/gatherpileupsummaries/** + - tests/modules/gatk4/gatherpileupsummaries/** + gatk4/genomicsdbimport: - modules/gatk4/genomicsdbimport/** - tests/modules/gatk4/genomicsdbimport/** diff --git a/tests/modules/gatk4/gatherpileupsummaries/main.nf b/tests/modules/gatk4/gatherpileupsummaries/main.nf new file mode 100644 index 00000000..2bd7e98c --- /dev/null +++ b/tests/modules/gatk4/gatherpileupsummaries/main.nf @@ -0,0 +1,18 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_GATHERPILEUPSUMMARIES } from '../../../../modules/gatk4/gatherpileupsummaries/main.nf' + +workflow test_gatk4_gatherpileupsummaries { + + input = [ + [ id:'test', single_end:false ], // meta map + [file(params.test_data['homo_sapiens']['illumina']['test_pileups_table'], checkIfExists: true)] + //file(params.test_data['homo_sapiens']['illumina']['test_pileups_table'], checkIfExists: true)] + ] + + dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) + + GATK4_GATHERPILEUPSUMMARIES ( input, dict ) +} diff --git a/tests/modules/gatk4/gatherpileupsummaries/nextflow.config b/tests/modules/gatk4/gatherpileupsummaries/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/gatk4/gatherpileupsummaries/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/gatk4/gatherpileupsummaries/test.yml b/tests/modules/gatk4/gatherpileupsummaries/test.yml new file mode 100644 index 00000000..0c38a602 --- /dev/null +++ b/tests/modules/gatk4/gatherpileupsummaries/test.yml @@ -0,0 +1,8 @@ +- name: gatk4 gatherpileupsummaries + command: nextflow run ./tests/modules/gatk4/gatherpileupsummaries -entry test_gatk4_gatherpileupsummaries -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/gatherpileupsummaries/nextflow.config + tags: + - gatk4 + - gatk4/gatherpileupsummaries + files: + - path: output/gatk4/test.pileupsummaries.table + md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 From fcd483e1b5156262a60184d96e7cd35d8d475bf4 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Thu, 17 Feb 2022 16:32:26 +0100 Subject: [PATCH 028/592] intervallisttobed (#1312) * intervallisttobed * correct md5sum --- modules/gatk4/intervallisttobed/main.nf | 41 +++++++++++++++++++ modules/gatk4/intervallisttobed/meta.yml | 41 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/gatk4/intervallisttobed/main.nf | 15 +++++++ .../gatk4/intervallisttobed/nextflow.config | 5 +++ .../modules/gatk4/intervallisttobed/test.yml | 8 ++++ 6 files changed, 114 insertions(+) create mode 100644 modules/gatk4/intervallisttobed/main.nf create mode 100644 modules/gatk4/intervallisttobed/meta.yml create mode 100644 tests/modules/gatk4/intervallisttobed/main.nf create mode 100644 tests/modules/gatk4/intervallisttobed/nextflow.config create mode 100644 tests/modules/gatk4/intervallisttobed/test.yml diff --git a/modules/gatk4/intervallisttobed/main.nf b/modules/gatk4/intervallisttobed/main.nf new file mode 100644 index 00000000..24d20be1 --- /dev/null +++ b/modules/gatk4/intervallisttobed/main.nf @@ -0,0 +1,41 @@ +process GATK4_INTERVALLISTTOBED { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + + input: + tuple val(meta), path(interval) + + output: + tuple val(meta), path("*.bed"), emit: bed + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + def avail_mem = 3 + if (!task.memory) { + log.info '[GATK IntervalListToBed] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + gatk --java-options "-Xmx${avail_mem}g" IntervalListToBed \\ + --INPUT ${interval} \\ + --OUTPUT ${prefix}.bed \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/gatk4/intervallisttobed/meta.yml b/modules/gatk4/intervallisttobed/meta.yml new file mode 100644 index 00000000..90b78c05 --- /dev/null +++ b/modules/gatk4/intervallisttobed/meta.yml @@ -0,0 +1,41 @@ +name: gatk4_intervallisttobed +keywords: + - interval + - bed +tools: + - gatk4: + description: Genome Analysis Toolkit (GATK4) + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s + tool_dev_url: https://github.com/broadinstitute/gatk + doi: "10.1158/1538-7445.AM2017-3590" + licence: ["BSD-3-clause"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - interval: + type: file + description: Interval list + pattern: "*.{interval,interval_list}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: BED file + pattern: "*.bed" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 3825a873..95822741 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -604,6 +604,10 @@ gatk4/indexfeaturefile: - modules/gatk4/indexfeaturefile/** - tests/modules/gatk4/indexfeaturefile/** +gatk4/intervallisttobed: + - modules/gatk4/intervallisttobed/** + - tests/modules/gatk4/intervallisttobed/** + gatk4/intervallisttools: - modules/gatk4/intervallisttools/** - tests/modules/gatk4/intervallisttools/** diff --git a/tests/modules/gatk4/intervallisttobed/main.nf b/tests/modules/gatk4/intervallisttobed/main.nf new file mode 100644 index 00000000..2963979f --- /dev/null +++ b/tests/modules/gatk4/intervallisttobed/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_INTERVALLISTTOBED } from '../../../../modules/gatk4/intervallisttobed/main.nf' + +workflow test_gatk4_intervallisttobed { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_21_interval_list'], checkIfExists: true) + ] + + GATK4_INTERVALLISTTOBED ( input ) +} diff --git a/tests/modules/gatk4/intervallisttobed/nextflow.config b/tests/modules/gatk4/intervallisttobed/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/gatk4/intervallisttobed/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/gatk4/intervallisttobed/test.yml b/tests/modules/gatk4/intervallisttobed/test.yml new file mode 100644 index 00000000..9e6e38c5 --- /dev/null +++ b/tests/modules/gatk4/intervallisttobed/test.yml @@ -0,0 +1,8 @@ +- name: gatk4 intervallisttobed + command: nextflow run ./tests/modules/gatk4/intervallisttobed -entry test_gatk4_intervallisttobed -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/intervallisttobed/nextflow.config + tags: + - gatk4 + - gatk4/intervallisttobed + files: + - path: output/gatk4/test.bed + md5sum: 9046675d01199fbbee79f2bc1c5dce52 From 9e9ff6a86dc80db4c5f3cdd7ddf0bd887c7ff43f Mon Sep 17 00:00:00 2001 From: Oliver Schwengers Date: Thu, 17 Feb 2022 16:59:31 +0100 Subject: [PATCH 029/592] Update Bakta module (#1257) * bump Bakta version to v1.3.1 * add annotation summary file * add/amend meta information Co-authored-by: Robert A. Petit III --- modules/bakta/main.nf | 8 +++++--- modules/bakta/meta.yml | 13 +++++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/modules/bakta/main.nf b/modules/bakta/main.nf index 95e87899..a7f971ef 100644 --- a/modules/bakta/main.nf +++ b/modules/bakta/main.nf @@ -2,10 +2,10 @@ process BAKTA { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bakta=1.2.2" : null) + conda (params.enable_conda ? "bioconda::bakta=1.3.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bakta:1.2.2--pyhdfd78af_0' : - 'quay.io/biocontainers/bakta:1.2.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bakta:1.3.1--pyhdfd78af_0' : + 'quay.io/biocontainers/bakta:1.3.1--pyhdfd78af_0' }" input: tuple val(meta), path(fasta) @@ -23,6 +23,7 @@ process BAKTA { tuple val(meta), path("${prefix}.hypotheticals.tsv"), emit: hypotheticals_tsv tuple val(meta), path("${prefix}.hypotheticals.faa"), emit: hypotheticals_faa tuple val(meta), path("${prefix}.tsv") , emit: tsv + tuple val(meta), path("${prefix}.txt") , emit: txt path "versions.yml" , emit: versions when: @@ -61,6 +62,7 @@ process BAKTA { touch ${prefix}.hypotheticals.tsv touch ${prefix}.hypotheticals.faa touch ${prefix}.tsv + touch ${prefix}.txt cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/bakta/meta.yml b/modules/bakta/meta.yml index b2bbbf7a..2514a996 100644 --- a/modules/bakta/meta.yml +++ b/modules/bakta/meta.yml @@ -1,12 +1,12 @@ name: bakta -description: Rapid annotation of bacterial genomes & plasmids. +description: Annotation of bacterial genomes (isolates, MAGs) and plasmids keywords: - annotation - fasta - - prokaryote + - bacteria tools: - bakta: - description: Rapid & standardized annotation of bacterial genomes & plasmids. + description: Rapid & standardized annotation of bacterial genomes, MAGs & plasmids. homepage: https://github.com/oschwengers/bakta documentation: https://github.com/oschwengers/bakta tool_dev_url: https://github.com/oschwengers/bakta @@ -29,7 +29,7 @@ input: Path to the Bakta database - proteins: type: file - description: FASTA file of trusted proteins to first annotate from (optional) + description: FASTA/GenBank file of trusted proteins to first annotate from (optional) - prodigal_tf: type: file description: Training file to use for Prodigal (optional) @@ -44,6 +44,10 @@ output: type: file description: File containing software versions pattern: "versions.yml" + - txt: + type: file + description: genome statistics and annotation summary + pattern: "*.txt" - tsv: type: file description: annotations as simple human readble tab separated values @@ -83,3 +87,4 @@ output: authors: - "@rpetit3" + - "@oschwengers" From fdb1664885480d9411c24ba45bb4fde4738e5907 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Fri, 18 Feb 2022 09:35:41 +0100 Subject: [PATCH 030/592] Add deeptools bamcoverage (#1316) * Add deeptools bamcoverage * remove todo string * Add in when * fix c&p version format error * Fix md5sums Co-authored-by: Maxime U. Garcia --- modules/deeptools/bamcoverage/main.nf | 37 ++++++++++++++ modules/deeptools/bamcoverage/meta.yml | 49 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/deeptools/bamcoverage/main.nf | 27 ++++++++++ .../deeptools/bamcoverage/nextflow.config | 5 ++ tests/modules/deeptools/bamcoverage/test.yml | 21 ++++++++ 6 files changed, 143 insertions(+) create mode 100644 modules/deeptools/bamcoverage/main.nf create mode 100644 modules/deeptools/bamcoverage/meta.yml create mode 100644 tests/modules/deeptools/bamcoverage/main.nf create mode 100644 tests/modules/deeptools/bamcoverage/nextflow.config create mode 100644 tests/modules/deeptools/bamcoverage/test.yml diff --git a/modules/deeptools/bamcoverage/main.nf b/modules/deeptools/bamcoverage/main.nf new file mode 100644 index 00000000..83e3ffeb --- /dev/null +++ b/modules/deeptools/bamcoverage/main.nf @@ -0,0 +1,37 @@ +process DEEPTOOLS_BAMCOVERAGE { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::deeptools=3.5.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/deeptools:3.5.1--py_0': + 'quay.io/biocontainers/deeptools:3.5.1--py_0' }" + + input: + tuple val(meta), path(input), path(input_index) + + output: + tuple val(meta), path("*.bigWig") , emit: bigwig, optional: true + tuple val(meta), path("*.bedgraph") , emit: bedgraph, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}.bigWig" + + """ + bamCoverage \ + --bam $input \ + $args \ + --numberOfProcessors ${task.cpus} \ + --outFileName ${prefix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + deeptools: \$(bamCoverage --version | sed -e "s/bamCoverage //g") + END_VERSIONS + """ +} diff --git a/modules/deeptools/bamcoverage/meta.yml b/modules/deeptools/bamcoverage/meta.yml new file mode 100644 index 00000000..d0590b2a --- /dev/null +++ b/modules/deeptools/bamcoverage/meta.yml @@ -0,0 +1,49 @@ +name: deeptools_bamcoverage +description: This tool takes an alignment of reads or fragments as input (BAM file) and generates a coverage track (bigWig or bedGraph) as output. +keywords: + - sort +tools: + - deeptools: + description: A set of user-friendly tools for normalization and visualzation of deep-sequencing data + homepage: https://deeptools.readthedocs.io/en/develop/content/tools/bamCoverage.html + documentation: https://deeptools.readthedocs.io/en/develop/content/tools/bamCoverage.html + tool_dev_url: https://github.com/deeptools/deepTools/ + doi: "https://doi.org/10.1093/nar/gkw257" + licence: ['GPL v3'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: BAM/CRAM file + pattern: "*.{bam,cram}" + - input_index: + type: file + description: BAM/CRAM index file + pattern: "*.{bai,crai}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bigWig: + type: file + description: BigWig file + pattern: "*.bigWig" + - bedgraph: + type: file + description: Bedgraph file + pattern: "*.bedgraph" + +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 95822741..d9fa981e 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -400,6 +400,10 @@ deeparg/predict: - modules/deeparg/predict/** - tests/modules/deeparg/predict/** +deeptools/bamcoverage: + - modules/deeptools/bamcoverage/** + - tests/modules/deeptools/bamcoverage/** + deeptools/computematrix: - modules/deeptools/computematrix/** - tests/modules/deeptools/computematrix/** diff --git a/tests/modules/deeptools/bamcoverage/main.nf b/tests/modules/deeptools/bamcoverage/main.nf new file mode 100644 index 00000000..fb5c1c2d --- /dev/null +++ b/tests/modules/deeptools/bamcoverage/main.nf @@ -0,0 +1,27 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { DEEPTOOLS_BAMCOVERAGE } from '../../../../modules/deeptools/bamcoverage/main.nf' + +workflow test_deeptools_bamcoverage_bam { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + + DEEPTOOLS_BAMCOVERAGE ( input ) +} + +workflow test_deeptools_bamcoverage_cram { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true) + ] + + DEEPTOOLS_BAMCOVERAGE ( input ) +} diff --git a/tests/modules/deeptools/bamcoverage/nextflow.config b/tests/modules/deeptools/bamcoverage/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/deeptools/bamcoverage/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/deeptools/bamcoverage/test.yml b/tests/modules/deeptools/bamcoverage/test.yml new file mode 100644 index 00000000..736c2e61 --- /dev/null +++ b/tests/modules/deeptools/bamcoverage/test.yml @@ -0,0 +1,21 @@ +- name: deeptools bamcoverage test_deeptools_bamcoverage_bam + command: nextflow run tests/modules/deeptools/bamcoverage -entry test_deeptools_bamcoverage_bam -c tests/config/nextflow.config + tags: + - deeptools + - deeptools/bamcoverage + files: + - path: output/deeptools/test.bigWig + md5sum: 95fe9383a9e6c02aea6b785cf074274f + - path: output/deeptools/versions.yml + md5sum: 68c94e73b7a8c0935578bad61fea54c1 + +- name: deeptools bamcoverage test_deeptools_bamcoverage_cram + command: nextflow run tests/modules/deeptools/bamcoverage -entry test_deeptools_bamcoverage_cram -c tests/config/nextflow.config + tags: + - deeptools + - deeptools/bamcoverage + files: + - path: output/deeptools/test.bigWig + md5sum: 95fe9383a9e6c02aea6b785cf074274f + - path: output/deeptools/versions.yml + md5sum: 665bbd2979c49bf3974a24bd44a88e94 From 3f364e2f31443f6742e8c63bf2083b5583431ef7 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Fri, 18 Feb 2022 09:38:55 +0100 Subject: [PATCH 031/592] add mergemutectstats (#1314) * add mergemutectstats * correct md5sum * Update modules/gatk4/mergemutectstats/main.nf Co-authored-by: Maxime U. Garcia --- modules/gatk4/mergemutectstats/main.nf | 41 ++++++++++++++++++ modules/gatk4/mergemutectstats/meta.yml | 42 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/gatk4/mergemutectstats/main.nf | 15 +++++++ .../gatk4/mergemutectstats/nextflow.config | 5 +++ tests/modules/gatk4/mergemutectstats/test.yml | 8 ++++ 6 files changed, 115 insertions(+) create mode 100644 modules/gatk4/mergemutectstats/main.nf create mode 100644 modules/gatk4/mergemutectstats/meta.yml create mode 100644 tests/modules/gatk4/mergemutectstats/main.nf create mode 100644 tests/modules/gatk4/mergemutectstats/nextflow.config create mode 100644 tests/modules/gatk4/mergemutectstats/test.yml diff --git a/modules/gatk4/mergemutectstats/main.nf b/modules/gatk4/mergemutectstats/main.nf new file mode 100644 index 00000000..bb9f91fb --- /dev/null +++ b/modules/gatk4/mergemutectstats/main.nf @@ -0,0 +1,41 @@ +process GATK4_MERGEMUTECTSTATS { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + + input: + tuple val(meta), path(stats) + output: + tuple val(meta), path("*.vcf.gz.stats"), emit: stats + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def input = stats.collect{ " -stats ${it} "}.join() + + def avail_mem = 3 + if (!task.memory) { + log.info '[GATK MergeMutectStats] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + gatk --java-options "-Xmx${avail_mem}g" MergeMutectStats \\ + ${input} \\ + -output ${meta.id}.vcf.gz.stats \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/gatk4/mergemutectstats/meta.yml b/modules/gatk4/mergemutectstats/meta.yml new file mode 100644 index 00000000..c9950e14 --- /dev/null +++ b/modules/gatk4/mergemutectstats/meta.yml @@ -0,0 +1,42 @@ +name: gatk4_mergemutectstats +description: Merges mutect2 stats generated on different intervals/regions +keywords: + - mutectstats + - merge +tools: + - gatk4: + description: Genome Analysis Toolkit (GATK4) + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s + tool_dev_url: https://github.com/broadinstitute/gatk + doi: "10.1158/1538-7445.AM2017-3590" + licence: ["BSD-3-clause"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - stats: + type: (list of) file(s) + description: Stats file + pattern: "*.{stats}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - stats: + type: file + description: Stats file + pattern: "*.vcf.gz.stats" + +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index d9fa981e..317207e8 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -628,6 +628,10 @@ gatk4/mergebamalignment: - modules/gatk4/mergebamalignment/** - tests/modules/gatk4/mergebamalignment/** +gatk4/mergemutectstats: + - modules/gatk4/mergemutectstats/** + - tests/modules/gatk4/mergemutectstats/** + gatk4/mergevcfs: - modules/gatk4/mergevcfs/** - tests/modules/gatk4/mergevcfs/** diff --git a/tests/modules/gatk4/mergemutectstats/main.nf b/tests/modules/gatk4/mergemutectstats/main.nf new file mode 100644 index 00000000..bf65a6a6 --- /dev/null +++ b/tests/modules/gatk4/mergemutectstats/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_MERGEMUTECTSTATS } from '../../../../modules/gatk4/mergemutectstats/main.nf' + +workflow test_gatk4_mergemutectstats { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_test2_paired_mutect2_calls_vcf_gz_stats'], checkIfExists: true) + ] + + GATK4_MERGEMUTECTSTATS ( input ) +} diff --git a/tests/modules/gatk4/mergemutectstats/nextflow.config b/tests/modules/gatk4/mergemutectstats/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/gatk4/mergemutectstats/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/gatk4/mergemutectstats/test.yml b/tests/modules/gatk4/mergemutectstats/test.yml new file mode 100644 index 00000000..44d1c5f2 --- /dev/null +++ b/tests/modules/gatk4/mergemutectstats/test.yml @@ -0,0 +1,8 @@ +- name: gatk4 mergemutectstats + command: nextflow run ./tests/modules/gatk4/mergemutectstats -entry test_gatk4_mergemutectstats -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mergemutectstats/nextflow.config + tags: + - gatk4 + - gatk4/mergemutectstats + files: + - path: output/gatk4/test.vcf.gz.stats + md5sum: 17d2091015d04cbd4a26b7a67dc659e6 From e31f1ff3b1375b30db08637d8937e25cc046f3cc Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Fri, 18 Feb 2022 09:43:53 +0100 Subject: [PATCH 032/592] add qualimap with cram files + remove val from qualimap/bam, instead use empty list as everywhere else (#1320) Co-authored-by: Maxime U. Garcia --- modules/qualimap/bamqc/main.nf | 3 +- modules/qualimap/bamqc/meta.yml | 3 - modules/qualimap/bamqccram/main.nf | 60 ++++++++++++++ modules/qualimap/bamqccram/meta.yml | 51 ++++++++++++ tests/config/pytest_modules.yml | 4 + tests/modules/qualimap/bamqc/main.nf | 5 +- tests/modules/qualimap/bamqccram/main.nf | 17 ++++ .../qualimap/bamqccram/nextflow.config | 5 ++ tests/modules/qualimap/bamqccram/test.yml | 80 +++++++++++++++++++ 9 files changed, 220 insertions(+), 8 deletions(-) create mode 100644 modules/qualimap/bamqccram/main.nf create mode 100644 modules/qualimap/bamqccram/meta.yml create mode 100644 tests/modules/qualimap/bamqccram/main.nf create mode 100644 tests/modules/qualimap/bamqccram/nextflow.config create mode 100644 tests/modules/qualimap/bamqccram/test.yml diff --git a/modules/qualimap/bamqc/main.nf b/modules/qualimap/bamqc/main.nf index 4bff0254..92f38f8c 100644 --- a/modules/qualimap/bamqc/main.nf +++ b/modules/qualimap/bamqc/main.nf @@ -10,7 +10,6 @@ process QUALIMAP_BAMQC { input: tuple val(meta), path(bam) path gff - val use_gff output: tuple val(meta), path("${prefix}"), emit: results @@ -25,7 +24,7 @@ process QUALIMAP_BAMQC { def collect_pairs = meta.single_end ? '' : '--collect-overlap-pairs' def memory = task.memory.toGiga() + "G" - def regions = use_gff ? "--gff $gff" : '' + def regions = gff ? "--gff $gff" : '' def strandedness = 'non-strand-specific' if (meta.strandedness == 'forward') { diff --git a/modules/qualimap/bamqc/meta.yml b/modules/qualimap/bamqc/meta.yml index cf7cfb4f..303532eb 100644 --- a/modules/qualimap/bamqc/meta.yml +++ b/modules/qualimap/bamqc/meta.yml @@ -29,9 +29,6 @@ input: type: file description: Feature file with regions of interest pattern: "*.{gff,gtf,bed}" - - use_gff: - type: boolean - description: Specifies if feature file should be used or not output: - meta: type: map diff --git a/modules/qualimap/bamqccram/main.nf b/modules/qualimap/bamqccram/main.nf new file mode 100644 index 00000000..b9a5538d --- /dev/null +++ b/modules/qualimap/bamqccram/main.nf @@ -0,0 +1,60 @@ +process QUALIMAP_BAMQCCRAM { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::qualimap=2.2.2d bioconda::samtools=1.12" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:4bf11d12f2c3eccf1eb585097c0b6fd31c18c418-0' : + 'quay.io/biocontainers/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:4bf11d12f2c3eccf1eb585097c0b6fd31c18c418-0' }" + + input: + tuple val(meta), path(cram), path(crai) + path gff + path fasta + path fasta_fai + + output: + tuple val(meta), path("${prefix}"), emit: results + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + + def collect_pairs = meta.single_end ? '' : '--collect-overlap-pairs' + def memory = task.memory.toGiga() + "G" + def regions = gff ? "--gff $gff" : '' + + def strandedness = 'non-strand-specific' + if (meta.strandedness == 'forward') { + strandedness = 'strand-specific-forward' + } else if (meta.strandedness == 'reverse') { + strandedness = 'strand-specific-reverse' + } + """ + unset DISPLAY + mkdir tmp + export _JAVA_OPTIONS=-Djava.io.tmpdir=./tmp + + samtools view -hb -T ${fasta} ${cram} | + qualimap \\ + --java-mem-size=$memory \\ + bamqc \\ + $args \\ + -bam /dev/stdin \\ + $regions \\ + -p $strandedness \\ + $collect_pairs \\ + -outdir $prefix \\ + -nt $task.cpus + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + qualimap: \$(echo \$(qualimap 2>&1) | sed 's/^.*QualiMap v.//; s/Built.*\$//') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/qualimap/bamqccram/meta.yml b/modules/qualimap/bamqccram/meta.yml new file mode 100644 index 00000000..d72f203d --- /dev/null +++ b/modules/qualimap/bamqccram/meta.yml @@ -0,0 +1,51 @@ +name: qualimap_bamqccram +description: Evaluate alignment data +keywords: + - quality control + - qc + - bam +tools: + - qualimap: + description: | + Qualimap 2 is a platform-independent application written in + Java and R that provides both a Graphical User Interface and + a command-line interface to facilitate the quality control of + alignment sequencing data and its derivatives like feature counts. + homepage: http://qualimap.bioinfo.cipf.es/ + documentation: http://qualimap.conesalab.org/doc_html/index.html + doi: 10.1093/bioinformatics/bts503 + licence: ["GPL-2.0-only"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bacramm: + type: file + description: BAM file + pattern: "*.{bam}" + - gff: + type: file + description: Feature file with regions of interest + pattern: "*.{gff,gtf,bed}" + - fasta: + type: file + description: Reference file of cram file + pattern: "*.{fasta,fa,fna}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - results: + type: dir + description: Qualimap results dir + pattern: "*/*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 317207e8..8ed68dca 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1233,6 +1233,10 @@ qualimap/bamqc: - modules/qualimap/bamqc/** - tests/modules/qualimap/bamqc/** +qualimap/bamqccram: + - modules/qualimap/bamqccram/** + - tests/modules/qualimap/bamqccram/** + quast: - modules/quast/** - tests/modules/quast/** diff --git a/tests/modules/qualimap/bamqc/main.nf b/tests/modules/qualimap/bamqc/main.nf index a17efd59..623634e4 100644 --- a/tests/modules/qualimap/bamqc/main.nf +++ b/tests/modules/qualimap/bamqc/main.nf @@ -8,8 +8,7 @@ workflow test_qualimap_bamqc { input = [ [ id:'test', single_end:false ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] ] - gff = file("dummy_file.txt") - use_gff = false + gff = [] - QUALIMAP_BAMQC ( input, gff, use_gff ) + QUALIMAP_BAMQC ( input, gff ) } diff --git a/tests/modules/qualimap/bamqccram/main.nf b/tests/modules/qualimap/bamqccram/main.nf new file mode 100644 index 00000000..e4d8433e --- /dev/null +++ b/tests/modules/qualimap/bamqccram/main.nf @@ -0,0 +1,17 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { QUALIMAP_BAMQCCRAM } from '../../../../modules/qualimap/bamqccram/main.nf' + +workflow test_qualimap_bamqc { + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true) + ] + gff = [] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + + QUALIMAP_BAMQCCRAM ( input, gff, fasta, fai ) +} diff --git a/tests/modules/qualimap/bamqccram/nextflow.config b/tests/modules/qualimap/bamqccram/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/qualimap/bamqccram/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/qualimap/bamqccram/test.yml b/tests/modules/qualimap/bamqccram/test.yml new file mode 100644 index 00000000..49cf9b24 --- /dev/null +++ b/tests/modules/qualimap/bamqccram/test.yml @@ -0,0 +1,80 @@ +- name: qualimap bamqccram test_qualimap_bamqc + command: nextflow run tests/modules/qualimap/bamqccram -entry test_qualimap_bamqc -c tests/config/nextflow.config + tags: + - qualimap/bamqccram + - qualimap + files: + - path: ./output/qualimap/test/qualimapReport.html + - path: ./output/qualimap/test/genome_results.txt + md5sum: 61d8b36507652fd7d7db9583de708161 + - path: ./output/qualimap/test/css/plus.png + md5sum: 0125e6faa04e2cf0141a2d599d3bb220 + - path: ./output/qualimap/test/css/down-pressed.png + md5sum: ebe8979581eda700fb234a73c661a4b9 + - path: ./output/qualimap/test/css/underscore.js + md5sum: db5ba047a66617d4cd3e8c5099cc51db + - path: ./output/qualimap/test/css/ajax-loader.gif + md5sum: ae6667053ad118020b8e68ccf307b519 + - path: ./output/qualimap/test/css/searchtools.js + md5sum: d550841adeedc8ed47c40ee607620937 + - path: ./output/qualimap/test/css/up.png + - path: ./output/qualimap/test/css/file.png + - path: ./output/qualimap/test/css/up-pressed.png + - path: ./output/qualimap/test/css/down.png + - path: ./output/qualimap/test/css/minus.png + - path: ./output/qualimap/test/css/bgtop.png + - path: ./output/qualimap/test/css/comment.png + - path: ./output/qualimap/test/css/basic.css + md5sum: 25b2823342c0604924a2870eeb4e7e94 + - path: ./output/qualimap/test/css/report.css + md5sum: 7a5f09eaf7c176f966f4e8854168b812 + - path: ./output/qualimap/test/css/pygments.css + md5sum: d625a0adb949f181bd0d3f1432b0fa7f + - path: ./output/qualimap/test/css/comment-close.png + - path: ./output/qualimap/test/css/doctools.js + md5sum: 5ff571aa60e63f69c1890283e240ff8d + - path: ./output/qualimap/test/css/comment-bright.png + - path: ./output/qualimap/test/css/qualimap_logo_small.png + - path: ./output/qualimap/test/css/websupport.js + md5sum: 9e61e1e8a7433c56bd7e5a615affcf85 + - path: ./output/qualimap/test/css/agogo.css + md5sum: bd757b1a7ce6fdc0288ba148680f4583 + - path: ./output/qualimap/test/css/bgfooter.png + - path: ./output/qualimap/test/css/jquery.js + md5sum: 10092eee563dec2dca82b77d2cf5a1ae + - path: ./output/qualimap/test/raw_data_qualimapReport/insert_size_histogram.txt + md5sum: b7aeda7558e9b31f027f7dc530df90b8 + - path: ./output/qualimap/test/raw_data_qualimapReport/mapped_reads_nucleotide_content.txt + md5sum: 42774c6edd6e36538acbdb6ffbd019c2 + - path: ./output/qualimap/test/raw_data_qualimapReport/genome_fraction_coverage.txt + md5sum: 972a19d4846bf4e93ba32ae3dff5289c + - path: ./output/qualimap/test/raw_data_qualimapReport/mapping_quality_histogram.txt + md5sum: 4e3918da81202b52395a576f99c1a50f + - path: ./output/qualimap/test/raw_data_qualimapReport/insert_size_across_reference.txt + - path: ./output/qualimap/test/raw_data_qualimapReport/coverage_histogram.txt + md5sum: 353e74d2a6c4281686c9063de570a64d + - path: ./output/qualimap/test/raw_data_qualimapReport/mapping_quality_across_reference.txt + md5sum: 9bf33149528be9a0e154e4ba7cb89420 + - path: ./output/qualimap/test/raw_data_qualimapReport/mapped_reads_gc-content_distribution.txt + md5sum: be36d9346a402ba580718497d5075d06 + - path: ./output/qualimap/test/raw_data_qualimapReport/homopolymer_indels.txt + md5sum: b0e19fcfb60e5f039eb0986ef61ab3ed + - path: ./output/qualimap/test/raw_data_qualimapReport/duplication_rate_histogram.txt + md5sum: 76e80e4ce8d0e01bbd65f1c28f5a92e7 + - path: ./output/qualimap/test/raw_data_qualimapReport/coverage_across_reference.txt + md5sum: b609d33a1f98d24aa84a04e60513cbee + - path: ./output/qualimap/test/raw_data_qualimapReport/mapped_reads_clipping_profile.txt + md5sum: 7c86f7b225b99bc60008d7e4e55d6adb + - path: ./output/qualimap/test/images_qualimapReport/genome_reads_content_per_read_position.png + - path: ./output/qualimap/test/images_qualimapReport/genome_gc_content_per_window.png + - path: ./output/qualimap/test/images_qualimapReport/genome_coverage_0to50_histogram.png + - path: ./output/qualimap/test/images_qualimapReport/genome_uniq_read_starts_histogram.png + - path: ./output/qualimap/test/images_qualimapReport/genome_mapping_quality_across_reference.png + - path: ./output/qualimap/test/images_qualimapReport/genome_coverage_histogram.png + - path: ./output/qualimap/test/images_qualimapReport/genome_coverage_across_reference.png + - path: ./output/qualimap/test/images_qualimapReport/genome_homopolymer_indels.png + - path: ./output/qualimap/test/images_qualimapReport/genome_insert_size_histogram.png + - path: ./output/qualimap/test/images_qualimapReport/genome_mapping_quality_histogram.png + - path: ./output/qualimap/test/images_qualimapReport/genome_insert_size_across_reference.png + - path: ./output/qualimap/test/images_qualimapReport/genome_reads_clipping_profile.png + - path: ./output/qualimap/test/images_qualimapReport/genome_coverage_quotes.png From d0a1cbb703a130c19f6796c3fce24fbe7dfce789 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Fri, 18 Feb 2022 15:38:05 +0100 Subject: [PATCH 033/592] fix fastp to allow exporting of only `*.merged.fastq.gz` (#1325) * fix: remove left-over unnecessary code * Update main.nf * Update meta.yml --- modules/fastp/main.nf | 2 +- modules/fastp/meta.yml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/fastp/main.nf b/modules/fastp/main.nf index d8218350..5c9e3b83 100644 --- a/modules/fastp/main.nf +++ b/modules/fastp/main.nf @@ -13,7 +13,7 @@ process FASTP { val save_merged output: - tuple val(meta), path('*.trim.fastq.gz') , emit: reads + tuple val(meta), path('*.trim.fastq.gz') , optional:true, emit: reads tuple val(meta), path('*.json') , emit: json tuple val(meta), path('*.html') , emit: html tuple val(meta), path('*.log') , emit: log diff --git a/modules/fastp/meta.yml b/modules/fastp/meta.yml index f53bb09f..3274e41b 100644 --- a/modules/fastp/meta.yml +++ b/modules/fastp/meta.yml @@ -22,6 +22,12 @@ input: description: | List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. + - save_trimmed_fail: + type: boolean + description: Specify true to save files that failed to pass trimming thresholds ending in `*.fail.fastq.gz` + - save_merged: + type: boolean + description: Specify true to save all merged reads to the a file ending in `*.merged.fastq.gz` output: - meta: From cab399507bea60d90de6d7b296163210c371b693 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Fri, 18 Feb 2022 17:36:09 +0000 Subject: [PATCH 034/592] Patch fix artic/minion and ivar/variants modules (#1326) --- modules/artic/minion/main.nf | 5 +++-- modules/artic/minion/meta.yml | 11 ++++++++--- modules/ivar/variants/main.nf | 1 + modules/ivar/variants/meta.yml | 4 ++++ tests/modules/artic/minion/main.nf | 5 ++--- tests/modules/ivar/variants/main.nf | 15 +++++++++------ 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/modules/artic/minion/main.nf b/modules/artic/minion/main.nf index af74b132..22a6fd87 100644 --- a/modules/artic/minion/main.nf +++ b/modules/artic/minion/main.nf @@ -13,7 +13,8 @@ process ARTIC_MINION { path sequencing_summary path ("primer-schemes/${scheme}/V${scheme_version}/${scheme}.reference.fasta") path ("primer-schemes/${scheme}/V${scheme_version}/${scheme}.scheme.bed") - path medaka_model + path medaka_model_file + val medaka_model_string val scheme val scheme_version @@ -44,7 +45,7 @@ process ARTIC_MINION { if (args.tokenize().contains('--medaka')) { fast5 = "" summary = "" - model = file(medaka_model).exists() ? "--medaka-model ./$medaka_model" : "--medaka-model $medaka_model" + model = medaka_model_file ? "--medaka-model ./$medaka_model_file" : "--medaka-model $medaka_model_string" } def hd5_plugin_path = task.ext.hd5_plugin_path ? "export HDF5_PLUGIN_PATH=" + task.ext.hd5_plugin_path : "export HDF5_PLUGIN_PATH=/usr/local/lib/python3.6/site-packages/ont_fast5_api/vbz_plugin" """ diff --git a/modules/artic/minion/meta.yml b/modules/artic/minion/meta.yml index 5ef55673..c0f97a0c 100644 --- a/modules/artic/minion/meta.yml +++ b/modules/artic/minion/meta.yml @@ -42,11 +42,16 @@ input: bed files containing coordinates of each primer in the scheme, relative to the reference genome pattern: "*.{scheme.bed}" - - medaka_model: + - medaka_model_file: type: file description: | - Medaka model to use (if option --medaka is set) - pattern: "*.*" + Medaka model file to use (if option --medaka is set) + pattern: "*.hdf5" + - medaka_model_string: + type: value + description: | + Medaka model string to use (if option --medaka is set) + pattern: "*" - scheme: type: value description: Name of the primer scheme diff --git a/modules/ivar/variants/main.nf b/modules/ivar/variants/main.nf index 85c4cacd..b86042f0 100644 --- a/modules/ivar/variants/main.nf +++ b/modules/ivar/variants/main.nf @@ -10,6 +10,7 @@ process IVAR_VARIANTS { input: tuple val(meta), path(bam) path fasta + path fai path gff val save_mpileup diff --git a/modules/ivar/variants/meta.yml b/modules/ivar/variants/meta.yml index 6677ffb2..4d09e449 100644 --- a/modules/ivar/variants/meta.yml +++ b/modules/ivar/variants/meta.yml @@ -25,6 +25,10 @@ input: type: file description: The reference sequence used for mapping and generating the BAM file pattern: "*.fa" + - fai: + type: file + description: The index for the reference sequence used for mapping and generating the BAM file + pattern: "*.fai" - gff: type: file description: A GFF file in the GFF3 format can be supplied to specify coordinates of open reading frames (ORFs). In absence of GFF file, amino acid translation will not be done. diff --git a/tests/modules/artic/minion/main.nf b/tests/modules/artic/minion/main.nf index ca66ede0..3bda2ffc 100644 --- a/tests/modules/artic/minion/main.nf +++ b/tests/modules/artic/minion/main.nf @@ -2,7 +2,7 @@ nextflow.enable.dsl = 2 -include { UNTAR } from '../../../../modules/untar/main.nf' +include { UNTAR } from '../../../../modules/untar/main.nf' include { ARTIC_MINION } from '../../../../modules/artic/minion/main.nf' workflow test_artic_minion { @@ -15,9 +15,8 @@ workflow test_artic_minion { sequencing_summary = file(params.test_data['sarscov2']['nanopore']['test_sequencing_summary'], checkIfExists: true) fasta = file('https://github.com/artic-network/primer-schemes/raw/master/nCoV-2019/V3/nCoV-2019.reference.fasta', checkIfExists: true) bed = file('https://github.com/artic-network/primer-schemes/raw/master/nCoV-2019/V3/nCoV-2019.primer.bed', checkIfExists: true) - dummy_file = [] fast5_dir = UNTAR ( fast5_tar ).untar - ARTIC_MINION ( input, fast5_dir, sequencing_summary, fasta, bed, dummy_file, 'nCoV-2019', '3') + ARTIC_MINION ( input, fast5_dir, sequencing_summary, fasta, bed, [], '', 'nCoV-2019', '3') } diff --git a/tests/modules/ivar/variants/main.nf b/tests/modules/ivar/variants/main.nf index 96835c60..2d8e77c5 100644 --- a/tests/modules/ivar/variants/main.nf +++ b/tests/modules/ivar/variants/main.nf @@ -11,10 +11,11 @@ workflow test_ivar_variants_no_gff_no_mpileup { file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - gff = [] + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + gff = [] save_mpileup = false - IVAR_VARIANTS ( input, fasta, gff, save_mpileup ) + IVAR_VARIANTS ( input, fasta, fai, gff, save_mpileup ) } workflow test_ivar_variants_no_gff_with_mpileup { @@ -24,10 +25,11 @@ workflow test_ivar_variants_no_gff_with_mpileup { file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - gff = [] + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + gff = [] save_mpileup = true - IVAR_VARIANTS ( input, fasta, gff, save_mpileup ) + IVAR_VARIANTS ( input, fasta, fai, gff, save_mpileup ) } workflow test_ivar_variants_with_gff_with_mpileup { @@ -37,8 +39,9 @@ workflow test_ivar_variants_with_gff_with_mpileup { file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - gff = file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + gff = file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) save_mpileup = true - IVAR_VARIANTS ( input, fasta, gff, save_mpileup ) + IVAR_VARIANTS ( input, fasta, fai, gff, save_mpileup ) } From 8055c5d1c3920ae1f579a428bdd181f7beb2d302 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Fri, 18 Feb 2022 17:23:44 -0700 Subject: [PATCH 035/592] add module for rgi (#1321) * add module for rgi * fix extension * fix test yaml * Update main.nf * Update main.nf --- modules/rgi/main/main.nf | 37 ++++++++++++++++++++ modules/rgi/main/meta.yml | 47 ++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/rgi/main/main.nf | 15 ++++++++ tests/modules/rgi/main/nextflow.config | 5 +++ tests/modules/rgi/main/test.yml | 12 +++++++ 6 files changed, 120 insertions(+) create mode 100644 modules/rgi/main/main.nf create mode 100644 modules/rgi/main/meta.yml create mode 100644 tests/modules/rgi/main/main.nf create mode 100644 tests/modules/rgi/main/nextflow.config create mode 100644 tests/modules/rgi/main/test.yml diff --git a/modules/rgi/main/main.nf b/modules/rgi/main/main.nf new file mode 100644 index 00000000..bf00d333 --- /dev/null +++ b/modules/rgi/main/main.nf @@ -0,0 +1,37 @@ +process RGI_MAIN { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::rgi=5.2.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/rgi:5.2.1--pyha8f3691_2': + 'quay.io/biocontainers/rgi:5.2.1--pyha8f3691_2' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*.json"), emit: json + tuple val(meta), path("*.txt") , emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + rgi \\ + main \\ + $args \\ + --num_threads $task.cpus \\ + --output_file $prefix \\ + --input_sequence $fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + rgi: \$(rgi main --version) + END_VERSIONS + """ +} diff --git a/modules/rgi/main/meta.yml b/modules/rgi/main/meta.yml new file mode 100644 index 00000000..cd97ff92 --- /dev/null +++ b/modules/rgi/main/meta.yml @@ -0,0 +1,47 @@ +name: rgi_main +description: Predict antibiotic resistance from protein or nucleotide data +keywords: + - bacteria + - fasta + - antibiotic resistance +tools: + - rgi: + description: This tool provides a preliminary annotation of your DNA sequence(s) based upon the data available in The Comprehensive Antibiotic Resistance Database (CARD). Hits to genes tagged with Antibiotic Resistance ontology terms will be highlighted. As CARD expands to include more pathogens, genomes, plasmids, and ontology terms this tool will grow increasingly powerful in providing first-pass detection of antibiotic resistance associated genes. See license at CARD website + homepage: https://card.mcmaster.ca + documentation: https://github.com/arpcard/rgi + tool_dev_url: https://github.com/arpcard/rgi + doi: "10.1093/nar/gkz935" + licence: ['https://card.mcmaster.ca/about'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Nucleotide or protein sequences in FASTA format + pattern: "*.{fasta,fasta.gz,fa,fa.gz,fna,fna.gz,faa,faa.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - json: + type: file + description: JSON formatted file with RGI results + pattern: "*.{json}" + - tsv: + type: file + description: Tab-delimited file with RGI results + pattern: "*.{txt}" + +authors: + - "@rpetit3" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 8ed68dca..9aa4c754 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1261,6 +1261,10 @@ raxmlng: - modules/raxmlng/** - tests/modules/raxmlng/** +rgi/main: + - modules/rgi/main/** + - tests/modules/rgi/main/** + rmarkdownnotebook: - modules/rmarkdownnotebook/** - tests/modules/rmarkdownnotebook/** diff --git a/tests/modules/rgi/main/main.nf b/tests/modules/rgi/main/main.nf new file mode 100644 index 00000000..9182a154 --- /dev/null +++ b/tests/modules/rgi/main/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { RGI_MAIN } from '../../../../modules/rgi/main/main.nf' + +workflow test_rgi_main { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['haemophilus_influenzae']['genome']['genome_fna_gz'], checkIfExists: true) + ] + + RGI_MAIN ( input ) +} diff --git a/tests/modules/rgi/main/nextflow.config b/tests/modules/rgi/main/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/rgi/main/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/rgi/main/test.yml b/tests/modules/rgi/main/test.yml new file mode 100644 index 00000000..65d4ad9f --- /dev/null +++ b/tests/modules/rgi/main/test.yml @@ -0,0 +1,12 @@ +- name: rgi main + command: nextflow run ./tests/modules/rgi/main -entry test_rgi_main -c ./tests/config/nextflow.config -c ./tests/modules/rgi/main/nextflow.config + tags: + - rgi + - rgi/main + files: + - path: output/rgi/test.json + contains: ["NZ_LS483480", "orf_end", "perc_identity", "Pulvomycin"] + - path: output/rgi/test.txt + contains: ["NZ_LS483480", "ORF_ID", "Model_type", "Pulvomycin"] + - path: output/rgi/versions.yml + md5sum: 614a45d9d59680d4e743498773cf830a From 439763bf2c19b9836cc4d600747bf765170bada1 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Fri, 18 Feb 2022 17:33:48 -0700 Subject: [PATCH 036/592] add module for sistr (#1323) * add module for sistr * Update test.yml --- modules/sistr/main.nf | 49 +++++++++++++++++++++++++ modules/sistr/meta.yml | 55 +++++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/sistr/main.nf | 15 ++++++++ tests/modules/sistr/nextflow.config | 5 +++ tests/modules/sistr/test.yml | 15 ++++++++ 6 files changed, 143 insertions(+) create mode 100644 modules/sistr/main.nf create mode 100644 modules/sistr/meta.yml create mode 100644 tests/modules/sistr/main.nf create mode 100644 tests/modules/sistr/nextflow.config create mode 100644 tests/modules/sistr/test.yml diff --git a/modules/sistr/main.nf b/modules/sistr/main.nf new file mode 100644 index 00000000..0301d053 --- /dev/null +++ b/modules/sistr/main.nf @@ -0,0 +1,49 @@ +process SISTR { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::sistr_cmd=1.1.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/sistr_cmd:1.1.1--pyh864c0ab_2': + 'quay.io/biocontainers/sistr_cmd:1.1.1--pyh864c0ab_2' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*.tab") , emit: tsv + tuple val(meta), path("*-allele.fasta"), emit: allele_fasta + tuple val(meta), path("*-allele.json") , emit: allele_json + tuple val(meta), path("*-cgmlst.csv") , emit: cgmlst_csv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def is_compressed = fasta.getName().endsWith(".gz") ? true : false + def fasta_name = fasta.getName().replace(".gz", "") + """ + if [ "$is_compressed" == "true" ]; then + gzip -c -d $fasta > $fasta_name + fi + + sistr \\ + --qc \\ + $args \\ + --threads $task.cpus \\ + --alleles-output ${prefix}-allele.json \\ + --novel-alleles ${prefix}-allele.fasta \\ + --cgmlst-profiles ${prefix}-cgmlst.csv \\ + --output-prediction ${prefix} \\ + --output-format tab \\ + $fasta_name + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sistr: \$(echo \$(sistr --version 2>&1) | sed 's/^.*sistr_cmd //; s/ .*\$//' ) + END_VERSIONS + """ +} diff --git a/modules/sistr/meta.yml b/modules/sistr/meta.yml new file mode 100644 index 00000000..5ce43334 --- /dev/null +++ b/modules/sistr/meta.yml @@ -0,0 +1,55 @@ +name: sistr +description: Serovar prediction of salmonella assemblies +keywords: + - bacteria + - fasta + - salmonella +tools: + - sistr: + description: Salmonella In Silico Typing Resource (SISTR) commandline tool for serovar prediction + homepage: https://github.com/phac-nml/sistr_cmd + documentation: https://github.com/phac-nml/sistr_cmd + tool_dev_url: https://github.com/phac-nml/sistr_cmd + doi: "10.1371/journal.pone.0147101" + licence: ['Apache-2.0'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Nucleotide or protein sequences in FASTA format + pattern: "*.{fasta,fasta.gz,fa,fa.gz,fna,fna.gz,faa,faa.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - tsv: + type: file + description: SISTR serovar prediction + pattern: "*.{tsv}" + - allele_json: + type: file + description: Allele sequences and info to JSON + pattern: "*.{json}" + - allele_fasta: + type: file + description: FASTA file destination of novel cgMLST alleles + pattern: "*.{fasta}" + - cgmlst_csv: + type: file + description: CSV file destination for cgMLST allelic profiles + pattern: "*.{csv}" + +authors: + - "@rpetit3" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 9aa4c754..5ee2851f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1429,6 +1429,10 @@ shovill: - modules/shovill/** - tests/modules/shovill/** +sistr: + - modules/sistr/** + - tests/modules/sistr/** + snpdists: - modules/snpdists/** - tests/modules/snpdists/** diff --git a/tests/modules/sistr/main.nf b/tests/modules/sistr/main.nf new file mode 100644 index 00000000..4bd84844 --- /dev/null +++ b/tests/modules/sistr/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SISTR } from '../../../modules/sistr/main.nf' + +workflow test_sistr { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['haemophilus_influenzae']['genome']['genome_fna_gz'], checkIfExists: true) + ] + + SISTR ( input ) +} diff --git a/tests/modules/sistr/nextflow.config b/tests/modules/sistr/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/sistr/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/sistr/test.yml b/tests/modules/sistr/test.yml new file mode 100644 index 00000000..88182f28 --- /dev/null +++ b/tests/modules/sistr/test.yml @@ -0,0 +1,15 @@ +- name: sistr test_sistr + command: nextflow run tests/modules/sistr -entry test_sistr -c tests/config/nextflow.config + tags: + - sistr + files: + - path: output/sistr/test-allele.fasta + md5sum: 144a74999eb9dd01520be5c61e8bd210 + - path: output/sistr/test-allele.json + md5sum: 3eb993c9489904621f539a93ff9a90ec + - path: output/sistr/test-cgmlst.csv + md5sum: c50a2144955fe1b98a6d5792bf295088 + - path: output/sistr/test.tab + contains: ["cgmlst_ST", "serovar", "matched"] + - path: output/sistr/versions.yml + md5sum: 8b852f002c3ce67e3f6498da15b28296 From 425939a108ac2674e4ac04327195285331a59d60 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Fri, 18 Feb 2022 17:42:18 -0700 Subject: [PATCH 037/592] add module for legsta (#1319) --- modules/legsta/main.nf | 33 ++++++++++++++++++++++ modules/legsta/meta.yml | 42 ++++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/legsta/main.nf | 15 ++++++++++ tests/modules/legsta/nextflow.config | 5 ++++ tests/modules/legsta/test.yml | 9 ++++++ 6 files changed, 108 insertions(+) create mode 100644 modules/legsta/main.nf create mode 100644 modules/legsta/meta.yml create mode 100644 tests/modules/legsta/main.nf create mode 100644 tests/modules/legsta/nextflow.config create mode 100644 tests/modules/legsta/test.yml diff --git a/modules/legsta/main.nf b/modules/legsta/main.nf new file mode 100644 index 00000000..8e2a3ae3 --- /dev/null +++ b/modules/legsta/main.nf @@ -0,0 +1,33 @@ +process LEGSTA { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::legsta=0.5.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/legsta%3A0.5.1--hdfd78af_2': + 'quay.io/biocontainers/legsta:0.5.1--hdfd78af_2' }" + + input: + tuple val(meta), path(seqs) + + output: + tuple val(meta), path("*.tsv"), emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + legsta \\ + $args \\ + $seqs > ${prefix}.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + legsta: \$(echo \$(legsta --version 2>&1) | sed 's/^.*legsta //; s/ .*\$//;') + END_VERSIONS + """ +} diff --git a/modules/legsta/meta.yml b/modules/legsta/meta.yml new file mode 100644 index 00000000..24013c67 --- /dev/null +++ b/modules/legsta/meta.yml @@ -0,0 +1,42 @@ +name: legsta +description: Typing of clinical and environmental isolates of Legionella pneumophila +keywords: + - bacteria + - legionella +tools: + - legsta: + description: In silico Legionella pneumophila Sequence Based Typing + homepage: https://github.com/tseemann/legsta + documentation: https://github.com/tseemann/legsta + tool_dev_url: https://github.com/tseemann/legsta + doi: "" + licence: ['GPL v3'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - seqs: + type: file + description: FASTA, GenBank or EMBL formatted files + pattern: "*.{fasta,gbk,embl}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - tsv: + type: file + description: Tab-delimited summary of the results + pattern: "*.{tsv}" + +authors: + - "@rpetit3" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 5ee2851f..8cc03dd3 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -892,6 +892,10 @@ leehom: - modules/leehom/** - tests/modules/leehom/** +legsta: + - modules/legsta/** + - tests/modules/legsta/** + lima: - modules/lima/** - tests/modules/lima/** diff --git a/tests/modules/legsta/main.nf b/tests/modules/legsta/main.nf new file mode 100644 index 00000000..606d8209 --- /dev/null +++ b/tests/modules/legsta/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { LEGSTA } from '../../../modules/legsta/main.nf' + +workflow test_legsta { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + + LEGSTA ( input ) +} diff --git a/tests/modules/legsta/nextflow.config b/tests/modules/legsta/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/legsta/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/legsta/test.yml b/tests/modules/legsta/test.yml new file mode 100644 index 00000000..8ac28a7e --- /dev/null +++ b/tests/modules/legsta/test.yml @@ -0,0 +1,9 @@ +- name: legsta test_legsta + command: nextflow run tests/modules/legsta -entry test_legsta -c tests/config/nextflow.config + tags: + - legsta + files: + - path: output/legsta/test.tsv + md5sum: c493bdd19335de4828aa8b4e3ce7e1f8 + - path: output/legsta/versions.yml + md5sum: d16c5f6fd68d2bcc2c71954e3342aabe From 45466684e7d933057054c28c160d27628852390c Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Fri, 18 Feb 2022 17:52:38 -0700 Subject: [PATCH 038/592] add mobsuite_recon module (#1270) * add mobsuite_recon module * Update main.nf * Update nextflow.config * Update test.yml Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> --- modules/mobsuite/recon/main.nf | 45 ++++++++++++++++ modules/mobsuite/recon/meta.yml | 54 ++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/mobsuite/recon/main.nf | 13 +++++ tests/modules/mobsuite/recon/nextflow.config | 5 ++ tests/modules/mobsuite/recon/test.yml | 12 +++++ 6 files changed, 133 insertions(+) create mode 100644 modules/mobsuite/recon/main.nf create mode 100644 modules/mobsuite/recon/meta.yml create mode 100644 tests/modules/mobsuite/recon/main.nf create mode 100644 tests/modules/mobsuite/recon/nextflow.config create mode 100644 tests/modules/mobsuite/recon/test.yml diff --git a/modules/mobsuite/recon/main.nf b/modules/mobsuite/recon/main.nf new file mode 100644 index 00000000..9ca7e180 --- /dev/null +++ b/modules/mobsuite/recon/main.nf @@ -0,0 +1,45 @@ +process MOBSUITE_RECON { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::mob_suite=3.0.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mob_suite%3A3.0.3--pyhdfd78af_0': + 'quay.io/biocontainers/mob_suite:3.0.3--pyhdfd78af_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("results/chromosome.fasta") , emit: chromosome + tuple val(meta), path("results/contig_report.txt") , emit: contig_report + tuple val(meta), path("results/plasmid_*.fasta") , emit: plasmids , optional: true + tuple val(meta), path("results/mobtyper_results.txt"), emit: mobtyper_results, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def is_compressed = fasta.getName().endsWith(".gz") ? true : false + def fasta_name = fasta.getName().replace(".gz", "") + """ + if [ "$is_compressed" == "true" ]; then + gzip -c -d $fasta > $fasta_name + fi + + mob_recon \\ + --infile $fasta_name \\ + $args \\ + --num_threads $task.cpus \\ + --outdir results \\ + --sample_id $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + mobsuite: \$(echo \$(mob_recon --version 2>&1) | sed 's/^.*mob_recon //; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/mobsuite/recon/meta.yml b/modules/mobsuite/recon/meta.yml new file mode 100644 index 00000000..b5232142 --- /dev/null +++ b/modules/mobsuite/recon/meta.yml @@ -0,0 +1,54 @@ +name: mobsuite_recon +description: A tool to reconstruct plasmids in bacterial assemblies +keywords: + - bacteria + - plasmid +tools: + - mobsuite: + description: Software tools for clustering, reconstruction and typing of plasmids from draft assemblies. + homepage: https://github.com/phac-nml/mob-suite + documentation: https://github.com/phac-nml/mob-suite + tool_dev_url: https://github.com/phac-nml/mob-suite + doi: "10.1099/mgen.0.000435" + licence: ['Apache License, Version 2.0'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: A bacterial genome assembly in FASTA format + pattern: "*.{fasta,fa,fna}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - chromosome: + type: file + description: FASTA file of all contigs found to belong to the chromosome + pattern: "chromosome.fasta" + - contig_report: + type: file + description: Assignment of the contig to chromosome or a particular plasmid grouping + pattern: "contig_report.txt" + - plasmids: + type: file + description: Each plasmid group is written to an individual FASTA + pattern: "plasmid_*.fasta" + - mobtyper_results: + type: file + description: Aggregate MOB-typer report files for all identified plasmid + pattern: "mobtyper_results.txt" + +authors: + - "@rpetit3" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 8cc03dd3..a053a57c 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1024,6 +1024,10 @@ mlst: - modules/mlst/** - tests/modules/mlst/** +mobsuite/recon: + - modules/mobsuite/recon/** + - tests/modules/mobsuite/recon/** + mosdepth: - modules/mosdepth/** - tests/modules/mosdepth/** diff --git a/tests/modules/mobsuite/recon/main.nf b/tests/modules/mobsuite/recon/main.nf new file mode 100644 index 00000000..0d18ef9c --- /dev/null +++ b/tests/modules/mobsuite/recon/main.nf @@ -0,0 +1,13 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MOBSUITE_RECON } from '../../../../modules/mobsuite/recon/main.nf' + +workflow test_mobsuite_recon { + + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + + MOBSUITE_RECON ( input ) +} diff --git a/tests/modules/mobsuite/recon/nextflow.config b/tests/modules/mobsuite/recon/nextflow.config new file mode 100644 index 00000000..06a716aa --- /dev/null +++ b/tests/modules/mobsuite/recon/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/mobsuite/recon/test.yml b/tests/modules/mobsuite/recon/test.yml new file mode 100644 index 00000000..dfff835b --- /dev/null +++ b/tests/modules/mobsuite/recon/test.yml @@ -0,0 +1,12 @@ +- name: mobsuite recon test_mobsuite_recon + command: nextflow run tests/modules/mobsuite/recon -entry test_mobsuite_recon -c tests/config/nextflow.config + tags: + - mobsuite/recon + - mobsuite + files: + - path: output/mobsuite/results/chromosome.fasta + md5sum: 33b2a0fa321c73c6ba8d8272dd53c6d4 + - path: output/mobsuite/results/contig_report.txt + md5sum: a0ae364a9f2b475f77588d0b3c24b857 + - path: output/mobsuite/versions.yml + md5sum: 7f7a0f8957394b0e526233a0edb8e20a From be798861c616e445abbaf9f2549deb10055c2ed1 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Fri, 18 Feb 2022 18:00:21 -0700 Subject: [PATCH 039/592] add module for abricate (#1280) * add module for abricate * rename abricate/abricate to abricate/run * Update test.yml Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> --- modules/abricate/run/main.nf | 34 +++++++++++++++ modules/abricate/run/meta.yml | 43 +++++++++++++++++++ modules/abricate/summary/main.nf | 33 ++++++++++++++ modules/abricate/summary/meta.yml | 43 +++++++++++++++++++ tests/config/pytest_modules.yml | 8 ++++ tests/modules/abricate/run/main.nf | 15 +++++++ tests/modules/abricate/run/nextflow.config | 5 +++ tests/modules/abricate/run/test.yml | 10 +++++ tests/modules/abricate/summary/main.nf | 21 +++++++++ .../modules/abricate/summary/nextflow.config | 5 +++ tests/modules/abricate/summary/test.yml | 14 ++++++ 11 files changed, 231 insertions(+) create mode 100644 modules/abricate/run/main.nf create mode 100644 modules/abricate/run/meta.yml create mode 100644 modules/abricate/summary/main.nf create mode 100644 modules/abricate/summary/meta.yml create mode 100644 tests/modules/abricate/run/main.nf create mode 100644 tests/modules/abricate/run/nextflow.config create mode 100644 tests/modules/abricate/run/test.yml create mode 100644 tests/modules/abricate/summary/main.nf create mode 100644 tests/modules/abricate/summary/nextflow.config create mode 100644 tests/modules/abricate/summary/test.yml diff --git a/modules/abricate/run/main.nf b/modules/abricate/run/main.nf new file mode 100644 index 00000000..11992791 --- /dev/null +++ b/modules/abricate/run/main.nf @@ -0,0 +1,34 @@ +process ABRICATE_RUN { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::abricate=1.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/abricate%3A1.0.1--ha8f3691_1': + 'quay.io/biocontainers/abricate:1.0.1--ha8f3691_1' }" + + input: + tuple val(meta), path(assembly) + + output: + tuple val(meta), path("*.txt"), emit: report + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + abricate \\ + $assembly \\ + $args \\ + --threads $task.cpus > ${prefix}.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + abricate: \$(echo \$(abricate --version 2>&1) | sed 's/^.*abricate //' ) + END_VERSIONS + """ +} diff --git a/modules/abricate/run/meta.yml b/modules/abricate/run/meta.yml new file mode 100644 index 00000000..2464d03e --- /dev/null +++ b/modules/abricate/run/meta.yml @@ -0,0 +1,43 @@ +name: abricate_run +description: Screen assemblies for antimicrobial resistance against multiple databases +keywords: + - bacteria + - assembly + - antimicrobial reistance +tools: + - abricate: + description: Mass screening of contigs for antibiotic resistance genes + homepage: https://github.com/tseemann/abricate + documentation: https://github.com/tseemann/abricate + tool_dev_url: https://github.com/tseemann/abricate + doi: "" + licence: ['GPL v2', 'GPL v2'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - assembly: + type: file + description: FASTA, GenBank or EMBL formatted file + pattern: "*.{fa,fasta,fna,fa.gz,fasta.gz,fna.gz,gbk,gbk.gz,embl,embl.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - report: + type: file + description: Tab-delimited report of results + pattern: "*.{txt}" + +authors: + - "@rpetit3" diff --git a/modules/abricate/summary/main.nf b/modules/abricate/summary/main.nf new file mode 100644 index 00000000..b3ba4d58 --- /dev/null +++ b/modules/abricate/summary/main.nf @@ -0,0 +1,33 @@ +process ABRICATE_SUMMARY { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::abricate=1.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/abricate%3A1.0.1--ha8f3691_1': + 'quay.io/biocontainers/abricate:1.0.1--ha8f3691_1' }" + + input: + tuple val(meta), path(reports) + + output: + tuple val(meta), path("*.txt"), emit: report + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + abricate \\ + --summary \\ + $reports > ${prefix}.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + abricate: \$(echo \$(abricate --version 2>&1) | sed 's/^.*abricate //' ) + END_VERSIONS + """ +} diff --git a/modules/abricate/summary/meta.yml b/modules/abricate/summary/meta.yml new file mode 100644 index 00000000..b02ba930 --- /dev/null +++ b/modules/abricate/summary/meta.yml @@ -0,0 +1,43 @@ +name: abricate_summary +description: Screen assemblies for antimicrobial resistance against multiple databases +keywords: + - bacteria + - assembly + - antimicrobial reistance +tools: + - abricate: + description: Mass screening of contigs for antibiotic resistance genes + homepage: https://github.com/tseemann/abricate + documentation: https://github.com/tseemann/abricate + tool_dev_url: https://github.com/tseemann/abricate + doi: "" + licence: ['GPL v2', 'GPL v2'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - assembly: + type: file + description: FASTA, GenBank or EMBL formatted file + pattern: "*.{fa,fasta,fna,fa.gz,fasta.gz,fna.gz,gbk,gbk.gz,embl,embl.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - summary: + type: file + description: Tab-delimited report of aggregated results + pattern: "*.{txt}" + +authors: + - "@rpetit3" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index a053a57c..8752765f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -2,6 +2,14 @@ abacas: - modules/abacas/** - tests/modules/abacas/** +abricate/run: + - modules/abricate/run/** + - tests/modules/abricate/run/** + +abricate/summary: + - modules/abricate/summary/** + - tests/modules/abricate/summary/** + adapterremoval: - modules/adapterremoval/** - tests/modules/adapterremoval/** diff --git a/tests/modules/abricate/run/main.nf b/tests/modules/abricate/run/main.nf new file mode 100644 index 00000000..19d1f8a8 --- /dev/null +++ b/tests/modules/abricate/run/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ABRICATE_RUN } from '../../../../modules/abricate/run/main.nf' + +workflow test_abricate_run { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + + ABRICATE_RUN ( input ) +} diff --git a/tests/modules/abricate/run/nextflow.config b/tests/modules/abricate/run/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/abricate/run/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/abricate/run/test.yml b/tests/modules/abricate/run/test.yml new file mode 100644 index 00000000..3377623c --- /dev/null +++ b/tests/modules/abricate/run/test.yml @@ -0,0 +1,10 @@ +- name: abricate run + command: nextflow run tests/modules/abricate/run -entry test_abricate_run -c tests/config/nextflow.config + tags: + - abricate + - abricate/run + files: + - path: output/abricate/test.txt + md5sum: cd07e2953b127aed8d09bf1b2b903a1f + - path: output/abricate/versions.yml + md5sum: ae9cafaae96a644bb852e337aa7251f3 diff --git a/tests/modules/abricate/summary/main.nf b/tests/modules/abricate/summary/main.nf new file mode 100644 index 00000000..9acbdba9 --- /dev/null +++ b/tests/modules/abricate/summary/main.nf @@ -0,0 +1,21 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ABRICATE_RUN } from '../../../../modules/abricate/run/main.nf' +include { ABRICATE_SUMMARY } from '../../../../modules/abricate/summary/main.nf' + +workflow test_abricate_summary { + + inputs = [ + tuple([ id:'test1', single_end:false ], // meta map + file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true)), + tuple([ id:'test2', single_end:false ], + file(params.test_data['haemophilus_influenzae']['genome']['genome_fna_gz'], checkIfExists: true)) + ] + + ABRICATE_RUN ( Channel.fromList(inputs) ) + ABRICATE_SUMMARY ( + ABRICATE_RUN.out.report.collect{ meta, report -> report }.map{ report -> [[ id: 'test_summary'], report]} + ) +} diff --git a/tests/modules/abricate/summary/nextflow.config b/tests/modules/abricate/summary/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/abricate/summary/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/abricate/summary/test.yml b/tests/modules/abricate/summary/test.yml new file mode 100644 index 00000000..abbd747b --- /dev/null +++ b/tests/modules/abricate/summary/test.yml @@ -0,0 +1,14 @@ +- name: abricate summary + command: nextflow run tests/modules/abricate/summary -entry test_abricate_summary -c tests/config/nextflow.config + tags: + - abricate + - abricate/summary + files: + - path: output/abricate/test1.txt + md5sum: cd07e2953b127aed8d09bf1b2b903a1f + - path: output/abricate/test2.txt + md5sum: 69af3321b0bc808b7ef85f102395736f + - path: output/abricate/test_summary.txt + md5sum: a4ec7010e75404ce3a1033f0c4b4a7f9 + - path: output/abricate/versions.yml + md5sum: a18f0471c49e5f25ec0b0c4ad5fab08e From f655e5dea2e25f403e23fb6dfdc33cc538666769 Mon Sep 17 00:00:00 2001 From: Sateesh <33637490+sateeshperi@users.noreply.github.com> Date: Fri, 18 Feb 2022 20:18:05 -0500 Subject: [PATCH 040/592] Picard fixmateinformation (#1315) * add picard-fixmateinformation * add picard-fixmateinformation * fix trailing whitespace * fix trailing whitespace Co-authored-by: Peri Co-authored-by: Robert A. Petit III --- modules/picard/fixmateinformation/main.nf | 43 ++++++++++++++++++ modules/picard/fixmateinformation/meta.yml | 44 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../modules/picard/fixmateinformation/main.nf | 15 +++++++ .../picard/fixmateinformation/nextflow.config | 5 +++ .../picard/fixmateinformation/test.yml | 10 +++++ 6 files changed, 121 insertions(+) create mode 100644 modules/picard/fixmateinformation/main.nf create mode 100644 modules/picard/fixmateinformation/meta.yml create mode 100644 tests/modules/picard/fixmateinformation/main.nf create mode 100644 tests/modules/picard/fixmateinformation/nextflow.config create mode 100644 tests/modules/picard/fixmateinformation/test.yml diff --git a/modules/picard/fixmateinformation/main.nf b/modules/picard/fixmateinformation/main.nf new file mode 100644 index 00000000..763f3bb4 --- /dev/null +++ b/modules/picard/fixmateinformation/main.nf @@ -0,0 +1,43 @@ +process PICARD_FIXMATEINFORMATION { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::picard=2.26.9" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/picard:2.26.9--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.26.9--hdfd78af_0' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("*.bam"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def STRINGENCY = task.ext.stringency ?: "STRICT" + def avail_mem = 3 + if (!task.memory) { + log.info '[Picard FixMateInformation] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + picard \\ + FixMateInformation \\ + -Xmx${avail_mem}g \\ + -I ${bam} \\ + -O ${prefix}.bam \\ + --VALIDATION_STRINGENCY ${STRINGENCY} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(picard FixMateInformation --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ +} diff --git a/modules/picard/fixmateinformation/meta.yml b/modules/picard/fixmateinformation/meta.yml new file mode 100644 index 00000000..c01d803c --- /dev/null +++ b/modules/picard/fixmateinformation/meta.yml @@ -0,0 +1,44 @@ +name: picard_fixmateinformation +description: Verify mate-pair information between mates and fix if needed +keywords: + - mate-pair +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://gatk.broadinstitute.org/hc/en-us/articles/360036713471-FixMateInformation-Picard- + tool_dev_url: https://github.com/broadinstitute/picard + licence: ['MIT'] + +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}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bam: + type: file + description: mate-pair verified BAM file + pattern: "*.{bam}" + +authors: + - "@sateeshperi" + - "@mjcipriano" + - "@hseabolt" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 8752765f..99e8f2b5 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1173,6 +1173,10 @@ picard/filtersamreads: - modules/picard/filtersamreads/** - tests/modules/picard/filtersamreads/** +picard/fixmateinformation: + - modules/picard/fixmateinformation/** + - tests/modules/picard/fixmateinformation/** + picard/markduplicates: - modules/picard/markduplicates/** - tests/modules/picard/markduplicates/** diff --git a/tests/modules/picard/fixmateinformation/main.nf b/tests/modules/picard/fixmateinformation/main.nf new file mode 100644 index 00000000..46b4248b --- /dev/null +++ b/tests/modules/picard/fixmateinformation/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PICARD_FIXMATEINFORMATION } from '../../../../modules/picard/fixmateinformation/main.nf' + +workflow test_picard_fixmateinformation { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + PICARD_FIXMATEINFORMATION ( input ) +} diff --git a/tests/modules/picard/fixmateinformation/nextflow.config b/tests/modules/picard/fixmateinformation/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/picard/fixmateinformation/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/picard/fixmateinformation/test.yml b/tests/modules/picard/fixmateinformation/test.yml new file mode 100644 index 00000000..f12f823b --- /dev/null +++ b/tests/modules/picard/fixmateinformation/test.yml @@ -0,0 +1,10 @@ +- name: picard fixmateinformation test_picard_fixmateinformation + command: nextflow run tests/modules/picard/fixmateinformation -entry test_picard_fixmateinformation -c tests/config/nextflow.config + tags: + - picard + - picard/fixmateinformation + files: + - path: output/picard/test.bam + md5sum: 746102e8c242c0ef42e045c49d320030 + - path: output/picard/versions.yml + md5sum: 4329ba7cdca8f4f6018dfd5c019ba2eb From 62e5d1f0b38367d628e6b4c32b45d462f2c0b325 Mon Sep 17 00:00:00 2001 From: Sateesh <33637490+sateeshperi@users.noreply.github.com> Date: Fri, 18 Feb 2022 20:49:12 -0500 Subject: [PATCH 041/592] Picard createsequencedictionary (#1310) * add picard/createsequencedictionary module * add picard-CreateSequenceDictionary * add picard/createsequencedictionary/ * add contains to test yml * update test yml contains * update test yml contains Co-authored-by: Peri Co-authored-by: Robert A. Petit III --- .../picard/createsequencedictionary/main.nf | 42 +++++++++++++++++ .../picard/createsequencedictionary/meta.yml | 45 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../picard/createsequencedictionary/main.nf | 15 +++++++ .../createsequencedictionary/nextflow.config | 5 +++ .../picard/createsequencedictionary/test.yml | 10 +++++ 6 files changed, 121 insertions(+) create mode 100644 modules/picard/createsequencedictionary/main.nf create mode 100644 modules/picard/createsequencedictionary/meta.yml create mode 100644 tests/modules/picard/createsequencedictionary/main.nf create mode 100644 tests/modules/picard/createsequencedictionary/nextflow.config create mode 100644 tests/modules/picard/createsequencedictionary/test.yml diff --git a/modules/picard/createsequencedictionary/main.nf b/modules/picard/createsequencedictionary/main.nf new file mode 100644 index 00000000..96069e9f --- /dev/null +++ b/modules/picard/createsequencedictionary/main.nf @@ -0,0 +1,42 @@ +process PICARD_CREATESEQUENCEDICTIONARY { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::picard=2.26.9" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/picard:2.26.9--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.26.9--hdfd78af_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*.dict"), emit: reference_dict + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 + if (!task.memory) { + log.info '[Picard CreateSequenceDictionary] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + picard \\ + -Xmx${avail_mem}g \\ + CreateSequenceDictionary \\ + $args \\ + R=$fasta \\ + O=${prefix}.dict + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(picard CreateSequenceDictionary --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ +} diff --git a/modules/picard/createsequencedictionary/meta.yml b/modules/picard/createsequencedictionary/meta.yml new file mode 100644 index 00000000..f40a4dbc --- /dev/null +++ b/modules/picard/createsequencedictionary/meta.yml @@ -0,0 +1,45 @@ +name: picard_createsequencedictionary +description: Creates a sequence dictionary for a reference sequence. +keywords: + - sequence + - dictionary + - picard +tools: + - picard: + description: | + Creates a sequence dictionary file (with ".dict" extension) from a reference sequence provided in FASTA format, which is required by many processing and analysis tools. The output file contains a header but no SAMRecords, and the header contains only sequence records. + homepage: https://broadinstitute.github.io/picard/ + documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360036712531-CreateSequenceDictionary-Picard- + tool_dev_url: https://github.com/broadinstitute/picard + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - dict: + type: file + description: picard dictionary file + pattern: "*.{dict}" + +authors: + - "@sateeshperi" + - "@mjcipriano" + - "@hseabolt" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 99e8f2b5..52f8d625 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1169,6 +1169,10 @@ picard/collectwgsmetrics: - modules/picard/collectwgsmetrics/** - tests/modules/picard/collectwgsmetrics/** +picard/createsequencedictionary: + - modules/picard/createsequencedictionary/** + - tests/modules/picard/createsequencedictionary/** + picard/filtersamreads: - modules/picard/filtersamreads/** - tests/modules/picard/filtersamreads/** diff --git a/tests/modules/picard/createsequencedictionary/main.nf b/tests/modules/picard/createsequencedictionary/main.nf new file mode 100644 index 00000000..4dc24c8a --- /dev/null +++ b/tests/modules/picard/createsequencedictionary/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PICARD_CREATESEQUENCEDICTIONARY } from '../../../../modules/picard/createsequencedictionary/main.nf' + +workflow test_picard_createsequencedictionary { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + + PICARD_CREATESEQUENCEDICTIONARY ( input ) +} diff --git a/tests/modules/picard/createsequencedictionary/nextflow.config b/tests/modules/picard/createsequencedictionary/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/picard/createsequencedictionary/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/picard/createsequencedictionary/test.yml b/tests/modules/picard/createsequencedictionary/test.yml new file mode 100644 index 00000000..3c9d0e7e --- /dev/null +++ b/tests/modules/picard/createsequencedictionary/test.yml @@ -0,0 +1,10 @@ +- name: picard createsequencedictionary test_picard_createsequencedictionary + command: nextflow run tests/modules/picard/createsequencedictionary -entry test_picard_createsequencedictionary -c tests/config/nextflow.config + tags: + - picard/createsequencedictionary + - picard + files: + - path: output/picard/test.dict + contains: ['SN:MT192765.1'] + - path: output/picard/versions.yml + md5sum: b3d8c7ea65b8a6d3237b153d13fe2014 From 927dbfed048469e945f93236d213011e45672fba Mon Sep 17 00:00:00 2001 From: Sateesh <33637490+sateeshperi@users.noreply.github.com> Date: Fri, 18 Feb 2022 21:17:58 -0500 Subject: [PATCH 042/592] Picard cleansam (#1306) * add picard-cleansam * add picard/cleansam * update test yml with output * picard 2.26.10 -> 2.26.9 * add output to test yml Co-authored-by: Peri Co-authored-by: Robert A. Petit III --- modules/picard/cleansam/main.nf | 44 ++++++++++++++++++ modules/picard/cleansam/meta.yml | 46 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/picard/cleansam/main.nf | 15 ++++++ tests/modules/picard/cleansam/nextflow.config | 5 ++ tests/modules/picard/cleansam/test.yml | 10 ++++ 6 files changed, 124 insertions(+) create mode 100644 modules/picard/cleansam/main.nf create mode 100644 modules/picard/cleansam/meta.yml create mode 100644 tests/modules/picard/cleansam/main.nf create mode 100644 tests/modules/picard/cleansam/nextflow.config create mode 100644 tests/modules/picard/cleansam/test.yml diff --git a/modules/picard/cleansam/main.nf b/modules/picard/cleansam/main.nf new file mode 100644 index 00000000..2eb171d5 --- /dev/null +++ b/modules/picard/cleansam/main.nf @@ -0,0 +1,44 @@ +process PICARD_CLEANSAM { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::picard=2.26.9" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/picard:2.26.9--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.26.9--hdfd78af_0' }" + + input: + tuple val(meta), path(sam) + + output: + tuple val(meta), path("*.sam"), emit: sam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def STRINGENCY = task.ext.stringency ?: "STRICT" + def avail_mem = 3 + if (!task.memory) { + log.info '[Picard CleanSam] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + picard \\ + -Xmx${avail_mem}g \\ + CleanSam \\ + ${args} \\ + -I ${sam} \\ + -O ${prefix}.sam \\ + --VALIDATION_STRINGENCY ${STRINGENCY} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(picard CleanSam --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ +} diff --git a/modules/picard/cleansam/meta.yml b/modules/picard/cleansam/meta.yml new file mode 100644 index 00000000..d22e1742 --- /dev/null +++ b/modules/picard/cleansam/meta.yml @@ -0,0 +1,46 @@ +name: picard_cleansam +description: Cleans the provided SAM/BAM, soft-clipping beyond-end-of-reference alignments and setting MAPQ to 0 for unmapped reads +keywords: + - clean + - sam + - bam +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://gatk.broadinstitute.org/hc/en-us/articles/360036491452-CleanSam-Picard- + tool_dev_url: https://github.com/broadinstitute/picard + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - sam: + type: file + description: SAM file + pattern: "*.{sam}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - sam: + type: file + description: Cleaned SAM file + pattern: "*.{sam}" + +authors: + - "@sateeshperi" + - "@mjcipriano" + - "@hseabolt" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 52f8d625..3d857d2c 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1157,6 +1157,10 @@ phyloflash: - modules/phyloflash/** - tests/modules/phyloflash/** +picard/cleansam: + - modules/picard/cleansam/** + - tests/modules/picard/cleansam/** + picard/collecthsmetrics: - modules/picard/collecthsmetrics/** - tests/modules/picard/collecthsmetrics/** diff --git a/tests/modules/picard/cleansam/main.nf b/tests/modules/picard/cleansam/main.nf new file mode 100644 index 00000000..f189b0f3 --- /dev/null +++ b/tests/modules/picard/cleansam/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PICARD_CLEANSAM } from '../../../../modules/picard/cleansam/main.nf' + +workflow test_picard_cleansam { + + input = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true) + ] + + PICARD_CLEANSAM ( input ) +} diff --git a/tests/modules/picard/cleansam/nextflow.config b/tests/modules/picard/cleansam/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/picard/cleansam/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/picard/cleansam/test.yml b/tests/modules/picard/cleansam/test.yml new file mode 100644 index 00000000..716dfe6a --- /dev/null +++ b/tests/modules/picard/cleansam/test.yml @@ -0,0 +1,10 @@ +- name: picard cleansam test_picard_cleansam + command: nextflow run tests/modules/picard/cleansam -entry test_picard_cleansam -c tests/config/nextflow.config + tags: + - picard/cleansam + - picard + files: + - path: output/picard/test.sam + md5sum: e314171a6060eb79947c13ad126ddf00 + - path: output/picard/versions.yml + md5sum: e6457d7c6de51bf6f4b577eda65e57ac From a0d91e4a93daab335e8dbae31b345188c120e0a0 Mon Sep 17 00:00:00 2001 From: Sateesh <33637490+sateeshperi@users.noreply.github.com> Date: Fri, 18 Feb 2022 21:59:06 -0500 Subject: [PATCH 043/592] Picard addorreplacereadgroups (#1305) * add picard-addorreplacereadgroups * add picard_addorreplacereadgroups * add new line to main.nf * remove trailing whitespaces * remove trailing whitespaces * change to output in test yml * add when directive * picard 2.26.10 -> 2.26.9 * picard 2.26.10 -> 2.26.9 test yml Co-authored-by: Peri Co-authored-by: Robert A. Petit III --- modules/picard/addorreplacereadgroups/main.nf | 53 +++++++++++++++++++ .../picard/addorreplacereadgroups/meta.yml | 46 ++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../picard/addorreplacereadgroups/main.nf | 15 ++++++ .../addorreplacereadgroups/nextflow.config | 5 ++ .../picard/addorreplacereadgroups/test.yml | 10 ++++ 6 files changed, 133 insertions(+) create mode 100644 modules/picard/addorreplacereadgroups/main.nf create mode 100644 modules/picard/addorreplacereadgroups/meta.yml create mode 100644 tests/modules/picard/addorreplacereadgroups/main.nf create mode 100644 tests/modules/picard/addorreplacereadgroups/nextflow.config create mode 100644 tests/modules/picard/addorreplacereadgroups/test.yml diff --git a/modules/picard/addorreplacereadgroups/main.nf b/modules/picard/addorreplacereadgroups/main.nf new file mode 100644 index 00000000..8e1d10af --- /dev/null +++ b/modules/picard/addorreplacereadgroups/main.nf @@ -0,0 +1,53 @@ +process PICARD_ADDORREPLACEREADGROUPS { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::picard=2.26.9" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/picard:2.26.9--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.26.9--hdfd78af_0' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("*.bam"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def ID = task.ext.id ?: "id" + def LIBRARY= task.ext.library ?: "library" + def PLATFORM= task.ext.platform ?: "illumina" + def BARCODE= task.ext.barcode ?: "barcode" + def SAMPLE= task.ext.sample ?: "sample" + def INDEX= task.ext.index ?: "index" + def avail_mem = 3 + if (!task.memory) { + log.info '[Picard AddOrReplaceReadGroups] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + picard \\ + AddOrReplaceReadGroups \\ + -Xmx${avail_mem}g \\ + --INPUT ${bam} \\ + --OUTPUT ${prefix}.bam \\ + -ID ${ID} \\ + -LB ${LIBRARY} \\ + -PL ${PLATFORM} \\ + -PU ${BARCODE} \\ + -SM ${SAMPLE} \\ + -CREATE_INDEX true + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(picard AddOrReplaceReadGroups --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ +} diff --git a/modules/picard/addorreplacereadgroups/meta.yml b/modules/picard/addorreplacereadgroups/meta.yml new file mode 100644 index 00000000..bdb5725c --- /dev/null +++ b/modules/picard/addorreplacereadgroups/meta.yml @@ -0,0 +1,46 @@ +name: picard_addorreplacereadgroups +description: Assigns all the reads in a file to a single new read-group +keywords: + - add + - replace + - read-group +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://gatk.broadinstitute.org/hc/en-us/articles/360037226472-AddOrReplaceReadGroups-Picard- + tool_dev_url: https://github.com/broadinstitute/picard + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Input BAM file + pattern: "*.{bam}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bam: + type: file + description: Output BAM file + pattern: "*.{bam}" + +authors: + - "@sateeshperi" + - "@mjcipriano" + - "@hseabolt" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 3d857d2c..e6773293 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1157,6 +1157,10 @@ phyloflash: - modules/phyloflash/** - tests/modules/phyloflash/** +picard/addorreplacereadgroups: + - modules/picard/addorreplacereadgroups/** + - tests/modules/picard/addorreplacereadgroups/** + picard/cleansam: - modules/picard/cleansam/** - tests/modules/picard/cleansam/** diff --git a/tests/modules/picard/addorreplacereadgroups/main.nf b/tests/modules/picard/addorreplacereadgroups/main.nf new file mode 100644 index 00000000..d5148c36 --- /dev/null +++ b/tests/modules/picard/addorreplacereadgroups/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PICARD_ADDORREPLACEREADGROUPS } from '../../../../modules/picard/addorreplacereadgroups/main.nf' + +workflow test_picard_addorreplacereadgroups { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + PICARD_ADDORREPLACEREADGROUPS ( input ) +} diff --git a/tests/modules/picard/addorreplacereadgroups/nextflow.config b/tests/modules/picard/addorreplacereadgroups/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/picard/addorreplacereadgroups/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/picard/addorreplacereadgroups/test.yml b/tests/modules/picard/addorreplacereadgroups/test.yml new file mode 100644 index 00000000..aa1536bb --- /dev/null +++ b/tests/modules/picard/addorreplacereadgroups/test.yml @@ -0,0 +1,10 @@ +- name: picard addorreplacereadgroups test_picard_addorreplacereadgroups + command: nextflow run tests/modules/picard/addorreplacereadgroups -entry test_picard_addorreplacereadgroups -c tests/config/nextflow.config + tags: + - picard + - picard/addorreplacereadgroups + files: + - path: output/picard/test.bam + md5sum: 7b82f3461c2d80fc6a10385e78c9427f + - path: output/picard/versions.yml + md5sum: 8a2d176295e1343146ea433c79bb517f From 15d39f841af22581cfa472eafea37810dc6293c1 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Sat, 19 Feb 2022 16:02:23 -0700 Subject: [PATCH 044/592] add amrfinderplus module (#1284) * add amrfinderplus module * Update test.yml * Update main.nf * Update main.nf * Update test.yml * Update test.yml * Update test.yml * Update main.nf * Update meta.yml * Update meta.yml * Update main.nf * Update test.yml * Update test.yml --- modules/amrfinderplus/run/main.nf | 55 +++++++++++++++++++ modules/amrfinderplus/run/meta.yml | 51 +++++++++++++++++ modules/amrfinderplus/update/main.nf | 29 ++++++++++ modules/amrfinderplus/update/meta.yml | 37 +++++++++++++ tests/config/pytest_modules.yml | 8 +++ tests/modules/amrfinderplus/run/main.nf | 17 ++++++ .../modules/amrfinderplus/run/nextflow.config | 5 ++ tests/modules/amrfinderplus/run/test.yml | 11 ++++ tests/modules/amrfinderplus/update/main.nf | 11 ++++ .../amrfinderplus/update/nextflow.config | 5 ++ tests/modules/amrfinderplus/update/test.yml | 9 +++ 11 files changed, 238 insertions(+) create mode 100644 modules/amrfinderplus/run/main.nf create mode 100644 modules/amrfinderplus/run/meta.yml create mode 100644 modules/amrfinderplus/update/main.nf create mode 100644 modules/amrfinderplus/update/meta.yml create mode 100644 tests/modules/amrfinderplus/run/main.nf create mode 100644 tests/modules/amrfinderplus/run/nextflow.config create mode 100644 tests/modules/amrfinderplus/run/test.yml create mode 100644 tests/modules/amrfinderplus/update/main.nf create mode 100644 tests/modules/amrfinderplus/update/nextflow.config create mode 100644 tests/modules/amrfinderplus/update/test.yml diff --git a/modules/amrfinderplus/run/main.nf b/modules/amrfinderplus/run/main.nf new file mode 100644 index 00000000..47a8fb46 --- /dev/null +++ b/modules/amrfinderplus/run/main.nf @@ -0,0 +1,55 @@ +process AMRFINDERPLUS_RUN { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::ncbi-amrfinderplus=3.10.23" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ncbi-amrfinderplus%3A3.10.23--h17dc2d4_0': + 'quay.io/biocontainers/ncbi-amrfinderplus:3.10.23--h17dc2d4_0' }" + + input: + tuple val(meta), path(fasta) + path db + + output: + tuple val(meta), path("${prefix}.tsv") , emit: report + tuple val(meta), path("${prefix}-mutations.tsv"), emit: mutation_report, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def is_compressed = fasta.getName().endsWith(".gz") ? true : false + prefix = task.ext.prefix ?: "${meta.id}" + organism_param = meta.containsKey("organism") ? "--organism ${meta.organism} --mutation_all ${prefix}-mutations.tsv" : "" + fasta_name = fasta.getName().replace(".gz", "") + fasta_param = "-n" + if (meta.containsKey("is_proteins")) { + if (meta.is_proteins) { + fasta_param = "-p" + } + } + """ + if [ "$is_compressed" == "true" ]; then + gzip -c -d $fasta > $fasta_name + fi + + mkdir amrfinderdb + tar xzvf $db -C amrfinderdb + + amrfinder \\ + $fasta_param $fasta_name \\ + $organism_param \\ + $args \\ + --database amrfinderdb \\ + --threads $task.cpus > ${prefix}.tsv + + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + amrfinderplus: \$(amrfinder --version) + END_VERSIONS + """ +} diff --git a/modules/amrfinderplus/run/meta.yml b/modules/amrfinderplus/run/meta.yml new file mode 100644 index 00000000..b0f3b8fa --- /dev/null +++ b/modules/amrfinderplus/run/meta.yml @@ -0,0 +1,51 @@ +name: amrfinderplus_run +description: Identify antimicrobial resistance in gene or protein sequences +keywords: + - bacteria + - fasta + - antibiotic resistance +tools: + - amrfinderplus: + description: AMRFinderPlus finds antimicrobial resistance and other genes in protein or nucleotide sequences. + homepage: https://github.com/ncbi/amr/wiki + documentation: https://github.com/ncbi/amr/wiki + tool_dev_url: https://github.com/ncbi/amr + doi: "10.1038/s41598-021-91456-0" + licence: ['Public Domain'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Nucleotide or protein sequences in FASTA format + pattern: "*.{fasta,fasta.gz,fa,fa.gz,fna,fna.gz,faa,faa.gz}" + - db: + type: file + description: A compressed tarball of the AMRFinderPlus database to query + pattern: "*.tar.gz" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - report: + type: file + description: AMRFinder+ final report + pattern: "*.tsv" + - mutation_report: + type: file + description: Report of organism-specific point-mutations + pattern: "*-mutations.tsv" + +authors: + - "@rpetit3" diff --git a/modules/amrfinderplus/update/main.nf b/modules/amrfinderplus/update/main.nf new file mode 100644 index 00000000..ad09c391 --- /dev/null +++ b/modules/amrfinderplus/update/main.nf @@ -0,0 +1,29 @@ +process AMRFINDERPLUS_UPDATE { + tag "update" + label 'process_low' + + conda (params.enable_conda ? "bioconda::ncbi-amrfinderplus=3.10.23" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ncbi-amrfinderplus%3A3.10.23--h17dc2d4_0': + 'quay.io/biocontainers/ncbi-amrfinderplus:3.10.23--h17dc2d4_0' }" + + output: + path "amrfinderdb.tar.gz", emit: db + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + mkdir amrfinderdb + amrfinder_update -d amrfinderdb + tar czvf amrfinderdb.tar.gz -C \$(readlink amrfinderdb/latest) ./ + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + amrfinderplus: \$(amrfinder --version) + END_VERSIONS + """ +} diff --git a/modules/amrfinderplus/update/meta.yml b/modules/amrfinderplus/update/meta.yml new file mode 100644 index 00000000..84fee3df --- /dev/null +++ b/modules/amrfinderplus/update/meta.yml @@ -0,0 +1,37 @@ +name: amrfinderplus_update +description: Identify antimicrobial resistance in gene or protein sequences +keywords: + - bacteria + - fasta + - antibiotic resistance +tools: + - amrfinderplus: + description: AMRFinderPlus finds antimicrobial resistance and other genes in protein or nucleotide sequences. + homepage: https://github.com/ncbi/amr/wiki + documentation: https://github.com/ncbi/amr/wiki + tool_dev_url: https://github.com/ncbi/amr + doi: "10.1038/s41598-021-91456-0" + licence: ['Public Domain'] + +input: + - input_not_required: + type: null + description: module does not have an input + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - db: + type: file + description: The latest AMRFinder+ database in a compressed tarball + pattern: "*.tar.gz" + +authors: + - "@rpetit3" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index e6773293..93903a65 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -26,6 +26,14 @@ amps: - modules/amps/** - tests/modules/amps/** +amrfinderplus/run: + - modules/amrfinderplus/run/** + - tests/modules/amrfinderplus/run/** + +amrfinderplus/update: + - modules/amrfinderplus/update/** + - tests/modules/amrfinderplus/update/** + arriba: - modules/arriba/** - tests/modules/arriba/** diff --git a/tests/modules/amrfinderplus/run/main.nf b/tests/modules/amrfinderplus/run/main.nf new file mode 100644 index 00000000..917ac28d --- /dev/null +++ b/tests/modules/amrfinderplus/run/main.nf @@ -0,0 +1,17 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { AMRFINDERPLUS_UPDATE } from '../../../../modules/amrfinderplus/update/main.nf' +include { AMRFINDERPLUS_RUN } from '../../../../modules/amrfinderplus/run/main.nf' + +workflow test_amrfinderplus_run { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['haemophilus_influenzae']['genome']['genome_fna_gz'], checkIfExists: true) + ] + + AMRFINDERPLUS_UPDATE ( ) + AMRFINDERPLUS_RUN ( input, AMRFINDERPLUS_UPDATE.out.db ) +} diff --git a/tests/modules/amrfinderplus/run/nextflow.config b/tests/modules/amrfinderplus/run/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/amrfinderplus/run/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/amrfinderplus/run/test.yml b/tests/modules/amrfinderplus/run/test.yml new file mode 100644 index 00000000..d858cb88 --- /dev/null +++ b/tests/modules/amrfinderplus/run/test.yml @@ -0,0 +1,11 @@ +- name: amrfinderplus run test_amrfinderplus_run + command: nextflow run tests/modules/amrfinderplus/run -entry test_amrfinderplus_run -c tests/config/nextflow.config + tags: + - amrfinderplus/run + - amrfinderplus + files: + - path: output/amrfinderplus/amrfinderdb.tar.gz + - path: output/amrfinderplus/test.tsv + md5sum: b4d261ace9be7d013c19d1f5c0005bfe + - path: output/amrfinderplus/versions.yml + md5sum: 642ca04a07d79fe4c4d02348562e3961 diff --git a/tests/modules/amrfinderplus/update/main.nf b/tests/modules/amrfinderplus/update/main.nf new file mode 100644 index 00000000..f3a34ea0 --- /dev/null +++ b/tests/modules/amrfinderplus/update/main.nf @@ -0,0 +1,11 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { AMRFINDERPLUS_UPDATE } from '../../../../modules/amrfinderplus/update/main.nf' + +workflow test_amrfinderplus_update { + + AMRFINDERPLUS_UPDATE ( ) + +} diff --git a/tests/modules/amrfinderplus/update/nextflow.config b/tests/modules/amrfinderplus/update/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/amrfinderplus/update/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/amrfinderplus/update/test.yml b/tests/modules/amrfinderplus/update/test.yml new file mode 100644 index 00000000..7ae89992 --- /dev/null +++ b/tests/modules/amrfinderplus/update/test.yml @@ -0,0 +1,9 @@ +- name: amrfinderplus update test_amrfinderplus_update + command: nextflow run tests/modules/amrfinderplus/update -entry test_amrfinderplus_update -c tests/config/nextflow.config + tags: + - amrfinderplus + - amrfinderplus/update + files: + - path: output/amrfinderplus/amrfinderdb.tar.gz + - path: output/amrfinderplus/versions.yml + md5sum: 4db18fa509309db4da0920a7eeaba86c From 2597c31d6bba4a354fc58b535c76bd14aed1c585 Mon Sep 17 00:00:00 2001 From: Mei Wu <25568561+projectoriented@users.noreply.github.com> Date: Mon, 21 Feb 2022 11:49:21 +0100 Subject: [PATCH 045/592] refactored vcfanno (#1266) * final refactor: using tarball instead --- modules/vcfanno/main.nf | 15 +++++++++----- modules/vcfanno/meta.yml | 26 +++++++++++++---------- tests/config/test_data.config | 4 +++- tests/modules/vcfanno/main.nf | 30 +++++++++++++++++++++++---- tests/modules/vcfanno/nextflow.config | 2 +- tests/modules/vcfanno/test.yml | 18 ++++++++++++++-- 6 files changed, 71 insertions(+), 24 deletions(-) diff --git a/modules/vcfanno/main.nf b/modules/vcfanno/main.nf index 77275963..51b1ec5b 100644 --- a/modules/vcfanno/main.nf +++ b/modules/vcfanno/main.nf @@ -9,11 +9,13 @@ process VCFANNO { input: tuple val(meta), path(vcf), path(tbi) - path vcfanno_config + tuple val(meta), path(vcf_uncompressed) + path toml + path resource_dir output: - tuple val(meta), path("*.vcf"), emit: vcf - path "versions.yml" , emit: versions + tuple val(meta), path("*_annotated.vcf"), emit: vcf + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -21,12 +23,15 @@ process VCFANNO { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def input_vcf = vcf_uncompressed ?: vcf """ + ln -sf $resource_dir/* \$(pwd) + vcfanno \\ -p $task.cpus \\ $args \\ - $vcfanno_config \\ - $vcf \\ + $toml \\ + $input_vcf \\ > ${prefix}_annotated.vcf cat <<-END_VERSIONS > versions.yml diff --git a/modules/vcfanno/meta.yml b/modules/vcfanno/meta.yml index bbd2ab16..1c6893ea 100644 --- a/modules/vcfanno/meta.yml +++ b/modules/vcfanno/meta.yml @@ -5,6 +5,8 @@ keywords: - bed - annotate - variant + - lua + - toml tools: - vcfanno: description: annotate a VCF with other VCFs/BEDs/tabixed files @@ -23,19 +25,21 @@ input: - vcf: type: file description: query VCF file - pattern: "*.{vcf.gz}" - - vcf.tbi: + pattern: "*.{vcf, vcf.gz}" + - vcf_tabix: type: file - description: query VCF file index - pattern: "*.{vcf.gz.tbi}" - - vcfanno_config: + description: tabix index of query VCF - only needed if vcf is compressed + pattern: "*.vcf.gz.tbi" + - toml: + type: file + description: configuration file + pattern: "*.toml" + - resource_dir: type: file description: | - A simple configuration file is used to specify both the source files - and the set of attributes (in the case of VCF) - or columns (in the case of BED or other tab-delimited formats) - that should be added to the query file. - pattern: "*.{toml}" + This directory contains referenced files in the TOML config, + and the corresponding indicies e.g. exac.vcf.gz + exac.vcf.gz.tbi, + with exception to the lua file. output: - meta: @@ -50,7 +54,7 @@ output: - vcf: type: file description: Annotated VCF file - pattern: "*.{vcf}" + pattern: "*.vcf" authors: - "@projectoriented" diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 165e8449..e28b0cb0 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -154,7 +154,9 @@ params { justhusky_ped = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/ped/justhusky.ped" justhusky_minimal_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/ped/justhusky_minimal.vcf.gz" justhusky_minimal_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/ped/justhusky_minimal.vcf.gz.tbi" - + + vcfanno_tar_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/vcfanno/vcfanno_grch38_module_test.tar.gz" + vcfanno_toml = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/vcfanno/vcfanno.toml" } 'pangenome' { pangenome_fa = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.fa" diff --git a/tests/modules/vcfanno/main.nf b/tests/modules/vcfanno/main.nf index c46afa8f..045ffa31 100644 --- a/tests/modules/vcfanno/main.nf +++ b/tests/modules/vcfanno/main.nf @@ -2,18 +2,40 @@ nextflow.enable.dsl = 2 +include { UNTAR } from '../../../modules/untar/main.nf' include { VCFANNO } from '../../../modules/vcfanno/main.nf' workflow test_vcfanno { input = [ - [ id:'test', single_end:false ], // meta map + [ id:'test_compressed', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true) ] + + input_2 = [ [ id:'test_compressed', single_end:false ], // meta map + [] ] - toml = file("https://raw.githubusercontent.com/nf-core/test-datasets/8fbd9f99a2feb3f9e39cd3bcdc4a9176a5835673/data/delete_me/vcfanno.toml", - checkIfExists: true) + toml = file(params.test_data['homo_sapiens']['genome']['vcfanno_toml'], checkIfExists: true) + resource_dir = file(params.test_data['homo_sapiens']['genome']['vcfanno_tar_gz'], checkIfExists: true) - VCFANNO ( input, toml ) + UNTAR ( resource_dir ) + VCFANNO ( input, input_2, toml, UNTAR.out.untar ) } + +workflow test_vcfanno_uncompressed { + + input = [ [ id:'test_uncompressed', single_end:false ], // meta map + [] ,[] ] + + input_2 = [ + [ id:'test_uncompressed', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) + ] + + toml = file(params.test_data['homo_sapiens']['genome']['vcfanno_toml'], checkIfExists: true) + resource_dir = file(params.test_data['homo_sapiens']['genome']['vcfanno_tar_gz'], checkIfExists: true) + + UNTAR ( resource_dir ) + VCFANNO ( input, input_2, toml, UNTAR.out.untar ) +} \ No newline at end of file diff --git a/tests/modules/vcfanno/nextflow.config b/tests/modules/vcfanno/nextflow.config index 50f50a7a..ac724a73 100644 --- a/tests/modules/vcfanno/nextflow.config +++ b/tests/modules/vcfanno/nextflow.config @@ -1,5 +1,5 @@ process { - + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } } \ No newline at end of file diff --git a/tests/modules/vcfanno/test.yml b/tests/modules/vcfanno/test.yml index 0b5394d2..eae5d3b0 100644 --- a/tests/modules/vcfanno/test.yml +++ b/tests/modules/vcfanno/test.yml @@ -3,7 +3,21 @@ tags: - vcfanno files: - - path: output/vcfanno/test_annotated.vcf - md5sum: 34259cf6b0a4698a2917ad3554b50c0f + - path: output/untar/versions.yml + md5sum: 6de038155bccbe4d264d09529bf9f4d8 + - path: output/vcfanno/test_compressed_annotated.vcf + md5sum: 90ceb2fd2e06e781846d69c3981db665 - path: output/vcfanno/versions.yml md5sum: 62d13540503b22f04a2280c91942cb03 + +- name: vcfanno test_vcfanno_uncompressed + command: nextflow run tests/modules/vcfanno -entry test_vcfanno_uncompressed -c tests/config/nextflow.config + tags: + - vcfanno + files: + - path: output/untar/versions.yml + md5sum: a0de70274caac0cca31b077a1e7172d9 + - path: output/vcfanno/test_uncompressed_annotated.vcf + md5sum: 90ceb2fd2e06e781846d69c3981db665 + - path: output/vcfanno/versions.yml + md5sum: 300218dad68c3ffcc4783daa4f7c5a43 From 4dbc166a7c30e963511fb5c9870fbcaa158a53a9 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Mon, 21 Feb 2022 13:26:51 +0000 Subject: [PATCH 046/592] Change label for rseqc/tin to process_high (#1327) --- modules/rseqc/tin/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rseqc/tin/main.nf b/modules/rseqc/tin/main.nf index da58fc06..67493371 100644 --- a/modules/rseqc/tin/main.nf +++ b/modules/rseqc/tin/main.nf @@ -1,6 +1,6 @@ process RSEQC_TIN { tag "$meta.id" - label 'process_medium' + label 'process_high' conda (params.enable_conda ? "bioconda::rseqc=3.0.1 'conda-forge::r-base>=3.5'" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? From 2383d43a0fdfdfb1fe15128ad8723b9f6f40d5cc Mon Sep 17 00:00:00 2001 From: nickhsmith Date: Tue, 22 Feb 2022 14:25:36 +0100 Subject: [PATCH 047/592] update priority (#1334) bumping the base resource label --- modules/gatk4/genotypegvcfs/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gatk4/genotypegvcfs/main.nf b/modules/gatk4/genotypegvcfs/main.nf index b596e005..4a42ad0a 100644 --- a/modules/gatk4/genotypegvcfs/main.nf +++ b/modules/gatk4/genotypegvcfs/main.nf @@ -1,6 +1,6 @@ process GATK4_GENOTYPEGVCFS { tag "$meta.id" - label 'process_medium' + label 'process_high' conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? From f9d25aad7fd6e9896b35552df3529e184c67ebc2 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 23 Feb 2022 10:59:24 +0100 Subject: [PATCH 048/592] Switch to native mandatory gzipped reading for hmmalign (#1343) * fix: remove left-over unnecessary code * Update main.nf * Update hmmer/hmmalign command to natively accept gzipped input * Making @drpatelh happy Co-authored-by: Moritz E. Beber Co-authored-by: Moritz E. Beber --- modules/hmmer/hmmalign/main.nf | 6 ++---- modules/hmmer/hmmalign/meta.yml | 9 +++++---- tests/modules/hmmer/hmmalign/main.nf | 4 ++-- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/hmmer/hmmalign/main.nf b/modules/hmmer/hmmalign/main.nf index d3df3c89..f8156e04 100644 --- a/modules/hmmer/hmmalign/main.nf +++ b/modules/hmmer/hmmalign/main.nf @@ -21,13 +21,11 @@ process HMMER_HMMALIGN { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def fastacmd = fasta.getExtension() == 'gz' ? "gunzip -c $fasta" : "cat $fasta" """ - $fastacmd | \\ - hmmalign \\ + hmmalign \\ $args \\ $hmm \\ - - | gzip -c > ${meta.id}.sthlm.gz + $fasta | gzip -c > ${meta.id}.sthlm.gz cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/hmmer/hmmalign/meta.yml b/modules/hmmer/hmmalign/meta.yml index 296826d4..6c501120 100644 --- a/modules/hmmer/hmmalign/meta.yml +++ b/modules/hmmer/hmmalign/meta.yml @@ -19,12 +19,12 @@ input: e.g. [ id:'test' ] - fasta: type: file - description: Amino acid or nucleotide fasta file, gzipped or not - pattern: "*.{fna,fna.gz,faa,faa.gz,fasta,fasta.gz,fa,fa.gz}" + description: Amino acid or nucleotide gzipped compressed fasta file + pattern: "*.{fna.gz,faa.gz,fasta.gz,fa.gz}" - hmm: type: file - description: HMM file - pattern: "*.hmm" + description: A gzipped HMM file + pattern: "*.hmm.gz" output: - meta: @@ -43,3 +43,4 @@ output: authors: - "@erikrikarddaniel" + - "@jfy133" diff --git a/tests/modules/hmmer/hmmalign/main.nf b/tests/modules/hmmer/hmmalign/main.nf index 8758b124..0a462a7a 100644 --- a/tests/modules/hmmer/hmmalign/main.nf +++ b/tests/modules/hmmer/hmmalign/main.nf @@ -8,10 +8,10 @@ workflow test_hmmer_hmmalign { input = [ [ id:'test' ], // meta map - file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/e_coli_k12_16s.fna') // Change to params.test_data syntax after the data is included in tests/config/test_data.config + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/hmmer/e_coli_k12_16s.fna.gz') // Change to params.test_data syntax after the data is included in tests/config/test_data.config ] - hmm = file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/bac.16S_rRNA.hmm') + hmm = file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/hmmer/bac.16S_rRNA.hmm.gz') HMMER_HMMALIGN ( input, hmm ) } From 938387d10d5736fb6e51f54cd2c86349cedc74e2 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 23 Feb 2022 15:32:33 +0100 Subject: [PATCH 049/592] feat: add hmmsearch module and tests (#1273) * feat: add hmmsearch module and tests * chore: set medium resource requirements * tests: look for correct output * fix: add when condition * Apply suggestions to meta.yml Co-authored-by: James A. Fellows Yates * refactor: create gzip compressed output * docs: describe compressed in-/output Co-authored-by: James A. Fellows Yates --- modules/hmmer/hmmsearch/main.nf | 51 ++++++++++++++ modules/hmmer/hmmsearch/meta.yml | 69 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/hmmer/hmmsearch/main.nf | 33 +++++++++ tests/modules/hmmer/hmmsearch/nextflow.config | 5 ++ tests/modules/hmmer/hmmsearch/test.yml | 31 +++++++++ 6 files changed, 193 insertions(+) create mode 100644 modules/hmmer/hmmsearch/main.nf create mode 100644 modules/hmmer/hmmsearch/meta.yml create mode 100644 tests/modules/hmmer/hmmsearch/main.nf create mode 100644 tests/modules/hmmer/hmmsearch/nextflow.config create mode 100644 tests/modules/hmmer/hmmsearch/test.yml diff --git a/modules/hmmer/hmmsearch/main.nf b/modules/hmmer/hmmsearch/main.nf new file mode 100644 index 00000000..3a2d15b7 --- /dev/null +++ b/modules/hmmer/hmmsearch/main.nf @@ -0,0 +1,51 @@ +process HMMER_HMMSEARCH { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::hmmer=3.3.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/hmmer:3.3.2--h1b792b2_1' : + 'quay.io/biocontainers/hmmer:3.3.2--h1b792b2_1' }" + + input: + tuple val(meta), path(hmmfile), path(seqdb), val(write_align), val(write_target), val(write_domain) + + output: + tuple val(meta), path('*.txt.gz') , emit: output + tuple val(meta), path('*.sto.gz') , emit: alignments , optional: true + tuple val(meta), path('*.tbl.gz') , emit: target_summary, optional: true + tuple val(meta), path('*.domtbl.gz'), emit: domain_summary, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + output = "${prefix}.txt" + alignment = write_align ? "-A ${prefix}.sto" : '' + target_summary = write_target ? "--tblout ${prefix}.tbl" : '' + domain_summary = write_domain ? "--domtblout ${prefix}.domtbl" : '' + """ + hmmsearch \\ + $args \\ + --cpu $task.cpus \\ + -o $output \\ + $alignment \\ + $target_summary \\ + $domain_summary \\ + $hmmfile \\ + $seqdb + + gzip --no-name *.txt \\ + ${write_align ? '*.sto' : ''} \\ + ${write_target ? '*.tbl' : ''} \\ + ${write_domain ? '*.domtbl' : ''} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + hmmer: \$(hmmsearch -h | grep -o '^# HMMER [0-9.]*' | sed 's/^# HMMER *//') + END_VERSIONS + """ +} diff --git a/modules/hmmer/hmmsearch/meta.yml b/modules/hmmer/hmmsearch/meta.yml new file mode 100644 index 00000000..b315d668 --- /dev/null +++ b/modules/hmmer/hmmsearch/meta.yml @@ -0,0 +1,69 @@ +name: hmmer_hmmsearch +description: search profile(s) against a sequence database +keywords: + - hidden Markov model + - HMM + - hmmer + - hmmsearch +tools: + - hmmer: + description: Biosequence analysis using profile hidden Markov models + homepage: http://hmmer.org/ + documentation: http://hmmer.org/documentation.html + tool_dev_url: https://github.com/EddyRivasLab/hmmer + doi: "10.1371/journal.pcbi.1002195" + licence: ['BSD'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - hmmfile: + type: file + description: One or more HMM profiles created with hmmbuild + pattern: "*.{hmm,hmm.gz}" + - seqdb: + type: file + description: Database of sequences in FASTA format + pattern: "*.{fasta,fna,faa,fa,fasta.gz,fna.gz,faa.gz,fa.gz}" + - write_align: + type: val + description: Flag to write optional alignment output. Specify with 'true' to output + - write_target: + type: val + description: Flag to write optional per target summary . Specify with 'true' to output + - write_domain: + type: val + description: Flag to write optional per domain summary. Specify with 'true' to output + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - output: + type: file + description: Human readable output summarizing hmmsearch results + pattern: "*.{txt.gz}" + - alignments: + type: file + description: Optional multiple sequence alignment (MSA) in Stockholm format + pattern: "*.{sto.gz}" + - target_summary: + type: file + description: Optional tabular (space-delimited) summary of per-target output + pattern: "*.{tbl.gz}" + - domain_summary: + type: file + description: Optional tabular (space-delimited) summary of per-domain output + pattern: "*.{domtbl.gz}" + +authors: + - "@Midnighter" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 93903a65..ddf496b0 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -775,6 +775,10 @@ hmmer/hmmalign: - modules/hmmer/hmmalign/** - tests/modules/hmmer/hmmalign/** +hmmer/hmmsearch: + - modules/hmmer/hmmsearch/** + - tests/modules/hmmer/hmmsearch/** + homer/annotatepeaks: - modules/homer/annotatepeaks/** - tests/modules/homer/annotatepeaks/** diff --git a/tests/modules/hmmer/hmmsearch/main.nf b/tests/modules/hmmer/hmmsearch/main.nf new file mode 100644 index 00000000..b181a529 --- /dev/null +++ b/tests/modules/hmmer/hmmsearch/main.nf @@ -0,0 +1,33 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { HMMER_HMMSEARCH } from '../../../../modules/hmmer/hmmsearch/main.nf' + +workflow test_hmmer_hmmsearch { + + input = [ + [ id:'test', single_end:false ], // meta map + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/hmmer/bac.16S_rRNA.hmm.gz', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/hmmer/e_coli_k12_16s.fna.gz', checkIfExists: true), + false, + false, + false + ] + + HMMER_HMMSEARCH ( input ) +} + +workflow test_hmmer_hmmsearch_optional { + + input = [ + [ id:'test', single_end:false ], // meta map + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/hmmer/bac.16S_rRNA.hmm.gz', checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/hmmer/e_coli_k12_16s.fna.gz', checkIfExists: true), + true, + true, + true + ] + + HMMER_HMMSEARCH ( input ) +} diff --git a/tests/modules/hmmer/hmmsearch/nextflow.config b/tests/modules/hmmer/hmmsearch/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/hmmer/hmmsearch/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/hmmer/hmmsearch/test.yml b/tests/modules/hmmer/hmmsearch/test.yml new file mode 100644 index 00000000..91e4775c --- /dev/null +++ b/tests/modules/hmmer/hmmsearch/test.yml @@ -0,0 +1,31 @@ +- name: hmmer hmmsearch test_hmmer_hmmsearch + command: nextflow run tests/modules/hmmer/hmmsearch -entry test_hmmer_hmmsearch -c tests/config/nextflow.config + tags: + - hmmer/hmmsearch + - hmmer + files: + - path: output/hmmer/test.txt.gz + contains: + - '[ok]' + - path: output/hmmer/versions.yml + md5sum: ed0808c10abd205c6bd0fb01f45259bb + +- name: hmmer hmmsearch test_hmmer_hmmsearch_optional + command: nextflow run tests/modules/hmmer/hmmsearch -entry test_hmmer_hmmsearch_optional -c tests/config/nextflow.config + tags: + - hmmer/hmmsearch + - hmmer + files: + - path: output/hmmer/test.sto.gz + md5sum: d3121aa33455074c566fb7f8fdcda7b0 + - path: output/hmmer/test.domtbl.gz + contains: + - '# [ok]' + - path: output/hmmer/test.tbl.gz + contains: + - '# [ok]' + - path: output/hmmer/test.txt.gz + contains: + - '[ok]' + - path: output/hmmer/versions.yml + md5sum: ebdcb08ae540e840f7b5c4c75a3a2993 From a25423dbb974e2e69268b5cdbc12e5bc1558e053 Mon Sep 17 00:00:00 2001 From: Sateesh <33637490+sateeshperi@users.noreply.github.com> Date: Wed, 23 Feb 2022 10:29:29 -0500 Subject: [PATCH 050/592] Gatk4 combinegvcfs (#1342) * add gatk4/combinegvcfs module * update gatk4/combinegvcfs * loop to create a string adding -V to each vcf file * add contains for variable md5 * rm whitespace * meta in output * fix indentations * fix indentations * move tmpdir to args and update conda version Co-authored-by: Peri Co-authored-by: Maxime U. Garcia --- modules/gatk4/combinegvcfs/main.nf | 47 ++++++++++++++++ modules/gatk4/combinegvcfs/meta.yml | 54 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/gatk4/combinegvcfs/main.nf | 24 +++++++++ .../gatk4/combinegvcfs/nextflow.config | 6 +++ tests/modules/gatk4/combinegvcfs/test.yml | 10 ++++ 6 files changed, 145 insertions(+) create mode 100644 modules/gatk4/combinegvcfs/main.nf create mode 100644 modules/gatk4/combinegvcfs/meta.yml create mode 100644 tests/modules/gatk4/combinegvcfs/main.nf create mode 100644 tests/modules/gatk4/combinegvcfs/nextflow.config create mode 100644 tests/modules/gatk4/combinegvcfs/test.yml diff --git a/modules/gatk4/combinegvcfs/main.nf b/modules/gatk4/combinegvcfs/main.nf new file mode 100644 index 00000000..c0a7ac45 --- /dev/null +++ b/modules/gatk4/combinegvcfs/main.nf @@ -0,0 +1,47 @@ +process GATK4_COMBINEGVCFS { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + + input: + tuple val(meta), path(vcf), path(vcf_idx) + path (fasta) + path (fasta_fai) + path (fasta_dict) + + output: + tuple val(meta), path("*.combined.g.vcf.gz"), emit: combined_gvcf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 + if (!task.memory) { + log.info '[GATK COMBINEGVCFS] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + def input_files = vcf.collect{"-V ${it}"}.join(' ') // add '-V' to each vcf file + """ + gatk \\ + --java-options "-Xmx${avail_mem}g" \\ + CombineGVCFs \\ + -R ${fasta} \\ + -O ${prefix}.combined.g.vcf.gz \\ + ${args} \\ + ${input_files} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/gatk4/combinegvcfs/meta.yml b/modules/gatk4/combinegvcfs/meta.yml new file mode 100644 index 00000000..2e0198dd --- /dev/null +++ b/modules/gatk4/combinegvcfs/meta.yml @@ -0,0 +1,54 @@ +name: gatk4_combinegvcfs +description: Combine per-sample gVCF files produced by HaplotypeCaller into a multi-sample gVCF file +keywords: + - gvcf + - gatk4 + - vcf + - combinegvcfs + - Short_Variant_Discovery +tools: + - gatk4: + description: Genome Analysis Toolkit (GATK4). Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360037593911-CombineGVCFs + tool_dev_url: https://github.com/broadinstitute/gatk + doi: 10.1158/1538-7445.AM2017-3590 + licence: ['Apache-2.0'] + +input: + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" + - fai: + type: file + description: FASTA index file + pattern: "*.{fai}" + - dict: + type: file + description: FASTA dictionary file + pattern: "*.{dict}" + - vcf: + type: file + description: Compressed VCF files + pattern: "*.vcf.gz" + - vcf_idx: + type: file + description: VCF Index file + pattern: "*.{fai}" +output: + - gvcf: + type: file + description: Compressed Combined GVCF file + pattern: "*.combined.g.vcf.gz" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@sateeshperi" + - "@mjcipriano" + - "@hseabolt" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index ddf496b0..05d32cf8 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -576,6 +576,10 @@ gatk4/calculatecontamination: - modules/gatk4/calculatecontamination/** - tests/modules/gatk4/calculatecontamination/** +gatk4/combinegvcfs: + - modules/gatk4/combinegvcfs/** + - tests/modules/gatk4/combinegvcfs/** + gatk4/createsequencedictionary: - modules/gatk4/createsequencedictionary/** - tests/modules/gatk4/createsequencedictionary/** diff --git a/tests/modules/gatk4/combinegvcfs/main.nf b/tests/modules/gatk4/combinegvcfs/main.nf new file mode 100644 index 00000000..50d42625 --- /dev/null +++ b/tests/modules/gatk4/combinegvcfs/main.nf @@ -0,0 +1,24 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_COMBINEGVCFS } from '../../../../modules/gatk4/combinegvcfs/main.nf' + +workflow test_gatk4_combinegvcfs { + + input = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_genome_vcf'], checkIfExists: true) ], + [ file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_idx'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_genome_vcf_idx'], checkIfExists: true) ] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + + fasta_fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + + fasta_dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + + GATK4_COMBINEGVCFS ( input, fasta, fasta_fai, fasta_dict ) +} + diff --git a/tests/modules/gatk4/combinegvcfs/nextflow.config b/tests/modules/gatk4/combinegvcfs/nextflow.config new file mode 100644 index 00000000..573cc13e --- /dev/null +++ b/tests/modules/gatk4/combinegvcfs/nextflow.config @@ -0,0 +1,6 @@ +process { + + ext.args = "--tmp-dir ." + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/gatk4/combinegvcfs/test.yml b/tests/modules/gatk4/combinegvcfs/test.yml new file mode 100644 index 00000000..72d8a6a5 --- /dev/null +++ b/tests/modules/gatk4/combinegvcfs/test.yml @@ -0,0 +1,10 @@ +- name: gatk4 combinegvcfs test_gatk4_combinegvcfs + command: nextflow run tests/modules/gatk4/combinegvcfs -entry test_gatk4_combinegvcfs -c tests/config/nextflow.config + tags: + - gatk4 + - gatk4/combinegvcfs + files: + - path: output/gatk4/test.combined.g.vcf.gz + contains: ['VCFv4.2'] + - path: output/gatk4/versions.yml + md5sum: 49d9c467f84b6a99a4da3ef161af26bd From f144171ddc9c1053ba720b01d9b499e43ab364d7 Mon Sep 17 00:00:00 2001 From: Michael J Cipriano <42848032+mjcipriano@users.noreply.github.com> Date: Wed, 23 Feb 2022 10:30:22 -0500 Subject: [PATCH 051/592] Faqcs (#1339) * Initial module creation * Update test.yml * Update test.yml * Update test.yml * Update meta.yml Co-authored-by: Cipriano Co-authored-by: Maxime U. Garcia --- modules/faqcs/main.nf | 103 ++++++++++++++++++++++++++++ modules/faqcs/meta.yml | 68 ++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/faqcs/main.nf | 30 ++++++++ tests/modules/faqcs/nextflow.config | 5 ++ tests/modules/faqcs/test.yml | 31 +++++++++ 6 files changed, 241 insertions(+) create mode 100644 modules/faqcs/main.nf create mode 100644 modules/faqcs/meta.yml create mode 100644 tests/modules/faqcs/main.nf create mode 100644 tests/modules/faqcs/nextflow.config create mode 100644 tests/modules/faqcs/test.yml diff --git a/modules/faqcs/main.nf b/modules/faqcs/main.nf new file mode 100644 index 00000000..a03a0150 --- /dev/null +++ b/modules/faqcs/main.nf @@ -0,0 +1,103 @@ +process FAQCS { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::faqcs=2.10" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/faqcs%3A2.10--r41h9a82719_2' : + 'quay.io/biocontainers/faqcs:2.10--r41h9a82719_2' }" + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path('*.trimmed.fastq.gz') , emit: reads + tuple val(meta), path('*.stats.txt') , emit: stats + tuple val(meta), path('*_qc_report.pdf') , optional:true, emit: statspdf + tuple val(meta), path('*.log') , emit: log + tuple val(meta), path('*.discard.fastq.gz') , optional:true, emit: reads_fail + tuple val(meta), path('*.trimmed.unpaired.fastq.gz') , optional:true, emit: reads_unpaired + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + // Added soft-links to original fastqs for consistent naming in MultiQC + def prefix = task.ext.prefix ?: "${meta.id}" + if (meta.single_end) { + """ + [ ! -f ${prefix}.fastq.gz ] && ln -s $reads ${prefix}.fastq.gz + FaQCs \\ + -d . \\ + -u ${prefix}.fastq.gz \\ + --prefix ${prefix} \\ + -t $task.cpus \\ + $args \\ + 2> ${prefix}.fastp.log + + + if [[ -f ${prefix}.unpaired.trimmed.fastq ]]; then + mv ${prefix}.unpaired.trimmed.fastq ${prefix}.trimmed.fastq + gzip ${prefix}.trimmed.fastq + fi + if [[ -f ${prefix}.discard.trimmed.fastq ]]; then + mv ${prefix}.discard.trimmed.fastq ${prefix}.trimmed.discard.fastq + gzip ${prefix}.trimmed.discard.fastq + fi + cat <<-END_VERSIONS > versions.yml + "${task.process}": + faqcs: \$(echo \$(FaQCs --version 2>&1) | sed 's/^.*Version: //;' ) + 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 + FaQCs \\ + -d . \\ + -1 ${prefix}_1.fastq.gz \\ + -2 ${prefix}_2.fastq.gz \\ + --prefix ${meta.id} \\ + -t $task.cpus \\ + $args \\ + 2> ${prefix}.fastp.log + + # Unpaired + if [[ -f ${prefix}.unpaired.trimmed.fastq ]]; then + # If it is empty remove it + if [[ ! -s ${prefix}.unpaired.trimmed.fastq ]]; then + rm ${prefix}.unpaired.trimmed.fastq + else + mv ${prefix}.unpaired.trimmed.fastq ${prefix}.trimmed.unpaired.fastq + gzip ${prefix}.trimmed.unpaired.fastq + fi + fi + + # R1 + if [[ -f ${prefix}.1.trimmed.fastq ]]; then + mv ${prefix}.1.trimmed.fastq ${prefix}_1.trimmed.fastq + gzip ${prefix}_1.trimmed.fastq + fi + + # R2 + if [[ -f ${prefix}.2.trimmed.fastq ]]; then + mv ${prefix}.2.trimmed.fastq ${prefix}_2.trimmed.fastq + gzip ${prefix}_2.trimmed.fastq + fi + + # Discarded: Created if --discard argument is passed + if [[ -f ${prefix}.discard.trimmed.fastq ]]; then + mv ${prefix}.discard.trimmed.fastq ${prefix}.trimmed.discard.fastq + gzip ${prefix}.trimmed.discard.fastq + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + faqcs: \$(echo \$(FaQCs --version 2>&1) | sed 's/^.*Version: //;' ) + END_VERSIONS + """ + } +} + diff --git a/modules/faqcs/meta.yml b/modules/faqcs/meta.yml new file mode 100644 index 00000000..eca35e65 --- /dev/null +++ b/modules/faqcs/meta.yml @@ -0,0 +1,68 @@ +name: faqcs +description: Perform adapter and quality trimming on sequencing reads with reporting +keywords: + - trimming + - quality control + - fastq + - faqcs +tools: + - faqcs: + description: | + FaQCs combines several features of currently available applications into a single, user-friendly process, and includes additional unique capabilities such as filtering the PhiX control sequences, conversion of FASTQ formats, and multi-threading. The original data and trimmed summaries are reported within a variety of graphics and reports, providing a simple way to do data quality control and assurance. + homepage: https://github.com/LANL-Bioinformatics/FaQCs + documentation: https://github.com/LANL-Bioinformatics/FaQCs + tool_dev_url: https://github.com/LANL-Bioinformatics/FaQCs + doi: "https://doi.org/10.1186/s12859-014-0366-2" + licence: ['GPLv3 License'] + +## TODO nf-core: Add a description of all of the variables used as input +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - reads: + type: file + description: The trimmed/modified fastq reads + pattern: "*trimmed.fastq.gz" + - reads_fail: + type: file + description: Reads that failed the preprocessing (Optional with --discard args setting) + pattern: "*discard.fastq.gz" + - reads_unpaired: + type: file + description: Reads without matching mates in paired-end files (Optional) + pattern: "*trimmed.unpaired.fastq.gz" + - stats: + type: file + description: trimming/qc text stats file + pattern: "*.stats.txt" + - statspdf: + type: file + description: trimming/qc pdf report file + pattern: "*_qc_report.pdf" + - log: + type: file + description: fastq log file + pattern: "*.log" +authors: + - "@mjcipriano" + - "@sateeshperi" + - "@hseabolt" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 05d32cf8..c1c9032e 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -504,6 +504,10 @@ expansionhunter: - modules/expansionhunter/** - tests/modules/expansionhunter/** +faqcs: + - modules/faqcs/** + - tests/modules/faqcs/** + fargene: - modules/fargene/** - tests/modules/fargene/** diff --git a/tests/modules/faqcs/main.nf b/tests/modules/faqcs/main.nf new file mode 100644 index 00000000..eba4bb97 --- /dev/null +++ b/tests/modules/faqcs/main.nf @@ -0,0 +1,30 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { FAQCS } from '../../../modules/faqcs/main.nf' + + +// +// Test with single-end data +// +workflow test_fastp_single_end { + input = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + + FAQCS ( input ) +} + +// +// Test with paired-end data +// +workflow test_fastp_paired_end { + input = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + + FAQCS ( input ) +} + diff --git a/tests/modules/faqcs/nextflow.config b/tests/modules/faqcs/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/faqcs/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/faqcs/test.yml b/tests/modules/faqcs/test.yml new file mode 100644 index 00000000..47f973f3 --- /dev/null +++ b/tests/modules/faqcs/test.yml @@ -0,0 +1,31 @@ +- name: faqcs test_fastp_single_end + command: nextflow run tests/modules/faqcs -entry test_fastp_single_end -c tests/config/nextflow.config + tags: + - faqcs + files: + - path: output/faqcs/test.fastp.log + md5sum: be79dc893f87de1f82faf749cdfb848c + - path: output/faqcs/test.stats.txt + md5sum: ea20e93706b2e4c676004253baa3cec6 + - path: output/faqcs/test.trimmed.fastq.gz + md5sum: 875863b402f67403dac63ef59b9c9a8a + - path: output/faqcs/test_qc_report.pdf + - path: output/faqcs/versions.yml + md5sum: 2a38d7e7ab5299336e9669c393c9da6c + +- name: faqcs test_fastp_paired_end + command: nextflow run tests/modules/faqcs -entry test_fastp_paired_end -c tests/config/nextflow.config + tags: + - faqcs + files: + - path: output/faqcs/test.fastp.log + md5sum: be79dc893f87de1f82faf749cdfb848c + - path: output/faqcs/test.stats.txt + md5sum: 9a693f8af94ab8c485519d9a523aa622 + - path: output/faqcs/test_1.trimmed.fastq.gz + md5sum: 875863b402f67403dac63ef59b9c9a8a + - path: output/faqcs/test_2.trimmed.fastq.gz + md5sum: 375aeb74819ca3d72203135ac80df78c + - path: output/faqcs/test_qc_report.pdf + - path: output/faqcs/versions.yml + md5sum: 208d54c0cf6dfc54e719b81b990afac9 From 1016c9bd1a7b23e31b8215b8c33095e733080735 Mon Sep 17 00:00:00 2001 From: Hunter Seabolt <86739944+hseabolt@users.noreply.github.com> Date: Wed, 23 Feb 2022 11:02:51 -0500 Subject: [PATCH 052/592] Seqtk seq (#1340) * Initial commit of seqtk/seq module files * pytest.yml * updated module and tests code, need to finish modules/main.nf * Initial commit of seqtk/seq module files * pytest.yml * updated module and tests code, need to finish modules/main.nf * Adding code and configs for seqtk/seq module * Re-tested module following minor code update * removed trailing whitespace errors * Changed variable name to following reviewer suggestions Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> --- modules/seqtk/seq/main.nf | 40 +++++++++++++++++++++++ modules/seqtk/seq/meta.yml | 42 +++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/seqtk/seq/main.nf | 19 +++++++++++ tests/modules/seqtk/seq/nextflow.config | 7 +++++ tests/modules/seqtk/seq/test.yml | 21 +++++++++++++ 6 files changed, 133 insertions(+) create mode 100644 modules/seqtk/seq/main.nf create mode 100644 modules/seqtk/seq/meta.yml create mode 100644 tests/modules/seqtk/seq/main.nf create mode 100644 tests/modules/seqtk/seq/nextflow.config create mode 100644 tests/modules/seqtk/seq/test.yml diff --git a/modules/seqtk/seq/main.nf b/modules/seqtk/seq/main.nf new file mode 100644 index 00000000..1fb03003 --- /dev/null +++ b/modules/seqtk/seq/main.nf @@ -0,0 +1,40 @@ +process SEQTK_SEQ { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::seqtk=1.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/seqtk:1.3--h5bf99c6_3' : + 'quay.io/biocontainers/seqtk:1.3--h5bf99c6_3' }" + + input: + tuple val(meta), path(fastx) + + output: + tuple val(meta), path("*.gz") , emit: fastx + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + def extension = "fastq" + if ("$fastx" ==~ /.+\.fasta|.+\.fasta.gz|.+\.fa|.+\.fa.gz|.+\.fas|.+\.fas.gz|.+\.fna|.+\.fna.gz/ || "$args" ==~ /\-[aA]/ ) { + extension = "fasta" + } + """ + seqtk \\ + seq \\ + $args \\ + $fastx | \\ + gzip -c > ${prefix}.seqtk-seq.${extension}.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqtk: \$(echo \$(seqtk 2>&1) | sed 's/^.*Version: //; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/seqtk/seq/meta.yml b/modules/seqtk/seq/meta.yml new file mode 100644 index 00000000..ac32162b --- /dev/null +++ b/modules/seqtk/seq/meta.yml @@ -0,0 +1,42 @@ +name: seqtk_seq +description: Common transformation operations on FASTA or FASTQ files. +keywords: + - seq +tools: + - seqtk: + description: Seqtk is a fast and lightweight tool for processing sequences in the FASTA or FASTQ format. The seqtk seq command enables common transformation operations on FASTA or FASTQ files. + homepage: https://github.com/lh3/seqtk + documentation: https://docs.csc.fi/apps/seqtk/ + tool_dev_url: https://github.com/lh3/seqtk + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - sequences: + type: file + description: A FASTQ or FASTA file + pattern: "*.{fastq.gz, fastq, fq, fq.gz, fasta, fastq.gz, fa, fa.gz, fas, fas.gz, fna, fna.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - sequences: + type: file + description: FASTQ/FASTA file containing renamed sequences + pattern: "*.{fastq.gz, fasta.gz}" + +authors: + - "@hseabolt" + - "@mjcipriano" + - "@sateeshperi" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index c1c9032e..7beeb2d5 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1461,6 +1461,10 @@ seqtk/sample: - modules/seqtk/sample/** - tests/modules/seqtk/sample/** +seqtk/seq: + - modules/seqtk/seq/** + - tests/modules/seqtk/seq/** + seqtk/subseq: - modules/seqtk/subseq/** - tests/modules/seqtk/subseq/** diff --git a/tests/modules/seqtk/seq/main.nf b/tests/modules/seqtk/seq/main.nf new file mode 100644 index 00000000..4351b8a9 --- /dev/null +++ b/tests/modules/seqtk/seq/main.nf @@ -0,0 +1,19 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SEQTK_SEQ } from '../../../../modules/seqtk/seq/main.nf' + +workflow test_seqtk_seq { + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + ] + SEQTK_SEQ ( input ) +} + +workflow test_seqtk_seq_fq { + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + SEQTK_SEQ ( input ) +} \ No newline at end of file diff --git a/tests/modules/seqtk/seq/nextflow.config b/tests/modules/seqtk/seq/nextflow.config new file mode 100644 index 00000000..174bccd9 --- /dev/null +++ b/tests/modules/seqtk/seq/nextflow.config @@ -0,0 +1,7 @@ +process { + // Testing ext.args for passing arguments into seqtk seq + withName: 'SEQTK_SEQ' { + ext.args = '-A' + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + } +} \ No newline at end of file diff --git a/tests/modules/seqtk/seq/test.yml b/tests/modules/seqtk/seq/test.yml new file mode 100644 index 00000000..3e4532c6 --- /dev/null +++ b/tests/modules/seqtk/seq/test.yml @@ -0,0 +1,21 @@ +- name: seqtk seq test_seqtk_seq + command: nextflow run tests/modules/seqtk/seq -entry test_seqtk_seq -c tests/config/nextflow.config + tags: + - seqtk/seq + - seqtk + files: + - path: output/seqtk/test.seqtk-seq.fasta.gz + md5sum: 50d73992c8c7e56dc095ef47ec52a754 + - path: output/seqtk/versions.yml + md5sum: 2b89cd4a6e28f35fcfbbd2188384f944 + +- name: seqtk seq test_seqtk_seq_fq + command: nextflow run tests/modules/seqtk/seq -entry test_seqtk_seq_fq -c tests/config/nextflow.config + tags: + - seqtk/seq + - seqtk + files: + - path: output/seqtk/test.seqtk-seq.fasta.gz + md5sum: 2f009f1647971a97b4edec726a99dc1a + - path: output/seqtk/versions.yml + md5sum: 3467a76d3540bee8f58de050512bddaa From ee915a43e405324e62ee5d4c14a6a6ec6c610058 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Thu, 24 Feb 2022 09:49:30 +0100 Subject: [PATCH 053/592] update svdb merge (#1274) * update svdb merge * fix undefined variable error * remove prio join in the script block * fix error * fix error again * update tests and refactor --- modules/svdb/merge/main.nf | 12 ++++++++---- tests/modules/svdb/merge/main.nf | 10 ++++++++++ tests/modules/svdb/merge/test.yml | 7 +++++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/modules/svdb/merge/main.nf b/modules/svdb/merge/main.nf index 1f479ea4..505e2c0b 100644 --- a/modules/svdb/merge/main.nf +++ b/modules/svdb/merge/main.nf @@ -21,15 +21,19 @@ process SVDB_MERGE { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = "" - for (int index = 0; index < vcfs.size(); index++) { - input += " ${vcfs[index]}:${priority[index]}" + def input = "${vcfs.join(" ")}" + def prio = "" + if(priority) { + prio = "--priority ${priority.join(',')}" + for (int index = 0; index < vcfs.size(); index++) { + input += " ${vcfs[index]}:${priority[index]}" + } } """ svdb \\ --merge \\ $args \\ - --priority ${priority.join(',')} \\ + $prio \\ --vcf $input \\ > ${prefix}_sv_merge.vcf diff --git a/tests/modules/svdb/merge/main.nf b/tests/modules/svdb/merge/main.nf index f417c3f7..3cbb4b44 100644 --- a/tests/modules/svdb/merge/main.nf +++ b/tests/modules/svdb/merge/main.nf @@ -14,3 +14,13 @@ workflow test_svdb_merge { SVDB_MERGE ( input, priority ) } + +workflow test_svdb_merge_noprio { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test2_vcf'], checkIfExists: true) ] + ] + + SVDB_MERGE ( input, [] ) +} diff --git a/tests/modules/svdb/merge/test.yml b/tests/modules/svdb/merge/test.yml index 8d16562f..46c4fef0 100644 --- a/tests/modules/svdb/merge/test.yml +++ b/tests/modules/svdb/merge/test.yml @@ -5,3 +5,10 @@ - svdb/merge files: - path: output/svdb/test_sv_merge.vcf +- name: svdb merge noprio + command: nextflow run ./tests/modules/svdb/merge -entry test_svdb_merge_noprio -c ./tests/config/nextflow.config -c ./tests/modules/svdb/merge/nextflow.config + tags: + - svdb + - svdb/merge + files: + - path: output/svdb/test_sv_merge.vcf From 640031762334fd1d534d667c2e1a982c5513a7aa Mon Sep 17 00:00:00 2001 From: Michael J Cipriano <42848032+mjcipriano@users.noreply.github.com> Date: Thu, 24 Feb 2022 03:51:48 -0500 Subject: [PATCH 054/592] Gatk4 selectvariants (#1346) * initial commit * tested Co-authored-by: Cipriano Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: Maxime U. Garcia --- modules/gatk4/selectvariants/main.nf | 41 ++++++++++++++ modules/gatk4/selectvariants/meta.yml | 55 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/gatk4/selectvariants/main.nf | 29 ++++++++++ .../gatk4/selectvariants/nextflow.config | 5 ++ tests/modules/gatk4/selectvariants/test.yml | 21 +++++++ 6 files changed, 155 insertions(+) create mode 100644 modules/gatk4/selectvariants/main.nf create mode 100644 modules/gatk4/selectvariants/meta.yml create mode 100644 tests/modules/gatk4/selectvariants/main.nf create mode 100644 tests/modules/gatk4/selectvariants/nextflow.config create mode 100644 tests/modules/gatk4/selectvariants/test.yml diff --git a/modules/gatk4/selectvariants/main.nf b/modules/gatk4/selectvariants/main.nf new file mode 100644 index 00000000..fd750a9b --- /dev/null +++ b/modules/gatk4/selectvariants/main.nf @@ -0,0 +1,41 @@ +process GATK4_SELECTVARIANTS { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + + input: + tuple val(meta), path(vcf), path(vcf_idx) + + output: + tuple val(meta), path("*.selectvariants.vcf.gz") , emit: vcf + tuple val(meta), path("*.selectvariants.vcf.gz.tbi") , emit: tbi + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 + if (!task.memory) { + log.info '[GATK VariantFiltration] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.toGiga() + } + """ + gatk --java-options "-Xmx${avail_mem}G" SelectVariants \\ + -V $vcf \\ + -O ${prefix}.selectvariants.vcf.gz \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/gatk4/selectvariants/meta.yml b/modules/gatk4/selectvariants/meta.yml new file mode 100644 index 00000000..381af249 --- /dev/null +++ b/modules/gatk4/selectvariants/meta.yml @@ -0,0 +1,55 @@ +name: gatk4_selectvariants +description: Select a subset of variants from a VCF file +keywords: + - gatk + - gatk4 + - selectvariants + - vcf +tools: + - gatk4: + description: | + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360036362532-SelectVariants + tool_dev_url: https://github.com/broadinstitute/gatk + doi: 10.1158/1538-7445.AM2017-3590 + licence: ["Apache-2.0"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - vcf: + type: list + description: VCF(.gz) file + pattern: "*.{vcf,vcf.gz}" + - vcf_idx: + type: list + description: VCF file index + pattern: "*.{idx,tbi}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: Compressed VCF file + pattern: "*.selectvariants.vcf.gz" + - vcf_tbi: + type: list + description: VCF file index + pattern: "*.{idx,tbi}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@mjcipriano" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 7beeb2d5..cda6d98d 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -672,6 +672,10 @@ gatk4/samtofastq: - modules/gatk4/samtofastq/** - tests/modules/gatk4/samtofastq/** +gatk4/selectvariants: + - modules/gatk4/selectvariants/** + - tests/modules/gatk4/selectvariants/** + gatk4/splitncigarreads: - modules/gatk4/splitncigarreads/** - tests/modules/gatk4/splitncigarreads/** diff --git a/tests/modules/gatk4/selectvariants/main.nf b/tests/modules/gatk4/selectvariants/main.nf new file mode 100644 index 00000000..7005dcd3 --- /dev/null +++ b/tests/modules/gatk4/selectvariants/main.nf @@ -0,0 +1,29 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_SELECTVARIANTS } from '../../../../modules/gatk4/selectvariants/main.nf' + +// Basic parameters with uncompressed VCF input +workflow test_gatk4_selectvariants_vcf_input { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_idx'], checkIfExists: true) + ] + + GATK4_SELECTVARIANTS ( input) +} + +// Basic parameters with compressed VCF input +workflow test_gatk4_selectvariants_gz_input { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true) + ] + + GATK4_SELECTVARIANTS ( input ) +} diff --git a/tests/modules/gatk4/selectvariants/nextflow.config b/tests/modules/gatk4/selectvariants/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/gatk4/selectvariants/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/gatk4/selectvariants/test.yml b/tests/modules/gatk4/selectvariants/test.yml new file mode 100644 index 00000000..5bc32330 --- /dev/null +++ b/tests/modules/gatk4/selectvariants/test.yml @@ -0,0 +1,21 @@ +- name: gatk4 selectvariants test_gatk4_selectvariants_vcf_input + command: nextflow run tests/modules/gatk4/selectvariants -entry test_gatk4_selectvariants_vcf_input -c tests/config/nextflow.config + tags: + - gatk4/selectvariants + - gatk4 + files: + - path: output/gatk4/test.selectvariants.vcf.gz + - path: output/gatk4/test.selectvariants.vcf.gz.tbi + - path: output/gatk4/versions.yml + md5sum: a35d78af179f43652274bc7405d5a785 + +- name: gatk4 selectvariants test_gatk4_selectvariants_gz_input + command: nextflow run tests/modules/gatk4/selectvariants -entry test_gatk4_selectvariants_gz_input -c tests/config/nextflow.config + tags: + - gatk4/selectvariants + - gatk4 + files: + - path: output/gatk4/test.selectvariants.vcf.gz + - path: output/gatk4/test.selectvariants.vcf.gz.tbi + - path: output/gatk4/versions.yml + md5sum: c943f3579a369968ca63444eb43fb6e7 From 4c59984d7bcc772598ba44fb8289051352c7a6c6 Mon Sep 17 00:00:00 2001 From: Sateesh <33637490+sateeshperi@users.noreply.github.com> Date: Thu, 24 Feb 2022 09:07:35 -0500 Subject: [PATCH 055/592] Seqkit pair (#1348) * add seqkit pair module * local tests * local tests * fix workflow name * fix workflow name * fix version indentation * fix version indentation * fix version indentation * fix review comments * fix review comments * fix github usernames * minor fix * add meta unpaired output Co-authored-by: Peri --- modules/seqkit/pair/main.nf | 40 +++++++++++++++++++ modules/seqkit/pair/meta.yml | 48 +++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/seqkit/pair/main.nf | 16 ++++++++ tests/modules/seqkit/pair/nextflow.config | 6 +++ tests/modules/seqkit/pair/test.yml | 12 ++++++ 6 files changed, 126 insertions(+) create mode 100644 modules/seqkit/pair/main.nf create mode 100644 modules/seqkit/pair/meta.yml create mode 100644 tests/modules/seqkit/pair/main.nf create mode 100644 tests/modules/seqkit/pair/nextflow.config create mode 100644 tests/modules/seqkit/pair/test.yml diff --git a/modules/seqkit/pair/main.nf b/modules/seqkit/pair/main.nf new file mode 100644 index 00000000..228b98bd --- /dev/null +++ b/modules/seqkit/pair/main.nf @@ -0,0 +1,40 @@ +process SEQKIT_PAIR { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::seqkit=2.1.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/seqkit:2.1.0--h9ee0642_0': + 'quay.io/biocontainers/seqkit:2.1.0--h9ee0642_0' }" + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path("*.paired.fastq.gz") , emit: reads + tuple val(meta), path("*.unpaired.fastq.gz"), optional: true, emit: unpaired_reads + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + seqkit \\ + pair \\ + -1 ${reads[0]} \\ + -2 ${reads[1]} \\ + $args \\ + --threads $task.cpus + + # gzip fastq + find . -maxdepth 1 -name "*.fastq" -exec gzip {} \; + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$( seqkit | sed '3!d; s/Version: //' ) + END_VERSIONS + """ +} diff --git a/modules/seqkit/pair/meta.yml b/modules/seqkit/pair/meta.yml new file mode 100644 index 00000000..3b35d908 --- /dev/null +++ b/modules/seqkit/pair/meta.yml @@ -0,0 +1,48 @@ +name: seqkit_pair +description: match up paired-end reads from two fastq files +keywords: + - seqkit + - pair +tools: + - seqkit: + description: Cross-platform and ultrafast toolkit for FASTA/Q file manipulation, written by Wei Shen. + homepage: https://bioinf.shenwei.me/seqkit/usage/ + documentation: https://bioinf.shenwei.me/seqkit/usage/ + tool_dev_url: https://github.com/shenwei356/seqkit/ + doi: "10.1371/journal.pone.0163962" + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input paired-end FastQ files. + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - reads: + type: file + description: Paired fastq reads + pattern: "*.paired.fastq.gz" + - unpaired_reads: + type: file + description: Unpaired reads (optional) + pattern: "*.unpaired.fastq.gz" + +authors: + - "@sateeshperi" + - "@mjcipriano" + - "@hseabolt" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index cda6d98d..5ae30708 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1445,6 +1445,10 @@ seacr/callpeak: - modules/seacr/callpeak/** - tests/modules/seacr/callpeak/** +seqkit/pair: + - modules/seqkit/pair/** + - tests/modules/seqkit/pair/** + seqkit/split2: - modules/seqkit/split2/** - tests/modules/seqkit/split2/** diff --git a/tests/modules/seqkit/pair/main.nf b/tests/modules/seqkit/pair/main.nf new file mode 100644 index 00000000..42bc9587 --- /dev/null +++ b/tests/modules/seqkit/pair/main.nf @@ -0,0 +1,16 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SEQKIT_PAIR } from '../../../../modules/seqkit/pair/main.nf' + +workflow test_seqkit_pair { + + input = [ + [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + + SEQKIT_PAIR ( input ) +} diff --git a/tests/modules/seqkit/pair/nextflow.config b/tests/modules/seqkit/pair/nextflow.config new file mode 100644 index 00000000..49de9240 --- /dev/null +++ b/tests/modules/seqkit/pair/nextflow.config @@ -0,0 +1,6 @@ +process { + + ext.args = "-u" + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/seqkit/pair/test.yml b/tests/modules/seqkit/pair/test.yml new file mode 100644 index 00000000..30373d69 --- /dev/null +++ b/tests/modules/seqkit/pair/test.yml @@ -0,0 +1,12 @@ +- name: seqkit pair test_seqkit_pair + command: nextflow run tests/modules/seqkit/pair -entry test_seqkit_pair -c tests/config/nextflow.config + tags: + - seqkit/pair + - seqkit + files: + - path: output/seqkit/test_1.paired.fastq.gz + md5sum: fbfe7e8bdbc29abaaf58b6f1a32448e5 + - path: output/seqkit/test_2.paired.fastq.gz + md5sum: 7d3c0912e5adc2674e8ecc1e647381b3 + - path: output/seqkit/versions.yml + md5sum: 3086293bc986fc2ece38b1951d090819 From 3e6be5060007d3feb24e3dfb95d602a3fbd3eb58 Mon Sep 17 00:00:00 2001 From: Priyanka Surana Date: Fri, 25 Feb 2022 13:26:23 +0000 Subject: [PATCH 056/592] Adjusted Augustus Config Path settings. Suggested by @mahesh-panchal --- modules/busco/main.nf | 26 +++++++++++++++++++------- modules/busco/meta.yml | 3 +++ tests/modules/busco/main.nf | 15 ++------------- tests/modules/busco/test.yml | 14 ++------------ 4 files changed, 26 insertions(+), 32 deletions(-) diff --git a/modules/busco/main.nf b/modules/busco/main.nf index 445f8ed4..6e526538 100644 --- a/modules/busco/main.nf +++ b/modules/busco/main.nf @@ -9,6 +9,7 @@ process BUSCO { input: tuple val(meta), path(fasta) + val(mode) path(augustus_config) val(lineage) @@ -24,15 +25,26 @@ process BUSCO { """ # Ensure the input is uncompressed gzip -cdf $fasta > __UNCOMPRESSED_FASTA_FILE__ + + # Nextflow changes the container --entrypoint to /bin/bash (container default entrypoint: /usr/local/env-execute) + # Check for container variable initialisation script and source it. + if [ -f "/usr/local/env-activate.sh" ]; then + # . "/usr/local/env-activate.sh" # Errors out because of various unbound variables + export PATH='/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' + export CONDA_PREFIX='/usr/local' + export CONDA_SHLVL='1' + export CONDA_DEFAULT_ENV='/usr/local' + export CONDA_PROMPT_MODIFIER='' + . "/usr/local/etc/conda/activate.d/activate-r-base.sh" + . "/usr/local/etc/conda/activate.d/augustus.sh" + . "/usr/local/etc/conda/activate.d/openjdk_activate.sh" + fi + # Copy the image's AUGUSTUS config directory if it was not provided to the module [ ! -e augustus_config ] && cp -a /usr/local/config augustus_config - AUGUSTUS_CONFIG_PATH=augustus_config \\ - busco \\ - $args \\ - --augustus \\ - --cpu $task.cpus \\ - --in __UNCOMPRESSED_FASTA_FILE__ \\ - --out $meta.id + + # Busco command + AUGUSTUS_CONFIG_PATH=augustus_config busco $args --augustus --mode $mode --cpu $task.cpus --in __UNCOMPRESSED_FASTA_FILE__ --out $meta.id cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/busco/meta.yml b/modules/busco/meta.yml index 0cd9e402..8f41f2f3 100644 --- a/modules/busco/meta.yml +++ b/modules/busco/meta.yml @@ -24,6 +24,9 @@ input: type: file description: Nucleic or amino acid sequence file in FASTA format pattern: "*.{fasta}" + - mode: + type: value + description: Sets the assessment MODE – genome, proteins, transcriptome - augustus_config: type: directory description: AUGUSTUS config directory diff --git a/tests/modules/busco/main.nf b/tests/modules/busco/main.nf index 28a4921c..d12abae9 100644 --- a/tests/modules/busco/main.nf +++ b/tests/modules/busco/main.nf @@ -3,24 +3,13 @@ nextflow.enable.dsl = 2 include { BUSCO as BUSCO_BACTE } from '../../../modules/busco/main.nf' -include { BUSCO as BUSCO_CHR22 } from '../../../modules/busco/main.nf' -include { UNTAR } from '../../../modules/untar/main.nf' // This tests genome decompression, empty input channels and data download -workflow test_busco_bacteroidales { +workflow test_busco { input = [ [ id:'test' ], file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) ] BUSCO_BACTE ( input, + "genome", [], [] ) } -// This tests uncompressed genome, BUSCO lineage file provided via input channel, and offline mode -workflow test_busco_chr22 { - input = [ [ id:'test' ], file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ] - lineage_dataset = [ file(params.test_data['homo_sapiens']['genome']['chr22_odb10_tar_gz'], checkIfExists: true) ] - UNTAR(lineage_dataset) - BUSCO_CHR22 ( input, - [], - UNTAR.out.untar ) -} - diff --git a/tests/modules/busco/test.yml b/tests/modules/busco/test.yml index 32553d2e..d66bd305 100644 --- a/tests/modules/busco/test.yml +++ b/tests/modules/busco/test.yml @@ -1,5 +1,5 @@ -- name: busco test_busco_bacteroidales - command: nextflow run ./tests/modules/busco -entry test_busco_bacteroidales -c ./tests/config/nextflow.config -c ./tests/modules/busco/nextflow.config +- name: busco test_busco + command: nextflow run ./tests/modules/busco -entry test_busco -c ./tests/config/nextflow.config -c ./tests/modules/busco/nextflow.config tags: - busco files: @@ -8,13 +8,3 @@ - path: output/busco/test/run_bacteroidales_odb10/short_summary.txt contains: ['Complete BUSCOs (C)'] -- name: busco test_busco_chr22 - command: nextflow run ./tests/modules/busco -entry test_busco_chr22 -c ./tests/config/nextflow.config -c ./tests/modules/busco/nextflow.config - tags: - - busco - files: - - path: output/busco/test/run_chr22_odb10/full_table.tsv - md5sum: 83f20e8996c591338ada73b6ab0eb269 - - path: output/busco/test/run_chr22_odb10/short_summary.txt - contains: ['Complete BUSCOs (C)'] - From 8a20253f4028133b589c2c169aaa68a5a7fe848d Mon Sep 17 00:00:00 2001 From: Sateesh <33637490+sateeshperi@users.noreply.github.com> Date: Fri, 25 Feb 2022 13:06:39 -0500 Subject: [PATCH 057/592] update args & convert to bam (#1355) --- modules/picard/cleansam/main.nf | 12 +++++------- modules/picard/cleansam/meta.yml | 11 +++++------ tests/modules/picard/cleansam/test.yml | 4 ++-- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/modules/picard/cleansam/main.nf b/modules/picard/cleansam/main.nf index 2eb171d5..fb435911 100644 --- a/modules/picard/cleansam/main.nf +++ b/modules/picard/cleansam/main.nf @@ -1,6 +1,6 @@ process PICARD_CLEANSAM { tag "$meta.id" - label 'process_low' + label 'process_medium' conda (params.enable_conda ? "bioconda::picard=2.26.9" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -8,10 +8,10 @@ process PICARD_CLEANSAM { 'quay.io/biocontainers/picard:2.26.9--hdfd78af_0' }" input: - tuple val(meta), path(sam) + tuple val(meta), path(bam) output: - tuple val(meta), path("*.sam"), emit: sam + tuple val(meta), path("*.bam"), emit: bam path "versions.yml" , emit: versions when: @@ -20,7 +20,6 @@ process PICARD_CLEANSAM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def STRINGENCY = task.ext.stringency ?: "STRICT" def avail_mem = 3 if (!task.memory) { log.info '[Picard CleanSam] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -32,9 +31,8 @@ process PICARD_CLEANSAM { -Xmx${avail_mem}g \\ CleanSam \\ ${args} \\ - -I ${sam} \\ - -O ${prefix}.sam \\ - --VALIDATION_STRINGENCY ${STRINGENCY} + -I ${bam} \\ + -O ${prefix}.bam cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/cleansam/meta.yml b/modules/picard/cleansam/meta.yml index d22e1742..11d8b7c4 100644 --- a/modules/picard/cleansam/meta.yml +++ b/modules/picard/cleansam/meta.yml @@ -1,8 +1,7 @@ name: picard_cleansam -description: Cleans the provided SAM/BAM, soft-clipping beyond-end-of-reference alignments and setting MAPQ to 0 for unmapped reads +description: Cleans the provided BAM, soft-clipping beyond-end-of-reference alignments and setting MAPQ to 0 for unmapped reads keywords: - clean - - sam - bam tools: - picard: @@ -22,8 +21,8 @@ input: e.g. [ id:'test', single_end:false ] - sam: type: file - description: SAM file - pattern: "*.{sam}" + description: BAM file + pattern: "*.{bam}" output: - meta: @@ -37,8 +36,8 @@ output: pattern: "versions.yml" - sam: type: file - description: Cleaned SAM file - pattern: "*.{sam}" + description: Cleaned BAM file + pattern: "*.{bam}" authors: - "@sateeshperi" diff --git a/tests/modules/picard/cleansam/test.yml b/tests/modules/picard/cleansam/test.yml index 716dfe6a..3b235d07 100644 --- a/tests/modules/picard/cleansam/test.yml +++ b/tests/modules/picard/cleansam/test.yml @@ -4,7 +4,7 @@ - picard/cleansam - picard files: - - path: output/picard/test.sam - md5sum: e314171a6060eb79947c13ad126ddf00 + - path: output/picard/test.bam + md5sum: a48f8e77a1480445efc57570c3a38a68 - path: output/picard/versions.yml md5sum: e6457d7c6de51bf6f4b577eda65e57ac From e0bf0a168976ab73fc511e49cd3e68a18f0680ec Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Sun, 27 Feb 2022 14:35:47 +0100 Subject: [PATCH 058/592] Fix: Leehom meta output channel descriptions (#1356) * fix: remove left-over unnecessary code * Fix metayml docs of R2 output channels --- modules/leehom/meta.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/leehom/meta.yml b/modules/leehom/meta.yml index 658db227..05a52743 100644 --- a/modules/leehom/meta.yml +++ b/modules/leehom/meta.yml @@ -61,11 +61,11 @@ output: pattern: "*.r1.fail.fq.gz" - unmerged_r2_fq_pass: type: file - description: Passed unmerged R1 FASTQs + description: Passed unmerged R2 FASTQs pattern: "*.r2.fq.gz" - unmerged_r2_fq_pass: type: file - description: Failed unmerged R1 FASTQs + description: Failed unmerged R2 FASTQs pattern: "*.r2.fail.fq.gz" - log: type: file From 55bee0b02e78394e6534049f6bf607abda057271 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Sun, 27 Feb 2022 17:58:35 -0700 Subject: [PATCH 059/592] add module for hpsuisero (#1331) * add module for hpsuisero * Update meta.yml * Update main.nf Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> --- modules/hpsuissero/main.nf | 44 ++++++++++++++++++++++++ modules/hpsuissero/meta.yml | 43 +++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/hpsuissero/main.nf | 15 ++++++++ tests/modules/hpsuissero/nextflow.config | 5 +++ tests/modules/hpsuissero/test.yml | 9 +++++ 6 files changed, 120 insertions(+) create mode 100644 modules/hpsuissero/main.nf create mode 100644 modules/hpsuissero/meta.yml create mode 100644 tests/modules/hpsuissero/main.nf create mode 100644 tests/modules/hpsuissero/nextflow.config create mode 100644 tests/modules/hpsuissero/test.yml diff --git a/modules/hpsuissero/main.nf b/modules/hpsuissero/main.nf new file mode 100644 index 00000000..4b31f91c --- /dev/null +++ b/modules/hpsuissero/main.nf @@ -0,0 +1,44 @@ +def VERSION = '1.0.1' // Version information not provided by tool on CLI + +process HPSUISSERO { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::hpsuissero=1.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/hpsuissero%3A1.0.1--hdfd78af_0': + 'quay.io/biocontainers/hpsuissero:1.0.1--hdfd78af_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*.tsv"), emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def is_compressed = fasta.getName().endsWith(".gz") ? true : false + def fasta_name = fasta.getName().replace(".gz", "") + """ + if [ "$is_compressed" == "true" ]; then + gzip -c -d $fasta > $fasta_name + fi + + HpsuisSero.sh \\ + -i $fasta_name \\ + -o ./ \\ + -s $prefix \\ + -x fasta \\ + -t $task.cpus + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + hpsuissero: $VERSION + END_VERSIONS + """ +} diff --git a/modules/hpsuissero/meta.yml b/modules/hpsuissero/meta.yml new file mode 100644 index 00000000..2f48c6c3 --- /dev/null +++ b/modules/hpsuissero/meta.yml @@ -0,0 +1,43 @@ +name: hpsuissero +description: Serotype prediction of Haemophilus parasuis assemblies +keywords: + - bacteria + - fasta + - haemophilus +tools: + - hpsuissero: + description: Rapid Haemophilus parasuis serotyping pipeline for Nanpore data + homepage: https://github.com/jimmyliu1326/HpsuisSero + documentation: https://github.com/jimmyliu1326/HpsuisSero + tool_dev_url: https://github.com/jimmyliu1326/HpsuisSero + doi: "" + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Assembly in FASTA format + pattern: "*.{fasta,fasta.gz,fa,fa.gz,fna,fna.gz,faa,faa.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - tsv: + type: file + description: Tab-delimited serotype prediction + pattern: "*.{tsv}" + +authors: + - "@rpetit3" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 5ae30708..b4e8428f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -807,6 +807,10 @@ homer/makeucscfile: - modules/homer/makeucscfile/** - tests/modules/homer/makeucscfile/** +hpsuissero: + - modules/hpsuissero/** + - tests/modules/hpsuissero/** + ichorcna/createpon: - modules/ichorcna/createpon/** - tests/modules/ichorcna/createpon/** diff --git a/tests/modules/hpsuissero/main.nf b/tests/modules/hpsuissero/main.nf new file mode 100644 index 00000000..f66fcd93 --- /dev/null +++ b/tests/modules/hpsuissero/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { HPSUISSERO } from '../../../modules/hpsuissero/main.nf' + +workflow test_hpsuissero { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['haemophilus_influenzae']['genome']['genome_fna_gz'], checkIfExists: true) + ] + + HPSUISSERO ( input ) +} diff --git a/tests/modules/hpsuissero/nextflow.config b/tests/modules/hpsuissero/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/hpsuissero/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/hpsuissero/test.yml b/tests/modules/hpsuissero/test.yml new file mode 100644 index 00000000..33b26eb2 --- /dev/null +++ b/tests/modules/hpsuissero/test.yml @@ -0,0 +1,9 @@ +- name: hpsuissero test_hpsuissero + command: nextflow run tests/modules/hpsuissero -entry test_hpsuissero -c tests/config/nextflow.config + tags: + - hpsuissero + files: + - path: output/hpsuissero/test_serotyping_res.tsv + md5sum: 559dd2ca386eeb58f3975e3204ce9d43 + - path: output/hpsuissero/versions.yml + md5sum: f65438e63a74ac6ee365bfdbbd3f996a From 9e0abcc44319272104309c52aa7cf1d398baf466 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Sun, 27 Feb 2022 20:04:03 -0700 Subject: [PATCH 060/592] add module for ssuisero (#1329) * add module for ssuisero * Update main.nf * Update meta.yml Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> --- modules/ssuissero/main.nf | 44 +++++++++++++++++++++++++ modules/ssuissero/meta.yml | 43 ++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/ssuissero/main.nf | 15 +++++++++ tests/modules/ssuissero/nextflow.config | 5 +++ tests/modules/ssuissero/test.yml | 9 +++++ 6 files changed, 120 insertions(+) create mode 100644 modules/ssuissero/main.nf create mode 100644 modules/ssuissero/meta.yml create mode 100644 tests/modules/ssuissero/main.nf create mode 100644 tests/modules/ssuissero/nextflow.config create mode 100644 tests/modules/ssuissero/test.yml diff --git a/modules/ssuissero/main.nf b/modules/ssuissero/main.nf new file mode 100644 index 00000000..d1e5744a --- /dev/null +++ b/modules/ssuissero/main.nf @@ -0,0 +1,44 @@ +def VERSION = '1.0.1' // Version information not provided by tool on CLI + +process SSUISSERO { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::ssuissero=1.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ssuissero%3A1.0.1--hdfd78af_0': + 'quay.io/biocontainers/ssuissero:1.0.1--hdfd78af_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*.tsv"), emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def is_compressed = fasta.getName().endsWith(".gz") ? true : false + def fasta_name = fasta.getName().replace(".gz", "") + """ + if [ "$is_compressed" == "true" ]; then + gzip -c -d $fasta > $fasta_name + fi + + SsuisSero.sh \\ + -i $fasta_name \\ + -o ./ \\ + -s $prefix \\ + -x fasta \\ + -t $task.cpus + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ssuissero: $VERSION + END_VERSIONS + """ +} diff --git a/modules/ssuissero/meta.yml b/modules/ssuissero/meta.yml new file mode 100644 index 00000000..2c0031e6 --- /dev/null +++ b/modules/ssuissero/meta.yml @@ -0,0 +1,43 @@ +name: ssuissero +description: Serotype prediction of Streptococcus suis assemblies +keywords: + - bacteria + - fasta + - streptococcus +tools: + - ssuissero: + description: Rapid Streptococcus suis serotyping pipeline for Nanopore Data + homepage: https://github.com/jimmyliu1326/SsuisSero + documentation: https://github.com/jimmyliu1326/SsuisSero + tool_dev_url: https://github.com/jimmyliu1326/SsuisSero + doi: "" + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Assembly in FASTA format + pattern: "*.{fasta,fasta.gz,fa,fa.gz,fna,fna.gz,faa,faa.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - tsv: + type: file + description: Tab-delimited serotype prediction + pattern: "*.{tsv}" + +authors: + - "@rpetit3" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index b4e8428f..8987044c 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1537,6 +1537,10 @@ sratools/prefetch: - modules/sratools/prefetch/** - tests/modules/sratools/prefetch/** +ssuissero: + - modules/ssuissero/** + - tests/modules/ssuissero/** + staphopiasccmec: - modules/staphopiasccmec/** - tests/modules/staphopiasccmec/** diff --git a/tests/modules/ssuissero/main.nf b/tests/modules/ssuissero/main.nf new file mode 100644 index 00000000..aa285133 --- /dev/null +++ b/tests/modules/ssuissero/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SSUISSERO } from '../../../modules/ssuissero/main.nf' + +workflow test_ssuissero { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['haemophilus_influenzae']['genome']['genome_fna_gz'], checkIfExists: true) + ] + + SSUISSERO ( input ) +} diff --git a/tests/modules/ssuissero/nextflow.config b/tests/modules/ssuissero/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/ssuissero/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/ssuissero/test.yml b/tests/modules/ssuissero/test.yml new file mode 100644 index 00000000..ff61b267 --- /dev/null +++ b/tests/modules/ssuissero/test.yml @@ -0,0 +1,9 @@ +- name: ssuissero test_ssuissero + command: nextflow run tests/modules/ssuissero -entry test_ssuissero -c tests/config/nextflow.config + tags: + - ssuissero + files: + - path: output/ssuissero/test_serotyping_res.tsv + md5sum: 559dd2ca386eeb58f3975e3204ce9d43 + - path: output/ssuissero/versions.yml + md5sum: be29b478690b2047e0413ffe01c85e1e From 841c661cad7181a36fd20bb306258d17b750c873 Mon Sep 17 00:00:00 2001 From: "Thomas A. Christensen II" <25492070+MillironX@users.noreply.github.com> Date: Mon, 28 Feb 2022 07:40:24 +0000 Subject: [PATCH 061/592] Add MAFFT module (#1351) Signed-off-by: Thomas A. Christensen II <25492070+MillironX@users.noreply.github.com> Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: Robert A. Petit III --- modules/mafft/main.nf | 35 ++++++++++++++++++++++++ modules/mafft/meta.yml | 42 +++++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/mafft/main.nf | 15 +++++++++++ tests/modules/mafft/nextflow.config | 6 +++++ tests/modules/mafft/test.yml | 9 +++++++ 6 files changed, 111 insertions(+) create mode 100644 modules/mafft/main.nf create mode 100644 modules/mafft/meta.yml create mode 100644 tests/modules/mafft/main.nf create mode 100644 tests/modules/mafft/nextflow.config create mode 100644 tests/modules/mafft/test.yml diff --git a/modules/mafft/main.nf b/modules/mafft/main.nf new file mode 100644 index 00000000..99485b61 --- /dev/null +++ b/modules/mafft/main.nf @@ -0,0 +1,35 @@ +process MAFFT { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::mafft=7.490" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mafft:7.490--h779adbc_0': + 'quay.io/biocontainers/mafft:7.490--h779adbc_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*.fas"), emit: fas + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + mafft \\ + --thread ${task.cpus} \\ + ${args} \\ + ${fasta} \\ + > ${prefix}.fas + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + mafft: \$(mafft --version 2>&1 | sed 's/^v//' | sed 's/ (.*)//') + END_VERSIONS + """ +} diff --git a/modules/mafft/meta.yml b/modules/mafft/meta.yml new file mode 100644 index 00000000..10c7f0c2 --- /dev/null +++ b/modules/mafft/meta.yml @@ -0,0 +1,42 @@ +name: mafft +description: Multiple sequence alignment using MAFFT +keywords: + - msa + - multiple sequence alignment +tools: + - mafft: + description: Multiple alignment program for amino acid or nucleotide sequences based on fast Fourier transform + homepage: https://mafft.cbrc.jp/alignment/software/ + documentation: https://mafft.cbrc.jp/alignment/software/manual/manual.html + tool_dev_url: https://mafft.cbrc.jp/alignment/software/source.html + doi: "10.1093/nar/gkf436" + licence: ['BSD'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: FASTA file containing the sequences to align + pattern: "*.{fa,fasta}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - fas: + type: file + description: Aligned sequences in FASTA format + pattern: "*.{fas}" + +authors: + - "@MillironX" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 8987044c..f4ed22c8 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -964,6 +964,10 @@ macs2/callpeak: - modules/macs2/callpeak/** - tests/modules/macs2/callpeak/** +mafft: + - modules/mafft/** + - tests/modules/mafft/** + malt/build: - modules/malt/build/** - tests/modules/malt/build_test/** diff --git a/tests/modules/mafft/main.nf b/tests/modules/mafft/main.nf new file mode 100644 index 00000000..7f50b35a --- /dev/null +++ b/tests/modules/mafft/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MAFFT } from '../../../modules/mafft/main.nf' + +workflow test_mafft { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['scaffolds_fasta'], checkIfExists: true) + ] + + MAFFT ( input ) +} diff --git a/tests/modules/mafft/nextflow.config b/tests/modules/mafft/nextflow.config new file mode 100644 index 00000000..46cc926e --- /dev/null +++ b/tests/modules/mafft/nextflow.config @@ -0,0 +1,6 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + ext.args = "--auto" + +} diff --git a/tests/modules/mafft/test.yml b/tests/modules/mafft/test.yml new file mode 100644 index 00000000..cd40caa7 --- /dev/null +++ b/tests/modules/mafft/test.yml @@ -0,0 +1,9 @@ +- name: mafft test_mafft + command: nextflow run tests/modules/mafft -entry test_mafft -c tests/config/nextflow.config + tags: + - mafft + files: + - path: output/mafft/test.fas + md5sum: 23426611f4a0df532b6708f072bd445b + - path: output/mafft/versions.yml + md5sum: b1b5ab3728ae17401808335f1c8f8215 From 1ad73f1b2abdea9398680d6d20014838135c9a35 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Mon, 28 Feb 2022 12:42:29 +0100 Subject: [PATCH 062/592] update samtools version to 1.15 (#1358) * update samtools version to 1.15 * Update checksums --- modules/samtools/ampliconclip/main.nf | 6 +++--- modules/samtools/bam2fq/main.nf | 6 +++--- modules/samtools/depth/main.nf | 6 +++--- modules/samtools/faidx/main.nf | 6 +++--- modules/samtools/fastq/main.nf | 6 +++--- modules/samtools/fixmate/main.nf | 6 +++--- modules/samtools/flagstat/main.nf | 6 +++--- modules/samtools/idxstats/main.nf | 6 +++--- modules/samtools/index/main.nf | 6 +++--- modules/samtools/merge/main.nf | 6 +++--- modules/samtools/mpileup/main.nf | 6 +++--- modules/samtools/sort/main.nf | 6 +++--- modules/samtools/stats/main.nf | 6 +++--- modules/samtools/view/main.nf | 6 +++--- tests/modules/samtools/ampliconclip/test.yml | 10 +++++----- tests/modules/samtools/bam2fq/test.yml | 4 ++-- tests/modules/samtools/faidx/test.yml | 2 +- tests/modules/samtools/fastq/test.yml | 4 ++-- tests/modules/samtools/fixmate/test.yml | 2 +- tests/modules/samtools/index/test.yml | 2 +- tests/modules/samtools/sort/test.yml | 2 +- tests/modules/samtools/stats/test.yml | 4 ++-- 22 files changed, 57 insertions(+), 57 deletions(-) diff --git a/modules/samtools/ampliconclip/main.nf b/modules/samtools/ampliconclip/main.nf index 69c2ff7b..4e76b1b4 100644 --- a/modules/samtools/ampliconclip/main.nf +++ b/modules/samtools/ampliconclip/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_AMPLICONCLIP { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/bam2fq/main.nf b/modules/samtools/bam2fq/main.nf index 4b78a46e..8dd64dc0 100644 --- a/modules/samtools/bam2fq/main.nf +++ b/modules/samtools/bam2fq/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_BAM2FQ { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(inputbam) diff --git a/modules/samtools/depth/main.nf b/modules/samtools/depth/main.nf index d68c5adf..4870b2d8 100644 --- a/modules/samtools/depth/main.nf +++ b/modules/samtools/depth/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_DEPTH { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/faidx/main.nf b/modules/samtools/faidx/main.nf index b83a4952..7732a4ec 100644 --- a/modules/samtools/faidx/main.nf +++ b/modules/samtools/faidx/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FAIDX { tag "$fasta" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(fasta) diff --git a/modules/samtools/fastq/main.nf b/modules/samtools/fastq/main.nf index 7eb60117..6408d4a4 100644 --- a/modules/samtools/fastq/main.nf +++ b/modules/samtools/fastq/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FASTQ { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/fixmate/main.nf b/modules/samtools/fixmate/main.nf index c1a8164b..14c9db9f 100644 --- a/modules/samtools/fixmate/main.nf +++ b/modules/samtools/fixmate/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FIXMATE { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/flagstat/main.nf b/modules/samtools/flagstat/main.nf index c267922b..9e3440ac 100644 --- a/modules/samtools/flagstat/main.nf +++ b/modules/samtools/flagstat/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FLAGSTAT { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/samtools/idxstats/main.nf b/modules/samtools/idxstats/main.nf index 8a057413..7d5cee17 100644 --- a/modules/samtools/idxstats/main.nf +++ b/modules/samtools/idxstats/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_IDXSTATS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/samtools/index/main.nf b/modules/samtools/index/main.nf index dfe0234f..e41cdcc8 100644 --- a/modules/samtools/index/main.nf +++ b/modules/samtools/index/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_INDEX { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(input) diff --git a/modules/samtools/merge/main.nf b/modules/samtools/merge/main.nf index be6fe32e..7b771677 100644 --- a/modules/samtools/merge/main.nf +++ b/modules/samtools/merge/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_MERGE { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(input_files) diff --git a/modules/samtools/mpileup/main.nf b/modules/samtools/mpileup/main.nf index 77afae60..cea40321 100644 --- a/modules/samtools/mpileup/main.nf +++ b/modules/samtools/mpileup/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_MPILEUP { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/sort/main.nf b/modules/samtools/sort/main.nf index 0f2237cc..0e2de8ba 100644 --- a/modules/samtools/sort/main.nf +++ b/modules/samtools/sort/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_SORT { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/stats/main.nf b/modules/samtools/stats/main.nf index f6fe3bfe..6efc9d9a 100644 --- a/modules/samtools/stats/main.nf +++ b/modules/samtools/stats/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_STATS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(input), path(input_index) diff --git a/modules/samtools/view/main.nf b/modules/samtools/view/main.nf index aee21a4e..75aad063 100644 --- a/modules/samtools/view/main.nf +++ b/modules/samtools/view/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_VIEW { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: tuple val(meta), path(input) diff --git a/tests/modules/samtools/ampliconclip/test.yml b/tests/modules/samtools/ampliconclip/test.yml index e8fd456c..e9947562 100644 --- a/tests/modules/samtools/ampliconclip/test.yml +++ b/tests/modules/samtools/ampliconclip/test.yml @@ -5,7 +5,7 @@ - samtools/ampliconclip files: - path: output/samtools/test.bam - md5sum: 678f9ab04fbe3206f0f96e170fd833e9 + md5sum: 5d0e8bc9e6059ef3a63ee6328a3935c7 - name: samtools ampliconclip no stats with rejects command: nextflow run ./tests/modules/samtools/ampliconclip -entry test_samtools_ampliconclip_no_stats_with_rejects -c ./tests/config/nextflow.config -c ./tests/modules/samtools/ampliconclip/nextflow.config @@ -14,9 +14,9 @@ - samtools/ampliconclip files: - path: output/samtools/test.bam - md5sum: bbf65ea626539d96c8271e17d1fc988b + md5sum: 2c998295d624c59620b7ffdb0cc080e2 - path: output/samtools/test.cliprejects.bam - md5sum: a0bee15aead020d16d0c81bd9667df46 + md5sum: f3ebba8d91ad29cc4d2d00943e6f6bab - name: samtools ampliconclip with stats with rejects command: nextflow run ./tests/modules/samtools/ampliconclip -entry test_samtools_ampliconclip_with_stats_with_rejects -c ./tests/config/nextflow.config -c ./tests/modules/samtools/ampliconclip/nextflow.config @@ -25,8 +25,8 @@ - samtools/ampliconclip files: - path: output/samtools/test.bam - md5sum: f5a3611ecad34ba2dde77096e1c7dd93 + md5sum: 87882973b425ab27aad6ef18faf11f25 - path: output/samtools/test.cliprejects.bam - md5sum: 90ee7ce908b4bdb89ab41e4410de9012 + md5sum: eb5e186e1a69864dc2e99a290f02ff78 - path: output/samtools/test.clipstats.txt md5sum: fc23355e1743d47f2541f2cb1a7a0cda diff --git a/tests/modules/samtools/bam2fq/test.yml b/tests/modules/samtools/bam2fq/test.yml index feb994fd..213c7a2d 100644 --- a/tests/modules/samtools/bam2fq/test.yml +++ b/tests/modules/samtools/bam2fq/test.yml @@ -14,9 +14,9 @@ - samtools files: - path: output/samtools/test_1.fq.gz - md5sum: 4522edbe158ec4804765794569f67493 + md5sum: 1c84aadcdca10e97be2b5b6ce773f5ed - path: output/samtools/test_2.fq.gz - md5sum: 7e00ef40d5cfe272b67461381019dcc1 + md5sum: e679ec035d3208785e704458d6b68c8c - path: output/samtools/test_other.fq.gz md5sum: 709872fc2910431b1e8b7074bfe38c67 - path: output/samtools/test_singleton.fq.gz diff --git a/tests/modules/samtools/faidx/test.yml b/tests/modules/samtools/faidx/test.yml index dc2184ee..1a49a0d5 100644 --- a/tests/modules/samtools/faidx/test.yml +++ b/tests/modules/samtools/faidx/test.yml @@ -7,4 +7,4 @@ - path: output/samtools/genome.fasta.fai md5sum: 9da2a56e2853dc8c0b86a9e7229c9fe5 - path: output/samtools/versions.yml - md5sum: d56671a7c8f8058944d3d536c3058f7f + md5sum: 6a16b2148a0ab43e6d0506056e6a0409 diff --git a/tests/modules/samtools/fastq/test.yml b/tests/modules/samtools/fastq/test.yml index 39da9889..ff39d61a 100644 --- a/tests/modules/samtools/fastq/test.yml +++ b/tests/modules/samtools/fastq/test.yml @@ -5,6 +5,6 @@ - samtools/fastq files: - path: output/samtools/test_2.fastq.gz - md5sum: 3b1c92f33a44a78d82f8360ab4fdfd61 + md5sum: 51e7a469b554de694799bec982fd722e - path: output/samtools/test_1.fastq.gz - md5sum: 5a3f9c69a032c4ffd9071ea31a14e6f9 + md5sum: 6c2d5b467eb94e058300271a542e34e6 diff --git a/tests/modules/samtools/fixmate/test.yml b/tests/modules/samtools/fixmate/test.yml index 8e87e059..59cd6b41 100644 --- a/tests/modules/samtools/fixmate/test.yml +++ b/tests/modules/samtools/fixmate/test.yml @@ -5,4 +5,4 @@ - samtools/fixmate files: - path: output/samtools/test.bam - md5sum: a4092657a4b17170c7702a76cbf192a1 + md5sum: c7f574bb0c469e0ccfecb6b7210e03c5 diff --git a/tests/modules/samtools/index/test.yml b/tests/modules/samtools/index/test.yml index 7184be8f..09684166 100644 --- a/tests/modules/samtools/index/test.yml +++ b/tests/modules/samtools/index/test.yml @@ -23,4 +23,4 @@ - samtools/index files: - path: output/samtools/test.paired_end.sorted.bam.csi - md5sum: 3dd9e3ed959fca075b88bb8dc3cf7dbd + md5sum: 8d63373007553e74d823fc2b9cbcf84d diff --git a/tests/modules/samtools/sort/test.yml b/tests/modules/samtools/sort/test.yml index dfd2eb69..4535dd09 100644 --- a/tests/modules/samtools/sort/test.yml +++ b/tests/modules/samtools/sort/test.yml @@ -5,4 +5,4 @@ - samtools/sort files: - path: output/samtools/test.sorted.bam - md5sum: 4adc495469724a375d5e1a9f3485e38d + md5sum: a73238d6b896a3a946025d6b13fe9525 diff --git a/tests/modules/samtools/stats/test.yml b/tests/modules/samtools/stats/test.yml index d3444f02..44b7ef8c 100644 --- a/tests/modules/samtools/stats/test.yml +++ b/tests/modules/samtools/stats/test.yml @@ -5,7 +5,7 @@ - samtools files: - path: output/samtools/test.paired_end.sorted.bam.stats - md5sum: 09146eeecfcae2a84fb8615c86cd8d64 + md5sum: 6e3ca28b3e98dade14992dd7ea5fc886 - name: samtools stats test_samtools_stats_cram command: nextflow run ./tests/modules/samtools/stats -entry test_samtools_stats_cram -c ./tests/config/nextflow.config -c ./tests/modules/samtools/stats/nextflow.config @@ -14,4 +14,4 @@ - samtools files: - path: output/samtools/test.paired_end.recalibrated.sorted.cram.stats - md5sum: ab49e7380714b7033e374ba1114e5e54 + md5sum: 985455b573444c3743510d603ed41f8c From ef811d952bc21f4e26a60fd96d57979ca4fb6ce7 Mon Sep 17 00:00:00 2001 From: Mei Wu <25568561+projectoriented@users.noreply.github.com> Date: Mon, 28 Feb 2022 14:23:12 +0100 Subject: [PATCH 063/592] bcftools/annotate ready2go (#1291) * bcf annotate ready2go * edited output name * fixed output * updated bcftools ver * changed contain output string * removed contain key entirely * fixed md5sum for test.yml Co-authored-by: Robert A. Petit III Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> --- modules/bcftools/annotate/main.nf | 42 +++++++++++++++++ modules/bcftools/annotate/meta.yml | 45 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/bcftools/annotate/main.nf | 14 ++++++ .../modules/bcftools/annotate/nextflow.config | 5 +++ tests/modules/bcftools/annotate/test.yml | 9 ++++ 6 files changed, 119 insertions(+) create mode 100644 modules/bcftools/annotate/main.nf create mode 100644 modules/bcftools/annotate/meta.yml create mode 100644 tests/modules/bcftools/annotate/main.nf create mode 100644 tests/modules/bcftools/annotate/nextflow.config create mode 100644 tests/modules/bcftools/annotate/test.yml diff --git a/modules/bcftools/annotate/main.nf b/modules/bcftools/annotate/main.nf new file mode 100644 index 00000000..437baaf3 --- /dev/null +++ b/modules/bcftools/annotate/main.nf @@ -0,0 +1,42 @@ +process BCFTOOLS_ANNOTATE { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::bcftools=1.15" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bcftools:1.15--haf5b3da_0': + 'quay.io/biocontainers/bcftools:1.15--haf5b3da_0' }" + + input: + tuple val(meta), path(input) + + output: + tuple val(meta), path("*_annotated.vcf.gz"), optional:true , emit: vcf + tuple val(meta), path("*_annotated.bcf") , optional:true , emit: bcf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + def matcher = input =~ /vcf/ + def output_suffix = matcher ? "vcf.gz" : "bcf" + def output_type_compressed = matcher ? "z" : "b" + """ + bcftools \\ + annotate \\ + $args \\ + --output ${prefix}_annotated.${output_suffix} \\ + --output-type $output_type_compressed \\ + --threads $task.cpus \\ + $input + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/bcftools/annotate/meta.yml b/modules/bcftools/annotate/meta.yml new file mode 100644 index 00000000..3ed124d5 --- /dev/null +++ b/modules/bcftools/annotate/meta.yml @@ -0,0 +1,45 @@ +name: bcftools_annotate +description: Add or remove annotations. +keywords: + - bcftools + - annotate + - vcf + - remove + - add +tools: + - annotate: + description: Add or remove annotations. + homepage: http://samtools.github.io/bcftools/bcftools.html + documentation: https://samtools.github.io/bcftools/bcftools.html#annotate + doi: 10.1093/bioinformatics/btp352 + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: files + description: Query VCF or BCF file, can be either uncompressed or compressed +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf: + type: file + description: Compressed annotated VCF file + pattern: "*_annotated.vcf.gz" + - bcf: + type: file + description: Compressed annotated BCF file + pattern: "*_annotated.bcf" +authors: + - "@projectoriented" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index f4ed22c8..c553b9ce 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -98,6 +98,10 @@ bbmap/index: - modules/bbmap/index/** - tests/modules/bbmap/index/** +bcftools/annotate: + - modules/bcftools/annotate/** + - tests/modules/bcftools/annotate/** + bcftools/concat: - modules/bcftools/concat/** - tests/modules/bcftools/concat/** diff --git a/tests/modules/bcftools/annotate/main.nf b/tests/modules/bcftools/annotate/main.nf new file mode 100644 index 00000000..2f2b66c9 --- /dev/null +++ b/tests/modules/bcftools/annotate/main.nf @@ -0,0 +1,14 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BCFTOOLS_ANNOTATE } from '../../../../modules/bcftools/annotate/main.nf' + +workflow test_bcftools_annotate { + + input = [ + [ id:'test_compressed', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true) ] + + BCFTOOLS_ANNOTATE ( input ) +} diff --git a/tests/modules/bcftools/annotate/nextflow.config b/tests/modules/bcftools/annotate/nextflow.config new file mode 100644 index 00000000..2670da17 --- /dev/null +++ b/tests/modules/bcftools/annotate/nextflow.config @@ -0,0 +1,5 @@ +process { + ext.args = "-x ID,INFO/DP,FORMAT/DP" + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/bcftools/annotate/test.yml b/tests/modules/bcftools/annotate/test.yml new file mode 100644 index 00000000..43537180 --- /dev/null +++ b/tests/modules/bcftools/annotate/test.yml @@ -0,0 +1,9 @@ +- name: bcftools annotate test_bcftools_annotate + command: nextflow run tests/modules/bcftools/annotate -entry test_bcftools_annotate -c tests/config/nextflow.config + tags: + - bcftools/annotate + - bcftools + files: + - path: output/bcftools/test_compressed_annotated.vcf.gz + - path: output/bcftools/versions.yml + md5sum: b647b465acc221f6fe6fbcc319724eed From 38ffbfdb63454d20c56cd16e9b8b489165fea0c9 Mon Sep 17 00:00:00 2001 From: Mei Wu <25568561+projectoriented@users.noreply.github.com> Date: Mon, 28 Feb 2022 16:16:29 +0100 Subject: [PATCH 064/592] bcftools/annotate follow up corrections (#1359) * bcf annotate ready2go * edited output name * fixed output * updated bcftools ver * changed contain output string * removed contain key entirely * fixed md5sum for test.yml * using match instead of find * bcftools/annotate refactored with complete test * rm trailing white space Co-authored-by: Robert A. Petit III --- modules/bcftools/annotate/main.nf | 4 ++-- tests/config/test_data.config | 2 ++ tests/modules/bcftools/annotate/main.nf | 15 ++++++++++++--- tests/modules/bcftools/annotate/test.yml | 18 ++++++++++++++---- 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/modules/bcftools/annotate/main.nf b/modules/bcftools/annotate/main.nf index 437baaf3..40e32047 100644 --- a/modules/bcftools/annotate/main.nf +++ b/modules/bcftools/annotate/main.nf @@ -22,7 +22,7 @@ process BCFTOOLS_ANNOTATE { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def matcher = input =~ /vcf/ + def matcher = input ==~ /\S+\.*vcf\.\S*/ def output_suffix = matcher ? "vcf.gz" : "bcf" def output_type_compressed = matcher ? "z" : "b" """ @@ -36,7 +36,7 @@ process BCFTOOLS_ANNOTATE { cat <<-END_VERSIONS > versions.yml "${task.process}": - bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') + bcftools: \$( bcftools --version |& sed '1!d; s/^.*bcftools //' ) END_VERSIONS """ } diff --git a/tests/config/test_data.config b/tests/config/test_data.config index e28b0cb0..7c3e183c 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -67,6 +67,8 @@ params { test_computematrix_mat_gz = "${test_data_dir}/genomics/sarscov2/illumina/deeptools/test.computeMatrix.mat.gz" + test_bcf = "${test_data_dir}/genomics/sarscov2/illumina/vcf/test.bcf" + test_vcf = "${test_data_dir}/genomics/sarscov2/illumina/vcf/test.vcf" test_vcf_gz = "${test_data_dir}/genomics/sarscov2/illumina/vcf/test.vcf.gz" test_vcf_gz_tbi = "${test_data_dir}/genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi" diff --git a/tests/modules/bcftools/annotate/main.nf b/tests/modules/bcftools/annotate/main.nf index 2f2b66c9..0d096ca9 100644 --- a/tests/modules/bcftools/annotate/main.nf +++ b/tests/modules/bcftools/annotate/main.nf @@ -4,11 +4,20 @@ nextflow.enable.dsl = 2 include { BCFTOOLS_ANNOTATE } from '../../../../modules/bcftools/annotate/main.nf' -workflow test_bcftools_annotate { - +workflow test_bcftools_annotate_out_vcf { + input = [ - [ id:'test_compressed', single_end:false ], // meta map + [ id:'test_compressed_vcf', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true) ] BCFTOOLS_ANNOTATE ( input ) } + +workflow test_bcftools_annotate_out_bcf { + + input = [ + [ id:'test_compressed_bcf', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_bcf'], checkIfExists: true) ] + + BCFTOOLS_ANNOTATE ( input ) +} diff --git a/tests/modules/bcftools/annotate/test.yml b/tests/modules/bcftools/annotate/test.yml index 43537180..e8cdcc4b 100644 --- a/tests/modules/bcftools/annotate/test.yml +++ b/tests/modules/bcftools/annotate/test.yml @@ -1,9 +1,19 @@ -- name: bcftools annotate test_bcftools_annotate - command: nextflow run tests/modules/bcftools/annotate -entry test_bcftools_annotate -c tests/config/nextflow.config +- name: bcftools annotate test_bcftools_annotate_out_vcf + command: nextflow run tests/modules/bcftools/annotate -entry test_bcftools_annotate_out_vcf -c tests/config/nextflow.config tags: - bcftools/annotate - bcftools files: - - path: output/bcftools/test_compressed_annotated.vcf.gz + - path: output/bcftools/test_compressed_vcf_annotated.vcf.gz - path: output/bcftools/versions.yml - md5sum: b647b465acc221f6fe6fbcc319724eed + md5sum: de86d4d411baef1aaee0e72f519dbe1f + +- name: bcftools annotate test_bcftools_annotate_out_bcf + command: nextflow run tests/modules/bcftools/annotate -entry test_bcftools_annotate_out_bcf -c tests/config/nextflow.config + tags: + - bcftools/annotate + - bcftools + files: + - path: output/bcftools/test_compressed_bcf_annotated.bcf + - path: output/bcftools/versions.yml + md5sum: a57e62a5a189fe85aabd52c010d88ca6 From c189835b1bb444e5ee87416fdbea66e2c2ba365e Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Mon, 28 Feb 2022 19:08:58 +0100 Subject: [PATCH 065/592] add controlfreec (#1333) * add drafty controlfreec * get sofatware version * use maps in map * update paths to new and soon-to-be merged test files, add more input docu * Stab at documenting args map * Update syntax * Bit more description * Make the linter happy * tests pass locally * Add outputs & docu * tests are failing locally now :/ but cpn file can also be added * All tests passing, need to update test data again to add folder * Clean up files * Clean up files * Clean up files * Don't know how to get the test to run with the direcotry for now. they pass locally though * Make linter happy * Name process back * Update to use tar folder * fix the checksum --- modules/controlfreec/main.nf | 158 ++++++++++++++++++ modules/controlfreec/meta.yml | 183 +++++++++++++++++++++ tests/config/pytest_modules.yml | 4 + tests/config/test_data.config | 7 +- tests/modules/controlfreec/main.nf | 37 +++++ tests/modules/controlfreec/nextflow.config | 26 +++ tests/modules/controlfreec/test.yml | 22 +++ 7 files changed, 436 insertions(+), 1 deletion(-) create mode 100644 modules/controlfreec/main.nf create mode 100644 modules/controlfreec/meta.yml create mode 100644 tests/modules/controlfreec/main.nf create mode 100644 tests/modules/controlfreec/nextflow.config create mode 100644 tests/modules/controlfreec/test.yml diff --git a/modules/controlfreec/main.nf b/modules/controlfreec/main.nf new file mode 100644 index 00000000..21084f64 --- /dev/null +++ b/modules/controlfreec/main.nf @@ -0,0 +1,158 @@ +process CONTROLFREEC { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::control-freec=11.6" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': + 'quay.io/biocontainers/control-freec:11.6--h1b792b2_1' }" + + input: + tuple val(meta), path(mpileup_normal), path(mpileup_tumor), path(cpn_normal), path(cpn_tumor), path(minipileup_normal), path(minipileup_tumor) + path fasta + path fai + path snp_position + path known_snps + path known_snps_tbi + path chr_directory + path mappability + path target_bed + path gccontent_profile + + output: + tuple val(meta), path("*_ratio.BedGraph") , emit: bedgraph, optional: true + tuple val(meta), path("*_control.cpn") , emit: control_cpn + tuple val(meta), path("*_sample.cpn") , emit: sample_cpn + tuple val(meta), path("GC_profile.*.cpn") , emit: gcprofile_cpn, optional:true + tuple val(meta), path("*_BAF.txt") , emit: BAF + tuple val(meta), path("*_CNVs") , emit: CNV + tuple val(meta), path("*_info.txt") , emit: info + tuple val(meta), path("*_ratio.txt") , emit: ratio + tuple val(meta), path("config.txt") , emit: config + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + //"General" configurations + def bedgraphoutput = task.ext.args?["general"]?["bedgraphoutput"] ? "BedGraphOutput = ${task.ext.args["general"]["bedgraphoutput"]}" : "" + def chr_files = chr_directory ? "chrFiles =\${PWD}/${chr_directory}" : "" + def chr_length = fai ? "chrLenFile = \${PWD}/${fai}" : "" + def breakpointthreshold = task.ext.args?["general"]?["breakpointthreshold"] ? "breakPointThreshold = ${task.ext.args["general"]["breakpointthreshold"]}" : "" + def breakpointtype = task.ext.args?["general"]?["breakpointtype"] ? "breakPointType = ${task.ext.args["general"]["breakpointtype"]}" : "" + def coefficientofvariation = task.ext.args?["general"]?["coefficient"] ? "coefficientOfVariation = ${task.ext.args["general"]["coefficientofvariation"]}" : "" + def contamination = task.ext.args?["general"]?["contamination"] ? "contamination = ${task.ext.args["general"]["contamination"]}" : "" + def contaminationadjustment = task.ext.args?["general"]?["contaminationadjustment"] ? "contaminationAdjustment = ${task.ext.args["general"]["contaminationadjustment"]}" : "" + def degree = task.ext.args?["general"]?["degree"] ? "degree = ${task.ext.args["general"]["degree"]}" : "" + def forcegccontentnormalization = task.ext.args?["general"]?["forcegccontentnormalization"] ? "forceGCcontentNormalization = ${task.ext.args["general"]["forcegccontentnormalization"]}" : "" + def gccontentprofile = gccontent_profile ? "GCcontentProfile = ${gccontent_profile}" : "" + def mappability = mappability ? "gemMappabilityFile = \${PWD}/${mappability}" : "" + def intercept = task.ext.args?["general"]?["intercept"] ? "intercept = ${task.ext.args["general"]["intercept"]}" : "" + def mincnalength = task.ext.args?["general"]?["mincnalength"] ? "minCNAlength = ${task.ext.args["general"]["mincnalength"]}" : "" + def minmappabilityperwindow = task.ext.args?["general"]?["minmappabilityperwindow"] ? "minMappabilityPerWindow = ${task.ext.args["general"]["minmappabilityperwindow"]}" : "" + def minexpectedgc = task.ext.args?["general"]?["minexpectedgc"] ? "minExpectedGC = ${task.ext.args["general"]["minexpectedgc"]}" : "" + def maxexpectedgc = task.ext.args?["general"]?["maxexpectedgc"] ? "maxExpectedGC = ${task.ext.args["general"]["maxexpectedgc"]}" : "" + def minimalsubclonepresence = task.ext.args?["general"]?["minimalsubclonepresence"] ? "minimalSubclonePresence = ${task.ext.args["general"]["minimalsubclonepresence"]}" : "" + def noisydata = task.ext.args?["general"]?["noisydata"] ? "noisyData = ${task.ext.args["general"]["noisydata"]}" : "" + def output = task.ext.prefix ? "outputDir = \${PWD}/${task.ext.prefix}" : "" + def ploidy = task.ext.args?["general"]?["ploidy"] ? "ploidy = ${task.ext.args["general"]["ploidy"]}" : "" + def printNA = task.ext.args?["general"]?["printNA"] ? "printNA = ${task.ext.args["general"]["printNA"]}" : "" + def readcountthreshold = task.ext.args?["general"]?["readcountthreshold"] ? "readCountThreshold = ${task.ext.args["general"]["readcountthreshold"]}" : "" + def sex = task.ext.args?["general"]?["sex"] ? "sex = ${task.ext.args["general"]["sex"]}" : "" + def step = task.ext.args?["general"]?["step"] ? "step = ${task.ext.args["general"]["step"]}" : "" + def telocentromeric = task.ext.args?["general"]?["telocentromeric"] ? "telocentromeric = ${task.ext.args["general"]["telocentromeric"]} " : "" + def uniquematch = task.ext.args?["general"]?["uniquematch"] ? "uniqueMatch = ${task.ext.args["general"]["uniquematch"]}" : "" + def window = task.ext.args?["general"]?["window"] ? "window = ${task.ext.args["general"]["window"]}" : "" + + //"Control" configurations + def matefile_normal = mpileup_normal ? "mateFile = \${PWD}/${mpileup_normal}" : "" + def matecopynumberfile_normal = cpn_normal ? "mateCopyNumberFile = \${PWD}/${cpn_normal}" : "" + def minipileup_normal = minipileup_normal ? "miniPileup = \${PWD}/${minipileup_normal}" : "" + def inputformat_normal = task.ext.args?["control"]?["inputformat"] ? "inputFormat = ${task.ext.args["control"]["inputformat"]}" : "" + def mateorientation_normal = task.ext.args?["control"]?["mateorientation"] ? "mateOrientation = ${task.ext.args["control"]["mateorientation"]}" : "" + + //"Sample" configuration + def matefile_tumor = mpileup_tumor ? "mateFile = \${PWD}/${mpileup_tumor}" : "" + def matecopynumberfile_tumor = cpn_tumor ? "mateCopyNumberFile = \${PWD}/${cpn_tumor}" : "" + def minipileup_tumor = minipileup_tumor ? "miniPileup = \${PWD}/${minipileup_tumor}" : "" + def inputformat_tumor = task.ext.args?["sample"]?["inputformat"] ? "inputFormat = ${task.ext.args["sample"]["inputformat"]}" : "" + def mateorientation_tumor = task.ext.args?["sample"]?["mateorientation"] ? "mateOrientation = ${task.ext.args["sample"]["mateorientation"]}" : "" + + //"BAF" configuration + def makepileup = snp_position ? "makePileup = \${PWD}/${snp_position}" : "" + def fastafile = fasta ? "fastaFile = \${PWD}/${fasta}" : "" + def minimalcoverageperposition = task.ext.args?["BAF"]?["minimalcoverageperposition"] ? "minimalCoveragePerPosition = ${task.ext.args["BAF"]["minimalcoverageperposition"]}" : "" + def minimalqualityperposition = task.ext.args?["BAF"]?["minimalqualityperposition"] ? "minimalQualityPerPosition = ${task.ext.args["BAF"]["minimalqualityperposition"]}" : "" + def shiftinquality = task.ext.args?["BAF"]?["shiftinquality"] ? "shiftInQuality = ${task.ext.args["BAF"]["shiftinquality"]}" : "" + def snpfile = known_snps ? "SNPfile = \$PWD/${known_snps}" : "" + + //"Target" configuration + def target_bed = target_bed ? "captureRegions = ${target_bed}" : "" + """ + touch config.txt + + echo "[general]" >> config.txt + echo ${bedgraphoutput} >> config.txt + echo ${breakpointthreshold} >> config.txt + echo ${breakpointtype} >> config.txt + echo ${chr_files} >> config.txt + echo ${chr_length} >> config.txt + echo ${coefficientofvariation} >> config.txt + echo ${contamination} >> config.txt + echo ${contaminationadjustment} >> config.txt + echo ${degree} >> config.txt + echo ${forcegccontentnormalization} >> config.txt + echo ${gccontentprofile} >> config.txt + echo ${mappability} >> config.txt + echo ${intercept} >> config.txt + echo ${mincnalength} >> config.txt + echo ${minmappabilityperwindow} >> config.txt + echo ${minexpectedgc} >> config.txt + echo ${maxexpectedgc} >> config.txt + echo ${minimalsubclonepresence} >> config.txt + echo "maxThreads = ${task.cpus}" >> config.txt + echo ${noisydata} >> config.txt + echo ${output} >> config.txt + echo ${ploidy} >> config.txt + echo ${printNA} >> config.txt + echo ${readcountthreshold} >> config.txt + echo ${sex} >> config.txt + echo ${step} >> config.txt + echo ${telocentromeric} >> config.txt + echo ${uniquematch} >> config.txt + echo ${window} >> config.txt + + echo "[control]" >> config.txt + echo ${matefile_normal} >> config.txt + echo ${matecopynumberfile_normal} >> config.txt + echo ${minipileup_normal} >> config.txt + echo ${inputformat_normal} >> config.txt + echo ${mateorientation_normal} >> config.txt + + echo "[sample]" >> config.txt + echo ${matefile_tumor} >> config.txt + echo ${matecopynumberfile_tumor} >> config.txt + echo ${minipileup_tumor} >> config.txt + echo ${inputformat_tumor} >> config.txt + echo ${mateorientation_tumor} >> config.txt + + echo "[BAF]" >> config.txt + echo ${makepileup} >> config.txt + echo ${fastafile} >> config.txt + echo ${minimalcoverageperposition} >> config.txt + echo ${minimalqualityperposition} >> config.txt + echo ${shiftinquality} >> config.txt + echo ${snpfile} >> config.txt + + echo "[target]" >> config.txt + echo ${target_bed} >> config.txt + + freec -conf config.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ +} diff --git a/modules/controlfreec/meta.yml b/modules/controlfreec/meta.yml new file mode 100644 index 00000000..4d1e8674 --- /dev/null +++ b/modules/controlfreec/meta.yml @@ -0,0 +1,183 @@ +name: controlfreec +description: Copy number and genotype annotation from whole genome and whole exome sequencing data +keywords: + - cna + - cnv + - somatic + - single + - tumor-only +tools: + - controlfreec: + description: Copy number and genotype annotation from whole genome and whole exome sequencing data. + homepage: http://boevalab.inf.ethz.ch/FREEC + documentation: http://boevalab.inf.ethz.ch/FREEC/tutorial.html + tool_dev_url: https://github.com/BoevaLab/FREEC/ + doi: "10.1093/bioinformatics/btq635" + licence: ['GPL >=2'] + +input: + - args: + type: map + description: | + Groovy Map containing tool parameters. MUST follow the structure/keywords below and be provided via modules.config. + parameters can be removed from the map, if they are not set. All value must be surrounded by quotes, meta map parameters can be set with, i.e. sex = meta.sex: + For default values, please check the documentation above. + + ``` + { + [ + "general" :[ + "bedgraphoutput": , + "breakpointthreshold": , + "breakpointtype": , + "coefficientofvariation": , + "contamination": , + "contaminationadjustment": , + "degree": , + "forcegccontentnormalization": , + "gccontentprofile": , + "intercept": , + "mincnalength": , + "minmappabilityperwindow": , + "minexpectedgc": , + "maxexpectedgc": , + "minimalsubclonepresence": , + "noisydata": , + "ploidy": , + "printNA": , + "readcountthreshold": , + "sex": , + "step": , + "telocentromeric": , + "uniquematch": , + "window": + ], + "control":[ + "inputformat": , + "mateorientation": , + ], + "sample":[ + "inputformat": , + "mateorientation": , + ], + "BAF":[ + "minimalcoverageperposition": , + "minimalqualityperposition": , + "shiftinquality": + ] + ] + } + ``` + + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - mateFile_normal: + type: file + description: File with mapped reads + pattern: "*.{sam,bam,pileup(.gz),bowtie(.gz),eland(.gz),arachne(.gz),psl(.gz),bed(.gz)}" + - mateFile_tumor: + type: file + description: File with mapped reads + pattern: "*.{sam,bam,pileup(.gz),bowtie(.gz),eland(.gz),arachne(.gz),psl(.gz),bed(.gz)}" + - cpn_normal: + type: file + description: Raw copy number profiles (optional) + pattern: "*.cpn" + - cpn_tumor: + type: file + description: Raw copy number profiles (optional) + pattern: "*.cpn" + - minipileup_normal: + type: file + description: miniPileup file from previous run (optional) + pattern: "*.pileup" + - minipileup_tumor: + type: file + description: miniPileup file from previous run (optional) + pattern: "*.pileup" + - fasta: + type: file + description: Reference file (optional; required if args 'makePileup' is set) + pattern: "*.{fasta,fna,fa}" + - fai: + type: file + description: Fasta index + pattern: "*.fai" + - snp_position: + type: file + description: + pattern: "*.{}" + - known_snps: + type: file + description: File with known SNPs + pattern: "*.{vcf,vcf.gz}" + - known_snps_tbi: + type: file + description: Index of known_snps + pattern: "*.tbi" + - chr_directory: + type: file + description: Path to directory with chromosome fasta files (optional, required if gccontentprofile is not provided) + pattern: "*/" + - mappability: + type: file + description: Contains information of mappable positions (optional) + pattern: "*.gem" + - target_bed: + type: file + description: Sorted bed file containing capture regions (optional) + pattern: "*.bed" + + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bedgraph: + type: file + description: Bedgraph format for the UCSC genome browser + pattern: ".bedgraph" + - control_cpn: + type: file + description: files with raw copy number profiles + pattern: "*_control.cpn" + - sample_cpn: + type: file + description: files with raw copy number profiles + pattern: "*_sample.cpn" + - gcprofile_cpn: + type: file + description: file with GC-content profile. + pattern: "GC_profile.*.cpn" + - BAF: + type: file + description: file B-allele frequencies for each possibly heterozygous SNP position + pattern: "*_BAF.txt" + - CNV: + type: file + description: file with coordinates of predicted copy number alterations. + pattern: "*_CNVs" + - info: + type: file + description: parsable file with information about FREEC run + pattern: "*_info.txt" + - ratio: + type: file + description: file with ratios and predicted copy number alterations for each window + pattern: "*_ratio.txt" + - config: + type: file + description: Config file used to run Control-FREEC + pattern: "config.txt" + +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index c553b9ce..f3cbaa33 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -356,6 +356,10 @@ cnvkit/batch: - modules/cnvkit/batch/** - tests/modules/cnvkit/batch/** +controlfreec: + - modules/controlfreec/** + - tests/modules/controlfreec/** + cooler/cload: - modules/cooler/cload/** - tests/modules/cooler/cload/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 7c3e183c..a3c26bcc 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -123,10 +123,12 @@ params { genome_21_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta" genome_21_fasta_fai = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai" genome_21_dict = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.dict" + genome_21_sizes = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.sizes" genome_21_interval_list = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.interval_list" genome_21_multi_interval_bed = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed" genome_21_multi_interval_bed_gz = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed.gz" genome_21_multi_interval_bed_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed.gz.tbi" + genome_21_chromosomes_dir = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/chromosomes.tar.gz" dbsnp_146_hg38_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.vcf.gz" dbsnp_146_hg38_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.vcf.gz.tbi" @@ -156,7 +158,7 @@ params { justhusky_ped = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/ped/justhusky.ped" justhusky_minimal_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/ped/justhusky_minimal.vcf.gz" justhusky_minimal_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/ped/justhusky_minimal.vcf.gz.tbi" - + vcfanno_tar_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/vcfanno/vcfanno_grch38_module_test.tar.gz" vcfanno_toml = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/vcfanno/vcfanno.toml" } @@ -272,6 +274,9 @@ params { test_genome21_indels_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz" test_genome21_indels_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz.tbi" + test_mpileup = "${test_data_dir}/genomics/homo_sapiens/illumina/mpileup/test.mpileup.gz" + test2_mpileup = "${test_data_dir}/genomics/homo_sapiens/illumina/mpileup/test2.mpileup.gz" + test_broadpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/broadpeak/test.broadPeak" test2_broadpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/broadpeak/test2.broadPeak" diff --git a/tests/modules/controlfreec/main.nf b/tests/modules/controlfreec/main.nf new file mode 100644 index 00000000..576a845c --- /dev/null +++ b/tests/modules/controlfreec/main.nf @@ -0,0 +1,37 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CONTROLFREEC } from '../../../modules/controlfreec/main.nf' +include { UNTAR } from '../../../modules/untar/main.nf' +workflow test_controlfreec { + + input = [ + [ id:'test', single_end:false, sex:'XX' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_mpileup'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC ( input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar, + [], + target_bed, + [] + ) +} diff --git a/tests/modules/controlfreec/nextflow.config b/tests/modules/controlfreec/nextflow.config new file mode 100644 index 00000000..5c4250be --- /dev/null +++ b/tests/modules/controlfreec/nextflow.config @@ -0,0 +1,26 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName:CONTROLFREEC{ + ext.args = { [ + "sample":[ + inputformat: 'pileup', + mateorientation: 'FR' + ], + "general" :[ + bedgraphoutput: "TRUE", + noisydata: "TRUE", + minexpectedgc: "0", + readcountthreshold: "1", + sex: meta.sex, + window: "10", + ], + "control":[ + inputformat: "pileup", + mateorientation: "FR" + ] + ] + } + } +} diff --git a/tests/modules/controlfreec/test.yml b/tests/modules/controlfreec/test.yml new file mode 100644 index 00000000..14c30205 --- /dev/null +++ b/tests/modules/controlfreec/test.yml @@ -0,0 +1,22 @@ +- name: controlfreec test_controlfreec + command: nextflow run tests/modules/controlfreec -entry test_controlfreec -c tests/config/nextflow.config + tags: + - controlfreec + files: + - path: output/controlfreec/config.txt + - path: output/controlfreec/test.mpileup.gz_control.cpn + md5sum: 1768b571677c418560e5a8fe203bdc79 + - path: output/controlfreec/test2.mpileup.gz_BAF.txt + md5sum: 3bb7437001cf061a77eaf87b8558c48d + - path: output/controlfreec/test2.mpileup.gz_CNVs + md5sum: 1f4f5834dbd1490afdb22f6d3091c4c9 + - path: output/controlfreec/test2.mpileup.gz_info.txt + md5sum: 1a3055d35028525ccc9e693cc9f335e0 + - path: output/controlfreec/test2.mpileup.gz_ratio.BedGraph + md5sum: 8ba455b232be20cdcc5bf1e4035e8032 + - path: output/controlfreec/test2.mpileup.gz_ratio.txt + md5sum: b76b2434de710325069e37fb1e132760 + - path: output/controlfreec/test2.mpileup.gz_sample.cpn + md5sum: c80dad58a77b1d7ba6d273999f4b4b4b + - path: output/controlfreec/versions.yml + md5sum: ff93f6466d4686aab708425782c6c848 From 950700bcdc0e9a2b6883d40d2c51c6fc435cd714 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Mon, 28 Feb 2022 23:13:11 +0100 Subject: [PATCH 066/592] Update samtools version (#1361) * Update samtools version * update checksums --- modules/bwa/mem/main.nf | 6 +++--- modules/bwa/sampe/main.nf | 6 +++--- modules/bwa/samse/main.nf | 6 +++--- modules/bwamem2/mem/main.nf | 6 +++--- modules/custom/getchromsizes/main.nf | 6 +++--- modules/qualimap/bamqccram/main.nf | 6 +++--- tests/modules/bwa/sampe/test.yml | 2 +- tests/modules/bwa/samse/test.yml | 2 +- 8 files changed, 20 insertions(+), 20 deletions(-) diff --git a/modules/bwa/mem/main.nf b/modules/bwa/mem/main.nf index 9a91c77f..27ea6f42 100644 --- a/modules/bwa/mem/main.nf +++ b/modules/bwa/mem/main.nf @@ -2,10 +2,10 @@ process BWA_MEM { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.12" : null) + conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:66ed1b38d280722529bb8a0167b0cf02f8a0b488-0' : - 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:66ed1b38d280722529bb8a0167b0cf02f8a0b488-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' : + 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' }" input: tuple val(meta), path(reads) diff --git a/modules/bwa/sampe/main.nf b/modules/bwa/sampe/main.nf index e781679e..73345d81 100644 --- a/modules/bwa/sampe/main.nf +++ b/modules/bwa/sampe/main.nf @@ -2,10 +2,10 @@ process BWA_SAMPE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.12" : null) + conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:66ed1b38d280722529bb8a0167b0cf02f8a0b488-0' : - 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:66ed1b38d280722529bb8a0167b0cf02f8a0b488-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' : + 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' }" input: tuple val(meta), path(reads), path(sai) diff --git a/modules/bwa/samse/main.nf b/modules/bwa/samse/main.nf index ac04c739..2c327d99 100644 --- a/modules/bwa/samse/main.nf +++ b/modules/bwa/samse/main.nf @@ -2,10 +2,10 @@ process BWA_SAMSE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.12" : null) + conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:66ed1b38d280722529bb8a0167b0cf02f8a0b488-0' : - 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:66ed1b38d280722529bb8a0167b0cf02f8a0b488-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' : + 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' }" input: tuple val(meta), path(reads), path(sai) diff --git a/modules/bwamem2/mem/main.nf b/modules/bwamem2/mem/main.nf index 56f595ec..21dfb1d6 100644 --- a/modules/bwamem2/mem/main.nf +++ b/modules/bwamem2/mem/main.nf @@ -2,10 +2,10 @@ process BWAMEM2_MEM { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::bwa-mem2=2.2.1 bioconda::samtools=1.12" : null) + conda (params.enable_conda ? "bioconda::bwa-mem2=2.2.1 bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:cf603b12db30ec91daa04ba45a8ee0f35bbcd1e2-0' : - 'quay.io/biocontainers/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:cf603b12db30ec91daa04ba45a8ee0f35bbcd1e2-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:8ee25ae85d7a2bacac3e3139db209aff3d605a18-0' : + 'quay.io/biocontainers/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:8ee25ae85d7a2bacac3e3139db209aff3d605a18-0' }" input: tuple val(meta), path(reads) diff --git a/modules/custom/getchromsizes/main.nf b/modules/custom/getchromsizes/main.nf index 39da7d34..bbcfa9be 100644 --- a/modules/custom/getchromsizes/main.nf +++ b/modules/custom/getchromsizes/main.nf @@ -2,10 +2,10 @@ process CUSTOM_GETCHROMSIZES { tag "$fasta" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.14--hb421002_0' : - 'quay.io/biocontainers/samtools:1.14--hb421002_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : + 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: path fasta diff --git a/modules/qualimap/bamqccram/main.nf b/modules/qualimap/bamqccram/main.nf index b9a5538d..ab3fd51a 100644 --- a/modules/qualimap/bamqccram/main.nf +++ b/modules/qualimap/bamqccram/main.nf @@ -2,10 +2,10 @@ process QUALIMAP_BAMQCCRAM { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::qualimap=2.2.2d bioconda::samtools=1.12" : null) + conda (params.enable_conda ? "bioconda::qualimap=2.2.2d bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:4bf11d12f2c3eccf1eb585097c0b6fd31c18c418-0' : - 'quay.io/biocontainers/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:4bf11d12f2c3eccf1eb585097c0b6fd31c18c418-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:9838874d42d4477d5042782ee019cec9854da7d5-0' : + 'quay.io/biocontainers/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:9838874d42d4477d5042782ee019cec9854da7d5-0' }" input: tuple val(meta), path(cram), path(crai) diff --git a/tests/modules/bwa/sampe/test.yml b/tests/modules/bwa/sampe/test.yml index fb6d7708..bf221ebc 100644 --- a/tests/modules/bwa/sampe/test.yml +++ b/tests/modules/bwa/sampe/test.yml @@ -5,4 +5,4 @@ - bwa/sampe files: - path: output/bwa/test.bam - md5sum: f6ad85d66d44c5d26e692109d2e34100 + md5sum: 01d1d71c88b6de07ed51d1d06e9e970b diff --git a/tests/modules/bwa/samse/test.yml b/tests/modules/bwa/samse/test.yml index 5a2fe1e3..c45f69dc 100644 --- a/tests/modules/bwa/samse/test.yml +++ b/tests/modules/bwa/samse/test.yml @@ -5,4 +5,4 @@ - bwa/samse files: - path: output/bwa/test.bam - md5sum: 27eb91146e45dee65664c18596be4262 + md5sum: ddfa4a8f6b65d44704a2d9528abc7e79 From 7ec09d0ef4df89617baacc9b2dafcddb7cd4b05a Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Tue, 1 Mar 2022 12:41:20 +0100 Subject: [PATCH 067/592] Fix: use actual tar conda environment for untar module (#1362) * fix: remove left-over unnecessary code * Update main.nf * Update modules/untar/main.nf --- modules/untar/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/untar/main.nf b/modules/untar/main.nf index 01205e60..bbae948a 100644 --- a/modules/untar/main.nf +++ b/modules/untar/main.nf @@ -2,7 +2,7 @@ process UNTAR { tag "$archive" label 'process_low' - conda (params.enable_conda ? "conda-forge::sed=4.7" : null) + conda (params.enable_conda ? "conda-forge::tar=1.32" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv1/biocontainers_v1.2.0_cv1.img' : 'biocontainers/biocontainers:v1.2.0_cv1' }" From fe4eb459fbc76fbcbf63e204b6f5b79f88dca452 Mon Sep 17 00:00:00 2001 From: Lauri Mesilaakso Date: Tue, 1 Mar 2022 14:29:46 +0100 Subject: [PATCH 068/592] Add stranger (#1360) * Add stranger * Add when clause * Update paths * Update modules/stranger/main.nf Co-authored-by: Mahesh Binzer-Panchal Co-authored-by: Mahesh Binzer-Panchal --- modules/stranger/main.nf | 33 +++++++++++++++++++ modules/stranger/meta.yml | 44 ++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/stranger/main.nf | 19 +++++++++++ tests/modules/stranger/nextflow.config | 5 +++ tests/modules/stranger/test.yml | 13 ++++++++ 6 files changed, 118 insertions(+) create mode 100644 modules/stranger/main.nf create mode 100644 modules/stranger/meta.yml create mode 100644 tests/modules/stranger/main.nf create mode 100644 tests/modules/stranger/nextflow.config create mode 100644 tests/modules/stranger/test.yml diff --git a/modules/stranger/main.nf b/modules/stranger/main.nf new file mode 100644 index 00000000..2e647627 --- /dev/null +++ b/modules/stranger/main.nf @@ -0,0 +1,33 @@ +process STRANGER { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::stranger=0.8.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/stranger:0.8.1--pyh5e36f6f_0': + 'quay.io/biocontainers/stranger:0.8.1--pyh5e36f6f_0' }" + + input: + tuple val(meta), path(vcf) + + output: + tuple val(meta), path("*.gz"), emit: vcf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + stranger \\ + $args \\ + $vcf | gzip --no-name > ${prefix}.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + stranger: \$( stranger --version ) + END_VERSIONS + """ +} diff --git a/modules/stranger/meta.yml b/modules/stranger/meta.yml new file mode 100644 index 00000000..a9a280ad --- /dev/null +++ b/modules/stranger/meta.yml @@ -0,0 +1,44 @@ +name: stranger +description: Annotates output files from ExpansionHunter with the pathologic implications of the repeat sizes. +keywords: + - STR + - repeat_expansions + - annotate + - vcf +tools: + - stranger: + description: Annotate VCF files with str variants + homepage: https://github.com/moonso/stranger + documentation: https://github.com/moonso/stranger + tool_dev_url: https://github.com/moonso/stranger + doi: "10.5281/zenodo.4548873" + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF with repeat expansions + pattern: "*.{vcf.gz,vcf}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf: + type: file + description: annotated VCF with keys STR_STATUS, NormalMax and PathologicMin + pattern: "*.{vcf.gz}" + +authors: + - "@ljmesi" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index f3cbaa33..8ec52a63 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1565,6 +1565,10 @@ star/genomegenerate: - modules/star/genomegenerate/** - tests/modules/star/genomegenerate/** +stranger: + - modules/stranger/** + - tests/modules/stranger/** + strelka/germline: - modules/strelka/germline/** - tests/modules/strelka/germline/** diff --git a/tests/modules/stranger/main.nf b/tests/modules/stranger/main.nf new file mode 100644 index 00000000..bc4bd3ce --- /dev/null +++ b/tests/modules/stranger/main.nf @@ -0,0 +1,19 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { EXPANSIONHUNTER } from '../../../modules/expansionhunter/main.nf' +include { STRANGER } from '../../../modules/stranger/main.nf' + +workflow test_stranger { + + input = [ [ id:'test', gender:'male' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + variant_catalog = file(params.test_data['homo_sapiens']['genome']['repeat_expansions'], checkIfExists: true) + + EXPANSIONHUNTER ( input, fasta, variant_catalog ) + STRANGER ( EXPANSIONHUNTER.out.vcf ) +} diff --git a/tests/modules/stranger/nextflow.config b/tests/modules/stranger/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/stranger/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/stranger/test.yml b/tests/modules/stranger/test.yml new file mode 100644 index 00000000..821928e8 --- /dev/null +++ b/tests/modules/stranger/test.yml @@ -0,0 +1,13 @@ +- name: stranger test_stranger + command: nextflow run tests/modules/stranger -entry test_stranger -c tests/config/nextflow.config + tags: + - stranger + files: + - path: output/expansionhunter/test.vcf + md5sum: cfd4a1d35c0e469b99eb6aaa6d22de76 + - path: output/expansionhunter/versions.yml + md5sum: f3962a6eecfddf9682414c0f605a885a + - path: output/stranger/test.vcf.gz + md5sum: bbe15159195681d5c18596d3ad85c78f + - path: output/stranger/versions.yml + md5sum: 5ec35fd835fb1be50bc3e7c004310fc0 From 4ab098733a8f7df71e6b83af2893f3e6aa3a7bfc Mon Sep 17 00:00:00 2001 From: Benjamin Wingfield Date: Tue, 1 Mar 2022 18:13:05 +0000 Subject: [PATCH 069/592] set memory in MB (#1260) Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> --- modules/plink2/extract/main.nf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/plink2/extract/main.nf b/modules/plink2/extract/main.nf index 89cffdc3..15f9c038 100644 --- a/modules/plink2/extract/main.nf +++ b/modules/plink2/extract/main.nf @@ -23,11 +23,13 @@ process PLINK2_EXTRACT { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" if( "$pgen" == "${prefix}.pgen" ) error "Input and output names are the same, use \"task.ext.prefix\" in modules.config to disambiguate!" + def mem_mb = task.memory.toMega() """ plink2 \\ + --threads $task.cpus \\ + --memory $mem_mb \\ --pfile ${pgen.baseName} \\ $args \\ - --threads $task.cpus \\ --extract $variants \\ --make-pgen vzs \\ --out ${prefix} From 8e5eaf1fa442225f8d24e95bba2a19a7e2fc9ce9 Mon Sep 17 00:00:00 2001 From: Benjamin Wingfield Date: Wed, 2 Mar 2022 00:43:28 +0000 Subject: [PATCH 070/592] Update plink2/vcf to output zstandard compressed data automatically (#1258) * update plink2/vcf to output zstandard compressed data automatically * update meta * set plink CPU and memory usage Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> --- modules/plink2/vcf/main.nf | 12 ++++++++---- modules/plink2/vcf/meta.yml | 2 +- tests/modules/plink2/vcf/test.yml | 10 ++++++---- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/modules/plink2/vcf/main.nf b/modules/plink2/vcf/main.nf index 041cb4b9..090851a8 100644 --- a/modules/plink2/vcf/main.nf +++ b/modules/plink2/vcf/main.nf @@ -11,10 +11,10 @@ process PLINK2_VCF { tuple val(meta), path(vcf) output: - tuple val(meta), path("*.pgen"), emit: pgen - tuple val(meta), path("*.psam"), emit: psam - tuple val(meta), path("*.pvar"), emit: pvar - path "versions.yml" , emit: versions + tuple val(meta), path("*.pgen") , emit: pgen + tuple val(meta), path("*.psam") , emit: psam + tuple val(meta), path("*.pvar.zst"), emit: pvar + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -22,10 +22,14 @@ process PLINK2_VCF { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def mem_mb = task.memory.toMega() """ plink2 \\ + --threads $task.cpus \\ + --memory $mem_mb \\ $args \\ --vcf $vcf \\ + --make-pgen vzs \\ --out ${prefix} cat <<-END_VERSIONS > versions.yml diff --git a/modules/plink2/vcf/meta.yml b/modules/plink2/vcf/meta.yml index 5697ebef..3c776daf 100644 --- a/modules/plink2/vcf/meta.yml +++ b/modules/plink2/vcf/meta.yml @@ -46,7 +46,7 @@ output: - pvar: type: file description: PLINK 2 variant information file - pattern: "*.{psam}" + pattern: "*.{pvar.zst}" authors: - "@nebfield" diff --git a/tests/modules/plink2/vcf/test.yml b/tests/modules/plink2/vcf/test.yml index 52f58a42..d354af48 100644 --- a/tests/modules/plink2/vcf/test.yml +++ b/tests/modules/plink2/vcf/test.yml @@ -1,12 +1,14 @@ - name: plink2 vcf test_plink2_vcf - command: nextflow run ./tests/modules/plink2/vcf -entry test_plink2_vcf -c ./tests/config/nextflow.config -c ./tests/modules/plink2/vcf/nextflow.config + command: nextflow run tests/modules/plink2/vcf -entry test_plink2_vcf -c tests/config/nextflow.config tags: - - plink2/vcf - plink2 + - plink2/vcf files: - path: output/plink2/test.pgen md5sum: d66d3cd4a6c9cca1a4073d7f4b277041 - path: output/plink2/test.psam md5sum: dc3b77d7753a7bed41734323e3549b10 - - path: output/plink2/test.pvar - md5sum: d61e53f847a6335138b584216b4e45d0 + - path: output/plink2/test.pvar.zst + md5sum: b53cccb83e024a39789af5eab8de1c28 + - path: output/plink2/versions.yml + md5sum: 82ada74bc81473b7cba377f696acf54c From 4983f77796ce7e367df6e1dd68ffd24cc924074f Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 2 Mar 2022 13:04:22 +0100 Subject: [PATCH 071/592] Add `hamronization/deeparg` (#1364) * fix: remove left-over unnecessary code * Add hamronizer/deeparg * Add when condition * Apply suggestions from code review * Update modules/hamronization/deeparg/meta.yml --- modules/hamronization/deeparg/main.nf | 44 ++++++++++++++ modules/hamronization/deeparg/meta.yml | 60 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/config/test_data.config | 4 +- tests/modules/hamronization/deeparg/main.nf | 15 +++++ .../hamronization/deeparg/nextflow.config | 5 ++ tests/modules/hamronization/deeparg/test.yml | 8 +++ 7 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 modules/hamronization/deeparg/main.nf create mode 100644 modules/hamronization/deeparg/meta.yml create mode 100644 tests/modules/hamronization/deeparg/main.nf create mode 100644 tests/modules/hamronization/deeparg/nextflow.config create mode 100644 tests/modules/hamronization/deeparg/test.yml diff --git a/modules/hamronization/deeparg/main.nf b/modules/hamronization/deeparg/main.nf new file mode 100644 index 00000000..ebfdcf17 --- /dev/null +++ b/modules/hamronization/deeparg/main.nf @@ -0,0 +1,44 @@ +process HAMRONIZATION_DEEPARG { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::hamronization=1.0.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/hamronization:1.0.3--py_0': + 'quay.io/biocontainers/hamronization:1.0.3--py_0' }" + + input: + tuple val(meta), path(report) + val(format) + val(software_version) + val(reference_db_version) + + output: + tuple val(meta), path("*.json"), optional: true, emit: json + tuple val(meta), path("*.tsv") , optional: true, emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + hamronize \\ + deeparg \\ + ${report} \\ + $args \\ + --format ${format} \\ + --analysis_software_version ${software_version} \\ + --reference_database_version ${reference_db_version} \\ + --input_file_name ${prefix} \\ + > ${prefix}.${format} + + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + hamronization: \$(echo \$(hamronize --version 2>&1) | cut -f 2 -d ' ' ) + END_VERSIONS + """ +} diff --git a/modules/hamronization/deeparg/meta.yml b/modules/hamronization/deeparg/meta.yml new file mode 100644 index 00000000..0747700e --- /dev/null +++ b/modules/hamronization/deeparg/meta.yml @@ -0,0 +1,60 @@ +name: hamronization_deeparg +description: Tool to convert and summarize DeepARG outputs using the hAMRonization specification +keywords: + - amr + - antimicrobial resistance + - reporting + - deeparg +tools: + - hamronization: + description: Tool to convert and summarize AMR gene detection outputs using the hAMRonization specification + homepage: https://github.com/pha4ge/hAMRonization/blob/master/README.md + documentation: https://github.com/pha4ge/hAMRonization/blob/master/README.md + tool_dev_url: https://github.com/pha4ge/hAMRonization + doi: "" + licence: ['GNU Lesser General Public v3 (LGPL v3)'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - report: + type: file + description: Output .mapping.ARG file from DeepARG + pattern: "*.mapping.ARG" + - format: + type: value + description: Type of report file to be produced + pattern: "tsv|json" + - software_version: + type: value + description: Version of DeepARG used + pattern: "[0-9].[0-9].[0-9]" + - reference_db_version: + type: value + description: Database version of DeepARG used + pattern: "[0-9]" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - json: + type: file + description: hAMRonised report in JSON format + pattern: "*.json" + - tsv: + type: file + description: hAMRonised report in TSV format + pattern: "*.json" + +authors: + - "@jfy133" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 8ec52a63..7146639c 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -752,6 +752,10 @@ gunzip: - modules/gunzip/** - tests/modules/gunzip/** +hamronization/deeparg: + - modules/hamronization/deeparg/** + - tests/modules/hamronization/deeparg/** + hicap: - modules/hicap/** - tests/modules/hicap/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index a3c26bcc..dda10192 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -68,7 +68,7 @@ params { test_computematrix_mat_gz = "${test_data_dir}/genomics/sarscov2/illumina/deeptools/test.computeMatrix.mat.gz" test_bcf = "${test_data_dir}/genomics/sarscov2/illumina/vcf/test.bcf" - + test_vcf = "${test_data_dir}/genomics/sarscov2/illumina/vcf/test.vcf" test_vcf_gz = "${test_data_dir}/genomics/sarscov2/illumina/vcf/test.vcf.gz" test_vcf_gz_tbi = "${test_data_dir}/genomics/sarscov2/illumina/vcf/test.vcf.gz.tbi" @@ -321,6 +321,8 @@ params { 'genome' { genome_fna_gz = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.fna.gz" genome_paf = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.paf" + genome_mapping_potential_arg = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.mapping.potential.ARG" + } 'illumina' { test1_contigs_fa_gz = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/illumina/fasta/test1.contigs.fa.gz" diff --git a/tests/modules/hamronization/deeparg/main.nf b/tests/modules/hamronization/deeparg/main.nf new file mode 100644 index 00000000..9888bc42 --- /dev/null +++ b/tests/modules/hamronization/deeparg/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { HAMRONIZATION_DEEPARG } from '../../../../modules/hamronization/deeparg/main.nf' + +workflow test_hamronization_deeparg { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['bacteroides_fragilis']['genome']['genome_mapping_potential_arg'], checkIfExists: true), + ] + + HAMRONIZATION_DEEPARG ( input, 'tsv', '1.0.2', '2' ) +} diff --git a/tests/modules/hamronization/deeparg/nextflow.config b/tests/modules/hamronization/deeparg/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/hamronization/deeparg/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/hamronization/deeparg/test.yml b/tests/modules/hamronization/deeparg/test.yml new file mode 100644 index 00000000..4884ac6c --- /dev/null +++ b/tests/modules/hamronization/deeparg/test.yml @@ -0,0 +1,8 @@ +- name: hamronization deeparg test_hamronization_deeparg + command: nextflow run tests/modules/hamronization/deeparg -entry test_hamronization_deeparg -c tests/config/nextflow.config + tags: + - hamronization + - hamronization/deeparg + files: + - path: output/hamronization/test.tsv + md5sum: 3c315605aca0c5964796bb5fd4cdd522 From 2cd502a236aec1a1eecbe1f9189af3414efbf1d8 Mon Sep 17 00:00:00 2001 From: Michael J Cipriano <42848032+mjcipriano@users.noreply.github.com> Date: Wed, 2 Mar 2022 08:27:38 -0500 Subject: [PATCH 072/592] Faqcs patch (#1367) * faqcs update to capture debug output * change paths Co-authored-by: Cipriano --- modules/faqcs/main.nf | 1 + modules/faqcs/meta.yml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/modules/faqcs/main.nf b/modules/faqcs/main.nf index a03a0150..24f81a95 100644 --- a/modules/faqcs/main.nf +++ b/modules/faqcs/main.nf @@ -13,6 +13,7 @@ process FAQCS { output: tuple val(meta), path('*.trimmed.fastq.gz') , emit: reads tuple val(meta), path('*.stats.txt') , emit: stats + tuple val(meta), path('*.txt') , optional:true, emit: txt tuple val(meta), path('*_qc_report.pdf') , optional:true, emit: statspdf tuple val(meta), path('*.log') , emit: log tuple val(meta), path('*.discard.fastq.gz') , optional:true, emit: reads_fail diff --git a/modules/faqcs/meta.yml b/modules/faqcs/meta.yml index eca35e65..1161a13d 100644 --- a/modules/faqcs/meta.yml +++ b/modules/faqcs/meta.yml @@ -54,6 +54,10 @@ output: type: file description: trimming/qc text stats file pattern: "*.stats.txt" + - txt: + type: file + description: trimming/qc text txt files from --debug option + pattern: "*.txt" - statspdf: type: file description: trimming/qc pdf report file From fba1b381f5629d2dfce3ec2350dc03821fd275ad Mon Sep 17 00:00:00 2001 From: Michael J Cipriano <42848032+mjcipriano@users.noreply.github.com> Date: Wed, 2 Mar 2022 08:53:05 -0500 Subject: [PATCH 073/592] Faqcs patch to add tests for --debug output (#1368) * faqcs update to capture debug output * change paths * change nf.config on faqcs * Updated test,yml on faqcs Co-authored-by: Cipriano --- tests/modules/faqcs/nextflow.config | 1 + tests/modules/faqcs/test.yml | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/tests/modules/faqcs/nextflow.config b/tests/modules/faqcs/nextflow.config index 8730f1c4..a75988d0 100644 --- a/tests/modules/faqcs/nextflow.config +++ b/tests/modules/faqcs/nextflow.config @@ -1,5 +1,6 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + ext.args = {"--debug" } } diff --git a/tests/modules/faqcs/test.yml b/tests/modules/faqcs/test.yml index 47f973f3..ef50d30d 100644 --- a/tests/modules/faqcs/test.yml +++ b/tests/modules/faqcs/test.yml @@ -3,8 +3,20 @@ tags: - faqcs files: + - path: output/faqcs/qa.test.base_content.txt + md5sum: f992603f01ca430c03c8aae02eba2f5d + - path: output/faqcs/qa.test.for_qual_histogram.txt + md5sum: a3d462ab84151e982f99f85f52c21de3 + - path: output/faqcs/qa.test.length_count.txt + md5sum: 80915f09fbaf5884c32e95acab2d031c + - path: output/faqcs/test.base_content.txt + md5sum: f992603f01ca430c03c8aae02eba2f5d - path: output/faqcs/test.fastp.log md5sum: be79dc893f87de1f82faf749cdfb848c + - path: output/faqcs/test.for_qual_histogram.txt + md5sum: a3d462ab84151e982f99f85f52c21de3 + - path: output/faqcs/test.length_count.txt + md5sum: 80915f09fbaf5884c32e95acab2d031c - path: output/faqcs/test.stats.txt md5sum: ea20e93706b2e4c676004253baa3cec6 - path: output/faqcs/test.trimmed.fastq.gz @@ -18,8 +30,20 @@ tags: - faqcs files: + - path: output/faqcs/qa.test.base_content.txt + md5sum: 99aa9a775ccd8d6503f0cf80f775203c + - path: output/faqcs/qa.test.for_qual_histogram.txt + md5sum: 4f4b131be5425bdfa4b3237e44fa7d48 + - path: output/faqcs/qa.test.length_count.txt + md5sum: 420298983c762754d5b0ef32c9d5dad4 + - path: output/faqcs/test.base_content.txt + md5sum: 99aa9a775ccd8d6503f0cf80f775203c - path: output/faqcs/test.fastp.log md5sum: be79dc893f87de1f82faf749cdfb848c + - path: output/faqcs/test.for_qual_histogram.txt + md5sum: 4f4b131be5425bdfa4b3237e44fa7d48 + - path: output/faqcs/test.length_count.txt + md5sum: 420298983c762754d5b0ef32c9d5dad4 - path: output/faqcs/test.stats.txt md5sum: 9a693f8af94ab8c485519d9a523aa622 - path: output/faqcs/test_1.trimmed.fastq.gz From 61c88c623389ba4646e5f01547db3050f0abd7fc Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 3 Mar 2022 08:02:04 +0100 Subject: [PATCH 074/592] Add `hamronization/summarize` (#1366) * fix: remove left-over unnecessary code * Add hamronizer/deeparg * Add hamronisation/summarise * Update test.yml * Update modules/hamronization/summarize/meta.yml Co-authored-by: Jasmin F <73216762+jasmezz@users.noreply.github.com> * line up outputs Co-authored-by: Robert A. Petit III Co-authored-by: Jasmin F <73216762+jasmezz@users.noreply.github.com> --- modules/hamronization/summarize/main.nf | 38 ++++++++++++++++ modules/hamronization/summarize/meta.yml | 45 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/hamronization/summarize/main.nf | 36 +++++++++++++++ .../hamronization/summarize/nextflow.config | 5 +++ .../modules/hamronization/summarize/test.yml | 14 ++++++ 6 files changed, 142 insertions(+) create mode 100644 modules/hamronization/summarize/main.nf create mode 100644 modules/hamronization/summarize/meta.yml create mode 100644 tests/modules/hamronization/summarize/main.nf create mode 100644 tests/modules/hamronization/summarize/nextflow.config create mode 100644 tests/modules/hamronization/summarize/test.yml diff --git a/modules/hamronization/summarize/main.nf b/modules/hamronization/summarize/main.nf new file mode 100644 index 00000000..9b10de80 --- /dev/null +++ b/modules/hamronization/summarize/main.nf @@ -0,0 +1,38 @@ +process HAMRONIZATION_SUMMARIZE { + label 'process_low' + + conda (params.enable_conda ? "bioconda::hamronization=1.0.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/hamronization:1.0.3--py_0': + 'quay.io/biocontainers/hamronization:1.0.3--py_0' }" + + input: + path(reports) + val(format) + + output: + path("hamronization_combined_report.json"), optional: true, emit: json + path("hamronization_combined_report.tsv") , optional: true, emit: tsv + path("hamronization_combined_report.html"), optional: true, emit: html + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def outformat = format == 'interactive' ? 'html' : format + """ + hamronize \\ + summarize \\ + ${reports.join(' ')} \\ + -t ${format} \\ + $args \\ + -o hamronization_combined_report.${outformat} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + hamronization: \$(echo \$(hamronize --version 2>&1) | cut -f 2 -d ' ' ) + END_VERSIONS + """ +} diff --git a/modules/hamronization/summarize/meta.yml b/modules/hamronization/summarize/meta.yml new file mode 100644 index 00000000..7665c2c5 --- /dev/null +++ b/modules/hamronization/summarize/meta.yml @@ -0,0 +1,45 @@ +name: hamronization_summarize +description: Tool to summarize and combine all hAMRonization reports into a single file +keywords: + - amr + - antimicrobial resistance + - reporting +tools: + - hamronization: + description: Tool to convert and summarize AMR gene detection outputs using the hAMRonization specification + homepage: https://github.com/pha4ge/hAMRonization/blob/master/README.md + documentation: https://github.com/pha4ge/hAMRonization/blob/master/README.md + tool_dev_url: https://github.com/pha4ge/hAMRonization + doi: "" + licence: ['GNU Lesser General Public v3 (LGPL v3)'] + +input: + - reports: + type: file + description: List of multiple hAMRonization reports in either JSON or TSV format + pattern: "*.{json,tsv}" + - format: + type: value + description: Type of final combined report file to be produced + pattern: "tsv|json|interactive" + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - json: + type: file + description: hAMRonised summary in JSON format + pattern: "*.json" + - tsv: + type: file + description: hAMRonised summary in TSV format + pattern: "*.json" + - html: + type: file + description: hAMRonised summary in HTML format + pattern: "*.html" + +authors: + - "@jfy133" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 7146639c..de03a379 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -756,6 +756,10 @@ hamronization/deeparg: - modules/hamronization/deeparg/** - tests/modules/hamronization/deeparg/** +hamronization/summarize: + - modules/hamronization/summarize/** + - tests/modules/hamronization/summarize/** + hicap: - modules/hicap/** - tests/modules/hicap/** diff --git a/tests/modules/hamronization/summarize/main.nf b/tests/modules/hamronization/summarize/main.nf new file mode 100644 index 00000000..e0eae4a4 --- /dev/null +++ b/tests/modules/hamronization/summarize/main.nf @@ -0,0 +1,36 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { HAMRONIZATION_DEEPARG } from '../../../../modules/hamronization/deeparg/main.nf' +include { HAMRONIZATION_DEEPARG as HAMRONIZATION_DEEPARG_SECOND } from '../../../../modules/hamronization/deeparg/main.nf' +include { HAMRONIZATION_SUMMARIZE } from '../../../../modules/hamronization/summarize/main.nf' + +workflow test_hamronization_summarize { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['bacteroides_fragilis']['genome']['genome_mapping_potential_arg'], checkIfExists: true), + ] + + input2 = [ + [ id:'test2', single_end:false ], // meta map + file(params.test_data['bacteroides_fragilis']['genome']['genome_mapping_potential_arg'], checkIfExists: true), + ] + + HAMRONIZATION_DEEPARG ( input, 'tsv', '1.0.2', '2' ) + HAMRONIZATION_DEEPARG_SECOND ( input2, 'tsv', '1.0.2', '2' ) + + ch_deeparg_run_one = HAMRONIZATION_DEEPARG.out.tsv + ch_deeparg_run_two = HAMRONIZATION_DEEPARG_SECOND.out.tsv + + ch_deeparg_run_one + .mix( ch_deeparg_run_two ) + .map{ + [ it[1] ] + } + .collect() + .set { ch_input_for_summarize } + + HAMRONIZATION_SUMMARIZE ( ch_input_for_summarize , 'json' ) +} diff --git a/tests/modules/hamronization/summarize/nextflow.config b/tests/modules/hamronization/summarize/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/hamronization/summarize/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/hamronization/summarize/test.yml b/tests/modules/hamronization/summarize/test.yml new file mode 100644 index 00000000..ad883971 --- /dev/null +++ b/tests/modules/hamronization/summarize/test.yml @@ -0,0 +1,14 @@ +- name: hamronization summarize test_hamronization_summarize + command: nextflow run tests/modules/hamronization/summarize -entry test_hamronization_summarize -c tests/config/nextflow.config + tags: + - hamronization + - hamronization/summarize + files: + - path: output/hamronization/hamronization_combined_report.json + md5sum: 1623b6cc3b213208a425e023edd94691 + - path: output/hamronization/test.tsv + md5sum: 3c315605aca0c5964796bb5fd4cdd522 + - path: output/hamronization/test2.tsv + md5sum: 453f38502e35261a50a0849dca34f05b + - path: output/hamronization/versions.yml + md5sum: 99b5046fac643e16ca3362d1baf3284b From 0816df1e8b9cb523e7eebe4da55961189117fe34 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 3 Mar 2022 10:01:39 +0100 Subject: [PATCH 075/592] Fix: removes hardcoded flags and 'custom' file output for AdapterRemoval (#1357) * fix: remove left-over unnecessary code * Removes hardcoded flags and more explicit output * Fix test md5 --- modules/adapterremoval/main.nf | 28 ++++++++-------- modules/adapterremoval/meta.yml | 46 +++++++++++++++++++++++---- tests/modules/adapterremoval/test.yml | 31 ++++++++++++------ 3 files changed, 77 insertions(+), 28 deletions(-) diff --git a/modules/adapterremoval/main.nf b/modules/adapterremoval/main.nf index 55c5f17c..77838287 100644 --- a/modules/adapterremoval/main.nf +++ b/modules/adapterremoval/main.nf @@ -11,9 +11,15 @@ process ADAPTERREMOVAL { tuple val(meta), path(reads) output: - tuple val(meta), path('*.fastq.gz'), emit: reads - tuple val(meta), path('*.log') , emit: log - path "versions.yml" , emit: versions + tuple val(meta), path('*.truncated.gz') , optional: true, emit: singles_truncated + tuple val(meta), path('*.discarded.gz') , optional: true, emit: discarded + tuple val(meta), path('*.pair1.truncated.gz') , optional: true, emit: pair1_truncated + tuple val(meta), path('*.pair2.truncated.gz') , optional: true, emit: pair2_truncated + tuple val(meta), path('*.collapsed.gz') , optional: true, emit: collapsed + tuple val(meta), path('*.collapsed.truncated') , optional: true, emit: collapsed_truncated + tuple val(meta), path('*paired.gz') , optional: true, emit: paired_interleaved + tuple val(meta), path('*.log') , emit: log + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -28,30 +34,27 @@ process ADAPTERREMOVAL { --file1 $reads \\ $args \\ --basename $prefix \\ - --threads $task.cpus \\ + --threads ${task.cpus} \\ --settings ${prefix}.log \\ - --output1 ${prefix}.trimmed.fastq.gz \\ --seed 42 \\ - --gzip \\ + --gzip cat <<-END_VERSIONS > versions.yml "${task.process}": adapterremoval: \$(AdapterRemoval --version 2>&1 | sed -e "s/AdapterRemoval ver. //g") END_VERSIONS """ - } else if (!meta.single_end && !meta.collapse) { + } else if (!meta.single_end ) { """ AdapterRemoval \\ --file1 ${reads[0]} \\ --file2 ${reads[1]} \\ $args \\ --basename $prefix \\ - --threads $task.cpus \\ + --threads ${task.cpus} \\ --settings ${prefix}.log \\ - --output1 ${prefix}.pair1.trimmed.fastq.gz \\ - --output2 ${prefix}.pair2.trimmed.fastq.gz \\ --seed 42 \\ - --gzip \\ + --gzip cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -63,13 +66,12 @@ process ADAPTERREMOVAL { AdapterRemoval \\ --file1 ${reads[0]} \\ --file2 ${reads[1]} \\ - --collapse \\ $args \\ --basename $prefix \\ --threads $task.cpus \\ --settings ${prefix}.log \\ --seed 42 \\ - --gzip \\ + --gzip cat *.collapsed.gz *.collapsed.truncated.gz > ${prefix}.merged.fastq.gz cat <<-END_VERSIONS > versions.yml diff --git a/modules/adapterremoval/meta.yml b/modules/adapterremoval/meta.yml index 4923fa42..a9a071f5 100644 --- a/modules/adapterremoval/meta.yml +++ b/modules/adapterremoval/meta.yml @@ -17,13 +17,13 @@ input: type: map description: | Groovy Map containing sample information - e.g. [ id:'test', single_end:false, collapse:false ] + e.g. [ id:'test', single_end:false ] - reads: type: file description: | List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. - pattern: "*.{fq,fastq,fg.gz,fastq.gz}" + pattern: "*.{fq,fastq,fq.gz,fastq.gz}" output: - meta: @@ -31,12 +31,45 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - reads: + - singles_truncated: type: file description: | - List of input adapter trimmed FastQ files of size 1 or 2 for - single-end or collapsed data and paired-end data, respectively. - pattern: "*.{fastq.gz}" + Adapter trimmed FastQ files of either single-end reads, or singleton + 'orphaned' reads from merging of paired-end data (i.e., one of the pair + was lost due to filtering thresholds). + pattern: "*.truncated.gz" + - discarded: + type: file + description: | + Adapter trimmed FastQ files of reads that did not pass filtering + thresholds. + pattern: "*.discarded.gz" + - pair1_truncated: + type: file + description: | + Adapter trimmed R1 FastQ files of paired-end reads that did not merge + with their respective R2 pair due to long templates. The respective pair + is stored in 'pair2_truncated'. + pattern: "*.pair1.truncated.gz" + - pair2_truncated: + type: file + description: | + Adapter trimmed R2 FastQ files of paired-end reads that did not merge + with their respective R1 pair due to long templates. The respective pair + is stored in 'pair1_truncated'. + pattern: "*.pair2.truncated.gz" + - collapsed: + type: file + description: | + Collapsed FastQ of paired-end reads that successfully merged with their + respective R1 pair but were not trimmed. + pattern: "*.collapsed.gz" + - collapsed_truncated: + type: file + description: | + Collapsed FastQ of paired-end reads that successfully merged with their + respective R1 pair and were trimmed of adapter due to sufficient overlap. + pattern: "*.collapsed.truncated.gz" - log: type: file description: AdapterRemoval log file @@ -48,3 +81,4 @@ output: authors: - "@maxibor" + - "@jfy133" diff --git a/tests/modules/adapterremoval/test.yml b/tests/modules/adapterremoval/test.yml index a6c4a6cf..805af9fc 100644 --- a/tests/modules/adapterremoval/test.yml +++ b/tests/modules/adapterremoval/test.yml @@ -1,31 +1,44 @@ - name: adapterremoval test_adapterremoval_single_end - command: nextflow run ./tests/modules/adapterremoval -entry test_adapterremoval_single_end -c ./tests/config/nextflow.config -c ./tests/modules/adapterremoval/nextflow.config + command: nextflow run tests/modules/adapterremoval -entry test_adapterremoval_single_end -c tests/config/nextflow.config tags: - adapterremoval files: + - path: output/adapterremoval/test.discarded.gz - path: output/adapterremoval/test.log md5sum: 2fd3d5d703b63ba33a83021fccf25f77 - - path: output/adapterremoval/test.trimmed.fastq.gz + - path: output/adapterremoval/test.truncated.gz md5sum: 62139afee94defad5b83bdd0b8475a1f + - path: output/adapterremoval/versions.yml + md5sum: ac5b46719719b7ee62739530b80869fc - name: adapterremoval test_adapterremoval_paired_end - command: nextflow run ./tests/modules/adapterremoval -entry test_adapterremoval_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/adapterremoval/nextflow.config + command: nextflow run tests/modules/adapterremoval -entry test_adapterremoval_paired_end -c tests/config/nextflow.config tags: - adapterremoval files: + - path: output/adapterremoval/test.discarded.gz - path: output/adapterremoval/test.log md5sum: b8a451d3981b327f3fdb44f40ba2d6d1 - - path: output/adapterremoval/test.pair1.trimmed.fastq.gz + - path: output/adapterremoval/test.pair1.truncated.gz md5sum: 294a6277f0139bd597e57c6fa31f39c7 - - path: output/adapterremoval/test.pair2.trimmed.fastq.gz + - path: output/adapterremoval/test.pair2.truncated.gz md5sum: de7b38e2c881bced8671acb1ab452d78 + - path: output/adapterremoval/test.singleton.truncated.gz + - path: output/adapterremoval/versions.yml + md5sum: fa621c887897da5a379c719399c17db7 - name: adapterremoval test_adapterremoval_paired_end_collapse - command: nextflow run ./tests/modules/adapterremoval -entry test_adapterremoval_paired_end_collapse -c ./tests/config/nextflow.config -c ./tests/modules/adapterremoval/nextflow.config + command: nextflow run tests/modules/adapterremoval -entry test_adapterremoval_paired_end_collapse -c tests/config/nextflow.config tags: - adapterremoval files: + - path: output/adapterremoval/test.discarded.gz - path: output/adapterremoval/test.log - md5sum: 7f0b2328152226e46101a535cce718b3 - - path: output/adapterremoval/test.merged.fastq.gz - md5sum: 07a8f725bfd3ecbeabdc41b32d898dee + md5sum: b8a451d3981b327f3fdb44f40ba2d6d1 + - path: output/adapterremoval/test.pair1.truncated.gz + md5sum: 294a6277f0139bd597e57c6fa31f39c7 + - path: output/adapterremoval/test.pair2.truncated.gz + md5sum: de7b38e2c881bced8671acb1ab452d78 + - path: output/adapterremoval/test.singleton.truncated.gz + - path: output/adapterremoval/versions.yml + md5sum: fd428f92a8446e0b34c5ae1c447215b8 From c450b08a75cda8878876ccbbe42493d6774397bd Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Thu, 3 Mar 2022 11:54:07 +0100 Subject: [PATCH 076/592] separate gvcf and vcf in output channels (#1371) * separate gvcf and vcf in output channels * regex not working, just using prefix now --- modules/deepvariant/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/deepvariant/main.nf b/modules/deepvariant/main.nf index c5e81997..8e5f10df 100644 --- a/modules/deepvariant/main.nf +++ b/modules/deepvariant/main.nf @@ -17,8 +17,8 @@ process DEEPVARIANT { path(fai) output: - tuple val(meta), path("*.vcf.gz") , emit: vcf - tuple val(meta), path("*g.vcf.gz"), emit: gvcf + tuple val(meta), path("${prefix}.vcf.gz") , emit: vcf + tuple val(meta), path("${prefix}.g.vcf.gz"), emit: gvcf path "versions.yml" , emit: versions when: @@ -26,7 +26,7 @@ process DEEPVARIANT { script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" def regions = intervals ? "--regions ${intervals}" : "" """ From 76cdd46f3f8a77fb5023fb5a39c4ab99925b8b56 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 3 Mar 2022 16:35:19 +0100 Subject: [PATCH 077/592] Add meta to MALT/RUN (#1372) * Add meta to MALT/RUN * Update modules/malt/run/main.nf --- modules/malt/run/main.nf | 11 ++++++----- modules/malt/run/meta.yml | 5 +++++ tests/modules/malt/run/main.nf | 6 +++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/modules/malt/run/main.nf b/modules/malt/run/main.nf index 99657305..61c02ec1 100644 --- a/modules/malt/run/main.nf +++ b/modules/malt/run/main.nf @@ -1,4 +1,5 @@ process MALT_RUN { + tag "$meta.id" label 'process_high' conda (params.enable_conda ? "bioconda::malt=0.53" : null) @@ -7,15 +8,15 @@ process MALT_RUN { 'quay.io/biocontainers/malt:0.53--hdfd78af_0' }" input: - path fastqs + tuple val(meta), path(fastqs) val mode path index output: - path "*.rma6" , emit: rma6 - path "*.{tab,text,sam}", optional:true, emit: alignments - path "*.log" , emit: log - path "versions.yml" , emit: versions + tuple val(meta), path("*.rma6") , emit: rma6 + tuple val(meta), path("*.{tab,text,sam}"), optional:true, emit: alignments + tuple val(meta), path("*.log") , emit: log + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/malt/run/meta.yml b/modules/malt/run/meta.yml index 7bd79290..ae4277a8 100644 --- a/modules/malt/run/meta.yml +++ b/modules/malt/run/meta.yml @@ -19,6 +19,11 @@ tools: licence: ["GPL v3"] input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - fastqs: type: file description: Input FASTQ files diff --git a/tests/modules/malt/run/main.nf b/tests/modules/malt/run/main.nf index 292a3fcf..d92dee71 100644 --- a/tests/modules/malt/run/main.nf +++ b/tests/modules/malt/run/main.nf @@ -12,10 +12,14 @@ workflow test_malt_run { gff = file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) seq_type = "DNA" map_db = file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) - input = file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] mode = "BlastN" UNZIP ( map_db ) MALT_BUILD ( fastas, seq_type, gff, UNZIP.out.unzipped_archive ) MALT_RUN ( input, mode, MALT_BUILD.out.index ) } + From d8028dc1c3ef64c2ee3494ce65d4f4a76c42bde9 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Thu, 3 Mar 2022 17:40:16 +0100 Subject: [PATCH 078/592] Add picard/sortvcf (#1370) * sortvcf * add files * update meta * update java mem * update documentation link * remove todo * review suggestions * fix test.yml * fix conda error * fix version code --- modules/picard/sortvcf/main.nf | 49 ++++++++++++++++++++ modules/picard/sortvcf/meta.yml | 40 ++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/picard/sortvcf/main.nf | 18 +++++++ tests/modules/picard/sortvcf/nextflow.config | 5 ++ tests/modules/picard/sortvcf/test.yml | 7 +++ 6 files changed, 123 insertions(+) create mode 100644 modules/picard/sortvcf/main.nf create mode 100644 modules/picard/sortvcf/meta.yml create mode 100644 tests/modules/picard/sortvcf/main.nf create mode 100644 tests/modules/picard/sortvcf/nextflow.config create mode 100644 tests/modules/picard/sortvcf/test.yml diff --git a/modules/picard/sortvcf/main.nf b/modules/picard/sortvcf/main.nf new file mode 100644 index 00000000..0f10c1ab --- /dev/null +++ b/modules/picard/sortvcf/main.nf @@ -0,0 +1,49 @@ +process PICARD_SORTVCF { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + + input: + tuple val(meta), path(vcf) + path reference + path sequence_dict + + output: + tuple val(meta), path("*_sorted.vcf.gz"), emit: vcf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def seq_dict = sequence_dict ? "-SEQUENCE_DICTIONARY $sequence_dict" : "" + def reference = reference ? "-REFERENCE_SEQUENCE $reference" : "" + def avail_mem = 3 + if (!task.memory) { + log.info '[Picard SortVcf] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + + """ + picard \\ + SortVcf \\ + -Xmx${avail_mem}g \\ + --INPUT $vcf \\ + $args \\ + $seq_dict \\ + $reference \\ + --OUTPUT ${prefix}_sorted.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(picard SortVcf --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ +} diff --git a/modules/picard/sortvcf/meta.yml b/modules/picard/sortvcf/meta.yml new file mode 100644 index 00000000..a2b46d5a --- /dev/null +++ b/modules/picard/sortvcf/meta.yml @@ -0,0 +1,40 @@ +name: picard_sortvcf +description: Sorts vcf files +keywords: + - sort + - vcf +tools: + - picard: + description: Java tools for working with NGS data in the BAM/CRAM/SAM and VCF format + homepage: https://broadinstitute.github.io/picard/ + documentation: https://broadinstitute.github.io/picard/command-line-overview.html#SortVcf + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF file + pattern: "*.{vcf,vcf.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf: + type: file + description: Sorted VCF file + pattern: "*.{vcf}" + +authors: + - "@ramprasadn" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index de03a379..553128de 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1249,6 +1249,10 @@ picard/sortsam: - modules/picard/sortsam/** - tests/modules/picard/sortsam/** +picard/sortvcf: + - modules/picard/sortvcf/** + - tests/modules/picard/sortvcf/** + pirate: - modules/pirate/** - tests/modules/pirate/** diff --git a/tests/modules/picard/sortvcf/main.nf b/tests/modules/picard/sortvcf/main.nf new file mode 100644 index 00000000..a88c69fc --- /dev/null +++ b/tests/modules/picard/sortvcf/main.nf @@ -0,0 +1,18 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PICARD_SORTVCF } from '../../../../modules/picard/sortvcf/main.nf' + +workflow test_picard_sortvcf { + + input = [ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) + ] + + fasta = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + + dict = [ file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) ] + + PICARD_SORTVCF ( input, fasta, dict ) +} diff --git a/tests/modules/picard/sortvcf/nextflow.config b/tests/modules/picard/sortvcf/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/picard/sortvcf/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/picard/sortvcf/test.yml b/tests/modules/picard/sortvcf/test.yml new file mode 100644 index 00000000..26271077 --- /dev/null +++ b/tests/modules/picard/sortvcf/test.yml @@ -0,0 +1,7 @@ +- name: picard sortvcf + command: nextflow run ./tests/modules/picard/sortvcf -entry test_picard_sortvcf -c ./tests/config/nextflow.config -c ./tests/modules/picard/sortvcf/nextflow.config + tags: + - picard + - picard/sortvcf + files: + - path: output/picard/test_sorted.vcf.gz From 72b96f4e504eef673f2b5c13560a9d90b669129b Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 3 Mar 2022 17:58:04 +0100 Subject: [PATCH 079/592] Add missing $prefix definition for MALT_RUN (#1373) * fix: remove left-over unnecessary code * Add forgotten prefix for the log * Update meta.yml * Update tests Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/malt/run/main.nf | 3 ++- modules/malt/run/meta.yml | 2 +- tests/modules/malt/run/test.yml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/malt/run/main.nf b/modules/malt/run/main.nf index 61c02ec1..4e2e50c9 100644 --- a/modules/malt/run/main.nf +++ b/modules/malt/run/main.nf @@ -23,6 +23,7 @@ process MALT_RUN { script: def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" def avail_mem = 6 if (!task.memory) { log.info '[MALT_RUN] Available memory not known - defaulting to 6GB. Specify process memory requirements to change this.' @@ -39,7 +40,7 @@ process MALT_RUN { $args \\ --inFile ${fastqs.join(' ')} \\ -m $mode \\ - --index $index/ |&tee malt-run.log + --index $index/ |&tee ${prefix}-malt-run.log cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/malt/run/meta.yml b/modules/malt/run/meta.yml index ae4277a8..66f2d7a9 100644 --- a/modules/malt/run/meta.yml +++ b/modules/malt/run/meta.yml @@ -52,7 +52,7 @@ output: - log: type: file description: Log of verbose MALT stdout - pattern: "malt-run.log" + pattern: "*-malt-run.log" authors: - "@jfy133" diff --git a/tests/modules/malt/run/test.yml b/tests/modules/malt/run/test.yml index 335bc977..8ad44094 100644 --- a/tests/modules/malt/run/test.yml +++ b/tests/modules/malt/run/test.yml @@ -5,4 +5,4 @@ - malt/run files: - path: output/malt/test_1.rma6 - - path: output/malt/malt-run.log + - path: output/malt/test-malt-run.log From 251015c8bac16ecb55d738362503f17a84c45d18 Mon Sep 17 00:00:00 2001 From: Michael L Heuer Date: Fri, 4 Mar 2022 09:08:02 -0600 Subject: [PATCH 080/592] Add samtools index to yara_mapper module (#1353) * Add samtools index to yara_mapper module. * samtools sort required for index Co-authored-by: James A. Fellows Yates --- modules/yara/mapper/main.nf | 12 +++++++++--- modules/yara/mapper/meta.yml | 4 ++++ tests/modules/yara/mapper/test.yml | 3 +++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/modules/yara/mapper/main.nf b/modules/yara/mapper/main.nf index 9c993ac7..15b39236 100644 --- a/modules/yara/mapper/main.nf +++ b/modules/yara/mapper/main.nf @@ -13,6 +13,7 @@ process YARA_MAPPER { output: tuple val(meta), path("*.mapped.bam"), emit: bam + tuple val(meta), path("*.mapped.bam.bai"), emit: bai path "versions.yml" , emit: versions when: @@ -28,7 +29,9 @@ process YARA_MAPPER { -t $task.cpus \\ -f bam \\ ${index}/yara \\ - $reads | samtools view -@ $task.cpus -hb -F4 > ${prefix}.mapped.bam + $reads | samtools view -@ $task.cpus -hb -F4 | samtools sort -@ $task.cpus > ${prefix}.mapped.bam + + samtools index -@ $task.cpus ${prefix}.mapped.bam cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -46,8 +49,11 @@ process YARA_MAPPER { ${reads[0]} \\ ${reads[1]} > output.bam - samtools view -@ $task.cpus -hF 4 -f 0x40 -b output.bam > ${prefix}_1.mapped.bam - samtools view -@ $task.cpus -hF 4 -f 0x80 -b output.bam > ${prefix}_2.mapped.bam + samtools view -@ $task.cpus -hF 4 -f 0x40 -b output.bam | samtools sort -@ $task.cpus > ${prefix}_1.mapped.bam + samtools view -@ $task.cpus -hF 4 -f 0x80 -b output.bam | samtools sort -@ $task.cpus > ${prefix}_2.mapped.bam + + samtools index -@ $task.cpus ${prefix}_1.mapped.bam + samtools index -@ $task.cpus ${prefix}_2.mapped.bam cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/yara/mapper/meta.yml b/modules/yara/mapper/meta.yml index 60089474..188e1d52 100644 --- a/modules/yara/mapper/meta.yml +++ b/modules/yara/mapper/meta.yml @@ -45,6 +45,10 @@ output: type: file description: Sorted BAM file pattern: "*.{bam}" + - bai: + type: file + description: Sorted BAM file index + pattern: "*.{bai}" authors: - "@apeltzer" diff --git a/tests/modules/yara/mapper/test.yml b/tests/modules/yara/mapper/test.yml index 186f70b4..3bfddc5b 100644 --- a/tests/modules/yara/mapper/test.yml +++ b/tests/modules/yara/mapper/test.yml @@ -5,6 +5,7 @@ - yara files: - path: output/yara/test.mapped.bam + - path: output/yara/test.mapped.bam.bai - path: output/yara/yara/yara.txt.size md5sum: 063987b3c3f747be7d2b8043c9d91000 - path: output/yara/yara/yara.lf.drs @@ -39,7 +40,9 @@ - yara files: - path: output/yara/test_2.mapped.bam + - path: output/yara/test_2.mapped.bam.bai - path: output/yara/test_1.mapped.bam + - path: output/yara/test_1.mapped.bam.bai - path: output/yara/yara/yara.txt.size md5sum: 063987b3c3f747be7d2b8043c9d91000 - path: output/yara/yara/yara.lf.drs From de0d57a5623ecb81d1bbc7ad73b5a8754b903d4c Mon Sep 17 00:00:00 2001 From: Benjamin Wingfield Date: Mon, 7 Mar 2022 18:02:40 +0000 Subject: [PATCH 081/592] implement plink2/score module (#1259) * implement plink2/score module * fix test yml * fix typo :( * set cpu * set mem * fix input process input block * fix tests Co-authored-by: Sateesh <33637490+sateeshperi@users.noreply.github.com> --- modules/plink2/score/main.nf | 39 +++++++++++++++ modules/plink2/score/meta.yml | 56 ++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/config/test_data.config | 3 +- tests/modules/plink2/score/main.nf | 24 ++++++++++ tests/modules/plink2/score/nextflow.config | 15 ++++++ tests/modules/plink2/score/test.yml | 16 +++++++ 7 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 modules/plink2/score/main.nf create mode 100644 modules/plink2/score/meta.yml create mode 100644 tests/modules/plink2/score/main.nf create mode 100644 tests/modules/plink2/score/nextflow.config create mode 100644 tests/modules/plink2/score/test.yml diff --git a/modules/plink2/score/main.nf b/modules/plink2/score/main.nf new file mode 100644 index 00000000..6f561322 --- /dev/null +++ b/modules/plink2/score/main.nf @@ -0,0 +1,39 @@ +process PLINK2_SCORE { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::plink2=2.00a2.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/plink2:2.00a2.3--h712d239_1' : + 'quay.io/biocontainers/plink2:2.00a2.3--h712d239_1' }" + + input: + tuple val(meta), path(pgen), path(psam), path(pvar) + path(scorefile) + + output: + tuple val(meta), path("*.sscore"), emit: score + path("versions.yml") , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def mem_mb = task.memory.toMega() // plink is greedy + """ + plink2 \\ + --threads $task.cpus \\ + --memory $mem_mb \\ + --pfile ${pgen.baseName} vzs \\ + --score ${scorefile} \\ + $args \\ + --out ${prefix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + plink2: \$(plink2 --version 2>&1 | sed 's/^PLINK v//; s/ 64.*\$//' ) + END_VERSIONS + """ +} diff --git a/modules/plink2/score/meta.yml b/modules/plink2/score/meta.yml new file mode 100644 index 00000000..5dad6259 --- /dev/null +++ b/modules/plink2/score/meta.yml @@ -0,0 +1,56 @@ +name: plink2_score +description: Apply a scoring system to each sample in a plink 2 fileset +keywords: + - plink2 + - score +tools: + - plink2: + description: | + Whole genome association analysis toolset, designed to perform a range + of basic, large-scale analyses in a computationally efficient manner + homepage: http://www.cog-genomics.org/plink/2.0/ + documentation: http://www.cog-genomics.org/plink/2.0/general_usage + tool_dev_url: None + doi: "10.1186/s13742-015-0047-8" + licence: ['GPL v3'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - pgen: + type: file + description: PLINK 2 binary genotype table + pattern: "*.{pgen}" + - psam: + type: file + description: PLINK 2 sample information file + pattern: "*.{psam}" + - pvar: + type: file + description: PLINK 2 variant information file + pattern: "*.{pvar}" + - scorefile: + type: file + description: A text file containing variant identifiers and weights + pattern: "*.{scores,txt,scorefile}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - score: + type: file + description: A text file containing sample scores, in plink 2 .sscore format + pattern: "*.{sscore}" + +authors: + - "@nebfield" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 553128de..d6575ff1 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1273,6 +1273,10 @@ plink2/extract: - modules/plink2/extract/** - tests/modules/plink2/extract/** +plink2/score: + - modules/plink2/score/** + - tests/modules/plink2/score/** + plink2/vcf: - modules/plink2/vcf/** - tests/modules/plink2/vcf/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index dda10192..ce4f7ae8 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -119,7 +119,7 @@ params { genome_bed_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/genome.bed.gz.tbi" transcriptome_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/transcriptome.fasta" genome2_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/genome2.fasta" - genome_chain_gz = "${test_data_dir}/genomics/homo_sapiens/genome/genome.chain.gz" + genome_chain_gz = "${test_data_dir}/genomics/homo_sapiens/genome/genome.chain.gz" genome_21_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta" genome_21_fasta_fai = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai" genome_21_dict = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.dict" @@ -138,6 +138,7 @@ params { mills_and_1000g_indels_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/mills_and_1000G.indels.vcf.gz.tbi" syntheticvcf_short_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/syntheticvcf_short.vcf.gz" syntheticvcf_short_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/syntheticvcf_short.vcf.gz.tbi" + syntheticvcf_short_score = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/syntheticvcf_short.score" gnomad_r2_1_1_sv_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/gnomAD.r2.1.1-sv.vcf.gz" hapmap_3_3_hg38_21_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/germlineresources/hapmap_3.3.hg38.vcf.gz" diff --git a/tests/modules/plink2/score/main.nf b/tests/modules/plink2/score/main.nf new file mode 100644 index 00000000..6a09e829 --- /dev/null +++ b/tests/modules/plink2/score/main.nf @@ -0,0 +1,24 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PLINK2_VCF } from '../../../../modules/plink2/vcf/main.nf' +include { PLINK2_SCORE } from '../../../../modules/plink2/score/main.nf' + +workflow test_plink2_score { + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['genome']['syntheticvcf_short_vcf_gz'], checkIfExists: true) + ] + PLINK2_VCF ( input ) + + scorefile = file(params.test_data['homo_sapiens']['genome']['syntheticvcf_short_score'], checkIfExists: true) + + PLINK2_VCF.out.pgen + .concat(PLINK2_VCF.out.psam, PLINK2_VCF.out.pvar) + .groupTuple() + .map { it.flatten() } + .set { ch_target_genome } + + PLINK2_SCORE ( ch_target_genome, scorefile ) +} diff --git a/tests/modules/plink2/score/nextflow.config b/tests/modules/plink2/score/nextflow.config new file mode 100644 index 00000000..083e4666 --- /dev/null +++ b/tests/modules/plink2/score/nextflow.config @@ -0,0 +1,15 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + // relabel input variants to a common scheme chr:pos:alt:ref + withName: PLINK2_VCF { + ext.args = '--set-missing-var-ids @:#:\\$1:\\$2' + } + + // scoring really needs an adjustment for small test dataset (n > 50 + // normally) + withName: PLINK2_SCORE { + ext.args = 'no-mean-imputation' + } +} diff --git a/tests/modules/plink2/score/test.yml b/tests/modules/plink2/score/test.yml new file mode 100644 index 00000000..7993cb34 --- /dev/null +++ b/tests/modules/plink2/score/test.yml @@ -0,0 +1,16 @@ +- name: plink2 score test_plink2_score + command: nextflow run tests/modules/plink2/score -entry test_plink2_score -c tests/config/nextflow.config + tags: + - plink2 + - plink2/score + files: + - path: output/plink2/test.pgen + md5sum: fac12ca9041d6950f6b7d60ac2120721 + - path: output/plink2/test.psam + md5sum: e6c714488754cb8448c3dfda08c4c0ea + - path: output/plink2/test.pvar.zst + md5sum: 98d59e9779a8b62d5032cd98b642a63b + - path: output/plink2/test.sscore + md5sum: 97bde840f69febd65f2c00e9243126e9 + - path: output/plink2/versions.yml + md5sum: 71499ab14e1583c88ced3a7a4f05bfa7 From b78a4a456762a4c59fd5023e70f36a27f76d4a97 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Tue, 8 Mar 2022 15:56:23 +0100 Subject: [PATCH 082/592] Fix for Maxbin2 emitting input files (#1376) * fix: remove left-over unnecessary code * Fix accidently emitting input * Fix tests --- modules/maxbin2/main.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/maxbin2/main.nf b/modules/maxbin2/main.nf index 7b818d00..a48df43f 100644 --- a/modules/maxbin2/main.nf +++ b/modules/maxbin2/main.nf @@ -29,8 +29,9 @@ process MAXBIN2 { def prefix = task.ext.prefix ?: "${meta.id}" def associate_files = reads ? "-reads $reads" : "-abund $abund" """ + mkdir input/ && mv $contigs input/ run_MaxBin.pl \\ - -contig $contigs \\ + -contig input/$contigs \\ $associate_files \\ -thread $task.cpus \\ $args \\ From e79bcd7d4e517b72045924c16bb778a2f074cf88 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Wed, 9 Mar 2022 14:55:31 +0100 Subject: [PATCH 083/592] Add git aware option to pytest commands (#1379) --- .github/PULL_REQUEST_TEMPLATE.md | 6 +++--- .github/workflows/pytest-workflow.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index b9f7a4e8..cfe07f88 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -27,6 +27,6 @@ Closes #XXX - [ ] Add a resource `label` - [ ] Use BioConda and BioContainers if possible to fulfil software requirements. - Ensure that the test works with either Docker / Singularity. Conda CI tests can be quite flaky: - - [ ] `PROFILE=docker pytest --tag --symlink --keep-workflow-wd` - - [ ] `PROFILE=singularity pytest --tag --symlink --keep-workflow-wd` - - [ ] `PROFILE=conda pytest --tag --symlink --keep-workflow-wd` + - [ ] `PROFILE=docker pytest --tag --symlink --keep-workflow-wd --git-aware` + - [ ] `PROFILE=singularity pytest --tag --symlink --keep-workflow-wd --git-aware` + - [ ] `PROFILE=conda pytest --tag --symlink --keep-workflow-wd --git-aware` diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index ee922c45..b2be6aa3 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -86,7 +86,7 @@ jobs: # Test the module - name: Run pytest-workflow # only use one thread for pytest-workflow to avoid race condition on conda cache. - run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof + run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware - name: Output log on failure if: failure() From b82d7abe7089a4b411e326c9e129faf03ba45741 Mon Sep 17 00:00:00 2001 From: "Thomas A. Christensen II" <25492070+MillironX@users.noreply.github.com> Date: Wed, 9 Mar 2022 10:56:35 -0600 Subject: [PATCH 084/592] Decrease indent in seqtk/seq versions.yml output (#1384) Signed-off-by: Thomas A. Christensen II <25492070+MillironX@users.noreply.github.com> Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/seqtk/seq/main.nf | 4 ++-- tests/modules/seqtk/seq/test.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/seqtk/seq/main.nf b/modules/seqtk/seq/main.nf index 1fb03003..d1944ef9 100644 --- a/modules/seqtk/seq/main.nf +++ b/modules/seqtk/seq/main.nf @@ -33,8 +33,8 @@ process SEQTK_SEQ { gzip -c > ${prefix}.seqtk-seq.${extension}.gz cat <<-END_VERSIONS > versions.yml - "${task.process}": - seqtk: \$(echo \$(seqtk 2>&1) | sed 's/^.*Version: //; s/ .*\$//') + "${task.process}": + seqtk: \$(echo \$(seqtk 2>&1) | sed 's/^.*Version: //; s/ .*\$//') END_VERSIONS """ } diff --git a/tests/modules/seqtk/seq/test.yml b/tests/modules/seqtk/seq/test.yml index 3e4532c6..c6937364 100644 --- a/tests/modules/seqtk/seq/test.yml +++ b/tests/modules/seqtk/seq/test.yml @@ -7,7 +7,7 @@ - path: output/seqtk/test.seqtk-seq.fasta.gz md5sum: 50d73992c8c7e56dc095ef47ec52a754 - path: output/seqtk/versions.yml - md5sum: 2b89cd4a6e28f35fcfbbd2188384f944 + md5sum: 6555e1061080c44f828de0b40b299e41 - name: seqtk seq test_seqtk_seq_fq command: nextflow run tests/modules/seqtk/seq -entry test_seqtk_seq_fq -c tests/config/nextflow.config @@ -18,4 +18,4 @@ - path: output/seqtk/test.seqtk-seq.fasta.gz md5sum: 2f009f1647971a97b4edec726a99dc1a - path: output/seqtk/versions.yml - md5sum: 3467a76d3540bee8f58de050512bddaa + md5sum: feb70feb3165d5c19fa50c16e46e6772 From 24f0bdd14ec32e0114aa6ee5337ddbd490ffd570 Mon Sep 17 00:00:00 2001 From: Michael J Cipriano <42848032+mjcipriano@users.noreply.github.com> Date: Wed, 9 Mar 2022 12:36:05 -0500 Subject: [PATCH 085/592] added module seqkit replace (#1382) * added module seqkit replace * added when * removed extra line * Update modules/seqkit/replace/main.nf Co-authored-by: Robert A. Petit III * Updated meta * updated indents Co-authored-by: Cipriano Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: Robert A. Petit III --- modules/seqkit/replace/main.nf | 41 ++++++++++++++++++++ modules/seqkit/replace/meta.yml | 41 ++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/seqkit/replace/main.nf | 24 ++++++++++++ tests/modules/seqkit/replace/nextflow.config | 14 +++++++ tests/modules/seqkit/replace/test.yml | 21 ++++++++++ 6 files changed, 145 insertions(+) create mode 100644 modules/seqkit/replace/main.nf create mode 100644 modules/seqkit/replace/meta.yml create mode 100644 tests/modules/seqkit/replace/main.nf create mode 100644 tests/modules/seqkit/replace/nextflow.config create mode 100644 tests/modules/seqkit/replace/test.yml diff --git a/modules/seqkit/replace/main.nf b/modules/seqkit/replace/main.nf new file mode 100644 index 00000000..db189ef6 --- /dev/null +++ b/modules/seqkit/replace/main.nf @@ -0,0 +1,41 @@ +process SEQKIT_REPLACE { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::seqkit=2.1.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/seqkit:2.1.0--h9ee0642_0': + 'quay.io/biocontainers/seqkit:2.1.0--h9ee0642_0' }" + + input: + tuple val(meta), path(fastx) + + output: + tuple val(meta), path("*.fast*"), emit: fastx + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = "fastq" + if ("$fastx" ==~ /.+\.fasta|.+\.fasta.gz|.+\.fa|.+\.fa.gz|.+\.fas|.+\.fas.gz|.+\.fna|.+\.fna.gz/) { + extension = "fasta" + } + def endswith = task.ext.suffix ?: "${extension}.gz" + """ + seqkit \\ + replace \\ + ${args} \\ + --threads ${task.cpus} \\ + -i ${fastx} \\ + -o ${prefix}.${endswith} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$( seqkit | sed '3!d; s/Version: //' ) + END_VERSIONS + """ +} diff --git a/modules/seqkit/replace/meta.yml b/modules/seqkit/replace/meta.yml new file mode 100644 index 00000000..c15d04cb --- /dev/null +++ b/modules/seqkit/replace/meta.yml @@ -0,0 +1,41 @@ +name: seqkit_replace +description: Use seqkit to find/replace strings within sequences and sequence headers +keywords: + - seqkit + - replace +tools: + - seqkit: + description: Cross-platform and ultrafast toolkit for FASTA/Q file manipulation, written by Wei Shen. + homepage: https://bioinf.shenwei.me/seqkit/usage/ + documentation: https://bioinf.shenwei.me/seqkit/usage/ + tool_dev_url: https://github.com/shenwei356/seqkit/ + doi: "10.1371/journal.pone.016396" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastx: + type: file + description: fasta/q file + pattern: "*.{fasta,fastq,fa,fq,fas,fna,faa}*" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - fastx: + type: file + description: fasta/q file with replaced values + pattern: "*.{fasta,fastq,fa,fq,fas,fna,faa}*" + +authors: + - "@mjcipriano" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index d6575ff1..a370f371 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1481,6 +1481,10 @@ seqkit/pair: - modules/seqkit/pair/** - tests/modules/seqkit/pair/** +seqkit/replace: + - modules/seqkit/replace/** + - tests/modules/seqkit/replace/** + seqkit/split2: - modules/seqkit/split2/** - tests/modules/seqkit/split2/** diff --git a/tests/modules/seqkit/replace/main.nf b/tests/modules/seqkit/replace/main.nf new file mode 100644 index 00000000..5c4058e7 --- /dev/null +++ b/tests/modules/seqkit/replace/main.nf @@ -0,0 +1,24 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SEQKIT_REPLACE } from '../../../../modules/seqkit/replace/main.nf' +include { SEQKIT_REPLACE as SEQKIT_REPLACEUNCOMP } from '../../../../modules/seqkit/replace/main.nf' + +workflow test_seqkit_replace { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + ] + + SEQKIT_REPLACE ( input ) +} + +workflow test_seqkit_replace_uncomp { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + ] + + SEQKIT_REPLACEUNCOMP ( input ) +} diff --git a/tests/modules/seqkit/replace/nextflow.config b/tests/modules/seqkit/replace/nextflow.config new file mode 100644 index 00000000..8cec8505 --- /dev/null +++ b/tests/modules/seqkit/replace/nextflow.config @@ -0,0 +1,14 @@ +process { + + withName: 'SEQKIT_REPLACE' { + ext.args = "-s -p 'A' -r 'N'" + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + } + + withName: 'SEQKIT_REPLACEUNCOMP' { + ext.args = "-s -p 'T' -r 'N'" + ext.suffix = ".fasta" + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + } + +} diff --git a/tests/modules/seqkit/replace/test.yml b/tests/modules/seqkit/replace/test.yml new file mode 100644 index 00000000..94c3a5ef --- /dev/null +++ b/tests/modules/seqkit/replace/test.yml @@ -0,0 +1,21 @@ +- name: seqkit replace test_seqkit_replace + command: nextflow run tests/modules/seqkit/replace -entry test_seqkit_replace -c tests/config/nextflow.config + tags: + - seqkit + - seqkit/replace + files: + - path: output/seqkit/test.fasta.gz + md5sum: 053847219695c0a923d02352442d7abf + - path: output/seqkit/versions.yml + md5sum: dc9d18b7836c9db00a3032fd191bd831 + +- name: seqkit replace test_seqkit_replace_uncomp + command: nextflow run tests/modules/seqkit/replace -entry test_seqkit_replace_uncomp -c tests/config/nextflow.config + tags: + - seqkit + - seqkit/replace + files: + - path: output/seqkit/test..fasta + md5sum: 05d3294a62c72f5489f067c1da3c2f6c + - path: output/seqkit/versions.yml + md5sum: 3b88128487ec949f0bdeecebc375c407 From 62da45b0e1202677a07e2da0ee9f6181466232fb Mon Sep 17 00:00:00 2001 From: Jose Espinosa-Carrasco Date: Thu, 10 Mar 2022 09:23:45 +0100 Subject: [PATCH 086/592] Bump chromap version 0.2.0 (#1374) * Bump chromap version 0.2.0 * Temporary use the docker container until singularity container becomes available * Temporary use the docker container until singularity container available * Remove empty lines * Update singularity container after became available --- modules/chromap/chromap/main.nf | 6 +++--- modules/chromap/index/main.nf | 7 +++---- tests/modules/chromap/chromap/test.yml | 8 +++++++- tests/modules/chromap/index/test.yml | 2 ++ 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/modules/chromap/chromap/main.nf b/modules/chromap/chromap/main.nf index cdbf6049..4ee86b92 100644 --- a/modules/chromap/chromap/main.nf +++ b/modules/chromap/chromap/main.nf @@ -2,10 +2,10 @@ process CHROMAP_CHROMAP { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::chromap=0.1.5 bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::chromap=0.2.0 bioconda::samtools=1.14" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:724a1037d59f6a19c9d4e7bdba77b52b37de0dc3-0' : - 'quay.io/biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:724a1037d59f6a19c9d4e7bdba77b52b37de0dc3-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:ed3529ef5253d7ccbc688b6a4c5c447152685757-0' : + 'quay.io/biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:ed3529ef5253d7ccbc688b6a4c5c447152685757-0' }" input: tuple val(meta), path(reads) diff --git a/modules/chromap/index/main.nf b/modules/chromap/index/main.nf index 52deaf06..2696d6a5 100644 --- a/modules/chromap/index/main.nf +++ b/modules/chromap/index/main.nf @@ -2,11 +2,10 @@ process CHROMAP_INDEX { tag '$fasta' label 'process_medium' - conda (params.enable_conda ? "bioconda::chromap=0.1.5" : null) + conda (params.enable_conda ? "bioconda::chromap=0.2.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/chromap:0.1.5--h9a82719_0' : - 'quay.io/biocontainers/chromap:0.1.5--h9a82719_0' }" - + 'https://depot.galaxyproject.org/singularity/chromap:0.2.0--hd03093a_1' : + 'quay.io/biocontainers/chromap:0.2.0--hd03093a_1' }" input: path fasta diff --git a/tests/modules/chromap/chromap/test.yml b/tests/modules/chromap/chromap/test.yml index 09e5e753..40e45959 100644 --- a/tests/modules/chromap/chromap/test.yml +++ b/tests/modules/chromap/chromap/test.yml @@ -7,6 +7,8 @@ - path: output/chromap/genome.index - path: output/chromap/test.bed.gz md5sum: 25e40bde24c7b447292cd68573728694 + - path: output/chromap/versions.yml + md5sum: 2d3d2959ac20d98036807964896829e7 - name: chromap chromap test_chromap_chromap_paired_end command: nextflow run ./tests/modules/chromap/chromap -entry test_chromap_chromap_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/chromap/chromap/nextflow.config @@ -17,6 +19,8 @@ - path: output/chromap/genome.index - path: output/chromap/test.bed.gz md5sum: 7cdc8448882b75811e0c784f5f20aef2 + - path: output/chromap/versions.yml + md5sum: 51cff66779161d8a602cce5989017395 - name: chromap chromap test_chromap_chromap_paired_bam command: nextflow run ./tests/modules/chromap/chromap -entry test_chromap_chromap_paired_bam -c ./tests/config/nextflow.config -c ./tests/modules/chromap/chromap/nextflow.config @@ -26,4 +30,6 @@ files: - path: output/chromap/genome.index - path: output/chromap/test.bam - md5sum: 73e2c76007e3c61df625668e01b3f42f + md5sum: f255c7441d5a1f307fc642d2aa19647e + - path: output/chromap/versions.yml + md5sum: f91910c44169549c3923931de5c3afcb diff --git a/tests/modules/chromap/index/test.yml b/tests/modules/chromap/index/test.yml index dde1aa1b..b2aa37d8 100644 --- a/tests/modules/chromap/index/test.yml +++ b/tests/modules/chromap/index/test.yml @@ -5,3 +5,5 @@ - chromap files: - path: output/chromap/genome.index + - path: output/chromap/versions.yml + md5sum: b75dec647f9dc5f4887f36d1db7a9ccd From 79a9d5e1eae6cc6f3b2a0a0d02e61ae4b5ef3748 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 11 Mar 2022 09:02:10 +0000 Subject: [PATCH 087/592] New module: NGSCheckMate (#1290) NGSCheckMate ncm mode, working on bam files and vcf files to check that (human) samples match as expected Co-authored-by: Simon Pearce Co-authored-by: Mahesh Binzer-Panchal --- modules/ngscheckmate/ncm/main.nf | 49 ++++++++++++++ modules/ngscheckmate/ncm/meta.yml | 64 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/ngscheckmate/ncm/main.nf | 63 ++++++++++++++++++ .../modules/ngscheckmate/ncm/nextflow.config | 27 ++++++++ tests/modules/ngscheckmate/ncm/test.yml | 29 +++++++++ 6 files changed, 236 insertions(+) create mode 100644 modules/ngscheckmate/ncm/main.nf create mode 100644 modules/ngscheckmate/ncm/meta.yml create mode 100644 tests/modules/ngscheckmate/ncm/main.nf create mode 100644 tests/modules/ngscheckmate/ncm/nextflow.config create mode 100644 tests/modules/ngscheckmate/ncm/test.yml diff --git a/modules/ngscheckmate/ncm/main.nf b/modules/ngscheckmate/ncm/main.nf new file mode 100644 index 00000000..2712c984 --- /dev/null +++ b/modules/ngscheckmate/ncm/main.nf @@ -0,0 +1,49 @@ +process NGSCHECKMATE_NCM { + label 'process_low' + + conda (params.enable_conda ? "bioconda::ngscheckmate=1.0.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/ngscheckmate:1.0.0--py27r41hdfd78af_3': + 'quay.io/biocontainers/ngscheckmate:1.0.0--py27r41hdfd78af_3' }" + + input: + path files + path snp_bed + path fasta + + output: + path "*.pdf" , emit: pdf + path "*_corr_matrix.txt", emit: corr_matrix + path "*_matched.txt" , emit: matched + path "*_all.txt" , emit: all + path "*.vcf" , emit: vcfs, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "output" + def unzip = files.any { it.toString().endsWith(".vcf.gz") } + """ + if $unzip + then + for VCFGZ in *.vcf.gz; do + gunzip -cdf \$VCFGZ > \$( basename \$VCFGZ .gz ); + done + fi + + NCM_REF="./"${fasta} ncm.py -d . -bed ${snp_bed} -O . -N ${prefix} $args + + if $unzip + then + rm -f *.vcf # clean up decompressed vcfs + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ngscheckmate: \$(ncm.py --help | sed "7!d;s/ *Ensuring Sample Identity v//g") + END_VERSIONS + """ +} diff --git a/modules/ngscheckmate/ncm/meta.yml b/modules/ngscheckmate/ncm/meta.yml new file mode 100644 index 00000000..b8837b80 --- /dev/null +++ b/modules/ngscheckmate/ncm/meta.yml @@ -0,0 +1,64 @@ +name: ngscheckmate_ncm +description: Determining whether sequencing data comes from the same individual by using SNP matching. Designed for humans on vcf or bam files. +keywords: + - ngscheckmate + - matching + - snp +tools: + - ngscheckmate: + description: NGSCheckMate is a software package for identifying next generation sequencing (NGS) data files from the same individual, including matching between DNA and RNA. + homepage: https://github.com/parklab/NGSCheckMate + documentation: https://github.com/parklab/NGSCheckMate + tool_dev_url: https://github.com/parklab/NGSCheckMate + doi: "doi:/10.1093/nar/gkx193" + licence: ['MIT'] + +input: + - files: + type: file + description: VCF or BAM files for each sample, in a merged channel (possibly gzipped). BAM files require an index too. + pattern: "*.{vcf,vcf.gz,bam,bai}" + + - snp_bed: + type: file + description: BED file containing the SNPs to analyse + pattern: "*.{bed}" + + - fasta: + type: file + description: fasta file for the genome, only used in the bam mode + pattern: "*.{bed}" + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + + - pdf: + type: file + description: A pdf containing a dendrogram showing how the samples match up + pattern: "*.{pdf}" + + - corr_matrix: + type: file + description: A text file containing the correlation matrix between each sample + pattern: "*corr_matrix.txt" + + - matched: + type: file + description: A txt file containing only the samples that match with each other + pattern: "*matched.txt" + + - all: + type: file + description: A txt file containing all the sample comparisons, whether they match or not + pattern: "*all.txt" + + - vcfs: + type: file + description: If ran in bam mode, vcf files for each sample giving the SNP calls + pattern: "*.vcf" + +authors: + - "@sppearce" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index a370f371..5c110ba7 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1145,6 +1145,10 @@ ngmaster: - modules/ngmaster/** - tests/modules/ngmaster/** +ngscheckmate/ncm: + - modules/ngscheckmate/ncm/** + - tests/modules/ngscheckmate/ncm/** + nucmer: - modules/nucmer/** - tests/modules/nucmer/** diff --git a/tests/modules/ngscheckmate/ncm/main.nf b/tests/modules/ngscheckmate/ncm/main.nf new file mode 100644 index 00000000..ab6a4639 --- /dev/null +++ b/tests/modules/ngscheckmate/ncm/main.nf @@ -0,0 +1,63 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { NGSCHECKMATE_NCM as NGSCHECKMATE_NCM_BAM} from '../../../../modules/ngscheckmate/ncm/main.nf' +include { NGSCHECKMATE_NCM as NGSCHECKMATE_NCM_VCF} from '../../../../modules/ngscheckmate/ncm/main.nf' + +include { BEDTOOLS_MAKEWINDOWS } from '../../../../modules/bedtools/makewindows/main.nf' + +include { BCFTOOLS_MPILEUP } from '../../../../modules/bcftools/mpileup/main.nf' +include { BCFTOOLS_MPILEUP as BCFTOOLS_MPILEUP2 } from '../../../../modules/bcftools/mpileup/main.nf' + +workflow test_ngscheckmate_ncm_bam { + input = [ file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true)] + + fasta = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + + inputBed = [ [ id:'test'], + file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true)] + + BEDTOOLS_MAKEWINDOWS(inputBed, true). + tab. + map{it[1]}. + view(). + set{snp_channel} + + NGSCHECKMATE_NCM_BAM(input, snp_channel, fasta) +} + +workflow test_ngscheckmate_ncm_vcf { + input1 = [ [ id:'test1' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] + ] + + input2 = [ [ id:'test2' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] + ] + + fasta = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + + inputBed = [ [ id:'test'], + file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true)] + + BCFTOOLS_MPILEUP ( input1, fasta, false ) + BCFTOOLS_MPILEUP2 ( input2, fasta, false ) + + BCFTOOLS_MPILEUP2.out.vcf. + combine( BCFTOOLS_MPILEUP.out.vcf ). + map { [ it[1], it[3] ] }. + set { vcf_channel } + + BEDTOOLS_MAKEWINDOWS( inputBed, true ).tab. + map { it[1] }. + view(). + set { snp_channel } + + NGSCHECKMATE_NCM_VCF(vcf_channel, snp_channel, fasta) +} + + diff --git a/tests/modules/ngscheckmate/ncm/nextflow.config b/tests/modules/ngscheckmate/ncm/nextflow.config new file mode 100644 index 00000000..81698ecd --- /dev/null +++ b/tests/modules/ngscheckmate/ncm/nextflow.config @@ -0,0 +1,27 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: BEDTOOLS_MAKEWINDOWS { + ext.args = '-w 1' + } + + withName: BCFTOOLS_MPILEUP { + ext.args2 = '--no-version --ploidy 1 --multiallelic-caller' + ext.args3 = '--no-version' + } + + withName: BCFTOOLS_MPILEUP2 { + ext.args2 = '--no-version --ploidy 1 --multiallelic-caller' + ext.args3 = '--no-version' + } + + withName: NGSCHECKMATE_NCM_VCF { + ext.args = '-V' + } + + withName: NGSCHECKMATE_NCM_BAM { + ext.args = '-B' + } + +} \ No newline at end of file diff --git a/tests/modules/ngscheckmate/ncm/test.yml b/tests/modules/ngscheckmate/ncm/test.yml new file mode 100644 index 00000000..c0c8bc00 --- /dev/null +++ b/tests/modules/ngscheckmate/ncm/test.yml @@ -0,0 +1,29 @@ +- name: ngscheckmate ncm test_ngscheckmate_ncm_bam + command: nextflow run tests/modules/ngscheckmate/ncm -entry test_ngscheckmate_ncm_bam -c tests/config/nextflow.config + tags: + - ngscheckmate/ncm + - ngscheckmate + files: + - path: output/ngscheckmate/output_all.txt + md5sum: f71a712c3f6ecf64dd526365212f1b7c + - path: output/ngscheckmate/output_corr_matrix.txt + md5sum: 6777377aa9ae3d57f841b12896318db0 + - path: output/ngscheckmate/output_matched.txt + md5sum: f71a712c3f6ecf64dd526365212f1b7c + - path: output/ngscheckmate/versions.yml + md5sum: fbb2bebd65b4f4e1e93c6bf5c08a6829 + +- name: ngscheckmate ncm test_ngscheckmate_ncm_vcf + command: nextflow run tests/modules/ngscheckmate/ncm -entry test_ngscheckmate_ncm_vcf -c tests/config/nextflow.config + tags: + - ngscheckmate/ncm + - ngscheckmate + files: + - path: output/ngscheckmate/output_all.txt + md5sum: fd74956dcac279b6f58e82ea73e344f8 + - path: output/ngscheckmate/output_corr_matrix.txt + md5sum: 0c86bdad2721c470fe6be119f291c8e5 + - path: output/ngscheckmate/output_matched.txt + md5sum: fd74956dcac279b6f58e82ea73e344f8 + - path: output/ngscheckmate/versions.yml + md5sum: f06910b83dde194a47870c553cefe193 From 625098a408b1e8c2d91b82b4d5a88197bb6f4d5f Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 14 Mar 2022 07:32:21 +0100 Subject: [PATCH 088/592] Adapterremoval glob fix (#1391) * fix: remove left-over unnecessary code * Partial fix for AR module output declarations * Remove `def` for prefix so useable in output block * Fix tests * Add adapterlist support * Fix tests after addition of adapter list --- modules/adapterremoval/main.nf | 46 +++++++------------- modules/adapterremoval/meta.yml | 7 +++ tests/modules/adapterremoval/main.nf | 12 ++--- tests/modules/adapterremoval/nextflow.config | 4 ++ tests/modules/adapterremoval/test.yml | 13 +++--- 5 files changed, 41 insertions(+), 41 deletions(-) diff --git a/modules/adapterremoval/main.nf b/modules/adapterremoval/main.nf index 77838287..9d16b9c9 100644 --- a/modules/adapterremoval/main.nf +++ b/modules/adapterremoval/main.nf @@ -9,48 +9,34 @@ process ADAPTERREMOVAL { input: tuple val(meta), path(reads) + path(adapterlist) output: - tuple val(meta), path('*.truncated.gz') , optional: true, emit: singles_truncated - tuple val(meta), path('*.discarded.gz') , optional: true, emit: discarded - tuple val(meta), path('*.pair1.truncated.gz') , optional: true, emit: pair1_truncated - tuple val(meta), path('*.pair2.truncated.gz') , optional: true, emit: pair2_truncated - tuple val(meta), path('*.collapsed.gz') , optional: true, emit: collapsed - tuple val(meta), path('*.collapsed.truncated') , optional: true, emit: collapsed_truncated - tuple val(meta), path('*paired.gz') , optional: true, emit: paired_interleaved - tuple val(meta), path('*.log') , emit: log - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}.truncated.gz") , optional: true, emit: singles_truncated + tuple val(meta), path("${prefix}.discarded.gz") , optional: true, emit: discarded + tuple val(meta), path("${prefix}.pair1.truncated.gz") , optional: true, emit: pair1_truncated + tuple val(meta), path("${prefix}.pair2.truncated.gz") , optional: true, emit: pair2_truncated + tuple val(meta), path("${prefix}.collapsed.gz") , optional: true, emit: collapsed + tuple val(meta), path("${prefix}.collapsed.truncated.gz") , optional: true, emit: collapsed_truncated + tuple val(meta), path("${prefix}.paired.gz") , optional: true, emit: paired_interleaved + tuple val(meta), path('*.log') , emit: log + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + def list = adapterlist ? "--adapter-list ${adapterlist}" : "" + prefix = task.ext.prefix ?: "${meta.id}" if (meta.single_end) { """ AdapterRemoval \\ --file1 $reads \\ $args \\ - --basename $prefix \\ - --threads ${task.cpus} \\ - --settings ${prefix}.log \\ - --seed 42 \\ - --gzip - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - adapterremoval: \$(AdapterRemoval --version 2>&1 | sed -e "s/AdapterRemoval ver. //g") - END_VERSIONS - """ - } else if (!meta.single_end ) { - """ - AdapterRemoval \\ - --file1 ${reads[0]} \\ - --file2 ${reads[1]} \\ - $args \\ - --basename $prefix \\ + $adapterlist \\ + --basename ${prefix} \\ --threads ${task.cpus} \\ --settings ${prefix}.log \\ --seed 42 \\ @@ -67,13 +53,13 @@ process ADAPTERREMOVAL { --file1 ${reads[0]} \\ --file2 ${reads[1]} \\ $args \\ - --basename $prefix \\ + $adapterlist \\ + --basename ${prefix} \\ --threads $task.cpus \\ --settings ${prefix}.log \\ --seed 42 \\ --gzip - cat *.collapsed.gz *.collapsed.truncated.gz > ${prefix}.merged.fastq.gz cat <<-END_VERSIONS > versions.yml "${task.process}": adapterremoval: \$(AdapterRemoval --version 2>&1 | sed -e "s/AdapterRemoval ver. //g") diff --git a/modules/adapterremoval/meta.yml b/modules/adapterremoval/meta.yml index a9a071f5..e395fe4a 100644 --- a/modules/adapterremoval/meta.yml +++ b/modules/adapterremoval/meta.yml @@ -24,6 +24,13 @@ input: List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. pattern: "*.{fq,fastq,fq.gz,fastq.gz}" + - adapterlist: + type: file + description: + Optional text file containing list of adapters to look for for removal + with one adapter per line. Otherwise will look for default adapters (see + AdapterRemoval man page), or can be modified to remove user-specified + adapters via ext.args. output: - meta: diff --git a/tests/modules/adapterremoval/main.nf b/tests/modules/adapterremoval/main.nf index ee7f1c44..a427bfbf 100644 --- a/tests/modules/adapterremoval/main.nf +++ b/tests/modules/adapterremoval/main.nf @@ -2,14 +2,16 @@ nextflow.enable.dsl = 2 -include { ADAPTERREMOVAL } from '../../../modules/adapterremoval/main.nf' +include { ADAPTERREMOVAL } from '../../../modules/adapterremoval/main.nf' +include { ADAPTERREMOVAL as ADAPTERREMOVAL_COLLAPSE } from '../../../modules/adapterremoval/main.nf' + workflow test_adapterremoval_single_end { input = [ [ id:'test', single_end:true, collapse:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] - ADAPTERREMOVAL ( input ) + ADAPTERREMOVAL ( input, [] ) } workflow test_adapterremoval_paired_end { @@ -18,15 +20,15 @@ workflow test_adapterremoval_paired_end { file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] ] - ADAPTERREMOVAL ( input ) + ADAPTERREMOVAL ( input, [] ) } workflow test_adapterremoval_paired_end_collapse { - input = [ [ id:'test', single_end:false, collapse:true ], // meta map + input = [ [ id:'test', single_end:false ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] ] - ADAPTERREMOVAL ( input ) + ADAPTERREMOVAL_COLLAPSE ( input, [] ) } diff --git a/tests/modules/adapterremoval/nextflow.config b/tests/modules/adapterremoval/nextflow.config index 8730f1c4..b59870ef 100644 --- a/tests/modules/adapterremoval/nextflow.config +++ b/tests/modules/adapterremoval/nextflow.config @@ -2,4 +2,8 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: ADAPTERREMOVAL_COLLAPSE { + ext.args = "--collapse" + } + } diff --git a/tests/modules/adapterremoval/test.yml b/tests/modules/adapterremoval/test.yml index 805af9fc..f6adfba3 100644 --- a/tests/modules/adapterremoval/test.yml +++ b/tests/modules/adapterremoval/test.yml @@ -23,7 +23,6 @@ md5sum: 294a6277f0139bd597e57c6fa31f39c7 - path: output/adapterremoval/test.pair2.truncated.gz md5sum: de7b38e2c881bced8671acb1ab452d78 - - path: output/adapterremoval/test.singleton.truncated.gz - path: output/adapterremoval/versions.yml md5sum: fa621c887897da5a379c719399c17db7 @@ -32,13 +31,15 @@ tags: - adapterremoval files: + - path: output/adapterremoval/test.collapsed.gz + md5sum: ff956de3532599a56c3efe5369f0953f + - path: output/adapterremoval/test.collapsed.truncated.gz - path: output/adapterremoval/test.discarded.gz - path: output/adapterremoval/test.log - md5sum: b8a451d3981b327f3fdb44f40ba2d6d1 + md5sum: 7f0b2328152226e46101a535cce718b3 - path: output/adapterremoval/test.pair1.truncated.gz - md5sum: 294a6277f0139bd597e57c6fa31f39c7 + md5sum: 683be19bc1c83008944b6b719bfa34e1 - path: output/adapterremoval/test.pair2.truncated.gz - md5sum: de7b38e2c881bced8671acb1ab452d78 - - path: output/adapterremoval/test.singleton.truncated.gz + md5sum: e6548fe061f3ef86368b26da930174d0 - path: output/adapterremoval/versions.yml - md5sum: fd428f92a8446e0b34c5ae1c447215b8 + md5sum: 78f589bb313c8da0147ca8ce77d7f3bf From 801240a9714082de913e8a72f4bb434018a50e8b Mon Sep 17 00:00:00 2001 From: Nathan Spix <56930974+njspix@users.noreply.github.com> Date: Mon, 14 Mar 2022 09:34:22 -0400 Subject: [PATCH 089/592] Add core Biscuit tools (#1354) * create files with nf-core command * update meta.yml files * starting to work on index main.nf * prelim test for index * index test working; not finding all output files * index passing tests * index and align passing tests * prototyping biscuitblaster and pileup * update containers * updates to pileup * pileup passing tests * template creation for more biscuit tools * tests passing on blaster,bsconv,pupsom * epiread passing tests, but need to update SNP bed file path * vcf2bed working; change test file * all biscuit commands passing tests * biscuitblaster rename * try to fix permissions * more permission fixes * trying a couple more permission changes * hopefully last permission fixes * really last permission changes * few more permissions * add when blocks * Remove read group meta Co-authored-by: James A. Fellows Yates * remove read group meta Co-authored-by: James A. Fellows Yates * changes for first round of review * update meta.yml with more specific links * Update modules/biscuit/biscuitblaster/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Apply new version reporting Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Update modules/biscuit/pileup/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Update main.nf * Update modules/biscuit/pileupsomatic/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * update test file path * Update modules/biscuit/align/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Update modules/biscuit/align/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * tests passing again * Update modules/biscuit/align/main.nf * Update modules/biscuit/bsconv/main.nf * Update modules/biscuit/epiread/main.nf * Update modules/biscuit/index/main.nf * Update test.yml * Update modules/biscuit/pileupsomatic/main.nf * remove module-specific extension/prefix * remove module-specific extension/prefix * add missing args * switch pileup strategy * update test.yml * remove debug * whitespace cleanup * add in newline escapes * requested changes * Update modules/biscuit/pileup/meta.yml Co-authored-by: Spix Co-authored-by: James A. Fellows Yates Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: Spix Co-authored-by: njspix --- modules/biscuit/align/main.nf | 44 ++++++++++ modules/biscuit/align/meta.yml | 52 ++++++++++++ modules/biscuit/biscuitblaster/main.nf | 52 ++++++++++++ modules/biscuit/biscuitblaster/meta.yml | 78 ++++++++++++++++++ modules/biscuit/bsconv/main.nf | 39 +++++++++ modules/biscuit/bsconv/meta.yml | 55 +++++++++++++ modules/biscuit/epiread/main.nf | 57 +++++++++++++ modules/biscuit/epiread/meta.yml | 58 ++++++++++++++ modules/biscuit/index/main.nf | 33 ++++++++ modules/biscuit/index/meta.yml | 38 +++++++++ modules/biscuit/mergecg/main.nf | 43 ++++++++++ modules/biscuit/mergecg/meta.yml | 51 ++++++++++++ modules/biscuit/pileup/main.nf | 45 +++++++++++ modules/biscuit/pileup/meta.yml | 70 ++++++++++++++++ modules/biscuit/qc/main.nf | 40 ++++++++++ modules/biscuit/qc/meta.yml | 51 ++++++++++++ modules/biscuit/vcf2bed/main.nf | 39 +++++++++ modules/biscuit/vcf2bed/meta.yml | 48 +++++++++++ tests/config/nextflow.config | 2 +- tests/config/pytest_modules.yml | 43 ++++++++++ tests/modules/biscuit/align/main.nf | 33 ++++++++ tests/modules/biscuit/align/nextflow.config | 5 ++ tests/modules/biscuit/align/test.yml | 53 ++++++++++++ tests/modules/biscuit/biscuitblaster/main.nf | 32 ++++++++ .../biscuit/biscuitblaster/nextflow.config | 5 ++ tests/modules/biscuit/biscuitblaster/test.yml | 57 +++++++++++++ tests/modules/biscuit/bsconv/main.nf | 19 +++++ tests/modules/biscuit/bsconv/nextflow.config | 10 +++ tests/modules/biscuit/bsconv/test.yml | 26 ++++++ tests/modules/biscuit/epiread/main.nf | 48 +++++++++++ tests/modules/biscuit/epiread/nextflow.config | 5 ++ tests/modules/biscuit/epiread/test.yml | 80 +++++++++++++++++++ tests/modules/biscuit/index/main.nf | 12 +++ tests/modules/biscuit/index/nextflow.config | 5 ++ tests/modules/biscuit/index/test.yml | 24 ++++++ tests/modules/biscuit/mergecg/main.nf | 18 +++++ tests/modules/biscuit/mergecg/nextflow.config | 5 ++ tests/modules/biscuit/mergecg/test.yml | 26 ++++++ tests/modules/biscuit/pileup/main.nf | 38 +++++++++ tests/modules/biscuit/pileup/nextflow.config | 5 ++ tests/modules/biscuit/pileup/test.yml | 53 ++++++++++++ tests/modules/biscuit/qc/main.nf | 18 +++++ tests/modules/biscuit/qc/nextflow.config | 5 ++ tests/modules/biscuit/qc/test.yml | 38 +++++++++ tests/modules/biscuit/vcf2bed/main.nf | 16 ++++ tests/modules/biscuit/vcf2bed/nextflow.config | 5 ++ tests/modules/biscuit/vcf2bed/test.yml | 10 +++ 47 files changed, 1588 insertions(+), 1 deletion(-) create mode 100644 modules/biscuit/align/main.nf create mode 100644 modules/biscuit/align/meta.yml create mode 100644 modules/biscuit/biscuitblaster/main.nf create mode 100644 modules/biscuit/biscuitblaster/meta.yml create mode 100644 modules/biscuit/bsconv/main.nf create mode 100644 modules/biscuit/bsconv/meta.yml create mode 100644 modules/biscuit/epiread/main.nf create mode 100644 modules/biscuit/epiread/meta.yml create mode 100644 modules/biscuit/index/main.nf create mode 100644 modules/biscuit/index/meta.yml create mode 100644 modules/biscuit/mergecg/main.nf create mode 100644 modules/biscuit/mergecg/meta.yml create mode 100644 modules/biscuit/pileup/main.nf create mode 100644 modules/biscuit/pileup/meta.yml create mode 100644 modules/biscuit/qc/main.nf create mode 100644 modules/biscuit/qc/meta.yml create mode 100644 modules/biscuit/vcf2bed/main.nf create mode 100644 modules/biscuit/vcf2bed/meta.yml create mode 100644 tests/modules/biscuit/align/main.nf create mode 100644 tests/modules/biscuit/align/nextflow.config create mode 100644 tests/modules/biscuit/align/test.yml create mode 100644 tests/modules/biscuit/biscuitblaster/main.nf create mode 100644 tests/modules/biscuit/biscuitblaster/nextflow.config create mode 100644 tests/modules/biscuit/biscuitblaster/test.yml create mode 100644 tests/modules/biscuit/bsconv/main.nf create mode 100644 tests/modules/biscuit/bsconv/nextflow.config create mode 100644 tests/modules/biscuit/bsconv/test.yml create mode 100644 tests/modules/biscuit/epiread/main.nf create mode 100644 tests/modules/biscuit/epiread/nextflow.config create mode 100644 tests/modules/biscuit/epiread/test.yml create mode 100644 tests/modules/biscuit/index/main.nf create mode 100644 tests/modules/biscuit/index/nextflow.config create mode 100644 tests/modules/biscuit/index/test.yml create mode 100644 tests/modules/biscuit/mergecg/main.nf create mode 100644 tests/modules/biscuit/mergecg/nextflow.config create mode 100644 tests/modules/biscuit/mergecg/test.yml create mode 100644 tests/modules/biscuit/pileup/main.nf create mode 100644 tests/modules/biscuit/pileup/nextflow.config create mode 100644 tests/modules/biscuit/pileup/test.yml create mode 100644 tests/modules/biscuit/qc/main.nf create mode 100644 tests/modules/biscuit/qc/nextflow.config create mode 100644 tests/modules/biscuit/qc/test.yml create mode 100644 tests/modules/biscuit/vcf2bed/main.nf create mode 100644 tests/modules/biscuit/vcf2bed/nextflow.config create mode 100644 tests/modules/biscuit/vcf2bed/test.yml diff --git a/modules/biscuit/align/main.nf b/modules/biscuit/align/main.nf new file mode 100644 index 00000000..18e178ff --- /dev/null +++ b/modules/biscuit/align/main.nf @@ -0,0 +1,44 @@ +process BISCUIT_ALIGN { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0': + 'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }" + + input: + tuple val(meta), path(reads) + path index + + output: + tuple val(meta), path("*.bam"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def biscuit_cpus = (int) Math.max(Math.floor(task.cpus*0.9),1) + def samtools_cpus = task.cpus-biscuit_cpus + """ + INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'` + + biscuit align \\ + $args \\ + -@ $biscuit_cpus \\ + \$INDEX \\ + $reads \\ + | samtools sort $args2 --threads $samtools_cpus -o ${prefix}.bam - + + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' ) + samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' ) + END_VERSIONS + """ +} diff --git a/modules/biscuit/align/meta.yml b/modules/biscuit/align/meta.yml new file mode 100644 index 00000000..77af5e4d --- /dev/null +++ b/modules/biscuit/align/meta.yml @@ -0,0 +1,52 @@ +name: biscuit_align +description: Aligns single- or paired-end reads from bisulfite-converted libraries to a reference genome using Biscuit. +keywords: + - biscuit + - DNA methylation + - WGBS + - scWGBS + - bisulfite sequencing + - aligner + - bam +tools: + - biscuit: + description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data + homepage: https://huishenlab.github.io/biscuit/ + documentation: https://huishenlab.github.io/biscuit/docs/alignment + tool_dev_url: https://github.com/huishenlab/biscuit + doi: "" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input fastq files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: dir + description: Biscuit genome index directory (generated with 'biscuit index') + pattern: "BiscuitIndex" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@njspix" diff --git a/modules/biscuit/biscuitblaster/main.nf b/modules/biscuit/biscuitblaster/main.nf new file mode 100644 index 00000000..700bc5e0 --- /dev/null +++ b/modules/biscuit/biscuitblaster/main.nf @@ -0,0 +1,52 @@ +process BISCUIT_BLASTER { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samblaster=0.1.26 bioconda::samtools=1.15" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0': + 'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }" + + input: + tuple val(meta), path(reads) + path index + + output: + tuple val(meta), path("*.bam"), emit: bam + tuple val(meta), path("*.bai"), emit: bai + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def prefix = task.ext.prefix ?: "${meta.id}" + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def args3 = task.ext.args3 ?: '' + def biscuit_cpus = (int) Math.max(Math.floor(task.cpus*0.95),1) + def samtools_cpus = task.cpus-biscuit_cpus + """ + INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'` + + biscuit align \\ + -@ $biscuit_cpus \\ + $args \\ + \$INDEX \\ + $reads | \\ + samblaster \\ + $args2 | \\ + samtools sort \\ + -@ $samtools_cpus \\ + $args3 \\ + --write-index \\ + -o ${prefix}.bam##idx##${prefix}.bam.bai + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' ) + samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' ) + samblaster: \$( samblaster --version |& sed 's/^.*samblaster: Version //' ) + END_VERSIONS + """ +} diff --git a/modules/biscuit/biscuitblaster/meta.yml b/modules/biscuit/biscuitblaster/meta.yml new file mode 100644 index 00000000..eb22dd0f --- /dev/null +++ b/modules/biscuit/biscuitblaster/meta.yml @@ -0,0 +1,78 @@ +name: biscuit_blaster + +description: A fast, compact one-liner to produce duplicate-marked, sorted, and indexed BAM files using Biscuit +keywords: + - biscuit + - DNA methylation + - WGBS + - scWGBS + - bisulfite sequencing + - aligner + - bam + +tools: + - biscuit: + description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data + homepage: https://huishenlab.github.io/biscuit/ + documentation: https://huishenlab.github.io/biscuit/biscuitblaster/ + tool_dev_url: https://github.com/huishenlab/biscuit + doi: "" + licence: ["MIT"] + - samblaster: + description: | + samblaster is a fast and flexible program for marking duplicates in read-id grouped paired-end SAM files. + It can also optionally output discordant read pairs and/or split read mappings to separate SAM files, + and/or unmapped/clipped reads to a separate FASTQ file. + By default, samblaster reads SAM input from stdin and writes SAM to stdout. + homepage: None + documentation: https://github.com/GregoryFaust/samblaster + tool_dev_url: https://github.com/GregoryFaust/samblaster + doi: "10.1093/bioinformatics/btu314" + licence: ["MIT"] + - 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 + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input fastq files of size 1 and 2 for single-end and paired-end data, + respectively. + - index: + type: dir + description: Biscuit genome index directory (generated with 'biscuit index') + pattern: "BiscuitIndex" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Output BAM file containing read alignments + pattern: "*.{bam}" + - bai: + type: file + description: Output BAM index + pattern: "*.{bai}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@njspix" diff --git a/modules/biscuit/bsconv/main.nf b/modules/biscuit/bsconv/main.nf new file mode 100644 index 00000000..8c5ee91f --- /dev/null +++ b/modules/biscuit/bsconv/main.nf @@ -0,0 +1,39 @@ +process BISCUIT_BSCONV { + tag "$meta.id" + label 'process_long' + + conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/biscuit:1.0.2.20220113--h81a5ba2_0': + 'quay.io/biocontainers/biscuit:1.0.2.20220113--h81a5ba2_0' }" + + input: + tuple val(meta), path(bam), path(bai) + path(index) + + output: + tuple val(meta), path("*.bam"), emit: bsconv_bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + if ("$bam" == "${prefix}.bam") error "Input and output names are the same, set prefix in module configuration to disambiguate!" + """ + INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'` + + biscuit bsconv \\ + $args \\ + \$INDEX \\ + $bam \\ + ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' ) + END_VERSIONS + """ +} diff --git a/modules/biscuit/bsconv/meta.yml b/modules/biscuit/bsconv/meta.yml new file mode 100644 index 00000000..fa05ee47 --- /dev/null +++ b/modules/biscuit/bsconv/meta.yml @@ -0,0 +1,55 @@ +name: biscuit_bsconv +description: Summarize and/or filter reads based on bisulfite conversion rate +keywords: + - biscuit + - DNA methylation + - WGBS + - scWGBS + - bisulfite sequencing + - aligner + - bam + - filter + +tools: + - biscuit: + description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data + homepage: https://huishenlab.github.io/biscuit/ + documentation: https://huishenlab.github.io/biscuit/docs/subcommand_help.html#biscuit-bsconv + tool_dev_url: https://github.com/huishenlab/biscuit + doi: "" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file contained mapped reads + - bai: + type: file + description: BAM file index + - index: + type: dir + description: Biscuit genome index directory (generated with 'biscuit index') + pattern: "BiscuitIndex" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bsconv_bam: + type: file + description: Output BAM file containing filtered read alignments + pattern: "*.{bam}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@njspix" diff --git a/modules/biscuit/epiread/main.nf b/modules/biscuit/epiread/main.nf new file mode 100644 index 00000000..bc8c6d9f --- /dev/null +++ b/modules/biscuit/epiread/main.nf @@ -0,0 +1,57 @@ +process BISCUIT_EPIREAD { + tag "$meta.id" + label 'process_long' + + conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0': + 'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }" + + input: + tuple val(meta), path(bam), path(bai), path(snp_bed) + path(index) + + output: + tuple val(meta), path("*.bed.gz"), emit: epiread_bed + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def biscuit_cpus = (int) Math.max(Math.floor(task.cpus*0.9),1) + def samtools_cpus = task.cpus-biscuit_cpus + // As of 2/25/22, epiread does not support reading a gzipped SNP BED file. + // This is a bit hacky but allows the user to supply a gzipped OR uncompressed bed file + def unzip_snp_bed = snp_bed && (snp_bed.toString() =~ /\.gz$/) ? "bgzip -d ${snp_bed}" : "" + def unzipped_snp_bed = snp_bed ? snp_bed.toString() - ~/\.gz$/: "" + // SNP BED input is optional + def options_snp_bed = snp_bed ? "-B ${unzipped_snp_bed}" : "" + if ("$options_snp_bed" == "${prefix}.bed.gz") error "Input and output names are the same, set prefix in module configuration to disambiguate!" + """ + INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'` + + $unzip_snp_bed + + biscuit epiread \\ + -@ $biscuit_cpus \\ + $args \\ + $options_snp_bed \\ + \$INDEX \\ + $bam | \\ + LC_ALL=C sort -k1,1 -k2,2n | \\ + bgzip \\ + -@ $samtools_cpus \\ + $args2 \\ + -c > ${prefix}.bed.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' ) + samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' ) + END_VERSIONS + """ +} diff --git a/modules/biscuit/epiread/meta.yml b/modules/biscuit/epiread/meta.yml new file mode 100644 index 00000000..357b83df --- /dev/null +++ b/modules/biscuit/epiread/meta.yml @@ -0,0 +1,58 @@ +name: biscuit_epiread +description: | + Summarizes read-level methylation (and optionally SNV) information from a + Biscuit BAM file in a standard-compliant BED format. +keywords: + - biscuit + - DNA methylation + - WGBS + - scWGBS + - bisulfite sequencing + - aligner + - bam +tools: + - biscuit: + description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data + homepage: https://huishenlab.github.io/biscuit/ + documentation: https://huishenlab.github.io/biscuit/epiread_format/ + tool_dev_url: https://github.com/huishenlab/biscuit + doi: "" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Biscuit BAM file + - bai: + type: file + description: BAM index + - snp_bed: + type: file + description: BED file containing SNP information (optional) + - index: + type: dir + description: Biscuit genome index directory (generated with 'biscuit index') + pattern: "BiscuitIndex" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - epiread_bed: + type: file + description: Gzipped BED file with methylation (and optionally SNV) information + pattern: "*.{epiread.bed.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@njspix" diff --git a/modules/biscuit/index/main.nf b/modules/biscuit/index/main.nf new file mode 100644 index 00000000..9aa04330 --- /dev/null +++ b/modules/biscuit/index/main.nf @@ -0,0 +1,33 @@ +process BISCUIT_INDEX { + tag "$fasta" + label 'process_long' + + conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/biscuit:1.0.2.20220113--h81a5ba2_0': + 'quay.io/biocontainers/biscuit:1.0.2.20220113--h81a5ba2_0' }" + + input: + path fasta, stageAs: "BiscuitIndex/*" + + output: + path "BiscuitIndex/*.fa*", emit: index, includeInputs: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + biscuit \\ + index \\ + $args \\ + $fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' ) + END_VERSIONS + """ +} diff --git a/modules/biscuit/index/meta.yml b/modules/biscuit/index/meta.yml new file mode 100644 index 00000000..96134f65 --- /dev/null +++ b/modules/biscuit/index/meta.yml @@ -0,0 +1,38 @@ +name: biscuit_index +description: Indexes a reference genome for use with Biscuit +keywords: + - biscuit + - DNA methylation + - WGBS + - scWGBS + - bisulfite sequencing + - index + - reference + - fasta + +tools: + - biscuit: + description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data + homepage: https://huishenlab.github.io/biscuit/ + documentation: https://huishenlab.github.io/biscuit/docs/alignment + tool_dev_url: https://github.com/huishenlab/biscuit + doi: "" + licence: ["MIT"] + +input: + - fasta: + type: file + description: Input genome fasta file + +output: + - index: + type: dir + description: Biscuit genome index directory + pattern: "BiscuitIndex" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@njspix" diff --git a/modules/biscuit/mergecg/main.nf b/modules/biscuit/mergecg/main.nf new file mode 100644 index 00000000..6cafdb36 --- /dev/null +++ b/modules/biscuit/mergecg/main.nf @@ -0,0 +1,43 @@ +process BISCUIT_MERGECG { + tag "$meta.id" + label 'process_long' + + conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0': + 'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }" + + input: + tuple val(meta), path(bed) + path index + + output: + tuple val(meta), path("*.bed.gz"), emit: mergecg_bed + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'` + + biscuit mergecg \\ + $args \\ + \$INDEX \\ + $bed | \\ + LC_ALL=C sort -k1,1 -k2,2n | \\ + bgzip \\ + $args2 \\ + -c > ${prefix}.bed.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' ) + samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' ) + END_VERSIONS + """ +} diff --git a/modules/biscuit/mergecg/meta.yml b/modules/biscuit/mergecg/meta.yml new file mode 100644 index 00000000..25f6b9e2 --- /dev/null +++ b/modules/biscuit/mergecg/meta.yml @@ -0,0 +1,51 @@ +name: biscuit_mergecg +description: Merges methylation information for opposite-strand C's in a CpG context +keywords: + - biscuit + - DNA methylation + - WGBS + - scWGBS + - bisulfite sequencing + - aligner + - bed +tools: + - biscuit: + description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data + homepage: https://huishenlab.github.io/biscuit/ + documentation: https://huishenlab.github.io/biscuit/docs/methylextraction.html + tool_dev_url: https://github.com/huishenlab/biscuit + doi: "" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: | + Biscuit BED file (output of biscuit vcf2bed) + - index: + type: dir + description: Biscuit genome index directory (generated with 'biscuit index') + pattern: "BiscuitIndex" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - mergecg_bed: + type: file + description: Gzipped BED file with merged methylation information + pattern: "*.bed.gz" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@njspix" diff --git a/modules/biscuit/pileup/main.nf b/modules/biscuit/pileup/main.nf new file mode 100644 index 00000000..dcddc418 --- /dev/null +++ b/modules/biscuit/pileup/main.nf @@ -0,0 +1,45 @@ +process BISCUIT_PILEUP { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0': + 'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }" + + input: + tuple val(meta), path(normal_bams), path(normal_bais), path(tumor_bam), path(tumor_bai) + path index + + output: + tuple val(meta), path("*.vcf.gz"), emit: vcf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def biscuit_cpus = (int) Math.max(Math.floor(task.cpus*0.9),1) + def bgzip_cpus = task.cpus-biscuit_cpus + if ( tumor_bam != [] && normal_bams.toList().size() > 1 ) error "[BISCUIT_PILEUP] error: Tumor BAM provided with more than one normal BAM" + if ( tumor_bam.toList().size() > 1 ) error "[BISCUIT_PILEUP] error: more than one tumor BAM provided" + input = ( tumor_bam==[] ) ? "${normal_bams}" : "-S -T ${tumor_bam} -I ${normal_bams}" + """ + INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'` + + biscuit pileup \\ + -@ $biscuit_cpus \\ + $args \\ + \$INDEX \\ + $input \\ + | bgzip -@ $bgzip_cpus $args2 > ${prefix}.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' ) + END_VERSIONS + """ +} diff --git a/modules/biscuit/pileup/meta.yml b/modules/biscuit/pileup/meta.yml new file mode 100644 index 00000000..399e3c2f --- /dev/null +++ b/modules/biscuit/pileup/meta.yml @@ -0,0 +1,70 @@ +name: biscuit_pileup +description: Computes cytosine methylation and callable SNV mutations, optionally in reference to a germline BAM to call somatic variants +keywords: + - bisulfite + - DNA methylation + - pileup + - variant calling + - WGBS + - scWGBS + - bam + - vcf +tools: + - biscuit: + description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data + homepage: https://huishenlab.github.io/biscuit/ + documentation: https://huishenlab.github.io/biscuit/docs/pileup.html + tool_dev_url: https://github.com/huishenlab/biscuit + doi: "" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - normal_bams: + type: file(s) + description: | + BAM files to be analyzed. If no tumor_bam file is provided, any number of "normal" BAMs may be provided + ("normal" here is just a semantic issue, these BAMs could be from tumor or any other kind of tissue). If a + tumor BAM file is provided, exactly one normal (germline) BAM must be provided. + pattern: "*.{bam}" + - normal_bais: + type: file(s) + description: BAM index file or files corresponding to the provided normal_bams + pattern: "*.{bai}" + - tumor_bam: + type: file(s) + description: | + Optional. If a tumor BAM file is provided, pileup will run in "somatic" mode and will annotate variants with + their somatic state (present in tumor only, present in normal only, present in both, etc). Note that if a + tumor BAM file is provided, exactly one normal BAM must be provided. + pattern: "*.{bam}" + - tumor_bai: + type: file(s) + description: Optional. BAM index file corresponding to provided tumor_bam + pattern: "*.{bai}" + - index: + type: dir + description: Biscuit genome index directory (generated with 'biscuit index') + pattern: "BiscuitIndex" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf: + type: file + description: vcf file with methylation information + pattern: "*.{vcf.gz}" + +authors: + - "@njspix" diff --git a/modules/biscuit/qc/main.nf b/modules/biscuit/qc/main.nf new file mode 100644 index 00000000..dea6473b --- /dev/null +++ b/modules/biscuit/qc/main.nf @@ -0,0 +1,40 @@ +process BISCUIT_QC { + tag "$meta.id" + label 'process_long' + + conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/biscuit:1.0.2.20220113--h81a5ba2_0': + 'quay.io/biocontainers/biscuit:1.0.2.20220113--h81a5ba2_0' }" + + input: + tuple val(meta), path(bam) + path(index) + + output: + tuple val(meta), path("*.txt"), emit: biscuit_qc_reports + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def se = meta.single_end ? "-s" : "" + """ + INDEX=`find -L ./ -name "*.bis.amb" | sed 's/.bis.amb//'` + + biscuit qc \\ + $args \\ + $se \\ + \$INDEX \\ + $bam \\ + $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + biscuit: \$( biscuit version |& sed '1!d; s/^.*BISCUIT Version: //' ) + END_VERSIONS + """ +} diff --git a/modules/biscuit/qc/meta.yml b/modules/biscuit/qc/meta.yml new file mode 100644 index 00000000..a3e65a90 --- /dev/null +++ b/modules/biscuit/qc/meta.yml @@ -0,0 +1,51 @@ +name: biscuit_qc +description: Perform basic quality control on a BAM file generated with Biscuit +keywords: + - biscuit + - DNA methylation + - WGBS + - scWGBS + - bisulfite sequencing + - index + - BAM + - quality control + +tools: + - biscuit: + description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data + homepage: https://huishenlab.github.io/biscuit/ + documentation: https://huishenlab.github.io/biscuit/docs/subcommand_help.html#biscuit-qc + tool_dev_url: https://github.com/huishenlab/biscuit + doi: "" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM file produced using Biscuit + +output: + - biscuit_qc_reports: + type: file + description: | + Summary files containing the following information: + - CpG retention by position in read + - CpH retention by position in read + - Read duplication statistics + - Insert size distribution + - Distribution of mapping qualities + - Proportion of reads mapping to each strand + - Read-averaged cytosine conversion rate for CpA, CpC, CpG, and CpT + pattern: "*.txt" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@njspix" diff --git a/modules/biscuit/vcf2bed/main.nf b/modules/biscuit/vcf2bed/main.nf new file mode 100644 index 00000000..7bbcc826 --- /dev/null +++ b/modules/biscuit/vcf2bed/main.nf @@ -0,0 +1,39 @@ +process BISCUIT_VCF2BED { + tag "$meta.id" + label 'process_long' + + conda (params.enable_conda ? "bioconda::biscuit=1.0.2.20220113 bioconda::samtools=1.15" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0': + 'quay.io/biocontainers/mulled-v2-db16f1c237a26ea9245cf9924f858974ff321d6e:17fa66297f088a1bc7560b7b90dc273bf23f2d8c-0' }" + + input: + tuple val(meta), path(vcf) + + output: + tuple val(meta), path("*.bed.gz"), emit: bed + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + biscuit vcf2bed \\ + $args \\ + $vcf | \\ + LC_ALL=C sort -k1,1 -k2,2n | \\ + bgzip \\ + $args2 \\ + -c > ${prefix}.bed.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + biscuit: \$(echo \$(biscuit version 2>&1) | sed 's/^.*BISCUIT Version: //; s/Using.*\$//') + samtools: \$( samtools --version |& sed '1!d; s/^.*samtools //' ) + END_VERSIONS + """ +} diff --git a/modules/biscuit/vcf2bed/meta.yml b/modules/biscuit/vcf2bed/meta.yml new file mode 100644 index 00000000..c34d5a4d --- /dev/null +++ b/modules/biscuit/vcf2bed/meta.yml @@ -0,0 +1,48 @@ +name: biscuit_vcf2bed +description: | + Summarizes methylation or SNV information from a Biscuit VCF in a + standard-compliant BED file. +keywords: + - biscuit + - DNA methylation + - WGBS + - scWGBS + - bisulfite sequencing + - aligner + - vcf +tools: + - biscuit: + description: A utility for analyzing sodium bisulfite conversion-based DNA methylation/modification data + homepage: https://huishenlab.github.io/biscuit/ + documentation: https://huishenlab.github.io/biscuit/docs/methylextraction.html + tool_dev_url: https://github.com/huishenlab/biscuit + doi: "" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: Biscuit vcf file (output of biscuit pileup) + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: Gzipped BED file with methylation or SNV information + pattern: "*.{bed.gz}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@njspix" diff --git a/tests/config/nextflow.config b/tests/config/nextflow.config index 741edf5e..4ea085f9 100644 --- a/tests/config/nextflow.config +++ b/tests/config/nextflow.config @@ -28,5 +28,5 @@ conda { createTimeout = "120 min" } includeConfig 'test_data.config' manifest { - nextflowVersion = '!>=21.10.3' + nextflowVersion = '!>=21.10.0' } diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 5c110ba7..6ecab096 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -198,6 +198,49 @@ bedtools/subtract: - modules/bedtools/subtract/** - tests/modules/bedtools/subtract/** +biscuit/align: + - modules/biscuit/index/** + - modules/biscuit/align/** + - tests/modules/biscuit/align/** + +biscuit/biscuitblaster: + - modules/biscuit/index/** + - modules/biscuit/biscuitblaster/** + - tests/modules/biscuit/biscuitblaster/** + +biscuit/bsconv: + - modules/biscuit/index/** + - modules/biscuit/bsconv/** + - tests/modules/biscuit/bsconv/** + +biscuit/epiread: + - modules/biscuit/index/** + - modules/biscuit/epiread/** + - tests/modules/biscuit/epiread/** + +biscuit/index: + - modules/biscuit/index/** + - tests/modules/biscuit/index/** + +biscuit/mergecg: + - modules/biscuit/index/** + - modules/biscuit/mergecg/** + - tests/modules/biscuit/mergecg/** + +biscuit/pileup: + - modules/biscuit/index/** + - modules/biscuit/pileup/** + - tests/modules/biscuit/pileup/** + +biscuit/qc: + - modules/biscuit/index/** + - modules/biscuit/qc/** + - tests/modules/biscuit/qc/** + +biscuit/vcf2bed: + - modules/biscuit/vcf2bed/** + - tests/modules/biscuit/vcf2bed/** + biobambam/bammarkduplicates2: - modules/biobambam/bammarkduplicates2/** - tests/modules/biobambam/bammarkduplicates2/** diff --git a/tests/modules/biscuit/align/main.nf b/tests/modules/biscuit/align/main.nf new file mode 100644 index 00000000..f3e3cb64 --- /dev/null +++ b/tests/modules/biscuit/align/main.nf @@ -0,0 +1,33 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf' +include { BISCUIT_ALIGN as BISCUIT_ALIGN_SE } from '../../../../modules/biscuit/align/main.nf' +include { BISCUIT_ALIGN as BISCUIT_ALIGN_PE } from '../../../../modules/biscuit/align/main.nf' + + +// Single-end test +workflow test_biscuit_align_single { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_methylated_1_fastq_gz'], checkIfExists: true) ] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX ( fasta ) + BISCUIT_ALIGN_SE (input, BISCUIT_INDEX.out.index ) +} + +// paired-end test +workflow test_biscuit_align_paired { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_methylated_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_methylated_2_fastq_gz'], checkIfExists: true) ] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX ( fasta ) + BISCUIT_ALIGN_SE (input, BISCUIT_INDEX.out.index ) +} diff --git a/tests/modules/biscuit/align/nextflow.config b/tests/modules/biscuit/align/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biscuit/align/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biscuit/align/test.yml b/tests/modules/biscuit/align/test.yml new file mode 100644 index 00000000..bf778ff5 --- /dev/null +++ b/tests/modules/biscuit/align/test.yml @@ -0,0 +1,53 @@ +- name: biscuit align test_biscuit_align_single + command: nextflow run tests/modules/biscuit/align -entry test_biscuit_align_single -c tests/config/nextflow.config + tags: + - biscuit + - biscuit/align + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test.bam + md5sum: eb36532425cb9b259410d6464a9e523a + - path: output/biscuit/versions.yml + md5sum: a86c4170bbf90cc75b93eb59ea124acd + +- name: biscuit align test_biscuit_align_paired + command: nextflow run tests/modules/biscuit/align -entry test_biscuit_align_paired -c tests/config/nextflow.config + tags: + - biscuit + - biscuit/align + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test.bam + md5sum: be3f6aa86c499d6a6b2996e5936e4f50 + - path: output/biscuit/versions.yml + md5sum: f0b7dffd28f5e6bb1466fce6661d133f diff --git a/tests/modules/biscuit/biscuitblaster/main.nf b/tests/modules/biscuit/biscuitblaster/main.nf new file mode 100644 index 00000000..5e4bc95a --- /dev/null +++ b/tests/modules/biscuit/biscuitblaster/main.nf @@ -0,0 +1,32 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf' +include { BISCUIT_BLASTER as BISCUIT_BLASTER_SE } from '../../../../modules/biscuit/biscuitblaster/main.nf' +include { BISCUIT_BLASTER as BISCUIT_BLASTER_PE } from '../../../../modules/biscuit/biscuitblaster/main.nf' + +// Single-end test +workflow test_biscuit_blaster_single { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_methylated_1_fastq_gz'], checkIfExists: true) ] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX ( fasta ) + BISCUIT_BLASTER_SE (input, BISCUIT_INDEX.out.index ) +} + +// paired-end test +workflow test_biscuit_blaster_paired { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_methylated_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_methylated_2_fastq_gz'], checkIfExists: true) ] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX ( fasta ) + BISCUIT_BLASTER_PE (input, BISCUIT_INDEX.out.index ) +} diff --git a/tests/modules/biscuit/biscuitblaster/nextflow.config b/tests/modules/biscuit/biscuitblaster/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biscuit/biscuitblaster/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biscuit/biscuitblaster/test.yml b/tests/modules/biscuit/biscuitblaster/test.yml new file mode 100644 index 00000000..37bb6543 --- /dev/null +++ b/tests/modules/biscuit/biscuitblaster/test.yml @@ -0,0 +1,57 @@ +- name: biscuit biscuitblaster test_biscuit_blaster_single + command: nextflow run tests/modules/biscuit/biscuitblaster -entry test_biscuit_blaster_single -c tests/config/nextflow.config + tags: + - biscuit/biscuitblaster + - biscuit + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test.bam + md5sum: 9ece50b67349382d38b20c2702e65675 + - path: output/biscuit/test.bam.bai + md5sum: 8f14bb42fd38cc7ce4a3c3a9d7133ea4 + - path: output/biscuit/versions.yml + md5sum: bfb660b5b0d92dde6817a1c6a2a302bb + +- name: biscuit biscuitblaster test_biscuit_blaster_paired + command: nextflow run tests/modules/biscuit/biscuitblaster -entry test_biscuit_blaster_paired -c tests/config/nextflow.config + tags: + - biscuit/biscuitblaster + - biscuit + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test.bam + md5sum: 0c6de35f38003df6ea5dd036170df91b + - path: output/biscuit/test.bam.bai + md5sum: 0d76977b2e36046cc176112776c5fa4e + - path: output/biscuit/versions.yml + md5sum: 82160a7ad29ccc3a21e59b1869399c04 diff --git a/tests/modules/biscuit/bsconv/main.nf b/tests/modules/biscuit/bsconv/main.nf new file mode 100644 index 00000000..f7338869 --- /dev/null +++ b/tests/modules/biscuit/bsconv/main.nf @@ -0,0 +1,19 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf' +include { BISCUIT_BSCONV } from '../../../../modules/biscuit/bsconv/main.nf' + +workflow test_biscuit_bsconv { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam_bai'], checkIfExists: true) + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX( fasta ) + BISCUIT_BSCONV ( input, BISCUIT_INDEX.out.index ) +} diff --git a/tests/modules/biscuit/bsconv/nextflow.config b/tests/modules/biscuit/bsconv/nextflow.config new file mode 100644 index 00000000..133905d0 --- /dev/null +++ b/tests/modules/biscuit/bsconv/nextflow.config @@ -0,0 +1,10 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: '.*BISCUIT_BSCONV' { + ext.args = '-f 0.1' + } + +} + diff --git a/tests/modules/biscuit/bsconv/test.yml b/tests/modules/biscuit/bsconv/test.yml new file mode 100644 index 00000000..528a4fe5 --- /dev/null +++ b/tests/modules/biscuit/bsconv/test.yml @@ -0,0 +1,26 @@ +- name: biscuit bsconv test_biscuit_bsconv + command: nextflow run tests/modules/biscuit/bsconv -entry test_biscuit_bsconv -c tests/config/nextflow.config + tags: + - biscuit + - biscuit/bsconv + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test.bam + md5sum: e33e9498d00dd32222b90a6bd981226f + - path: output/biscuit/versions.yml + md5sum: 7deec1f096203542bbb72ac4fa05f9ba diff --git a/tests/modules/biscuit/epiread/main.nf b/tests/modules/biscuit/epiread/main.nf new file mode 100644 index 00000000..54a73ae3 --- /dev/null +++ b/tests/modules/biscuit/epiread/main.nf @@ -0,0 +1,48 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf' +include { BISCUIT_EPIREAD } from '../../../../modules/biscuit/epiread/main.nf' + +workflow test_biscuit_epiread_nosnp { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam_bai'], checkIfExists: true), + [] //SNP BED file + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX( fasta ) + BISCUIT_EPIREAD ( input, BISCUIT_INDEX.out.index ) +} + +workflow test_biscuit_epiread_snp { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam_bai'], checkIfExists: true), + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/biscuit/test-snp.bed') + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX( fasta ) + BISCUIT_EPIREAD ( input, BISCUIT_INDEX.out.index ) +} + +workflow test_biscuit_epiread_snp_decompress { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam_bai'], checkIfExists: true), + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/biscuit/test-snp.bed.gz') + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX( fasta ) + BISCUIT_EPIREAD ( input, BISCUIT_INDEX.out.index ) +} diff --git a/tests/modules/biscuit/epiread/nextflow.config b/tests/modules/biscuit/epiread/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biscuit/epiread/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biscuit/epiread/test.yml b/tests/modules/biscuit/epiread/test.yml new file mode 100644 index 00000000..1db86982 --- /dev/null +++ b/tests/modules/biscuit/epiread/test.yml @@ -0,0 +1,80 @@ +- name: biscuit epiread test_biscuit_epiread_nosnp + command: nextflow run tests/modules/biscuit/epiread -entry test_biscuit_epiread_nosnp -c tests/config/nextflow.config + tags: + - biscuit + - biscuit/epiread + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test.bed.gz + md5sum: dbb30b59f4ef6fdfdee38630225c0574 + - path: output/biscuit/versions.yml + md5sum: 674a77ac5ca8f4b42d30e58e30c3a9af + +- name: biscuit epiread test_biscuit_epiread_snp + command: nextflow run tests/modules/biscuit/epiread -entry test_biscuit_epiread_snp -c tests/config/nextflow.config + tags: + - biscuit + - biscuit/epiread + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test.bed.gz + md5sum: a29fea6ad74453ec94f8220747dab906 + - path: output/biscuit/versions.yml + md5sum: f2f7c4ff3c6a135b1c8a3aff24a44d81 + +- name: biscuit epiread test_biscuit_epiread_snp_decompress + command: nextflow run tests/modules/biscuit/epiread -entry test_biscuit_epiread_snp_decompress -c tests/config/nextflow.config + tags: + - biscuit + - biscuit/epiread + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test.bed.gz + md5sum: a29fea6ad74453ec94f8220747dab906 + - path: output/biscuit/versions.yml + md5sum: cb0258ebf4e1a731a4310ec17c3dc442 diff --git a/tests/modules/biscuit/index/main.nf b/tests/modules/biscuit/index/main.nf new file mode 100644 index 00000000..c13d441b --- /dev/null +++ b/tests/modules/biscuit/index/main.nf @@ -0,0 +1,12 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf' + +workflow test_biscuit_index { + + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX ( fasta ) +} diff --git a/tests/modules/biscuit/index/nextflow.config b/tests/modules/biscuit/index/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biscuit/index/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biscuit/index/test.yml b/tests/modules/biscuit/index/test.yml new file mode 100644 index 00000000..a2e4cb67 --- /dev/null +++ b/tests/modules/biscuit/index/test.yml @@ -0,0 +1,24 @@ +- name: biscuit index test_biscuit_index + command: nextflow run tests/modules/biscuit/index -entry test_biscuit_index -c tests/config/nextflow.config + tags: + - biscuit/index + - biscuit + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/versions.yml + md5sum: 5c5873e482a57966db246648ffddf62f diff --git a/tests/modules/biscuit/mergecg/main.nf b/tests/modules/biscuit/mergecg/main.nf new file mode 100644 index 00000000..7d51f3b8 --- /dev/null +++ b/tests/modules/biscuit/mergecg/main.nf @@ -0,0 +1,18 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf' +include { BISCUIT_MERGECG } from '../../../../modules/biscuit/mergecg/main.nf' + +workflow test_biscuit_mergecg { + + input = [ + [ id:'test', single_end:false ], // meta map + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/biscuit/test-cg.bed.gz', checkIfExists: true) + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX( fasta ) + BISCUIT_MERGECG ( input, BISCUIT_INDEX.out.index ) +} diff --git a/tests/modules/biscuit/mergecg/nextflow.config b/tests/modules/biscuit/mergecg/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biscuit/mergecg/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biscuit/mergecg/test.yml b/tests/modules/biscuit/mergecg/test.yml new file mode 100644 index 00000000..7b2408bb --- /dev/null +++ b/tests/modules/biscuit/mergecg/test.yml @@ -0,0 +1,26 @@ +- name: biscuit mergecg test_biscuit_mergecg + command: nextflow run tests/modules/biscuit/mergecg -entry test_biscuit_mergecg -c tests/config/nextflow.config + tags: + - biscuit + - biscuit/mergecg + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test.bed.gz + md5sum: d693b28ddc81265f388860d391fc7c5b + - path: output/biscuit/versions.yml + md5sum: f670d63671af06bf8654677bf373b3a1 diff --git a/tests/modules/biscuit/pileup/main.nf b/tests/modules/biscuit/pileup/main.nf new file mode 100644 index 00000000..cf1914ec --- /dev/null +++ b/tests/modules/biscuit/pileup/main.nf @@ -0,0 +1,38 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf' +include { BISCUIT_PILEUP } from '../../../../modules/biscuit/pileup/main.nf' + +workflow test_biscuit_pileup { + + input = [ [ id:'test' ], // meta map + [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true)], + [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true)], + [], //tumor bam + [] //tumor bai + ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX ( fasta ) + BISCUIT_PILEUP ( input, BISCUIT_INDEX.out.index ) + +} + +workflow test_biscuit_pileup_somatic { + + input = [ [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX ( fasta ) + BISCUIT_PILEUP ( input, BISCUIT_INDEX.out.index ) + +} diff --git a/tests/modules/biscuit/pileup/nextflow.config b/tests/modules/biscuit/pileup/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biscuit/pileup/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biscuit/pileup/test.yml b/tests/modules/biscuit/pileup/test.yml new file mode 100644 index 00000000..ad840737 --- /dev/null +++ b/tests/modules/biscuit/pileup/test.yml @@ -0,0 +1,53 @@ +- name: biscuit pileup test_biscuit_pileup + command: nextflow run tests/modules/biscuit/pileup -entry test_biscuit_pileup -c tests/config/nextflow.config + tags: + - biscuit + - biscuit/pileup + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: f315020d899597c1b57e5fe9f60f4c3e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 1891c1de381b3a96d4e72f590fde20c1 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: 2df4aa2d7580639fa0fcdbcad5e2e969 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 8569fbdb2c98c6fb16dfa73d8eacb070 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: 668799eea40aefb8013cbf8ed6c47cfe + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 10541b05bbea44d0344b0345a6522ba8 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 2c38edd64234420add133f5fe1ff975d + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 7deee1aac3395d93bef1df11ab38379e + - path: output/biscuit/test.vcf.gz + md5sum: ef9798c318ead0f8a79ee7fdeb1ffbf9 + - path: output/biscuit/versions.yml + md5sum: ae38b891fdbf9f7ff5c486408f949dc5 + +- name: biscuit pileup test_biscuit_pileup_somatic + command: nextflow run tests/modules/biscuit/pileup -entry test_biscuit_pileup_somatic -c tests/config/nextflow.config + tags: + - biscuit + - biscuit/pileup + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: f315020d899597c1b57e5fe9f60f4c3e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 1891c1de381b3a96d4e72f590fde20c1 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: 2df4aa2d7580639fa0fcdbcad5e2e969 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 8569fbdb2c98c6fb16dfa73d8eacb070 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: 668799eea40aefb8013cbf8ed6c47cfe + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 10541b05bbea44d0344b0345a6522ba8 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 2c38edd64234420add133f5fe1ff975d + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 7deee1aac3395d93bef1df11ab38379e + - path: output/biscuit/test.vcf.gz + md5sum: 692b4a6191b08fabe5efa5abe00da420 + - path: output/biscuit/versions.yml + md5sum: cc51fd498d67fdc7cc067686eb855b93 diff --git a/tests/modules/biscuit/qc/main.nf b/tests/modules/biscuit/qc/main.nf new file mode 100644 index 00000000..7c6d61cd --- /dev/null +++ b/tests/modules/biscuit/qc/main.nf @@ -0,0 +1,18 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BISCUIT_INDEX } from '../../../../modules/biscuit/index/main.nf' +include { BISCUIT_QC } from '../../../../modules/biscuit/qc/main.nf' + +workflow test_biscuit_qc { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_methylated_sorted_bam'], checkIfExists: true) + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + BISCUIT_INDEX( fasta ) + BISCUIT_QC ( input, BISCUIT_INDEX.out.index ) +} diff --git a/tests/modules/biscuit/qc/nextflow.config b/tests/modules/biscuit/qc/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biscuit/qc/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biscuit/qc/test.yml b/tests/modules/biscuit/qc/test.yml new file mode 100644 index 00000000..ed33dd30 --- /dev/null +++ b/tests/modules/biscuit/qc/test.yml @@ -0,0 +1,38 @@ +- name: biscuit qc test_biscuit_qc + command: nextflow run tests/modules/biscuit/qc -entry test_biscuit_qc -c tests/config/nextflow.config + tags: + - biscuit/qc + - biscuit + files: + - path: output/biscuit/BiscuitIndex/genome.fasta + md5sum: 6e9fe4042a72f2345f644f239272b7e6 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.amb + md5sum: 3a68b8b2287e07dd3f5f95f4344ba76e + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.ann + md5sum: c32e11f6c859f166c7525a9c1d583567 + - path: output/biscuit/BiscuitIndex/genome.fasta.bis.pac + md5sum: 983e3d2cd6f36e2546e6d25a0da78d66 + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.bwt + md5sum: a11bc31775f7b7a4f9cd3bc4f981661a + - path: output/biscuit/BiscuitIndex/genome.fasta.dau.sa + md5sum: 9c9e07fa1c75ef32d764274579c89b08 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.bwt + md5sum: 62eb83cd557a47b59589713d98024fc2 + - path: output/biscuit/BiscuitIndex/genome.fasta.par.sa + md5sum: 55bcd97d7059bf73dc0d221e36e8e901 + - path: output/biscuit/test_CpGRetentionByReadPos.txt + md5sum: 498b6c0af196fb34c8835371b9e9b68a + - path: output/biscuit/test_CpHRetentionByReadPos.txt + md5sum: a266942c5719cecab7f60f63cbe7335d + - path: output/biscuit/test_dup_report.txt + md5sum: 65bddf4fbe9e40d7c6c976060df53e3b + - path: output/biscuit/test_isize_table.txt + md5sum: aadf6f2e271abc334b6146cf164bdda3 + - path: output/biscuit/test_mapq_table.txt + md5sum: c8adaac84bb8db3b7f48e1ed4fccad00 + - path: output/biscuit/test_strand_table.txt + md5sum: 27068382ba6b2dbf313169a85c9dbb3a + - path: output/biscuit/test_totalReadConversionRate.txt + md5sum: 8f0c1fceaebfa74f2757720e3bc85fed + - path: output/biscuit/versions.yml + md5sum: a730fa4888e6882cf1b8ba92645b04ee diff --git a/tests/modules/biscuit/vcf2bed/main.nf b/tests/modules/biscuit/vcf2bed/main.nf new file mode 100644 index 00000000..25597d49 --- /dev/null +++ b/tests/modules/biscuit/vcf2bed/main.nf @@ -0,0 +1,16 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BISCUIT_VCF2BED } from '../../../../modules/biscuit/vcf2bed/main.nf' + +workflow test_biscuit_vcf2bed { + + input = [ + [ id:'test', single_end:false ], // meta map + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/biscuit/test.vcf.gz', checkIfExists: true) + ] + + BISCUIT_VCF2BED ( input ) + +} diff --git a/tests/modules/biscuit/vcf2bed/nextflow.config b/tests/modules/biscuit/vcf2bed/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biscuit/vcf2bed/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biscuit/vcf2bed/test.yml b/tests/modules/biscuit/vcf2bed/test.yml new file mode 100644 index 00000000..7eaa2972 --- /dev/null +++ b/tests/modules/biscuit/vcf2bed/test.yml @@ -0,0 +1,10 @@ +- name: biscuit vcf2bed test_biscuit_vcf2bed + command: nextflow run tests/modules/biscuit/vcf2bed -entry test_biscuit_vcf2bed -c tests/config/nextflow.config + tags: + - biscuit/vcf2bed + - biscuit + files: + - path: output/biscuit/test.bed.gz + md5sum: e2dd492289dc8463f364285e31b9553a + - path: output/biscuit/versions.yml + md5sum: cd784276e2fb6739d55e1b60d12202cd From 50417f5f8c71fa2604cc049230906fb9e57a643d Mon Sep 17 00:00:00 2001 From: Phil Ewels Date: Tue, 15 Mar 2022 06:22:44 +0100 Subject: [PATCH 090/592] Fix indentation in bwa/aln meta (#1392) --- modules/bwa/aln/meta.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/bwa/aln/meta.yml b/modules/bwa/aln/meta.yml index a8b74b8b..8ebaf3da 100644 --- a/modules/bwa/aln/meta.yml +++ b/modules/bwa/aln/meta.yml @@ -21,10 +21,10 @@ tools: input: - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - reads: type: file description: | From 86ac223916613d77f8a611d3f19dfd314409fd4c Mon Sep 17 00:00:00 2001 From: Sima Rahimi Date: Tue, 15 Mar 2022 10:20:46 +0100 Subject: [PATCH 091/592] Cnvpytor (#1297) * Added cnvpytor/importreaddepth module * Corrected process name in meta.yml file * added -chrom argument * space correction * Added complementary info * fixed typo * md5sum added * modified the module to work on cram files as well * Added cnvpytor/histogram module and test files * Added cnvpytor/partition module and test files * added cnvpytor/callcnvs module and tests * modified by new modules * Added test file and fixed input path in modules * added when block * little fixes * skip tracking test.yml * removed changes to test if conflicts get resolved * updated outfile name * corrected the version.yml content --- modules/cnvpytor/callcnvs/main.nf | 33 +++++++++++ modules/cnvpytor/callcnvs/meta.yml | 40 ++++++++++++++ modules/cnvpytor/histogram/main.nf | 32 +++++++++++ modules/cnvpytor/histogram/meta.yml | 42 ++++++++++++++ modules/cnvpytor/importreaddepth/main.nf | 38 +++++++++++++ modules/cnvpytor/importreaddepth/meta.yml | 55 +++++++++++++++++++ modules/cnvpytor/partition/main.nf | 32 +++++++++++ modules/cnvpytor/partition/meta.yml | 42 ++++++++++++++ tests/config/test_data.config | 2 + tests/modules/cnvpytor/callcnvs/main.nf | 15 +++++ .../modules/cnvpytor/callcnvs/nextflow.config | 7 +++ tests/modules/cnvpytor/callcnvs/test.yml | 10 ++++ tests/modules/cnvpytor/histogram/main.nf | 15 +++++ .../cnvpytor/histogram/nextflow.config | 7 +++ tests/modules/cnvpytor/histogram/test.yml | 10 ++++ .../modules/cnvpytor/importreaddepth/main.nf | 32 +++++++++++ .../cnvpytor/importreaddepth/nextflow.config | 12 ++++ tests/modules/cnvpytor/partition/main.nf | 15 +++++ .../cnvpytor/partition/nextflow.config | 7 +++ tests/modules/cnvpytor/partition/test.yml | 10 ++++ 20 files changed, 456 insertions(+) create mode 100644 modules/cnvpytor/callcnvs/main.nf create mode 100644 modules/cnvpytor/callcnvs/meta.yml create mode 100644 modules/cnvpytor/histogram/main.nf create mode 100644 modules/cnvpytor/histogram/meta.yml create mode 100644 modules/cnvpytor/importreaddepth/main.nf create mode 100644 modules/cnvpytor/importreaddepth/meta.yml create mode 100644 modules/cnvpytor/partition/main.nf create mode 100644 modules/cnvpytor/partition/meta.yml create mode 100644 tests/modules/cnvpytor/callcnvs/main.nf create mode 100644 tests/modules/cnvpytor/callcnvs/nextflow.config create mode 100644 tests/modules/cnvpytor/callcnvs/test.yml create mode 100644 tests/modules/cnvpytor/histogram/main.nf create mode 100644 tests/modules/cnvpytor/histogram/nextflow.config create mode 100644 tests/modules/cnvpytor/histogram/test.yml create mode 100644 tests/modules/cnvpytor/importreaddepth/main.nf create mode 100644 tests/modules/cnvpytor/importreaddepth/nextflow.config create mode 100644 tests/modules/cnvpytor/partition/main.nf create mode 100644 tests/modules/cnvpytor/partition/nextflow.config create mode 100644 tests/modules/cnvpytor/partition/test.yml diff --git a/modules/cnvpytor/callcnvs/main.nf b/modules/cnvpytor/callcnvs/main.nf new file mode 100644 index 00000000..1d47ce16 --- /dev/null +++ b/modules/cnvpytor/callcnvs/main.nf @@ -0,0 +1,33 @@ +process CNVPYTOR_CALLCNVS { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/cnvpytor:A1.0--py39h6a678da_2': + 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" + + input: + tuple val(meta), path(pytor) + + output: + tuple val(meta), path("*.tsv"), emit: cnvs + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '1000' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + cnvpytor \\ + -root $pytor \\ + -call $args > ${prefix}.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + END_VERSIONS + """ +} diff --git a/modules/cnvpytor/callcnvs/meta.yml b/modules/cnvpytor/callcnvs/meta.yml new file mode 100644 index 00000000..c153b949 --- /dev/null +++ b/modules/cnvpytor/callcnvs/meta.yml @@ -0,0 +1,40 @@ +name: cnvpytor_callcnvs +description: command line tool for calling CNVs in whole genome sequencing data + - CNV calling +tools: + - cnvpytor: + description: calling CNVs using read depth + homepage: https://github.com/abyzovlab/CNVpytor + documentation: https://github.com/abyzovlab/CNVpytor + tool_dev_url: https://github.com/abyzovlab/CNVpytor + doi: "10.1101/2021.01.27.428472v1" + licence: ['MIT'] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - pytor: + type: file + description: cnvpytor root file + pattern: "*.{pytor}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - cnvs: + type: file + description: file containing identified copy numer variations + pattern: "*.{tsv}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + + +authors: + - "@sima-r" diff --git a/modules/cnvpytor/histogram/main.nf b/modules/cnvpytor/histogram/main.nf new file mode 100644 index 00000000..29dc1bff --- /dev/null +++ b/modules/cnvpytor/histogram/main.nf @@ -0,0 +1,32 @@ +process CNVPYTOR_HISTOGRAM { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/cnvpytor:A1.0--py39h6a678da_2': + 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" + + input: + tuple val(meta), path(pytor) + + output: + tuple val(meta), path("${pytor.baseName}.pytor") , emit: pytor + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '1000' + """ + cnvpytor \\ + -root $pytor \\ + -his $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + END_VERSIONS + """ +} diff --git a/modules/cnvpytor/histogram/meta.yml b/modules/cnvpytor/histogram/meta.yml new file mode 100644 index 00000000..8484ddd4 --- /dev/null +++ b/modules/cnvpytor/histogram/meta.yml @@ -0,0 +1,42 @@ +name: cnvpytor_histogram +description: calculates read depth histograms +keywords: + - cnv calling + - histogram +tools: + - cnvpytor: + description: calling CNVs using read depth + homepage: https://github.com/abyzovlab/CNVpytor + documentation: https://github.com/abyzovlab/CNVpytor + tool_dev_url: https://github.com/abyzovlab/CNVpytor + doi: "10.1101/2021.01.27.428472v1" + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - pytor: + type: file + description: pytor file containing read depth data + pattern: "*.{pytor}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - pytor: + type: file + description: pytor file containing read depth histograms binned based on given bin size(s) + pattern: "*.{pytor}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@sima-r" diff --git a/modules/cnvpytor/importreaddepth/main.nf b/modules/cnvpytor/importreaddepth/main.nf new file mode 100644 index 00000000..9fc7db08 --- /dev/null +++ b/modules/cnvpytor/importreaddepth/main.nf @@ -0,0 +1,38 @@ +process CNVPYTOR_IMPORTREADDEPTH { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/cnvpytor:A1.0--py39h6a678da_2': + 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" + + input: + tuple val(meta), path(input_file), path(index) + path fasta + path fai + + output: + tuple val(meta), path("*.pytor") , emit: pytor + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def reference = fasta ? "-T ${fasta}" : '' + """ + cnvpytor \\ + -root ${prefix}.pytor \\ + -rd $input_file \\ + $args \\ + $reference + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + END_VERSIONS + """ +} diff --git a/modules/cnvpytor/importreaddepth/meta.yml b/modules/cnvpytor/importreaddepth/meta.yml new file mode 100644 index 00000000..908c3a74 --- /dev/null +++ b/modules/cnvpytor/importreaddepth/meta.yml @@ -0,0 +1,55 @@ +name: cnvpytor_importreaddepth +description: command line tool for CNV/CNA analysis. This step imports the read depth data into a root pytor file. +keywords: + - read depth + - cnv calling +tools: + - cnvpytor -rd: + description: calling CNVs using read depth + homepage: https://github.com/abyzovlab/CNVpytor + documentation: https://github.com/abyzovlab/CNVpytor + tool_dev_url: https://github.com/abyzovlab/CNVpytor + doi: "10.1101/2021.01.27.428472v1" + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - input_file: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram}" + - index: + type: file + description: bam file index + pattern: "*.{bai,crai}" + - fasta: + type: file + description: specifies reference genome file (only for cram file without reference genome) + pattern: "*.{fasta,fasta.gz,fa,fa.gz}" + - fai: + type: file + description: Index of reference fasta file + pattern: "*.fai" + + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - pytor: + type: file + description: read depth root file in which read depth data binned to 100 base pair bins will be stored. + pattern: "*.{pytor}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@sima-r" diff --git a/modules/cnvpytor/partition/main.nf b/modules/cnvpytor/partition/main.nf new file mode 100644 index 00000000..e3f73955 --- /dev/null +++ b/modules/cnvpytor/partition/main.nf @@ -0,0 +1,32 @@ +process CNVPYTOR_PARTITION { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/cnvpytor:A1.0--py39h6a678da_2': + 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" + + input: + tuple val(meta), path(pytor) + + output: + tuple val(meta), path("${pytor.baseName}.pytor"), emit: pytor + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '1000' + """ + cnvpytor \\ + -root $pytor \\ + -partition $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + END_VERSIONS + """ +} diff --git a/modules/cnvpytor/partition/meta.yml b/modules/cnvpytor/partition/meta.yml new file mode 100644 index 00000000..3f0a3e21 --- /dev/null +++ b/modules/cnvpytor/partition/meta.yml @@ -0,0 +1,42 @@ +name: cnvpytor_partition +description: partitioning read depth histograms +keywords: + - cnv calling + - partition histograms +tools: + - cnvpytor: + description: calling CNVs using read depth + homepage: https://github.com/abyzovlab/CNVpytor + documentation: https://github.com/abyzovlab/CNVpytor + tool_dev_url: https://github.com/abyzovlab/CNVpytor + doi: "10.1101/2021.01.27.428472v1" + licence: ['MIT'] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - pytor: + type: file + description: pytor file containing read depth data + pattern: "*.{pytor}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - partitions: + type: file + description: pytor file containing partitions of read depth histograms using mean-shift method + pattern: "*.{pytor}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@sima-r" diff --git a/tests/config/test_data.config b/tests/config/test_data.config index ce4f7ae8..ed1e2861 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -295,6 +295,8 @@ params { test_rnaseq_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf" test_sv_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/sv_query.vcf.gz" + + test_pytor = "${test_data_dir}/genomics/homo_sapiens/illumina/pytor/test.pytor" } 'pacbio' { primers = "${test_data_dir}/genomics/homo_sapiens/pacbio/fasta/primers.fasta" diff --git a/tests/modules/cnvpytor/callcnvs/main.nf b/tests/modules/cnvpytor/callcnvs/main.nf new file mode 100644 index 00000000..96d33250 --- /dev/null +++ b/tests/modules/cnvpytor/callcnvs/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CNVPYTOR_CALLCNVS } from '../../../../modules/cnvpytor/callcnvs/main.nf' + +workflow test_cnvpytor_callcnvs { + + input = [ + [ id:'test'], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true) + ] + + CNVPYTOR_CALLCNVS ( input ) +} diff --git a/tests/modules/cnvpytor/callcnvs/nextflow.config b/tests/modules/cnvpytor/callcnvs/nextflow.config new file mode 100644 index 00000000..9d132b77 --- /dev/null +++ b/tests/modules/cnvpytor/callcnvs/nextflow.config @@ -0,0 +1,7 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: CNVPYTOR_CALLCNVS { + ext.args = '10000' + } +} diff --git a/tests/modules/cnvpytor/callcnvs/test.yml b/tests/modules/cnvpytor/callcnvs/test.yml new file mode 100644 index 00000000..85bfcc7a --- /dev/null +++ b/tests/modules/cnvpytor/callcnvs/test.yml @@ -0,0 +1,10 @@ +- name: cnvpytor callcnvs test_cnvpytor_callcnvs + command: nextflow run tests/modules/cnvpytor/callcnvs -entry test_cnvpytor_callcnvs -c tests/config/nextflow.config + tags: + - cnvpytor + - cnvpytor/callcnvs + files: + - path: output/cnvpytor/calls.10000.tsv + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/cnvpytor/versions.yml + md5sum: 5fe6ca3ef5c40f9dbf487f28db237821 diff --git a/tests/modules/cnvpytor/histogram/main.nf b/tests/modules/cnvpytor/histogram/main.nf new file mode 100644 index 00000000..2178dee1 --- /dev/null +++ b/tests/modules/cnvpytor/histogram/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CNVPYTOR_HISTOGRAM } from '../../../../modules/cnvpytor/histogram/main.nf' + +workflow test_cnvpytor_histogram { + + input = [ + [ id:'test'], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true), + ] + + CNVPYTOR_HISTOGRAM ( input ) +} diff --git a/tests/modules/cnvpytor/histogram/nextflow.config b/tests/modules/cnvpytor/histogram/nextflow.config new file mode 100644 index 00000000..de8cfccf --- /dev/null +++ b/tests/modules/cnvpytor/histogram/nextflow.config @@ -0,0 +1,7 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: CNVPYTOR_HISTOGRAM { + ext.args = '10000 100000' + } +} diff --git a/tests/modules/cnvpytor/histogram/test.yml b/tests/modules/cnvpytor/histogram/test.yml new file mode 100644 index 00000000..fd8bcaf4 --- /dev/null +++ b/tests/modules/cnvpytor/histogram/test.yml @@ -0,0 +1,10 @@ +- name: cnvpytor histogram test_cnvpytor_histogram + command: nextflow run tests/modules/cnvpytor/histogram -entry test_cnvpytor_histogram -c tests/config/nextflow.config + tags: + - cnvpytor + - cnvpytor/histogram + files: + - path: output/cnvpytor/test.pytor + md5sum: aa03a8fa15b39f77816705a48e10312a + - path: output/cnvpytor/versions.yml + md5sum: 9a4b176afd5f1a3edeb37eeb301cf464 diff --git a/tests/modules/cnvpytor/importreaddepth/main.nf b/tests/modules/cnvpytor/importreaddepth/main.nf new file mode 100644 index 00000000..0d9be324 --- /dev/null +++ b/tests/modules/cnvpytor/importreaddepth/main.nf @@ -0,0 +1,32 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CNVPYTOR_IMPORTREADDEPTH } from '../../../../modules/cnvpytor/importreaddepth/main.nf' + + +workflow test_cnvpytor_importreaddepth { + + input = [ + [ id: 'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + + CNVPYTOR_IMPORTREADDEPTH (input, [], []) +} + +workflow test_cnvpytor_importreaddepth_cram { + + input = [ + [ id: 'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true) + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + + CNVPYTOR_IMPORTREADDEPTH (input, fasta, fai) +} diff --git a/tests/modules/cnvpytor/importreaddepth/nextflow.config b/tests/modules/cnvpytor/importreaddepth/nextflow.config new file mode 100644 index 00000000..c60f979e --- /dev/null +++ b/tests/modules/cnvpytor/importreaddepth/nextflow.config @@ -0,0 +1,12 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: CNVPYTOR_IMPORTREADDEPTH { + ext.args = {params.cnvpytor_chr ? "-chrom ${params.cnvpytor_chr}" : '' } + } +} + +params { + cnvpytor_chr = '' // specifies chromosome name(s) the same way as they are described in the sam/bam/cram header e.g. '1 2' or 'chr1 chr2'. + } diff --git a/tests/modules/cnvpytor/partition/main.nf b/tests/modules/cnvpytor/partition/main.nf new file mode 100644 index 00000000..cd8063a4 --- /dev/null +++ b/tests/modules/cnvpytor/partition/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CNVPYTOR_PARTITION } from '../../../../modules/cnvpytor/partition/main.nf' + +workflow test_cnvpytor_partition { + + input = [ + [ id:'test'], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true) + ] + + CNVPYTOR_PARTITION ( input ) +} diff --git a/tests/modules/cnvpytor/partition/nextflow.config b/tests/modules/cnvpytor/partition/nextflow.config new file mode 100644 index 00000000..b684d42a --- /dev/null +++ b/tests/modules/cnvpytor/partition/nextflow.config @@ -0,0 +1,7 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: CNVPYTOR_PARTITION { + ext.args = '10000 100000' + } +} diff --git a/tests/modules/cnvpytor/partition/test.yml b/tests/modules/cnvpytor/partition/test.yml new file mode 100644 index 00000000..1b838395 --- /dev/null +++ b/tests/modules/cnvpytor/partition/test.yml @@ -0,0 +1,10 @@ +- name: cnvpytor partition test_cnvpytor_partition + command: nextflow run tests/modules/cnvpytor/partition -entry test_cnvpytor_partition -c tests/config/nextflow.config + tags: + - cnvpytor + - cnvpytor/partition + files: + - path: output/cnvpytor/test.pytor + md5sum: aa03a8fa15b39f77816705a48e10312a + - path: output/cnvpytor/versions.yml + md5sum: 8a04506554c58cd170cc050fd9904c6f From d6244b42f596fa26d2ecba4ce862755821ed9da8 Mon Sep 17 00:00:00 2001 From: Lasse Folkersen Date: Tue, 15 Mar 2022 11:18:43 +0100 Subject: [PATCH 092/592] ASCAT (#1332) * First commit * putting correct links for singularity and docker containers (just had to search for bioconda+ascat to find them, and then put them in like the rest of the nf-core tools had it * adding first try of relevant commands (not working yet, just took their basic pipeline example * test commit * remove test * starting up work with module after 3.0.0 upgrade * add ascat.prepareHTS statemet * add location of docker for new mulled alleleCounter+ASCAT container * first full run with ASCAT on HG00154.mapped.ILLUMINA.bwa.GBR.low_coverage.20101123.bam * add notes on dropbox download * use a newer pytest_modules.yml * add outpit * trying to align with current Sarek output * adding in FH comments * busy clearing up arguments and testing. Still WIP * first working run, in nextflow, with sarek-like output. Still needs more work on input arguments * cleaning up before writing up findings * testing with putting in arguments in args * draft for solution 3 style for arguments * one more test added * adding FH map * finished testing maps for args * wrap-up cram/crai test successfully * updates to address ability to put in ref.fasta argument for cram running * adding remaining import-HTS commands in as args, and removing the chr21/chr22 only testing to test-nextflow.config * first test with auto-downloading the s3-data (when not given as an argument) * removing download-logic for supporting files, documenting in meta.yml, fixing ref_fasta bug * adding mulled singularity container * removing tests * fix left padding lint issue * lint failure in meta.yml * more linting errors * add when argument * adding stub functionality * add stub run * correct md5sum for versions.yml * more testing with -runstub * stub code in pure bash - not mixed with R * reformat version.yml * get rid of absolute paths in test.yml * correct wrong md5sum * adding allelecount conda link * rename normal_bam to input_bam etc * let the pipeline dev worry about matching the right loci and allele files * dont hardcode default genomebuild * adding download instruction comment * add doi * fix conda addition bug * add args documentation * test new indent * new test with meta.yml indentation * retry with new meta.yml * retry with new meta.yml - now with empty lines around * retry with new meta.yml - remove trailing whitepsace * trying to fix found quote character that cannot start any token error * try with one empty line above triple-quote and no empty line below * trying with pipe character * checking if its the ending triple quote * one more try with meta.yml * test update bioconda versioning for linting failure * test update bioconda versioning for linting failure 2 * testing allelecounter version error on conda Co-authored-by: @lassefolkersen Co-authored-by: @FriederikeHanssen --- modules/ascat/main.nf | 155 ++++++++++++++++++++++++++++ modules/ascat/meta.yml | 92 +++++++++++++++++ tests/config/pytest_modules.yml | 4 + tests/modules/ascat/main.nf | 64 ++++++++++++ tests/modules/ascat/nextflow.config | 39 +++++++ tests/modules/ascat/test.yml | 25 +++++ 6 files changed, 379 insertions(+) create mode 100644 modules/ascat/main.nf create mode 100644 modules/ascat/meta.yml create mode 100644 tests/modules/ascat/main.nf create mode 100644 tests/modules/ascat/nextflow.config create mode 100644 tests/modules/ascat/test.yml diff --git a/modules/ascat/main.nf b/modules/ascat/main.nf new file mode 100644 index 00000000..1d2bd96f --- /dev/null +++ b/modules/ascat/main.nf @@ -0,0 +1,155 @@ +process ASCAT { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::ascat=3.0.0 bioconda::cancerit-allelecount-4.3.0": null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-c278c7398beb73294d78639a864352abef2931ce:dfe5aaa885de434adb2b490b68972c5840c6d761-0': + 'quay.io/biocontainers/mulled-v2-c278c7398beb73294d78639a864352abef2931ce:dfe5aaa885de434adb2b490b68972c5840c6d761-0' }" + + input: + tuple val(meta), path(input_normal), path(index_normal), path(input_tumor), path(index_tumor) + path(allele_files) + path(loci_files) + + output: + tuple val(meta), path("*png"), emit: png + tuple val(meta), path("*cnvs.txt"), emit: cnvs + tuple val(meta), path("*purityploidy.txt"), emit: purityploidy + tuple val(meta), path("*segments.txt"), emit: segments + path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def gender = args.gender ? "$args.gender" : "NULL" + def genomeVersion = args.genomeVersion ? "$args.genomeVersion" : "NULL" + def purity = args.purity ? "$args.purity" : "NULL" + def ploidy = args.ploidy ? "$args.ploidy" : "NULL" + def gc_files = args.gc_files ? "$args.gc_files" : "NULL" + + def minCounts_arg = args.minCounts ? ",minCounts = $args.minCounts" : "" + def chrom_names_arg = args.chrom_names ? ",chrom_names = $args.chrom_names" : "" + def min_base_qual_arg = args.min_base_qual ? ",min_base_qual = $args.min_base_qual" : "" + def min_map_qual_arg = args.min_map_qual ? ",min_map_qual = $args.min_map_qual" : "" + def ref_fasta_arg = args.ref_fasta ? ",ref.fasta = '$args.ref_fasta'" : "" + def skip_allele_counting_tumour_arg = args.skip_allele_counting_tumour ? ",skip_allele_counting_tumour = $args.skip_allele_counting_tumour" : "" + def skip_allele_counting_normal_arg = args.skip_allele_counting_normal ? ",skip_allele_counting_normal = $args.skip_allele_counting_normal" : "" + + + + """ + #!/usr/bin/env Rscript + library(RColorBrewer) + library(ASCAT) + options(bitmapType='cairo') + + + #prepare from BAM files + ascat.prepareHTS( + tumourseqfile = "$input_tumor", + normalseqfile = "$input_normal", + tumourname = "Tumour", + normalname = "Normal", + allelecounter_exe = "alleleCounter", + alleles.prefix = "$allele_files", + loci.prefix = "$loci_files", + gender = "$gender", + genomeVersion = "$genomeVersion", + nthreads = $task.cpus + $minCounts_arg + $chrom_names_arg + $min_base_qual_arg + $min_map_qual_arg + $ref_fasta_arg + $skip_allele_counting_tumour_arg + $skip_allele_counting_normal_arg + ) + + + #Load the data + ascat.bc = ascat.loadData( + Tumor_LogR_file = "Tumour_tumourLogR.txt", + Tumor_BAF_file = "Tumour_normalBAF.txt", + Germline_LogR_file = "Tumour_normalLogR.txt", + Germline_BAF_file = "Tumour_normalBAF.txt", + genomeVersion = "$genomeVersion", + gender = "$gender" + ) + + #optional GC wave correction + if(!is.null($gc_files)){ + ascat.bc = ascat.GCcorrect(ascat.bc, $gc_files) + } + + #Plot the raw data + ascat.plotRawData(ascat.bc) + + #Segment the data + ascat.bc = ascat.aspcf(ascat.bc) + + #Plot the segmented data + ascat.plotSegmentedData(ascat.bc) + + #Run ASCAT to fit every tumor to a model, inferring ploidy, normal cell contamination, and discrete copy numbers + #If psi and rho are manually set: + if (!is.null($purity) && !is.null($ploidy)){ + ascat.output <- ascat.runAscat(ascat.bc, gamma=1, rho_manual=$purity, psi_manual=$ploidy) + } else if(!is.null($purity) && is.null($ploidy)){ + ascat.output <- ascat.runAscat(ascat.bc, gamma=1, rho_manual=$purity) + } else if(!is.null($ploidy) && is.null($purity)){ + ascat.output <- ascat.runAscat(ascat.bc, gamma=1, psi_manual=$ploidy) + } else { + ascat.output <- ascat.runAscat(ascat.bc, gamma=1) + } + + #Write out segmented regions (including regions with one copy of each allele) + write.table(ascat.output[["segments"]], file=paste0("$prefix", ".segments.txt"), sep="\t", quote=F, row.names=F) + + #Write out CNVs in bed format + cnvs=ascat.output[["segments"]][2:6] + write.table(cnvs, file=paste0("$prefix",".cnvs.txt"), sep="\t", quote=F, row.names=F, col.names=T) + + #Write out purity and ploidy info + summary <- tryCatch({ + matrix(c(ascat.output[["aberrantcellfraction"]], ascat.output[["ploidy"]]), ncol=2, byrow=TRUE)}, error = function(err) { + # error handler picks up where error was generated + print(paste("Could not find optimal solution: ",err)) + return(matrix(c(0,0),nrow=1,ncol=2,byrow = TRUE)) + } + ) + colnames(summary) <- c("AberrantCellFraction","Ploidy") + write.table(summary, file=paste0("$prefix",".purityploidy.txt"), sep="\t", quote=F, row.names=F, col.names=T) + + #version export. Have to hardcode process name and software name because + #won't run inside an R-block + version_file_path="versions.yml" + f <- file(version_file_path,"w") + writeLines("ASCAT:", f) + writeLines(" ascat: 3.0.0",f) + close(f) + """ + + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.cnvs.txt + touch ${prefix}.purityploidy.txt + touch ${prefix}.segments.txt + touch Tumour.ASCATprofile.png + touch Tumour.ASPCF.png + touch Tumour.germline.png + touch Tumour.rawprofile.png + touch Tumour.sunrise.png + touch Tumour.tumour.png + + echo 'ASCAT:' > versions.yml + echo ' ascat: 3.0.0' >> versions.yml + """ + + +} diff --git a/modules/ascat/meta.yml b/modules/ascat/meta.yml new file mode 100644 index 00000000..949afd6a --- /dev/null +++ b/modules/ascat/meta.yml @@ -0,0 +1,92 @@ +name: ascat +description: copy number profiles of tumour cells. +keywords: + - sort +tools: + - ascat: + description: ASCAT is a method to derive copy number profiles of tumour cells, accounting for normal cell admixture and tumour aneuploidy. ASCAT infers tumour purity (the fraction of tumour cells) and ploidy (the amount of DNA per tumour cell), expressed as multiples of haploid genomes from SNP array or massively parallel sequencing data, and calculates whole-genome allele-specific copy number profiles (the number of copies of both parental alleles for all SNP loci across the genome). + homepage: None + documentation: None + tool_dev_url: https://github.com/Crick-CancerGenomics/ascat + doi: "10.1093/bioinformatics/btaa538" + licence: ['GPL v3'] + +input: + - args: + type: map + description: | + Groovy Map containing tool parameters. MUST follow the structure/keywords below and be provided via modules.config. Parameters must be set between quotes. parameters can be removed from the map, if they are not set. For default values, please check the documentation above. + + ``` + { + [ + "gender": "XX", + "genomeVersion": "hg19" + "purity": , + "ploidy": , + "gc_files": , + "minCounts": , + "chrom_names": , + "min_base_qual": , + "min_map_qual": , + "ref_fasta": , + "skip_allele_counting_tumour": , + "skip_allele_counting_normal": + ] + } + ``` + + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input_normal: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - index_normal: + type: file + description: index for normal_bam + pattern: "*.{bai}" + - input_tumor: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - index_tumor: + type: file + description: index for tumor_bam + pattern: "*.{bai}" + - allele_files: + type: file + description: allele files for ASCAT. Can be downloaded here https://github.com/VanLoo-lab/ascat/tree/master/ReferenceFiles/WGS + - loci_files: + type: file + description: loci files for ASCAT. Can be downloaded here https://github.com/VanLoo-lab/ascat/tree/master/ReferenceFiles/WGS +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - png: + type: file + description: ASCAT plots + pattern: "*.{png}" + - purityploidy: + type: file + description: purity and ploidy data + pattern: "*.purityploidy.txt" + - segments: + type: file + description: segments data + pattern: "*.segments.txt" +authors: + - "@aasNGC" + - "@lassefolkersen" + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 6ecab096..48c3bb7d 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -46,6 +46,10 @@ artic/minion: - modules/artic/minion/** - tests/modules/artic/minion/** +ascat: + - modules/ascat/** + - tests/modules/ascat/** + assemblyscan: - modules/assemblyscan/** - tests/modules/assemblyscan/** diff --git a/tests/modules/ascat/main.nf b/tests/modules/ascat/main.nf new file mode 100644 index 00000000..e1f4f798 --- /dev/null +++ b/tests/modules/ascat/main.nf @@ -0,0 +1,64 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ASCAT as ASCAT_SIMPLE} from '../../../modules/ascat/main.nf' +include { ASCAT as ASCAT_PLOIDY_AND_PURITY} from '../../../modules/ascat/main.nf' +include { ASCAT as ASCAT_CRAM} from '../../../modules/ascat/main.nf' + + + + +workflow test_ascat { + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam_bai'], checkIfExists: true) + ] + + ASCAT_SIMPLE ( input , [], []) +} + + + + + +// extended tests running with 1000 genomes data. Data is downloaded as follows: +// wget ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase1/data/HG00154/alignment/HG00154.mapped.ILLUMINA.bwa.GBR.low_coverage.20101123.bam +// wget ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase1/data/HG00154/alignment/HG00154.mapped.ILLUMINA.bwa.GBR.low_coverage.20101123.bam.bai +// wget http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase1/data/HG00155/alignment/HG00155.mapped.ILLUMINA.bwa.GBR.low_coverage.20101123.bam +// wget http://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase1/data/HG00155/alignment/HG00155.mapped.ILLUMINA.bwa.GBR.low_coverage.20101123.bam.bai +//workflow test_ascat_with_ploidy_and_purity { +// input = [ +// [ id:'test', single_end:false ], // meta map +// file("/home/ec2-user/input_files/bams/HG00154.mapped.ILLUMINA.bwa.GBR.low_coverage.20101123.bam", checkIfExists: true), +// file("/home/ec2-user/input_files/bams/HG00154.mapped.ILLUMINA.bwa.GBR.low_coverage.20101123.bam.bai", checkIfExists: true), +// file("/home/ec2-user/input_files/bams/test2.bam", checkIfExists: true), +// file("/home/ec2-user/input_files/bams/test2.bam.bai", checkIfExists: true) +// ] +// +// ASCAT_PLOIDY_AND_PURITY ( input , "/home/ec2-user/input_files/allele_files/G1000_alleles_hg19_chr", "/home/ec2-user/input_files/loci_files/G1000_alleles_hg19_chr") +//} + + +// extended tests running with 1000 genomes data. Data is downloaded as follows: +// wget ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/data/HG00145/alignment/HG00145.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.cram.crai +// wget ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/data/HG00145/alignment/HG00145.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.cram +// wget ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/data/HG00146/alignment/HG00146.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.cram.crai +// wget ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/phase3/data/HG00146/alignment/HG00146.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.cram +//workflow test_ascat_with_crams { +// input = [ +// [ id:'test', single_end:false ], // meta map +// file("/home/ec2-user/input_files/crams/HG00145.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.cram", checkIfExists: true), +// file("/home/ec2-user/input_files/crams/HG00145.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.cram.crai", checkIfExists: true), +// file("/home/ec2-user/input_files/crams/duplicate_test.cram", checkIfExists: true), +// file("/home/ec2-user/input_files/crams/duplicate_test.cram.crai", checkIfExists: true) +// ] +// +// ASCAT_CRAM ( input , "/home/ec2-user/input_files/allele_files/G1000_alleles_hg19_chr", "/home/ec2-user/input_files/loci_files/G1000_alleles_hg19_chr") +//} + + + diff --git a/tests/modules/ascat/nextflow.config b/tests/modules/ascat/nextflow.config new file mode 100644 index 00000000..3c6cc53a --- /dev/null +++ b/tests/modules/ascat/nextflow.config @@ -0,0 +1,39 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + + withName: ASCAT_SIMPLE { + ext.args = [ + gender : 'XY', + genomeVersion : 'hg19', + minCounts : '1', + min_base_qual : '1', + min_map_qual : '1', + chrom_names : 'c("21","22")' + ] + } + + + + withName: ASCAT_PLOIDY_AND_PURITY { + ext.args = [ + gender : 'XX', + genomeVersion : 'hg19', + ploidy : '1.7', + purity : '0.24', + chrom_names : 'c("21","22")' + ] + } + + withName: ASCAT_CRAM { + ext.args = [ + gender : 'XX', + genomeVersion : 'hg19', + ref_fasta : '/home/ec2-user/input_files/fasta/human_g1k_v37.fasta', + chrom_names : 'c("21","22")' + ] + } + +} + diff --git a/tests/modules/ascat/test.yml b/tests/modules/ascat/test.yml new file mode 100644 index 00000000..e46c66b4 --- /dev/null +++ b/tests/modules/ascat/test.yml @@ -0,0 +1,25 @@ +- name: ascat test_ascat + command: nextflow run tests/modules/ascat -entry test_ascat -c tests/config/nextflow.config -stub-run + tags: + - ascat + files: + - path: output/ascat/Tumour.ASCATprofile.png + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/ascat/Tumour.ASPCF.png + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/ascat/Tumour.germline.png + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/ascat/Tumour.rawprofile.png + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/ascat/Tumour.sunrise.png + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/ascat/Tumour.tumour.png + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/ascat/test.cnvs.txt + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/ascat/test.purityploidy.txt + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/ascat/test.segments.txt + md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/ascat/versions.yml + md5sum: 1af20694ec11004c4f8bc0c609b06386 From 18e72fa0be121e8a772a84c2d17cbfb0f49ff914 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20H=C3=B6rtenhuber?= Date: Tue, 15 Mar 2022 11:56:42 +0100 Subject: [PATCH 093/592] fix indent error, avoiding html tag confusion (#1393) --- modules/controlfreec/meta.yml | 98 +++++++++++++++++------------------ 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/modules/controlfreec/meta.yml b/modules/controlfreec/meta.yml index 4d1e8674..3e218037 100644 --- a/modules/controlfreec/meta.yml +++ b/modules/controlfreec/meta.yml @@ -17,57 +17,57 @@ tools: input: - args: - type: map - description: | - Groovy Map containing tool parameters. MUST follow the structure/keywords below and be provided via modules.config. - parameters can be removed from the map, if they are not set. All value must be surrounded by quotes, meta map parameters can be set with, i.e. sex = meta.sex: - For default values, please check the documentation above. + type: map + description: | + Groovy Map containing tool parameters. MUST follow the structure/keywords below and be provided via modules.config. + Parameters marked as (optional) can be removed from the map, if they are not set. All values must be surrounded by quotes, meta map parameters can be set with, i.e. `sex = meta.sex`: + For default values, please check the documentation above. - ``` - { - [ - "general" :[ - "bedgraphoutput": , - "breakpointthreshold": , - "breakpointtype": , - "coefficientofvariation": , - "contamination": , - "contaminationadjustment": , - "degree": , - "forcegccontentnormalization": , - "gccontentprofile": , - "intercept": , - "mincnalength": , - "minmappabilityperwindow": , - "minexpectedgc": , - "maxexpectedgc": , - "minimalsubclonepresence": , - "noisydata": , - "ploidy": , - "printNA": , - "readcountthreshold": , - "sex": , - "step": , - "telocentromeric": , - "uniquematch": , - "window": - ], - "control":[ - "inputformat": , - "mateorientation": , - ], - "sample":[ - "inputformat": , - "mateorientation": , - ], - "BAF":[ - "minimalcoverageperposition": , - "minimalqualityperposition": , - "shiftinquality": + ``` + { + [ + "general" :[ + "bedgraphoutput": (optional), + "breakpointthreshold": (optional), + "breakpointtype": (optional), + "coefficientofvariation": (optional), + "contamination": (optional), + "contaminationadjustment": (optional), + "degree": (optional), + "forcegccontentnormalization": (optional), + "gccontentprofile": (optional), + "intercept": (optional), + "mincnalength": (optional), + "minmappabilityperwindow": (optional), + "minexpectedgc": (optional), + "maxexpectedgc": (optional), + "minimalsubclonepresence": (optional), + "noisydata": (optional), + "ploidy": (optional), + "printNA": (optional), + "readcountthreshold": (optional), + "sex": (optional), + "step": (optional), + "telocentromeric": (optional), + "uniquematch": (optional), + "window": (optional) + ], + "control":[ + "inputformat": (required), + "mateorientation": (optional), + ], + "sample":[ + "inputformat": (required), + "mateorientation": (optional), + ], + "BAF":[ + "minimalcoverageperposition": (optional), + "minimalqualityperposition": (optional), + "shiftinquality": (optional) + ] ] - ] - } - ``` + } + ``` - meta: type: map From 73aaecbc3ae62a124e1148b68b1a69dcfd9db0ed Mon Sep 17 00:00:00 2001 From: Michael L Heuer Date: Tue, 15 Mar 2022 11:02:40 -0500 Subject: [PATCH 094/592] Add BAM indexes as input for optitype module. (#1388) --- modules/optitype/main.nf | 2 +- modules/optitype/meta.yml | 4 ++++ tests/config/test_data.config | 3 ++- tests/modules/optitype/main.nf | 3 ++- tests/modules/optitype/test.yml | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules/optitype/main.nf b/modules/optitype/main.nf index 984d4669..b6a3e200 100644 --- a/modules/optitype/main.nf +++ b/modules/optitype/main.nf @@ -8,7 +8,7 @@ process OPTITYPE { 'quay.io/biocontainers/optitype:1.3.5--0' }" input: - tuple val(meta), path(bam) + tuple val(meta), path(bam), path(bai) output: tuple val(meta), path("${prefix}"), emit: output diff --git a/modules/optitype/meta.yml b/modules/optitype/meta.yml index 4cacadda..9ca10774 100644 --- a/modules/optitype/meta.yml +++ b/modules/optitype/meta.yml @@ -22,6 +22,10 @@ input: type: file description: BAM file pattern: "*.{bam}" + - bai: + type: file + description: BAM index file + pattern: "*.{bai}" output: - meta: diff --git a/tests/config/test_data.config b/tests/config/test_data.config index ed1e2861..0d61d1e9 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -192,7 +192,8 @@ params { test_paired_end_umi_unsorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.umi_unsorted.bam" test_paired_end_umi_unsorted_tagged_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test.paired_end.unsorted_tagged.bam" test_paired_end_hla = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/example_hla_pe.bam" - + test_paired_end_hla_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/example_hla_pe.sorted.bam" + test_paired_end_hla_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/example_hla_pe.sorted.bam.bai" test2_paired_end_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam" test2_paired_end_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam.bai" test2_paired_end_name_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.name.sorted.bam" diff --git a/tests/modules/optitype/main.nf b/tests/modules/optitype/main.nf index 55b46f0a..6ed14d96 100644 --- a/tests/modules/optitype/main.nf +++ b/tests/modules/optitype/main.nf @@ -6,7 +6,8 @@ include { OPTITYPE } from '../../../modules/optitype/main.nf' workflow test_optitype { input = [ [ id:'test', seq_type:'dna' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_hla'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_hla_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_hla_sorted_bam_bai'], checkIfExists: true) ] OPTITYPE ( input ) diff --git a/tests/modules/optitype/test.yml b/tests/modules/optitype/test.yml index bb493077..0cbb99cb 100644 --- a/tests/modules/optitype/test.yml +++ b/tests/modules/optitype/test.yml @@ -6,4 +6,4 @@ - path: output/optitype/test/test_coverage_plot.pdf - path: output/optitype/test/test_result.tsv contains: - - "1446" + - "1439" From df60a58426705cc9feb6850f69b42f00f383df8c Mon Sep 17 00:00:00 2001 From: Lasse Folkersen Date: Wed, 16 Mar 2022 13:29:11 +0100 Subject: [PATCH 095/592] round the < to ( to make markdown work for meta.yml (#1395) * round the < to ( to make markdown work for meta.yml * changing md5sums and stub output so it doesnt trigger the empty file linting error --- modules/ascat/main.nf | 18 +++++++++--------- modules/ascat/meta.yml | 22 +++++++++++----------- tests/modules/ascat/test.yml | 18 +++++++++--------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/modules/ascat/main.nf b/modules/ascat/main.nf index 1d2bd96f..35f262dd 100644 --- a/modules/ascat/main.nf +++ b/modules/ascat/main.nf @@ -137,15 +137,15 @@ process ASCAT { stub: def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.cnvs.txt - touch ${prefix}.purityploidy.txt - touch ${prefix}.segments.txt - touch Tumour.ASCATprofile.png - touch Tumour.ASPCF.png - touch Tumour.germline.png - touch Tumour.rawprofile.png - touch Tumour.sunrise.png - touch Tumour.tumour.png + echo stub > ${prefix}.cnvs.txt + echo stub > ${prefix}.purityploidy.txt + echo stub > ${prefix}.segments.txt + echo stub > Tumour.ASCATprofile.png + echo stub > Tumour.ASPCF.png + echo stub > Tumour.germline.png + echo stub > Tumour.rawprofile.png + echo stub > Tumour.sunrise.png + echo stub > Tumour.tumour.png echo 'ASCAT:' > versions.yml echo ' ascat: 3.0.0' >> versions.yml diff --git a/modules/ascat/meta.yml b/modules/ascat/meta.yml index 949afd6a..b44862a1 100644 --- a/modules/ascat/meta.yml +++ b/modules/ascat/meta.yml @@ -15,23 +15,23 @@ input: - args: type: map description: | - Groovy Map containing tool parameters. MUST follow the structure/keywords below and be provided via modules.config. Parameters must be set between quotes. parameters can be removed from the map, if they are not set. For default values, please check the documentation above. + Groovy Map containing tool parameters. MUST follow the structure/keywords below and be provided via modules.config. Parameters must be set between quotes. (optional) parameters can be removed from the map, if they are not set. For default values, please check the documentation above. ``` { [ "gender": "XX", "genomeVersion": "hg19" - "purity": , - "ploidy": , - "gc_files": , - "minCounts": , - "chrom_names": , - "min_base_qual": , - "min_map_qual": , - "ref_fasta": , - "skip_allele_counting_tumour": , - "skip_allele_counting_normal": + "purity": (optional), + "ploidy": (optional), + "gc_files": (optional), + "minCounts": (optional), + "chrom_names": (optional), + "min_base_qual": (optional), + "min_map_qual": (optional), + "ref_fasta": (optional), + "skip_allele_counting_tumour": (optional), + "skip_allele_counting_normal": (optional) ] } ``` diff --git a/tests/modules/ascat/test.yml b/tests/modules/ascat/test.yml index e46c66b4..668e8823 100644 --- a/tests/modules/ascat/test.yml +++ b/tests/modules/ascat/test.yml @@ -4,22 +4,22 @@ - ascat files: - path: output/ascat/Tumour.ASCATprofile.png - md5sum: d41d8cd98f00b204e9800998ecf8427e + md5sum: f50b84b1db4b83ba62ec1deacc69c260 - path: output/ascat/Tumour.ASPCF.png - md5sum: d41d8cd98f00b204e9800998ecf8427e + md5sum: f50b84b1db4b83ba62ec1deacc69c260 - path: output/ascat/Tumour.germline.png - md5sum: d41d8cd98f00b204e9800998ecf8427e + md5sum: f50b84b1db4b83ba62ec1deacc69c260 - path: output/ascat/Tumour.rawprofile.png - md5sum: d41d8cd98f00b204e9800998ecf8427e + md5sum: f50b84b1db4b83ba62ec1deacc69c260 - path: output/ascat/Tumour.sunrise.png - md5sum: d41d8cd98f00b204e9800998ecf8427e + md5sum: f50b84b1db4b83ba62ec1deacc69c260 - path: output/ascat/Tumour.tumour.png - md5sum: d41d8cd98f00b204e9800998ecf8427e + md5sum: f50b84b1db4b83ba62ec1deacc69c260 - path: output/ascat/test.cnvs.txt - md5sum: d41d8cd98f00b204e9800998ecf8427e + md5sum: f50b84b1db4b83ba62ec1deacc69c260 - path: output/ascat/test.purityploidy.txt - md5sum: d41d8cd98f00b204e9800998ecf8427e + md5sum: f50b84b1db4b83ba62ec1deacc69c260 - path: output/ascat/test.segments.txt - md5sum: d41d8cd98f00b204e9800998ecf8427e + md5sum: f50b84b1db4b83ba62ec1deacc69c260 - path: output/ascat/versions.yml md5sum: 1af20694ec11004c4f8bc0c609b06386 From f469045a95aad1ce911f0e6db7393800535935d2 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 17 Mar 2022 13:08:51 +0100 Subject: [PATCH 096/592] Fix DeepARG depenency issue with singularity containers (#1397) * fix: remove left-over unnecessary code * Adds --fakeroot option for singularity usage with DeepARG as workaround for broken conda dependency * Update modules/deeparg/downloaddata/main.nf Co-authored-by: Moritz E. Beber * Update modules/deeparg/predict/main.nf Co-authored-by: Moritz E. Beber * Apply suggestions from code review * Update main.nf * Update main.nf * Update main.nf * Update main.nf * Go back to original logic Co-authored-by: Moritz E. Beber --- modules/deeparg/downloaddata/main.nf | 6 ++++++ modules/deeparg/predict/main.nf | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/modules/deeparg/downloaddata/main.nf b/modules/deeparg/downloaddata/main.nf index aacdc778..78208d21 100644 --- a/modules/deeparg/downloaddata/main.nf +++ b/modules/deeparg/downloaddata/main.nf @@ -7,6 +7,12 @@ process DEEPARG_DOWNLOADDATA { container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/deeparg:1.0.2--pyhdfd78af_1' : 'quay.io/biocontainers/deeparg:1.0.2--pyhdfd78af_1' }" + /* + We have to force singularity to run with --fakeroot to allow reading of a problematic file with borked read-write permissions in an upstream dependency (theanos). + This flag may not be available on all systems and may be considered a security problem. so please document and /or warn for this in your pipeline! + */ + containerOptions { "${workflow.containerEngine}" == 'singularity' ? '--fakeroot' : '' } + input: diff --git a/modules/deeparg/predict/main.nf b/modules/deeparg/predict/main.nf index 3e478e59..05cee2f8 100644 --- a/modules/deeparg/predict/main.nf +++ b/modules/deeparg/predict/main.nf @@ -8,6 +8,11 @@ process DEEPARG_PREDICT { container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity//deeparg:1.0.2--pyhdfd78af_1' : 'quay.io/biocontainers/deeparg:1.0.2--pyhdfd78af_1' }" + /* + We have to force singularity to run with --fakeroot to allow reading of a problematic file with borked read-write permissions in an upstream dependency (theanos). + This flag may not be available on all systems and may be considered a security problem. so please document and /or warn for this in your pipeline! + */ + containerOptions { "${workflow.containerEngine}" == 'singularity' ? '--fakeroot' : '' } input: tuple val(meta), path(fasta), val(model) From 7436eebf334b104eb4a034487681b45045abbd31 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 17 Mar 2022 20:03:14 -0500 Subject: [PATCH 097/592] Bat test (#1226) * CI: print out pytest logs on failure * ci(pytest-workflow): cat => bat * Introduce bug * Use batcat * Force fancification * ci: Use colored output for pytest * Revert "Introduce bug" This reverts commit bc78e5e8d144a823e70f6c57265ac80db687e5fe. Co-authored-by: Gregor Sturm --- .github/workflows/pytest-workflow.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/pytest-workflow.yml b/.github/workflows/pytest-workflow.yml index b2be6aa3..2e4f70f8 100644 --- a/.github/workflows/pytest-workflow.yml +++ b/.github/workflows/pytest-workflow.yml @@ -86,17 +86,13 @@ jobs: # Test the module - name: Run pytest-workflow # only use one thread for pytest-workflow to avoid race condition on conda cache. - run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware + run: TMPDIR=~ PROFILE=${{ matrix.profile }} pytest --tag ${{ matrix.tags }} --symlink --kwdof --git-aware --color=yes - name: Output log on failure if: failure() run: | - echo "======> log.out <=======" - cat /home/runner/pytest_workflow_*/*/log.out - echo - echo - echo "======> log.err <=======" - cat /home/runner/pytest_workflow_*/*/log.err + sudo apt install bat > /dev/null + batcat --decorations=always --color=always /home/runner/pytest_workflow_*/*/log.{out,err} - name: Upload logs on failure if: failure() From 979e57b7ac6a405a395dd7a6dbe1a275c5bc226b Mon Sep 17 00:00:00 2001 From: nickhsmith Date: Fri, 18 Mar 2022 13:30:03 +0100 Subject: [PATCH 098/592] Manta consistancy (#1407) * update tests * update * update * make the manta inputs consistant for germline/somatic/tumoronly * match chromosomes to cram file (chr21) * undo genotypegvfs * undo genotypegvfs * update manta input structure to match strelka. tuple(relevant input), path(fasta), path(fai) * update tests * fix typos * fix typos Co-authored-by: Smith Nicholas --- modules/manta/germline/main.nf | 3 +-- modules/manta/germline/meta.yml | 16 +++++++------- modules/manta/somatic/main.nf | 4 +--- modules/manta/somatic/meta.yml | 16 +++++++------- modules/manta/tumoronly/main.nf | 4 +--- modules/manta/tumoronly/meta.yml | 16 +++++++------- tests/modules/manta/germline/main.nf | 30 ++++++++++++--------------- tests/modules/manta/somatic/main.nf | 29 ++++++++++++++++++++------ tests/modules/manta/tumoronly/main.nf | 23 ++++++++++---------- 9 files changed, 74 insertions(+), 67 deletions(-) diff --git a/modules/manta/germline/main.nf b/modules/manta/germline/main.nf index 5ddba51b..ef6bd4a3 100644 --- a/modules/manta/germline/main.nf +++ b/modules/manta/germline/main.nf @@ -8,10 +8,9 @@ process MANTA_GERMLINE { 'quay.io/biocontainers/manta:1.6.0--h9ee0642_1' }" input: - tuple val(meta), path(input), path(index) + tuple val(meta), path(input), path(index), path(target_bed), path(target_bed_tbi) path fasta path fasta_fai - tuple path(target_bed), path(target_bed_tbi) output: diff --git a/modules/manta/germline/meta.yml b/modules/manta/germline/meta.yml index d6297ead..b719f075 100644 --- a/modules/manta/germline/meta.yml +++ b/modules/manta/germline/meta.yml @@ -31,14 +31,6 @@ input: type: file description: BAM/CRAM/SAM index file. For joint calling use a list of files. pattern: "*.{bai,crai,sai}" - - fasta: - type: file - description: Genome reference FASTA file - pattern: "*.{fa,fasta}" - - fasta_fai: - type: file - description: Genome reference FASTA index file - pattern: "*.{fa.fai,fasta.fai}" - target_bed: type: file description: BED file containing target regions for variant calling @@ -47,6 +39,14 @@ input: type: file description: Index for BED file containing target regions for variant calling pattern: "*.{bed.tbi}" + - fasta: + type: file + description: Genome reference FASTA file + pattern: "*.{fa,fasta}" + - fasta_fai: + type: file + description: Genome reference FASTA index file + pattern: "*.{fa.fai,fasta.fai}" output: - meta: diff --git a/modules/manta/somatic/main.nf b/modules/manta/somatic/main.nf index 886a8fb9..6313c38b 100644 --- a/modules/manta/somatic/main.nf +++ b/modules/manta/somatic/main.nf @@ -8,11 +8,9 @@ process MANTA_SOMATIC { 'quay.io/biocontainers/manta:1.6.0--h9ee0642_1' }" input: - tuple val(meta), path(input_normal), path(input_index_normal), path(input_tumor), path(input_index_tumor) + tuple val(meta), path(input_normal), path(input_index_normal), path(input_tumor), path(input_index_tumor), path(target_bed), path(target_bed_tbi) path fasta path fai - path target_bed - path target_bed_tbi output: tuple val(meta), path("*.candidate_small_indels.vcf.gz") , emit: candidate_small_indels_vcf diff --git a/modules/manta/somatic/meta.yml b/modules/manta/somatic/meta.yml index ec9cc869..457d66a5 100644 --- a/modules/manta/somatic/meta.yml +++ b/modules/manta/somatic/meta.yml @@ -39,14 +39,6 @@ input: type: file description: BAM/CRAM/SAM index file pattern: "*.{bai,crai,sai}" - - fasta: - type: file - description: Genome reference FASTA file - pattern: "*.{fa,fasta}" - - fai: - type: file - description: Genome reference FASTA index file - pattern: "*.{fa.fai,fasta.fai}" - target_bed: type: file description: BED file containing target regions for variant calling @@ -55,6 +47,14 @@ input: type: file description: Index for BED file containing target regions for variant calling pattern: "*.{bed.tbi}" + - fasta: + type: file + description: Genome reference FASTA file + pattern: "*.{fa,fasta}" + - fai: + type: file + description: Genome reference FASTA index file + pattern: "*.{fa.fai,fasta.fai}" output: - meta: diff --git a/modules/manta/tumoronly/main.nf b/modules/manta/tumoronly/main.nf index 3d52b16e..3361cf82 100644 --- a/modules/manta/tumoronly/main.nf +++ b/modules/manta/tumoronly/main.nf @@ -8,11 +8,9 @@ process MANTA_TUMORONLY { 'quay.io/biocontainers/manta:1.6.0--h9ee0642_1' }" input: - tuple val(meta), path(input), path(input_index) + tuple val(meta), path(input), path(input_index), path(target_bed), path(target_bed_tbi) path fasta path fai - path target_bed - path target_bed_tbi output: tuple val(meta), path("*candidate_small_indels.vcf.gz") , emit: candidate_small_indels_vcf diff --git a/modules/manta/tumoronly/meta.yml b/modules/manta/tumoronly/meta.yml index f902bc77..398d6843 100644 --- a/modules/manta/tumoronly/meta.yml +++ b/modules/manta/tumoronly/meta.yml @@ -31,14 +31,6 @@ input: type: file description: BAM/CRAM/SAM index file pattern: "*.{bai,crai,sai}" - - fasta: - type: file - description: Genome reference FASTA file - pattern: "*.{fa,fasta}" - - fai: - type: file - description: Genome reference FASTA index file - pattern: "*.{fa.fai,fasta.fai}" - target_bed: type: file description: BED file containing target regions for variant calling @@ -47,6 +39,14 @@ input: type: file description: Index for BED file containing target regions for variant calling pattern: "*.{bed.tbi}" + - fasta: + type: file + description: Genome reference FASTA file + pattern: "*.{fa,fasta}" + - fai: + type: file + description: Genome reference FASTA index file + pattern: "*.{fa.fai,fasta.fai}" output: - meta: diff --git a/tests/modules/manta/germline/main.nf b/tests/modules/manta/germline/main.nf index bad62629..0081c29f 100644 --- a/tests/modules/manta/germline/main.nf +++ b/tests/modules/manta/germline/main.nf @@ -7,30 +7,28 @@ include { MANTA_GERMLINE } from '../../../../modules/manta/germline/main.nf' workflow test_manta_germline { input = [ [ id:'test'], // meta map - [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)], - [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)] + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), + [],[] ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = [[],[]] - MANTA_GERMLINE ( input, fasta, fai, bed ) + MANTA_GERMLINE ( input, fasta, fai ) } workflow test_manta_germline_target_bed { input = [ [ id:'test'], // meta map - [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)], - [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)] + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = [ - file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true), - ] - MANTA_GERMLINE ( input, fasta, fai, bed ) + MANTA_GERMLINE ( input, fasta, fai ) } workflow test_manta_germline_target_bed_jointcalling { @@ -39,14 +37,12 @@ workflow test_manta_germline_target_bed_jointcalling { [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram'], checkIfExists: true)], [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram_crai'], checkIfExists: true),] + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram_crai'], checkIfExists: true),], + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = [ - file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true), - ] - MANTA_GERMLINE ( input, fasta, fai, bed ) + MANTA_GERMLINE ( input, fasta, fai ) } diff --git a/tests/modules/manta/somatic/main.nf b/tests/modules/manta/somatic/main.nf index 7da41bea..b32a273e 100644 --- a/tests/modules/manta/somatic/main.nf +++ b/tests/modules/manta/somatic/main.nf @@ -11,13 +11,30 @@ workflow test_manta_somatic { file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + [], [] ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true) - bed_tbi = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) - MANTA_SOMATIC ( input, fasta, fai, bed, bed_tbi ) + MANTA_SOMATIC ( input, fasta, fai ) +} + +workflow test_manta_somatic_target_bed { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz_tbi'], checkIfExists: true), + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + MANTA_SOMATIC ( input, fasta, fai ) } diff --git a/tests/modules/manta/tumoronly/main.nf b/tests/modules/manta/tumoronly/main.nf index be0d3dbb..dbe07914 100644 --- a/tests/modules/manta/tumoronly/main.nf +++ b/tests/modules/manta/tumoronly/main.nf @@ -8,28 +8,27 @@ workflow test_manta_tumoronly { input = [ [ id:'test'], // meta map file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + [], [] ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = [] - bed_tbi = [] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) - MANTA_TUMORONLY ( input, fasta, fai, bed, bed_tbi ) + MANTA_TUMORONLY ( input, fasta, fai ) } workflow test_manta_tumoronly_target_bed { input = [ [ id:'test'], // meta map file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed_gz_tbi'], checkIfExists: true) ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true) - bed_tbi = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) - MANTA_TUMORONLY ( input, fasta, fai, bed, bed_tbi ) + MANTA_TUMORONLY ( input, fasta, fai ) } From f0800157544a82ae222931764483331a81812012 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 18 Mar 2022 08:27:50 -0500 Subject: [PATCH 099/592] Prettier (#1405) * style: Add prettier config files * build: Add prettier vscode extension * ci: Replace markdownlint and yamllint with prettier * style: Run prettier * style: Use indent of 2 for markdown as well https://github.com/nf-core/tools/pull/1470#issuecomment-1071028358 * style: Fix indent * style: Let editorconfig take over tab widths * style: yaml => yml * ci: Run prettier once Co-authored-by: Phil Ewels Co-authored-by: Phil Ewels --- .editorconfig | 2 +- .github/CONTRIBUTING.md | 5 +- .github/PULL_REQUEST_TEMPLATE.md | 6 +- .github/workflows/code-linting.yml | 32 ++-- .gitpod.yml | 18 +-- .markdownlint.yml | 11 -- .prettierignore | 16 ++ .prettierrc.yml | 1 + .yamllint.yml | 5 - README.md | 142 +++++++++--------- modules/abricate/run/meta.yml | 2 +- modules/abricate/summary/meta.yml | 2 +- modules/adapterremoval/meta.yml | 3 +- modules/amrfinderplus/run/meta.yml | 2 +- modules/amrfinderplus/update/meta.yml | 2 +- modules/ascat/meta.yml | 2 +- modules/bcftools/annotate/meta.yml | 2 +- modules/biscuit/pileup/meta.yml | 12 +- modules/cellranger/README.md | 21 ++- modules/cellranger/mkfastq/README.md | 24 ++- modules/cnvpytor/callcnvs/meta.yml | 3 +- modules/cnvpytor/histogram/meta.yml | 2 +- modules/cnvpytor/importreaddepth/meta.yml | 3 +- modules/cnvpytor/partition/meta.yml | 2 +- modules/controlfreec/meta.yml | 3 +- modules/csvtk/split/meta.yml | 3 +- modules/deeptools/bamcoverage/meta.yml | 2 +- modules/faqcs/meta.yml | 2 +- modules/gatk4/combinegvcfs/meta.yml | 5 +- modules/gatk4/fastqtosam/meta.yml | 3 +- modules/gatk4/gatherpileupsummaries/meta.yml | 2 +- modules/gatk4/getpileupsummaries/meta.yml | 1 - modules/gatk4/variantrecalibrator/meta.yml | 4 +- modules/hamronization/deeparg/meta.yml | 2 +- modules/hamronization/summarize/meta.yml | 2 +- modules/hmmer/hmmsearch/meta.yml | 2 +- modules/hpsuissero/meta.yml | 2 +- modules/ichorcna/createpon/meta.yml | 2 +- modules/ichorcna/run/meta.yml | 2 +- modules/legsta/meta.yml | 2 +- modules/macs2/callpeak/meta.yml | 3 +- modules/mafft/meta.yml | 2 +- modules/mobsuite/recon/meta.yml | 2 +- modules/msisensorpro/msi_somatic/meta.yml | 2 +- modules/msisensorpro/scan/meta.yml | 2 +- modules/ngscheckmate/ncm/meta.yml | 2 +- .../picard/addorreplacereadgroups/meta.yml | 2 +- .../picard/createsequencedictionary/meta.yml | 4 +- modules/picard/fixmateinformation/meta.yml | 2 +- modules/picard/sortvcf/meta.yml | 2 +- modules/plink2/score/meta.yml | 6 +- modules/rgi/main/meta.yml | 2 +- modules/rsem/calculateexpression/meta.yml | 2 +- modules/seqkit/pair/meta.yml | 2 +- modules/seqtk/rename/meta.yml | 2 +- modules/seqtk/seq/meta.yml | 2 +- modules/sistr/meta.yml | 2 +- modules/sourmash/sketch/meta.yml | 2 +- modules/ssuissero/meta.yml | 2 +- modules/stranger/meta.yml | 2 +- modules/yara/index/meta.yml | 5 +- modules/yara/mapper/meta.yml | 5 +- tests/modules/gatk4/combinegvcfs/test.yml | 2 +- tests/modules/gatk4/genotypegvcfs/test.yml | 10 +- tests/modules/hmmer/hmmsearch/test.yml | 8 +- tests/modules/ichorcna/createpon/test.yml | 4 +- tests/modules/ichorcna/run/test.yml | 4 +- .../picard/createsequencedictionary/test.yml | 2 +- tests/modules/roary/test.yml | 5 +- 69 files changed, 207 insertions(+), 244 deletions(-) delete mode 100644 .markdownlint.yml create mode 100644 .prettierignore create mode 100644 .prettierrc.yml delete mode 100644 .yamllint.yml diff --git a/.editorconfig b/.editorconfig index a6981b47..835c83dd 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,5 +8,5 @@ trim_trailing_whitespace = true indent_size = 4 indent_style = space -[*.{yml,yaml}] +[*.{md,yml,yaml}] indent_size = 2 diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 7faf4340..cba1dc95 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -16,7 +16,9 @@ Contributions to the code are even more welcome ;) If you'd like to write some code for nf-core/modules, the standard workflow is as follows: 1. Check that there isn't already an issue about your idea in the [nf-core/modules issues](https://github.com/nf-core/modules/issues) to avoid duplicating work - * If there isn't one already, please create one so that others know you're working on this + +- If there isn't one already, please create one so that others know you're working on this + 2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [nf-core/modules repository](https://github.com/nf-core/modules) to your GitHub account 3. When adding a module file, follow the [guidelines](https://github.com/nf-core/modules#adding-a-new-module-file) 4. Ensure that [tests are working locally](https://github.com/nf-core/modules#running-tests-locally) @@ -40,7 +42,6 @@ These tests are run both with the latest available version of `Nextflow` and als For further information/help, please consult the [nf-core/modules README](https://github.com/nf-core/modules) and don't hesitate to get in touch on the nf-core Slack [#modules](https://nfcore.slack.com/channels/modules) channel ([join our Slack here](https://nf-co.re/join/slack)). - ### 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/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index cfe07f88..8fc9ae0d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -27,6 +27,6 @@ Closes #XXX - [ ] Add a resource `label` - [ ] Use BioConda and BioContainers if possible to fulfil software requirements. - Ensure that the test works with either Docker / Singularity. Conda CI tests can be quite flaky: - - [ ] `PROFILE=docker pytest --tag --symlink --keep-workflow-wd --git-aware` - - [ ] `PROFILE=singularity pytest --tag --symlink --keep-workflow-wd --git-aware` - - [ ] `PROFILE=conda pytest --tag --symlink --keep-workflow-wd --git-aware` + - [ ] `PROFILE=docker pytest --tag --symlink --keep-workflow-wd --git-aware` + - [ ] `PROFILE=singularity pytest --tag --symlink --keep-workflow-wd --git-aware` + - [ ] `PROFILE=conda pytest --tag --symlink --keep-workflow-wd --git-aware` diff --git a/.github/workflows/code-linting.yml b/.github/workflows/code-linting.yml index 145dd5d9..9b066467 100644 --- a/.github/workflows/code-linting.yml +++ b/.github/workflows/code-linting.yml @@ -5,20 +5,21 @@ on: pull_request: branches: [master] - jobs: - Markdown: + Prettier: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - name: Check out repository + uses: actions/checkout@v2 - - uses: actions/setup-node@v2 + - name: Install NodeJS + uses: actions/setup-node@v2 - - name: Install markdownlint - run: npm install -g markdownlint-cli + - name: Install Prettier + run: npm install -g prettier - - name: Run Markdownlint - run: markdownlint ${GITHUB_WORKSPACE} -c ${GITHUB_WORKSPACE}/.markdownlint.yml + - name: Run Prettier --check + run: prettier --check . EditorConfig: runs-on: ubuntu-latest @@ -32,18 +33,3 @@ jobs: - name: Run ECLint check run: editorconfig-checker -exclude README.md $(git ls-files | grep -v test) - - YAML: - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v2 - - - name: Install NodeJS - uses: actions/setup-node@v2 - - - name: Install yaml-lint - run: npm install -g yaml-lint - - - name: Run yaml-lint - run: yamllint $(find ${GITHUB_WORKSPACE} -type f -name "*.yaml" -or -name "*.yml") diff --git a/.gitpod.yml b/.gitpod.yml index 25078360..d24968be 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,14 +1,14 @@ image: nfcore/gitpod:latest vscode: - extensions: # based on nf-core.nf-core-extensionpack - - codezombiech.gitignore # Language support for .gitignore files + extensions: # based on nf-core.nf-core-extensionpack + - codezombiech.gitignore # Language support for .gitignore files # - cssho.vscode-svgviewer # SVG viewer - - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code - - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - - mechatroner.rainbow-csv # Highlight columns in csv files in different colors + - esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code + - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed + - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files + - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar + - mechatroner.rainbow-csv # Highlight columns in csv files in different colors # - nextflow.nextflow # Nextflow syntax highlighting - - oderwat.indent-rainbow # Highlight indentation level - - streetsidesoftware.code-spell-checker # Spelling checker for source code + - oderwat.indent-rainbow # Highlight indentation level + - streetsidesoftware.code-spell-checker # Spelling checker for source code diff --git a/.markdownlint.yml b/.markdownlint.yml deleted file mode 100644 index 7890d0f2..00000000 --- a/.markdownlint.yml +++ /dev/null @@ -1,11 +0,0 @@ -# Markdownlint configuration file -default: true -line-length: false -no-multiple-blanks: 0 -blanks-around-headers: false -blanks-around-lists: false -header-increment: false -no-duplicate-header: - siblings_only: true -ul-indent: - indent: 4 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..a76cd9ac --- /dev/null +++ b/.prettierignore @@ -0,0 +1,16 @@ +includes/Maven_Pro/ + +# gitignore +.nextflow* +work/ +results/ +test_output/ +output/ +.DS_Store +*.code-workspace +tests/data/ +.screenrc +.*.sw? +__pycache__ +*.pyo +*.pyc diff --git a/.prettierrc.yml b/.prettierrc.yml new file mode 100644 index 00000000..c81f9a76 --- /dev/null +++ b/.prettierrc.yml @@ -0,0 +1 @@ +printWidth: 120 diff --git a/.yamllint.yml b/.yamllint.yml deleted file mode 100644 index 6889fa34..00000000 --- a/.yamllint.yml +++ /dev/null @@ -1,5 +0,0 @@ -extends: default - -rules: - document-start: disable - line-length: disable diff --git a/README.md b/README.md index beee42e7..478fe8da 100644 --- a/README.md +++ b/README.md @@ -31,105 +31,105 @@ We have written a helper command in the `nf-core/tools` package that uses the Gi 1. Install the latest version of [`nf-core/tools`](https://github.com/nf-core/tools#installation) (`>=2.0`) 2. List the available modules: - ```console - $ nf-core modules list remote + ```console + $ nf-core modules list remote - ,--./,-. - ___ __ __ __ ___ /,-._.--~\ - |\ | |__ __ / ` / \ |__) |__ } { - | \| | \__, \__/ | \ |___ \`-._,-`-, - `._,._,' + ,--./,-. + ___ __ __ __ ___ /,-._.--~\ + |\ | |__ __ / ` / \ |__) |__ } { + | \| | \__, \__/ | \ |___ \`-._,-`-, + `._,._,' - nf-core/tools version 2.0 + nf-core/tools version 2.0 - INFO Modules available from nf-core/modules (master): pipeline_modules.py:164 + INFO Modules available from nf-core/modules (master): pipeline_modules.py:164 - ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ - ┃ Module Name ┃ - ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ - │ bandage/image │ - │ bcftools/consensus │ - │ bcftools/filter │ - │ bcftools/isec │ - ..truncated.. - ``` + ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ + ┃ Module Name ┃ + ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ + │ bandage/image │ + │ bcftools/consensus │ + │ bcftools/filter │ + │ bcftools/isec │ + ..truncated.. + ``` 3. Install the module in your pipeline directory: - ```console - $ nf-core modules install fastqc + ```console + $ nf-core modules install fastqc - ,--./,-. - ___ __ __ __ ___ /,-._.--~\ - |\ | |__ __ / ` / \ |__) |__ } { - | \| | \__, \__/ | \ |___ \`-._,-`-, - `._,._,' + ,--./,-. + ___ __ __ __ ___ /,-._.--~\ + |\ | |__ __ / ` / \ |__) |__ } { + | \| | \__, \__/ | \ |___ \`-._,-`-, + `._,._,' - nf-core/tools version 2.0 + nf-core/tools version 2.0 - INFO Installing fastqc pipeline_modules.py:213 - INFO Downloaded 3 files to ./modules/nf-core/modules/fastqc pipeline_modules.py:236 - ``` + INFO Installing fastqc pipeline_modules.py:213 + INFO Downloaded 3 files to ./modules/nf-core/modules/fastqc pipeline_modules.py:236 + ``` 4. Import the module in your Nextflow script: - ```nextflow - #!/usr/bin/env nextflow + ```nextflow + #!/usr/bin/env nextflow - nextflow.enable.dsl = 2 + nextflow.enable.dsl = 2 - include { FASTQC } from './modules/nf-core/modules/fastqc/main' - ``` + include { FASTQC } from './modules/nf-core/modules/fastqc/main' + ``` 5. Remove the module from the pipeline repository if required: - ```console - $ nf-core modules remove fastqc + ```console + $ nf-core modules remove fastqc - ,--./,-. - ___ __ __ __ ___ /,-._.--~\ - |\ | |__ __ / ` / \ |__) |__ } { - | \| | \__, \__/ | \ |___ \`-._,-`-, - `._,._,' + ,--./,-. + ___ __ __ __ ___ /,-._.--~\ + |\ | |__ __ / ` / \ |__) |__ } { + | \| | \__, \__/ | \ |___ \`-._,-`-, + `._,._,' - nf-core/tools version 2.0 + nf-core/tools version 2.0 - INFO Removing fastqc pipeline_modules.py:271 - INFO Successfully removed fastqc pipeline_modules.py:285 - ``` + INFO Removing fastqc pipeline_modules.py:271 + INFO Successfully removed fastqc pipeline_modules.py:285 + ``` 6. Check that a locally installed nf-core module is up-to-date compared to the one hosted in this repo: - ```console - $ nf-core modules lint fastqc + ```console + $ nf-core modules lint fastqc - ,--./,-. - ___ __ __ __ ___ /,-._.--~\ - |\ | |__ __ / ` / \ |__) |__ } { - | \| | \__, \__/ | \ |___ \`-._,-`-, - `._,._,' + ,--./,-. + ___ __ __ __ ___ /,-._.--~\ + |\ | |__ __ / ` / \ |__) |__ } { + | \| | \__, \__/ | \ |___ \`-._,-`-, + `._,._,' - nf-core/tools version 2.0 + nf-core/tools version 2.0 - INFO Linting pipeline: . lint.py:104 - INFO Linting module: fastqc lint.py:106 + INFO Linting pipeline: . lint.py:104 + INFO Linting module: fastqc lint.py:106 - ╭─────────────────────────────────────────────────────────────────────────────────╮ - │ [!] 1 Test Warning │ - ╰─────────────────────────────────────────────────────────────────────────────────╯ - ╭──────────────┬───────────────────────────────┬──────────────────────────────────╮ - │ Module name │ Test message │ File path │ - ├──────────────┼───────────────────────────────┼──────────────────────────────────┤ - │ fastqc │ Local copy of module outdated │ modules/nf-core/modules/fastqc/ │ - ╰──────────────┴────────────────────────────── ┴──────────────────────────────────╯ - ╭──────────────────────╮ - │ LINT RESULTS SUMMARY │ - ├──────────────────────┤ - │ [✔] 15 Tests Passed │ - │ [!] 1 Test Warning │ - │ [✗] 0 Test Failed │ - ╰──────────────────────╯ - ``` + ╭─────────────────────────────────────────────────────────────────────────────────╮ + │ [!] 1 Test Warning │ + ╰─────────────────────────────────────────────────────────────────────────────────╯ + ╭──────────────┬───────────────────────────────┬──────────────────────────────────╮ + │ Module name │ Test message │ File path │ + ├──────────────┼───────────────────────────────┼──────────────────────────────────┤ + │ fastqc │ Local copy of module outdated │ modules/nf-core/modules/fastqc/ │ + ╰──────────────┴────────────────────────────── ┴──────────────────────────────────╯ + ╭──────────────────────╮ + │ LINT RESULTS SUMMARY │ + ├──────────────────────┤ + │ [✔] 15 Tests Passed │ + │ [!] 1 Test Warning │ + │ [✗] 0 Test Failed │ + ╰──────────────────────╯ + ``` ## Adding new modules diff --git a/modules/abricate/run/meta.yml b/modules/abricate/run/meta.yml index 2464d03e..1365bcd7 100644 --- a/modules/abricate/run/meta.yml +++ b/modules/abricate/run/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/tseemann/abricate tool_dev_url: https://github.com/tseemann/abricate doi: "" - licence: ['GPL v2', 'GPL v2'] + licence: ["GPL v2", "GPL v2"] input: - meta: diff --git a/modules/abricate/summary/meta.yml b/modules/abricate/summary/meta.yml index b02ba930..c6653b80 100644 --- a/modules/abricate/summary/meta.yml +++ b/modules/abricate/summary/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/tseemann/abricate tool_dev_url: https://github.com/tseemann/abricate doi: "" - licence: ['GPL v2', 'GPL v2'] + licence: ["GPL v2", "GPL v2"] input: - meta: diff --git a/modules/adapterremoval/meta.yml b/modules/adapterremoval/meta.yml index e395fe4a..5faad043 100644 --- a/modules/adapterremoval/meta.yml +++ b/modules/adapterremoval/meta.yml @@ -26,8 +26,7 @@ input: pattern: "*.{fq,fastq,fq.gz,fastq.gz}" - adapterlist: type: file - description: - Optional text file containing list of adapters to look for for removal + description: Optional text file containing list of adapters to look for for removal with one adapter per line. Otherwise will look for default adapters (see AdapterRemoval man page), or can be modified to remove user-specified adapters via ext.args. diff --git a/modules/amrfinderplus/run/meta.yml b/modules/amrfinderplus/run/meta.yml index b0f3b8fa..813adf3e 100644 --- a/modules/amrfinderplus/run/meta.yml +++ b/modules/amrfinderplus/run/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/ncbi/amr/wiki tool_dev_url: https://github.com/ncbi/amr doi: "10.1038/s41598-021-91456-0" - licence: ['Public Domain'] + licence: ["Public Domain"] input: - meta: diff --git a/modules/amrfinderplus/update/meta.yml b/modules/amrfinderplus/update/meta.yml index 84fee3df..0e20a92f 100644 --- a/modules/amrfinderplus/update/meta.yml +++ b/modules/amrfinderplus/update/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/ncbi/amr/wiki tool_dev_url: https://github.com/ncbi/amr doi: "10.1038/s41598-021-91456-0" - licence: ['Public Domain'] + licence: ["Public Domain"] input: - input_not_required: diff --git a/modules/ascat/meta.yml b/modules/ascat/meta.yml index b44862a1..00d86069 100644 --- a/modules/ascat/meta.yml +++ b/modules/ascat/meta.yml @@ -9,7 +9,7 @@ tools: documentation: None tool_dev_url: https://github.com/Crick-CancerGenomics/ascat doi: "10.1093/bioinformatics/btaa538" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - args: diff --git a/modules/bcftools/annotate/meta.yml b/modules/bcftools/annotate/meta.yml index 3ed124d5..afe447c1 100644 --- a/modules/bcftools/annotate/meta.yml +++ b/modules/bcftools/annotate/meta.yml @@ -12,7 +12,7 @@ tools: homepage: http://samtools.github.io/bcftools/bcftools.html documentation: https://samtools.github.io/bcftools/bcftools.html#annotate doi: 10.1093/bioinformatics/btp352 - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/biscuit/pileup/meta.yml b/modules/biscuit/pileup/meta.yml index 399e3c2f..87c3891a 100644 --- a/modules/biscuit/pileup/meta.yml +++ b/modules/biscuit/pileup/meta.yml @@ -27,9 +27,9 @@ input: - normal_bams: type: file(s) description: | - BAM files to be analyzed. If no tumor_bam file is provided, any number of "normal" BAMs may be provided - ("normal" here is just a semantic issue, these BAMs could be from tumor or any other kind of tissue). If a - tumor BAM file is provided, exactly one normal (germline) BAM must be provided. + BAM files to be analyzed. If no tumor_bam file is provided, any number of "normal" BAMs may be provided + ("normal" here is just a semantic issue, these BAMs could be from tumor or any other kind of tissue). If a + tumor BAM file is provided, exactly one normal (germline) BAM must be provided. pattern: "*.{bam}" - normal_bais: type: file(s) @@ -38,9 +38,9 @@ input: - tumor_bam: type: file(s) description: | - Optional. If a tumor BAM file is provided, pileup will run in "somatic" mode and will annotate variants with - their somatic state (present in tumor only, present in normal only, present in both, etc). Note that if a - tumor BAM file is provided, exactly one normal BAM must be provided. + Optional. If a tumor BAM file is provided, pileup will run in "somatic" mode and will annotate variants with + their somatic state (present in tumor only, present in normal only, present in both, etc). Note that if a + tumor BAM file is provided, exactly one normal BAM must be provided. pattern: "*.{bam}" - tumor_bai: type: file(s) diff --git a/modules/cellranger/README.md b/modules/cellranger/README.md index d31735cb..312fd218 100644 --- a/modules/cellranger/README.md +++ b/modules/cellranger/README.md @@ -2,23 +2,22 @@ Cell Ranger is a commercial tool from 10X Genomics. The container provided for the cellranger nf-core module is not provided nor supported by 10x Genomics. Updating the Cell Ranger versions in the container and pushing the update to Dockerhub needs to be done manually. -1. Navigate to the appropriate download page. - - [Cell Ranger](https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/latest): download the tar ball of the desired Cell Ranger version with `curl` or `wget`. Place this file in the same folder where the Dockerfile lies. +1. Navigate to the appropriate download page. - [Cell Ranger](https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/latest): download the tar ball of the desired Cell Ranger version with `curl` or `wget`. Place this file in the same folder where the Dockerfile lies. 2. Edit the Dockerfile. Update the Cell Ranger versions in this line: - ```bash - ENV CELLRANGER_VER= - ``` + ```bash + ENV CELLRANGER_VER= + ``` 3. Create and test the container: - ```bash - docker build . -t nfcore/cellranger: - ``` + ```bash + docker build . -t nfcore/cellranger: + ``` 4. Access rights are needed to push the container to the Dockerhub nfcore organization, please ask a core team member to do so. - ```bash - docker push nfcore/cellranger: - ``` + ```bash + docker push nfcore/cellranger: + ``` diff --git a/modules/cellranger/mkfastq/README.md b/modules/cellranger/mkfastq/README.md index 07c3919b..e281ded3 100644 --- a/modules/cellranger/mkfastq/README.md +++ b/modules/cellranger/mkfastq/README.md @@ -2,25 +2,23 @@ Bcl2fastq2 and Cell Ranger are commercial tools from Illumina and 10X Genomics, respectively. The container provided for the cellranger nf-core module is not provided nor supported by either Illumina or 10x Genomics. Updating the bcl2fastq2 or Cell Ranger versions in the container and pushing the update to Dockerhub needs to be done manually. -1. Navigate to the appropriate download pages. - - [bcl2fastq2](https://emea.support.illumina.com/sequencing/sequencing_software/bcl2fastq-conversion-software.html): download the linux rpm installer of the desired bcl2fastq2 version with `curl` or `wget`. Place this file in the same folder where the Dockerfile lies. - - [Cell Ranger](https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/latest): download the tar ball of the desired Cell Ranger version with `curl` or `wget`. Place this file in the same folder where the Dockerfile lies. +1. Navigate to the appropriate download pages. - [bcl2fastq2](https://emea.support.illumina.com/sequencing/sequencing_software/bcl2fastq-conversion-software.html): download the linux rpm installer of the desired bcl2fastq2 version with `curl` or `wget`. Place this file in the same folder where the Dockerfile lies. - [Cell Ranger](https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/latest): download the tar ball of the desired Cell Ranger version with `curl` or `wget`. Place this file in the same folder where the Dockerfile lies. 2. Edit the Dockerfile. Update the bcl2fastq2 and Cell Ranger versions in this line: - ```bash - ENV BCL2FASTQ2_VER= \ - CELLRANGER_VER= - ``` + ```bash + ENV BCL2FASTQ2_VER= \ + CELLRANGER_VER= + ``` 3. Create and test the container: - ```bash - docker build . -t nfcore/cellrangermkfastq: - ``` + ```bash + docker build . -t nfcore/cellrangermkfastq: + ``` 4. Access rights are needed to push the container to the Dockerhub nfcore organization, please ask a core team member to do so. - ```bash - docker push nfcore/cellrangermkfastq: - ``` + ```bash + docker push nfcore/cellrangermkfastq: + ``` diff --git a/modules/cnvpytor/callcnvs/meta.yml b/modules/cnvpytor/callcnvs/meta.yml index c153b949..edfc462a 100644 --- a/modules/cnvpytor/callcnvs/meta.yml +++ b/modules/cnvpytor/callcnvs/meta.yml @@ -8,7 +8,7 @@ tools: documentation: https://github.com/abyzovlab/CNVpytor tool_dev_url: https://github.com/abyzovlab/CNVpytor doi: "10.1101/2021.01.27.428472v1" - licence: ['MIT'] + licence: ["MIT"] input: - meta: type: map @@ -35,6 +35,5 @@ output: description: File containing software versions pattern: "versions.yml" - authors: - "@sima-r" diff --git a/modules/cnvpytor/histogram/meta.yml b/modules/cnvpytor/histogram/meta.yml index 8484ddd4..fcad2221 100644 --- a/modules/cnvpytor/histogram/meta.yml +++ b/modules/cnvpytor/histogram/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/abyzovlab/CNVpytor tool_dev_url: https://github.com/abyzovlab/CNVpytor doi: "10.1101/2021.01.27.428472v1" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/cnvpytor/importreaddepth/meta.yml b/modules/cnvpytor/importreaddepth/meta.yml index 908c3a74..1cf3c0d0 100644 --- a/modules/cnvpytor/importreaddepth/meta.yml +++ b/modules/cnvpytor/importreaddepth/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/abyzovlab/CNVpytor tool_dev_url: https://github.com/abyzovlab/CNVpytor doi: "10.1101/2021.01.27.428472v1" - licence: ['MIT'] + licence: ["MIT"] input: - meta: @@ -35,7 +35,6 @@ input: description: Index of reference fasta file pattern: "*.fai" - output: - meta: type: map diff --git a/modules/cnvpytor/partition/meta.yml b/modules/cnvpytor/partition/meta.yml index 3f0a3e21..a72cea4c 100644 --- a/modules/cnvpytor/partition/meta.yml +++ b/modules/cnvpytor/partition/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/abyzovlab/CNVpytor tool_dev_url: https://github.com/abyzovlab/CNVpytor doi: "10.1101/2021.01.27.428472v1" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/controlfreec/meta.yml b/modules/controlfreec/meta.yml index 3e218037..b2a6772b 100644 --- a/modules/controlfreec/meta.yml +++ b/modules/controlfreec/meta.yml @@ -13,7 +13,7 @@ tools: documentation: http://boevalab.inf.ethz.ch/FREEC/tutorial.html tool_dev_url: https://github.com/BoevaLab/FREEC/ doi: "10.1093/bioinformatics/btq635" - licence: ['GPL >=2'] + licence: ["GPL >=2"] input: - args: @@ -131,7 +131,6 @@ input: description: Sorted bed file containing capture regions (optional) pattern: "*.bed" - output: - meta: type: map diff --git a/modules/csvtk/split/meta.yml b/modules/csvtk/split/meta.yml index 334cc6ac..64373633 100644 --- a/modules/csvtk/split/meta.yml +++ b/modules/csvtk/split/meta.yml @@ -6,8 +6,7 @@ keywords: - tsv tools: - csvtk: - description: - CSVTK is a cross-platform, efficient and practical CSV/TSV toolkit + description: CSVTK is a cross-platform, efficient and practical CSV/TSV toolkit that allows rapid data investigation and manipulation. homepage: https://bioinf.shenwei.me/csvtk/ documentation: https://bioinf.shenwei.me/csvtk/ diff --git a/modules/deeptools/bamcoverage/meta.yml b/modules/deeptools/bamcoverage/meta.yml index d0590b2a..fb92168f 100644 --- a/modules/deeptools/bamcoverage/meta.yml +++ b/modules/deeptools/bamcoverage/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://deeptools.readthedocs.io/en/develop/content/tools/bamCoverage.html tool_dev_url: https://github.com/deeptools/deepTools/ doi: "https://doi.org/10.1093/nar/gkw257" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/faqcs/meta.yml b/modules/faqcs/meta.yml index 1161a13d..df3c2308 100644 --- a/modules/faqcs/meta.yml +++ b/modules/faqcs/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://github.com/LANL-Bioinformatics/FaQCs tool_dev_url: https://github.com/LANL-Bioinformatics/FaQCs doi: "https://doi.org/10.1186/s12859-014-0366-2" - licence: ['GPLv3 License'] + licence: ["GPLv3 License"] ## TODO nf-core: Add a description of all of the variables used as input input: diff --git a/modules/gatk4/combinegvcfs/meta.yml b/modules/gatk4/combinegvcfs/meta.yml index 2e0198dd..b891de90 100644 --- a/modules/gatk4/combinegvcfs/meta.yml +++ b/modules/gatk4/combinegvcfs/meta.yml @@ -8,14 +8,15 @@ keywords: - Short_Variant_Discovery tools: - gatk4: - description: Genome Analysis Toolkit (GATK4). Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + description: + Genome Analysis Toolkit (GATK4). Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools with a primary focus on variant discovery and genotyping. Its powerful processing engine and high-performance computing features make it capable of taking on projects of any size. homepage: https://gatk.broadinstitute.org/hc/en-us documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360037593911-CombineGVCFs tool_dev_url: https://github.com/broadinstitute/gatk doi: 10.1158/1538-7445.AM2017-3590 - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - fasta: diff --git a/modules/gatk4/fastqtosam/meta.yml b/modules/gatk4/fastqtosam/meta.yml index 0b173274..59e305b8 100644 --- a/modules/gatk4/fastqtosam/meta.yml +++ b/modules/gatk4/fastqtosam/meta.yml @@ -24,8 +24,7 @@ input: e.g. [ id:'test', single_end:false ] - reads: type: file - description: - List of input FastQ files of size 1 and 2 for single-end and paired-end data, + description: List of input FastQ files of size 1 and 2 for single-end and paired-end data, respectively. pattern: "*.fastq.gz" diff --git a/modules/gatk4/gatherpileupsummaries/meta.yml b/modules/gatk4/gatherpileupsummaries/meta.yml index 7885a930..2dc92d55 100644 --- a/modules/gatk4/gatherpileupsummaries/meta.yml +++ b/modules/gatk4/gatherpileupsummaries/meta.yml @@ -9,7 +9,7 @@ tools: documentation: https://gatk.broadinstitute.org/hc/en-us tool_dev_url: https://github.com/broadinstitute/gatk doi: "10.1158/1538-7445.AM2017-3590" - licence: ['BSD-3-clause'] + licence: ["BSD-3-clause"] input: - meta: diff --git a/modules/gatk4/getpileupsummaries/meta.yml b/modules/gatk4/getpileupsummaries/meta.yml index a70cf1e5..3a940dea 100644 --- a/modules/gatk4/getpileupsummaries/meta.yml +++ b/modules/gatk4/getpileupsummaries/meta.yml @@ -56,7 +56,6 @@ input: description: Index file for the germline resource. pattern: "*.vcf.gz.tbi" - output: - pileup: type: file diff --git a/modules/gatk4/variantrecalibrator/meta.yml b/modules/gatk4/variantrecalibrator/meta.yml index 92416a58..afe33d7a 100644 --- a/modules/gatk4/variantrecalibrator/meta.yml +++ b/modules/gatk4/variantrecalibrator/meta.yml @@ -52,11 +52,11 @@ input: - resvcfs: type: list description: resource files to be used as truth, training and known sites resources, this imports the files into the module, file names are specified again in the resource_labels to be called via the command. - pattern: '*/hapmap_3.3.hg38_chr21.vcf.gz' + pattern: "*/hapmap_3.3.hg38_chr21.vcf.gz" - restbis: type: list description: tbis for the corresponding vcfs files to be used as truth, training and known resources. - pattern: '*/hapmap_3.3.hg38_chr21.vcf.gz.tbi' + pattern: "*/hapmap_3.3.hg38_chr21.vcf.gz.tbi" - reslabels: type: list description: labels for the resource files to be used as truth, training and known sites resources, label should include an identifier,which kind of resource(s) it is, prior value and name of the file. diff --git a/modules/hamronization/deeparg/meta.yml b/modules/hamronization/deeparg/meta.yml index 0747700e..dc076d06 100644 --- a/modules/hamronization/deeparg/meta.yml +++ b/modules/hamronization/deeparg/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/pha4ge/hAMRonization/blob/master/README.md tool_dev_url: https://github.com/pha4ge/hAMRonization doi: "" - licence: ['GNU Lesser General Public v3 (LGPL v3)'] + licence: ["GNU Lesser General Public v3 (LGPL v3)"] input: - meta: diff --git a/modules/hamronization/summarize/meta.yml b/modules/hamronization/summarize/meta.yml index 7665c2c5..dabcd092 100644 --- a/modules/hamronization/summarize/meta.yml +++ b/modules/hamronization/summarize/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/pha4ge/hAMRonization/blob/master/README.md tool_dev_url: https://github.com/pha4ge/hAMRonization doi: "" - licence: ['GNU Lesser General Public v3 (LGPL v3)'] + licence: ["GNU Lesser General Public v3 (LGPL v3)"] input: - reports: diff --git a/modules/hmmer/hmmsearch/meta.yml b/modules/hmmer/hmmsearch/meta.yml index b315d668..3f4459ba 100644 --- a/modules/hmmer/hmmsearch/meta.yml +++ b/modules/hmmer/hmmsearch/meta.yml @@ -12,7 +12,7 @@ tools: documentation: http://hmmer.org/documentation.html tool_dev_url: https://github.com/EddyRivasLab/hmmer doi: "10.1371/journal.pcbi.1002195" - licence: ['BSD'] + licence: ["BSD"] input: - meta: diff --git a/modules/hpsuissero/meta.yml b/modules/hpsuissero/meta.yml index 2f48c6c3..55b5de39 100644 --- a/modules/hpsuissero/meta.yml +++ b/modules/hpsuissero/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/jimmyliu1326/HpsuisSero tool_dev_url: https://github.com/jimmyliu1326/HpsuisSero doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/ichorcna/createpon/meta.yml b/modules/ichorcna/createpon/meta.yml index ce1eca0a..77b99915 100644 --- a/modules/ichorcna/createpon/meta.yml +++ b/modules/ichorcna/createpon/meta.yml @@ -14,7 +14,7 @@ tools: documentation: https://github.com/broadinstitute/ichorCNA/wiki tool_dev_url: https://github.com/broadinstitute/ichorCNA doi: "10.1038/s41467-017-00965-y" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - wigs: diff --git a/modules/ichorcna/run/meta.yml b/modules/ichorcna/run/meta.yml index f0febddf..9b487997 100644 --- a/modules/ichorcna/run/meta.yml +++ b/modules/ichorcna/run/meta.yml @@ -13,7 +13,7 @@ tools: documentation: https://github.com/broadinstitute/ichorCNA/wiki tool_dev_url: https://github.com/broadinstitute/ichorCNA doi: "10.1038/s41467-017-00965-y" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/legsta/meta.yml b/modules/legsta/meta.yml index 24013c67..e9ca3b43 100644 --- a/modules/legsta/meta.yml +++ b/modules/legsta/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/tseemann/legsta tool_dev_url: https://github.com/tseemann/legsta doi: "" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/macs2/callpeak/meta.yml b/modules/macs2/callpeak/meta.yml index 974ea33a..982bc5b2 100644 --- a/modules/macs2/callpeak/meta.yml +++ b/modules/macs2/callpeak/meta.yml @@ -28,8 +28,7 @@ input: description: The control file - macs2_gsize: type: string - description: - Effective genome size. It can be 1.0e+9 or 1000000000, or shortcuts:'hs' for human (2.7e9), + description: Effective genome size. It can be 1.0e+9 or 1000000000, or shortcuts:'hs' for human (2.7e9), 'mm' for mouse (1.87e9), 'ce' for C. elegans (9e7) and 'dm' for fruitfly (1.2e8) output: diff --git a/modules/mafft/meta.yml b/modules/mafft/meta.yml index 10c7f0c2..66bb10b9 100644 --- a/modules/mafft/meta.yml +++ b/modules/mafft/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://mafft.cbrc.jp/alignment/software/manual/manual.html tool_dev_url: https://mafft.cbrc.jp/alignment/software/source.html doi: "10.1093/nar/gkf436" - licence: ['BSD'] + licence: ["BSD"] input: - meta: diff --git a/modules/mobsuite/recon/meta.yml b/modules/mobsuite/recon/meta.yml index b5232142..ef77e1e0 100644 --- a/modules/mobsuite/recon/meta.yml +++ b/modules/mobsuite/recon/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://github.com/phac-nml/mob-suite tool_dev_url: https://github.com/phac-nml/mob-suite doi: "10.1099/mgen.0.000435" - licence: ['Apache License, Version 2.0'] + licence: ["Apache License, Version 2.0"] input: - meta: diff --git a/modules/msisensorpro/msi_somatic/meta.yml b/modules/msisensorpro/msi_somatic/meta.yml index 09bc0e73..7caa1c1a 100644 --- a/modules/msisensorpro/msi_somatic/meta.yml +++ b/modules/msisensorpro/msi_somatic/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/xjtu-omics/msisensor-pro/wiki tool_dev_url: https://github.com/xjtu-omics/msisensor-pro doi: "doi.org/10.1016/j.gpb.2020.02.001" - licence: ['Custom Licence'] + licence: ["Custom Licence"] input: - meta: diff --git a/modules/msisensorpro/scan/meta.yml b/modules/msisensorpro/scan/meta.yml index 72c1b84b..27f5bc0f 100644 --- a/modules/msisensorpro/scan/meta.yml +++ b/modules/msisensorpro/scan/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/xjtu-omics/msisensor-pro/wiki tool_dev_url: https://github.com/xjtu-omics/msisensor-pro doi: "doi.org/10.1016/j.gpb.2020.02.001" - licence: ['Custom Licence'] + licence: ["Custom Licence"] input: - meta: diff --git a/modules/ngscheckmate/ncm/meta.yml b/modules/ngscheckmate/ncm/meta.yml index b8837b80..7f91f387 100644 --- a/modules/ngscheckmate/ncm/meta.yml +++ b/modules/ngscheckmate/ncm/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/parklab/NGSCheckMate tool_dev_url: https://github.com/parklab/NGSCheckMate doi: "doi:/10.1093/nar/gkx193" - licence: ['MIT'] + licence: ["MIT"] input: - files: diff --git a/modules/picard/addorreplacereadgroups/meta.yml b/modules/picard/addorreplacereadgroups/meta.yml index bdb5725c..e013bf4b 100644 --- a/modules/picard/addorreplacereadgroups/meta.yml +++ b/modules/picard/addorreplacereadgroups/meta.yml @@ -12,7 +12,7 @@ tools: homepage: https://broadinstitute.github.io/picard/ documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360037226472-AddOrReplaceReadGroups-Picard- tool_dev_url: https://github.com/broadinstitute/picard - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/picard/createsequencedictionary/meta.yml b/modules/picard/createsequencedictionary/meta.yml index f40a4dbc..9510c590 100644 --- a/modules/picard/createsequencedictionary/meta.yml +++ b/modules/picard/createsequencedictionary/meta.yml @@ -7,11 +7,11 @@ keywords: tools: - picard: description: | - Creates a sequence dictionary file (with ".dict" extension) from a reference sequence provided in FASTA format, which is required by many processing and analysis tools. The output file contains a header but no SAMRecords, and the header contains only sequence records. + Creates a sequence dictionary file (with ".dict" extension) from a reference sequence provided in FASTA format, which is required by many processing and analysis tools. The output file contains a header but no SAMRecords, and the header contains only sequence records. homepage: https://broadinstitute.github.io/picard/ documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360036712531-CreateSequenceDictionary-Picard- tool_dev_url: https://github.com/broadinstitute/picard - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/picard/fixmateinformation/meta.yml b/modules/picard/fixmateinformation/meta.yml index c01d803c..67dedcfa 100644 --- a/modules/picard/fixmateinformation/meta.yml +++ b/modules/picard/fixmateinformation/meta.yml @@ -10,7 +10,7 @@ tools: homepage: https://broadinstitute.github.io/picard/ documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360036713471-FixMateInformation-Picard- tool_dev_url: https://github.com/broadinstitute/picard - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/picard/sortvcf/meta.yml b/modules/picard/sortvcf/meta.yml index a2b46d5a..f75d3401 100644 --- a/modules/picard/sortvcf/meta.yml +++ b/modules/picard/sortvcf/meta.yml @@ -8,7 +8,7 @@ tools: description: Java tools for working with NGS data in the BAM/CRAM/SAM and VCF format homepage: https://broadinstitute.github.io/picard/ documentation: https://broadinstitute.github.io/picard/command-line-overview.html#SortVcf - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/plink2/score/meta.yml b/modules/plink2/score/meta.yml index 5dad6259..be5fdbee 100644 --- a/modules/plink2/score/meta.yml +++ b/modules/plink2/score/meta.yml @@ -6,13 +6,13 @@ keywords: tools: - plink2: description: | - Whole genome association analysis toolset, designed to perform a range - of basic, large-scale analyses in a computationally efficient manner + Whole genome association analysis toolset, designed to perform a range + of basic, large-scale analyses in a computationally efficient manner homepage: http://www.cog-genomics.org/plink/2.0/ documentation: http://www.cog-genomics.org/plink/2.0/general_usage tool_dev_url: None doi: "10.1186/s13742-015-0047-8" - licence: ['GPL v3'] + licence: ["GPL v3"] input: - meta: diff --git a/modules/rgi/main/meta.yml b/modules/rgi/main/meta.yml index cd97ff92..1f0cb10d 100644 --- a/modules/rgi/main/meta.yml +++ b/modules/rgi/main/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/arpcard/rgi tool_dev_url: https://github.com/arpcard/rgi doi: "10.1093/nar/gkz935" - licence: ['https://card.mcmaster.ca/about'] + licence: ["https://card.mcmaster.ca/about"] input: - meta: diff --git a/modules/rsem/calculateexpression/meta.yml b/modules/rsem/calculateexpression/meta.yml index 10b54b49..8b89c7d1 100644 --- a/modules/rsem/calculateexpression/meta.yml +++ b/modules/rsem/calculateexpression/meta.yml @@ -11,7 +11,7 @@ tools: homepage: https://github.com/deweylab/RSEM documentation: https://github.com/deweylab/RSEM doi: https://doi.org/10.1186/1471-2105-12-323 - licence: ['GPL-3.0-or-later'] + licence: ["GPL-3.0-or-later"] input: - meta: type: map diff --git a/modules/seqkit/pair/meta.yml b/modules/seqkit/pair/meta.yml index 3b35d908..955cfbf2 100644 --- a/modules/seqkit/pair/meta.yml +++ b/modules/seqkit/pair/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://bioinf.shenwei.me/seqkit/usage/ tool_dev_url: https://github.com/shenwei356/seqkit/ doi: "10.1371/journal.pone.0163962" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/seqtk/rename/meta.yml b/modules/seqtk/rename/meta.yml index b68dec8e..7672983c 100644 --- a/modules/seqtk/rename/meta.yml +++ b/modules/seqtk/rename/meta.yml @@ -8,7 +8,7 @@ tools: homepage: https://github.com/lh3/seqtk documentation: https://docs.csc.fi/apps/seqtk/ tool_dev_url: https://github.com/lh3/seqtk - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/seqtk/seq/meta.yml b/modules/seqtk/seq/meta.yml index ac32162b..3986257a 100644 --- a/modules/seqtk/seq/meta.yml +++ b/modules/seqtk/seq/meta.yml @@ -8,7 +8,7 @@ tools: homepage: https://github.com/lh3/seqtk documentation: https://docs.csc.fi/apps/seqtk/ tool_dev_url: https://github.com/lh3/seqtk - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/sistr/meta.yml b/modules/sistr/meta.yml index 5ce43334..db8399f6 100644 --- a/modules/sistr/meta.yml +++ b/modules/sistr/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/phac-nml/sistr_cmd tool_dev_url: https://github.com/phac-nml/sistr_cmd doi: "10.1371/journal.pone.0147101" - licence: ['Apache-2.0'] + licence: ["Apache-2.0"] input: - meta: diff --git a/modules/sourmash/sketch/meta.yml b/modules/sourmash/sketch/meta.yml index 9fb552bc..083774b5 100644 --- a/modules/sourmash/sketch/meta.yml +++ b/modules/sourmash/sketch/meta.yml @@ -10,7 +10,7 @@ tools: documentation: https://sourmash.readthedocs.io/ tool_dev_url: https://github.com/dib-lab/sourmash doi: "10.1186/s13059-016-0997-x" - licence: ['BSD-3-clause'] + licence: ["BSD-3-clause"] input: - meta: diff --git a/modules/ssuissero/meta.yml b/modules/ssuissero/meta.yml index 2c0031e6..8418e049 100644 --- a/modules/ssuissero/meta.yml +++ b/modules/ssuissero/meta.yml @@ -11,7 +11,7 @@ tools: documentation: https://github.com/jimmyliu1326/SsuisSero tool_dev_url: https://github.com/jimmyliu1326/SsuisSero doi: "" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/stranger/meta.yml b/modules/stranger/meta.yml index a9a280ad..61ebc7a9 100644 --- a/modules/stranger/meta.yml +++ b/modules/stranger/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://github.com/moonso/stranger tool_dev_url: https://github.com/moonso/stranger doi: "10.5281/zenodo.4548873" - licence: ['MIT'] + licence: ["MIT"] input: - meta: diff --git a/modules/yara/index/meta.yml b/modules/yara/index/meta.yml index bdd6bf9a..bfc74f0a 100644 --- a/modules/yara/index/meta.yml +++ b/modules/yara/index/meta.yml @@ -13,10 +13,7 @@ tools: documentation: https://github.com/seqan/seqan tool_dev_url: https://github.com/seqan/seqan doi: "" - licence: - [ - "https://raw.githubusercontent.com/seqan/seqan/develop/apps/yara/LICENSE", - ] + licence: ["https://raw.githubusercontent.com/seqan/seqan/develop/apps/yara/LICENSE"] input: - fasta: diff --git a/modules/yara/mapper/meta.yml b/modules/yara/mapper/meta.yml index 188e1d52..0c4c0d43 100644 --- a/modules/yara/mapper/meta.yml +++ b/modules/yara/mapper/meta.yml @@ -11,10 +11,7 @@ tools: documentation: https://github.com/seqan/seqan tool_dev_url: https://github.com/seqan/seqan doi: "" - licence: - [ - "https://raw.githubusercontent.com/seqan/seqan/develop/apps/yara/LICENSE", - ] + licence: ["https://raw.githubusercontent.com/seqan/seqan/develop/apps/yara/LICENSE"] input: - meta: diff --git a/tests/modules/gatk4/combinegvcfs/test.yml b/tests/modules/gatk4/combinegvcfs/test.yml index 72d8a6a5..54948668 100644 --- a/tests/modules/gatk4/combinegvcfs/test.yml +++ b/tests/modules/gatk4/combinegvcfs/test.yml @@ -5,6 +5,6 @@ - gatk4/combinegvcfs files: - path: output/gatk4/test.combined.g.vcf.gz - contains: ['VCFv4.2'] + contains: ["VCFv4.2"] - path: output/gatk4/versions.yml md5sum: 49d9c467f84b6a99a4da3ef161af26bd diff --git a/tests/modules/gatk4/genotypegvcfs/test.yml b/tests/modules/gatk4/genotypegvcfs/test.yml index a49673fd..dff79460 100644 --- a/tests/modules/gatk4/genotypegvcfs/test.yml +++ b/tests/modules/gatk4/genotypegvcfs/test.yml @@ -57,10 +57,7 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: - [ - "AC=2;AF=1.00;AN=2;DB;DP=20;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.00;QD=24.05;SOR=0.693", - ] + contains: ["AC=2;AF=1.00;AN=2;DB;DP=20;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.00;QD=24.05;SOR=0.693"] - path: output/gatk4/test.genotyped.vcf.gz.tbi - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gendb_input @@ -109,8 +106,5 @@ - gatk4/genotypegvcfs files: - path: output/gatk4/test.genotyped.vcf.gz - contains: - [ - "AC=2;AF=1.00;AN=2;DP=2;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;QD=18.66;SOR=0.693", - ] + contains: ["AC=2;AF=1.00;AN=2;DP=2;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;QD=18.66;SOR=0.693"] - path: output/gatk4/test.genotyped.vcf.gz.tbi diff --git a/tests/modules/hmmer/hmmsearch/test.yml b/tests/modules/hmmer/hmmsearch/test.yml index 91e4775c..dd3e16ef 100644 --- a/tests/modules/hmmer/hmmsearch/test.yml +++ b/tests/modules/hmmer/hmmsearch/test.yml @@ -6,7 +6,7 @@ files: - path: output/hmmer/test.txt.gz contains: - - '[ok]' + - "[ok]" - path: output/hmmer/versions.yml md5sum: ed0808c10abd205c6bd0fb01f45259bb @@ -20,12 +20,12 @@ md5sum: d3121aa33455074c566fb7f8fdcda7b0 - path: output/hmmer/test.domtbl.gz contains: - - '# [ok]' + - "# [ok]" - path: output/hmmer/test.tbl.gz contains: - - '# [ok]' + - "# [ok]" - path: output/hmmer/test.txt.gz contains: - - '[ok]' + - "[ok]" - path: output/hmmer/versions.yml md5sum: ebdcb08ae540e840f7b5c4c75a3a2993 diff --git a/tests/modules/ichorcna/createpon/test.yml b/tests/modules/ichorcna/createpon/test.yml index 53422b78..c8fe63c8 100644 --- a/tests/modules/ichorcna/createpon/test.yml +++ b/tests/modules/ichorcna/createpon/test.yml @@ -5,7 +5,7 @@ - ichorcna files: - path: output/ichorcna/PoN_median.txt - contains: ['seqnames'] + contains: ["seqnames"] - path: output/ichorcna/versions.yml md5sum: 59a2121301113cc013bfae65935e07f1 @@ -16,6 +16,6 @@ - ichorcna files: - path: output/ichorcna/PoN_median.txt - contains: ['seqnames'] + contains: ["seqnames"] - path: output/ichorcna/versions.yml md5sum: 31a5fcc0075dbe747f7736efbdb99644 diff --git a/tests/modules/ichorcna/run/test.yml b/tests/modules/ichorcna/run/test.yml index af78e4b3..4be83774 100644 --- a/tests/modules/ichorcna/run/test.yml +++ b/tests/modules/ichorcna/run/test.yml @@ -5,7 +5,7 @@ - ichorcna/run files: - path: output/ichorcna/test.cna.seg - contains: ['Corrected_Copy_Number'] + contains: ["Corrected_Copy_Number"] - path: output/ichorcna/test.params.txt md5sum: e39a579cdcc9576679f06dc5c22605a7 - path: output/ichorcna/versions.yml @@ -18,7 +18,7 @@ - ichorcna/run files: - path: output/ichorcna/test.cna.seg - contains: ['Corrected_Copy_Number'] + contains: ["Corrected_Copy_Number"] - path: output/ichorcna/test.params.txt md5sum: 0b97e0269cd0b571f5a85890f6ddb181 - path: output/ichorcna/versions.yml diff --git a/tests/modules/picard/createsequencedictionary/test.yml b/tests/modules/picard/createsequencedictionary/test.yml index 3c9d0e7e..2a43be41 100644 --- a/tests/modules/picard/createsequencedictionary/test.yml +++ b/tests/modules/picard/createsequencedictionary/test.yml @@ -5,6 +5,6 @@ - picard files: - path: output/picard/test.dict - contains: ['SN:MT192765.1'] + contains: ["SN:MT192765.1"] - path: output/picard/versions.yml md5sum: b3d8c7ea65b8a6d3237b153d13fe2014 diff --git a/tests/modules/roary/test.yml b/tests/modules/roary/test.yml index 11bdf2c7..d844a430 100644 --- a/tests/modules/roary/test.yml +++ b/tests/modules/roary/test.yml @@ -26,10 +26,7 @@ - path: output/roary/results/gene_presence_absence.Rtab contains: ["Gene"] - path: output/roary/results/gene_presence_absence.csv - contains: - [ - '"Gene","Non-unique Gene name","Annotation","No. isolates","No. sequences"', - ] + contains: ['"Gene","Non-unique Gene name","Annotation","No. isolates","No. sequences"'] - path: output/roary/results/number_of_conserved_genes.Rtab contains: ["279"] - path: output/roary/results/number_of_genes_in_pan_genome.Rtab From ea41a8a6f761b9993d857570e872abaae3fea555 Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Fri, 18 Mar 2022 15:39:27 +0100 Subject: [PATCH 100/592] Add centrifuge module (#1410) * Add centrifuge module * Add centrifuge module * Add centrifuge module * Add centrifuge module --- modules/centrifuge/main.nf | 63 ++++++++++++++++++++ modules/centrifuge/meta.yml | 73 ++++++++++++++++++++++++ tests/config/pytest_modules.yml | 12 ++-- tests/modules/centrifuge/main.nf | 33 +++++++++++ tests/modules/centrifuge/nextflow.config | 5 ++ tests/modules/centrifuge/test.yml | 22 +++++++ 6 files changed, 204 insertions(+), 4 deletions(-) create mode 100644 modules/centrifuge/main.nf create mode 100644 modules/centrifuge/meta.yml create mode 100644 tests/modules/centrifuge/main.nf create mode 100644 tests/modules/centrifuge/nextflow.config create mode 100644 tests/modules/centrifuge/test.yml diff --git a/modules/centrifuge/main.nf b/modules/centrifuge/main.nf new file mode 100644 index 00000000..7eb566da --- /dev/null +++ b/modules/centrifuge/main.nf @@ -0,0 +1,63 @@ +process CENTRIFUGE { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::centrifuge=1.0.4_beta" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/centrifuge:1.0.4_beta--h9a82719_6' : + 'quay.io/biocontainers/centrifuge:1.0.4_beta--h9a82719_6' }" + + input: + tuple val(meta), path(reads) + path db + val save_unaligned + val save_aligned + val sam_format + + output: + tuple val(meta), path('*report.txt') , emit: report + tuple val(meta), path('*results.txt') , emit: results + tuple val(meta), path('*kreport.txt') , emit: kreport + tuple val(meta), path('*.sam') , optional: true, emit: sam + tuple val(meta), path('*.mapped.fastq{,.1,.2}.gz') , optional: true, emit: fastq_mapped + tuple val(meta), path('*.unmapped.fastq{,.1,.2}.gz') , optional: true, emit: fastq_unmapped + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def paired = meta.single_end ? "-U ${reads}" : "-1 ${reads[0]} -2 ${reads[1]}" + def db_name = db.toString().replace(".tar.gz","") + def unaligned = '' + def aligned = '' + if (meta.single_end) { + unaligned = save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : '' + aligned = save_aligned ? "--al-gz ${prefix}.mapped.fastq.gz" : '' + } else { + unaligned = save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : '' + aligned = save_aligned ? "--al-conc-gz ${prefix}.mapped.fastq.gz" : '' + } + def sam_output = sam_format ? "--out-fmt 'sam'" : '' + """ + tar -xf $db + centrifuge \\ + -x $db_name \\ + -p $task.cpus \\ + $paired \\ + --report-file ${prefix}.report.txt \\ + -S ${prefix}.results.txt \\ + $unaligned \\ + $aligned \\ + $sam_output \\ + $args + centrifuge-kreport -x $db_name ${prefix}.results.txt > ${prefix}.kreport.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + centrifuge: \$( centrifuge --version | sed -n 1p | sed 's/^.*centrifuge-class version //') + END_VERSIONS + """ +} diff --git a/modules/centrifuge/meta.yml b/modules/centrifuge/meta.yml new file mode 100644 index 00000000..3adf0e23 --- /dev/null +++ b/modules/centrifuge/meta.yml @@ -0,0 +1,73 @@ +name: centrifuge +description: Classifies metagenomic sequence data +keywords: + - classify + - metagenomics + - fastq + - db +tools: + - centrifuge: + description: Centrifuge is a classifier for metagenomic sequences. + homepage: https://ccb.jhu.edu/software/centrifuge/ + documentation: https://ccb.jhu.edu/software/centrifuge/manual.shtml + doi: 10.1101/gr.210641.116 + licence: ["GPL v3"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - db: + type: directory + description: Centrifuge database in .tar.gz format + pattern: "*.tar.gz" + - save_unaligned: + type: value + description: If true unmapped fastq files are saved + - save_aligned: + type: value + description: If true mapped fastq files are saved +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - report: + type: file + description: | + File containing a classification summary + pattern: "*.{report.txt}" + - results: + type: file + description: | + File containing classification results + pattern: "*.{results.txt}" + - kreport: + type: file + description: | + File containing kraken-style report from centrifuge + out files. + pattern: "*.{kreport.txt}" + - fastq_unmapped: + type: file + description: Unmapped fastq files + pattern: "*.unmapped.fastq.gz" + - fastq_mapped: + type: file + description: Mapped fastq files + pattern: "*.mapped.fastq.gz" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@sofstam" + - "@jfy133" + - "@sateeshperi" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 48c3bb7d..ea17ce2e 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -202,6 +202,10 @@ bedtools/subtract: - modules/bedtools/subtract/** - tests/modules/bedtools/subtract/** +biobambam/bammarkduplicates2: + - modules/biobambam/bammarkduplicates2/** + - tests/modules/biobambam/bammarkduplicates2/** + biscuit/align: - modules/biscuit/index/** - modules/biscuit/align/** @@ -245,10 +249,6 @@ biscuit/vcf2bed: - modules/biscuit/vcf2bed/** - tests/modules/biscuit/vcf2bed/** -biobambam/bammarkduplicates2: - - modules/biobambam/bammarkduplicates2/** - - tests/modules/biobambam/bammarkduplicates2/** - bismark/align: - modules/bismark/align/** - modules/bismark/genomepreparation/** @@ -379,6 +379,10 @@ cellranger/mkref: - modules/cellranger/gtf/** - tests/modules/cellranger/gtf/** +centrifuge: + - modules/centrifuge/** + - tests/modules/centrifuge/** + checkm/lineagewf: - modules/checkm/lineagewf/** - tests/modules/checkm/lineagewf/** diff --git a/tests/modules/centrifuge/main.nf b/tests/modules/centrifuge/main.nf new file mode 100644 index 00000000..a8eb2fcb --- /dev/null +++ b/tests/modules/centrifuge/main.nf @@ -0,0 +1,33 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CENTRIFUGE } from '../../../modules/centrifuge/main.nf' + +workflow test_centrifuge_single_end { + input = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + db = file("https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz", checkIfExists: true) + save_unaligned = true + save_aligned = false + sam_format = false + + CENTRIFUGE ( input, db, save_unaligned, save_aligned, sam_format ) + +} + +workflow test_centrifuge_paired_end { + input = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + db = file("https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz", checkIfExists: true) + save_unaligned = true + save_aligned = false + sam_format = false + + CENTRIFUGE ( input, db, save_unaligned, save_aligned, sam_format ) + + +} diff --git a/tests/modules/centrifuge/nextflow.config b/tests/modules/centrifuge/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/centrifuge/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/centrifuge/test.yml b/tests/modules/centrifuge/test.yml new file mode 100644 index 00000000..a7b4360b --- /dev/null +++ b/tests/modules/centrifuge/test.yml @@ -0,0 +1,22 @@ +- name: centrifuge test_centrifuge_single_end + command: nextflow run tests/modules/centrifuge -entry test_centrifuge_single_end -c tests/config/nextflow.config + tags: + - centrifuge + files: + - path: output/centrifuge/test.kreport.txt + - path: output/centrifuge/test.report.txt + - path: output/centrifuge/test.results.txt + - path: output/centrifuge/test.unmapped.fastq.gz + - path: output/centrifuge/versions.yml + +- name: centrifuge test_centrifuge_paired_end + command: nextflow run tests/modules/centrifuge -entry test_centrifuge_paired_end -c tests/config/nextflow.config + tags: + - centrifuge + files: + - path: output/centrifuge/test.kreport.txt + - path: output/centrifuge/test.report.txt + - path: output/centrifuge/test.results.txt + - path: output/centrifuge/test.unmapped.fastq.1.gz + - path: output/centrifuge/test.unmapped.fastq.2.gz + - path: output/centrifuge/versions.yml From 15c7190e2271de7ff347940460a484f69e27a106 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Fri, 18 Mar 2022 16:21:55 +0100 Subject: [PATCH 101/592] Deeparg singularity container fix 2 (#1406) * fix: remove left-over unnecessary code * Switch to more portable solution for singularity container issue by using bind paths * Fix input collision of dummy files * Repalce dummy with which bash * Remove dummy usage from tests * Apply suggestions from code review * Fix singularity typo --- modules/deeparg/downloaddata/main.nf | 6 +++--- modules/deeparg/downloaddata/meta.yml | 2 +- modules/deeparg/predict/main.nf | 8 ++++---- tests/modules/deeparg/downloaddata/main.nf | 2 +- tests/modules/deeparg/predict/main.nf | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/deeparg/downloaddata/main.nf b/modules/deeparg/downloaddata/main.nf index 78208d21..4e007f14 100644 --- a/modules/deeparg/downloaddata/main.nf +++ b/modules/deeparg/downloaddata/main.nf @@ -8,10 +8,10 @@ process DEEPARG_DOWNLOADDATA { 'https://depot.galaxyproject.org/singularity/deeparg:1.0.2--pyhdfd78af_1' : 'quay.io/biocontainers/deeparg:1.0.2--pyhdfd78af_1' }" /* - We have to force singularity to run with --fakeroot to allow reading of a problematic file with borked read-write permissions in an upstream dependency (theanos). - This flag may not be available on all systems and may be considered a security problem. so please document and /or warn for this in your pipeline! + We have to force singularity to run with -B to allow reading of a problematic file with borked read-write permissions in an upstream dependency (theanos). + Original report: https://github.com/nf-core/funcscan/issues/23 */ - containerOptions { "${workflow.containerEngine}" == 'singularity' ? '--fakeroot' : '' } + containerOptions { "${workflow.containerEngine}" == 'singularity' ? '-B $(which bash):/usr/local/lib/python2.7/site-packages/Theano-0.8.2-py2.7.egg-info/PKG-INFO' : '' } input: diff --git a/modules/deeparg/downloaddata/meta.yml b/modules/deeparg/downloaddata/meta.yml index 352999e2..b6b1881e 100644 --- a/modules/deeparg/downloaddata/meta.yml +++ b/modules/deeparg/downloaddata/meta.yml @@ -17,7 +17,7 @@ tools: licence: ["MIT"] input: - - none: There is no input. This module downloads a pre-built database for use with deepARG. + - none: No input required for download module. output: - versions: diff --git a/modules/deeparg/predict/main.nf b/modules/deeparg/predict/main.nf index 05cee2f8..7bb4f935 100644 --- a/modules/deeparg/predict/main.nf +++ b/modules/deeparg/predict/main.nf @@ -6,13 +6,13 @@ process DEEPARG_PREDICT { conda (params.enable_conda ? "bioconda::deeparg=1.0.2" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity//deeparg:1.0.2--pyhdfd78af_1' : + 'https://depot.galaxyproject.org/singularity/deeparg:1.0.2--pyhdfd78af_1' : 'quay.io/biocontainers/deeparg:1.0.2--pyhdfd78af_1' }" /* - We have to force singularity to run with --fakeroot to allow reading of a problematic file with borked read-write permissions in an upstream dependency (theanos). - This flag may not be available on all systems and may be considered a security problem. so please document and /or warn for this in your pipeline! + We have to force singularity to run with -B to allow reading of a problematic file with borked read-write permissions in an upstream dependency (theanos). + Original report: https://github.com/nf-core/funcscan/issues/23 */ - containerOptions { "${workflow.containerEngine}" == 'singularity' ? '--fakeroot' : '' } + containerOptions { "${workflow.containerEngine}" == 'singularity' ? '-B $(which bash):/usr/local/lib/python2.7/site-packages/Theano-0.8.2-py2.7.egg-info/PKG-INFO' : '' } input: tuple val(meta), path(fasta), val(model) diff --git a/tests/modules/deeparg/downloaddata/main.nf b/tests/modules/deeparg/downloaddata/main.nf index ed2d48bb..1074b0bc 100644 --- a/tests/modules/deeparg/downloaddata/main.nf +++ b/tests/modules/deeparg/downloaddata/main.nf @@ -5,5 +5,5 @@ nextflow.enable.dsl = 2 include { DEEPARG_DOWNLOADDATA } from '../../../../modules/deeparg/downloaddata/main.nf' workflow test_deeparg_downloaddata { - DEEPARG_DOWNLOADDATA () + DEEPARG_DOWNLOADDATA ( ) } diff --git a/tests/modules/deeparg/predict/main.nf b/tests/modules/deeparg/predict/main.nf index 2758ab58..2ada2374 100644 --- a/tests/modules/deeparg/predict/main.nf +++ b/tests/modules/deeparg/predict/main.nf @@ -13,7 +13,7 @@ workflow test_deeparg_predict { 'LS' ] - DEEPARG_DOWNLOADDATA() + DEEPARG_DOWNLOADDATA( ) DEEPARG_PREDICT ( input, DEEPARG_DOWNLOADDATA.out.db ) } From f425aa3cea10015fe9b345b9d6dcc2336b53155f Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Fri, 18 Mar 2022 20:21:41 +0000 Subject: [PATCH 102/592] Add outputs for umitools dedup summary stats (#1422) --- modules/umitools/dedup/main.nf | 13 +++++++++---- modules/umitools/dedup/meta.yml | 12 ++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/modules/umitools/dedup/main.nf b/modules/umitools/dedup/main.nf index 1e46a612..dfcbcf2f 100644 --- a/modules/umitools/dedup/main.nf +++ b/modules/umitools/dedup/main.nf @@ -11,8 +11,11 @@ process UMITOOLS_DEDUP { tuple val(meta), path(bam), path(bai) output: - tuple val(meta), path("*.bam"), emit: bam - path "versions.yml" , emit: versions + tuple val(meta), path("*.bam") , emit: bam + tuple val(meta), path("*edit_distance.tsv"), emit: tsv_edit_distance + tuple val(meta), path("*per_umi.tsv") , emit: tsv_per_umi + tuple val(meta), path("*per_position.tsv") , emit: tsv_umi_per_position + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -20,11 +23,13 @@ process UMITOOLS_DEDUP { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def paired = meta.single_end ? "" : "--paired" + def paired = meta.single_end ? "" : "--paired" """ - umi_tools dedup \\ + umi_tools \\ + dedup \\ -I $bam \\ -S ${prefix}.bam \\ + --output-stats $prefix \\ $paired \\ $args diff --git a/modules/umitools/dedup/meta.yml b/modules/umitools/dedup/meta.yml index 2038b40d..eee8952f 100644 --- a/modules/umitools/dedup/meta.yml +++ b/modules/umitools/dedup/meta.yml @@ -36,6 +36,18 @@ output: type: file description: BAM file with deduplicated UMIs. pattern: "*.{bam}" + - tsv_edit_distance: + type: file + description: Reports the (binned) average edit distance between the UMIs at each position. + pattern: "*edit_distance.tsv" + - tsv_per_umi: + type: file + description: UMI-level summary statistics. + pattern: "*per_umi.tsv" + - tsv_umi_per_position: + type: file + description: Tabulates the counts for unique combinations of UMI and position. + pattern: "*per_position.tsv" - versions: type: file description: File containing software versions From 16096aba179d979f3b98bb412dea6542c14465ee Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Sat, 19 Mar 2022 09:06:21 -0600 Subject: [PATCH 103/592] Update test.yml (#1419) --- tests/modules/roary/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/modules/roary/test.yml b/tests/modules/roary/test.yml index d844a430..b6f02593 100644 --- a/tests/modules/roary/test.yml +++ b/tests/modules/roary/test.yml @@ -28,12 +28,12 @@ - path: output/roary/results/gene_presence_absence.csv contains: ['"Gene","Non-unique Gene name","Annotation","No. isolates","No. sequences"'] - path: output/roary/results/number_of_conserved_genes.Rtab - contains: ["279"] + contains: ["2"] - path: output/roary/results/number_of_genes_in_pan_genome.Rtab - contains: ["279"] + contains: ["2"] - path: output/roary/results/number_of_new_genes.Rtab - contains: ["279"] + contains: ["2"] - path: output/roary/results/number_of_unique_genes.Rtab - contains: ["279"] + contains: ["2"] - path: output/roary/results/summary_statistics.txt md5sum: 3921b5445df6a7ed59408119b8860a58 From e69a4ce4ed0e3c858f112ffe70951eedf253a3e6 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Sat, 19 Mar 2022 19:38:37 +0100 Subject: [PATCH 104/592] Add pytest.ini (#1401) --- pytest.ini | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 pytest.ini diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 00000000..02a8acac --- /dev/null +++ b/pytest.ini @@ -0,0 +1,3 @@ +[pytest] +filterwarnings = + ignore::pytest.PytestRemovedIn8Warning:_pytest.nodes:140 From 5297d27fbf50b7aa5a37cce9b85c7aac3ff7c4ff Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Mon, 21 Mar 2022 10:39:34 +0100 Subject: [PATCH 105/592] update svdb to version 2.5.2 (#1390) * update svdb version and tests * update link --- modules/svdb/merge/main.nf | 6 +-- modules/svdb/query/main.nf | 55 ++++++++++++++++++++---- modules/svdb/query/meta.yml | 14 +++++- tests/config/test_data.config | 1 + tests/modules/svdb/query/main.nf | 26 ++++++++++- tests/modules/svdb/query/nextflow.config | 4 -- tests/modules/svdb/query/test.yml | 10 ++++- 7 files changed, 97 insertions(+), 19 deletions(-) diff --git a/modules/svdb/merge/main.nf b/modules/svdb/merge/main.nf index 505e2c0b..58aef652 100644 --- a/modules/svdb/merge/main.nf +++ b/modules/svdb/merge/main.nf @@ -2,10 +2,10 @@ process SVDB_MERGE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::svdb=2.5.0" : null) + conda (params.enable_conda ? "bioconda::svdb=2.5.2" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/svdb:2.5.0--py39hcbe4a3b_0': - 'quay.io/biocontainers/svdb:2.5.0--py39hcbe4a3b_0' }" + 'https://depot.galaxyproject.org/singularity/svdb:2.5.2--py39h5371cbf_0': + 'quay.io/biocontainers/svdb:2.5.2--py39h5371cbf_0' }" input: tuple val(meta), path(vcfs) diff --git a/modules/svdb/query/main.nf b/modules/svdb/query/main.nf index 292fe4ce..37ce432c 100644 --- a/modules/svdb/query/main.nf +++ b/modules/svdb/query/main.nf @@ -2,36 +2,73 @@ process SVDB_QUERY { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::svdb=2.5.0" : null) + conda (params.enable_conda ? "bioconda::svdb=2.5.2" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/svdb:2.5.0--py39hcbe4a3b_0': - 'quay.io/biocontainers/svdb:2.5.0--py39hcbe4a3b_0' }" + 'https://depot.galaxyproject.org/singularity/svdb:2.5.2--py39h5371cbf_0': + 'quay.io/biocontainers/svdb:2.5.2--py39h5371cbf_0' }" input: tuple val(meta), path(vcf) - path (vcf_db) + val(in_occs) + val(in_frqs) + val(out_occs) + val(out_frqs) + path (vcf_dbs) output: - tuple val(meta), path("*_ann_svdbq.vcf"), emit: vcf + tuple val(meta), path("*_query.vcf"), emit: vcf path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def in_occ = "" + def in_frq = "" + def out_occ = "" + def out_frq = "" + if (in_occs) { + in_occ = "--in_occ ${in_occs.join(',')}" + } + if (in_frqs) { + in_frq = "--in_frq ${in_frqs.join(',')}" + } + if (out_occs) { + out_occ = "--out_occ ${out_occs.join(',')}" + } + if (out_frqs) { + out_frq = "--out_frq ${out_frqs.join(',')}" + } + """ svdb \\ --query \\ + $in_occ \\ + $in_frq \\ + $out_occ \\ + $out_frq \\ $args \\ - --db $vcf_db \\ + --db ${vcf_dbs.join(',')} \\ --query_vcf $vcf \\ - >${prefix}_ann_svdbq.vcf + --prefix ${prefix} cat <<-END_VERSIONS > versions.yml "${task.process}": svdb: \$( echo \$(svdb) | head -1 | sed 's/usage: SVDB-\\([0-9]\\.[0-9]\\.[0-9]\\).*/\\1/' ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}_query.vcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + svdb: \$( echo \$(svdb) | head -1 | sed 's/usage: SVDB-\\([0-9]\\.[0-9]\\.[0-9]\\).*/\\1/' ) + END_VERSIONS + """ + } diff --git a/modules/svdb/query/meta.yml b/modules/svdb/query/meta.yml index e2a9e456..57e67e15 100644 --- a/modules/svdb/query/meta.yml +++ b/modules/svdb/query/meta.yml @@ -15,6 +15,12 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - in_occs: + type: list + description: A list of allele count tags + - in_frqs: + type: list + description: A list of allele frequency tags - vcf: type: file description: query vcf file @@ -34,10 +40,16 @@ output: type: file description: File containing software versions pattern: "versions.yml" + - out_occs: + type: list + description: A list of allele count tags + - out_frqs: + type: list + description: A list of allele frequency tags - vcf: type: file description: Annotated output VCF file - pattern: "*_ann_svdbq.vcf" + pattern: "*_query.vcf" authors: - "@ramprasadn" diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 0d61d1e9..45732f47 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -140,6 +140,7 @@ params { syntheticvcf_short_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/syntheticvcf_short.vcf.gz.tbi" syntheticvcf_short_score = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/syntheticvcf_short.score" gnomad_r2_1_1_sv_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/gnomAD.r2.1.1-sv.vcf.gz" + gnomad2_r2_1_1_sv_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/gnomAD2.r2.1.1-sv.vcf.gz" hapmap_3_3_hg38_21_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/germlineresources/hapmap_3.3.hg38.vcf.gz" hapmap_3_3_hg38_21_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/germlineresources/hapmap_3.3.hg38.vcf.gz.tbi" diff --git a/tests/modules/svdb/query/main.nf b/tests/modules/svdb/query/main.nf index 972f99e1..c014320f 100644 --- a/tests/modules/svdb/query/main.nf +++ b/tests/modules/svdb/query/main.nf @@ -14,5 +14,29 @@ workflow test_svdb_query { file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_sv_vcf_gz'], checkIfExists: true) ] - SVDB_QUERY ( input, vcf_db ) + in_occs = ['AC'] + in_frqs = ['AF'] + out_occs = ['gnomad_svAC'] + out_frqs = ['gnomad_svAF'] + + SVDB_QUERY ( input, in_occs, in_frqs, out_occs, out_frqs, vcf_db ) +} + +workflow test_svdb_query_multiple { + + input = [ [ id:'test' ], // meta map + [ file(params.test_data['homo_sapiens']['illumina']['test_sv_vcf'], checkIfExists: true) ] + ] + + vcf_db = [ + file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_sv_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['gnomad2_r2_1_1_sv_vcf_gz'], checkIfExists: true) + ] + + in_occs = ['AC','AC'] + in_frqs = ['AF','AF'] + out_occs = ['gnomad_svAC','gnomad_svAC'] + out_frqs = ['gnomad_svAF','gnomad_svAF'] + + SVDB_QUERY ( input, in_occs, in_frqs, out_occs, out_frqs, vcf_db ) } diff --git a/tests/modules/svdb/query/nextflow.config b/tests/modules/svdb/query/nextflow.config index 2a6c9d90..8730f1c4 100644 --- a/tests/modules/svdb/query/nextflow.config +++ b/tests/modules/svdb/query/nextflow.config @@ -2,8 +2,4 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: SVDB_QUERY { - ext.args = '--in_occ AC --out_occ gnomad_svAC --in_frq AF --out_frq gnomad_svAF' - } - } diff --git a/tests/modules/svdb/query/test.yml b/tests/modules/svdb/query/test.yml index b95ecafe..a7cbe3a6 100644 --- a/tests/modules/svdb/query/test.yml +++ b/tests/modules/svdb/query/test.yml @@ -4,4 +4,12 @@ - svdb - svdb/query files: - - path: output/svdb/test_ann_svdbq.vcf + - path: output/svdb/test_query.vcf + +- name: svdb query multiple + command: nextflow run ./tests/modules/svdb/query -entry test_svdb_query_multiple -c ./tests/config/nextflow.config -c ./tests/modules/svdb/query/nextflow.config + tags: + - svdb + - svdb/query + files: + - path: output/svdb/test_query.vcf From 8c0089785381249a38a6b2feb02c41beb314a8fa Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 21 Mar 2022 11:26:12 +0100 Subject: [PATCH 106/592] Add AdapterRemovalFixPrefix (#1424) * Add AdapterRemovalFixPrefix * Prettifying Co-authored-by: Alexander Peltzer --- modules/adapterremovalfixprefix/main.nf | 38 ++++++++++++++++ modules/adapterremovalfixprefix/meta.yml | 43 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/adapterremovalfixprefix/main.nf | 19 ++++++++ .../adapterremovalfixprefix/nextflow.config | 9 ++++ .../modules/adapterremovalfixprefix/test.yml | 9 ++++ 6 files changed, 122 insertions(+) create mode 100644 modules/adapterremovalfixprefix/main.nf create mode 100644 modules/adapterremovalfixprefix/meta.yml create mode 100644 tests/modules/adapterremovalfixprefix/main.nf create mode 100644 tests/modules/adapterremovalfixprefix/nextflow.config create mode 100644 tests/modules/adapterremovalfixprefix/test.yml diff --git a/modules/adapterremovalfixprefix/main.nf b/modules/adapterremovalfixprefix/main.nf new file mode 100644 index 00000000..c0137fb4 --- /dev/null +++ b/modules/adapterremovalfixprefix/main.nf @@ -0,0 +1,38 @@ +def VERSION = '0.05' + +process ADAPTERREMOVALFIXPREFIX { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::adapterremovalfixprefix=0.0.5" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/adapterremovalfixprefix:0.0.5--hdfd78af_2': + 'quay.io/biocontainers/adapterremovalfixprefix:0.0.5--hdfd78af_2' }" + + input: + tuple val(meta), path(fastq) + + output: + tuple val(meta), path("*.fq.gz"), emit: fixed_fastq + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + if ("$fastq" == "${prefix}.fq.gz") error "Input and output names are the same, set prefix in module configuration to disambiguate!" + + """ + AdapterRemovalFixPrefix \\ + $fastq \\ + $args \\ + | gzip > ${prefix}.fq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + adapterremovalfixprefix: $VERSION + END_VERSIONS + """ +} diff --git a/modules/adapterremovalfixprefix/meta.yml b/modules/adapterremovalfixprefix/meta.yml new file mode 100644 index 00000000..db69bc07 --- /dev/null +++ b/modules/adapterremovalfixprefix/meta.yml @@ -0,0 +1,43 @@ +name: adapterremovalfixprefix +description: Fixes prefixes from AdapterRemoval2 output to make sure no clashing read names are in the output. For use with DeDup. +keywords: + - adapterremoval + - fastq + - dedup +tools: + - adapterremovalfixprefix: + description: Fixes adapter removal prefixes to make sure no clashing read names are in the output. + homepage: https://github.com/apeltzer/AdapterRemovalFixPrefix + documentation: None + tool_dev_url: https://github.com/apeltzer/AdapterRemovalFixPrefix + doi: "10.1186/s13059-016-0918-z" + licence: ["GPL v3"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastq: + type: file + description: FASTQ file from AdapterRemoval2 + pattern: "*.{fq.gz,fastq.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - fixed_fastq: + type: file + description: FASTQ file with fixed read prefixes for DeDup + pattern: "*.{fq.gz}" + +authors: + - "@jfy133" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index ea17ce2e..20ca238f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -14,6 +14,10 @@ adapterremoval: - modules/adapterremoval/** - tests/modules/adapterremoval/** +adapterremovalfixprefix: + - modules/adapterremovalfixprefix/** + - tests/modules/adapterremovalfixprefix/** + agrvate: - modules/agrvate/** - tests/modules/agrvate/** diff --git a/tests/modules/adapterremovalfixprefix/main.nf b/tests/modules/adapterremovalfixprefix/main.nf new file mode 100644 index 00000000..863a7ca8 --- /dev/null +++ b/tests/modules/adapterremovalfixprefix/main.nf @@ -0,0 +1,19 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ADAPTERREMOVAL } from '../../../modules/adapterremoval/main.nf' +include { ADAPTERREMOVALFIXPREFIX } from '../../../modules/adapterremovalfixprefix/main.nf' + +workflow test_adapterremovalfixprefix { + + input = [ + [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + + ADAPTERREMOVAL ( input, [] ) + ADAPTERREMOVALFIXPREFIX ( ADAPTERREMOVAL.out.collapsed ) +} diff --git a/tests/modules/adapterremovalfixprefix/nextflow.config b/tests/modules/adapterremovalfixprefix/nextflow.config new file mode 100644 index 00000000..dcfdc48c --- /dev/null +++ b/tests/modules/adapterremovalfixprefix/nextflow.config @@ -0,0 +1,9 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: ADAPTERREMOVAL { + ext.args = "--collapse" + } + +} diff --git a/tests/modules/adapterremovalfixprefix/test.yml b/tests/modules/adapterremovalfixprefix/test.yml new file mode 100644 index 00000000..4ef6a41e --- /dev/null +++ b/tests/modules/adapterremovalfixprefix/test.yml @@ -0,0 +1,9 @@ +- name: adapterremovalfixprefix test_adapterremovalfixprefix + command: nextflow run tests/modules/adapterremovalfixprefix -entry test_adapterremovalfixprefix -c tests/config/nextflow.config + tags: + - adapterremovalfixprefix + files: + - path: output/adapterremovalfixprefix/test.fq.gz + md5sum: ff956de3532599a56c3efe5369f0953f + - path: output/adapterremovalfixprefix/versions.yml + md5sum: 983cb58079bf015c1d489a7e48261746 From e080f4c8acf5760039ed12ec1f206170f3f9a918 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 21 Mar 2022 14:49:28 +0100 Subject: [PATCH 107/592] Untar unzip meta (#1408) * fix: remove left-over unnecessary code * Adds support for meta lists for unzip and untar * Fix test inputs * Update all modules to support extraction of decompressed file from untar/unzip new meta + file tuple * Update all modules to support extraction of decompressed file from untar/unzip new meta + file tuple * Fix MALTEXTRACT/AMPS * Fix further modules * Fix cellranger * Apply suggestions from code review Co-authored-by: Harshil Patel --- modules/untar/main.nf | 10 ++++----- modules/untar/meta.yml | 10 +++++++++ modules/unzip/main.nf | 6 ++--- modules/unzip/meta.yml | 10 +++++++++ tests/modules/amps/main.nf | 15 ++++++++----- tests/modules/artic/minion/main.nf | 4 ++-- tests/modules/cellranger/mkfastq/main.nf | 8 +++---- tests/modules/controlfreec/main.nf | 4 ++-- .../gatk4/createsomaticpanelofnormals/main.nf | 4 ++-- tests/modules/gatk4/genomicsdbimport/main.nf | 8 +++---- tests/modules/gatk4/genotypegvcfs/main.nf | 16 +++++++------- tests/modules/kraken2/kraken2/main.nf | 10 ++++----- tests/modules/last/lastal/main.nf | 8 +++---- tests/modules/last/train/main.nf | 4 ++-- tests/modules/malt/build_test/main.nf | 8 +++---- tests/modules/malt/run/main.nf | 8 +++---- tests/modules/maltextract/main.nf | 20 ++++++++++------- tests/modules/maltextract/test.yml | 2 -- tests/modules/metaphlan3/main.nf | 18 +++++++-------- tests/modules/sratools/fasterqdump/main.nf | 8 +++---- tests/modules/untar/main.nf | 5 ++++- tests/modules/unzip/main.nf | 5 ++++- tests/modules/vcfanno/main.nf | 22 +++++++++---------- 23 files changed, 121 insertions(+), 92 deletions(-) diff --git a/modules/untar/main.nf b/modules/untar/main.nf index bbae948a..dc43fb78 100644 --- a/modules/untar/main.nf +++ b/modules/untar/main.nf @@ -8,19 +8,19 @@ process UNTAR { 'biocontainers/biocontainers:v1.2.0_cv1' }" input: - path archive + tuple val(meta), path(archive) output: - path "$untar" , emit: untar - path "versions.yml", emit: versions + tuple val(meta), path("$untar"), emit: untar + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' + def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' - untar = archive.toString() - '.tar.gz' + untar = archive.toString() - '.tar.gz' """ tar \\ -xzvf \\ diff --git a/modules/untar/meta.yml b/modules/untar/meta.yml index e877a97c..d426919b 100644 --- a/modules/untar/meta.yml +++ b/modules/untar/meta.yml @@ -10,11 +10,21 @@ tools: documentation: https://www.gnu.org/software/tar/manual/ licence: ["GPL-3.0-or-later"] input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - archive: type: file description: File to be untar pattern: "*.{tar}.{gz}" output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - untar: type: file description: diff --git a/modules/unzip/main.nf b/modules/unzip/main.nf index 1ce4b89b..8476a2eb 100644 --- a/modules/unzip/main.nf +++ b/modules/unzip/main.nf @@ -8,11 +8,11 @@ process UNZIP { 'quay.io/biocontainers/p7zip:15.09--h2d50403_4' }" input: - path archive + tuple val(meta), path(archive) output: - path "${archive.baseName}/", emit: unzipped_archive - path "versions.yml" , emit: versions + tuple val(meta), path("${archive.baseName}/"), emit: unzipped_archive + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/unzip/meta.yml b/modules/unzip/meta.yml index 79361527..f924bfb4 100644 --- a/modules/unzip/meta.yml +++ b/modules/unzip/meta.yml @@ -12,12 +12,22 @@ tools: licence: ["LGPL-2.1-or-later"] input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - archive: type: file description: ZIP file pattern: "*.zip" output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - unzipped_archive: type: directory description: Directory contents of the unzipped archive diff --git a/tests/modules/amps/main.nf b/tests/modules/amps/main.nf index 15572096..7c4969e9 100644 --- a/tests/modules/amps/main.nf +++ b/tests/modules/amps/main.nf @@ -15,18 +15,21 @@ workflow test_amps { fastas = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) gff = [] seq_type = "DNA" - map_db = file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) - input = file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + map_db = [ [], file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) ] + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] mode = "BlastN" taxon_list = file(params.test_data['sarscov2']['genome']['taxon_list_txt'], checkIfExists: true) - ncbi_dir = file(params.test_data['sarscov2']['genome']['ncbi_taxmap_zip'], checkIfExists: true) - filter = "def_anc" + ncbi_dir = [ [], file(params.test_data['sarscov2']['genome']['ncbi_taxmap_zip'], checkIfExists: true) ] UNZIP_MALT ( map_db ) UNZIP_MALTEXTRACT ( ncbi_dir ) - MALT_BUILD ( fastas, seq_type, gff, UNZIP_MALT.out.unzipped_archive ) + MALT_BUILD ( fastas, seq_type, gff, UNZIP_MALT.out.unzipped_archive.map{ it[1] } ) MALT_RUN ( input, mode, MALT_BUILD.out.index ) - MALTEXTRACT ( MALT_RUN.out.rma6, taxon_list, UNZIP_MALTEXTRACT.out.unzipped_archive) + ch_input_to_maltextract = MALT_RUN.out.rma6.map{ it[1] } + MALTEXTRACT ( ch_input_to_maltextract, taxon_list, UNZIP_MALTEXTRACT.out.unzipped_archive.map{ it[1] }) AMPS ( MALTEXTRACT.out.results, taxon_list, filter ) } diff --git a/tests/modules/artic/minion/main.nf b/tests/modules/artic/minion/main.nf index 3bda2ffc..b70b549e 100644 --- a/tests/modules/artic/minion/main.nf +++ b/tests/modules/artic/minion/main.nf @@ -11,12 +11,12 @@ workflow test_artic_minion { [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['nanopore']['test_fastq_gz'], checkIfExists: true) ] - fast5_tar = file(params.test_data['sarscov2']['nanopore']['fast5_tar_gz'], checkIfExists: true) + fast5_tar = [ [], file(params.test_data['sarscov2']['nanopore']['fast5_tar_gz'], checkIfExists: true) ] sequencing_summary = file(params.test_data['sarscov2']['nanopore']['test_sequencing_summary'], checkIfExists: true) fasta = file('https://github.com/artic-network/primer-schemes/raw/master/nCoV-2019/V3/nCoV-2019.reference.fasta', checkIfExists: true) bed = file('https://github.com/artic-network/primer-schemes/raw/master/nCoV-2019/V3/nCoV-2019.primer.bed', checkIfExists: true) - fast5_dir = UNTAR ( fast5_tar ).untar + fast5_dir = UNTAR ( fast5_tar ).untar.map{ it[1] } ARTIC_MINION ( input, fast5_dir, sequencing_summary, fasta, bed, [], '', 'nCoV-2019', '3') } diff --git a/tests/modules/cellranger/mkfastq/main.nf b/tests/modules/cellranger/mkfastq/main.nf index 5e594fd1..7bad0fec 100644 --- a/tests/modules/cellranger/mkfastq/main.nf +++ b/tests/modules/cellranger/mkfastq/main.nf @@ -8,19 +8,19 @@ include { CELLRANGER_MKFASTQ } from '../../../../modules/cellranger/mkfastq/main workflow test_cellranger_mkfastq_simple { simple_csv = file("https://cf.10xgenomics.com/supp/cell-exp/cellranger-tiny-bcl-simple-1.2.0.csv", checkIfExists: true) - tiny_bcl = file("https://cf.10xgenomics.com/supp/cell-exp/cellranger-tiny-bcl-1.2.0.tar.gz", checkIfExists: true) + tiny_bcl = [ [], file("https://cf.10xgenomics.com/supp/cell-exp/cellranger-tiny-bcl-1.2.0.tar.gz", checkIfExists: true) ] UNTAR ( tiny_bcl ) - CELLRANGER_MKFASTQ ( UNTAR.out.untar, simple_csv) + CELLRANGER_MKFASTQ ( UNTAR.out.untar.map{ it[1] }, simple_csv) } workflow test_cellranger_mkfastq_illumina { samplesheet_csv = file("https://cf.10xgenomics.com/supp/cell-exp/cellranger-tiny-bcl-samplesheet-1.2.0.csv", checkIfExists: true) - tiny_bcl = file("https://cf.10xgenomics.com/supp/cell-exp/cellranger-tiny-bcl-1.2.0.tar.gz", checkIfExists: true) + tiny_bcl = [ [], file("https://cf.10xgenomics.com/supp/cell-exp/cellranger-tiny-bcl-1.2.0.tar.gz", checkIfExists: true) ] UNTAR ( tiny_bcl ) - CELLRANGER_MKFASTQ ( UNTAR.out.untar, samplesheet_csv) + CELLRANGER_MKFASTQ ( UNTAR.out.untar.map{ it[1] }, samplesheet_csv) } diff --git a/tests/modules/controlfreec/main.nf b/tests/modules/controlfreec/main.nf index 576a845c..247f9887 100644 --- a/tests/modules/controlfreec/main.nf +++ b/tests/modules/controlfreec/main.nf @@ -19,7 +19,7 @@ workflow test_controlfreec { dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) - chrfiles = file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) UNTAR(chrfiles) @@ -29,7 +29,7 @@ workflow test_controlfreec { [], dbsnp, dbsnp_tbi, - UNTAR.out.untar, + UNTAR.out.untar.map{ it[1] }, [], target_bed, [] diff --git a/tests/modules/gatk4/createsomaticpanelofnormals/main.nf b/tests/modules/gatk4/createsomaticpanelofnormals/main.nf index 5e1d1904..3316f73a 100644 --- a/tests/modules/gatk4/createsomaticpanelofnormals/main.nf +++ b/tests/modules/gatk4/createsomaticpanelofnormals/main.nf @@ -6,12 +6,12 @@ include { UNTAR } from '../../../../modules/untar/main.nf' include { GATK4_CREATESOMATICPANELOFNORMALS } from '../../../../modules/gatk4/createsomaticpanelofnormals/main.nf' workflow test_gatk4_createsomaticpanelofnormals { - db = file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) + db = [[], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] UNTAR ( db ) input = Channel.of([ id:'test']) - .combine(UNTAR.out.untar) + .combine(UNTAR.out.untar.map{ it[1] }) fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fastaidx = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) diff --git a/tests/modules/gatk4/genomicsdbimport/main.nf b/tests/modules/gatk4/genomicsdbimport/main.nf index 417a08a4..6d990f4e 100644 --- a/tests/modules/gatk4/genomicsdbimport/main.nf +++ b/tests/modules/gatk4/genomicsdbimport/main.nf @@ -22,7 +22,7 @@ workflow test_gatk4_genomicsdbimport_create_genomicsdb { } workflow test_gatk4_genomicsdbimport_get_intervalslist { - db = file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) + db = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] UNTAR ( db ) @@ -31,7 +31,7 @@ workflow test_gatk4_genomicsdbimport_get_intervalslist { [] , [] , [] ]) - .combine(UNTAR.out.untar) + .combine(UNTAR.out.untar.map{ it[1] }) run_intlist = true run_updatewspace = false @@ -41,7 +41,7 @@ workflow test_gatk4_genomicsdbimport_get_intervalslist { } workflow test_gatk4_genomicsdbimport_update_genomicsdb { - db = file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) + db = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] UNTAR ( db ) @@ -50,7 +50,7 @@ workflow test_gatk4_genomicsdbimport_update_genomicsdb { file( params.test_data['homo_sapiens']['illumina']['test2_genome_vcf_gz_tbi'] , checkIfExists: true) , [] , [] ]) - .combine(UNTAR.out.untar) + .combine(UNTAR.out.untar.map{ it[1] }) run_intlist = false run_updatewspace = true diff --git a/tests/modules/gatk4/genotypegvcfs/main.nf b/tests/modules/gatk4/genotypegvcfs/main.nf index 6191df26..a5ae8d46 100644 --- a/tests/modules/gatk4/genotypegvcfs/main.nf +++ b/tests/modules/gatk4/genotypegvcfs/main.nf @@ -97,10 +97,10 @@ workflow test_gatk4_genotypegvcfs_gendb_input { fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - test_genomicsdb = file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) + test_genomicsdb = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] UNTAR ( test_genomicsdb ) - gendb = UNTAR.out.untar.collect() + gendb = UNTAR.out.untar.map{ it[1] }.collect() gendb.add([]) gendb.add([]) @@ -119,10 +119,10 @@ workflow test_gatk4_genotypegvcfs_gendb_input_dbsnp { dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) dbsnpIndex = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) - test_genomicsdb = file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) + test_genomicsdb = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] UNTAR ( test_genomicsdb ) - gendb = UNTAR.out.untar.collect() + gendb = UNTAR.out.untar.map{ it[1] }.collect() gendb.add([]) gendb.add([]) input = Channel.of([ id:'test' ]).combine(gendb) @@ -137,10 +137,10 @@ workflow test_gatk4_genotypegvcfs_gendb_input_intervals { fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - test_genomicsdb = file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) + test_genomicsdb = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] UNTAR ( test_genomicsdb ) - gendb = UNTAR.out.untar.collect() + gendb = UNTAR.out.untar.map{ it[1] }.collect() gendb.add([]) gendb.add([file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)]) input = Channel.of([ id:'test' ]).combine(gendb) @@ -158,10 +158,10 @@ workflow test_gatk4_genotypegvcfs_gendb_input_dbsnp_intervals { dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) dbsnpIndex = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) - test_genomicsdb = file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) + test_genomicsdb = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] UNTAR ( test_genomicsdb ) - gendb = UNTAR.out.untar.collect() + gendb = UNTAR.out.untar.map{ it[1] }.collect() gendb.add([]) gendb.add([file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)]) input = Channel.of([ id:'test' ]).combine(gendb) diff --git a/tests/modules/kraken2/kraken2/main.nf b/tests/modules/kraken2/kraken2/main.nf index 12399e9e..94f4db95 100644 --- a/tests/modules/kraken2/kraken2/main.nf +++ b/tests/modules/kraken2/kraken2/main.nf @@ -9,10 +9,10 @@ workflow test_kraken2_kraken2_single_end { input = [ [ id:'test', single_end:true ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] ] - db = file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) + db = [ [], file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) ] UNTAR ( db ) - KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar ) + KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar.map{ it[1] } ) } workflow test_kraken2_kraken2_paired_end { @@ -20,8 +20,8 @@ workflow test_kraken2_kraken2_paired_end { [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] ] - db = file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) - + db = [ [], file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) ] + UNTAR ( db ) - KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar ) + KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar.map{ it[1] } ) } diff --git a/tests/modules/last/lastal/main.nf b/tests/modules/last/lastal/main.nf index 95c2f917..76e124c3 100644 --- a/tests/modules/last/lastal/main.nf +++ b/tests/modules/last/lastal/main.nf @@ -10,10 +10,10 @@ workflow test_last_lastal_with_dummy_param_file { input = [ [ id:'contigs', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true), [] ] - db = [ file(params.test_data['sarscov2']['genome']['lastdb_tar_gz'], checkIfExists: true) ] + db = [ [], file(params.test_data['sarscov2']['genome']['lastdb_tar_gz'], checkIfExists: true) ] UNTAR ( db ) - LAST_LASTAL ( input, UNTAR.out.untar) + LAST_LASTAL ( input, UNTAR.out.untar.map{ it[1] }) } workflow test_last_lastal_with_real_param_file { @@ -21,8 +21,8 @@ workflow test_last_lastal_with_real_param_file { input = [ [ id:'contigs', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true), file(params.test_data['sarscov2']['genome']['contigs_genome_par'], checkIfExists: true) ] - db = [ file(params.test_data['sarscov2']['genome']['lastdb_tar_gz'], checkIfExists: true) ] + db = [ [], file(params.test_data['sarscov2']['genome']['lastdb_tar_gz'], checkIfExists: true) ] UNTAR ( db ) - LAST_LASTAL ( input, UNTAR.out.untar) + LAST_LASTAL ( input, UNTAR.out.untar.map{ it[1] }) } diff --git a/tests/modules/last/train/main.nf b/tests/modules/last/train/main.nf index 0f280a82..2e10735e 100644 --- a/tests/modules/last/train/main.nf +++ b/tests/modules/last/train/main.nf @@ -7,9 +7,9 @@ include { LAST_TRAIN } from '../../../../modules/last/train/main.nf' workflow test_last_train { - db = [ file(params.test_data['sarscov2']['genome']['lastdb_tar_gz'], checkIfExists: true) ] + db = [ [], file(params.test_data['sarscov2']['genome']['lastdb_tar_gz'], checkIfExists: true) ] input = [ [ id:'contigs' ], // meta map file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true) ] UNTAR ( db ) - LAST_TRAIN ( input, UNTAR.out.untar ) + LAST_TRAIN ( input, UNTAR.out.untar.map{ it[1] } ) } diff --git a/tests/modules/malt/build_test/main.nf b/tests/modules/malt/build_test/main.nf index 2542da0c..c314d82c 100644 --- a/tests/modules/malt/build_test/main.nf +++ b/tests/modules/malt/build_test/main.nf @@ -9,18 +9,18 @@ workflow test_malt_build { fastas = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) seq_type = "DNA" gff = [] - map_db = file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) + map_db = [ [], file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) ] UNZIP ( map_db ) - MALT_BUILD ( fastas, seq_type, gff, UNZIP.out.unzipped_archive ) + MALT_BUILD ( fastas, seq_type, gff, UNZIP.out.unzipped_archive.map{ it[1] } ) } workflow test_malt_build_gff { fastas = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) seq_type = "DNA" gff = file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) - map_db = file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) + map_db = [ [], file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) ] UNZIP ( map_db ) - MALT_BUILD ( fastas, seq_type, gff, UNZIP.out.unzipped_archive ) + MALT_BUILD ( fastas, seq_type, gff, UNZIP.out.unzipped_archive.map{ it[1] } ) } diff --git a/tests/modules/malt/run/main.nf b/tests/modules/malt/run/main.nf index d92dee71..7501652d 100644 --- a/tests/modules/malt/run/main.nf +++ b/tests/modules/malt/run/main.nf @@ -2,16 +2,16 @@ nextflow.enable.dsl = 2 -include { UNZIP } from '../../../../modules/unzip/main.nf' +include { UNZIP } from '../../../../modules/unzip/main.nf' include { MALT_BUILD } from '../../../../modules/malt/build/main.nf' -include { MALT_RUN } from '../../../../modules/malt/run/main.nf' +include { MALT_RUN } from '../../../../modules/malt/run/main.nf' workflow test_malt_run { fastas = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) gff = file(params.test_data['sarscov2']['genome']['genome_gff3'], checkIfExists: true) seq_type = "DNA" - map_db = file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) + map_db = [ [], file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) ] input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) @@ -19,7 +19,7 @@ workflow test_malt_run { mode = "BlastN" UNZIP ( map_db ) - MALT_BUILD ( fastas, seq_type, gff, UNZIP.out.unzipped_archive ) + MALT_BUILD ( fastas, seq_type, gff, UNZIP.out.unzipped_archive.map { it[1] } ) MALT_RUN ( input, mode, MALT_BUILD.out.index ) } diff --git a/tests/modules/maltextract/main.nf b/tests/modules/maltextract/main.nf index 8e0a2241..ed1e32c9 100644 --- a/tests/modules/maltextract/main.nf +++ b/tests/modules/maltextract/main.nf @@ -4,24 +4,28 @@ nextflow.enable.dsl = 2 include { UNZIP as UNZIP_MALT } from '../../../modules/unzip/main.nf' include { UNZIP as UNZIP_MALTEXTRACT } from '../../../modules/unzip/main.nf' -include { MALT_BUILD } from '../../../modules/malt/build/main.nf' -include { MALT_RUN } from '../../../modules/malt/run/main.nf' -include { MALTEXTRACT } from '../../../modules/maltextract/main.nf' +include { MALT_BUILD } from '../../../modules/malt/build/main.nf' +include { MALT_RUN } from '../../../modules/malt/run/main.nf' +include { MALTEXTRACT } from '../../../modules/maltextract/main.nf' workflow test_maltextract { fastas = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) gff = [] seq_type = "DNA" - map_db = file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) - input = file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + map_db = [ [], file("https://software-ab.informatik.uni-tuebingen.de/download/megan6/megan-nucl-Jan2021.db.zip", checkIfExists: true) ] + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] mode = "BlastN" taxon_list = file(params.test_data['sarscov2']['genome']['taxon_list_txt'], checkIfExists: true) - ncbi_dir = file(params.test_data['sarscov2']['genome']['ncbi_taxmap_zip'], checkIfExists: true) + ncbi_dir = [ [], file(params.test_data['sarscov2']['genome']['ncbi_taxmap_zip'], checkIfExists: true) ] UNZIP_MALT ( map_db ) UNZIP_MALTEXTRACT ( ncbi_dir ) - MALT_BUILD ( fastas, seq_type, gff, UNZIP_MALT.out.unzipped_archive ) + MALT_BUILD ( fastas, seq_type, gff, UNZIP_MALT.out.unzipped_archive.map{ it[1] } ) MALT_RUN ( input, mode, MALT_BUILD.out.index ) - MALTEXTRACT ( MALT_RUN.out.rma6, taxon_list, UNZIP_MALTEXTRACT.out.unzipped_archive) + ch_input_to_maltextract = MALT_RUN.out.rma6.map{ it[1] } + MALTEXTRACT ( ch_input_to_maltextract, taxon_list, UNZIP_MALTEXTRACT.out.unzipped_archive.map{ it[1] }) } diff --git a/tests/modules/maltextract/test.yml b/tests/modules/maltextract/test.yml index 2440c100..6802fe8b 100644 --- a/tests/modules/maltextract/test.yml +++ b/tests/modules/maltextract/test.yml @@ -3,8 +3,6 @@ tags: - maltextract files: - - path: output/maltextract/results/error.txt - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/maltextract/results/error.txt - path: output/maltextract/results/log.txt contains: diff --git a/tests/modules/metaphlan3/main.nf b/tests/modules/metaphlan3/main.nf index 3354d2d9..5d2ee1d1 100644 --- a/tests/modules/metaphlan3/main.nf +++ b/tests/modules/metaphlan3/main.nf @@ -12,10 +12,10 @@ workflow test_metaphlan3_single_end { [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] ] - db = channel.fromPath('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/metaphlan_database.tar.gz', type: 'dir', checkIfExists: true) + db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/metaphlan_database.tar.gz', checkIfExists: true) ] UNTAR ( db ) - METAPHLAN3 ( input, UNTAR.out.untar ) + METAPHLAN3 ( input, UNTAR.out.untar.map{ it[1] } ) } workflow test_metaphlan3_paired_end { @@ -25,11 +25,10 @@ workflow test_metaphlan3_paired_end { file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] ] - db = channel.fromPath('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/metaphlan_database.tar.gz', type: 'dir', checkIfExists: true) - + db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/metaphlan_database.tar.gz', checkIfExists: true) ] UNTAR ( db ) - METAPHLAN3 ( input, UNTAR.out.untar ) + METAPHLAN3 ( input, UNTAR.out.untar.map{ it[1] } ) } workflow test_metaphlan3_sam { @@ -38,12 +37,11 @@ workflow test_metaphlan3_sam { [ file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true) ] ] - db = channel.fromPath('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/metaphlan_database.tar.gz', type: 'dir', checkIfExists: true) - + db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/metaphlan_database.tar.gz', checkIfExists: true) ] UNTAR ( db ) SAMTOOLS_VIEW ( input, [] ) - METAPHLAN3 ( SAMTOOLS_VIEW.out.bam, UNTAR.out.untar ) + METAPHLAN3 ( SAMTOOLS_VIEW.out.bam, UNTAR.out.untar.map{ it[1] } ) } workflow test_metaphlan3_fasta { @@ -52,8 +50,8 @@ workflow test_metaphlan3_fasta { [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] ] - db = channel.fromPath('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/metaphlan_database.tar.gz', type: 'dir', checkIfExists: true) + db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/metaphlan_database.tar.gz', checkIfExists: true) ] UNTAR ( db ) - METAPHLAN3 ( input, UNTAR.out.untar ) + METAPHLAN3 ( input, UNTAR.out.untar.map{ it[1] } ) } diff --git a/tests/modules/sratools/fasterqdump/main.nf b/tests/modules/sratools/fasterqdump/main.nf index 2f838fd2..c2b98526 100644 --- a/tests/modules/sratools/fasterqdump/main.nf +++ b/tests/modules/sratools/fasterqdump/main.nf @@ -7,22 +7,22 @@ include { SRATOOLS_FASTERQDUMP } from '../../../../modules/sratools/fasterqdump/ workflow test_sratools_fasterqdump_single_end { - archive = file(params.test_data['sarscov2']['illumina']['SRR13255544_tar_gz'], checkIfExists: true) + archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR13255544_tar_gz'], checkIfExists: true) ] UNTAR ( archive ) def input = Channel.of([ id:'test_single_end', single_end:true ]) - .combine(UNTAR.out.untar) + .combine(UNTAR.out.untar.map{ it[1] }) SRATOOLS_FASTERQDUMP ( input ) } workflow test_sratools_fasterqdump_paired_end { - archive = file(params.test_data['sarscov2']['illumina']['SRR11140744_tar_gz'], checkIfExists: true) + archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR11140744_tar_gz'], checkIfExists: true) ] UNTAR ( archive ) def input = Channel.of([ id:'test_paired_end', single_end:false ]) - .combine(UNTAR.out.untar) + .combine(UNTAR.out.untar.map{ it[1] }) SRATOOLS_FASTERQDUMP ( input ) } diff --git a/tests/modules/untar/main.nf b/tests/modules/untar/main.nf index 056e3ea7..9d6d4c6c 100644 --- a/tests/modules/untar/main.nf +++ b/tests/modules/untar/main.nf @@ -5,7 +5,10 @@ nextflow.enable.dsl = 2 include { UNTAR } from '../../../modules/untar/main.nf' workflow test_untar { - input = file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) + input = [ + [], + file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) + ] UNTAR ( input ) } diff --git a/tests/modules/unzip/main.nf b/tests/modules/unzip/main.nf index 520fe31e..6f7cc030 100644 --- a/tests/modules/unzip/main.nf +++ b/tests/modules/unzip/main.nf @@ -6,7 +6,10 @@ include { UNZIP } from '../../../modules/unzip/main.nf' workflow test_unzip { - archive = file(params.test_data['sarscov2']['genome']['ncbi_taxmap_zip'], checkIfExists: true) + archive = [ + [], + file(params.test_data['sarscov2']['genome']['ncbi_taxmap_zip'], checkIfExists: true) + ] UNZIP ( archive ) } diff --git a/tests/modules/vcfanno/main.nf b/tests/modules/vcfanno/main.nf index 045ffa31..c879ebbd 100644 --- a/tests/modules/vcfanno/main.nf +++ b/tests/modules/vcfanno/main.nf @@ -6,36 +6,36 @@ include { UNTAR } from '../../../modules/untar/main.nf' include { VCFANNO } from '../../../modules/vcfanno/main.nf' workflow test_vcfanno { - - input = [ + + input = [ [ id:'test_compressed', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true) ] - - input_2 = [ [ id:'test_compressed', single_end:false ], // meta map + + input_2 = [ [ id:'test_compressed', single_end:false ], // meta map [] ] toml = file(params.test_data['homo_sapiens']['genome']['vcfanno_toml'], checkIfExists: true) - resource_dir = file(params.test_data['homo_sapiens']['genome']['vcfanno_tar_gz'], checkIfExists: true) + resource_dir = [[], file(params.test_data['homo_sapiens']['genome']['vcfanno_tar_gz'], checkIfExists: true) ] UNTAR ( resource_dir ) - VCFANNO ( input, input_2, toml, UNTAR.out.untar ) + VCFANNO ( input, input_2, toml, UNTAR.out.untar.map{ it[1] } ) } workflow test_vcfanno_uncompressed { input = [ [ id:'test_uncompressed', single_end:false ], // meta map [] ,[] ] - - input_2 = [ + + input_2 = [ [ id:'test_uncompressed', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) ] toml = file(params.test_data['homo_sapiens']['genome']['vcfanno_toml'], checkIfExists: true) - resource_dir = file(params.test_data['homo_sapiens']['genome']['vcfanno_tar_gz'], checkIfExists: true) + resource_dir = [[], file(params.test_data['homo_sapiens']['genome']['vcfanno_tar_gz'], checkIfExists: true) ] UNTAR ( resource_dir ) - VCFANNO ( input, input_2, toml, UNTAR.out.untar ) -} \ No newline at end of file + VCFANNO ( input, input_2, toml, UNTAR.out.untar.map{ it[1] } ) +} From 9c386c5dd8a42b5cb589cea7244e3960c8dfdacf Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Tue, 22 Mar 2022 16:40:21 +0100 Subject: [PATCH 108/592] Add bracken (#1423) * feat: add template for Bracken * chore: update version * refactor: change command build * refactor: rename report variable, change quotes * docs: remove refactored input parameter * fix: correctly assign arguments to options * tests: set up single and paired end tests * style: apply prettier * chore: change data sources to official ones * refactor: rename test workflows * tests: use correct input to the new UNTAR module * chore: update md5sums --- modules/bracken/bracken/main.nf | 41 +++++++++++++ modules/bracken/bracken/meta.yml | 45 +++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/config/test_data.config | 3 + tests/modules/bracken/bracken/main.nf | 57 +++++++++++++++++++ tests/modules/bracken/bracken/nextflow.config | 5 ++ tests/modules/bracken/bracken/test.yml | 43 ++++++++++++++ 7 files changed, 198 insertions(+) create mode 100644 modules/bracken/bracken/main.nf create mode 100644 modules/bracken/bracken/meta.yml create mode 100644 tests/modules/bracken/bracken/main.nf create mode 100644 tests/modules/bracken/bracken/nextflow.config create mode 100644 tests/modules/bracken/bracken/test.yml diff --git a/modules/bracken/bracken/main.nf b/modules/bracken/bracken/main.nf new file mode 100644 index 00000000..2027fd23 --- /dev/null +++ b/modules/bracken/bracken/main.nf @@ -0,0 +1,41 @@ +process BRACKEN_BRACKEN { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::bracken=2.6.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bracken:2.6.2--py39hc16433a_0': + 'quay.io/biocontainers/bracken:2.6.2--py39hc16433a_0' }" + + input: + tuple val(meta), path(kraken_report) + path database + + output: + tuple val(meta), path(bracken_report), emit: reports + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def threshold = meta.threshold ?: 10 + def taxonomic_level = meta.taxonomic_level ?: 'S' + def read_length = meta.read_length ?: 150 + def args = task.ext.args ?: "-l ${taxonomic_level} -t ${threshold} -r ${read_length}" + def prefix = task.ext.prefix ?: "${meta.id}" + def bracken_version = '2.6.2' + bracken_report = "${prefix}_${taxonomic_level}.tsv" + """ + bracken \\ + ${args} \\ + -d '${database}' \\ + -i '${kraken_report}' \\ + -o '${bracken_report}' + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bracken: ${bracken_version} + END_VERSIONS + """ +} diff --git a/modules/bracken/bracken/meta.yml b/modules/bracken/bracken/meta.yml new file mode 100644 index 00000000..19311618 --- /dev/null +++ b/modules/bracken/bracken/meta.yml @@ -0,0 +1,45 @@ +name: bracken_bracken +description: Re-estimate taxonomic abundance of metagenomic samples analyzed by kraken. +keywords: + - sort +tools: + - bracken: + description: Bracken (Bayesian Reestimation of Abundance with KrakEN) is a highly accurate statistical method that computes the abundance of species in DNA sequences from a metagenomics sample. + homepage: https://ccb.jhu.edu/software/bracken/ + documentation: https://ccb.jhu.edu/software/bracken/index.shtml?t=manual + tool_dev_url: https://github.com/jenniferlu717/Bracken + doi: "10.7717/peerj-cs.104" + licence: ["GPL v3"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - kraken_report: + type: file + description: TSV file with six columns coming from kraken2 output + pattern: "*.{tsv}" + - database: + type: file + description: Directory containing the kraken2/Bracken files for analysis + pattern: "*" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - reports: + type: file + description: TSV output report of the re-estimated abundances + pattern: "*.{tsv}" + +authors: + - "@Midnighter" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 20ca238f..d3282321 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -313,6 +313,10 @@ bowtie2/build: - modules/bowtie2/build/** - tests/modules/bowtie2/build_test/** +bracken/bracken: + - modules/bracken/bracken/** + - tests/modules/bracken/bracken/** + bwa/aln: - modules/bwa/aln/** - tests/modules/bwa/aln/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 45732f47..230e8d43 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -25,6 +25,9 @@ params { kraken2 = "${test_data_dir}/genomics/sarscov2/genome/db/kraken2" kraken2_tar_gz = "${test_data_dir}/genomics/sarscov2/genome/db/kraken2.tar.gz" + kraken2_bracken = "${test_data_dir}/genomics/sarscov2/genome/db/kraken2_bracken" + kraken2_bracken_tar_gz = "${test_data_dir}/genomics/sarscov2/genome/db/kraken2_bracken.tar.gz" + ncbi_taxmap_zip = "${test_data_dir}/genomics/sarscov2/genome/db/maltextract/ncbi_taxmap.zip" taxon_list_txt = "${test_data_dir}/genomics/sarscov2/genome/db/maltextract/taxon_list.txt" diff --git a/tests/modules/bracken/bracken/main.nf b/tests/modules/bracken/bracken/main.nf new file mode 100644 index 00000000..f882439b --- /dev/null +++ b/tests/modules/bracken/bracken/main.nf @@ -0,0 +1,57 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { UNTAR } from '../../../../modules/untar/main.nf' +include { KRAKEN2_KRAKEN2 } from '../../../../modules/kraken2/kraken2/main.nf' +include { BRACKEN_BRACKEN } from '../../../../modules/bracken/bracken/main.nf' + +workflow test_bracken_bracken_single_end_default_args { + input = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + db = file(params.test_data['sarscov2']['genome']['kraken2_bracken_tar_gz'], checkIfExists: true) + + ch_db = UNTAR ( [[:], db] ).untar + .map { it[1] } + KRAKEN2_KRAKEN2 ( input, ch_db ) + BRACKEN_BRACKEN ( KRAKEN2_KRAKEN2.out.txt, ch_db ) +} + +workflow test_bracken_bracken_single_end_custom_args { + input = [ [ id:'test', single_end:true, threshold:0, taxonomic_level:'G', read_length:100 ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + db = file(params.test_data['sarscov2']['genome']['kraken2_bracken_tar_gz'], checkIfExists: true) + + ch_db = UNTAR ( [[:], db] ).untar + .map { it[1] } + KRAKEN2_KRAKEN2 ( input, ch_db ) + BRACKEN_BRACKEN ( KRAKEN2_KRAKEN2.out.txt, ch_db ) +} + +workflow test_bracken_bracken_paired_end_default_args { + input = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + db = file(params.test_data['sarscov2']['genome']['kraken2_bracken_tar_gz'], checkIfExists: true) + + ch_db = UNTAR ( [[:], db] ).untar + .map { it[1] } + KRAKEN2_KRAKEN2 ( input, ch_db ) + BRACKEN_BRACKEN ( KRAKEN2_KRAKEN2.out.txt, ch_db ) +} + +workflow test_bracken_bracken_paired_end_custom_args { + input = [ [ id:'test', single_end:false, threshold:0, taxonomic_level:'G', read_length:100 ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + db = file(params.test_data['sarscov2']['genome']['kraken2_bracken_tar_gz'], checkIfExists: true) + + ch_db = UNTAR ( [[:], db] ).untar + .map { it[1] } + KRAKEN2_KRAKEN2 ( input, ch_db ) + BRACKEN_BRACKEN ( KRAKEN2_KRAKEN2.out.txt, ch_db ) +} diff --git a/tests/modules/bracken/bracken/nextflow.config b/tests/modules/bracken/bracken/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/bracken/bracken/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/bracken/bracken/test.yml b/tests/modules/bracken/bracken/test.yml new file mode 100644 index 00000000..4c87cda7 --- /dev/null +++ b/tests/modules/bracken/bracken/test.yml @@ -0,0 +1,43 @@ +- name: bracken bracken test_bracken_bracken_single_end_default_args + command: nextflow run tests/modules/bracken/bracken -entry test_bracken_bracken_single_end_default_args -c tests/config/nextflow.config + tags: + - bracken/bracken + - bracken + files: + - path: output/bracken/test_S.tsv + md5sum: 4a21ae14ff8a0311d55f139af5247838 + - path: output/bracken/versions.yml + md5sum: ab8b1550f84a99bae80f050fe718abd0 + +- name: bracken bracken test_bracken_bracken_single_end_custom_args + command: nextflow run tests/modules/bracken/bracken -entry test_bracken_bracken_single_end_custom_args -c tests/config/nextflow.config + tags: + - bracken/bracken + - bracken + files: + - path: output/bracken/test_G.tsv + md5sum: f609b09d6edb5ebc1ea1435d1dd46cde + - path: output/bracken/versions.yml + md5sum: af87e8d4c42fbcb0469ab13912b8a9bd + +- name: bracken bracken test_bracken_bracken_paired_end_default_args + command: nextflow run tests/modules/bracken/bracken -entry test_bracken_bracken_paired_end_default_args -c tests/config/nextflow.config + tags: + - bracken/bracken + - bracken + files: + - path: output/bracken/test_S.tsv + md5sum: 4a21ae14ff8a0311d55f139af5247838 + - path: output/bracken/versions.yml + md5sum: 4602111eb25bd19a7f9d725acc5921f6 + +- name: bracken bracken test_bracken_bracken_paired_end_custom_args + command: nextflow run tests/modules/bracken/bracken -entry test_bracken_bracken_paired_end_custom_args -c tests/config/nextflow.config + tags: + - bracken/bracken + - bracken + files: + - path: output/bracken/test_G.tsv + md5sum: f609b09d6edb5ebc1ea1435d1dd46cde + - path: output/bracken/versions.yml + md5sum: d4618b01df5ac09cc366fe2ae7c13f06 From 1dddf1ce9443e3d93853d86e7a7aab52e5b4d614 Mon Sep 17 00:00:00 2001 From: Annick Renevey <47788523+rannick@users.noreply.github.com> Date: Wed, 23 Mar 2022 13:13:58 +0100 Subject: [PATCH 109/592] update star/align to include an optional sam output (support for --chimOutType SeparateSAMold option) (#1378) Co-authored-by: Praveen Raj S <43108054+praveenraj2018@users.noreply.github.com> --- modules/star/align/main.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/star/align/main.nf b/modules/star/align/main.nf index 7c965d07..762b84f6 100644 --- a/modules/star/align/main.nf +++ b/modules/star/align/main.nf @@ -29,6 +29,7 @@ process STAR_ALIGN { tuple val(meta), path('*fastq.gz') , optional:true, emit: fastq tuple val(meta), path('*.tab') , optional:true, emit: tab tuple val(meta), path('*.out.junction') , optional:true, emit: junction + tuple val(meta), path('*.out.sam') , optional:true, emit: sam when: task.ext.when == null || task.ext.when From debbcd98eb0aaaddd6a95fb21b8585aac28e07a6 Mon Sep 17 00:00:00 2001 From: Julianus Pfeuffer Date: Thu, 24 Mar 2022 14:51:56 +0100 Subject: [PATCH 110/592] [FIX/DOC] Broken Adding modules link (#1433) * [FIX/DOC] Broken Adding modules link * Apply suggestion Co-authored-by: Edmund Miller Co-authored-by: Edmund Miller --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 478fe8da..1d8312cc 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ We have written a helper command in the `nf-core/tools` package that uses the Gi ## Adding new modules -If you wish to contribute a new module, please see the documentation on the [nf-core website](https://nf-co.re/developers/adding_modules). +If you wish to contribute a new module, please see the documentation on the [nf-core website](https://nf-co.re/developers/modules#writing-a-new-module-reference). > Please be kind to our code reviewers and submit one pull request per module :) From dfbb0bc17cb6799892e1d4d2de2f4e08abae92b6 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Thu, 24 Mar 2022 10:49:17 -0600 Subject: [PATCH 111/592] update bakta to latest version (v1.4.0) (#1428) * update bakta to latest version (v1.4.0) * Update test.yml * remove empty file md5sums * bakta was rebuilt to fix dependencies on bioconda * trigger ci Co-authored-by: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> --- modules/bakta/main.nf | 6 +++--- modules/bakta/meta.yml | 2 +- tests/modules/bakta/test.yml | 11 ----------- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/modules/bakta/main.nf b/modules/bakta/main.nf index a7f971ef..70b2ecdb 100644 --- a/modules/bakta/main.nf +++ b/modules/bakta/main.nf @@ -2,10 +2,10 @@ process BAKTA { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bakta=1.3.1" : null) + conda (params.enable_conda ? "bioconda::bakta=1.4.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bakta:1.3.1--pyhdfd78af_0' : - 'quay.io/biocontainers/bakta:1.3.1--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/bakta:1.4.0--pyhdfd78af_1' : + 'quay.io/biocontainers/bakta:1.4.0--pyhdfd78af_1' }" input: tuple val(meta), path(fasta) diff --git a/modules/bakta/meta.yml b/modules/bakta/meta.yml index 2514a996..63f55ff3 100644 --- a/modules/bakta/meta.yml +++ b/modules/bakta/meta.yml @@ -78,7 +78,7 @@ output: pattern: "*.ffn" - hypotheticals_tsv: type: file - description: further information on hypothetical protein CDS as simple human readble tab separated values + description: additional information on hypothetical protein CDS as simple human readble tab separated values pattern: "*.hypotheticals.tsv" - hypotheticals_faa: type: file diff --git a/tests/modules/bakta/test.yml b/tests/modules/bakta/test.yml index dcfc32bc..1eb3d8a5 100644 --- a/tests/modules/bakta/test.yml +++ b/tests/modules/bakta/test.yml @@ -1,25 +1,14 @@ -## TODO nf-core: Please run the following command to build this file: -# nf-core modules create-test-yml bakta - name: bakta command: nextflow run ./tests/modules/bakta -entry test_bakta -c tests/config/nextflow.config -stub-run tags: - bakta files: - path: output/bakta/test.embl - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/bakta/test.faa - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/bakta/test.ffn - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/bakta/test.fna - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/bakta/test.gbff - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/bakta/test.gff3 - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/bakta/test.hypotheticals.tsv - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/bakta/test.hypotheticals.faa - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/bakta/test.tsv - md5sum: d41d8cd98f00b204e9800998ecf8427e From 608bb2259851beee55f997b3b7503cee674744e2 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Thu, 24 Mar 2022 12:56:32 -0600 Subject: [PATCH 112/592] Update dragonflye to latest version (#1442) * Update dragonflye to latest version * trigger ci --- modules/dragonflye/main.nf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/dragonflye/main.nf b/modules/dragonflye/main.nf index 14597143..91b009d4 100644 --- a/modules/dragonflye/main.nf +++ b/modules/dragonflye/main.nf @@ -2,10 +2,10 @@ process DRAGONFLYE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::dragonflye=1.0.4" : null) + conda (params.enable_conda ? "bioconda::dragonflye=1.0.11" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dragonflye:1.0.4--hdfd78af_0' : - 'quay.io/biocontainers/dragonflye:1.0.4--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dragonflye:1.0.11--hdfd78af_0' : + 'quay.io/biocontainers/dragonflye:1.0.11--hdfd78af_0' }" input: tuple val(meta), path(reads) @@ -32,6 +32,7 @@ process DRAGONFLYE { --ram $memory \\ --outdir ./ \\ --force + cat <<-END_VERSIONS > versions.yml "${task.process}": dragonflye: \$(dragonflye --version 2>&1 | sed 's/^.*dragonflye //' ) From fe088745e03f21d07477cc0c655c24ae9f72ac31 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 24 Mar 2022 14:44:31 -0500 Subject: [PATCH 113/592] style(deeptools): Indent script (#1439) --- modules/deeptools/bamcoverage/main.nf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/deeptools/bamcoverage/main.nf b/modules/deeptools/bamcoverage/main.nf index 83e3ffeb..926bf0ad 100644 --- a/modules/deeptools/bamcoverage/main.nf +++ b/modules/deeptools/bamcoverage/main.nf @@ -23,11 +23,11 @@ process DEEPTOOLS_BAMCOVERAGE { def prefix = task.ext.prefix ?: "${meta.id}.bigWig" """ - bamCoverage \ - --bam $input \ - $args \ - --numberOfProcessors ${task.cpus} \ - --outFileName ${prefix} + bamCoverage \\ + --bam $input \\ + $args \\ + --numberOfProcessors ${task.cpus} \\ + --outFileName ${prefix} cat <<-END_VERSIONS > versions.yml "${task.process}": From 6806cd1de9f493ecba86960fc8a6e7d86e262d9b Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 24 Mar 2022 18:38:24 -0500 Subject: [PATCH 114/592] feat(bbmap): Initialize pileup module (#1441) * feat(bbmap): Initialize pileup module * test(bbmap): Update outputs * test(bbmap): Add pileup tags * style(bbmap): Add in when Co-authored-by: Robert A. Petit III --- modules/bbmap/pileup/main.nf | 39 ++++++++++++++++++ modules/bbmap/pileup/meta.yml | 47 ++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/bbmap/pileup/main.nf | 15 +++++++ tests/modules/bbmap/pileup/nextflow.config | 5 +++ tests/modules/bbmap/pileup/test.yml | 12 ++++++ 6 files changed, 122 insertions(+) create mode 100644 modules/bbmap/pileup/main.nf create mode 100644 modules/bbmap/pileup/meta.yml create mode 100644 tests/modules/bbmap/pileup/main.nf create mode 100644 tests/modules/bbmap/pileup/nextflow.config create mode 100644 tests/modules/bbmap/pileup/test.yml diff --git a/modules/bbmap/pileup/main.nf b/modules/bbmap/pileup/main.nf new file mode 100644 index 00000000..8d424bc2 --- /dev/null +++ b/modules/bbmap/pileup/main.nf @@ -0,0 +1,39 @@ +process BBMAP_PILEUP { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::bbmap=38.92 bioconda::samtools=1.13 pigz=2.6" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:f5f55fc5623bb7b3f725e8d2f86bedacfd879510-0' : + 'quay.io/biocontainers/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:f5f55fc5623bb7b3f725e8d2f86bedacfd879510-0' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("*.stats.txt"), emit: covstats + tuple val(meta), path("*.hist.txt") , emit: hist + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + pileup.sh \\ + -Xmx${task.memory.toGiga()}g \\ + in=${bam} \\ + out=${prefix}.coverage.stats.txt \\ + hist=${prefix}.coverage.hist.txt \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bbmap: \$(bbversion.sh) + 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/bbmap/pileup/meta.yml b/modules/bbmap/pileup/meta.yml new file mode 100644 index 00000000..5cd85f9a --- /dev/null +++ b/modules/bbmap/pileup/meta.yml @@ -0,0 +1,47 @@ +name: "bbmap_pileup" +description: Calculates per-scaffold or per-base coverage information from an unsorted sam or bam file. +keywords: + - fasta + - genome + - coverage +tools: + - bbmap: + description: BBMap is a short read aligner, as well as various other bioinformatic tools. + homepage: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/ + documentation: https://jgi.doe.gov/data-and-tools/bbtools/bb-tools-user-guide/ + tool_dev_url: "https://github.com/BioInfoTools/BBMap/blob/master/sh/pileup.sh" + doi: "" + licence: ["UC-LBL license (see package)"] + +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 ] + - stats: + type: file + description: Per-scaffold coverage info + pattern: "*.stats.txt" + - hist: + type: file + description: "Histogram of # occurrences of each depth level" + pattern: "*.hist.txt" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@Emiller88" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index d3282321..2a93a846 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -106,6 +106,10 @@ bbmap/index: - modules/bbmap/index/** - tests/modules/bbmap/index/** +bbmap/pileup: + - modules/bbmap/pileup/** + - tests/modules/bbmap/pileup/** + bcftools/annotate: - modules/bcftools/annotate/** - tests/modules/bcftools/annotate/** diff --git a/tests/modules/bbmap/pileup/main.nf b/tests/modules/bbmap/pileup/main.nf new file mode 100644 index 00000000..943df9b5 --- /dev/null +++ b/tests/modules/bbmap/pileup/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BBMAP_PILEUP } from '../../../../modules/bbmap/pileup/main.nf' + +workflow test_bbmap_pileup { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + BBMAP_PILEUP ( input ) +} diff --git a/tests/modules/bbmap/pileup/nextflow.config b/tests/modules/bbmap/pileup/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/bbmap/pileup/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/bbmap/pileup/test.yml b/tests/modules/bbmap/pileup/test.yml new file mode 100644 index 00000000..84814a7a --- /dev/null +++ b/tests/modules/bbmap/pileup/test.yml @@ -0,0 +1,12 @@ +- name: "bbmap pileup" + command: nextflow run ./tests/modules/bbmap/pileup -entry test_bbmap_pileup -c ./tests/config/nextflow.config -c ./tests/modules/bbmap/pileup/nextflow.config + tags: + - "bbmap" + - "bbmap/pileup" + files: + - path: "output/bbmap/test.coverage.stats.txt" + md5sum: c3fc9d0681589b69e3301ca3cb27b7a4 + - path: "output/bbmap/test.coverage.hist.txt" + md5sum: 96915920ef42ddc9483457dd4585a088 + - path: output/bbmap/versions.yml + md5sum: 894acc38bdc167dc22851df15e5a8453 From d16f1ea4d75a179bb672c8e8aec5948d3ee5f0bd Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Thu, 24 Mar 2022 20:11:04 -0600 Subject: [PATCH 115/592] add module for panaroo, fix pirate tests (#1444) * add module for panaroo * update pirate test yaml * update panaroo test yaml * update pirate test yaml md5s * Update main.nf * Update main.nf * pin bioperl version --- modules/panaroo/run/main.nf | 36 +++++++++++++ modules/panaroo/run/meta.yml | 47 +++++++++++++++++ modules/pirate/main.nf | 6 +-- tests/config/pytest_modules.yml | 4 ++ tests/modules/panaroo/run/main.nf | 19 +++++++ tests/modules/panaroo/run/nextflow.config | 8 +++ tests/modules/panaroo/run/test.yml | 38 ++++++++++++++ tests/modules/pirate/main.nf | 4 -- tests/modules/pirate/test.yml | 62 +++++++++++------------ 9 files changed, 186 insertions(+), 38 deletions(-) create mode 100644 modules/panaroo/run/main.nf create mode 100644 modules/panaroo/run/meta.yml create mode 100644 tests/modules/panaroo/run/main.nf create mode 100644 tests/modules/panaroo/run/nextflow.config create mode 100644 tests/modules/panaroo/run/test.yml diff --git a/modules/panaroo/run/main.nf b/modules/panaroo/run/main.nf new file mode 100644 index 00000000..d8be0c1e --- /dev/null +++ b/modules/panaroo/run/main.nf @@ -0,0 +1,36 @@ +process PANAROO_RUN { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::panaroo=1.2.9" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/panaroo:1.2.9--pyhdfd78af_0': + 'quay.io/biocontainers/panaroo:1.2.9--pyhdfd78af_0' }" + + input: + tuple val(meta), path(gff) + + output: + tuple val(meta), path("results/*") , emit: results + tuple val(meta), path("results/core_gene_alignment.aln"), optional: true, emit: aln + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + panaroo \\ + $args \\ + -t $task.cpus \\ + -o results \\ + -i $gff + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + panaroo: \$(echo \$(panaroo --version 2>&1) | sed 's/^.*panaroo //' )) + END_VERSIONS + """ +} diff --git a/modules/panaroo/run/meta.yml b/modules/panaroo/run/meta.yml new file mode 100644 index 00000000..eaeb41d0 --- /dev/null +++ b/modules/panaroo/run/meta.yml @@ -0,0 +1,47 @@ +name: "panaroo_run" +description: A fast and scalable tool for bacterial pangenome analysis +keywords: + - gff + - pan-genome + - alignment +tools: + - "panaroo": + description: "panaroo - an updated pipeline for pangenome investigation" + homepage: "https://gtonkinhill.github.io/panaroo/#/" + documentation: "https://gtonkinhill.github.io/panaroo/#/gettingstarted/quickstart" + tool_dev_url: "https://github.com/gtonkinhill/panaroo" + doi: "10.1186/s13059-020-02090-4" + licence: "['MIT']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - gff: + type: file + description: A set of GFF3 formatted files + pattern: "*.{gff}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - results: + type: directory + description: Directory containing Panaroo result files + pattern: "*/*" + - aln: + type: file + description: Core-genome alignment produced by Panaroo (Optional) + pattern: "*.{fasta}" + +authors: + - "@rpetit3" diff --git a/modules/pirate/main.nf b/modules/pirate/main.nf index 20544a1b..ebef5b37 100644 --- a/modules/pirate/main.nf +++ b/modules/pirate/main.nf @@ -2,10 +2,10 @@ process PIRATE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::pirate=1.0.4" : null) + conda (params.enable_conda ? "bioconda::pirate=1.0.4 bioconda::perl-bioperl=1.7.2" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/pirate:1.0.4--hdfd78af_1' : - 'quay.io/biocontainers/pirate:1.0.4--hdfd78af_1' }" + 'https://depot.galaxyproject.org/singularity/pirate:1.0.4--hdfd78af_2' : + 'quay.io/biocontainers/pirate:1.0.4--hdfd78af_2' }" input: tuple val(meta), path(gff) diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 2a93a846..13bcbbd3 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1248,6 +1248,10 @@ pairtools/sort: - modules/pairtools/sort/** - tests/modules/pairtools/sort/** +panaroo/run: + - modules/panaroo/run/** + - tests/modules/panaroo/run/** + pangolin: - modules/pangolin/** - tests/modules/pangolin/** diff --git a/tests/modules/panaroo/run/main.nf b/tests/modules/panaroo/run/main.nf new file mode 100644 index 00000000..1fab62ed --- /dev/null +++ b/tests/modules/panaroo/run/main.nf @@ -0,0 +1,19 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PANAROO_RUN } from '../../../../modules/panaroo/run/main.nf' + +workflow test_panaroo_run { + + input = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['candidatus_portiera_aleyrodidarum']['genome']['test1_gff'], checkIfExists: true), + file(params.test_data['candidatus_portiera_aleyrodidarum']['genome']['test2_gff'], checkIfExists: true), + file(params.test_data['candidatus_portiera_aleyrodidarum']['genome']['test3_gff'], checkIfExists: true) + ] + ] + + PANAROO_RUN ( input ) +} diff --git a/tests/modules/panaroo/run/nextflow.config b/tests/modules/panaroo/run/nextflow.config new file mode 100644 index 00000000..af23e716 --- /dev/null +++ b/tests/modules/panaroo/run/nextflow.config @@ -0,0 +1,8 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: PANAROO_RUN { + ext.args = '--clean-mode strict -a core' + } +} diff --git a/tests/modules/panaroo/run/test.yml b/tests/modules/panaroo/run/test.yml new file mode 100644 index 00000000..20f0b814 --- /dev/null +++ b/tests/modules/panaroo/run/test.yml @@ -0,0 +1,38 @@ +- name: panaroo run test_panaroo_run + command: nextflow run tests/modules/panaroo/run -entry test_panaroo_run -c tests/config/nextflow.config + tags: + - panaroo/run + - panaroo + files: + - path: output/panaroo/results/combined_DNA_CDS.fasta + md5sum: 92bd4f6b9c84c84c0989d77d2558b7d1 + - path: output/panaroo/results/combined_protein_CDS.fasta + md5sum: 7a5636c4f2abc190f5dd4dfbb1da7034 + - path: output/panaroo/results/combined_protein_cdhit_out.txt + md5sum: 2164b81606712b53af2198b4d50eed08 + - path: output/panaroo/results/combined_protein_cdhit_out.txt.clstr + md5sum: aaa9fc2b797c932b6d9ff2df640113f1 + - path: output/panaroo/results/core_alignment_header.embl + contains: ["DNA", "feature", "locus_tag"] + - path: output/panaroo/results/core_gene_alignment.aln + contains: ["test1", "test2", "test3"] + - path: output/panaroo/results/final_graph.gml + contains: ["graph", "isolateNames", "test3"] + - path: output/panaroo/results/gene_data.csv + md5sum: 45df2d26ac81754b858c0e4757e834b2 + - path: output/panaroo/results/gene_presence_absence.Rtab + md5sum: 9efbed5df121dc0c4fbb58869b65c3e4 + - path: output/panaroo/results/gene_presence_absence.csv + contains: ["Gene", "unique", "test3"] + - path: output/panaroo/results/gene_presence_absence_roary.csv + contains: ["Gene", "Max", "Fragment"] + - path: output/panaroo/results/pan_genome_reference.fa + md5sum: d0b03cdfaab8965d86cb1045db3c2d20 + - path: output/panaroo/results/pre_filt_graph.gml + contains: ["graph", "node", "id"] + - path: output/panaroo/results/struct_presence_absence.Rtab + md5sum: 246017db1175f9b1683dfe60cb2e9b5b + - path: output/panaroo/results/summary_statistics.txt + md5sum: 9c73c416e1758bea06c67b4ec9fd0720 + - path: output/panaroo/versions.yml + md5sum: 909e7b046a8a87319986d34b7328641c diff --git a/tests/modules/pirate/main.nf b/tests/modules/pirate/main.nf index 05e5bdd8..45c60713 100644 --- a/tests/modules/pirate/main.nf +++ b/tests/modules/pirate/main.nf @@ -14,10 +14,6 @@ workflow test_pirate { file(params.test_data['candidatus_portiera_aleyrodidarum']['genome']['test3_gff'], checkIfExists: true) ] ] - // [ file("https://github.com/bactopia/bactopia-tests/raw/main/data/reference/gff/GCF_000292685.gff", checkIfExists: true), - // file("https://github.com/bactopia/bactopia-tests/raw/main/data/reference/gff/GCF_000298385.gff", checkIfExists: true), - // file("https://github.com/bactopia/bactopia-tests/raw/main/data/reference/gff/GCF_002849995.gff", checkIfExists: true) ] - // ] PIRATE ( input ) } diff --git a/tests/modules/pirate/test.yml b/tests/modules/pirate/test.yml index 6ef9e6e0..ffee5552 100644 --- a/tests/modules/pirate/test.yml +++ b/tests/modules/pirate/test.yml @@ -16,35 +16,35 @@ - path: output/pirate/results/PIRATE.unique_alleles.tsv contains: ["allele_name"] - path: output/pirate/results/binary_presence_absence.fasta - contains: ["GCF_000292685"] + contains: ["test1"] - path: output/pirate/results/binary_presence_absence.nwk - md5sum: 5b5d86bf97d97de37bb9db514abb7762 + md5sum: 1fcf7434911bbab39b74791259f1f989 - path: output/pirate/results/cluster_alleles.tab contains: ["g0001"] - - path: output/pirate/results/co-ords/GCF_000292685.co-ords.tab - md5sum: d5ca0f06ca7ea1f5486683d5859bc9b8 - - path: output/pirate/results/co-ords/GCF_000298385.co-ords.tab - md5sum: a24d6048b3074242bb558c7fa27a8b03 - - path: output/pirate/results/co-ords/GCF_002849995.co-ords.tab - md5sum: 0c08228585f4fa95686e9b025e0fe9c1 + - path: output/pirate/results/co-ords/test1.co-ords.tab + md5sum: f1e75c045b35bae260dadb1a2f000dfa + - path: output/pirate/results/co-ords/test2.co-ords.tab + md5sum: 953b0d2f1dfd4c3a6a6dd246c9174703 + - path: output/pirate/results/co-ords/test3.co-ords.tab + md5sum: 61f2c52ef77dc9a97a200c57b89b7d69 - path: output/pirate/results/genome2loci.tab - md5sum: bbcea5bfcdcafe14a9aa7261c8e931b8 + md5sum: 2d9cdefd5b1a7f5e20b0a70a6e5fa588 - path: output/pirate/results/genome_list.txt - md5sum: 6534b1635c258ad92b829077addc1ff5 + md5sum: c19ac63da7949b15179f42093cbf95b8 - path: output/pirate/results/link_clusters.log contains: ["parsing paralog file"] - path: output/pirate/results/loci_list.tab - contains: ["GCF_000298385_00242"] + contains: ["test1_00242"] - path: output/pirate/results/loci_paralog_categories.tab - md5sum: 6404d2a32526a398f42d7da768a389bd - - path: output/pirate/results/modified_gffs/GCF_000292685.gff - md5sum: 2b73bda2f84dc634303dc90e641040ca - - path: output/pirate/results/modified_gffs/GCF_000298385.gff - md5sum: b1a9d6557d47e09249f08a7acdbbd618 - - path: output/pirate/results/modified_gffs/GCF_002849995.gff - md5sum: 68532fc9bb639e6d83c731a069f60cf8 + md5sum: f8c3d31f445c3cb66bd95ba77be0a7b8 + - path: output/pirate/results/modified_gffs/test1.gff + md5sum: 5dc220e472165c3b693e1017f38fc0e3 + - path: output/pirate/results/modified_gffs/test2.gff + md5sum: 975f5c7fb363caf1be9c53e5e237bb5d + - path: output/pirate/results/modified_gffs/test3.gff + md5sum: a4735a5ac75ce82aadba8a3de6cabc2e - path: output/pirate/results/pan_sequences.fasta - md5sum: ed835c77fdb20c36aa9d5208eb7ca0cb + md5sum: 0492833706f0f969b49a3555c16ec40d - path: output/pirate/results/pangenome.connected_blocks.tsv contains: ["block_number"] - path: output/pirate/results/pangenome.edges @@ -59,29 +59,29 @@ contains: ["g0091"] - path: output/pirate/results/pangenome.temp - path: output/pirate/results/pangenome_iterations/pan_sequences.50.reclustered.reinflated - contains: ["GCF_000298385_00242"] + contains: ["test1_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.60.reclustered.reinflated - contains: ["GCF_000298385_00242"] + contains: ["test1_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.70.reclustered.reinflated - contains: ["GCF_000298385_00242"] + contains: ["test1_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.80.reclustered.reinflated - contains: ["GCF_000298385_00242"] + contains: ["test1_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.90.reclustered.reinflated - contains: ["GCF_000298385_00242"] + contains: ["test1_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.95.reclustered.reinflated - contains: ["GCF_000298385_00242"] + contains: ["test1_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.98.reclustered.reinflated - contains: ["GCF_000298385_00242"] + contains: ["test1_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.blast.output - md5sum: 9da25d27684bfcc5488987ab2d1fd3a1 + md5sum: ffb3b5bf1ba24bf2bd0be677500139a2 - path: output/pirate/results/pangenome_iterations/pan_sequences.cdhit_clusters - contains: ["GCF_000298385_00081"] + contains: ["test1_00081"] - path: output/pirate/results/pangenome_iterations/pan_sequences.core_clusters.tab - contains: ["GCF_000298385_00242"] + contains: ["test1_00242"] - path: output/pirate/results/pangenome_iterations/pan_sequences.mcl_log.txt contains: ["chaos"] - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta - md5sum: 84668b6c65b57026a17a50b0edd02541 + md5sum: 6e483c773ed90bd50b33f2bd569343e4 - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.pdb - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.pot - path: output/pirate/results/pangenome_iterations/pan_sequences.representative.fasta.ptf @@ -95,4 +95,4 @@ - path: output/pirate/results/representative_sequences.ffn contains: ["representative_genome"] - path: output/pirate/results/split_groups.log - contains: ["g0213"] + contains: ["g0"] From e3a5795652ae9838111b33483a80ad733e7501c4 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 24 Mar 2022 21:44:12 -0500 Subject: [PATCH 116/592] Homer/findpeaks improvements (#1436) * fix(homer): Update expected file path to improve caching * docs(homer): Update findpeaks * test(homer): Add maketagdirectory dependency Co-authored-by: Robert A. Petit III --- modules/homer/findpeaks/main.nf | 4 ++-- modules/homer/findpeaks/meta.yml | 6 ++++-- tests/config/pytest_modules.yml | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/homer/findpeaks/main.nf b/modules/homer/findpeaks/main.nf index b9947774..4858d6da 100644 --- a/modules/homer/findpeaks/main.nf +++ b/modules/homer/findpeaks/main.nf @@ -13,8 +13,8 @@ process HOMER_FINDPEAKS { tuple val(meta), path(tagDir) output: - tuple val(meta), path("*peaks.txt"), emit: txt - path "versions.yml" , emit: versions + tuple val(meta), path("*.peaks.txt"), emit: txt + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/homer/findpeaks/meta.yml b/modules/homer/findpeaks/meta.yml index e7cef0cd..72eb8d0c 100644 --- a/modules/homer/findpeaks/meta.yml +++ b/modules/homer/findpeaks/meta.yml @@ -7,7 +7,9 @@ tools: - homer: description: | HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of tools for Motif Discovery and next-gen sequencing analysis. - documentation: http://homer.ucsd.edu/homer/ + homepage: "http://homer.ucsd.edu/homer/index.html" + documentation: "http://homer.ucsd.edu/homer/" + tool_dev_url: "http://homer.ucsd.edu/homer/ngs/peaks.html" doi: 10.1016/j.molcel.2010.05.004. licence: ["GPL-3.0-or-later"] input: @@ -29,7 +31,7 @@ output: - peaks: type: file description: The found peaks - pattern: "*peaks.txt" + pattern: "*.peaks.txt" - versions: type: file description: File containing software versions diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 13bcbbd3..a211acbc 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -876,6 +876,7 @@ homer/annotatepeaks: homer/findpeaks: - modules/homer/findpeaks/** + - modules/homer/maketagdirectory/** - tests/modules/homer/findpeaks/** homer/maketagdirectory: From b5825fe6b336352024aebccd274da1d131188bfc Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Fri, 25 Mar 2022 07:46:51 +0100 Subject: [PATCH 117/592] Mpileup also likes intervals (#1445) * Mpileup also likes intervals * Also update meta yml with inclusive input and intervals Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: Maxime U. Garcia --- modules/samtools/mpileup/main.nf | 5 +++-- modules/samtools/mpileup/meta.yml | 6 +++++- tests/modules/samtools/mpileup/main.nf | 13 ++++++++++++- tests/modules/samtools/mpileup/test.yml | 19 ++++++++++++++++--- 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/modules/samtools/mpileup/main.nf b/modules/samtools/mpileup/main.nf index cea40321..474a2492 100644 --- a/modules/samtools/mpileup/main.nf +++ b/modules/samtools/mpileup/main.nf @@ -8,7 +8,7 @@ process SAMTOOLS_MPILEUP { 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" input: - tuple val(meta), path(bam) + tuple val(meta), path(input), path(intervals) path fasta output: @@ -21,12 +21,13 @@ process SAMTOOLS_MPILEUP { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def intervals = intervals ? "-l ${intervals}" : "" """ samtools mpileup \\ --fasta-ref $fasta \\ --output ${prefix}.mpileup \\ $args \\ - $bam + $input cat <<-END_VERSIONS > versions.yml "${task.process}": samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') diff --git a/modules/samtools/mpileup/meta.yml b/modules/samtools/mpileup/meta.yml index c384f5c6..ae499e92 100644 --- a/modules/samtools/mpileup/meta.yml +++ b/modules/samtools/mpileup/meta.yml @@ -21,7 +21,7 @@ input: 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}" @@ -29,6 +29,10 @@ input: type: file description: FASTA reference file pattern: "*.{fasta,fa}" + - intervals: + type: file + description: Interval FILE + pattern: "*.bed" output: - meta: type: map diff --git a/tests/modules/samtools/mpileup/main.nf b/tests/modules/samtools/mpileup/main.nf index dc58cc2c..f7fd4b43 100644 --- a/tests/modules/samtools/mpileup/main.nf +++ b/tests/modules/samtools/mpileup/main.nf @@ -6,7 +6,18 @@ include { SAMTOOLS_MPILEUP } from '../../../../modules/samtools/mpileup/main.nf' workflow test_samtools_mpileup { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + [] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + SAMTOOLS_MPILEUP ( input, fasta ) +} + +workflow test_samtools_mpileup_intervals { + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true) ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) diff --git a/tests/modules/samtools/mpileup/test.yml b/tests/modules/samtools/mpileup/test.yml index 53a9c142..405263d1 100644 --- a/tests/modules/samtools/mpileup/test.yml +++ b/tests/modules/samtools/mpileup/test.yml @@ -1,8 +1,21 @@ -- name: samtools mpileup - command: nextflow run ./tests/modules/samtools/mpileup -entry test_samtools_mpileup -c ./tests/config/nextflow.config -c ./tests/modules/samtools/mpileup/nextflow.config +- name: samtools mpileup test_samtools_mpileup + command: nextflow run tests/modules/samtools/mpileup -entry test_samtools_mpileup -c tests/config/nextflow.config tags: - samtools - samtools/mpileup files: - - path: ./output/samtools/test.mpileup + - path: output/samtools/test.mpileup md5sum: 958e6bead4103d72026f80153b6b5150 + - path: output/samtools/versions.yml + md5sum: 26350e1e145451f0b807911db029861e + +- name: samtools mpileup test_samtools_mpileup_intervals + command: nextflow run tests/modules/samtools/mpileup -entry test_samtools_mpileup_intervals -c tests/config/nextflow.config + tags: + - samtools + - samtools/mpileup + files: + - path: output/samtools/test.mpileup + md5sum: 958e6bead4103d72026f80153b6b5150 + - path: output/samtools/versions.yml + md5sum: 11d8118a558efb9db6798453862d719c From e786457fb0da9653659b921fc47985554f28273c Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Fri, 25 Mar 2022 11:26:47 +0100 Subject: [PATCH 118/592] feat: add readgroup info + reorder samtools command line to mimic bwamem (#1447) --- modules/dragmap/align/main.nf | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/dragmap/align/main.nf b/modules/dragmap/align/main.nf index 9f261cc2..ee94a9a8 100644 --- a/modules/dragmap/align/main.nf +++ b/modules/dragmap/align/main.nf @@ -24,16 +24,18 @@ process DRAGMAP_ALIGN { def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def read_group = meta.read_group ? "--RGSM ${meta.read_group}" : "" def samtools_command = sort_bam ? 'sort' : 'view' if (meta.single_end) { """ dragen-os \\ -r $hashmap \\ - -1 $reads \\ - --num-threads $task.cpus \\ $args \\ + $read_group \\ + --num-threads $task.cpus \\ + -1 $reads \\ 2> ${prefix}.dragmap.log \\ - | samtools $samtools_command -@ $task.cpus $args2 -o ${prefix}.bam - + | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -46,12 +48,13 @@ process DRAGMAP_ALIGN { """ dragen-os \\ -r $hashmap \\ + $args \\ + $read_group \\ + --num-threads $task.cpus \\ -1 ${reads[0]} \\ -2 ${reads[1]} \\ - --num-threads $task.cpus \\ - $args \\ 2> ${prefix}.dragmap.log \\ - | samtools $samtools_command -@ $task.cpus $args2 -o ${prefix}.bam - + | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - cat <<-END_VERSIONS > versions.yml "${task.process}": From 3d31fa4d04177579e86044bf111588376e1a0c12 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Fri, 25 Mar 2022 14:01:57 +0100 Subject: [PATCH 119/592] CAT: Use meta map and supply output file name via modules.config (#1446) * Use meta map and supply output file name via modules.config * Remove all def declarations to make it work * update tests & remove extra . * fix ze tests * update meta.yml with meta map info * add tag line now that meta is available --- modules/cat/cat/main.nf | 20 ++++++++------- modules/cat/cat/meta.yml | 9 ++++--- tests/modules/cat/cat/main.nf | 37 ++++++++++++++++----------- tests/modules/cat/cat/nextflow.config | 8 ++++++ tests/modules/cat/cat/test.yml | 4 +-- 5 files changed, 49 insertions(+), 29 deletions(-) diff --git a/modules/cat/cat/main.nf b/modules/cat/cat/main.nf index 4ee44599..25dcc652 100644 --- a/modules/cat/cat/main.nf +++ b/modules/cat/cat/main.nf @@ -1,4 +1,5 @@ process CAT_CAT { + tag "$meta.id" label 'process_low' conda (params.enable_conda ? "conda-forge::pigz=2.3.4" : null) @@ -7,12 +8,11 @@ process CAT_CAT { 'quay.io/biocontainers/pigz:2.3.4' }" input: - path files_in - val file_out + tuple val(meta), path(files_in) output: - path "${file_out}*" , emit: file_out - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}"), emit: file_out + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -29,16 +29,18 @@ process CAT_CAT { // | gzipped | ungzipped | zcat | | // | ungzipped | gzipped | cat | pigz | - def in_zip = file_list[0].endsWith('.gz') - def out_zip = file_out.endsWith('.gz') - def command1 = (in_zip && !out_zip) ? 'zcat' : 'cat' - def command2 = (!in_zip && out_zip) ? "| pigz -c -p $task.cpus $args2" : '' + // Use input file ending as default + prefix = task.ext.prefix ?: "${meta.id}${file_list[0].substring(file_list[0].lastIndexOf('.'))}" + out_zip = prefix.endsWith('.gz') + in_zip = file_list[0].endsWith('.gz') + command1 = (in_zip && !out_zip) ? 'zcat' : 'cat' + command2 = (!in_zip && out_zip) ? "| pigz -c -p $task.cpus $args2" : '' """ $command1 \\ $args \\ ${file_list.join(' ')} \\ $command2 \\ - > $file_out + > ${prefix} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/cat/cat/meta.yml b/modules/cat/cat/meta.yml index e0a6361d..5eeff5a6 100644 --- a/modules/cat/cat/meta.yml +++ b/modules/cat/cat/meta.yml @@ -12,13 +12,15 @@ tools: tool_dev_url: None licence: ["GPL-3.0-or-later"] input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] - files_in: type: file description: List of compressed / uncompressed files pattern: "*" - - file_out: - type: value - description: Full name of output file with or without .gz extension output: - versions: @@ -32,3 +34,4 @@ output: authors: - "@erikrikarddaniel" + - "@FriederikeHanssen" diff --git a/tests/modules/cat/cat/main.nf b/tests/modules/cat/cat/main.nf index 1fd56851..24e1d00d 100644 --- a/tests/modules/cat/cat/main.nf +++ b/tests/modules/cat/cat/main.nf @@ -2,53 +2,60 @@ nextflow.enable.dsl = 2 -include { CAT_CAT } from '../../../../modules/cat/cat/main.nf' +include { CAT_CAT } from '../../../../modules/cat/cat/main.nf' +include { CAT_CAT as CAT_UNZIPPED_ZIPPED } from '../../../../modules/cat/cat/main.nf' +include { CAT_CAT as CAT_ZIPPED_UNZIPPED } from '../../../../modules/cat/cat/main.nf' workflow test_cat_unzipped_unzipped { input = [ - file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['genome_sizes'], checkIfExists: true) + [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_sizes'], checkIfExists: true) ] ] - CAT_CAT ( input, 'cat.txt' ) + CAT_CAT ( input ) } workflow test_cat_zipped_zipped { input = [ - file(params.test_data['sarscov2']['genome']['genome_gff3_gz'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['contigs_genome_maf_gz'], checkIfExists: true) + [ id:'test', single_end:true ], // meta map + [file(params.test_data['sarscov2']['genome']['genome_gff3_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['contigs_genome_maf_gz'], checkIfExists: true)] ] - CAT_CAT ( input, 'cat.txt.gz' ) + CAT_CAT ( input ) } workflow test_cat_zipped_unzipped { input = [ - file(params.test_data['sarscov2']['genome']['genome_gff3_gz'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['contigs_genome_maf_gz'], checkIfExists: true) + [ id:'test', single_end:true ], // meta map + [file(params.test_data['sarscov2']['genome']['genome_gff3_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['contigs_genome_maf_gz'], checkIfExists: true)] ] - CAT_CAT ( input, 'cat.txt' ) + CAT_ZIPPED_UNZIPPED ( input ) } workflow test_cat_unzipped_zipped { input = [ - file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), - file(params.test_data['sarscov2']['genome']['genome_sizes'], checkIfExists: true) + [ id:'test', single_end:true ], // meta map + [file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['genome_sizes'], checkIfExists: true)] ] - CAT_CAT ( input, 'cat.txt.gz' ) + CAT_UNZIPPED_ZIPPED ( input ) } workflow test_cat_one_file_unzipped_zipped { input = [ - file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] - CAT_CAT ( input, 'cat.txt.gz' ) + CAT_UNZIPPED_ZIPPED ( input ) } diff --git a/tests/modules/cat/cat/nextflow.config b/tests/modules/cat/cat/nextflow.config index 8730f1c4..b0077a9c 100644 --- a/tests/modules/cat/cat/nextflow.config +++ b/tests/modules/cat/cat/nextflow.config @@ -2,4 +2,12 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: CAT_UNZIPPED_ZIPPED { + ext.prefix = 'cat.txt.gz' + } + + withName: CAT_ZIPPED_UNZIPPED { + ext.prefix = 'cat.txt' + } } + diff --git a/tests/modules/cat/cat/test.yml b/tests/modules/cat/cat/test.yml index 1244d8d2..d6e6595e 100644 --- a/tests/modules/cat/cat/test.yml +++ b/tests/modules/cat/cat/test.yml @@ -4,7 +4,7 @@ - cat - cat/cat files: - - path: output/cat/cat.txt + - path: output/cat/test.fasta md5sum: f44b33a0e441ad58b2d3700270e2dbe2 - name: cat zipped zipped @@ -13,7 +13,7 @@ - cat - cat/cat files: - - path: output/cat/cat.txt.gz + - path: output/cat/test.gz - name: cat zipped unzipped command: nextflow run ./tests/modules/cat/cat -entry test_cat_zipped_unzipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config From 98ed71c8f6968bc689f170e2b79d0866e3f28cda Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 25 Mar 2022 08:29:36 -0500 Subject: [PATCH 120/592] feat(homer): Add pos2bed module (#1435) * feat(homer): Add pos2bed module * test(homer): Pass bed format * test(homer): Add upstream dependencies to avoid regressions * Update modules/homer/pos2bed/main.nf Co-authored-by: FriederikeHanssen --- modules/homer/pos2bed/main.nf | 33 ++++++++++++++++ modules/homer/pos2bed/meta.yml | 42 +++++++++++++++++++++ tests/config/pytest_modules.yml | 6 +++ tests/modules/homer/pos2bed/main.nf | 19 ++++++++++ tests/modules/homer/pos2bed/nextflow.config | 9 +++++ tests/modules/homer/pos2bed/test.yml | 10 +++++ 6 files changed, 119 insertions(+) create mode 100644 modules/homer/pos2bed/main.nf create mode 100644 modules/homer/pos2bed/meta.yml create mode 100644 tests/modules/homer/pos2bed/main.nf create mode 100644 tests/modules/homer/pos2bed/nextflow.config create mode 100644 tests/modules/homer/pos2bed/test.yml diff --git a/modules/homer/pos2bed/main.nf b/modules/homer/pos2bed/main.nf new file mode 100644 index 00000000..b85a30b5 --- /dev/null +++ b/modules/homer/pos2bed/main.nf @@ -0,0 +1,33 @@ +def VERSION = '4.11' // Version information not provided by tool on CLI + +process HOMER_POS2BED { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::homer=4.11" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/homer:4.11--pl526hc9558a2_3' : + 'quay.io/biocontainers/homer:4.11--pl526hc9558a2_3' }" + + input: + tuple val(meta), path(peaks) + + output: + tuple val(meta), path("*.bed"), emit: bed + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + pos2bed.pl $peaks > ${prefix}.bed + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + homer: $VERSION + END_VERSIONS + """ +} diff --git a/modules/homer/pos2bed/meta.yml b/modules/homer/pos2bed/meta.yml new file mode 100644 index 00000000..fb75bb1f --- /dev/null +++ b/modules/homer/pos2bed/meta.yml @@ -0,0 +1,42 @@ +name: "homer_pos2bed" +description: Coverting from HOMER peak to BED file formats +keywords: + - peaks +tools: + - "homer": + description: | + HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of tools for Motif Discovery and next-gen sequencing analysis. + homepage: "http://homer.ucsd.edu/homer/index.html" + documentation: "http://homer.ucsd.edu/homer/" + tool_dev_url: "http://homer.ucsd.edu/homer/ngs/miscellaneous.html" + doi: 10.1016/j.molcel.2010.05.004. + licence: ["GPL-3.0-or-later"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - tagDir: + type: directory + description: "The 'Tag Directory'" + pattern: "tagDir" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bed: + type: file + description: BED file + pattern: "*.bed" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@Emiller88" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index a211acbc..17a122b7 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -887,6 +887,12 @@ homer/makeucscfile: - modules/homer/makeucscfile/** - tests/modules/homer/makeucscfile/** +homer/pos2bed: + - modules/homer/pos2bed/** + - modules/homer/maketagdirectory/** + - modules/homer/findpeaks/** + - tests/modules/homer/pos2bed/** + hpsuissero: - modules/hpsuissero/** - tests/modules/hpsuissero/** diff --git a/tests/modules/homer/pos2bed/main.nf b/tests/modules/homer/pos2bed/main.nf new file mode 100644 index 00000000..bcfdc0bc --- /dev/null +++ b/tests/modules/homer/pos2bed/main.nf @@ -0,0 +1,19 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { HOMER_MAKETAGDIRECTORY } from '../../../../modules/homer/maketagdirectory/main.nf' +include { HOMER_FINDPEAKS } from '../../../../modules/homer/findpeaks/main.nf' +include { HOMER_POS2BED } from '../../../../modules/homer/pos2bed/main.nf' + +workflow test_homer_pos2bed { + input = [[id:'test'], + [file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['test2_bed'], checkIfExists: true)]] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + HOMER_MAKETAGDIRECTORY (input, fasta) + HOMER_FINDPEAKS ( HOMER_MAKETAGDIRECTORY.out.tagdir ) + + HOMER_POS2BED ( HOMER_FINDPEAKS.out.txt ) +} diff --git a/tests/modules/homer/pos2bed/nextflow.config b/tests/modules/homer/pos2bed/nextflow.config new file mode 100644 index 00000000..a4c88475 --- /dev/null +++ b/tests/modules/homer/pos2bed/nextflow.config @@ -0,0 +1,9 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: HOMER_MAKETAGDIRECTORY { + ext.args = '-format bed' + } + +} diff --git a/tests/modules/homer/pos2bed/test.yml b/tests/modules/homer/pos2bed/test.yml new file mode 100644 index 00000000..525d61c8 --- /dev/null +++ b/tests/modules/homer/pos2bed/test.yml @@ -0,0 +1,10 @@ +- name: "homer pos2bed" + command: nextflow run ./tests/modules/homer/pos2bed -entry test_homer_pos2bed -c ./tests/config/nextflow.config -c ./tests/modules/homer/pos2bed/nextflow.config + tags: + - "homer" + - "homer/pos2bed" + files: + - path: "output/homer/test.bed" + md5sum: 0b9ebd8f06b9c820a551fbdb2d7635ee + - path: output/homer/versions.yml + md5sum: 1485f4b2d76484e8fe3310e2505de2fd From 1fb1801dcbbc556d04985bda5ba4329a4f50543f Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 25 Mar 2022 08:54:09 -0500 Subject: [PATCH 121/592] refactor(homer): Update output path for bedGraph (#1438) This allow for caching because otherwise it modifies the tag directory input --- modules/homer/makeucscfile/main.nf | 6 +++--- modules/homer/makeucscfile/meta.yml | 2 +- tests/modules/homer/makeucscfile/test.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/homer/makeucscfile/main.nf b/modules/homer/makeucscfile/main.nf index c82435ea..379fad3d 100644 --- a/modules/homer/makeucscfile/main.nf +++ b/modules/homer/makeucscfile/main.nf @@ -13,8 +13,8 @@ process HOMER_MAKEUCSCFILE { tuple val(meta), path(tagDir) output: - tuple val(meta), path("tag_dir/*ucsc.bedGraph.gz"), emit: bedGraph - path "versions.yml" , emit: versions + tuple val(meta), path("*.bedGraph.gz"), emit: bedGraph + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -25,7 +25,7 @@ process HOMER_MAKEUCSCFILE { """ makeUCSCfile \\ $tagDir \\ - -o auto \\ + -o ${prefix}.bedGraph \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/homer/makeucscfile/meta.yml b/modules/homer/makeucscfile/meta.yml index 273f456e..039fd37f 100644 --- a/modules/homer/makeucscfile/meta.yml +++ b/modules/homer/makeucscfile/meta.yml @@ -30,7 +30,7 @@ output: - bedGraph: type: file description: The UCSC bed graph - pattern: "tag_dir/*ucsc.bedGraph.gz" + pattern: "*.bedGraph.gz" - versions: type: file description: File containing software versions diff --git a/tests/modules/homer/makeucscfile/test.yml b/tests/modules/homer/makeucscfile/test.yml index cf3d1b4d..e6ccb9fa 100644 --- a/tests/modules/homer/makeucscfile/test.yml +++ b/tests/modules/homer/makeucscfile/test.yml @@ -4,4 +4,4 @@ - homer - homer/makeucscfile files: - - path: output/homer/tag_dir/tag_dir.ucsc.bedGraph.gz + - path: output/homer/test.bedGraph.gz From a0664567353fae8fdcee1162ee3f015a91271062 Mon Sep 17 00:00:00 2001 From: Simon Pearce <24893913+SPPearce@users.noreply.github.com> Date: Fri, 25 Mar 2022 14:25:07 +0000 Subject: [PATCH 122/592] Add tests for umitools extract and dedup (#1429) * NGSCheckMate v1 * Add some tests for UMItools * Added tests for dedup * Include pytest * Delete main.nf * Delete meta.yml * Delete main.nf * Delete nextflow.config * Delete test.yml * add prettier * Add direct test on bam * Update tests/modules/umitools/dedup/main.nf Co-authored-by: Edmund Miller * Update tests/modules/umitools/dedup/main.nf Co-authored-by: Edmund Miller * Update tests/config/pytest_modules.yml Co-authored-by: Edmund Miller * Not ignore-umi Co-authored-by: Simon Pearce Co-authored-by: Maxime U. Garcia Co-authored-by: Edmund Miller --- tests/config/pytest_modules.yml | 9 +++ tests/modules/umitools/dedup/main.nf | 56 +++++++++++++++++++ tests/modules/umitools/dedup/nextflow.config | 17 ++++++ tests/modules/umitools/dedup/test.yml | 54 ++++++++++++++++++ tests/modules/umitools/extract/main.nf | 29 ++++++++++ .../modules/umitools/extract/nextflow.config | 9 +++ tests/modules/umitools/extract/test.yml | 27 +++++++++ 7 files changed, 201 insertions(+) create mode 100644 tests/modules/umitools/dedup/main.nf create mode 100644 tests/modules/umitools/dedup/nextflow.config create mode 100644 tests/modules/umitools/dedup/test.yml create mode 100644 tests/modules/umitools/extract/main.nf create mode 100644 tests/modules/umitools/extract/nextflow.config create mode 100644 tests/modules/umitools/extract/test.yml diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 17a122b7..78c3fe56 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1763,6 +1763,15 @@ ultra/pipeline: - modules/ultra/pipeline/** - tests/modules/ultra/pipeline/** +umitools/dedup: + - modules/umitools/dedup/** + - modules/umitools/extract/** + - tests/modules/umitools/dedup/** + +umitools/extract: + - modules/umitools/extract/** + - tests/modules/umitools/extract/** + unicycler: - modules/unicycler/** - tests/modules/unicycler/** diff --git a/tests/modules/umitools/dedup/main.nf b/tests/modules/umitools/dedup/main.nf new file mode 100644 index 00000000..f89ba935 --- /dev/null +++ b/tests/modules/umitools/dedup/main.nf @@ -0,0 +1,56 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { UMITOOLS_EXTRACT } from '../../../../modules/umitools/extract/main.nf' +include { BWA_INDEX } from '../../../../modules/bwa/index/main.nf' +include { BWA_MEM } from '../../../../modules/bwa/mem/main.nf' +include { SAMTOOLS_INDEX } from '../../../../modules/samtools/index/main.nf' +include { UMITOOLS_DEDUP } from '../../../../modules/umitools/dedup/main.nf' + +// +// Test with no UMI +// +workflow test_umitools_dedup_no_umi { + input = [ [ id:'test'], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ], + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ] + ] + + UMITOOLS_DEDUP ( input ) +} + +// +// Test with single-end data +// +workflow test_umitools_dedup_single_end { + input = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + UMITOOLS_EXTRACT ( input ) + BWA_INDEX ( fasta ) + BWA_MEM ( UMITOOLS_EXTRACT.out.reads, BWA_INDEX.out.index, true ) + SAMTOOLS_INDEX (BWA_MEM.out.bam) + UMITOOLS_DEDUP(BWA_MEM.out.bam.join(SAMTOOLS_INDEX.out.bai, by: [0])) +} + +// +// Test with paired-end data +// +workflow test_umitools_dedup_paired_end { + input = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + UMITOOLS_EXTRACT ( input ) + BWA_INDEX ( fasta ) + BWA_MEM ( UMITOOLS_EXTRACT.out.reads, BWA_INDEX.out.index, true ) + SAMTOOLS_INDEX (BWA_MEM.out.bam) + UMITOOLS_DEDUP(BWA_MEM.out.bam.join(SAMTOOLS_INDEX.out.bai, by: [0])) +} diff --git a/tests/modules/umitools/dedup/nextflow.config b/tests/modules/umitools/dedup/nextflow.config new file mode 100644 index 00000000..4a7533ef --- /dev/null +++ b/tests/modules/umitools/dedup/nextflow.config @@ -0,0 +1,17 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: UMITOOLS_EXTRACT { + ext.args = '--bc-pattern="NNNN"' + } + + withName: UMITOOLS_DEDUP { + ext.args = '' + ext.prefix = 'dedup' + } + + withName: BWA_MEM { + ext.args2 = '' + } +} diff --git a/tests/modules/umitools/dedup/test.yml b/tests/modules/umitools/dedup/test.yml new file mode 100644 index 00000000..2ba9073b --- /dev/null +++ b/tests/modules/umitools/dedup/test.yml @@ -0,0 +1,54 @@ +- name: umitools dedup test_umitools_dedup_no_umi + command: nextflow run tests/modules/umitools/dedup -entry test_umitools_dedup_no_umi -c tests/config/nextflow.config + tags: + - umitools/dedup + - umitools + files: + - path: output/umitools/dedup.bam + md5sum: 53b4edc399db81b87d2343e78af73cf0 + - path: output/umitools/dedup_edit_distance.tsv + md5sum: 65186b0964e2f8d970cc04d736d8b119 + - path: output/umitools/dedup_per_umi.tsv + md5sum: 8e6783a4a79437b095f095f2aefe7c01 + - path: output/umitools/dedup_per_umi_per_position.tsv + md5sum: 9386db4a104b8e4e32f3ca4a84efa4ac + - path: output/umitools/versions.yml + md5sum: 4aaaa33565bcd9a984255139933d6446 + +- name: umitools dedup test_umitools_dedup_single_end + command: nextflow run tests/modules/umitools/dedup -entry test_umitools_dedup_single_end -c tests/config/nextflow.config + tags: + - umitools + - umitools/dedup + files: + - path: output/bwa/test.bam + md5sum: ea41a3cdca1856b22845e1067fd31f37 + - path: output/bwa/versions.yml + md5sum: ce4d987f2c53f4c01b31d210c357b24a + - path: output/samtools/test.bam.bai + md5sum: 095af0ad3921212597ffd7c342ecd5a0 + - path: output/samtools/versions.yml + md5sum: 69b7cde627c9b4e8403dfc125db71cc7 + - path: output/umitools/dedup.bam + md5sum: d95df177063432748ff33f473910cb1e + - path: output/umitools/versions.yml + md5sum: 730e768dd199d2f5bfb6fd0850446344 + +- name: umitools dedup test_umitools_dedup_paired_end + command: nextflow run tests/modules/umitools/dedup -entry test_umitools_dedup_paired_end -c tests/config/nextflow.config + tags: + - umitools + - umitools/dedup + files: + - path: output/bwa/test.bam + md5sum: 1ad786cae0ff2254c655e3a206929617 + - path: output/bwa/versions.yml + md5sum: b524c5ddf61c20f4a0a93ae8fc78b851 + - path: output/samtools/test.bam.bai + md5sum: 7496f4056a8e86327ca93e350f282fc2 + - path: output/samtools/versions.yml + md5sum: 72fc2ab934fd4bca0f7f14a705530d34 + - path: output/umitools/dedup.bam + md5sum: e8d1eae2aacef76254948c5568e94555 + - path: output/umitools/versions.yml + md5sum: fd39e05042d354b3d8de49b617d3183d diff --git a/tests/modules/umitools/extract/main.nf b/tests/modules/umitools/extract/main.nf new file mode 100644 index 00000000..3baac16a --- /dev/null +++ b/tests/modules/umitools/extract/main.nf @@ -0,0 +1,29 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { UMITOOLS_EXTRACT } from '../../../../modules/umitools/extract/main.nf' + +// +// Test with single-end data +// +workflow test_umitools_extract_single_end { + input = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + + UMITOOLS_EXTRACT ( input ) +} + +// +// Test with paired-end data +// +workflow test_umitools_extract_paired_end { + input = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + + UMITOOLS_EXTRACT ( input ) +} + diff --git a/tests/modules/umitools/extract/nextflow.config b/tests/modules/umitools/extract/nextflow.config new file mode 100644 index 00000000..628f5fcd --- /dev/null +++ b/tests/modules/umitools/extract/nextflow.config @@ -0,0 +1,9 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: UMITOOLS_EXTRACT { + ext.args = '--bc-pattern="NNNN"' + } + +} diff --git a/tests/modules/umitools/extract/test.yml b/tests/modules/umitools/extract/test.yml new file mode 100644 index 00000000..336cd122 --- /dev/null +++ b/tests/modules/umitools/extract/test.yml @@ -0,0 +1,27 @@ +- name: umitools extract test_umitools_extract_single_end + command: nextflow run tests/modules/umitools/extract -entry test_umitools_extract_single_end -c tests/config/nextflow.config + tags: + - umitools/extract + - umitools + files: + - path: output/umitools/test.umi_extract.fastq.gz + should_exist: true + - path: output/umitools/test.umi_extract.log + contains: ["job finished in"] + - path: output/umitools/versions.yml + md5sum: 397e6972343f9d7b8eae387fc18c12c7 + +- name: umitools extract test_umitools_extract_paired_end + command: nextflow run tests/modules/umitools/extract -entry test_umitools_extract_paired_end -c tests/config/nextflow.config + tags: + - umitools/extract + - umitools + files: + - path: output/umitools/test.umi_extract.log + contains: ["job finished in"] + - path: output/umitools/test.umi_extract_1.fastq.gz + should_exist: true + - path: output/umitools/test.umi_extract_2.fastq.gz + should_exist: true + - path: output/umitools/versions.yml + md5sum: 0aec6f919d62b7b79f6d0c5d79411464 From 7111e571cc5b6069de4673cd6165af680f17b4d7 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 25 Mar 2022 12:11:40 -0500 Subject: [PATCH 123/592] Split preseq lcextrap and ccurve (#1440) * fix(preseq): Update lcextrap file name * chore(preseq): Bump lcextrap image * feat: Initialize preseq c_curve * docs(preseq): Update documentation --- modules/preseq/ccurve/main.nf | 40 +++++++++++++++++ modules/preseq/ccurve/meta.yml | 48 +++++++++++++++++++++ modules/preseq/lcextrap/main.nf | 12 +++--- modules/preseq/lcextrap/meta.yml | 9 ++-- tests/config/pytest_modules.yml | 4 ++ tests/modules/preseq/ccurve/main.nf | 25 +++++++++++ tests/modules/preseq/ccurve/nextflow.config | 5 +++ tests/modules/preseq/ccurve/test.yml | 19 ++++++++ tests/modules/preseq/lcextrap/test.yml | 4 +- 9 files changed, 154 insertions(+), 12 deletions(-) create mode 100644 modules/preseq/ccurve/main.nf create mode 100644 modules/preseq/ccurve/meta.yml create mode 100644 tests/modules/preseq/ccurve/main.nf create mode 100644 tests/modules/preseq/ccurve/nextflow.config create mode 100644 tests/modules/preseq/ccurve/test.yml diff --git a/modules/preseq/ccurve/main.nf b/modules/preseq/ccurve/main.nf new file mode 100644 index 00000000..febf83cc --- /dev/null +++ b/modules/preseq/ccurve/main.nf @@ -0,0 +1,40 @@ +process PRESEQ_CCURVE { + tag "$meta.id" + label 'process_medium' + label 'error_ignore' + + conda (params.enable_conda ? "bioconda::preseq=3.1.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/preseq:3.1.2--h445547b_2': + 'quay.io/biocontainers/preseq:3.1.2--h445547b_2' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("*.c_curve.txt"), emit: c_curve + tuple val(meta), path("*.log") , emit: log + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def paired_end = meta.single_end ? '' : '-pe' + """ + preseq \\ + c_curve \\ + $args \\ + $paired_end \\ + -output ${prefix}.c_curve.txt \\ + $bam + cp .command.err ${prefix}.command.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + preseq: \$(echo \$(preseq 2>&1) | sed 's/^.*Version: //; s/Usage:.*\$//') + END_VERSIONS + """ +} diff --git a/modules/preseq/ccurve/meta.yml b/modules/preseq/ccurve/meta.yml new file mode 100644 index 00000000..86ed6296 --- /dev/null +++ b/modules/preseq/ccurve/meta.yml @@ -0,0 +1,48 @@ +name: preseq_ccurve +description: Software for predicting library complexity and genome coverage in high-throughput sequencing +keywords: + - preseq + - library + - complexity +tools: + - preseq: + description: Software for predicting library complexity and genome coverage in high-throughput sequencing + homepage: http://smithlabresearch.org/software/preseq/ + documentation: http://smithlabresearch.org/wp-content/uploads/manual.pdf + tool_dev_url: https://github.com/smithlabcode/preseq + doi: "" + licence: ["GPL"] + +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 ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - ccurve: + type: file + description: File containing output of Preseq c curve + pattern: "*.{c_curve.txt}" + - log: + type: file + description: Log file containing stderr produced by Preseq + pattern: "*.{log}" + +authors: + - "@drpatelh" + - "@Emiller88" diff --git a/modules/preseq/lcextrap/main.nf b/modules/preseq/lcextrap/main.nf index d6dd19e2..97261557 100644 --- a/modules/preseq/lcextrap/main.nf +++ b/modules/preseq/lcextrap/main.nf @@ -5,16 +5,16 @@ process PRESEQ_LCEXTRAP { conda (params.enable_conda ? "bioconda::preseq=3.1.2" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/preseq:3.1.2--h06ef8b0_1' : - 'quay.io/biocontainers/preseq:3.1.2--h06ef8b0_1' }" + 'https://depot.galaxyproject.org/singularity/preseq:3.1.2--h445547b_2': + 'quay.io/biocontainers/preseq:3.1.2--h445547b_2' }" input: tuple val(meta), path(bam) output: - tuple val(meta), path("*.ccurve.txt"), emit: ccurve - tuple val(meta), path("*.log") , emit: log - path "versions.yml" , emit: versions + tuple val(meta), path("*.lc_extrap.txt"), emit: lc_extrap + tuple val(meta), path("*.log") , emit: log + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -28,7 +28,7 @@ process PRESEQ_LCEXTRAP { lc_extrap \\ $args \\ $paired_end \\ - -output ${prefix}.ccurve.txt \\ + -output ${prefix}.lc_extrap.txt \\ $bam cp .command.err ${prefix}.command.log diff --git a/modules/preseq/lcextrap/meta.yml b/modules/preseq/lcextrap/meta.yml index 0e33df25..f1be05a2 100755 --- a/modules/preseq/lcextrap/meta.yml +++ b/modules/preseq/lcextrap/meta.yml @@ -8,8 +8,8 @@ tools: - preseq: description: Software for predicting library complexity and genome coverage in high-throughput sequencing homepage: http://smithlabresearch.org/software/preseq/ - documentation: None - tool_dev_url: None + documentation: http://smithlabresearch.org/wp-content/uploads/manual.pdf + tool_dev_url: https://github.com/smithlabcode/preseq doi: "" licence: ["GPL"] @@ -34,10 +34,10 @@ output: type: file description: File containing software versions pattern: "versions.yml" - - ccurve: + - lc_extrap: type: file description: File containing output of Preseq lcextrap - pattern: "*.{ccurve.txt}" + pattern: "*.{lc_extrap.txt}" - log: type: file description: Log file containing stderr produced by Preseq @@ -45,3 +45,4 @@ output: authors: - "@drpatelh" + - "@Emiller88" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 78c3fe56..183708dc 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1367,6 +1367,10 @@ porechop: - modules/porechop/** - tests/modules/porechop/** +preseq/ccurve: + - modules/preseq/ccurve/** + - tests/modules/preseq/ccurve/** + preseq/lcextrap: - modules/preseq/lcextrap/** - tests/modules/preseq/lcextrap/** diff --git a/tests/modules/preseq/ccurve/main.nf b/tests/modules/preseq/ccurve/main.nf new file mode 100644 index 00000000..59149563 --- /dev/null +++ b/tests/modules/preseq/ccurve/main.nf @@ -0,0 +1,25 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PRESEQ_CCURVE } from '../../../../modules/preseq/ccurve/main.nf' + +workflow test_preseq_ccurve_single_end { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + PRESEQ_CCURVE ( input ) +} + +workflow test_preseq_ccurve_paired_end { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + PRESEQ_CCURVE ( input ) +} diff --git a/tests/modules/preseq/ccurve/nextflow.config b/tests/modules/preseq/ccurve/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/preseq/ccurve/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/preseq/ccurve/test.yml b/tests/modules/preseq/ccurve/test.yml new file mode 100644 index 00000000..c94dc978 --- /dev/null +++ b/tests/modules/preseq/ccurve/test.yml @@ -0,0 +1,19 @@ +- name: preseq ccurve single-end + command: nextflow run ./tests/modules/preseq/ccurve -entry test_preseq_ccurve_single_end -c ./tests/config/nextflow.config -c ./tests/modules/preseq/ccurve/nextflow.config + tags: + - preseq + - preseq/ccurve + files: + - path: output/preseq/test.c_curve.txt + md5sum: cf4743abdd355595d6ec1fb3f38e66e5 + - path: output/preseq/test.command.log + +- name: preseq ccurve paired-end + command: nextflow run ./tests/modules/preseq/ccurve -entry test_preseq_ccurve_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/preseq/ccurve/nextflow.config + tags: + - preseq + - preseq/ccurve + files: + - path: output/preseq/test.c_curve.txt + md5sum: cf4743abdd355595d6ec1fb3f38e66e5 + - path: output/preseq/test.command.log diff --git a/tests/modules/preseq/lcextrap/test.yml b/tests/modules/preseq/lcextrap/test.yml index ecd1d046..f5b5aea4 100644 --- a/tests/modules/preseq/lcextrap/test.yml +++ b/tests/modules/preseq/lcextrap/test.yml @@ -4,7 +4,7 @@ - preseq - preseq/lcextrap files: - - path: output/preseq/test.ccurve.txt + - path: output/preseq/test.lc_extrap.txt md5sum: 1fa5cdd601079329618f61660bee00de - path: output/preseq/test.command.log @@ -14,6 +14,6 @@ - preseq - preseq/lcextrap files: - - path: output/preseq/test.ccurve.txt + - path: output/preseq/test.lc_extrap.txt md5sum: 10e5ea860e87fb6f5dc10f4f20c62040 - path: output/preseq/test.command.log From 27936729f21245558c0425b3284c8bdfd4b805aa Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 25 Mar 2022 12:13:30 -0500 Subject: [PATCH 124/592] Add samtools to homer/maketagdirectory to use bam files (#1437) * fix(homer): Update dependancies for maketagdirectory Closes #1363 * test(homer): Add tests for bam usage * style(homer): Rename meta test * fix(homer): Update args order and add missing \\ * docs(homer): Add DESeq2 and edgeR Co-authored-by: FriederikeHanssen * test(homer): Update md5sum * test(homer): bam => sam * fix(homer): Use nextflow conda recipe instead of biocontainers with commas Co-authored-by: FriederikeHanssen --- modules/homer/maketagdirectory/main.nf | 13 ++++---- modules/homer/maketagdirectory/meta.yml | 33 +++++++++++++++++-- tests/modules/homer/maketagdirectory/main.nf | 23 +++++++++---- .../homer/maketagdirectory/nextflow.config | 6 +++- tests/modules/homer/maketagdirectory/test.yml | 29 ++++++++++++---- 5 files changed, 81 insertions(+), 23 deletions(-) diff --git a/modules/homer/maketagdirectory/main.nf b/modules/homer/maketagdirectory/main.nf index 262998d5..0ab855da 100644 --- a/modules/homer/maketagdirectory/main.nf +++ b/modules/homer/maketagdirectory/main.nf @@ -4,13 +4,13 @@ process HOMER_MAKETAGDIRECTORY { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::homer=4.11=pl526hc9558a2_3" : null) + conda (params.enable_conda ? "bioconda::homer=4.11 bioconda::samtools=1.11 conda-forge::r-base=4.0.2 bioconda::bioconductor-deseq2=1.30.0 bioconda::bioconductor-edger=3.32.0 anaconda::perl=5.26.2" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/homer:4.11--pl526hc9558a2_3' : - 'quay.io/biocontainers/homer:4.11--pl526hc9558a2_3' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-29293b111ffe5b4c1d1e14c711264aaed6b97b4a:594338b771cacf1623bd27772b5e12825f8835f2-0' : + 'quay.io/biocontainers/mulled-v2-29293b111ffe5b4c1d1e14c711264aaed6b97b4a:594338b771cacf1623bd27772b5e12825f8835f2-0' }" input: - tuple val(meta), path(bed) + tuple val(meta), path(bam) path fasta output: @@ -26,13 +26,14 @@ process HOMER_MAKETAGDIRECTORY { """ makeTagDirectory \\ tag_dir \\ + -genome $fasta \\ $args \\ - $bed \\ - -genome $fasta + $bam cat <<-END_VERSIONS > versions.yml "${task.process}": homer: $VERSION + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ } diff --git a/modules/homer/maketagdirectory/meta.yml b/modules/homer/maketagdirectory/meta.yml index 2472e0f0..31d59ee7 100644 --- a/modules/homer/maketagdirectory/meta.yml +++ b/modules/homer/maketagdirectory/meta.yml @@ -3,6 +3,8 @@ description: Create a tag directory with the HOMER suite keywords: - peaks - bed + - bam + - sam tools: - homer: description: | @@ -10,16 +12,41 @@ tools: documentation: http://homer.ucsd.edu/homer/ doi: 10.1016/j.molcel.2010.05.004. licence: ["GPL-3.0-or-later"] + - 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 + licence: ["MIT"] + - DESeq2: + description: | + Differential gene expression analysis based on the negative binomial distribution + homepage: "https://bioconductor.org/packages/DESeq2" + documentation: "https://bioconductor.org/packages/DESeq2" + tool_dev_url: "https://github.com/mikelove/DESeq2" + doi: 10.18129/B9.bioc.DESeq2 + licence: ["LGPL-3.0-or-later"] + - edgeR: + description: | + Empirical Analysis of Digital Gene Expression Data in R + homepage: "https://bioinf.wehi.edu.au/edgeR" + documentation: "https://bioconductor.org/packages/edgeR" + tool_dev_url: " https://git.bioconductor.org/packages/edgeR" + doi: 10.18129/B9.bioc.edgeR + licence: ["GPL >=2"] input: - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - bed: + - bam: type: file - description: The peak files in bed format - pattern: "*.bed" + description: BAM/BED/SAM file + pattern: "*.{bam,bed,sam}" - fasta: type: file description: Fasta file of reference genome diff --git a/tests/modules/homer/maketagdirectory/main.nf b/tests/modules/homer/maketagdirectory/main.nf index 766aff0d..7de693e6 100644 --- a/tests/modules/homer/maketagdirectory/main.nf +++ b/tests/modules/homer/maketagdirectory/main.nf @@ -2,19 +2,22 @@ nextflow.enable.dsl = 2 -include { HOMER_MAKETAGDIRECTORY } from '../../../../modules/homer/maketagdirectory/main.nf' +include { + HOMER_MAKETAGDIRECTORY as HOMER_MAKETAGDIRECTORY_BED + HOMER_MAKETAGDIRECTORY as HOMER_MAKETAGDIRECTORY_BAM +} from '../../../../modules/homer/maketagdirectory/main.nf' -workflow test_homer_maketagdirectory { +workflow test_homer_maketagdirectory_bed { input = [[id:'test'], [file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true), file(params.test_data['sarscov2']['genome']['test2_bed'], checkIfExists: true)]] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - HOMER_MAKETAGDIRECTORY (input, fasta) + HOMER_MAKETAGDIRECTORY_BED (input, fasta) } -workflow test_homer_meta_maketagdirectory { +workflow test_homer_maketagdirectory_meta { input = [[[ id:'test1'], [file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true)]], @@ -25,8 +28,14 @@ workflow test_homer_meta_maketagdirectory { meta_input = [[id: 'meta_test']] + [ input.collect{it[1]}.flatten() ] - HOMER_MAKETAGDIRECTORY (meta_input, fasta) + HOMER_MAKETAGDIRECTORY_BED (meta_input, fasta) } -// TODO Make a failing bam test -// TODO Make a pass bam test that feeds the bam through samtools first +workflow test_homer_maketagdirectory_bam { + input = [[id:'test'], + [file(params.test_data['sarscov2']['illumina']['test_single_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)]] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + + HOMER_MAKETAGDIRECTORY_BAM (input, fasta) +} diff --git a/tests/modules/homer/maketagdirectory/nextflow.config b/tests/modules/homer/maketagdirectory/nextflow.config index 81587d69..9d7a3f9f 100644 --- a/tests/modules/homer/maketagdirectory/nextflow.config +++ b/tests/modules/homer/maketagdirectory/nextflow.config @@ -2,8 +2,12 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: HOMER_MAKETAGDIRECTORY { + withName: HOMER_MAKETAGDIRECTORY_BED { ext.args = '-format bed' } + withName: HOMER_MAKETAGDIRECTORY_BAM { + ext.args = '-format sam' + } + } diff --git a/tests/modules/homer/maketagdirectory/test.yml b/tests/modules/homer/maketagdirectory/test.yml index 746c6ef6..28e74c32 100644 --- a/tests/modules/homer/maketagdirectory/test.yml +++ b/tests/modules/homer/maketagdirectory/test.yml @@ -1,5 +1,5 @@ -- name: homer maketagdirectory - command: nextflow run ./tests/modules/homer/maketagdirectory -entry test_homer_maketagdirectory -c ./tests/config/nextflow.config -c ./tests/modules/homer/maketagdirectory/nextflow.config +- name: homer maketagdirectory bed + command: nextflow run ./tests/modules/homer/maketagdirectory -entry test_homer_maketagdirectory_bed -c ./tests/config/nextflow.config -c ./tests/modules/homer/maketagdirectory/nextflow.config tags: - homer - homer/maketagdirectory @@ -11,12 +11,12 @@ - path: output/homer/tag_dir/tagCountDistribution.txt md5sum: fd4ee7ce7c5dfd7c9d739534b8180578 - path: output/homer/tag_dir/tagInfo.txt - md5sum: 816baa642c946f8284eaa465638e9abb + md5sum: ff56f30411b221b847aa4e6e9a6098a1 - path: output/homer/tag_dir/tagLengthDistribution.txt md5sum: e5aa2b9843ca9c04ace297280aed6af4 -- name: homer meta maketagdirectory - command: nextflow run ./tests/modules/homer/maketagdirectory -entry test_homer_meta_maketagdirectory -c ./tests/config/nextflow.config -c ./tests/modules/homer/maketagdirectory/nextflow.config +- name: homer maketagdirectory meta + command: nextflow run ./tests/modules/homer/maketagdirectory -entry test_homer_maketagdirectory_meta -c ./tests/config/nextflow.config -c ./tests/modules/homer/maketagdirectory/nextflow.config tags: - homer - homer/maketagdirectory @@ -28,6 +28,23 @@ - path: output/homer/tag_dir/tagCountDistribution.txt md5sum: fd4ee7ce7c5dfd7c9d739534b8180578 - path: output/homer/tag_dir/tagInfo.txt - md5sum: 816baa642c946f8284eaa465638e9abb + md5sum: ff56f30411b221b847aa4e6e9a6098a1 - path: output/homer/tag_dir/tagLengthDistribution.txt md5sum: e5aa2b9843ca9c04ace297280aed6af4 + +- name: homer maketagdirectory bam + command: nextflow run ./tests/modules/homer/maketagdirectory -entry test_homer_maketagdirectory_bam -c ./tests/config/nextflow.config -c ./tests/modules/homer/maketagdirectory/nextflow.config + tags: + - homer + - homer/maketagdirectory + files: + - path: output/homer/tag_dir/MT192765.1.tags.tsv + md5sum: 365808c4751ef6dd7085ac52037a22bc + - path: output/homer/tag_dir/tagAutocorrelation.txt + md5sum: 8b396f2aef1cdd3af4fab57b142d3250 + - path: output/homer/tag_dir/tagCountDistribution.txt + md5sum: afc6d007096c3872bbe84c9dc8edb832 + - path: output/homer/tag_dir/tagInfo.txt + md5sum: fbaf46eeb8a0723fa8b5eabd93f9d821 + - path: output/homer/tag_dir/tagLengthDistribution.txt + md5sum: 44f231adb2a705ae81950808c55cf248 From 4efa8da5c5bd8b68d667ddade7ed398e16c145f6 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Fri, 25 Mar 2022 18:22:17 +0100 Subject: [PATCH 125/592] controlfreec significance (#1451) * controlfreec significance * move freec files to own subfolder * Fix meta.yml naming * Fix meta.yml naming * Fix linting * Forgot to refactor * forgot more refactoring * Too much refactoring on output paths * Too little refactoring here * update checksum --- .../controlfreec/assesssignificance/main.nf | 30 +++++++++++ .../controlfreec/assesssignificance/meta.yml | 50 +++++++++++++++++++ modules/controlfreec/{ => freec}/main.nf | 2 +- modules/controlfreec/{ => freec}/meta.yml | 4 +- tests/config/pytest_modules.yml | 10 ++-- .../controlfreec/assesssignificance/main.nf | 42 ++++++++++++++++ .../{ => assesssignificance}/nextflow.config | 2 +- .../controlfreec/assesssignificance/test.yml | 10 ++++ .../modules/controlfreec/{ => freec}/main.nf | 27 +++++----- .../controlfreec/freec/nextflow.config | 26 ++++++++++ .../modules/controlfreec/{ => freec}/test.yml | 7 +-- 11 files changed, 187 insertions(+), 23 deletions(-) create mode 100644 modules/controlfreec/assesssignificance/main.nf create mode 100644 modules/controlfreec/assesssignificance/meta.yml rename modules/controlfreec/{ => freec}/main.nf (99%) rename modules/controlfreec/{ => freec}/meta.yml (99%) create mode 100644 tests/modules/controlfreec/assesssignificance/main.nf rename tests/modules/controlfreec/{ => assesssignificance}/nextflow.config (96%) create mode 100644 tests/modules/controlfreec/assesssignificance/test.yml rename tests/modules/controlfreec/{ => freec}/main.nf (66%) create mode 100644 tests/modules/controlfreec/freec/nextflow.config rename tests/modules/controlfreec/{ => freec}/test.yml (78%) diff --git a/modules/controlfreec/assesssignificance/main.nf b/modules/controlfreec/assesssignificance/main.nf new file mode 100644 index 00000000..dc9c6e86 --- /dev/null +++ b/modules/controlfreec/assesssignificance/main.nf @@ -0,0 +1,30 @@ +process CONTROLFREEC_ASSESSSIGNIFICANCE { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::control-freec=11.6" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': + 'quay.io/biocontainers/control-freec:11.6--h1b792b2_1' }" + + input: + tuple val(meta), path(cnvs), path(ratio) + + output: + tuple val(meta), path("*.p.value.txt"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + cat /usr/local/bin/assess_significance.R | R --slave --args ${cnvs} ${ratio} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ +} diff --git a/modules/controlfreec/assesssignificance/meta.yml b/modules/controlfreec/assesssignificance/meta.yml new file mode 100644 index 00000000..0451cca3 --- /dev/null +++ b/modules/controlfreec/assesssignificance/meta.yml @@ -0,0 +1,50 @@ +name: controlfreec_assesssignificance +description: Add both Wilcoxon test and Kolmogorov-Smirnov test p-values to each CNV output of FREEC +keywords: + - cna + - cnv + - somatic + - single + - tumor-only +tools: + - controlfreec/assesssignificance: + description: Copy number and genotype annotation from whole genome and whole exome sequencing data. + homepage: http://boevalab.inf.ethz.ch/FREEC + documentation: http://boevalab.inf.ethz.ch/FREEC/tutorial.html + tool_dev_url: https://github.com/BoevaLab/FREEC/ + doi: "10.1093/bioinformatics/btq635" + licence: ["GPL >=2"] + +input: + # Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - cnvs: + type: file + description: _CNVs file generated by FREEC + pattern: "*._CNVs" + - ratio: + type: file + description: ratio file generated by FREEC + pattern: "*.ratio.txt" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - p_value_txt: + type: file + description: CNV file containing p_values for each call + pattern: "*.p.value.txt" + +authors: + - "@FriederikeHanssen" diff --git a/modules/controlfreec/main.nf b/modules/controlfreec/freec/main.nf similarity index 99% rename from modules/controlfreec/main.nf rename to modules/controlfreec/freec/main.nf index 21084f64..ba48ea1e 100644 --- a/modules/controlfreec/main.nf +++ b/modules/controlfreec/freec/main.nf @@ -1,4 +1,4 @@ -process CONTROLFREEC { +process CONTROLFREEC_FREEC { tag "$meta.id" label 'process_low' diff --git a/modules/controlfreec/meta.yml b/modules/controlfreec/freec/meta.yml similarity index 99% rename from modules/controlfreec/meta.yml rename to modules/controlfreec/freec/meta.yml index b2a6772b..a9a7375e 100644 --- a/modules/controlfreec/meta.yml +++ b/modules/controlfreec/freec/meta.yml @@ -1,4 +1,4 @@ -name: controlfreec +name: controlfreec_freec description: Copy number and genotype annotation from whole genome and whole exome sequencing data keywords: - cna @@ -7,7 +7,7 @@ keywords: - single - tumor-only tools: - - controlfreec: + - controlfreec/freec: description: Copy number and genotype annotation from whole genome and whole exome sequencing data. homepage: http://boevalab.inf.ethz.ch/FREEC documentation: http://boevalab.inf.ethz.ch/FREEC/tutorial.html diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 183708dc..20d9ad1d 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -419,9 +419,13 @@ cnvkit/batch: - modules/cnvkit/batch/** - tests/modules/cnvkit/batch/** -controlfreec: - - modules/controlfreec/** - - tests/modules/controlfreec/** +controlfreec/assesssignificance: + - modules/controlfreec/assesssignificance/** + - tests/modules/controlfreec/assesssignificance/** + +controlfreec/freec: + - modules/controlfreec/freec/** + - tests/modules/controlfreec/freec/** cooler/cload: - modules/cooler/cload/** diff --git a/tests/modules/controlfreec/assesssignificance/main.nf b/tests/modules/controlfreec/assesssignificance/main.nf new file mode 100644 index 00000000..f8d8aa1d --- /dev/null +++ b/tests/modules/controlfreec/assesssignificance/main.nf @@ -0,0 +1,42 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CONTROLFREEC_ASSESSSIGNIFICANCE } from '../../../../modules/controlfreec/assesssignificance/main.nf' +include { CONTROLFREEC_FREEC } from '../../../../modules/controlfreec/freec/main.nf' +include { UNTAR } from '../../../../modules/untar/main.nf' + +workflow test_controlfreec_assesssignificance { + + input = [ + [ id:'test', single_end:false, sex:'XX' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_mpileup'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] + ) + + sig_in = CONTROLFREEC_FREEC.out.CNV.join(CONTROLFREEC_FREEC.out.ratio) + CONTROLFREEC_ASSESSSIGNIFICANCE ( sig_in ) +} diff --git a/tests/modules/controlfreec/nextflow.config b/tests/modules/controlfreec/assesssignificance/nextflow.config similarity index 96% rename from tests/modules/controlfreec/nextflow.config rename to tests/modules/controlfreec/assesssignificance/nextflow.config index 5c4250be..65273dea 100644 --- a/tests/modules/controlfreec/nextflow.config +++ b/tests/modules/controlfreec/assesssignificance/nextflow.config @@ -2,7 +2,7 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName:CONTROLFREEC{ + withName:CONTROLFREEC_FREEC{ ext.args = { [ "sample":[ inputformat: 'pileup', diff --git a/tests/modules/controlfreec/assesssignificance/test.yml b/tests/modules/controlfreec/assesssignificance/test.yml new file mode 100644 index 00000000..58f83f43 --- /dev/null +++ b/tests/modules/controlfreec/assesssignificance/test.yml @@ -0,0 +1,10 @@ +- name: controlfreec assesssignificance test_controlfreec_assesssignificance + command: nextflow run tests/modules/controlfreec/assesssignificance -entry test_controlfreec_assesssignificance -c tests/config/nextflow.config + tags: + - controlfreec/assesssignificance + - controlfreec + files: + - path: output/controlfreec/test2.mpileup.gz_CNVs.p.value.txt + md5sum: 44e23b916535fbc1a3f47b57fad292df + - path: output/controlfreec/versions.yml + md5sum: 0aa42fed10d61e4570fe1e0e83ffe932 diff --git a/tests/modules/controlfreec/main.nf b/tests/modules/controlfreec/freec/main.nf similarity index 66% rename from tests/modules/controlfreec/main.nf rename to tests/modules/controlfreec/freec/main.nf index 247f9887..d14c8f65 100644 --- a/tests/modules/controlfreec/main.nf +++ b/tests/modules/controlfreec/freec/main.nf @@ -2,9 +2,10 @@ nextflow.enable.dsl = 2 -include { CONTROLFREEC } from '../../../modules/controlfreec/main.nf' -include { UNTAR } from '../../../modules/untar/main.nf' -workflow test_controlfreec { +include { CONTROLFREEC_FREEC } from '../../../../modules/controlfreec/freec/main.nf' +include { UNTAR } from '../../../../modules/untar/main.nf' + +workflow test_controlfreec_freec { input = [ [ id:'test', single_end:false, sex:'XX' ], // meta map @@ -23,15 +24,15 @@ workflow test_controlfreec { target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) UNTAR(chrfiles) - CONTROLFREEC ( input, - fasta, - fai, - [], - dbsnp, - dbsnp_tbi, - UNTAR.out.untar.map{ it[1] }, - [], - target_bed, - [] + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] ) } diff --git a/tests/modules/controlfreec/freec/nextflow.config b/tests/modules/controlfreec/freec/nextflow.config new file mode 100644 index 00000000..65273dea --- /dev/null +++ b/tests/modules/controlfreec/freec/nextflow.config @@ -0,0 +1,26 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName:CONTROLFREEC_FREEC{ + ext.args = { [ + "sample":[ + inputformat: 'pileup', + mateorientation: 'FR' + ], + "general" :[ + bedgraphoutput: "TRUE", + noisydata: "TRUE", + minexpectedgc: "0", + readcountthreshold: "1", + sex: meta.sex, + window: "10", + ], + "control":[ + inputformat: "pileup", + mateorientation: "FR" + ] + ] + } + } +} diff --git a/tests/modules/controlfreec/test.yml b/tests/modules/controlfreec/freec/test.yml similarity index 78% rename from tests/modules/controlfreec/test.yml rename to tests/modules/controlfreec/freec/test.yml index 14c30205..d50fc063 100644 --- a/tests/modules/controlfreec/test.yml +++ b/tests/modules/controlfreec/freec/test.yml @@ -1,7 +1,8 @@ -- name: controlfreec test_controlfreec - command: nextflow run tests/modules/controlfreec -entry test_controlfreec -c tests/config/nextflow.config +- name: controlfreec test_controlfreec_freec + command: nextflow run tests/modules/controlfreec/freec -entry test_controlfreec_freec -c tests/config/nextflow.config tags: - controlfreec + - controlfreec/freec files: - path: output/controlfreec/config.txt - path: output/controlfreec/test.mpileup.gz_control.cpn @@ -19,4 +20,4 @@ - path: output/controlfreec/test2.mpileup.gz_sample.cpn md5sum: c80dad58a77b1d7ba6d273999f4b4b4b - path: output/controlfreec/versions.yml - md5sum: ff93f6466d4686aab708425782c6c848 + md5sum: 3ab250a2ab3be22628124c7c65324651 From 8a64e73af29a8096e1996e0496df4ae8c449c40b Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Fri, 25 Mar 2022 20:31:52 +0100 Subject: [PATCH 126/592] add freec2bed script (#1453) --- modules/controlfreec/freec2bed/main.nf | 31 +++++++++++++ modules/controlfreec/freec2bed/meta.yml | 45 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/controlfreec/freec2bed/main.nf | 41 +++++++++++++++++ .../controlfreec/freec2bed/nextflow.config | 27 +++++++++++ tests/modules/controlfreec/freec2bed/test.yml | 8 ++++ 6 files changed, 156 insertions(+) create mode 100644 modules/controlfreec/freec2bed/main.nf create mode 100644 modules/controlfreec/freec2bed/meta.yml create mode 100644 tests/modules/controlfreec/freec2bed/main.nf create mode 100644 tests/modules/controlfreec/freec2bed/nextflow.config create mode 100644 tests/modules/controlfreec/freec2bed/test.yml diff --git a/modules/controlfreec/freec2bed/main.nf b/modules/controlfreec/freec2bed/main.nf new file mode 100644 index 00000000..880e4716 --- /dev/null +++ b/modules/controlfreec/freec2bed/main.nf @@ -0,0 +1,31 @@ +process CONTROLFREEC_FREEC2BED { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::control-freec=11.6" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': + 'quay.io/biocontainers/control-freec:11.6--h1b792b2_1' }" + + input: + tuple val(meta), path(ratio) + + output: + tuple val(meta), path("*.bed"), emit: bed + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + freec2bed.pl -f ${ratio} ${args} > ${prefix}.bed + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ +} diff --git a/modules/controlfreec/freec2bed/meta.yml b/modules/controlfreec/freec2bed/meta.yml new file mode 100644 index 00000000..47fff8ab --- /dev/null +++ b/modules/controlfreec/freec2bed/meta.yml @@ -0,0 +1,45 @@ +name: controlfreec_freec2bed +description: Plot Freec output +keywords: + - cna + - cnv + - somatic + - single + - tumor-only +tools: + - controlfreec: + description: Copy number and genotype annotation from whole genome and whole exome sequencing data. + homepage: http://boevalab.inf.ethz.ch/FREEC + documentation: http://boevalab.inf.ethz.ch/FREEC/tutorial.html + tool_dev_url: https://github.com/BoevaLab/FREEC/ + doi: "10.1093/bioinformatics/btq635" + licence: ["GPL >=2"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ratio: + type: file + description: ratio file generated by FREEC + pattern: "*.ratio.txt" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bed: + type: file + description: Bed file + pattern: "*.bed" + +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 20d9ad1d..0c77497d 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -427,6 +427,10 @@ controlfreec/freec: - modules/controlfreec/freec/** - tests/modules/controlfreec/freec/** +controlfreec/freec2bed: + - modules/controlfreec/freec2bed/** + - tests/modules/controlfreec/freec2bed/** + cooler/cload: - modules/cooler/cload/** - tests/modules/cooler/cload/** diff --git a/tests/modules/controlfreec/freec2bed/main.nf b/tests/modules/controlfreec/freec2bed/main.nf new file mode 100644 index 00000000..df121832 --- /dev/null +++ b/tests/modules/controlfreec/freec2bed/main.nf @@ -0,0 +1,41 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CONTROLFREEC_FREEC2BED } from '../../../../modules/controlfreec/freec2bed/main.nf' +include { CONTROLFREEC_FREEC } from '../../../../modules/controlfreec/freec/main.nf' +include { UNTAR } from '../../../../modules/untar/main.nf' + +workflow test_controlfreec_freec2bed { + + input = [ + [ id:'test', single_end:false, sex:'XX' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_mpileup'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] + ) + + CONTROLFREEC_FREEC2BED ( CONTROLFREEC_FREEC.out.ratio ) +} diff --git a/tests/modules/controlfreec/freec2bed/nextflow.config b/tests/modules/controlfreec/freec2bed/nextflow.config new file mode 100644 index 00000000..8c2f77eb --- /dev/null +++ b/tests/modules/controlfreec/freec2bed/nextflow.config @@ -0,0 +1,27 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName:CONTROLFREEC_FREEC{ + ext.args = { [ + "sample":[ + inputformat: 'pileup', + mateorientation: 'FR' + ], + "general" :[ + bedgraphoutput: "TRUE", + noisydata: "TRUE", + minexpectedgc: "0", + readcountthreshold: "1", + sex: meta.sex, + window: "10", + ], + "control":[ + inputformat: "pileup", + mateorientation: "FR" + ] + ] + } + } + +} diff --git a/tests/modules/controlfreec/freec2bed/test.yml b/tests/modules/controlfreec/freec2bed/test.yml new file mode 100644 index 00000000..0198bac6 --- /dev/null +++ b/tests/modules/controlfreec/freec2bed/test.yml @@ -0,0 +1,8 @@ +- name: controlfreec freec2bed test_controlfreec_freec2bed + command: nextflow run tests/modules/controlfreec/freec2bed -entry test_controlfreec_freec2bed -c tests/config/nextflow.config + tags: + - controlfreec/freec2bed + - controlfreec + files: + - path: output/controlfreec/test.bed + md5sum: abe10b7ce94ba903503e697394c17297 From 28e5211b3513d80f198beb7090f57242165cc030 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Fri, 25 Mar 2022 20:49:08 +0100 Subject: [PATCH 127/592] add makegraph script (#1452) * add makegraph script * allow renaming of output files * allow renaming of output files --- .../controlfreec/assesssignificance/main.nf | 5 +- modules/controlfreec/makegraph/main.nf | 40 +++++++++++++ modules/controlfreec/makegraph/meta.yml | 58 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../controlfreec/assesssignificance/test.yml | 2 +- tests/modules/controlfreec/makegraph/main.nf | 42 ++++++++++++++ .../controlfreec/makegraph/nextflow.config | 30 ++++++++++ tests/modules/controlfreec/makegraph/test.yml | 12 ++++ 8 files changed, 191 insertions(+), 2 deletions(-) create mode 100644 modules/controlfreec/makegraph/main.nf create mode 100644 modules/controlfreec/makegraph/meta.yml create mode 100644 tests/modules/controlfreec/makegraph/main.nf create mode 100644 tests/modules/controlfreec/makegraph/nextflow.config create mode 100644 tests/modules/controlfreec/makegraph/test.yml diff --git a/modules/controlfreec/assesssignificance/main.nf b/modules/controlfreec/assesssignificance/main.nf index dc9c6e86..f85a3c7f 100644 --- a/modules/controlfreec/assesssignificance/main.nf +++ b/modules/controlfreec/assesssignificance/main.nf @@ -11,7 +11,7 @@ process CONTROLFREEC_ASSESSSIGNIFICANCE { tuple val(meta), path(cnvs), path(ratio) output: - tuple val(meta), path("*.p.value.txt"), emit: bam + tuple val(meta), path("*.p.value.txt"), emit: p_value_txt path "versions.yml" , emit: versions when: @@ -19,9 +19,12 @@ process CONTROLFREEC_ASSESSSIGNIFICANCE { script: def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" """ cat /usr/local/bin/assess_significance.R | R --slave --args ${cnvs} ${ratio} + mv *.p.value.txt ${prefix}.p.value.txt + cat <<-END_VERSIONS > versions.yml "${task.process}": controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) diff --git a/modules/controlfreec/makegraph/main.nf b/modules/controlfreec/makegraph/main.nf new file mode 100644 index 00000000..9a0c7281 --- /dev/null +++ b/modules/controlfreec/makegraph/main.nf @@ -0,0 +1,40 @@ +process CONTROLFREEC_MAKEGRAPH { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::control-freec=11.6" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': + 'quay.io/biocontainers/control-freec:11.6--h1b792b2_1' }" + + input: + tuple val(meta), path(ratio), path(baf) + + output: + tuple val(meta), path("*_BAF.png") , emit: png_baf + tuple val(meta), path("*_ratio.log2.png"), emit: png_ratio_log2 + tuple val(meta), path("*_ratio.png") , emit: png_ratio + + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: "" + def prefix = task.ext.prefix ?: "${meta.id}" + def baf = baf ?: "" + """ + cat /usr/local/bin/makeGraph.R | R --slave --args ${args} ${ratio} ${baf} + + mv *_BAF.txt.png ${prefix}_BAF.png + mv *_ratio.txt.log2.png ${prefix}_ratio.log2.png + mv *_ratio.txt.png ${prefix}_ratio.png + + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ +} diff --git a/modules/controlfreec/makegraph/meta.yml b/modules/controlfreec/makegraph/meta.yml new file mode 100644 index 00000000..a207ec8c --- /dev/null +++ b/modules/controlfreec/makegraph/meta.yml @@ -0,0 +1,58 @@ +name: controlfreec_makegraph +description: Plot Freec output +keywords: + - cna + - cnv + - somatic + - single + - tumor-only +tools: + - controlfreec: + description: Copy number and genotype annotation from whole genome and whole exome sequencing data. + homepage: http://boevalab.inf.ethz.ch/FREEC + documentation: http://boevalab.inf.ethz.ch/FREEC/tutorial.html + tool_dev_url: https://github.com/BoevaLab/FREEC/ + doi: "10.1093/bioinformatics/btq635" + licence: ["GPL >=2"] + +input: + # Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ratio: + type: file + description: ratio file generated by FREEC + pattern: "*.ratio.txt" + - baf: + type: file + description: .BAF file generated by FREEC + pattern: "*.BAF" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - png_baf: + type: file + description: Image of BAF plot + pattern: "*_BAF.png" + - png_ratio_log2: + type: file + description: Image of ratio log2 plot + pattern: "*_ratio.log2.png" + - png_ratio: + type: file + description: Image of ratio plot + pattern: "*_ratio.png" + +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 0c77497d..6e2dbb9a 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -431,6 +431,10 @@ controlfreec/freec2bed: - modules/controlfreec/freec2bed/** - tests/modules/controlfreec/freec2bed/** +controlfreec/makegraph: + - modules/controlfreec/makegraph/** + - tests/modules/controlfreec/makegraph/** + cooler/cload: - modules/cooler/cload/** - tests/modules/cooler/cload/** diff --git a/tests/modules/controlfreec/assesssignificance/test.yml b/tests/modules/controlfreec/assesssignificance/test.yml index 58f83f43..f8393330 100644 --- a/tests/modules/controlfreec/assesssignificance/test.yml +++ b/tests/modules/controlfreec/assesssignificance/test.yml @@ -4,7 +4,7 @@ - controlfreec/assesssignificance - controlfreec files: - - path: output/controlfreec/test2.mpileup.gz_CNVs.p.value.txt + - path: output/controlfreec/test.p.value.txt md5sum: 44e23b916535fbc1a3f47b57fad292df - path: output/controlfreec/versions.yml md5sum: 0aa42fed10d61e4570fe1e0e83ffe932 diff --git a/tests/modules/controlfreec/makegraph/main.nf b/tests/modules/controlfreec/makegraph/main.nf new file mode 100644 index 00000000..ffea3d99 --- /dev/null +++ b/tests/modules/controlfreec/makegraph/main.nf @@ -0,0 +1,42 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CONTROLFREEC_MAKEGRAPH } from '../../../../modules/controlfreec/makegraph/main.nf' +include { CONTROLFREEC_FREEC } from '../../../../modules/controlfreec/freec/main.nf' +include { UNTAR } from '../../../../modules/untar/main.nf' + +workflow test_controlfreec_makegraph { + + input = [ + [ id:'test', single_end:false, sex:'XX' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_mpileup'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] + ) + + makegraph_in = CONTROLFREEC_FREEC.out.ratio.join(CONTROLFREEC_FREEC.out.BAF) + CONTROLFREEC_MAKEGRAPH ( makegraph_in ) +} diff --git a/tests/modules/controlfreec/makegraph/nextflow.config b/tests/modules/controlfreec/makegraph/nextflow.config new file mode 100644 index 00000000..f88fae50 --- /dev/null +++ b/tests/modules/controlfreec/makegraph/nextflow.config @@ -0,0 +1,30 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName:CONTROLFREEC_FREEC{ + ext.args = { [ + "sample":[ + inputformat: 'pileup', + mateorientation: 'FR' + ], + "general" :[ + bedgraphoutput: "TRUE", + noisydata: "TRUE", + minexpectedgc: "0", + readcountthreshold: "1", + sex: meta.sex, + window: "10", + ], + "control":[ + inputformat: "pileup", + mateorientation: "FR" + ] + ] + } + } + + withName:CONTROLFREEC_MAKEGRAPH { + ext.args = "2" + } +} diff --git a/tests/modules/controlfreec/makegraph/test.yml b/tests/modules/controlfreec/makegraph/test.yml new file mode 100644 index 00000000..21e78766 --- /dev/null +++ b/tests/modules/controlfreec/makegraph/test.yml @@ -0,0 +1,12 @@ +- name: controlfreec makegraph test_controlfreec_makegraph + command: nextflow run tests/modules/controlfreec/makegraph -entry test_controlfreec_makegraph -c tests/config/nextflow.config + tags: + - controlfreec + - controlfreec/makegraph + files: + - path: output/controlfreec/test_BAF.png + md5sum: f9d977839e09c7e2472d970bd4aa834c + - path: output/controlfreec/test_ratio.log2.png + md5sum: b3c7916b1b4951a0cc3da20d8e9e0262 + - path: output/controlfreec/test_ratio.png + md5sum: 1435b29536b3b1555b4c423f8f4fb000 From 5acf301ddda04072cf7233a6c8f5fa5df867de99 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Sat, 26 Mar 2022 21:25:29 +0100 Subject: [PATCH 128/592] add freec2circos script (#1454) * add freec2circos script * remove todo statements --- modules/controlfreec/freec2circos/main.nf | 31 +++++++++++++ modules/controlfreec/freec2circos/meta.yml | 45 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../modules/controlfreec/freec2circos/main.nf | 41 +++++++++++++++++ .../controlfreec/freec2circos/nextflow.config | 27 +++++++++++ .../controlfreec/freec2circos/test.yml | 8 ++++ 6 files changed, 156 insertions(+) create mode 100644 modules/controlfreec/freec2circos/main.nf create mode 100644 modules/controlfreec/freec2circos/meta.yml create mode 100644 tests/modules/controlfreec/freec2circos/main.nf create mode 100644 tests/modules/controlfreec/freec2circos/nextflow.config create mode 100644 tests/modules/controlfreec/freec2circos/test.yml diff --git a/modules/controlfreec/freec2circos/main.nf b/modules/controlfreec/freec2circos/main.nf new file mode 100644 index 00000000..8879d4c0 --- /dev/null +++ b/modules/controlfreec/freec2circos/main.nf @@ -0,0 +1,31 @@ +process CONTROLFREEC_FREEC2CIRCOS { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::control-freec=11.6" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/control-freec:11.6--h1b792b2_1': + 'quay.io/biocontainers/control-freec:11.6--h1b792b2_1' }" + + input: + tuple val(meta), path(ratio) + + output: + tuple val(meta), path("*.circos.txt"), emit: circos + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + freec2circos.pl -f ${ratio} ${args} > ${prefix}.circos.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ +} diff --git a/modules/controlfreec/freec2circos/meta.yml b/modules/controlfreec/freec2circos/meta.yml new file mode 100644 index 00000000..ff845a82 --- /dev/null +++ b/modules/controlfreec/freec2circos/meta.yml @@ -0,0 +1,45 @@ +name: controlfreec_freec2circos +description: Format Freec output to circos input format +keywords: + - cna + - cnv + - somatic + - single + - tumor-only +tools: + - controlfreec: + description: Copy number and genotype annotation from whole genome and whole exome sequencing data. + homepage: http://boevalab.inf.ethz.ch/FREEC + documentation: http://boevalab.inf.ethz.ch/FREEC/tutorial.html + tool_dev_url: https://github.com/BoevaLab/FREEC/ + doi: "10.1093/bioinformatics/btq635" + licence: ["GPL >=2"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - ratio: + type: file + description: ratio file generated by FREEC + pattern: "*.ratio.txt" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - circos: + type: file + description: Txt file + pattern: "*.circos.txt" + +authors: + - "@FriederikeHanssen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 6e2dbb9a..a6e2067f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -431,6 +431,10 @@ controlfreec/freec2bed: - modules/controlfreec/freec2bed/** - tests/modules/controlfreec/freec2bed/** +controlfreec/freec2circos: + - modules/controlfreec/freec2circos/** + - tests/modules/controlfreec/freec2circos/** + controlfreec/makegraph: - modules/controlfreec/makegraph/** - tests/modules/controlfreec/makegraph/** diff --git a/tests/modules/controlfreec/freec2circos/main.nf b/tests/modules/controlfreec/freec2circos/main.nf new file mode 100644 index 00000000..9b655f0e --- /dev/null +++ b/tests/modules/controlfreec/freec2circos/main.nf @@ -0,0 +1,41 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CONTROLFREEC_FREEC2CIRCOS } from '../../../../modules/controlfreec/freec2circos/main.nf' +include { CONTROLFREEC_FREEC } from '../../../../modules/controlfreec/freec/main.nf' +include { UNTAR } from '../../../../modules/untar/main.nf' + +workflow test_controlfreec_freec2circos { + + input = [ + [ id:'test', single_end:false, sex:'XX' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_mpileup'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] + ) + + CONTROLFREEC_FREEC2CIRCOS ( CONTROLFREEC_FREEC.out.ratio ) +} diff --git a/tests/modules/controlfreec/freec2circos/nextflow.config b/tests/modules/controlfreec/freec2circos/nextflow.config new file mode 100644 index 00000000..8c2f77eb --- /dev/null +++ b/tests/modules/controlfreec/freec2circos/nextflow.config @@ -0,0 +1,27 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName:CONTROLFREEC_FREEC{ + ext.args = { [ + "sample":[ + inputformat: 'pileup', + mateorientation: 'FR' + ], + "general" :[ + bedgraphoutput: "TRUE", + noisydata: "TRUE", + minexpectedgc: "0", + readcountthreshold: "1", + sex: meta.sex, + window: "10", + ], + "control":[ + inputformat: "pileup", + mateorientation: "FR" + ] + ] + } + } + +} diff --git a/tests/modules/controlfreec/freec2circos/test.yml b/tests/modules/controlfreec/freec2circos/test.yml new file mode 100644 index 00000000..5758a828 --- /dev/null +++ b/tests/modules/controlfreec/freec2circos/test.yml @@ -0,0 +1,8 @@ +- name: controlfreec freec2circos test_controlfreec_freec2circos + command: nextflow run tests/modules/controlfreec/freec2circos -entry test_controlfreec_freec2circos -c tests/config/nextflow.config + tags: + - controlfreec + - controlfreec/freec2circos + files: + - path: output/controlfreec/test.circos.txt + md5sum: 19cf35f2c36b46f717dc8342b8a5a645 From 5832fbc225b59577677bd8c38353a3de293998d1 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Sat, 26 Mar 2022 22:17:42 -0500 Subject: [PATCH 129/592] Fix homer/maketagdirectory output collision (#1456) * fix(homer): Update tagdir to have a prefix Otherwise they have a naming collision * test(homer): Update paths * style(homer): Align ,'s * chore(homer): Update md5sums --- modules/homer/maketagdirectory/main.nf | 7 ++-- modules/homer/maketagdirectory/meta.yml | 8 +++-- tests/modules/homer/findpeaks/test.yml | 2 +- tests/modules/homer/maketagdirectory/test.yml | 36 +++++++++---------- tests/modules/homer/pos2bed/test.yml | 4 +-- 5 files changed, 31 insertions(+), 26 deletions(-) diff --git a/modules/homer/maketagdirectory/main.nf b/modules/homer/maketagdirectory/main.nf index 0ab855da..35b6904c 100644 --- a/modules/homer/maketagdirectory/main.nf +++ b/modules/homer/maketagdirectory/main.nf @@ -14,8 +14,9 @@ process HOMER_MAKETAGDIRECTORY { path fasta output: - tuple val(meta), path("tag_dir"), emit: tagdir - path "versions.yml" , emit: versions + tuple val(meta), path("*_tagdir") , emit: tagdir + tuple val(meta), path("*_tagdir/tagInfo.txt"), emit: taginfo + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -25,7 +26,7 @@ process HOMER_MAKETAGDIRECTORY { def prefix = task.ext.prefix ?: "${meta.id}" """ makeTagDirectory \\ - tag_dir \\ + ${prefix}_tagdir \\ -genome $fasta \\ $args \\ $bam diff --git a/modules/homer/maketagdirectory/meta.yml b/modules/homer/maketagdirectory/meta.yml index 31d59ee7..ccd2d6a8 100644 --- a/modules/homer/maketagdirectory/meta.yml +++ b/modules/homer/maketagdirectory/meta.yml @@ -57,10 +57,14 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - tag_dir: + - tagdir: type: directory description: The "Tag Directory" - pattern: "tag_dir" + pattern: "*_tagdir" + - taginfo: + type: directory + description: The tagInfo.txt included to ensure there's proper output + pattern: "*_tagdir/tagInfo.txt" - versions: type: file description: File containing software versions diff --git a/tests/modules/homer/findpeaks/test.yml b/tests/modules/homer/findpeaks/test.yml index 75e94529..b5225404 100644 --- a/tests/modules/homer/findpeaks/test.yml +++ b/tests/modules/homer/findpeaks/test.yml @@ -5,4 +5,4 @@ - homer/findpeaks files: - path: output/homer/test.peaks.txt - md5sum: f75ac1fea67f1e307a1ad4d059a9b6cc + md5sum: 86e15beaa4b439585786478e58418c0c diff --git a/tests/modules/homer/maketagdirectory/test.yml b/tests/modules/homer/maketagdirectory/test.yml index 28e74c32..970ca906 100644 --- a/tests/modules/homer/maketagdirectory/test.yml +++ b/tests/modules/homer/maketagdirectory/test.yml @@ -4,15 +4,15 @@ - homer - homer/maketagdirectory files: - - path: output/homer/tag_dir/MT192765.1.tags.tsv + - path: output/homer/test_tagdir/MT192765.1.tags.tsv md5sum: e29522171ca2169b57396495f8b97485 - - path: output/homer/tag_dir/tagAutocorrelation.txt + - path: output/homer/test_tagdir/tagAutocorrelation.txt md5sum: 62b107c4971b94126fb89a0bc2800455 - - path: output/homer/tag_dir/tagCountDistribution.txt + - path: output/homer/test_tagdir/tagCountDistribution.txt md5sum: fd4ee7ce7c5dfd7c9d739534b8180578 - - path: output/homer/tag_dir/tagInfo.txt - md5sum: ff56f30411b221b847aa4e6e9a6098a1 - - path: output/homer/tag_dir/tagLengthDistribution.txt + - path: output/homer/test_tagdir/tagInfo.txt + md5sum: c9bb2ca53bb101d74c1ec92d2b0ad26e + - path: output/homer/test_tagdir/tagLengthDistribution.txt md5sum: e5aa2b9843ca9c04ace297280aed6af4 - name: homer maketagdirectory meta @@ -21,15 +21,15 @@ - homer - homer/maketagdirectory files: - - path: output/homer/tag_dir/MT192765.1.tags.tsv + - path: output/homer/meta_test_tagdir/MT192765.1.tags.tsv md5sum: e29522171ca2169b57396495f8b97485 - - path: output/homer/tag_dir/tagAutocorrelation.txt + - path: output/homer/meta_test_tagdir/tagAutocorrelation.txt md5sum: 62b107c4971b94126fb89a0bc2800455 - - path: output/homer/tag_dir/tagCountDistribution.txt + - path: output/homer/meta_test_tagdir/tagCountDistribution.txt md5sum: fd4ee7ce7c5dfd7c9d739534b8180578 - - path: output/homer/tag_dir/tagInfo.txt - md5sum: ff56f30411b221b847aa4e6e9a6098a1 - - path: output/homer/tag_dir/tagLengthDistribution.txt + - path: output/homer/meta_test_tagdir/tagInfo.txt + md5sum: cb907ebf9afc042bb61196d624e793c8 + - path: output/homer/meta_test_tagdir/tagLengthDistribution.txt md5sum: e5aa2b9843ca9c04ace297280aed6af4 - name: homer maketagdirectory bam @@ -38,13 +38,13 @@ - homer - homer/maketagdirectory files: - - path: output/homer/tag_dir/MT192765.1.tags.tsv + - path: output/homer/test_tagdir/MT192765.1.tags.tsv md5sum: 365808c4751ef6dd7085ac52037a22bc - - path: output/homer/tag_dir/tagAutocorrelation.txt + - path: output/homer/test_tagdir/tagAutocorrelation.txt md5sum: 8b396f2aef1cdd3af4fab57b142d3250 - - path: output/homer/tag_dir/tagCountDistribution.txt + - path: output/homer/test_tagdir/tagCountDistribution.txt md5sum: afc6d007096c3872bbe84c9dc8edb832 - - path: output/homer/tag_dir/tagInfo.txt - md5sum: fbaf46eeb8a0723fa8b5eabd93f9d821 - - path: output/homer/tag_dir/tagLengthDistribution.txt + - path: output/homer/test_tagdir/tagInfo.txt + md5sum: aebf6ff15fd0a238ee6a94d623c578ca + - path: output/homer/test_tagdir/tagLengthDistribution.txt md5sum: 44f231adb2a705ae81950808c55cf248 diff --git a/tests/modules/homer/pos2bed/test.yml b/tests/modules/homer/pos2bed/test.yml index 525d61c8..6aad55bc 100644 --- a/tests/modules/homer/pos2bed/test.yml +++ b/tests/modules/homer/pos2bed/test.yml @@ -4,7 +4,7 @@ - "homer" - "homer/pos2bed" files: - - path: "output/homer/test.bed" - md5sum: 0b9ebd8f06b9c820a551fbdb2d7635ee + - path: output/homer/test.bed + md5sum: 5d6ddd9c7e621a66f6f045b9b5abecb4 - path: output/homer/versions.yml md5sum: 1485f4b2d76484e8fe3310e2505de2fd From cc671a5f3c7a063ca3f84666ecbfbe3547d71a12 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Sun, 27 Mar 2022 14:15:43 +0200 Subject: [PATCH 130/592] Update svdb/merge (#1449) * fix error * fix input string --- modules/svdb/merge/main.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/svdb/merge/main.nf b/modules/svdb/merge/main.nf index 58aef652..9e729bf3 100644 --- a/modules/svdb/merge/main.nf +++ b/modules/svdb/merge/main.nf @@ -25,6 +25,7 @@ process SVDB_MERGE { def prio = "" if(priority) { prio = "--priority ${priority.join(',')}" + input = "" for (int index = 0; index < vcfs.size(); index++) { input += " ${vcfs[index]}:${priority[index]}" } From 1f483d9203a61e17259332f1eee5502d6a51cb61 Mon Sep 17 00:00:00 2001 From: Tanja Normark <35598351+talnor@users.noreply.github.com> Date: Mon, 28 Mar 2022 14:28:50 +0200 Subject: [PATCH 131/592] Add kaiju_kaiju module (#1448) * Added kaiju_kaiju module * Update modules/kaiju/kaiju/main.nf Co-authored-by: James A. Fellows Yates * Update modules/kaiju/kaiju/main.nf Co-authored-by: James A. Fellows Yates * Update modules/kaiju/kaiju/meta.yml Co-authored-by: James A. Fellows Yates * Update keywords Co-authored-by: James A. Fellows Yates * Update output file naming * Update output file naming * update spacing for lint * Update input file patterns Co-authored-by: James A. Fellows Yates Co-authored-by: James A. Fellows Yates --- modules/kaiju/kaiju/main.nf | 39 +++++++++++++++++ modules/kaiju/kaiju/meta.yml | 52 +++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/config/test_data.config | 4 ++ tests/modules/kaiju/kaiju/main.nf | 34 +++++++++++++++ tests/modules/kaiju/kaiju/nextflow.config | 5 +++ tests/modules/kaiju/kaiju/test.yml | 21 +++++++++ 7 files changed, 159 insertions(+) create mode 100644 modules/kaiju/kaiju/main.nf create mode 100644 modules/kaiju/kaiju/meta.yml create mode 100644 tests/modules/kaiju/kaiju/main.nf create mode 100644 tests/modules/kaiju/kaiju/nextflow.config create mode 100644 tests/modules/kaiju/kaiju/test.yml diff --git a/modules/kaiju/kaiju/main.nf b/modules/kaiju/kaiju/main.nf new file mode 100644 index 00000000..4050ede5 --- /dev/null +++ b/modules/kaiju/kaiju/main.nf @@ -0,0 +1,39 @@ +process KAIJU_KAIJU { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::kaiju=1.8.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/kaiju:1.8.2--h5b5514e_1': + 'quay.io/biocontainers/kaiju:1.8.2--h5b5514e_1' }" + + input: + tuple val(meta), path(reads) + tuple path(db), path(dbnodes) + + output: + tuple val(meta), path('*.tsv'), emit: results + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def input = meta.single_end ? "-i ${reads}" : "-i ${reads[0]} -j ${reads[1]}" + """ + kaiju \\ + $args \\ + -z $task.cpus \\ + -t ${dbnodes} \\ + -f ${db} \\ + -o ${prefix}.tsv \\ + $input + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + kaiju: \$(echo \$( kaiju -h 2>&1 | sed -n 1p | sed 's/^.*Kaiju //' )) + END_VERSIONS + """ +} diff --git a/modules/kaiju/kaiju/meta.yml b/modules/kaiju/kaiju/meta.yml new file mode 100644 index 00000000..69a74037 --- /dev/null +++ b/modules/kaiju/kaiju/meta.yml @@ -0,0 +1,52 @@ +name: kaiju_kaiju +description: Taxonomic classification of metagenomic sequence data using a protein reference database +keywords: + - classify + - metagenomics + - fastq + - taxonomic profiling +tools: + - kaiju: + description: Fast and sensitive taxonomic classification for metagenomics + homepage: https://kaiju.binf.ku.dk/ + documentation: https://github.com/bioinformatics-centre/kaiju/blob/master/README.md + tool_dev_url: https://github.com/bioinformatics-centre/kaiju + doi: "10.1038/ncomms11257" + licence: ["GNU GPL v3"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input fastq/fasta files of size 1 and 2 for single-end and paired-end data, + respectively. + pattern: "*.{fastq,fq,fasta,fa,fsa,fas,fna,fastq.gz,fq.gz,fasta.gz,fa.gz,fsa.gz,fas.gz,fna.gz}" + - db: + type: files + description: | + List containing the database and nodes files for Kaiju + e.g. [ 'database.fmi', 'nodes.dmp' ] + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - results: + type: file + description: Results with taxonomic classification of each read + pattern: "*.tsv" + +authors: + - "@talnor" + - "@sofstam" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index a6e2067f..2a7b2f70 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -961,6 +961,10 @@ jupyternotebook: - modules/jupyternotebook/** - tests/modules/jupyternotebook/** +kaiju/kaiju: + - modules/kaiju/kaiju/** + - tests/modules/kaiju/kaiju/** + kallisto/index: - modules/kallisto/index/** - tests/modules/kallisto/index/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 230e8d43..836604b8 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -28,6 +28,10 @@ params { kraken2_bracken = "${test_data_dir}/genomics/sarscov2/genome/db/kraken2_bracken" kraken2_bracken_tar_gz = "${test_data_dir}/genomics/sarscov2/genome/db/kraken2_bracken.tar.gz" + kaiju_fmi = "${test_data_dir}/genomics/sarscov2/genome/db/kaiju/proteins.fmi" + kaiju_nodes = "${test_data_dir}/genomics/sarscov2/genome/db/kaiju/nodes.dmp" + kaiju_names = "${test_data_dir}/genomics/sarscov2/genome/db/kaiju/names.dmp" + ncbi_taxmap_zip = "${test_data_dir}/genomics/sarscov2/genome/db/maltextract/ncbi_taxmap.zip" taxon_list_txt = "${test_data_dir}/genomics/sarscov2/genome/db/maltextract/taxon_list.txt" diff --git a/tests/modules/kaiju/kaiju/main.nf b/tests/modules/kaiju/kaiju/main.nf new file mode 100644 index 00000000..00da82a9 --- /dev/null +++ b/tests/modules/kaiju/kaiju/main.nf @@ -0,0 +1,34 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { KAIJU_KAIJU } from '../../../../modules/kaiju/kaiju/main.nf' + +workflow test_kaiju_kaiju_single_end { + + input = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + db = [ + file(params.test_data['sarscov2']['genome']['kaiju_fmi'], checkIfExists: true), // database + file(params.test_data['sarscov2']['genome']['kaiju_nodes'], checkIfExists: true) // taxon nodes + ] + + KAIJU_KAIJU ( input, db ) +} + +workflow test_kaiju_kaiju_paired_end { + + input = [ + [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + db = [ + file(params.test_data['sarscov2']['genome']['kaiju_fmi'], checkIfExists: true), // database + file(params.test_data['sarscov2']['genome']['kaiju_nodes'], checkIfExists: true) // taxon nodes + ] + + KAIJU_KAIJU ( input, db ) +} diff --git a/tests/modules/kaiju/kaiju/nextflow.config b/tests/modules/kaiju/kaiju/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/kaiju/kaiju/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/kaiju/kaiju/test.yml b/tests/modules/kaiju/kaiju/test.yml new file mode 100644 index 00000000..72eb64c5 --- /dev/null +++ b/tests/modules/kaiju/kaiju/test.yml @@ -0,0 +1,21 @@ +- name: kaiju kaiju test_kaiju_kaiju_single_end + command: nextflow run tests/modules/kaiju/kaiju -entry test_kaiju_kaiju_single_end -c tests/config/nextflow.config + tags: + - kaiju/kaiju + - kaiju + files: + - path: output/kaiju/test.tsv + contains: ["C\tERR5069949.2257580\t2697049"] + - path: output/kaiju/versions.yml + md5sum: 7e218c0ea00a71dd3a5ec5aaf28804f4 + +- name: kaiju kaiju test_kaiju_kaiju_paired_end + command: nextflow run tests/modules/kaiju/kaiju -entry test_kaiju_kaiju_paired_end -c tests/config/nextflow.config + tags: + - kaiju/kaiju + - kaiju + files: + - path: output/kaiju/test.tsv + contains: ["C\tERR5069949.2257580\t2697049"] + - path: output/kaiju/versions.yml + md5sum: a74215f6f69979ae046fb1d65c56ac67 From 240ee4328cffce14e983f6871cc0ea39cf7a5041 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 28 Mar 2022 16:29:46 +0200 Subject: [PATCH 132/592] Dastool update to allow non-gzipped inputs (#1458) * fix: remove left-over unnecessary code * Make gzipping optional for DAS_Tool scaffolds2bin * Add optional unzipping * Make gunzip optional for DAS_Tool scaffolds2bin * Apply suggestions from code review Co-authored-by: Daniel Straub <42973691+d4straub@users.noreply.github.com> * Update modules/dastool/scaffolds2bin/meta.yml Co-authored-by: Daniel Straub <42973691+d4straub@users.noreply.github.com> --- modules/dastool/scaffolds2bin/main.nf | 5 ++-- modules/dastool/scaffolds2bin/meta.yml | 9 ++---- tests/modules/dastool/scaffolds2bin/main.nf | 31 +++++++++++++++++--- tests/modules/dastool/scaffolds2bin/test.yml | 20 ++++++++----- 4 files changed, 46 insertions(+), 19 deletions(-) diff --git a/modules/dastool/scaffolds2bin/main.nf b/modules/dastool/scaffolds2bin/main.nf index 6e9fcdc2..365872fd 100644 --- a/modules/dastool/scaffolds2bin/main.nf +++ b/modules/dastool/scaffolds2bin/main.nf @@ -22,9 +22,10 @@ process DASTOOL_SCAFFOLDS2BIN { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def file_extension = extension ? extension : "fasta" - + def clean_fasta = fasta.toString() - ".gz" + def decompress_fasta = fasta.toString() == clean_fasta ? "" : "gunzip -q -f $fasta" """ - gunzip -f *.${file_extension}.gz + $decompress_fasta Fasta_to_Scaffolds2Bin.sh \\ $args \\ diff --git a/modules/dastool/scaffolds2bin/meta.yml b/modules/dastool/scaffolds2bin/meta.yml index 0bf8618d..823084b3 100644 --- a/modules/dastool/scaffolds2bin/meta.yml +++ b/modules/dastool/scaffolds2bin/meta.yml @@ -30,14 +30,11 @@ input: e.g. [ id:'test', single_end:false ] - fasta: type: file - description: Fasta of list of fasta files recommended to be gathered via with .collect() of bins - pattern: "*.{fa,fas,fasta}" - - binner: - type: val - description: Name of the binning software (optional) + description: Fasta or list of fasta files recommended to be gathered via with .collect() of bins + pattern: "*.{fa,fa.gz,fas,fas.gz,fna,fna.gz,fasta,fasta.gz}" - extension: type: val - description: Fasta file extension (fa | fas | fasta | ...) + description: Fasta file extension (fa | fas | fasta | ...), but without .gz suffix, even if gzipped input. output: - meta: diff --git a/tests/modules/dastool/scaffolds2bin/main.nf b/tests/modules/dastool/scaffolds2bin/main.nf index a0cd6726..c45a6f2b 100644 --- a/tests/modules/dastool/scaffolds2bin/main.nf +++ b/tests/modules/dastool/scaffolds2bin/main.nf @@ -2,9 +2,10 @@ nextflow.enable.dsl = 2 -include { METABAT2_METABAT2 } from '../../../../modules/metabat2/metabat2/main.nf' -include { METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS } from '../../../../modules/metabat2/jgisummarizebamcontigdepths/main.nf' -include { DASTOOL_SCAFFOLDS2BIN } from '../../../../modules/dastool/scaffolds2bin/main.nf' +include { GUNZIP } from '../../../../modules/gunzip/main.nf' +include { METABAT2_METABAT2 } from '../../../../modules/metabat2/metabat2/main.nf' +include { METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS } from '../../../../modules/metabat2/jgisummarizebamcontigdepths/main.nf' +include { DASTOOL_SCAFFOLDS2BIN } from '../../../../modules/dastool/scaffolds2bin/main.nf' workflow test_dastool_scaffolds2bin { @@ -22,4 +23,26 @@ workflow test_dastool_scaffolds2bin { METABAT2_METABAT2 ( input_metabat2 ) DASTOOL_SCAFFOLDS2BIN ( METABAT2_METABAT2.out.fasta.collect(), "fa") -} \ No newline at end of file +} + +workflow test_dastool_scaffolds2bin_ungzipped { + + input_depth = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['bacteroides_fragilis']['illumina']['test1_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['bacteroides_fragilis']['illumina']['test1_paired_end_sorted_bam_bai'], checkIfExists: true) ] + + + METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS ( input_depth ) + + Channel.fromPath(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + .map { it -> [[ id:'test', single_end:false ], it] } + .join(METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS.out.depth) + .set { input_metabat2 } + + METABAT2_METABAT2 ( input_metabat2 ) + + // TODO test unzipped input files + ch_input_2_scaffolds2bin = GUNZIP( METABAT2_METABAT2.out.fasta ).gunzip + + DASTOOL_SCAFFOLDS2BIN ( ch_input_2_scaffolds2bin, "fa") +} diff --git a/tests/modules/dastool/scaffolds2bin/test.yml b/tests/modules/dastool/scaffolds2bin/test.yml index 26f528c9..3d91c8c1 100644 --- a/tests/modules/dastool/scaffolds2bin/test.yml +++ b/tests/modules/dastool/scaffolds2bin/test.yml @@ -1,14 +1,20 @@ - name: dastool scaffolds2bin test_dastool_scaffolds2bin - command: nextflow run ./tests/modules/dastool/scaffolds2bin -entry test_dastool_scaffolds2bin -c ./tests/config/nextflow.config -c ./tests/modules/dastool/scaffolds2bin/nextflow.config + command: nextflow run tests/modules/dastool/scaffolds2bin -entry test_dastool_scaffolds2bin -c tests/config/nextflow.config tags: - dastool - dastool/scaffolds2bin files: - path: output/dastool/test.tsv md5sum: 6e46c0be14dded7cb13af38f54feea47 - - path: output/metabat2/bins/test.1.fa.gz - md5sum: 2b297bf557cc3831b800348859331268 - - path: output/metabat2/test.tsv.gz - md5sum: 619338fa5019e361d5545ce385a6961f - - path: output/metabat2/test.txt.gz - md5sum: 745a0446af6ef68b930975e9ce5a95d6 + - path: output/dastool/versions.yml + md5sum: d0831ed159eb5a1a1565d1d211012ad6 +- name: dastool scaffolds2bin test_dastool_scaffolds2bin_ungzipped + command: nextflow run tests/modules/dastool/scaffolds2bin -entry test_dastool_scaffolds2bin_ungzipped -c tests/config/nextflow.config + tags: + - dastool + - dastool/scaffolds2bin + files: + - path: output/dastool/test.tsv + md5sum: 6e46c0be14dded7cb13af38f54feea47 + - path: output/dastool/versions.yml + md5sum: da58e477b7f4c16a9ea495ec1a4a4d4f From 49b18b1639f4f7104187058866a8fab33332bdfe Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Mon, 28 Mar 2022 17:48:39 +0200 Subject: [PATCH 133/592] add stub to modules used in raredisease pipeline (#1206) * add stub section * add stub for bcftools norm * add stub to more modules * fix expansionhunter tests * revert changes -picard * Update stub to write version no.s to a file * add picard * revert picard again * add stubs to more modules * fix bwamem2 * add bcftools view * add stubs * fix svdb query * review suggestions --- modules/bcftools/norm/main.nf | 11 +++ modules/bcftools/view/main.nf | 11 +++ modules/bwamem2/index/main.nf | 15 ++++ modules/bwamem2/mem/main.nf | 11 +++ modules/cat/cat/main.nf | 10 +++ modules/deepvariant/main.nf | 12 ++++ modules/expansionhunter/main.nf | 11 +++ modules/fastqc/main.nf | 12 ++++ modules/gatk4/bedtointervallist/main.nf | 11 +++ .../gatk4/createsequencedictionary/main.nf | 11 +++ modules/gatk4/intervallisttools/main.nf | 18 +++++ modules/glnexus/main.nf | 11 +++ modules/multiqc/main.nf | 12 ++++ modules/picard/collecthsmetrics/main.nf | 11 +++ modules/picard/collectmultiplemetrics/main.nf | 20 ++++++ modules/picard/markduplicates/main.nf | 13 ++++ modules/picard/sortvcf/main.nf | 13 ++++ modules/qualimap/bamqc/main.nf | 68 +++++++++++++++++++ modules/samtools/faidx/main.nf | 10 +++ modules/samtools/index/main.nf | 12 ++++ modules/samtools/merge/main.nf | 12 ++++ modules/samtools/sort/main.nf | 11 +++ modules/samtools/stats/main.nf | 11 +++ modules/svdb/query/main.nf | 1 - modules/tabix/bgziptabix/main.nf | 12 ++++ modules/tabix/tabix/main.nf | 11 +++ modules/tiddit/cov/main.nf | 12 ++++ modules/tiddit/sv/main.nf | 13 ++++ modules/ucsc/wigtobigwig/main.nf | 11 +++ modules/untar/main.nf | 11 +++ modules/vcfanno/main.nf | 11 +++ tests/modules/expansionhunter/main.nf | 4 +- tests/modules/expansionhunter/test.yml | 2 +- 33 files changed, 421 insertions(+), 4 deletions(-) diff --git a/modules/bcftools/norm/main.nf b/modules/bcftools/norm/main.nf index cd681f21..b81a4310 100644 --- a/modules/bcftools/norm/main.nf +++ b/modules/bcftools/norm/main.nf @@ -34,4 +34,15 @@ process BCFTOOLS_NORM { bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/bcftools/view/main.nf b/modules/bcftools/view/main.nf index 2a240f4a..ca1121a5 100644 --- a/modules/bcftools/view/main.nf +++ b/modules/bcftools/view/main.nf @@ -41,4 +41,15 @@ process BCFTOOLS_VIEW { bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/bwamem2/index/main.nf b/modules/bwamem2/index/main.nf index 0e9cc2f8..900f27d4 100644 --- a/modules/bwamem2/index/main.nf +++ b/modules/bwamem2/index/main.nf @@ -31,4 +31,19 @@ process BWAMEM2_INDEX { bwamem2: \$(echo \$(bwa-mem2 version 2>&1) | sed 's/.* //') END_VERSIONS """ + + stub: + """ + mkdir bwamem2 + touch bwamem2/${fasta}.0123 + touch bwamem2/${fasta}.ann + touch bwamem2/${fasta}.pac + touch bwamem2/${fasta}.amb + touch bwamem2/${fasta}.bwt.2bit.64 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwamem2: \$(echo \$(bwa-mem2 version 2>&1) | sed 's/.* //') + END_VERSIONS + """ } diff --git a/modules/bwamem2/mem/main.nf b/modules/bwamem2/mem/main.nf index 21dfb1d6..e3a3d164 100644 --- a/modules/bwamem2/mem/main.nf +++ b/modules/bwamem2/mem/main.nf @@ -43,4 +43,15 @@ process BWAMEM2_MEM { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bam + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bwamem2: \$(echo \$(bwa-mem2 version 2>&1) | sed 's/.* //') + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/cat/cat/main.nf b/modules/cat/cat/main.nf index 25dcc652..b02ca7ee 100644 --- a/modules/cat/cat/main.nf +++ b/modules/cat/cat/main.nf @@ -47,4 +47,14 @@ process CAT_CAT { pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) END_VERSIONS """ + + stub: + """ + touch $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS + """ } diff --git a/modules/deepvariant/main.nf b/modules/deepvariant/main.nf index 8e5f10df..f0c6b47b 100644 --- a/modules/deepvariant/main.nf +++ b/modules/deepvariant/main.nf @@ -44,4 +44,16 @@ process DEEPVARIANT { deepvariant: \$(echo \$(/opt/deepvariant/bin/run_deepvariant --version) | sed 's/^.*version //; s/ .*\$//' ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.vcf.gz + touch ${prefix}.g.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + deepvariant: \$(echo \$(/opt/deepvariant/bin/run_deepvariant --version) | sed 's/^.*version //; s/ .*\$//' ) + END_VERSIONS + """ } diff --git a/modules/expansionhunter/main.nf b/modules/expansionhunter/main.nf index 4e62b2a6..f60b75b4 100644 --- a/modules/expansionhunter/main.nf +++ b/modules/expansionhunter/main.nf @@ -37,4 +37,15 @@ process EXPANSIONHUNTER { expansionhunter: \$( echo \$(ExpansionHunter --version 2>&1) | sed 's/^.*ExpansionHunter v//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.vcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + expansionhunter: \$( echo \$(ExpansionHunter --version 2>&1) | sed 's/^.*ExpansionHunter v//') + END_VERSIONS + """ } diff --git a/modules/fastqc/main.nf b/modules/fastqc/main.nf index ed6b8c50..05730368 100644 --- a/modules/fastqc/main.nf +++ b/modules/fastqc/main.nf @@ -44,4 +44,16 @@ process FASTQC { END_VERSIONS """ } + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.html + touch ${prefix}.zip + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS + """ } diff --git a/modules/gatk4/bedtointervallist/main.nf b/modules/gatk4/bedtointervallist/main.nf index 74256dd1..c3b624a8 100644 --- a/modules/gatk4/bedtointervallist/main.nf +++ b/modules/gatk4/bedtointervallist/main.nf @@ -39,4 +39,15 @@ process GATK4_BEDTOINTERVALLIST { gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.interval_list + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/gatk4/createsequencedictionary/main.nf b/modules/gatk4/createsequencedictionary/main.nf index 87d52a59..fe1a6c65 100644 --- a/modules/gatk4/createsequencedictionary/main.nf +++ b/modules/gatk4/createsequencedictionary/main.nf @@ -37,4 +37,15 @@ process GATK4_CREATESEQUENCEDICTIONARY { gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.dict + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/gatk4/intervallisttools/main.nf b/modules/gatk4/intervallisttools/main.nf index 352a3240..82c3222c 100644 --- a/modules/gatk4/intervallisttools/main.nf +++ b/modules/gatk4/intervallisttools/main.nf @@ -51,4 +51,22 @@ process GATK4_INTERVALLISTTOOLS { gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + mkdir -p ${prefix}_split/temp_0001_of_6 + mkdir -p ${prefix}_split/temp_0002_of_6 + mkdir -p ${prefix}_split/temp_0003_of_6 + mkdir -p ${prefix}_split/temp_0004_of_6 + touch ${prefix}_split/temp_0001_of_6/1scattered.interval_list + touch ${prefix}_split/temp_0002_of_6/2scattered.interval_list + touch ${prefix}_split/temp_0003_of_6/3scattered.interval_list + touch ${prefix}_split/temp_0004_of_6/4scattered.interval_list + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/glnexus/main.nf b/modules/glnexus/main.nf index 84da95a0..a26ab4ce 100644 --- a/modules/glnexus/main.nf +++ b/modules/glnexus/main.nf @@ -42,4 +42,15 @@ process GLNEXUS { glnexus: \$( echo \$(glnexus_cli 2>&1) | head -n 1 | sed 's/^.*release v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + glnexus: \$( echo \$(glnexus_cli 2>&1) | head -n 1 | sed 's/^.*release v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/multiqc/main.nf b/modules/multiqc/main.nf index 1264aac1..ae019dbf 100644 --- a/modules/multiqc/main.nf +++ b/modules/multiqc/main.nf @@ -28,4 +28,16 @@ process MULTIQC { multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) END_VERSIONS """ + + stub: + """ + touch multiqc_data + touch multiqc_plots + touch multiqc_report.html + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS + """ } diff --git a/modules/picard/collecthsmetrics/main.nf b/modules/picard/collecthsmetrics/main.nf index 07e8504f..3acf8bb8 100644 --- a/modules/picard/collecthsmetrics/main.nf +++ b/modules/picard/collecthsmetrics/main.nf @@ -48,4 +48,15 @@ process PICARD_COLLECTHSMETRICS { picard: \$(echo \$(picard CollectHsMetrics --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}_collecthsmetrics.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(echo \$(picard CollectHsMetrics --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ } diff --git a/modules/picard/collectmultiplemetrics/main.nf b/modules/picard/collectmultiplemetrics/main.nf index e023ea3c..340463a8 100644 --- a/modules/picard/collectmultiplemetrics/main.nf +++ b/modules/picard/collectmultiplemetrics/main.nf @@ -42,4 +42,24 @@ process PICARD_COLLECTMULTIPLEMETRICS { picard: \$(picard CollectMultipleMetrics --version 2>&1 | grep -o 'Version.*' | cut -f2- -d:) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.CollectMultipleMetrics.alignment_summary_metrics + touch ${prefix}.CollectMultipleMetrics.insert_size_metrics + touch ${prefix}.CollectMultipleMetrics.quality_distribution.pdf + touch ${prefix}.CollectMultipleMetrics.base_distribution_by_cycle_metrics + touch ${prefix}.CollectMultipleMetrics.quality_by_cycle_metrics + touch ${prefix}.CollectMultipleMetrics.read_length_histogram.pdf + touch ${prefix}.CollectMultipleMetrics.base_distribution_by_cycle.pdf + touch ${prefix}.CollectMultipleMetrics.quality_by_cycle.pdf + touch ${prefix}.CollectMultipleMetrics.insert_size_histogram.pdf + touch ${prefix}.CollectMultipleMetrics.quality_distribution_metrics + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(echo \$(picard CollectMultipleMetrics --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ } diff --git a/modules/picard/markduplicates/main.nf b/modules/picard/markduplicates/main.nf index 5196b6ed..e754a587 100644 --- a/modules/picard/markduplicates/main.nf +++ b/modules/picard/markduplicates/main.nf @@ -42,4 +42,17 @@ process PICARD_MARKDUPLICATES { picard: \$(echo \$(picard MarkDuplicates --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bam + touch ${prefix}.bam.bai + touch ${prefix}.MarkDuplicates.metrics.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(echo \$(picard MarkDuplicates --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ } diff --git a/modules/picard/sortvcf/main.nf b/modules/picard/sortvcf/main.nf index 0f10c1ab..4047545e 100644 --- a/modules/picard/sortvcf/main.nf +++ b/modules/picard/sortvcf/main.nf @@ -46,4 +46,17 @@ process PICARD_SORTVCF { picard: \$(picard SortVcf --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d:) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}_sorted.vcf.gz + touch ${prefix}.bam.bai + touch ${prefix}.MarkDuplicates.metrics.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(picard SortVcf --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d:) + END_VERSIONS + """ } diff --git a/modules/qualimap/bamqc/main.nf b/modules/qualimap/bamqc/main.nf index 92f38f8c..3bfcb4c1 100644 --- a/modules/qualimap/bamqc/main.nf +++ b/modules/qualimap/bamqc/main.nf @@ -52,4 +52,72 @@ process QUALIMAP_BAMQC { qualimap: \$(echo \$(qualimap 2>&1) | sed 's/^.*QualiMap v.//; s/Built.*\$//') END_VERSIONS """ + + stub: + prefix = task.ext.suffix ? "${meta.id}${task.ext.suffix}" : "${meta.id}" + """ + mkdir -p $prefix/css + mkdir $prefix/images_qualimapReport + mkdir $prefix/raw_data_qualimapReport + cd $prefix/css + touch agogo.css + touch basic.css + touch bgtop.png + touch comment-close.png + touch doctools.js + touch down-pressed.png + touch jquery.js + touch plus.png + touch qualimap_logo_small.png + touch searchtools.js + touch up.png + touch websupport.js + touch ajax-loader.gif + touch bgfooter.png + touch comment-bright.png + touch comment.png + touch down.png + touch file.png + touch minus.png + touch pygments.css + touch report.css + touch underscore.js + touch up-pressed.png + cd ../images_qualimapReport/ + touch genome_coverage_0to50_histogram.png + touch genome_coverage_quotes.png + touch genome_insert_size_across_reference.png + touch genome_mapping_quality_histogram.png + touch genome_uniq_read_starts_histogram.png + touch genome_coverage_across_reference.png + touch genome_gc_content_per_window.png + touch genome_insert_size_histogram.png + touch genome_reads_clipping_profile.png + touch genome_coverage_histogram.png + touch genome_homopolymer_indels.png + touch genome_mapping_quality_across_reference.png + touch genome_reads_content_per_read_position.png + cd ../raw_data_qualimapReport + touch coverage_across_reference.txt + touch genome_fraction_coverage.txt + touch insert_size_histogram.txt + touch mapped_reads_nucleotide_content.txt + touch coverage_histogram.txt + touch homopolymer_indels.txt + touch mapped_reads_clipping_profile.txt + touch mapping_quality_across_reference.txt + touch duplication_rate_histogram.txt + touch insert_size_across_reference.txt + touch mapped_reads_gc-content_distribution.txt + touch mapping_quality_histogram.txt + cd ../ + touch genome_results.txt + touch qualimapReport.html + cd ../ + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + qualimap: \$(echo \$(qualimap 2>&1) | sed 's/^.*QualiMap v.//; s/Built.*\$//') + END_VERSIONS + """ } diff --git a/modules/samtools/faidx/main.nf b/modules/samtools/faidx/main.nf index 7732a4ec..053279ff 100644 --- a/modules/samtools/faidx/main.nf +++ b/modules/samtools/faidx/main.nf @@ -29,4 +29,14 @@ process SAMTOOLS_FAIDX { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + """ + touch ${fasta}.fai + cat <<-END_VERSIONS > versions.yml + + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/samtools/index/main.nf b/modules/samtools/index/main.nf index e41cdcc8..fff6e1b8 100644 --- a/modules/samtools/index/main.nf +++ b/modules/samtools/index/main.nf @@ -33,4 +33,16 @@ process SAMTOOLS_INDEX { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + """ + touch ${input}.bai + touch ${input}.crai + touch ${input}.csi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/samtools/merge/main.nf b/modules/samtools/merge/main.nf index 7b771677..9f962a4b 100644 --- a/modules/samtools/merge/main.nf +++ b/modules/samtools/merge/main.nf @@ -38,4 +38,16 @@ process SAMTOOLS_MERGE { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + prefix = task.ext.suffix ? "${meta.id}${task.ext.suffix}" : "${meta.id}" + def file_type = input_files[0].getExtension() + """ + touch ${prefix}.${file_type} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/samtools/sort/main.nf b/modules/samtools/sort/main.nf index 0e2de8ba..ba46f0c9 100644 --- a/modules/samtools/sort/main.nf +++ b/modules/samtools/sort/main.nf @@ -28,4 +28,15 @@ process SAMTOOLS_SORT { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/samtools/stats/main.nf b/modules/samtools/stats/main.nf index 6efc9d9a..85cb64f3 100644 --- a/modules/samtools/stats/main.nf +++ b/modules/samtools/stats/main.nf @@ -34,4 +34,15 @@ process SAMTOOLS_STATS { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${input}.stats + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } diff --git a/modules/svdb/query/main.nf b/modules/svdb/query/main.nf index 37ce432c..15609bad 100644 --- a/modules/svdb/query/main.nf +++ b/modules/svdb/query/main.nf @@ -70,5 +70,4 @@ process SVDB_QUERY { svdb: \$( echo \$(svdb) | head -1 | sed 's/usage: SVDB-\\([0-9]\\.[0-9]\\.[0-9]\\).*/\\1/' ) END_VERSIONS """ - } diff --git a/modules/tabix/bgziptabix/main.nf b/modules/tabix/bgziptabix/main.nf index 12657599..77fd91a5 100644 --- a/modules/tabix/bgziptabix/main.nf +++ b/modules/tabix/bgziptabix/main.nf @@ -30,4 +30,16 @@ process TABIX_BGZIPTABIX { tabix: \$(echo \$(tabix -h 2>&1) | sed 's/^.*Version: //; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.gz + touch ${prefix}.gz.tbi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + tabix: \$(echo \$(tabix -h 2>&1) | sed 's/^.*Version: //; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/tabix/tabix/main.nf b/modules/tabix/tabix/main.nf index 5f516261..c9dab068 100644 --- a/modules/tabix/tabix/main.nf +++ b/modules/tabix/tabix/main.nf @@ -27,4 +27,15 @@ process TABIX_TABIX { tabix: \$(echo \$(tabix -h 2>&1) | sed 's/^.*Version: //; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${tab}.tbi + cat <<-END_VERSIONS > versions.yml + + "${task.process}": + tabix: \$(echo \$(tabix -h 2>&1) | sed 's/^.*Version: //; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/tiddit/cov/main.nf b/modules/tiddit/cov/main.nf index a5f8c649..f805cfa7 100644 --- a/modules/tiddit/cov/main.nf +++ b/modules/tiddit/cov/main.nf @@ -36,4 +36,16 @@ process TIDDIT_COV { tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*TIDDIT-//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch $prefix.wig + touch $prefix.tab + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*TIDDIT-//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/tiddit/sv/main.nf b/modules/tiddit/sv/main.nf index 454dfc54..872eeed1 100644 --- a/modules/tiddit/sv/main.nf +++ b/modules/tiddit/sv/main.nf @@ -38,4 +38,17 @@ process TIDDIT_SV { tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*TIDDIT-//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch $prefix.vcf + touch $prefix.ploidy.tab + touch $prefix.signals.tab + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + tiddit: \$(echo \$(tiddit 2>&1) | sed 's/^.*TIDDIT-//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/ucsc/wigtobigwig/main.nf b/modules/ucsc/wigtobigwig/main.nf index d07e7ec1..2af7190b 100644 --- a/modules/ucsc/wigtobigwig/main.nf +++ b/modules/ucsc/wigtobigwig/main.nf @@ -35,4 +35,15 @@ process UCSC_WIGTOBIGWIG { ucsc: $VERSION END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bw + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + ucsc: $VERSION + END_VERSIONS + """ } diff --git a/modules/untar/main.nf b/modules/untar/main.nf index dc43fb78..5aa6aa7f 100644 --- a/modules/untar/main.nf +++ b/modules/untar/main.nf @@ -33,4 +33,15 @@ process UNTAR { untar: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') END_VERSIONS """ + + stub: + untar = archive.toString() - '.tar.gz' + """ + touch $untar + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + untar: \$(echo \$(tar --version 2>&1) | sed 's/^.*(GNU tar) //; s/ Copyright.*\$//') + END_VERSIONS + """ } diff --git a/modules/vcfanno/main.nf b/modules/vcfanno/main.nf index 51b1ec5b..bc0514c9 100644 --- a/modules/vcfanno/main.nf +++ b/modules/vcfanno/main.nf @@ -39,4 +39,15 @@ process VCFANNO { vcfanno: \$(echo \$(vcfanno 2>&1 | grep version | cut -f3 -d' ' )) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}_annotated.vcf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + vcfanno: \$(echo \$(vcfanno 2>&1 | grep version | cut -f3 -d' ' )) + END_VERSIONS + """ } diff --git a/tests/modules/expansionhunter/main.nf b/tests/modules/expansionhunter/main.nf index 91faeeb8..d0221234 100644 --- a/tests/modules/expansionhunter/main.nf +++ b/tests/modules/expansionhunter/main.nf @@ -7,8 +7,8 @@ include { EXPANSIONHUNTER } from '../../../modules/expansionhunter/main.nf' workflow test_expansionhunter { input = [ [ id:'test', gender:'male' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) variant_catalog = file(params.test_data['homo_sapiens']['genome']['repeat_expansions'], checkIfExists: true) diff --git a/tests/modules/expansionhunter/test.yml b/tests/modules/expansionhunter/test.yml index 19403588..f9282f8c 100644 --- a/tests/modules/expansionhunter/test.yml +++ b/tests/modules/expansionhunter/test.yml @@ -4,4 +4,4 @@ - expansionhunter files: - path: output/expansionhunter/test.vcf - md5sum: ef6c2101d7bd67211bb5a5a132690e02 + md5sum: cfd4a1d35c0e469b99eb6aaa6d22de76 From dbb46c9b635080b132bab4b8d5b9a14f0d1c22e7 Mon Sep 17 00:00:00 2001 From: Jose Espinosa-Carrasco Date: Tue, 29 Mar 2022 16:44:19 +0200 Subject: [PATCH 134/592] Bump chromap version 0.2.1 (#1462) --- modules/chromap/chromap/main.nf | 6 +++--- modules/chromap/index/main.nf | 8 ++++---- tests/modules/chromap/chromap/test.yml | 8 ++++---- tests/modules/chromap/index/test.yml | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/chromap/chromap/main.nf b/modules/chromap/chromap/main.nf index 4ee86b92..bf3d1234 100644 --- a/modules/chromap/chromap/main.nf +++ b/modules/chromap/chromap/main.nf @@ -2,10 +2,10 @@ process CHROMAP_CHROMAP { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::chromap=0.2.0 bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::chromap=0.2.1 bioconda::samtools=1.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:ed3529ef5253d7ccbc688b6a4c5c447152685757-0' : - 'quay.io/biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:ed3529ef5253d7ccbc688b6a4c5c447152685757-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:bd74d08a359024829a7aec1638a28607bbcd8a58-0' : + 'quay.io/biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:bd74d08a359024829a7aec1638a28607bbcd8a58-0' }" input: tuple val(meta), path(reads) diff --git a/modules/chromap/index/main.nf b/modules/chromap/index/main.nf index 2696d6a5..ee370695 100644 --- a/modules/chromap/index/main.nf +++ b/modules/chromap/index/main.nf @@ -1,11 +1,11 @@ process CHROMAP_INDEX { - tag '$fasta' + tag "$fasta" label 'process_medium' - conda (params.enable_conda ? "bioconda::chromap=0.2.0" : null) + conda (params.enable_conda ? "bioconda::chromap=0.2.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/chromap:0.2.0--hd03093a_1' : - 'quay.io/biocontainers/chromap:0.2.0--hd03093a_1' }" + 'https://depot.galaxyproject.org/singularity/chromap:0.2.1--hd03093a_0' : + 'quay.io/biocontainers/chromap:0.2.1--hd03093a_0' }" input: path fasta diff --git a/tests/modules/chromap/chromap/test.yml b/tests/modules/chromap/chromap/test.yml index 40e45959..d76370b2 100644 --- a/tests/modules/chromap/chromap/test.yml +++ b/tests/modules/chromap/chromap/test.yml @@ -8,7 +8,7 @@ - path: output/chromap/test.bed.gz md5sum: 25e40bde24c7b447292cd68573728694 - path: output/chromap/versions.yml - md5sum: 2d3d2959ac20d98036807964896829e7 + md5sum: d24cfc35ad958206a5bc5694221b4fae - name: chromap chromap test_chromap_chromap_paired_end command: nextflow run ./tests/modules/chromap/chromap -entry test_chromap_chromap_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/chromap/chromap/nextflow.config @@ -20,7 +20,7 @@ - path: output/chromap/test.bed.gz md5sum: 7cdc8448882b75811e0c784f5f20aef2 - path: output/chromap/versions.yml - md5sum: 51cff66779161d8a602cce5989017395 + md5sum: 68ffe268a9d460956de4aad2a55ffd68 - name: chromap chromap test_chromap_chromap_paired_bam command: nextflow run ./tests/modules/chromap/chromap -entry test_chromap_chromap_paired_bam -c ./tests/config/nextflow.config -c ./tests/modules/chromap/chromap/nextflow.config @@ -30,6 +30,6 @@ files: - path: output/chromap/genome.index - path: output/chromap/test.bam - md5sum: f255c7441d5a1f307fc642d2aa19647e + md5sum: df467417407408e42992dc3dd15b22f5 - path: output/chromap/versions.yml - md5sum: f91910c44169549c3923931de5c3afcb + md5sum: ea732b4c6f1312d09745b66c3963dd3f diff --git a/tests/modules/chromap/index/test.yml b/tests/modules/chromap/index/test.yml index b2aa37d8..3e1d6fa6 100644 --- a/tests/modules/chromap/index/test.yml +++ b/tests/modules/chromap/index/test.yml @@ -6,4 +6,4 @@ files: - path: output/chromap/genome.index - path: output/chromap/versions.yml - md5sum: b75dec647f9dc5f4887f36d1db7a9ccd + md5sum: fc5c80190d0622ea3e979e6862f8e32b From 9446428976cef86d2cd5d746adb4a08fed4e3ba0 Mon Sep 17 00:00:00 2001 From: Rike Date: Tue, 29 Mar 2022 19:01:01 +0200 Subject: [PATCH 135/592] Fix typo --- modules/controlfreec/freec/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/controlfreec/freec/main.nf b/modules/controlfreec/freec/main.nf index ba48ea1e..eb66eeaa 100644 --- a/modules/controlfreec/freec/main.nf +++ b/modules/controlfreec/freec/main.nf @@ -41,7 +41,7 @@ process CONTROLFREEC_FREEC { def chr_length = fai ? "chrLenFile = \${PWD}/${fai}" : "" def breakpointthreshold = task.ext.args?["general"]?["breakpointthreshold"] ? "breakPointThreshold = ${task.ext.args["general"]["breakpointthreshold"]}" : "" def breakpointtype = task.ext.args?["general"]?["breakpointtype"] ? "breakPointType = ${task.ext.args["general"]["breakpointtype"]}" : "" - def coefficientofvariation = task.ext.args?["general"]?["coefficient"] ? "coefficientOfVariation = ${task.ext.args["general"]["coefficientofvariation"]}" : "" + def coefficientofvariation = task.ext.args?["general"]?["coefficientofvariation"] ? "coefficientOfVariation = ${task.ext.args["general"]["coefficientofvariation"]}" : "" def contamination = task.ext.args?["general"]?["contamination"] ? "contamination = ${task.ext.args["general"]["contamination"]}" : "" def contaminationadjustment = task.ext.args?["general"]?["contaminationadjustment"] ? "contaminationAdjustment = ${task.ext.args["general"]["contaminationadjustment"]}" : "" def degree = task.ext.args?["general"]?["degree"] ? "degree = ${task.ext.args["general"]["degree"]}" : "" From 1ec1868264a8429e02ee3dca881b69c80239c9dc Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Tue, 29 Mar 2022 19:13:41 +0200 Subject: [PATCH 136/592] Fix typo (#1464) --- modules/controlfreec/freec/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/controlfreec/freec/main.nf b/modules/controlfreec/freec/main.nf index ba48ea1e..eb66eeaa 100644 --- a/modules/controlfreec/freec/main.nf +++ b/modules/controlfreec/freec/main.nf @@ -41,7 +41,7 @@ process CONTROLFREEC_FREEC { def chr_length = fai ? "chrLenFile = \${PWD}/${fai}" : "" def breakpointthreshold = task.ext.args?["general"]?["breakpointthreshold"] ? "breakPointThreshold = ${task.ext.args["general"]["breakpointthreshold"]}" : "" def breakpointtype = task.ext.args?["general"]?["breakpointtype"] ? "breakPointType = ${task.ext.args["general"]["breakpointtype"]}" : "" - def coefficientofvariation = task.ext.args?["general"]?["coefficient"] ? "coefficientOfVariation = ${task.ext.args["general"]["coefficientofvariation"]}" : "" + def coefficientofvariation = task.ext.args?["general"]?["coefficientofvariation"] ? "coefficientOfVariation = ${task.ext.args["general"]["coefficientofvariation"]}" : "" def contamination = task.ext.args?["general"]?["contamination"] ? "contamination = ${task.ext.args["general"]["contamination"]}" : "" def contaminationadjustment = task.ext.args?["general"]?["contaminationadjustment"] ? "contaminationAdjustment = ${task.ext.args["general"]["contaminationadjustment"]}" : "" def degree = task.ext.args?["general"]?["degree"] ? "degree = ${task.ext.args["general"]["degree"]}" : "" From a973b68200da801be1c2e27b8fd72d7256f5db6b Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Wed, 30 Mar 2022 14:50:27 +0200 Subject: [PATCH 137/592] svdb update to 2.6.0 (#1465) --- modules/svdb/merge/main.nf | 6 +++--- modules/svdb/query/main.nf | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/svdb/merge/main.nf b/modules/svdb/merge/main.nf index 9e729bf3..4a39940c 100644 --- a/modules/svdb/merge/main.nf +++ b/modules/svdb/merge/main.nf @@ -2,10 +2,10 @@ process SVDB_MERGE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::svdb=2.5.2" : null) + conda (params.enable_conda ? "bioconda::svdb=2.6.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/svdb:2.5.2--py39h5371cbf_0': - 'quay.io/biocontainers/svdb:2.5.2--py39h5371cbf_0' }" + 'https://depot.galaxyproject.org/singularity/svdb:2.6.0--py39h5371cbf_0': + 'quay.io/biocontainers/svdb:2.6.0--py39h5371cbf_0' }" input: tuple val(meta), path(vcfs) diff --git a/modules/svdb/query/main.nf b/modules/svdb/query/main.nf index 15609bad..c669b5a5 100644 --- a/modules/svdb/query/main.nf +++ b/modules/svdb/query/main.nf @@ -2,10 +2,10 @@ process SVDB_QUERY { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::svdb=2.5.2" : null) + conda (params.enable_conda ? "bioconda::svdb=2.6.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/svdb:2.5.2--py39h5371cbf_0': - 'quay.io/biocontainers/svdb:2.5.2--py39h5371cbf_0' }" + 'https://depot.galaxyproject.org/singularity/svdb:2.6.0--py39h5371cbf_0': + 'quay.io/biocontainers/svdb:2.6.0--py39h5371cbf_0' }" input: tuple val(meta), path(vcf) From fd5f6f5f4ffef4ab5a4e809bd3211bbc71c38d30 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Wed, 30 Mar 2022 20:21:06 +0200 Subject: [PATCH 138/592] Revert recent changes made to some of the modules (#1463) * revert changes to modules * fix tests * fix kraken2 * fix untar * fix cat * add blank lines * fix typo --- modules/cat/cat/main.nf | 2 +- modules/deepvariant/main.nf | 2 +- .../gatk4/createsequencedictionary/main.nf | 3 +- modules/manta/germline/main.nf | 3 +- modules/tiddit/cov/main.nf | 4 +-- modules/tiddit/sv/main.nf | 6 ++-- tests/modules/manta/germline/main.nf | 30 +++++++++++-------- 7 files changed, 27 insertions(+), 23 deletions(-) diff --git a/modules/cat/cat/main.nf b/modules/cat/cat/main.nf index b02ca7ee..09a41561 100644 --- a/modules/cat/cat/main.nf +++ b/modules/cat/cat/main.nf @@ -30,7 +30,7 @@ process CAT_CAT { // | ungzipped | gzipped | cat | pigz | // Use input file ending as default - prefix = task.ext.prefix ?: "${meta.id}${file_list[0].substring(file_list[0].lastIndexOf('.'))}" + prefix = task.ext.prefix ?: "${meta.id}${file_list[0].substring(file_list[0].lastIndexOf('.'))}" out_zip = prefix.endsWith('.gz') in_zip = file_list[0].endsWith('.gz') command1 = (in_zip && !out_zip) ? 'zcat' : 'cat' diff --git a/modules/deepvariant/main.nf b/modules/deepvariant/main.nf index f0c6b47b..e2a0bee7 100644 --- a/modules/deepvariant/main.nf +++ b/modules/deepvariant/main.nf @@ -46,7 +46,7 @@ process DEEPVARIANT { """ stub: - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.vcf.gz touch ${prefix}.g.vcf.gz diff --git a/modules/gatk4/createsequencedictionary/main.nf b/modules/gatk4/createsequencedictionary/main.nf index fe1a6c65..dea77a1d 100644 --- a/modules/gatk4/createsequencedictionary/main.nf +++ b/modules/gatk4/createsequencedictionary/main.nf @@ -39,9 +39,8 @@ process GATK4_CREATESEQUENCEDICTIONARY { """ stub: - def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.dict + touch test.dict cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/manta/germline/main.nf b/modules/manta/germline/main.nf index ef6bd4a3..5ddba51b 100644 --- a/modules/manta/germline/main.nf +++ b/modules/manta/germline/main.nf @@ -8,9 +8,10 @@ process MANTA_GERMLINE { 'quay.io/biocontainers/manta:1.6.0--h9ee0642_1' }" input: - tuple val(meta), path(input), path(index), path(target_bed), path(target_bed_tbi) + tuple val(meta), path(input), path(index) path fasta path fasta_fai + tuple path(target_bed), path(target_bed_tbi) output: diff --git a/modules/tiddit/cov/main.nf b/modules/tiddit/cov/main.nf index f805cfa7..578c4043 100644 --- a/modules/tiddit/cov/main.nf +++ b/modules/tiddit/cov/main.nf @@ -40,8 +40,8 @@ process TIDDIT_COV { stub: def prefix = task.ext.prefix ?: "${meta.id}" """ - touch $prefix.wig - touch $prefix.tab + touch ${prefix}.wig + touch ${prefix}.tab cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/tiddit/sv/main.nf b/modules/tiddit/sv/main.nf index 872eeed1..1bf7146a 100644 --- a/modules/tiddit/sv/main.nf +++ b/modules/tiddit/sv/main.nf @@ -42,9 +42,9 @@ process TIDDIT_SV { stub: def prefix = task.ext.prefix ?: "${meta.id}" """ - touch $prefix.vcf - touch $prefix.ploidy.tab - touch $prefix.signals.tab + touch ${prefix}.vcf + touch ${prefix}.ploidy.tab + touch ${prefix}.signals.tab cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/tests/modules/manta/germline/main.nf b/tests/modules/manta/germline/main.nf index 0081c29f..bad62629 100644 --- a/tests/modules/manta/germline/main.nf +++ b/tests/modules/manta/germline/main.nf @@ -7,28 +7,30 @@ include { MANTA_GERMLINE } from '../../../../modules/manta/germline/main.nf' workflow test_manta_germline { input = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), - [],[] + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)], + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)] ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + bed = [[],[]] - MANTA_GERMLINE ( input, fasta, fai ) + MANTA_GERMLINE ( input, fasta, fai, bed ) } workflow test_manta_germline_target_bed { input = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)], + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)] ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + bed = [ + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true), + ] - MANTA_GERMLINE ( input, fasta, fai ) + MANTA_GERMLINE ( input, fasta, fai, bed ) } workflow test_manta_germline_target_bed_jointcalling { @@ -37,12 +39,14 @@ workflow test_manta_germline_target_bed_jointcalling { [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram'], checkIfExists: true)], [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram_crai'], checkIfExists: true),], - file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram_crai'], checkIfExists: true),] ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + bed = [ + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true), + ] - MANTA_GERMLINE ( input, fasta, fai ) + MANTA_GERMLINE ( input, fasta, fai, bed ) } From 0de6406217802e0bcbef89f7568b346904f5236c Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 30 Mar 2022 23:01:17 +0200 Subject: [PATCH 139/592] feat: add module for seqkit stats (#1466) --- modules/seqkit/stats/main.nf | 34 +++++++++++++ modules/seqkit/stats/meta.yml | 44 ++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/seqkit/stats/main.nf | 58 ++++++++++++++++++++++ tests/modules/seqkit/stats/nextflow.config | 5 ++ tests/modules/seqkit/stats/test.yml | 54 ++++++++++++++++++++ 6 files changed, 199 insertions(+) create mode 100644 modules/seqkit/stats/main.nf create mode 100644 modules/seqkit/stats/meta.yml create mode 100644 tests/modules/seqkit/stats/main.nf create mode 100644 tests/modules/seqkit/stats/nextflow.config create mode 100644 tests/modules/seqkit/stats/test.yml diff --git a/modules/seqkit/stats/main.nf b/modules/seqkit/stats/main.nf new file mode 100644 index 00000000..28ac77b7 --- /dev/null +++ b/modules/seqkit/stats/main.nf @@ -0,0 +1,34 @@ +process SEQKIT_STATS { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::seqkit=2.2.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/seqkit:2.2.0--h9ee0642_0': + 'quay.io/biocontainers/seqkit:2.2.0--h9ee0642_0' }" + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path("*.tsv"), emit: stats + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '--all' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + seqkit stats \\ + --tabular \\ + $args \\ + $reads > '${prefix}.tsv' + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + seqkit: \$( seqkit version | sed 's/seqkit v//' ) + END_VERSIONS + """ +} diff --git a/modules/seqkit/stats/meta.yml b/modules/seqkit/stats/meta.yml new file mode 100644 index 00000000..9d6e5b7e --- /dev/null +++ b/modules/seqkit/stats/meta.yml @@ -0,0 +1,44 @@ +name: "seqkit_stats" +description: simple statistics of FASTA/Q files +keywords: + - seqkit + - stats +tools: + - "seqkit": + description: Cross-platform and ultrafast toolkit for FASTA/Q file manipulation, written by Wei Shen. + homepage: https://bioinf.shenwei.me/seqkit/usage/ + documentation: https://bioinf.shenwei.me/seqkit/usage/ + tool_dev_url: https://github.com/shenwei356/seqkit/ + doi: "10.1371/journal.pone.0163962" + licence: ["MIT"] + +input: + - meta: + type: map + description: > + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: > + Either FASTA or FASTQ files. + pattern: "*.{fa,fna,faa,fasta,fq,fastq}[.gz]" + +output: + - meta: + type: map + description: > + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - stats: + type: file + description: > + Tab-separated output file with basic sequence statistics. + pattern: "*.tsv" + +authors: + - "@Midnighter" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 2a7b2f70..72ea6cf4 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1591,6 +1591,10 @@ seqkit/split2: - modules/seqkit/split2/** - tests/modules/seqkit/split2/** +seqkit/stats: + - modules/seqkit/stats/** + - tests/modules/seqkit/stats/** + seqsero2: - modules/seqsero2/** - tests/modules/seqsero2/** diff --git a/tests/modules/seqkit/stats/main.nf b/tests/modules/seqkit/stats/main.nf new file mode 100644 index 00000000..77442115 --- /dev/null +++ b/tests/modules/seqkit/stats/main.nf @@ -0,0 +1,58 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SEQKIT_STATS } from '../../../../modules/seqkit/stats/main.nf' + +workflow test_seqkit_stats_single_end { + + input = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + + SEQKIT_STATS ( input ) +} + +workflow test_seqkit_stats_paired_end { + + input = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + + SEQKIT_STATS ( input ) +} + +workflow test_seqkit_stats_nanopore { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['nanopore']['test_fastq_gz'], checkIfExists: true), + ] + + SEQKIT_STATS ( input ) +} + +workflow test_seqkit_stats_genome_fasta { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), + ] + + SEQKIT_STATS ( input ) +} + +workflow test_seqkit_stats_transcriptome_fasta { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true), + ] + + SEQKIT_STATS ( input ) +} diff --git a/tests/modules/seqkit/stats/nextflow.config b/tests/modules/seqkit/stats/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/seqkit/stats/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/seqkit/stats/test.yml b/tests/modules/seqkit/stats/test.yml new file mode 100644 index 00000000..fdf4533f --- /dev/null +++ b/tests/modules/seqkit/stats/test.yml @@ -0,0 +1,54 @@ +- name: seqkit stats test_seqkit_stats_single_end + command: nextflow run tests/modules/seqkit/stats -entry test_seqkit_stats_single_end -c tests/config/nextflow.config + tags: + - seqkit/stats + - seqkit + files: + - path: output/seqkit/test.tsv + md5sum: e23227d089a7e04b0ec0cb547c4aadff + - path: output/seqkit/versions.yml + md5sum: d67f0c16feb9df77b11f6c91bbdf9926 + +- name: seqkit stats test_seqkit_stats_paired_end + command: nextflow run tests/modules/seqkit/stats -entry test_seqkit_stats_paired_end -c tests/config/nextflow.config + tags: + - seqkit/stats + - seqkit + files: + - path: output/seqkit/test.tsv + md5sum: 9de20dc39fb01285e3f0c382fda9db52 + - path: output/seqkit/versions.yml + md5sum: bd8881933b953d07f2600e2e6a88ebf3 + +- name: seqkit stats test_seqkit_stats_nanopore + command: nextflow run tests/modules/seqkit/stats -entry test_seqkit_stats_nanopore -c tests/config/nextflow.config + tags: + - seqkit/stats + - seqkit + files: + - path: output/seqkit/test.tsv + md5sum: 5da1709eb5ae64fa3b2d624bffe2e7aa + - path: output/seqkit/versions.yml + md5sum: 565632701fbe048f7ba99f1865bd48ca + +- name: seqkit stats test_seqkit_stats_genome_fasta + command: nextflow run tests/modules/seqkit/stats -entry test_seqkit_stats_genome_fasta -c tests/config/nextflow.config + tags: + - seqkit/stats + - seqkit + files: + - path: output/seqkit/test.tsv + md5sum: f64489767a4e769539ef3faf83260184 + - path: output/seqkit/versions.yml + md5sum: 782fcdeaa922c8bb532ffa5808849d87 + +- name: seqkit stats test_seqkit_stats_transcriptome_fasta + command: nextflow run tests/modules/seqkit/stats -entry test_seqkit_stats_transcriptome_fasta -c tests/config/nextflow.config + tags: + - seqkit/stats + - seqkit + files: + - path: output/seqkit/test.tsv + md5sum: fbb975b665a08c8862fcd1268613a945 + - path: output/seqkit/versions.yml + md5sum: db99b016d986d26102ec398264a58410 From 233f2e728b175d8d3c398ce6dd052c6a14a3aeb7 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Thu, 31 Mar 2022 10:53:26 +0200 Subject: [PATCH 140/592] fix cnvpytor links (#1470) --- modules/cnvpytor/callcnvs/main.nf | 2 +- modules/cnvpytor/histogram/main.nf | 2 +- modules/cnvpytor/importreaddepth/main.nf | 2 +- modules/cnvpytor/partition/main.nf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/cnvpytor/callcnvs/main.nf b/modules/cnvpytor/callcnvs/main.nf index 1d47ce16..e296656b 100644 --- a/modules/cnvpytor/callcnvs/main.nf +++ b/modules/cnvpytor/callcnvs/main.nf @@ -4,7 +4,7 @@ process CNVPYTOR_CALLCNVS { conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvpytor:A1.0--py39h6a678da_2': + 'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" input: diff --git a/modules/cnvpytor/histogram/main.nf b/modules/cnvpytor/histogram/main.nf index 29dc1bff..e421f1b2 100644 --- a/modules/cnvpytor/histogram/main.nf +++ b/modules/cnvpytor/histogram/main.nf @@ -4,7 +4,7 @@ process CNVPYTOR_HISTOGRAM { conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvpytor:A1.0--py39h6a678da_2': + 'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" input: diff --git a/modules/cnvpytor/importreaddepth/main.nf b/modules/cnvpytor/importreaddepth/main.nf index 9fc7db08..1b037629 100644 --- a/modules/cnvpytor/importreaddepth/main.nf +++ b/modules/cnvpytor/importreaddepth/main.nf @@ -4,7 +4,7 @@ process CNVPYTOR_IMPORTREADDEPTH { conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvpytor:A1.0--py39h6a678da_2': + 'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" input: diff --git a/modules/cnvpytor/partition/main.nf b/modules/cnvpytor/partition/main.nf index e3f73955..74ab4026 100644 --- a/modules/cnvpytor/partition/main.nf +++ b/modules/cnvpytor/partition/main.nf @@ -4,7 +4,7 @@ process CNVPYTOR_PARTITION { conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvpytor:A1.0--py39h6a678da_2': + 'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" input: From eeda4136c096688d04cc40bb3c70d948213ed641 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Thu, 31 Mar 2022 13:42:44 +0200 Subject: [PATCH 141/592] Update cat module (#1469) * fix cat stub * add test * commit suggestions Co-authored-by: Jose Espinosa-Carrasco --- modules/cat/cat/main.nf | 2 ++ tests/modules/cat/cat/test.yml | 40 ++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/modules/cat/cat/main.nf b/modules/cat/cat/main.nf index 09a41561..40e53f3e 100644 --- a/modules/cat/cat/main.nf +++ b/modules/cat/cat/main.nf @@ -49,6 +49,8 @@ process CAT_CAT { """ stub: + def file_list = files_in.collect { it.toString() } + prefix = task.ext.prefix ?: "${meta.id}${file_list[0].substring(file_list[0].lastIndexOf('.'))}" """ touch $prefix diff --git a/tests/modules/cat/cat/test.yml b/tests/modules/cat/cat/test.yml index d6e6595e..9710b665 100644 --- a/tests/modules/cat/cat/test.yml +++ b/tests/modules/cat/cat/test.yml @@ -7,6 +7,14 @@ - path: output/cat/test.fasta md5sum: f44b33a0e441ad58b2d3700270e2dbe2 +- name: cat unzipped unzipped stub + command: nextflow run ./tests/modules/cat/cat -entry test_cat_unzipped_unzipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config -stub-run + tags: + - cat + - cat/cat + files: + - path: output/cat/test.fasta + - name: cat zipped zipped command: nextflow run ./tests/modules/cat/cat -entry test_cat_zipped_zipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config tags: @@ -15,6 +23,14 @@ files: - path: output/cat/test.gz +- name: cat zipped zipped stub + command: nextflow run ./tests/modules/cat/cat -entry test_cat_zipped_zipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config -stub-run + tags: + - cat + - cat/cat + files: + - path: output/cat/test.gz + - name: cat zipped unzipped command: nextflow run ./tests/modules/cat/cat -entry test_cat_zipped_unzipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config tags: @@ -24,6 +40,14 @@ - path: output/cat/cat.txt md5sum: c439d3b60e7bc03e8802a451a0d9a5d9 +- name: cat zipped unzipped stub + command: nextflow run ./tests/modules/cat/cat -entry test_cat_zipped_unzipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config -stub-run + tags: + - cat + - cat/cat + files: + - path: output/cat/cat.txt + - name: cat unzipped zipped command: nextflow run ./tests/modules/cat/cat -entry test_cat_unzipped_zipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config tags: @@ -32,6 +56,14 @@ files: - path: output/cat/cat.txt.gz +- name: cat unzipped zipped stub + command: nextflow run ./tests/modules/cat/cat -entry test_cat_unzipped_zipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config -stub-run + tags: + - cat + - cat/cat + files: + - path: output/cat/cat.txt.gz + - name: cat one file unzipped zipped command: nextflow run ./tests/modules/cat/cat -entry test_cat_one_file_unzipped_zipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config tags: @@ -39,3 +71,11 @@ - cat/cat files: - path: output/cat/cat.txt.gz + +- name: cat one file unzipped zipped stub + command: nextflow run ./tests/modules/cat/cat -entry test_cat_one_file_unzipped_zipped -c ./tests/config/nextflow.config -c ./tests/modules/cat/cat/nextflow.config -stub-run + tags: + - cat + - cat/cat + files: + - path: output/cat/cat.txt.gz From 794f84534b0b259662199b7f3a67baa3c3ef9b62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Guizard?= Date: Thu, 31 Mar 2022 14:11:51 +0100 Subject: [PATCH 142/592] New Module: `gstama/polyacleanup` (#1468) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 📦 NEW: Add gstama/polyacleanup polyacleanup script remove remaining polyA tails from FLNC reads (Pacbio isoseq3) * 🐛 FIX: Prettier: replace simple quote by double quote * 🐛 FIX: Update TEMPLATE to nf-core 2.4 * 👌 IMPROVE: Compress outputs Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/gstama/polyacleanup/main.nf | 40 ++++++++++++++ modules/gstama/polyacleanup/meta.yml | 55 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/gstama/polyacleanup/main.nf | 15 +++++ .../gstama/polyacleanup/nextflow.config | 6 ++ tests/modules/gstama/polyacleanup/test.yml | 14 +++++ 6 files changed, 134 insertions(+) create mode 100644 modules/gstama/polyacleanup/main.nf create mode 100644 modules/gstama/polyacleanup/meta.yml create mode 100644 tests/modules/gstama/polyacleanup/main.nf create mode 100644 tests/modules/gstama/polyacleanup/nextflow.config create mode 100644 tests/modules/gstama/polyacleanup/test.yml diff --git a/modules/gstama/polyacleanup/main.nf b/modules/gstama/polyacleanup/main.nf new file mode 100644 index 00000000..214e5f93 --- /dev/null +++ b/modules/gstama/polyacleanup/main.nf @@ -0,0 +1,40 @@ +process GSTAMA_POLYACLEANUP { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::gs-tama=1.0.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gs-tama:1.0.3--hdfd78af_0': + 'quay.io/biocontainers/gs-tama:1.0.3--hdfd78af_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*_tama.fa.gz") , emit: fasta + tuple val(meta), path("*_tama_polya_flnc_report.txt.gz"), emit: report + tuple val(meta), path("*_tama_tails.fa.gz") , emit: tails + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + if( "$fasta" == "${prefix}.fasta" | "$fasta" == "${prefix}.fa" ) error "Input and output names are the same, set prefix in module configuration" + """ + tama_flnc_polya_cleanup.py \\ + -f $fasta \\ + -p ${prefix} \\ + $args + gzip ${prefix}.fa + gzip ${prefix}_polya_flnc_report.txt + gzip ${prefix}_tails.fa + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gstama: \$( tama_collapse.py -version | grep 'tc_version_date_'|sed 's/tc_version_date_//g' ) + END_VERSIONS + """ +} diff --git a/modules/gstama/polyacleanup/meta.yml b/modules/gstama/polyacleanup/meta.yml new file mode 100644 index 00000000..c7047d15 --- /dev/null +++ b/modules/gstama/polyacleanup/meta.yml @@ -0,0 +1,55 @@ +name: gstama_polyacleanup +description: Helper script, remove remaining polyA sequences from Full Length Non Chimeric reads (Pacbio isoseq3) +keywords: + - gstama + - gstama/polyacleanup + - long-read + - isoseq + - tama + - trancriptome + - annotation +tools: + - gstama: + description: Gene-Switch Transcriptome Annotation by Modular Algorithms + homepage: https://github.com/sguizard/gs-tama + documentation: https://github.com/GenomeRIK/tama/wiki + tool_dev_url: https://github.com/sguizard/gs-tama + doi: "https://doi.org/10.1186/s12864-020-07123-7" + licence: ["GPL v3 License"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Full Length Non Chimeric reads in fasta format + pattern: "*.{fa,fasta}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - fasta: + type: file + description: The Full Length Non Chimeric reads clened from remaining polyA tails. The sequences are in FASTA format compressed with gzip. + pattern: "*_tama.fa.gz" + - report: + type: file + description: A text file describing the number of polyA tails removed and their length. Compressed with gzip. + pattern: "*_tama_polya_flnc_report.txt.gz" + - tails: + type: file + description: A gzip compressed FASTA file of trimmed polyA tails. + pattern: "*_tama_tails.fa.gz" + +authors: + - "@sguizard" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 72ea6cf4..20933e2d 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -811,6 +811,10 @@ gstama/merge: - modules/gstama/merge/** - tests/modules/gstama/merge/** +gstama/polyacleanup: + - modules/gstama/polyacleanup/** + - tests/modules/gstama/polyacleanup/** + gtdbtk/classifywf: - modules/gtdbtk/classifywf/** - tests/modules/gtdbtk/classifywf/** diff --git a/tests/modules/gstama/polyacleanup/main.nf b/tests/modules/gstama/polyacleanup/main.nf new file mode 100644 index 00000000..67b3fa87 --- /dev/null +++ b/tests/modules/gstama/polyacleanup/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GSTAMA_POLYACLEANUP } from '../../../../modules/gstama/polyacleanup/main.nf' + +workflow test_gstama_polyacleanup { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['genome']['transcriptome_fasta'], checkIfExists: true) + ] + + GSTAMA_POLYACLEANUP ( input ) +} diff --git a/tests/modules/gstama/polyacleanup/nextflow.config b/tests/modules/gstama/polyacleanup/nextflow.config new file mode 100644 index 00000000..ff407702 --- /dev/null +++ b/tests/modules/gstama/polyacleanup/nextflow.config @@ -0,0 +1,6 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + ext.prefix = { "${meta.id}_tama" } + +} diff --git a/tests/modules/gstama/polyacleanup/test.yml b/tests/modules/gstama/polyacleanup/test.yml new file mode 100644 index 00000000..7f9f4260 --- /dev/null +++ b/tests/modules/gstama/polyacleanup/test.yml @@ -0,0 +1,14 @@ +- name: gstama polyacleanup test_gstama_polyacleanup + command: nextflow run tests/modules/gstama/polyacleanup -entry test_gstama_polyacleanup -c tests/config/nextflow.config + tags: + - gstama + - gstama/polyacleanup + files: + - path: output/gstama/test_tama.fa.gz + md5sum: 9c768387478e5f966a42c369c0270b09 + - path: output/gstama/test_tama_polya_flnc_report.txt.gz + md5sum: fe3606979ed11538aacd83159f4cff03 + - path: output/gstama/test_tama_tails.fa.gz + md5sum: ba21256c0afe0bda71b3ee66b4c761bf + - path: output/gstama/versions.yml + md5sum: 07ebb812ae13a350d955fab7600b2542 From 64b06baa06bc41269282bc7d286af37e859ad244 Mon Sep 17 00:00:00 2001 From: Maxime Borry Date: Thu, 31 Mar 2022 15:18:18 +0200 Subject: [PATCH 143/592] Update PyDamage module (#1467) * add pydamage module * remove TODOs * split module by subcommands * update version parsing * remove forgotten TODOs * update module names * remove old holistic module * Update modules/pydamage/analyze/main.nf Co-authored-by: James A. Fellows Yates * add keywords * update resource requirement * Update modules/pydamage/filter/main.nf Co-authored-by: James A. Fellows Yates * Update modules/pydamage/filter/meta.yml Co-authored-by: James A. Fellows Yates * merge from upstream * update pydamage from upstream * add freebayes * update pydamage test from upstream * fix meta.yml * update functions.nf * update test.yml * update version parsing * update version parsing * fix indentation * Update modules/freebayes/main.nf Co-authored-by: James A. Fellows Yates * Update modules/freebayes/main.nf Co-authored-by: James A. Fellows Yates * Update modules/freebayes/main.nf Co-authored-by: James A. Fellows Yates * add optional inputs * Update modules/freebayes/main.nf Co-authored-by: James A. Fellows Yates * add bed test * add metabat2 module * only freebayes * remove metabat2 * update md5sum because of vcf including date of the day * add keyword * rescue conflicted files * attempt to fix ECLint * add pytest workflow for metabat * remove - * Update modules/metabat2/jgisummarizebamcontigdepths/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/metabat2/metabat2/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/metabat2/metabat2/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/metabat2/jgisummarizebamcontigdepths/meta.yml Co-authored-by: James A. Fellows Yates * add optional inputs/outpus * remove trailing whitespace * compressing and removing not reproducible md5sums * follow symlinks while decompressing * Update tests/modules/metabat2/metabat2/main.nf Co-authored-by: James A. Fellows Yates * Update tests/modules/metabat2/metabat2/main.nf Co-authored-by: James A. Fellows Yates * split tests * export env variable * Update modules/metabat2/jgisummarizebamcontigdepths/main.nf Co-authored-by: James A. Fellows Yates * Update modules/metabat2/jgisummarizebamcontigdepths/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/metabat2/metabat2/main.nf Co-authored-by: James A. Fellows Yates * Update modules/metabat2/metabat2/meta.yml Co-authored-by: James A. Fellows Yates * answer PR comments and switch to bgzip * add bacillus fragilis alignments * add meta to samtools/faidx * move to bgzip * update freebayes test results * bump pydamage version to 0.70 Co-authored-by: James A. Fellows Yates Co-authored-by: Harshil Patel Co-authored-by: Gregor Sturm Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/pydamage/analyze/main.nf | 6 +++--- modules/pydamage/filter/main.nf | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/pydamage/analyze/main.nf b/modules/pydamage/analyze/main.nf index 39e01fa1..3463b0e5 100644 --- a/modules/pydamage/analyze/main.nf +++ b/modules/pydamage/analyze/main.nf @@ -2,10 +2,10 @@ process PYDAMAGE_ANALYZE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::pydamage=0.62" : null) + conda (params.enable_conda ? "bioconda::pydamage=0.70" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/pydamage:0.62--pyhdfd78af_0' : - 'quay.io/biocontainers/pydamage:0.62--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/pydamage:0.70--pyhdfd78af_0' : + 'quay.io/biocontainers/pydamage:0.70--pyhdfd78af_0' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/pydamage/filter/main.nf b/modules/pydamage/filter/main.nf index a748875a..14fbf1c5 100644 --- a/modules/pydamage/filter/main.nf +++ b/modules/pydamage/filter/main.nf @@ -2,10 +2,10 @@ process PYDAMAGE_FILTER { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::pydamage=0.62" : null) + conda (params.enable_conda ? "bioconda::pydamage=0.70" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/pydamage:0.62--pyhdfd78af_0' : - 'quay.io/biocontainers/pydamage:0.62--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/pydamage:0.70--pyhdfd78af_0' : + 'quay.io/biocontainers/pydamage:0.70--pyhdfd78af_0' }" input: tuple val(meta), path(csv) From 5e7daa7b96fa9699a52ac8fa3dcbf4291cc6d050 Mon Sep 17 00:00:00 2001 From: Jose Espinosa-Carrasco Date: Thu, 31 Mar 2022 23:59:21 +0200 Subject: [PATCH 144/592] Add task.ext.args to phantompeakqualtools and finish the module (#1474) * Add --max--ppsize option * Add args to phantompeakqualtools and all the missing files (test, yml, ...) * Fix tests * Add the nextflow.config * Fix tests --- modules/phantompeakqualtools/main.nf | 2 +- modules/phantompeakqualtools/meta.yml | 60 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/phantompeakqualtools/main.nf | 25 ++++++++ .../phantompeakqualtools/nextflow.config | 5 ++ tests/modules/phantompeakqualtools/test.yml | 23 +++++++ 6 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 modules/phantompeakqualtools/meta.yml create mode 100644 tests/modules/phantompeakqualtools/main.nf create mode 100644 tests/modules/phantompeakqualtools/nextflow.config create mode 100644 tests/modules/phantompeakqualtools/test.yml diff --git a/modules/phantompeakqualtools/main.nf b/modules/phantompeakqualtools/main.nf index c8325b05..f584cb65 100644 --- a/modules/phantompeakqualtools/main.nf +++ b/modules/phantompeakqualtools/main.nf @@ -26,7 +26,7 @@ process PHANTOMPEAKQUALTOOLS { def prefix = task.ext.prefix ?: "${meta.id}" """ RUN_SPP=`which run_spp.R` - Rscript -e "library(caTools); source(\\"\$RUN_SPP\\")" -c="$bam" -savp="${prefix}.spp.pdf" -savd="${prefix}.spp.Rdata" -out="${prefix}.spp.out" -p=$task.cpus + Rscript $args -e "library(caTools); source(\\"\$RUN_SPP\\")" -c="$bam" -savp="${prefix}.spp.pdf" -savd="${prefix}.spp.Rdata" -out="${prefix}.spp.out" -p=$task.cpus cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/phantompeakqualtools/meta.yml b/modules/phantompeakqualtools/meta.yml new file mode 100644 index 00000000..6488500d --- /dev/null +++ b/modules/phantompeakqualtools/meta.yml @@ -0,0 +1,60 @@ +name: "phantompeakqualtools" + +description: +keywords: + - "ChIP-Seq" + - "QC" + - "phantom peaks" +tools: + - "phantompeakqualtools": + description: | + "This package computes informative enrichment and quality measures + for ChIP-seq/DNase-seq/FAIRE-seq/MNase-seq data. It can also be used + to obtain robust estimates of the predominant fragment length or + characteristic tag shift values in these assays." + homepage: "None" + documentation: "https://github.com/kundajelab/phantompeakqualtools" + tool_dev_url: "https://github.com/kundajelab/phantompeakqualtools" + doi: "https://doi.org/10.1101/gr.136184.111" + licence: "['BSD-3-clause']" + +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 ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - spp: + type: file + description: | + A ChIP-Seq Processing Pipeline file containing + peakshift/phantomPeak results + pattern: "*.{out}" + - pdf: + type: file + description: A pdf containing save cross-correlation plots + pattern: "*.{pdf}" + - rdata: + type: file + description: Rdata file containing the R session + pattern: "*.{Rdata}" + +authors: + - "@drpatelh" + - "@Emiller88" + - "@JoseEspinosa" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 20933e2d..8425b16c 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1303,6 +1303,10 @@ peddy: - modules/peddy/** - tests/modules/peddy/** +phantompeakqualtools: + - modules/phantompeakqualtools/** + - tests/modules/phantompeakqualtools/** + phyloflash: - modules/phyloflash/** - tests/modules/phyloflash/** diff --git a/tests/modules/phantompeakqualtools/main.nf b/tests/modules/phantompeakqualtools/main.nf new file mode 100644 index 00000000..3b995d68 --- /dev/null +++ b/tests/modules/phantompeakqualtools/main.nf @@ -0,0 +1,25 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PHANTOMPEAKQUALTOOLS } from '../../../modules/phantompeakqualtools/main.nf' + +workflow test_phantompeakqualtools_single_end { + + input = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true) + ] + + PHANTOMPEAKQUALTOOLS ( input ) +} + +workflow test_phantompeakqualtools_paired_end { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + PHANTOMPEAKQUALTOOLS ( input ) +} diff --git a/tests/modules/phantompeakqualtools/nextflow.config b/tests/modules/phantompeakqualtools/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/phantompeakqualtools/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/phantompeakqualtools/test.yml b/tests/modules/phantompeakqualtools/test.yml new file mode 100644 index 00000000..3ab612bd --- /dev/null +++ b/tests/modules/phantompeakqualtools/test.yml @@ -0,0 +1,23 @@ +- name: phantompeakqualtools test_phantompeakqualtools_single_end + command: nextflow run tests/modules/phantompeakqualtools -entry test_phantompeakqualtools_single_end -c tests/config/nextflow.config + tags: + - phantompeakqualtools + files: + - path: output/phantompeakqualtools/test.spp.Rdata + - path: output/phantompeakqualtools/test.spp.out + md5sum: b01d976506b6fe45b66c821b1e8a1d15 + - path: output/phantompeakqualtools/test.spp.pdf + - path: output/phantompeakqualtools/versions.yml + md5sum: 6c2ede1aac4c574e3c72fbe09f15c03f + +- name: phantompeakqualtools test_phantompeakqualtools_paired_end + command: nextflow run tests/modules/phantompeakqualtools -entry test_phantompeakqualtools_paired_end -c tests/config/nextflow.config + tags: + - phantompeakqualtools + files: + - path: output/phantompeakqualtools/test.spp.Rdata + - path: output/phantompeakqualtools/test.spp.out + md5sum: eed46e75eab119224f397a7a8b5924e6 + - path: output/phantompeakqualtools/test.spp.pdf + - path: output/phantompeakqualtools/versions.yml + md5sum: 383d2dd583fcb40451bde0d3840bdb72 From 8ce68107871c96519b3eb0095d97896e34ef4489 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Fri, 1 Apr 2022 11:33:07 +0200 Subject: [PATCH 145/592] Update DASTool to 1.1.4 (#1471) * fix: remove left-over unnecessary code * Update DASTool * Fix tests * Fix test.ymls * Fix container build version * Make tests less strict to account for variability * Apply suggestions from code review Co-authored-by: Daniel Straub <42973691+d4straub@users.noreply.github.com> * Add missing description Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: Daniel Straub <42973691+d4straub@users.noreply.github.com> --- modules/dastool/dastool/main.nf | 29 ++++------ modules/dastool/dastool/meta.yml | 18 +++--- modules/dastool/fastatocontig2bin/main.nf | 41 ++++++++++++++ modules/dastool/fastatocontig2bin/meta.yml | 56 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/dastool/dastool/main.nf | 10 ++-- tests/modules/dastool/dastool/test.yml | 29 +++++----- .../modules/dastool/fastatocontig2bin/main.nf | 48 ++++++++++++++++ .../dastool/fastatocontig2bin/nextflow.config | 5 ++ .../dastool/fastatocontig2bin/test.yml | 20 +++++++ 10 files changed, 216 insertions(+), 44 deletions(-) create mode 100644 modules/dastool/fastatocontig2bin/main.nf create mode 100644 modules/dastool/fastatocontig2bin/meta.yml create mode 100644 tests/modules/dastool/fastatocontig2bin/main.nf create mode 100644 tests/modules/dastool/fastatocontig2bin/nextflow.config create mode 100644 tests/modules/dastool/fastatocontig2bin/test.yml diff --git a/modules/dastool/dastool/main.nf b/modules/dastool/dastool/main.nf index 53dfea19..968f85de 100644 --- a/modules/dastool/dastool/main.nf +++ b/modules/dastool/dastool/main.nf @@ -2,27 +2,28 @@ process DASTOOL_DASTOOL { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::das_tool=1.1.3" : null) + conda (params.enable_conda ? "bioconda::das_tool=1.1.4" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/das_tool:1.1.3--r41hdfd78af_0' : - 'quay.io/biocontainers/das_tool:1.1.3--r41hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/das_tool:1.1.4--r41hdfd78af_1' : + 'quay.io/biocontainers/das_tool:1.1.4--r41hdfd78af_1' }" input: tuple val(meta), path(contigs), path(bins) path(proteins) path(db_directory) - val(search_engine) output: tuple val(meta), path("*.log") , emit: log - tuple val(meta), path("*_summary.txt") , emit: summary - tuple val(meta), path("*_DASTool_scaffolds2bin.txt") , emit: scaffolds2bin + tuple val(meta), path("*_summary.tsv") , emit: summary + tuple val(meta), path("*_DASTool_contig2bin.tsv") , emit: contig2bin tuple val(meta), path("*.eval") , optional: true, emit: eval tuple val(meta), path("*_DASTool_bins/*.fa") , optional: true, emit: bins tuple val(meta), path("*.pdf") , optional: true, emit: pdfs - tuple val(meta), path("*.proteins.faa") , optional: true, emit: fasta_proteins + tuple val(meta), path("*.candidates.faa") , optional: true, emit: fasta_proteins + tuple val(meta), path("*.faa") , optional: true, emit: candidates_faa tuple val(meta), path("*.archaea.scg") , optional: true, emit: fasta_archaea_scg tuple val(meta), path("*.bacteria.scg") , optional: true, emit: fasta_bacteria_scg + tuple val(meta), path("*.b6") , optional: true, emit: b6 tuple val(meta), path("*.seqlength") , optional: true, emit: seqlength path "versions.yml" , emit: versions @@ -33,17 +34,12 @@ process DASTOOL_DASTOOL { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def bin_list = bins instanceof List ? bins.join(",") : "$bins" - def engine = search_engine ? "--search_engine $search_engine" : "--search_engine diamond" def db_dir = db_directory ? "--db_directory $db_directory" : "" def clean_contigs = contigs.toString() - ".gz" def decompress_contigs = contigs.toString() == clean_contigs ? "" : "gunzip -q -f $contigs" - def decompress_proteins = proteins ? "gunzip -f $proteins" : "" def clean_proteins = proteins ? proteins.toString() - ".gz" : "" - def proteins_pred = proteins ? "--proteins $clean_proteins" : "" - - if (! search_engine) { - log.info('[DAS_Tool] Default search engine (USEARCH) is proprietary software and not available in bioconda. Using DIAMOND as alternative.') - } + def decompress_proteins = proteins ? "gunzip -f $proteins" : "" + def proteins_pred = proteins ? "-p $clean_proteins" : "" """ $decompress_proteins @@ -53,15 +49,14 @@ process DASTOOL_DASTOOL { $args \\ $proteins_pred \\ $db_dir \\ - $engine \\ -t $task.cpus \\ - --bins $bin_list \\ + -i $bin_list \\ -c $clean_contigs \\ -o $prefix cat <<-END_VERSIONS > versions.yml "${task.process}": - dastool: \$( DAS_Tool --version 2>&1 | grep "DAS Tool" | sed 's/DAS Tool version //' ) + dastool: \$( DAS_Tool --version 2>&1 | grep "DAS Tool" | sed 's/DAS Tool //' ) END_VERSIONS """ } diff --git a/modules/dastool/dastool/meta.yml b/modules/dastool/dastool/meta.yml index a77df9bd..0889ca47 100644 --- a/modules/dastool/dastool/meta.yml +++ b/modules/dastool/dastool/meta.yml @@ -34,8 +34,8 @@ input: pattern: "*.{fa.gz,fas.gz,fasta.gz}" - bins: type: file - description: "Scaffolds2bin tabular file generated with dastool/scaffolds2bin" - pattern: "*.scaffolds2bin.tsv" + description: "FastaToContig2Bin tabular file generated with dastool/fastatocontig2bin" + pattern: "*.tsv" - proteins: type: file description: Predicted proteins in prodigal fasta format (>scaffoldID_geneNo) @@ -43,9 +43,6 @@ input: - db_directory: type: file description: (optional) Directory of single copy gene database. - - search_engine: - type: val - description: Engine used for single copy gene identification. USEARCH is not supported due to it being proprietary [blast/diamond] output: - meta: @@ -65,14 +62,17 @@ output: type: file description: Summary of output bins including quality and completeness estimates pattern: "*summary.txt" - - scaffolds2bin: + - contig2bin: type: file description: Scaffolds to bin file of output bins - pattern: "*.scaffolds2bin.txt" + pattern: "*.contig2bin.txt" - eval: type: file description: Quality and completeness estimates of input bin sets pattern: "*.eval" + - bins: + description: Final refined bins in fasta format + pattern: "*.fa" - pdfs: type: file description: Plots showing the amount of high quality bins and score distribution of bins per method @@ -89,6 +89,10 @@ output: type: file description: Results of bacterial single-copy-gene prediction pattern: "*.bacteria.scg" + - b6: + type: file + description: Results in b6 format + pattern: "*.b6" - seqlength: type: file description: Summary of contig lengths diff --git a/modules/dastool/fastatocontig2bin/main.nf b/modules/dastool/fastatocontig2bin/main.nf new file mode 100644 index 00000000..8bb13380 --- /dev/null +++ b/modules/dastool/fastatocontig2bin/main.nf @@ -0,0 +1,41 @@ +process DASTOOL_FASTATOCONTIG2BIN { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::das_tool=1.1.4" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/das_tool:1.1.4--r41hdfd78af_1' : + 'quay.io/biocontainers/das_tool:1.1.4--r41hdfd78af_1' }" + + input: + tuple val(meta), path(fasta) + val(extension) + + output: + tuple val(meta), path("*.tsv"), emit: fastatocontig2bin + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def file_extension = extension ? extension : "fasta" + def clean_fasta = fasta.toString() - ".gz" + def decompress_fasta = fasta.toString() == clean_fasta ? "" : "gunzip -q -f $fasta" + """ + $decompress_fasta + + Fasta_to_Contig2Bin.sh \\ + $args \\ + -i . \\ + -e $file_extension \\ + > ${prefix}.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + dastool: \$( DAS_Tool --version 2>&1 | grep "DAS Tool" | sed 's/DAS Tool //' ) + END_VERSIONS + """ +} diff --git a/modules/dastool/fastatocontig2bin/meta.yml b/modules/dastool/fastatocontig2bin/meta.yml new file mode 100644 index 00000000..1176ae96 --- /dev/null +++ b/modules/dastool/fastatocontig2bin/meta.yml @@ -0,0 +1,56 @@ +name: dastool_fastatocontig2bin +description: Helper script to convert a set of bins in fasta format to tabular scaffolds2bin format +keywords: + - binning + - das tool + - table + - de novo + - bins + - contigs + - assembly + - das_tool +tools: + - dastool: + description: | + DAS Tool is an automated method that integrates the results + of a flexible number of binning algorithms to calculate an optimized, non-redundant + set of bins from a single assembly. + + homepage: https://github.com/cmks/DAS_Tool + documentation: https://github.com/cmks/DAS_Tool + tool_dev_url: https://github.com/cmks/DAS_Tool + doi: "10.1038/s41564-018-0171-1" + licence: ["BSD"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Fasta of list of fasta files recommended to be gathered via with .collect() of bins + pattern: "*.{fa,fa.gz,fas,fas.gz,fna,fna.gz,fasta,fasta.gz}" + - extension: + type: val + description: Fasta file extension (fa | fas | fasta | ...), without .gz suffix, if gzipped input. + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - fastatocontig2bin: + type: file + description: tabular contig2bin file for DAS tool input + pattern: "*.tsv" + +authors: + - "@maxibor" + - "@jfy133" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 8425b16c..24bfe641 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -487,6 +487,10 @@ dastool/dastool: - modules/dastool/dastool/** - tests/modules/dastool/dastool/** +dastool/fastatocontig2bin: + - modules/dastool/fastatocontig2bin/** + - tests/modules/dastool/fastatocontig2bin/** + dastool/scaffolds2bin: - modules/dastool/scaffolds2bin/** - tests/modules/dastool/scaffolds2bin/** diff --git a/tests/modules/dastool/dastool/main.nf b/tests/modules/dastool/dastool/main.nf index f6f6becf..9853e724 100644 --- a/tests/modules/dastool/dastool/main.nf +++ b/tests/modules/dastool/dastool/main.nf @@ -3,7 +3,7 @@ nextflow.enable.dsl = 2 include { METABAT2_METABAT2 } from '../../../../modules/metabat2/metabat2/main.nf' include { METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS } from '../../../../modules/metabat2/jgisummarizebamcontigdepths/main.nf' -include { DASTOOL_SCAFFOLDS2BIN } from '../../../../modules/dastool/scaffolds2bin/main.nf' +include { DASTOOL_FASTATOCONTIG2BIN } from '../../../../modules/dastool/fastatocontig2bin/main.nf' include { DASTOOL_DASTOOL } from '../../../../modules/dastool/dastool/main.nf' workflow test_dastool_dastool { @@ -21,13 +21,13 @@ workflow test_dastool_dastool { METABAT2_METABAT2 ( input_metabat2 ) - DASTOOL_SCAFFOLDS2BIN ( METABAT2_METABAT2.out.fasta.collect(), "fa") + DASTOOL_FASTATOCONTIG2BIN ( METABAT2_METABAT2.out.fasta.collect(), "fa") Channel.of([ [ id:'test', single_end:false ], // meta map file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true)]) - .join(DASTOOL_SCAFFOLDS2BIN.out.scaffolds2bin) + .join( DASTOOL_FASTATOCONTIG2BIN.out.fastatocontig2bin ) .set {input_dastool} - - DASTOOL_DASTOOL ( input_dastool, [], [], [] ) + + DASTOOL_DASTOOL ( input_dastool, [], [] ) } diff --git a/tests/modules/dastool/dastool/test.yml b/tests/modules/dastool/dastool/test.yml index 7f7eb19c..cda17bda 100644 --- a/tests/modules/dastool/dastool/test.yml +++ b/tests/modules/dastool/dastool/test.yml @@ -1,29 +1,28 @@ - name: dastool dastool test_dastool_dastool - command: nextflow run ./tests/modules/dastool/dastool -entry test_dastool_dastool -c ./tests/config/nextflow.config -c ./tests/modules/dastool/dastool/nextflow.config + command: nextflow run tests/modules/dastool/dastool -entry test_dastool_dastool -c tests/config/nextflow.config tags: - - dastool - dastool/dastool + - dastool files: - path: output/dastool/test.seqlength md5sum: b815a5811008c36808a59b1d0dcfab24 - path: output/dastool/test.tsv md5sum: 6e46c0be14dded7cb13af38f54feea47 - path: output/dastool/test_DASTool.log - contains: - - "DAS Tool run on" - - path: output/dastool/test_DASTool_scaffolds2bin.txt + - path: output/dastool/test_DASTool_contig2bin.tsv md5sum: 6e46c0be14dded7cb13af38f54feea47 - - path: output/dastool/test_DASTool_summary.txt - md5sum: a3efa8717b30dfada78dc5ae9a3dc396 + - path: output/dastool/test_DASTool_summary.tsv + md5sum: ab9dd3709a59a69bc66030b9e0ff3d5b + - path: output/dastool/test_proteins.faa + - path: output/dastool/test_proteins.faa.all.b6 + md5sum: 39c11237ef22ac73109aaac267e185d0 - path: output/dastool/test_proteins.faa.archaea.scg md5sum: e79d82eecee25821d1658ea4f082601d - path: output/dastool/test_proteins.faa.bacteria.scg md5sum: 8132cfb17cf398d41c036ead55c96ffe - - path: output/dastool/test_test.tsv.eval - md5sum: a3efa8717b30dfada78dc5ae9a3dc396 - - path: output/metabat2/bins/test.1.fa.gz - md5sum: 2b297bf557cc3831b800348859331268 - - path: output/metabat2/test.tsv.gz - md5sum: 619338fa5019e361d5545ce385a6961f - - path: output/metabat2/test.txt.gz - md5sum: 745a0446af6ef68b930975e9ce5a95d6 + - path: output/dastool/test_proteins.faa.findSCG.b6 + md5sum: 48e90e12cd6c88d00608777dbc48a82a + - path: output/dastool/test_proteins.faa.scg.candidates.faa + md5sum: d94b7bed0f8aa9cf2824d72c548c537c + - path: output/dastool/versions.yml + md5sum: 004e04c6a38652df2e0c59c44e29c9de diff --git a/tests/modules/dastool/fastatocontig2bin/main.nf b/tests/modules/dastool/fastatocontig2bin/main.nf new file mode 100644 index 00000000..0178dbf9 --- /dev/null +++ b/tests/modules/dastool/fastatocontig2bin/main.nf @@ -0,0 +1,48 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GUNZIP } from '../../../../modules/gunzip/main.nf' +include { METABAT2_METABAT2 } from '../../../../modules/metabat2/metabat2/main.nf' +include { METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS } from '../../../../modules/metabat2/jgisummarizebamcontigdepths/main.nf' +include { DASTOOL_FASTATOCONTIG2BIN } from '../../../../modules/dastool/fastatocontig2bin/main.nf' + +workflow test_dastool_fastatocontig2bin { + + input_depth = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['bacteroides_fragilis']['illumina']['test1_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['bacteroides_fragilis']['illumina']['test1_paired_end_sorted_bam_bai'], checkIfExists: true) ] + + METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS ( input_depth ) + + Channel.fromPath(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + .map { it -> [[ id:'test', single_end:false ], it] } + .join(METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS.out.depth) + .set { input_metabat2 } + + METABAT2_METABAT2 ( input_metabat2 ) + + DASTOOL_FASTATOCONTIG2BIN ( METABAT2_METABAT2.out.fasta.collect(), "fa") +} + +workflow test_dastool_fastatocontig2bin_ungzipped { + + input_depth = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['bacteroides_fragilis']['illumina']['test1_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['bacteroides_fragilis']['illumina']['test1_paired_end_sorted_bam_bai'], checkIfExists: true) ] + + + METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS ( input_depth ) + + Channel.fromPath(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + .map { it -> [[ id:'test', single_end:false ], it] } + .join(METABAT2_JGISUMMARIZEBAMCONTIGDEPTHS.out.depth) + .set { input_metabat2 } + + METABAT2_METABAT2 ( input_metabat2 ) + + // TODO test unzipped input files + ch_input_2_fastatocontig2bin = GUNZIP( METABAT2_METABAT2.out.fasta ).gunzip + + DASTOOL_FASTATOCONTIG2BIN ( ch_input_2_fastatocontig2bin, "fa") +} diff --git a/tests/modules/dastool/fastatocontig2bin/nextflow.config b/tests/modules/dastool/fastatocontig2bin/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/dastool/fastatocontig2bin/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/dastool/fastatocontig2bin/test.yml b/tests/modules/dastool/fastatocontig2bin/test.yml new file mode 100644 index 00000000..94881438 --- /dev/null +++ b/tests/modules/dastool/fastatocontig2bin/test.yml @@ -0,0 +1,20 @@ +- name: dastool fastatocontig2bin test_dastool_fastatocontig2bin + command: nextflow run tests/modules/dastool/fastatocontig2bin -entry test_dastool_fastatocontig2bin -c tests/config/nextflow.config + tags: + - dastool + - dastool/fastatocontig2bin + files: + - path: output/dastool/test.tsv + md5sum: 6e46c0be14dded7cb13af38f54feea47 + - path: output/dastool/versions.yml + md5sum: ff4b6f14bee4548bf09b5e602c306595 + +- name: dastool fastatocontig2bin test_dastool_fastatocontig2bin_ungzipped + command: nextflow run tests/modules/dastool/fastatocontig2bin -entry test_dastool_fastatocontig2bin_ungzipped -c tests/config/nextflow.config + tags: + - dastool + - dastool/fastatocontig2bin + files: + - path: output/dastool/test.tsv + md5sum: 6e46c0be14dded7cb13af38f54feea47 + - path: output/dastool/versions.yml From 67c1bc9568cfc40cf7038c7be13b976fe76d76a1 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Fri, 1 Apr 2022 17:35:15 +0200 Subject: [PATCH 146/592] Add stubs to cnvpytor module (#1473) * callcnvs stub and tests * partition stub and test * histogram stub and test * importreaddepth stub and tests * update module scripts Co-authored-by: Sima Rahimi --- modules/cnvpytor/callcnvs/main.nf | 11 ++++++ modules/cnvpytor/histogram/main.nf | 10 +++++ modules/cnvpytor/importreaddepth/main.nf | 11 ++++++ modules/cnvpytor/partition/main.nf | 12 +++++- tests/modules/cnvpytor/callcnvs/test.yml | 14 ++++++- tests/modules/cnvpytor/histogram/test.yml | 12 +++++- .../cnvpytor/importreaddepth/nextflow.config | 2 +- .../modules/cnvpytor/importreaddepth/test.yml | 39 +++++++++++++++++++ tests/modules/cnvpytor/partition/test.yml | 12 +++++- 9 files changed, 117 insertions(+), 6 deletions(-) create mode 100644 tests/modules/cnvpytor/importreaddepth/test.yml diff --git a/modules/cnvpytor/callcnvs/main.nf b/modules/cnvpytor/callcnvs/main.nf index e296656b..17675cde 100644 --- a/modules/cnvpytor/callcnvs/main.nf +++ b/modules/cnvpytor/callcnvs/main.nf @@ -30,4 +30,15 @@ process CNVPYTOR_CALLCNVS { cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + END_VERSIONS + """ } diff --git a/modules/cnvpytor/histogram/main.nf b/modules/cnvpytor/histogram/main.nf index e421f1b2..d1c6856c 100644 --- a/modules/cnvpytor/histogram/main.nf +++ b/modules/cnvpytor/histogram/main.nf @@ -29,4 +29,14 @@ process CNVPYTOR_HISTOGRAM { cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) END_VERSIONS """ + + stub: + """ + touch test.pytor + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + END_VERSIONS + """ } diff --git a/modules/cnvpytor/importreaddepth/main.nf b/modules/cnvpytor/importreaddepth/main.nf index 1b037629..162da719 100644 --- a/modules/cnvpytor/importreaddepth/main.nf +++ b/modules/cnvpytor/importreaddepth/main.nf @@ -35,4 +35,15 @@ process CNVPYTOR_IMPORTREADDEPTH { cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.pytor + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + END_VERSIONS + """ } diff --git a/modules/cnvpytor/partition/main.nf b/modules/cnvpytor/partition/main.nf index 74ab4026..975458bf 100644 --- a/modules/cnvpytor/partition/main.nf +++ b/modules/cnvpytor/partition/main.nf @@ -18,7 +18,7 @@ process CNVPYTOR_PARTITION { task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '1000' + def args = task.ext.args ?: '' """ cnvpytor \\ -root $pytor \\ @@ -29,4 +29,14 @@ process CNVPYTOR_PARTITION { cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) END_VERSIONS """ + + stub: + """ + touch test.pytor + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + END_VERSIONS + """ } diff --git a/tests/modules/cnvpytor/callcnvs/test.yml b/tests/modules/cnvpytor/callcnvs/test.yml index 85bfcc7a..4565151e 100644 --- a/tests/modules/cnvpytor/callcnvs/test.yml +++ b/tests/modules/cnvpytor/callcnvs/test.yml @@ -4,7 +4,17 @@ - cnvpytor - cnvpytor/callcnvs files: - - path: output/cnvpytor/calls.10000.tsv + - path: output/cnvpytor/test.tsv md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/cnvpytor/versions.yml - md5sum: 5fe6ca3ef5c40f9dbf487f28db237821 + md5sum: 0bea08a253fcb2ff0ff79b99df77b9fa + +- name: cnvpytor callcnvs test_cnvpytor_callcnvs stub + command: nextflow run tests/modules/cnvpytor/callcnvs -entry test_cnvpytor_callcnvs -c tests/config/nextflow.config -stub-run + tags: + - cnvpytor + - cnvpytor/callcnvs + files: + - path: output/cnvpytor/test.tsv + - path: output/cnvpytor/versions.yml + md5sum: 0bea08a253fcb2ff0ff79b99df77b9fa diff --git a/tests/modules/cnvpytor/histogram/test.yml b/tests/modules/cnvpytor/histogram/test.yml index fd8bcaf4..0543fcc3 100644 --- a/tests/modules/cnvpytor/histogram/test.yml +++ b/tests/modules/cnvpytor/histogram/test.yml @@ -7,4 +7,14 @@ - path: output/cnvpytor/test.pytor md5sum: aa03a8fa15b39f77816705a48e10312a - path: output/cnvpytor/versions.yml - md5sum: 9a4b176afd5f1a3edeb37eeb301cf464 + md5sum: 0f4d75c4f3a3eb26c22616d12b0b78b2 + +- name: cnvpytor histogram test_cnvpytor_histogram stub + command: nextflow run tests/modules/cnvpytor/histogram -entry test_cnvpytor_histogram -c tests/config/nextflow.config -stub-run + tags: + - cnvpytor + - cnvpytor/histogram + files: + - path: output/cnvpytor/test.pytor + - path: output/cnvpytor/versions.yml + md5sum: 0f4d75c4f3a3eb26c22616d12b0b78b2 diff --git a/tests/modules/cnvpytor/importreaddepth/nextflow.config b/tests/modules/cnvpytor/importreaddepth/nextflow.config index c60f979e..4383e375 100644 --- a/tests/modules/cnvpytor/importreaddepth/nextflow.config +++ b/tests/modules/cnvpytor/importreaddepth/nextflow.config @@ -8,5 +8,5 @@ process { } params { - cnvpytor_chr = '' // specifies chromosome name(s) the same way as they are described in the sam/bam/cram header e.g. '1 2' or 'chr1 chr2'. + cnvpytor_chr = null // specifies chromosome name(s) the same way as they are described in the sam/bam/cram header e.g. '1 2' or 'chr1 chr2'. } diff --git a/tests/modules/cnvpytor/importreaddepth/test.yml b/tests/modules/cnvpytor/importreaddepth/test.yml new file mode 100644 index 00000000..b148c38e --- /dev/null +++ b/tests/modules/cnvpytor/importreaddepth/test.yml @@ -0,0 +1,39 @@ +- name: cnvpytor importreaddepth test_cnvpytor_importreaddepth + command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth -c tests/config/nextflow.config + tags: + - cnvpytor + - cnvpytor/importreaddepth + files: + - path: output/cnvpytor/test.pytor + - path: output/cnvpytor/versions.yml + md5sum: 5834495324c08a37f3fd73ccdd881dc8 + +- name: cnvpytor importreaddepth test_cnvpytor_importreaddepth stub + command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth -c tests/config/nextflow.config -stub-run + tags: + - cnvpytor + - cnvpytor/importreaddepth + files: + - path: output/cnvpytor/test.pytor + - path: output/cnvpytor/versions.yml + md5sum: 5834495324c08a37f3fd73ccdd881dc8 + +- name: cnvpytor importreaddepth test_cnvpytor_importreaddepth_cram + command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth_cram -c tests/config/nextflow.config + tags: + - cnvpytor + - cnvpytor/importreaddepth + files: + - path: output/cnvpytor/test.pytor + - path: output/cnvpytor/versions.yml + md5sum: dfa0afb0982d985b96d1633f71ebb82a + +- name: cnvpytor importreaddepth test_cnvpytor_importreaddepth_cram stub + command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth_cram -c tests/config/nextflow.config -stub-run + tags: + - cnvpytor + - cnvpytor/importreaddepth + files: + - path: output/cnvpytor/test.pytor + - path: output/cnvpytor/versions.yml + md5sum: dfa0afb0982d985b96d1633f71ebb82a diff --git a/tests/modules/cnvpytor/partition/test.yml b/tests/modules/cnvpytor/partition/test.yml index 1b838395..10232097 100644 --- a/tests/modules/cnvpytor/partition/test.yml +++ b/tests/modules/cnvpytor/partition/test.yml @@ -7,4 +7,14 @@ - path: output/cnvpytor/test.pytor md5sum: aa03a8fa15b39f77816705a48e10312a - path: output/cnvpytor/versions.yml - md5sum: 8a04506554c58cd170cc050fd9904c6f + md5sum: 7fd6ec952a316463bcd324f176b46b64 + +- name: cnvpytor partition test_cnvpytor_partition stub + command: nextflow run tests/modules/cnvpytor/partition -entry test_cnvpytor_partition -c tests/config/nextflow.config -stub-run + tags: + - cnvpytor + - cnvpytor/partition + files: + - path: output/cnvpytor/test.pytor + - path: output/cnvpytor/versions.yml + md5sum: 7fd6ec952a316463bcd324f176b46b64 From f1c5384c31e985591716afdd732cf8c2ae29d05b Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Sun, 3 Apr 2022 16:06:22 +0200 Subject: [PATCH 147/592] Add PRINSEQPLUSPLUS (#1481) * fix: remove left-over unnecessary code * Add prinseq++ * Remove last todo * Fix tests due to variability of output FASTQs (reads can be ordered differently between runs) * Apply suggestions from code review --- modules/prinseqplusplus/main.nf | 61 +++++++++++++++++++ modules/prinseqplusplus/meta.yml | 60 ++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/prinseqplusplus/main.nf | 24 ++++++++ tests/modules/prinseqplusplus/nextflow.config | 9 +++ tests/modules/prinseqplusplus/test.yml | 27 ++++++++ 6 files changed, 185 insertions(+) create mode 100644 modules/prinseqplusplus/main.nf create mode 100644 modules/prinseqplusplus/meta.yml create mode 100644 tests/modules/prinseqplusplus/main.nf create mode 100644 tests/modules/prinseqplusplus/nextflow.config create mode 100644 tests/modules/prinseqplusplus/test.yml diff --git a/modules/prinseqplusplus/main.nf b/modules/prinseqplusplus/main.nf new file mode 100644 index 00000000..ebd8c58c --- /dev/null +++ b/modules/prinseqplusplus/main.nf @@ -0,0 +1,61 @@ +process PRINSEQPLUSPLUS { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::prinseq-plus-plus=1.2.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/prinseq-plus-plus:1.2.3--hc90279e_1': + 'quay.io/biocontainers/prinseq-plus-plus:1.2.3--hc90279e_1' }" + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path("*_good_out*.fastq.gz") , emit: good_reads + tuple val(meta), path("*_single_out*.fastq.gz"), optional: true, emit: single_reads + tuple val(meta), path("*_bad_out*.fastq.gz") , optional: true, emit: bad_reads + tuple val(meta), path("*.log") , emit: log + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + if (meta.single_end) { + """ + prinseq++ \\ + -threads $task.cpus \\ + -fastq ${reads} \\ + -out_name ${prefix} \\ + -out_gz \\ + -VERBOSE 1 \\ + $args \\ + | tee ${prefix}.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + prinseqplusplus: \$(echo \$(prinseq++ --version | cut -f 2 -d ' ' )) + END_VERSIONS + """ + } else { + """ + prinseq++ \\ + -threads $task.cpus \\ + -fastq ${reads[0]} \\ + -fastq2 ${reads[1]} \\ + -out_name ${prefix} \\ + -out_gz \\ + -VERBOSE 1 \\ + $args \\ + | tee ${prefix}.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + prinseqplusplus: \$(echo \$(prinseq++ --version | cut -f 2 -d ' ' )) + END_VERSIONS + """ + } +} diff --git a/modules/prinseqplusplus/meta.yml b/modules/prinseqplusplus/meta.yml new file mode 100644 index 00000000..8155df93 --- /dev/null +++ b/modules/prinseqplusplus/meta.yml @@ -0,0 +1,60 @@ +name: "prinseqplusplus" +description: PRINSEQ++ is a C++ implementation of the prinseq-lite.pl program. It can be used to filter, reformat or trim genomic and metagenomic sequence data +keywords: + - fastq + - fasta + - filter + - trim +tools: + - "prinseqplusplus": + description: "PRINSEQ++ - Multi-threaded C++ sequence cleaning" + homepage: "https://github.com/Adrian-Cantu/PRINSEQ-plus-plus" + documentation: "https://github.com/Adrian-Cantu/PRINSEQ-plus-plus" + tool_dev_url: "https://github.com/Adrian-Cantu/PRINSEQ-plus-plus" + doi: "10.7287/peerj.preprints.27553v1" + licence: "['GPL v2']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end + data, respectively. + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - good_reads: + type: file + description: Reads passing filter(s) in gzipped FASTQ format + pattern: "*_good_out_{R1,R2}.fastq.gz" + - single_reads: + type: file + description: | + Single reads without the pair passing filter(s) in gzipped FASTQ format + pattern: "*_single_out_{R1,R2}.fastq.gz" + - bad_reads: + type: file + description: | + Reads without not passing filter(s) in gzipped FASTQ format + pattern: "*_bad_out_{R1,R2}.fastq.gz" + - log: + type: file + description: | + Verbose level 2 STDOUT information in a log file + pattern: "*.log" + +authors: + - "@jfy133" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 24bfe641..6d66f230 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1407,6 +1407,10 @@ preseq/lcextrap: - modules/preseq/lcextrap/** - tests/modules/preseq/lcextrap/** +prinseqplusplus: + - modules/prinseqplusplus/** + - tests/modules/prinseqplusplus/** + prodigal: - modules/prodigal/** - tests/modules/prodigal/** diff --git a/tests/modules/prinseqplusplus/main.nf b/tests/modules/prinseqplusplus/main.nf new file mode 100644 index 00000000..d6ee3be9 --- /dev/null +++ b/tests/modules/prinseqplusplus/main.nf @@ -0,0 +1,24 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PRINSEQPLUSPLUS } from '../../../modules/prinseqplusplus/main.nf' + +workflow test_prinseqplusplus_single_end { + + input = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + + PRINSEQPLUSPLUS ( input ) +} + +workflow test_prinseqplusplus_paired_end { + + input = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + + PRINSEQPLUSPLUS ( input ) +} diff --git a/tests/modules/prinseqplusplus/nextflow.config b/tests/modules/prinseqplusplus/nextflow.config new file mode 100644 index 00000000..032e5713 --- /dev/null +++ b/tests/modules/prinseqplusplus/nextflow.config @@ -0,0 +1,9 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: PRINSEQPLUSPLUS { + ext.args = "-lc_entropy=0.8" + } + +} diff --git a/tests/modules/prinseqplusplus/test.yml b/tests/modules/prinseqplusplus/test.yml new file mode 100644 index 00000000..e034febb --- /dev/null +++ b/tests/modules/prinseqplusplus/test.yml @@ -0,0 +1,27 @@ +- name: prinseqplusplus test_prinseqplusplus_single_end + command: nextflow run tests/modules/prinseqplusplus -entry test_prinseqplusplus_single_end -c tests/config/nextflow.config + tags: + - prinseqplusplus + files: + - path: output/prinseqplusplus/test.log + contains: + - "reads removed by -lc_entropy" + - path: output/prinseqplusplus/test_bad_out.fastq.gz + - path: output/prinseqplusplus/test_good_out.fastq.gz + - path: output/prinseqplusplus/versions.yml + +- name: prinseqplusplus test_prinseqplusplus_paired_end + command: nextflow run tests/modules/prinseqplusplus -entry test_prinseqplusplus_paired_end -c tests/config/nextflow.config + tags: + - prinseqplusplus + files: + - path: output/prinseqplusplus/test.log + contains: + - "reads removed by -lc_entropy" + - path: output/prinseqplusplus/test_bad_out_R1.fastq.gz + - path: output/prinseqplusplus/test_bad_out_R2.fastq.gz + - path: output/prinseqplusplus/test_good_out_R1.fastq.gz + - path: output/prinseqplusplus/test_good_out_R2.fastq.gz + - path: output/prinseqplusplus/test_single_out_R1.fastq.gz + - path: output/prinseqplusplus/test_single_out_R2.fastq.gz + - path: output/prinseqplusplus/versions.yml From 6a11c5a2226436f5543d582b81835819d0767637 Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Mon, 4 Apr 2022 10:18:11 +0200 Subject: [PATCH 148/592] Fix untar for centrifuge (#1472) --- modules/centrifuge/main.nf | 4 ++-- modules/centrifuge/meta.yml | 3 +++ tests/modules/centrifuge/main.nf | 13 +++++++++---- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/centrifuge/main.nf b/modules/centrifuge/main.nf index 7eb566da..c9ec377b 100644 --- a/modules/centrifuge/main.nf +++ b/modules/centrifuge/main.nf @@ -10,6 +10,7 @@ process CENTRIFUGE { input: tuple val(meta), path(reads) path db + val db_name val save_unaligned val save_aligned val sam_format @@ -42,9 +43,8 @@ process CENTRIFUGE { } def sam_output = sam_format ? "--out-fmt 'sam'" : '' """ - tar -xf $db centrifuge \\ - -x $db_name \\ + -x ${db}/${db_name} \\ -p $task.cpus \\ $paired \\ --report-file ${prefix}.report.txt \\ diff --git a/modules/centrifuge/meta.yml b/modules/centrifuge/meta.yml index 3adf0e23..aabb465f 100644 --- a/modules/centrifuge/meta.yml +++ b/modules/centrifuge/meta.yml @@ -27,6 +27,9 @@ input: type: directory description: Centrifuge database in .tar.gz format pattern: "*.tar.gz" + - db_name: + type: string + description: Centrifuge database filenames without the suffix ".cf" - save_unaligned: type: value description: If true unmapped fastq files are saved diff --git a/tests/modules/centrifuge/main.nf b/tests/modules/centrifuge/main.nf index a8eb2fcb..37393ce5 100644 --- a/tests/modules/centrifuge/main.nf +++ b/tests/modules/centrifuge/main.nf @@ -2,18 +2,21 @@ nextflow.enable.dsl = 2 +include { UNTAR } from '../../../modules/untar/main.nf' include { CENTRIFUGE } from '../../../modules/centrifuge/main.nf' workflow test_centrifuge_single_end { input = [ [ id:'test', single_end:true ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] ] - db = file("https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz", checkIfExists: true) + db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz', checkIfExists: true) ] + db_name = "minigut_cf" save_unaligned = true save_aligned = false sam_format = false - CENTRIFUGE ( input, db, save_unaligned, save_aligned, sam_format ) + UNTAR ( db ) + CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] },db_name, save_unaligned, save_aligned, sam_format ) } @@ -22,12 +25,14 @@ workflow test_centrifuge_paired_end { [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] ] - db = file("https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz", checkIfExists: true) + db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz', checkIfExists: true) ] + db_name = "minigut_cf" save_unaligned = true save_aligned = false sam_format = false - CENTRIFUGE ( input, db, save_unaligned, save_aligned, sam_format ) + UNTAR ( db ) + CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] }, db_name, save_unaligned, save_aligned, sam_format ) } From cb54d1ebd77de5b482cae89ed9e51fa6ef97d3ee Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Mon, 4 Apr 2022 13:18:02 +0200 Subject: [PATCH 149/592] update stubs (#1488) --- modules/cnvpytor/histogram/main.nf | 2 +- modules/cnvpytor/partition/main.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cnvpytor/histogram/main.nf b/modules/cnvpytor/histogram/main.nf index d1c6856c..9e59c6b8 100644 --- a/modules/cnvpytor/histogram/main.nf +++ b/modules/cnvpytor/histogram/main.nf @@ -32,7 +32,7 @@ process CNVPYTOR_HISTOGRAM { stub: """ - touch test.pytor + touch ${pytor.baseName}.pytor cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/cnvpytor/partition/main.nf b/modules/cnvpytor/partition/main.nf index 975458bf..0311bdfc 100644 --- a/modules/cnvpytor/partition/main.nf +++ b/modules/cnvpytor/partition/main.nf @@ -32,7 +32,7 @@ process CNVPYTOR_PARTITION { stub: """ - touch test.pytor + touch ${pytor.baseName}.pytor cat <<-END_VERSIONS > versions.yml "${task.process}": From ae48653bd2d169510580220bb62d96f830c31293 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 4 Apr 2022 13:31:36 +0200 Subject: [PATCH 150/592] DASTool output channels update (#1489) * fix: remove left-over unnecessary code * Make summary output optional as not generated if no sufficiently HQ bins found * Make contig2bin optional as only generated if sufficient HQ bins found --- modules/dastool/dastool/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/dastool/dastool/main.nf b/modules/dastool/dastool/main.nf index 968f85de..a7d9c6f6 100644 --- a/modules/dastool/dastool/main.nf +++ b/modules/dastool/dastool/main.nf @@ -14,8 +14,8 @@ process DASTOOL_DASTOOL { output: tuple val(meta), path("*.log") , emit: log - tuple val(meta), path("*_summary.tsv") , emit: summary - tuple val(meta), path("*_DASTool_contig2bin.tsv") , emit: contig2bin + tuple val(meta), path("*_summary.tsv") , optional: true, emit: summary + tuple val(meta), path("*_DASTool_contig2bin.tsv") , optional: true, emit: contig2bin tuple val(meta), path("*.eval") , optional: true, emit: eval tuple val(meta), path("*_DASTool_bins/*.fa") , optional: true, emit: bins tuple val(meta), path("*.pdf") , optional: true, emit: pdfs From 13cc32399cdaa866092b1bbc6e8a982d51c455db Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Mon, 4 Apr 2022 13:21:37 -0500 Subject: [PATCH 151/592] feat(homer): Add groseq subworkflow (#1492) * feat(homer): Add groseq subworkflow * fix(homer): Update groseq paths * test(homer): Update groseq bam md5sums * test(homer): Update bed process args wildcard * test(homer): Update groseq bed md5s * style: Run prettier * style(homer): Align comments Co-authored-by: Friederike Hanssen * docs(homer): Add groseq meta.yml Co-authored-by: Friederike Hanssen --- subworkflows/nf-core/homer/groseq/main.nf | 50 +++++++++++++++++++ subworkflows/nf-core/homer/groseq/meta.yml | 48 ++++++++++++++++++ .../subworkflows/nf-core/homer/groseq/main.nf | 24 +++++++++ .../nf-core/homer/groseq/nextflow.config | 9 ++++ .../nf-core/homer/groseq/test.yml | 27 ++++++++++ 5 files changed, 158 insertions(+) create mode 100644 subworkflows/nf-core/homer/groseq/main.nf create mode 100644 subworkflows/nf-core/homer/groseq/meta.yml create mode 100644 tests/subworkflows/nf-core/homer/groseq/main.nf create mode 100644 tests/subworkflows/nf-core/homer/groseq/nextflow.config create mode 100644 tests/subworkflows/nf-core/homer/groseq/test.yml diff --git a/subworkflows/nf-core/homer/groseq/main.nf b/subworkflows/nf-core/homer/groseq/main.nf new file mode 100644 index 00000000..b83c7e21 --- /dev/null +++ b/subworkflows/nf-core/homer/groseq/main.nf @@ -0,0 +1,50 @@ +/* + * Identify transcripts with homer + */ + +include { HOMER_MAKETAGDIRECTORY } from '../../../../modules/homer/maketagdirectory/main' +include { HOMER_MAKEUCSCFILE } from '../../../../modules/homer/makeucscfile/main' +include { HOMER_FINDPEAKS } from '../../../../modules/homer/findpeaks/main' +include { HOMER_POS2BED } from '../../../../modules/homer/pos2bed/main' + +workflow HOMER_GROSEQ { + take: + bam // channel: [ val(meta), [ reads ] ] + fasta // file: /path/to/bwa/index/ + + main: + + ch_versions = Channel.empty() + + /* + * Create a Tag Directory From The GRO-Seq experiment + */ + HOMER_MAKETAGDIRECTORY ( bam, fasta ) + ch_versions = ch_versions.mix(HOMER_MAKETAGDIRECTORY.out.versions.first()) + + /* + * Creating UCSC Visualization Files + */ + HOMER_MAKEUCSCFILE ( HOMER_MAKETAGDIRECTORY.out.tagdir ) + ch_versions = ch_versions.mix(HOMER_MAKEUCSCFILE.out.versions.first()) + + /* + * Find transcripts directly from GRO-Seq + */ + HOMER_FINDPEAKS ( HOMER_MAKETAGDIRECTORY.out.tagdir ) + ch_versions = ch_versions.mix(HOMER_FINDPEAKS.out.versions.first()) + + /* + * Convert peak file to bed file + */ + HOMER_POS2BED ( HOMER_FINDPEAKS.out.txt ) + ch_versions = ch_versions.mix(HOMER_POS2BED.out.versions.first()) + + emit: + tagdir = HOMER_MAKETAGDIRECTORY.out.tagdir // channel: [ val(meta), [ tagdir ] ] + bed_graph = HOMER_MAKEUCSCFILE.out.bedGraph // channel: [ val(meta), [ tag_dir/*ucsc.bedGraph.gz ] ] + peaks = HOMER_FINDPEAKS.out.txt // channel: [ val(meta), [ *peaks.txt ] ] + bed = HOMER_POS2BED.out.bed // channel: [ val(meta), [ *peaks.txt ] ] + + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/nf-core/homer/groseq/meta.yml b/subworkflows/nf-core/homer/groseq/meta.yml new file mode 100644 index 00000000..4bd36a88 --- /dev/null +++ b/subworkflows/nf-core/homer/groseq/meta.yml @@ -0,0 +1,48 @@ +name: homer_groseq +description: Perform variant calling on a set of normal samples using mutect2 panel of normals mode. Group them into a genomicsdbworkspace using genomicsdbimport, then use this to create a panel of normals using createsomaticpanelofnormals. +keywords: + - homer + - groseq + - nascent +modules: + - homer/maketagdirectory + - homer/makeucscfile + - homer/findpeaks + - homer/pos2bed +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - input: + type: list + description: list of BAM files, also able to take SAM and BED as input + pattern: "[ *.{bam/sam/bed} ]" + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" +output: + - tagdir: + type: directory + description: The "Tag Directory" + pattern: "*_tagdir" + - bedGraph: + type: file + description: The UCSC bed graph + pattern: "*.bedGraph.gz" + - peaks: + type: file + description: The found peaks + pattern: "*.peaks.txt" + - bed: + type: file + description: A BED file of the found peaks + pattern: "*.bed" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@Emiller88" diff --git a/tests/subworkflows/nf-core/homer/groseq/main.nf b/tests/subworkflows/nf-core/homer/groseq/main.nf new file mode 100644 index 00000000..72b95e87 --- /dev/null +++ b/tests/subworkflows/nf-core/homer/groseq/main.nf @@ -0,0 +1,24 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { HOMER_GROSEQ as HOMER_GROSEQ_BAM + HOMER_GROSEQ as HOMER_GROSEQ_BED } from '../../../../../subworkflows/nf-core/homer/groseq/main' + +workflow test_homer_groseq_bam { + def input = [] + input = [[ id: 'test' ], + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)]] + def fasta = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + + HOMER_GROSEQ_BAM ( input, fasta ) +} + +workflow test_homer_groseq_bed { + def input = [] + input = [[ id: 'test' ], + [ file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true)]] + def fasta = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + + HOMER_GROSEQ_BED ( input, fasta ) +} diff --git a/tests/subworkflows/nf-core/homer/groseq/nextflow.config b/tests/subworkflows/nf-core/homer/groseq/nextflow.config new file mode 100644 index 00000000..09a44497 --- /dev/null +++ b/tests/subworkflows/nf-core/homer/groseq/nextflow.config @@ -0,0 +1,9 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: '.*:HOMER_GROSEQ_BED:HOMER_MAKETAGDIRECTORY' { + ext.args = "-checkGC -format bed" + } + +} diff --git a/tests/subworkflows/nf-core/homer/groseq/test.yml b/tests/subworkflows/nf-core/homer/groseq/test.yml new file mode 100644 index 00000000..1eaeb3f5 --- /dev/null +++ b/tests/subworkflows/nf-core/homer/groseq/test.yml @@ -0,0 +1,27 @@ +- name: subworkflow homer_groseq bam + command: nextflow run ./tests/subworkflows/nf-core/homer/groseq/ -entry test_homer_groseq_bam -c tests/config/nextflow.config -c tests/subworkflows/nf-core/homer/groseq/nextflow.config + tags: + - homer + files: + - path: output/homer/test.bed + md5sum: 8d40034dfe22c5cf973071aa1e8d3617 + - path: output/homer/test.bedGraph.gz + md5sum: de2b2f8ab90a909b8bfbe755bdaba407 + - path: output/homer/test.peaks.txt + md5sum: 8d40034dfe22c5cf973071aa1e8d3617 + - path: output/homer/versions.yml + md5sum: c85dee03f1afabe406a87743a4c5506d + +- name: subworkflow homer_groseq bed + command: nextflow run ./tests/subworkflows/nf-core/homer/groseq/ -entry test_homer_groseq_bed -c tests/config/nextflow.config -c tests/subworkflows/nf-core/homer/groseq/nextflow.config + tags: + - homer + files: + - path: output/homer/test.bed + md5sum: 25e8b64946012d1c4567a04062e90fae + - path: output/homer/test.bedGraph.gz + md5sum: 2d2d1c2d3242ff74c7a922695accb9d2 + - path: output/homer/test.peaks.txt + md5sum: 25e8b64946012d1c4567a04062e90fae + - path: output/homer/versions.yml + md5sum: c9b5f1248d28c216b000cba8da738455 From 879d42c5e28661fe0a5e744c9e2c515868f9e08a Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Mon, 4 Apr 2022 21:40:35 +0200 Subject: [PATCH 152/592] Refactor adapterremoval (#1491) * refactor: insert .fastq file extensions * style: insert whitespace * refactor: create paired output * refactor: rename settings from log Requested by @jfy133 * tests: correct expected output * fix: remove settings option due to default * chore: rename output patterns * refactor: omit paired files in single-end * refactor: rename output to settings --- modules/adapterremoval/main.nf | 44 ++++++++++++++++++++------- modules/adapterremoval/meta.yml | 14 ++++----- tests/modules/adapterremoval/test.yml | 26 ++++++++-------- 3 files changed, 53 insertions(+), 31 deletions(-) diff --git a/modules/adapterremoval/main.nf b/modules/adapterremoval/main.nf index 9d16b9c9..0e17c055 100644 --- a/modules/adapterremoval/main.nf +++ b/modules/adapterremoval/main.nf @@ -12,15 +12,14 @@ process ADAPTERREMOVAL { path(adapterlist) output: - tuple val(meta), path("${prefix}.truncated.gz") , optional: true, emit: singles_truncated - tuple val(meta), path("${prefix}.discarded.gz") , optional: true, emit: discarded - tuple val(meta), path("${prefix}.pair1.truncated.gz") , optional: true, emit: pair1_truncated - tuple val(meta), path("${prefix}.pair2.truncated.gz") , optional: true, emit: pair2_truncated - tuple val(meta), path("${prefix}.collapsed.gz") , optional: true, emit: collapsed - tuple val(meta), path("${prefix}.collapsed.truncated.gz") , optional: true, emit: collapsed_truncated - tuple val(meta), path("${prefix}.paired.gz") , optional: true, emit: paired_interleaved - tuple val(meta), path('*.log') , emit: log - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}.truncated.fastq.gz") , optional: true, emit: singles_truncated + tuple val(meta), path("${prefix}.discarded.fastq.gz") , optional: true, emit: discarded + tuple val(meta), path("${prefix}.pair{1,2}.truncated.fastq.gz") , optional: true, emit: paired_truncated + tuple val(meta), path("${prefix}.collapsed.fastq.gz") , optional: true, emit: collapsed + tuple val(meta), path("${prefix}.collapsed.truncated.fastq.gz") , optional: true, emit: collapsed_truncated + tuple val(meta), path("${prefix}.paired.fastq.gz") , optional: true, emit: paired_interleaved + tuple val(meta), path('*.settings') , emit: settings + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -38,10 +37,19 @@ process ADAPTERREMOVAL { $adapterlist \\ --basename ${prefix} \\ --threads ${task.cpus} \\ - --settings ${prefix}.log \\ --seed 42 \\ --gzip + ensure_fastq() { + if [ -f "\${1}" ]; then + mv "\${1}" "\${1::-3}.fastq.gz" + fi + + } + + ensure_fastq '${prefix}.truncated.gz' + ensure_fastq '${prefix}.discarded.gz' + cat <<-END_VERSIONS > versions.yml "${task.process}": adapterremoval: \$(AdapterRemoval --version 2>&1 | sed -e "s/AdapterRemoval ver. //g") @@ -56,10 +64,24 @@ process ADAPTERREMOVAL { $adapterlist \\ --basename ${prefix} \\ --threads $task.cpus \\ - --settings ${prefix}.log \\ --seed 42 \\ --gzip + ensure_fastq() { + if [ -f "\${1}" ]; then + mv "\${1}" "\${1::-3}.fastq.gz" + fi + + } + + ensure_fastq '${prefix}.truncated.gz' + ensure_fastq '${prefix}.discarded.gz' + ensure_fastq '${prefix}.pair1.truncated.gz' + ensure_fastq '${prefix}.pair2.truncated.gz' + ensure_fastq '${prefix}.collapsed.gz' + ensure_fastq '${prefix}.collapsed.truncated.gz' + ensure_fastq '${prefix}.paired.gz' + cat <<-END_VERSIONS > versions.yml "${task.process}": adapterremoval: \$(AdapterRemoval --version 2>&1 | sed -e "s/AdapterRemoval ver. //g") diff --git a/modules/adapterremoval/meta.yml b/modules/adapterremoval/meta.yml index 5faad043..77273f60 100644 --- a/modules/adapterremoval/meta.yml +++ b/modules/adapterremoval/meta.yml @@ -43,43 +43,43 @@ output: Adapter trimmed FastQ files of either single-end reads, or singleton 'orphaned' reads from merging of paired-end data (i.e., one of the pair was lost due to filtering thresholds). - pattern: "*.truncated.gz" + pattern: "*.truncated.fastq.gz" - discarded: type: file description: | Adapter trimmed FastQ files of reads that did not pass filtering thresholds. - pattern: "*.discarded.gz" + pattern: "*.discarded.fastq.gz" - pair1_truncated: type: file description: | Adapter trimmed R1 FastQ files of paired-end reads that did not merge with their respective R2 pair due to long templates. The respective pair is stored in 'pair2_truncated'. - pattern: "*.pair1.truncated.gz" + pattern: "*.pair1.truncated.fastq.gz" - pair2_truncated: type: file description: | Adapter trimmed R2 FastQ files of paired-end reads that did not merge with their respective R1 pair due to long templates. The respective pair is stored in 'pair1_truncated'. - pattern: "*.pair2.truncated.gz" + pattern: "*.pair2.truncated.fastq.gz" - collapsed: type: file description: | Collapsed FastQ of paired-end reads that successfully merged with their respective R1 pair but were not trimmed. - pattern: "*.collapsed.gz" + pattern: "*.collapsed.fastq.gz" - collapsed_truncated: type: file description: | Collapsed FastQ of paired-end reads that successfully merged with their respective R1 pair and were trimmed of adapter due to sufficient overlap. - pattern: "*.collapsed.truncated.gz" + pattern: "*.collapsed.truncated.fastq.gz" - log: type: file description: AdapterRemoval log file - pattern: "*.log" + pattern: "*.settings" - versions: type: file description: File containing software versions diff --git a/tests/modules/adapterremoval/test.yml b/tests/modules/adapterremoval/test.yml index f6adfba3..e660da76 100644 --- a/tests/modules/adapterremoval/test.yml +++ b/tests/modules/adapterremoval/test.yml @@ -3,10 +3,10 @@ tags: - adapterremoval files: - - path: output/adapterremoval/test.discarded.gz - - path: output/adapterremoval/test.log + - path: output/adapterremoval/test.discarded.fastq.gz + - path: output/adapterremoval/test.settings md5sum: 2fd3d5d703b63ba33a83021fccf25f77 - - path: output/adapterremoval/test.truncated.gz + - path: output/adapterremoval/test.truncated.fastq.gz md5sum: 62139afee94defad5b83bdd0b8475a1f - path: output/adapterremoval/versions.yml md5sum: ac5b46719719b7ee62739530b80869fc @@ -16,12 +16,12 @@ tags: - adapterremoval files: - - path: output/adapterremoval/test.discarded.gz - - path: output/adapterremoval/test.log + - path: output/adapterremoval/test.discarded.fastq.gz + - path: output/adapterremoval/test.settings md5sum: b8a451d3981b327f3fdb44f40ba2d6d1 - - path: output/adapterremoval/test.pair1.truncated.gz + - path: output/adapterremoval/test.pair1.truncated.fastq.gz md5sum: 294a6277f0139bd597e57c6fa31f39c7 - - path: output/adapterremoval/test.pair2.truncated.gz + - path: output/adapterremoval/test.pair2.truncated.fastq.gz md5sum: de7b38e2c881bced8671acb1ab452d78 - path: output/adapterremoval/versions.yml md5sum: fa621c887897da5a379c719399c17db7 @@ -31,15 +31,15 @@ tags: - adapterremoval files: - - path: output/adapterremoval/test.collapsed.gz + - path: output/adapterremoval/test.collapsed.fastq.gz md5sum: ff956de3532599a56c3efe5369f0953f - - path: output/adapterremoval/test.collapsed.truncated.gz - - path: output/adapterremoval/test.discarded.gz - - path: output/adapterremoval/test.log + - path: output/adapterremoval/test.collapsed.truncated.fastq.gz + - path: output/adapterremoval/test.discarded.fastq.gz + - path: output/adapterremoval/test.settings md5sum: 7f0b2328152226e46101a535cce718b3 - - path: output/adapterremoval/test.pair1.truncated.gz + - path: output/adapterremoval/test.pair1.truncated.fastq.gz md5sum: 683be19bc1c83008944b6b719bfa34e1 - - path: output/adapterremoval/test.pair2.truncated.gz + - path: output/adapterremoval/test.pair2.truncated.fastq.gz md5sum: e6548fe061f3ef86368b26da930174d0 - path: output/adapterremoval/versions.yml md5sum: 78f589bb313c8da0147ca8ce77d7f3bf From 797ce3254e1868b224ec5c2742418876af254c35 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Tue, 5 Apr 2022 11:06:46 +0200 Subject: [PATCH 153/592] Update: biobambam/bammarkduplicates2 to v2.0.183 (#1493) * bump version, remove md5sums from test * re-add md5sums --- modules/biobambam/bammarkduplicates2/main.nf | 6 ++---- tests/modules/biobambam/bammarkduplicates2/test.yml | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/biobambam/bammarkduplicates2/main.nf b/modules/biobambam/bammarkduplicates2/main.nf index a93e55b5..dd0e55b6 100644 --- a/modules/biobambam/bammarkduplicates2/main.nf +++ b/modules/biobambam/bammarkduplicates2/main.nf @@ -2,10 +2,8 @@ process BIOBAMBAM_BAMMARKDUPLICATES2 { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::biobambam=2.0.182" : null) - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/biobambam:2.0.182--h7d875b9_0': - 'quay.io/biocontainers/biobambam:2.0.182--h7d875b9_0' }" + conda (params.enable_conda ? "bioconda::biobambam=2.0.183" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/biobambam:2.0.183--h9f5acd7_1' : 'quay.io/biocontainers/biobambam:2.0.183--h9f5acd7_1'}" input: tuple val(meta), path(bam) diff --git a/tests/modules/biobambam/bammarkduplicates2/test.yml b/tests/modules/biobambam/bammarkduplicates2/test.yml index d046dfe9..7c16fcf1 100644 --- a/tests/modules/biobambam/bammarkduplicates2/test.yml +++ b/tests/modules/biobambam/bammarkduplicates2/test.yml @@ -5,8 +5,8 @@ - biobambam files: - path: output/biobambam/test.bam - md5sum: 1cf7f957eb20b4ace9f10d0cf0a0649a + md5sum: 603edff09029096ddf2bb8a3f12d7aa7 - path: output/biobambam/test.metrics.txt md5sum: 30d6e7d90bb5df46329d4bc0144ce927 - path: output/biobambam/versions.yml - md5sum: 0d6f3137ed4515333d73c779f2c24445 + md5sum: dfdf2b084655d124acac0bfb4eda86cc From dc95e67e153ad937b869d90229333c0654628912 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 6 Apr 2022 08:18:23 +0200 Subject: [PATCH 154/592] New tool: biobambam/bamsormadup (#1478) * add bamsormadup * fix yaml * add test.yml * Update tests/modules/biobambam/bamsormadup/test.yml Co-authored-by: James A. Fellows Yates * test meta.yaml: remove md5sums * Tool bamsormadup: - add (optional) reference input - add bam index ouput - add cram output option - make metrics output: more general * fix input and output formats * update input file description * drop sam output, goes against nf-core regs; add input check for cram files * fix typo * Update modules/biobambam/bamsormadup/main.nf Co-authored-by: James A. Fellows Yates * improve ref fasta name * fix if else shorthand * fix syntax error * kind of fix tests * set fixed suffix for metrics file to keep it in line with picard and bammarkduplicates2 * fix command line * update test.yml * add support for multiple input bams * Update modules/biobambam/bamsormadup/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/biobambam/bamsormadup/meta.yml Co-authored-by: James A. Fellows Yates * Update tests/modules/biobambam/bamsormadup/test.yml Co-authored-by: James A. Fellows Yates Co-authored-by: James A. Fellows Yates --- modules/biobambam/bamsormadup/main.nf | 46 ++++++++++++++++ modules/biobambam/bamsormadup/meta.yml | 52 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/biobambam/bamsormadup/main.nf | 15 ++++++ .../biobambam/bamsormadup/nextflow.config | 5 ++ tests/modules/biobambam/bamsormadup/test.yml | 11 ++++ 6 files changed, 133 insertions(+) create mode 100644 modules/biobambam/bamsormadup/main.nf create mode 100644 modules/biobambam/bamsormadup/meta.yml create mode 100644 tests/modules/biobambam/bamsormadup/main.nf create mode 100644 tests/modules/biobambam/bamsormadup/nextflow.config create mode 100644 tests/modules/biobambam/bamsormadup/test.yml diff --git a/modules/biobambam/bamsormadup/main.nf b/modules/biobambam/bamsormadup/main.nf new file mode 100644 index 00000000..b9e28e43 --- /dev/null +++ b/modules/biobambam/bamsormadup/main.nf @@ -0,0 +1,46 @@ +process BIOBAMBAM_BAMSORMADUP { + tag "$meta.id" + label "process_medium" + + conda (params.enable_conda ? "bioconda::biobambam=2.0.183" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/biobambam:2.0.183--h9f5acd7_1' : 'quay.io/biocontainers/biobambam:2.0.183--h9f5acd7_1'}" + + input: + tuple val(meta), path(bams) + path(fasta) + + output: + tuple val(meta), path("*.{bam,cram}") ,emit: bam + tuple val(meta), path("*.bam.bai") ,optional:true, emit: bam_index + tuple val(meta), path("*.metrics.txt") ,emit: metrics + path "versions.yml" ,emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def suffix = args.contains("outputformat=cram") ? "cram" : "bam" + def input_string = bams.join(" I=") + + if (args.contains("outputformat=cram") && reference == null) error "Reference required for CRAM output." + + """ + bamcat \\ + I=${input_string} \\ + level=0 \\ + | bamsormadup \\ + $args \\ + M=${prefix}.metrics.txt \\ + tmpfile=$prefix \\ + threads=$task.cpus \\ + > ${prefix}.${suffix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bamcat: \$(echo \$(bamsormadup --version 2>&1) | sed 's/^This is biobambam2 version //; s/..biobambam2 is .*\$//' ) + bamsormadup: \$(echo \$(bamsormadup --version 2>&1) | sed 's/^This is biobambam2 version //; s/..biobambam2 is .*\$//' ) + END_VERSIONS + """ +} diff --git a/modules/biobambam/bamsormadup/meta.yml b/modules/biobambam/bamsormadup/meta.yml new file mode 100644 index 00000000..39acf3b3 --- /dev/null +++ b/modules/biobambam/bamsormadup/meta.yml @@ -0,0 +1,52 @@ +name: biobambam_bamsormadup +description: Parallel sorting and duplicate marking +keywords: + - markduplicates + - sort + - bam + - cram +tools: + - biobambam: + description: | + biobambam is a set of tools for early stage alignment file processing. + homepage: https://gitlab.com/german.tischler/biobambam2 + documentation: https://gitlab.com/german.tischler/biobambam2/-/blob/master/README.md + doi: 10.1186/1751-0473-9-13 + licence: ["GPL v3"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bams: + type: file + description: List containing 1 or more bam files + - fasta: + type: file + description: Reference genome in FASTA format (optional) + pattern: "*.{fa,fasta}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: BAM/CRAM file with duplicate reads marked/removed + pattern: "*.{bam,cram}" + - bam_index: + type: file + description: BAM index file + pattern: "*.{bai}" + - metrics: + type: file + description: Duplicate metrics file generated by biobambam + pattern: "*.{metrics.txt}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 6d66f230..d47b95c4 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -214,6 +214,10 @@ biobambam/bammarkduplicates2: - modules/biobambam/bammarkduplicates2/** - tests/modules/biobambam/bammarkduplicates2/** +biobambam/bamsormadup: + - modules/biobambam/bamsormadup/** + - tests/modules/biobambam/bamsormadup/** + biscuit/align: - modules/biscuit/index/** - modules/biscuit/align/** diff --git a/tests/modules/biobambam/bamsormadup/main.nf b/tests/modules/biobambam/bamsormadup/main.nf new file mode 100644 index 00000000..741a4433 --- /dev/null +++ b/tests/modules/biobambam/bamsormadup/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BIOBAMBAM_BAMSORMADUP } from '../../../../modules/biobambam/bamsormadup/main.nf' + +workflow test_biobambam_bamsormadup { + + input = [ + [ id:'test', single_end:false ], // meta map + [file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)], + ] + + BIOBAMBAM_BAMSORMADUP ( input, [] ) +} diff --git a/tests/modules/biobambam/bamsormadup/nextflow.config b/tests/modules/biobambam/bamsormadup/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/biobambam/bamsormadup/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/biobambam/bamsormadup/test.yml b/tests/modules/biobambam/bamsormadup/test.yml new file mode 100644 index 00000000..a7a14202 --- /dev/null +++ b/tests/modules/biobambam/bamsormadup/test.yml @@ -0,0 +1,11 @@ +- name: biobambam bamsormadup test_biobambam_bamsormadup + command: nextflow run tests/modules/biobambam/bamsormadup -entry test_biobambam_bamsormadup -c tests/config/nextflow.config + tags: + - biobambam/bamsormadup + - biobambam + files: + - path: output/biobambam/test.bam + md5sum: 243a77fb0642fd46bb16a4d3432d19dc + - path: output/biobambam/test.metrics.txt + md5sum: 1721879bea1f3888ecd33b35e6ee0e72 + - path: output/biobambam/versions.yml From d2726fcf75063960f06b36d2229a4c0966614108 Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Thu, 7 Apr 2022 11:46:34 +0200 Subject: [PATCH 155/592] Update centrifuge/centrifuge (#1495) --- modules/centrifuge/{ => centrifuge}/main.nf | 10 ++++------ modules/centrifuge/{ => centrifuge}/meta.yml | 14 ++------------ tests/config/pytest_modules.yml | 6 +++--- tests/modules/centrifuge/{ => centrifuge}/main.nf | 15 +++++++-------- .../centrifuge/{ => centrifuge}/nextflow.config | 0 .../modules/centrifuge/{ => centrifuge}/test.yml | 12 ++++++------ 6 files changed, 22 insertions(+), 35 deletions(-) rename modules/centrifuge/{ => centrifuge}/main.nf (88%) rename modules/centrifuge/{ => centrifuge}/meta.yml (82%) rename tests/modules/centrifuge/{ => centrifuge}/main.nf (66%) rename tests/modules/centrifuge/{ => centrifuge}/nextflow.config (100%) rename tests/modules/centrifuge/{ => centrifuge}/test.yml (51%) diff --git a/modules/centrifuge/main.nf b/modules/centrifuge/centrifuge/main.nf similarity index 88% rename from modules/centrifuge/main.nf rename to modules/centrifuge/centrifuge/main.nf index c9ec377b..3d23fc96 100644 --- a/modules/centrifuge/main.nf +++ b/modules/centrifuge/centrifuge/main.nf @@ -1,4 +1,4 @@ -process CENTRIFUGE { +process CENTRIFUGE_CENTRIFUGE { tag "$meta.id" label 'process_high' @@ -10,7 +10,6 @@ process CENTRIFUGE { input: tuple val(meta), path(reads) path db - val db_name val save_unaligned val save_aligned val sam_format @@ -18,7 +17,6 @@ process CENTRIFUGE { output: tuple val(meta), path('*report.txt') , emit: report tuple val(meta), path('*results.txt') , emit: results - tuple val(meta), path('*kreport.txt') , emit: kreport tuple val(meta), path('*.sam') , optional: true, emit: sam tuple val(meta), path('*.mapped.fastq{,.1,.2}.gz') , optional: true, emit: fastq_mapped tuple val(meta), path('*.unmapped.fastq{,.1,.2}.gz') , optional: true, emit: fastq_unmapped @@ -31,7 +29,6 @@ process CENTRIFUGE { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def paired = meta.single_end ? "-U ${reads}" : "-1 ${reads[0]} -2 ${reads[1]}" - def db_name = db.toString().replace(".tar.gz","") def unaligned = '' def aligned = '' if (meta.single_end) { @@ -43,8 +40,10 @@ process CENTRIFUGE { } def sam_output = sam_format ? "--out-fmt 'sam'" : '' """ + ## we add "-no-name ._" to ensure silly Mac OSX metafiles files aren't included + db_name=`find -L ${db} -name "*.1.cf" -not -name "._*" | sed 's/.1.cf//'` centrifuge \\ - -x ${db}/${db_name} \\ + -x \$db_name \\ -p $task.cpus \\ $paired \\ --report-file ${prefix}.report.txt \\ @@ -53,7 +52,6 @@ process CENTRIFUGE { $aligned \\ $sam_output \\ $args - centrifuge-kreport -x $db_name ${prefix}.results.txt > ${prefix}.kreport.txt cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/centrifuge/meta.yml b/modules/centrifuge/centrifuge/meta.yml similarity index 82% rename from modules/centrifuge/meta.yml rename to modules/centrifuge/centrifuge/meta.yml index aabb465f..a252c00c 100644 --- a/modules/centrifuge/meta.yml +++ b/modules/centrifuge/centrifuge/meta.yml @@ -1,4 +1,4 @@ -name: centrifuge +name: centrifuge_centrifuge description: Classifies metagenomic sequence data keywords: - classify @@ -25,11 +25,7 @@ input: respectively. - db: type: directory - description: Centrifuge database in .tar.gz format - pattern: "*.tar.gz" - - db_name: - type: string - description: Centrifuge database filenames without the suffix ".cf" + description: Path to directory containing centrifuge database files - save_unaligned: type: value description: If true unmapped fastq files are saved @@ -52,12 +48,6 @@ output: description: | File containing classification results pattern: "*.{results.txt}" - - kreport: - type: file - description: | - File containing kraken-style report from centrifuge - out files. - pattern: "*.{kreport.txt}" - fastq_unmapped: type: file description: Unmapped fastq files diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index d47b95c4..64779036 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -395,9 +395,9 @@ cellranger/mkref: - modules/cellranger/gtf/** - tests/modules/cellranger/gtf/** -centrifuge: - - modules/centrifuge/** - - tests/modules/centrifuge/** +centrifuge/centrifuge: + - modules/centrifuge/centrifuge/** + - tests/modules/centrifuge/centrifuge/** checkm/lineagewf: - modules/checkm/lineagewf/** diff --git a/tests/modules/centrifuge/main.nf b/tests/modules/centrifuge/centrifuge/main.nf similarity index 66% rename from tests/modules/centrifuge/main.nf rename to tests/modules/centrifuge/centrifuge/main.nf index 37393ce5..7e44bd80 100644 --- a/tests/modules/centrifuge/main.nf +++ b/tests/modules/centrifuge/centrifuge/main.nf @@ -2,37 +2,36 @@ nextflow.enable.dsl = 2 -include { UNTAR } from '../../../modules/untar/main.nf' -include { CENTRIFUGE } from '../../../modules/centrifuge/main.nf' +include { UNTAR } from '../../../../modules/untar/main.nf' +include { CENTRIFUGE_CENTRIFUGE } from '../../../../modules/centrifuge/centrifuge/main.nf' -workflow test_centrifuge_single_end { +workflow test_centrifuge_centrifuge_single_end { input = [ [ id:'test', single_end:true ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] ] db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz', checkIfExists: true) ] - db_name = "minigut_cf" save_unaligned = true save_aligned = false sam_format = false UNTAR ( db ) - CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] },db_name, save_unaligned, save_aligned, sam_format ) + CENTRIFUGE_CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] }, save_unaligned, save_aligned, sam_format ) } -workflow test_centrifuge_paired_end { +workflow test_centrifuge_centrifuge_paired_end { input = [ [ id:'test', single_end:false ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] ] db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz', checkIfExists: true) ] - db_name = "minigut_cf" + //db_name = "minigut_cf" save_unaligned = true save_aligned = false sam_format = false UNTAR ( db ) - CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] }, db_name, save_unaligned, save_aligned, sam_format ) + CENTRIFUGE_CENTRIFUGE ( input, UNTAR.out.untar.map{ it[1] }, save_unaligned, save_aligned, sam_format ) } diff --git a/tests/modules/centrifuge/nextflow.config b/tests/modules/centrifuge/centrifuge/nextflow.config similarity index 100% rename from tests/modules/centrifuge/nextflow.config rename to tests/modules/centrifuge/centrifuge/nextflow.config diff --git a/tests/modules/centrifuge/test.yml b/tests/modules/centrifuge/centrifuge/test.yml similarity index 51% rename from tests/modules/centrifuge/test.yml rename to tests/modules/centrifuge/centrifuge/test.yml index a7b4360b..641ca7ef 100644 --- a/tests/modules/centrifuge/test.yml +++ b/tests/modules/centrifuge/centrifuge/test.yml @@ -1,20 +1,20 @@ -- name: centrifuge test_centrifuge_single_end - command: nextflow run tests/modules/centrifuge -entry test_centrifuge_single_end -c tests/config/nextflow.config +- name: centrifuge centrifuge test_centrifuge_centrifuge_single_end + command: nextflow run tests/modules/centrifuge/centrifuge -entry test_centrifuge_centrifuge_single_end -c tests/config/nextflow.config tags: - centrifuge + - centrifuge/centrifuge files: - - path: output/centrifuge/test.kreport.txt - path: output/centrifuge/test.report.txt - path: output/centrifuge/test.results.txt - path: output/centrifuge/test.unmapped.fastq.gz - path: output/centrifuge/versions.yml -- name: centrifuge test_centrifuge_paired_end - command: nextflow run tests/modules/centrifuge -entry test_centrifuge_paired_end -c tests/config/nextflow.config +- name: centrifuge centrifuge test_centrifuge_centrifuge_paired_end + command: nextflow run tests/modules/centrifuge/centrifuge -entry test_centrifuge_centrifuge_paired_end -c tests/config/nextflow.config tags: - centrifuge + - centrifuge/centrifuge files: - - path: output/centrifuge/test.kreport.txt - path: output/centrifuge/test.report.txt - path: output/centrifuge/test.results.txt - path: output/centrifuge/test.unmapped.fastq.1.gz From f07936741656de27060de4a72b1f5292e25d4f98 Mon Sep 17 00:00:00 2001 From: Lucpen Date: Thu, 7 Apr 2022 13:50:58 +0200 Subject: [PATCH 156/592] Picard liftover vcf (#1431) * Building Picard liftovervcf module * Building Picard liftovervcf module_test * Building Picard liftovervcf pytest * Module for picard liftover vcf created * Fixed files after linting test * Fixed trailing whitespace * Checked files with prettier * further formatting with prettier * Fixed test.yml * Fixed input variable names * Changed contain test.liftef.vcf * Changed contain in test.yml test.liftef.vcf * Run prittier * Going back to previous version of test.yml * downgrading picard to 2.26.10 from 2.26.11 * Update modules/picard/liftovervcf/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Update modules/picard/liftovervcf/main.nf Print available memory Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Output from .vcf to .vcf.gz * Added spaces to align emit * Update modules/picard/liftovervcf/meta.yml Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Update modules/picard/liftovervcf/meta.yml Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Update modules/picard/liftovervcf/meta.yml Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Removing md5sum test Co-authored-by: jemten Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: Maxime U. Garcia --- modules/picard/liftovervcf/main.nf | 49 +++++++++++++++++ modules/picard/liftovervcf/meta.yml | 55 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/picard/liftovervcf/main.nf | 17 ++++++ .../picard/liftovervcf/nextflow.config | 5 ++ tests/modules/picard/liftovervcf/test.yml | 11 ++++ 6 files changed, 141 insertions(+) create mode 100644 modules/picard/liftovervcf/main.nf create mode 100644 modules/picard/liftovervcf/meta.yml create mode 100644 tests/modules/picard/liftovervcf/main.nf create mode 100644 tests/modules/picard/liftovervcf/nextflow.config create mode 100644 tests/modules/picard/liftovervcf/test.yml diff --git a/modules/picard/liftovervcf/main.nf b/modules/picard/liftovervcf/main.nf new file mode 100644 index 00000000..cdbd637e --- /dev/null +++ b/modules/picard/liftovervcf/main.nf @@ -0,0 +1,49 @@ +process PICARD_LIFTOVERVCF { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + + input: + tuple val(meta), path(input_vcf) + path dict + path chain + path fasta + + output: + tuple val(meta), path("*lifted.vcf.gz") , emit: vcf_lifted + tuple val(meta), path("*unlifted.vcf.gz"), emit: vcf_unlifted + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 1 + if (!task.memory) { + log.info '[Picard LiftoverVcf] Available memory not known - defaulting to 1GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + picard \\ + -Xmx${avail_mem}g \\ + LiftoverVcf \\ + $args \\ + I=$input_vcf \\ + O=${prefix}.lifted.vcf.gz \\ + CHAIN=$chain \\ + REJECT=${prefix}.unlifted.vcf.gz \\ + R=$fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$(picard LiftoverVcf --version 2>&1 | grep -o 'Version.*' | cut -f2- -d:) + END_VERSIONS + """ +} diff --git a/modules/picard/liftovervcf/meta.yml b/modules/picard/liftovervcf/meta.yml new file mode 100644 index 00000000..55f04963 --- /dev/null +++ b/modules/picard/liftovervcf/meta.yml @@ -0,0 +1,55 @@ +name: picard_liftovervcf +description: convert between genome builds +keywords: + - liftOver + - picard +tools: + - picard: + description: Move annotations from one assembly to another + homepage: https://gatk.broadinstitute.org/hc/en-us/articles/360037060932-LiftoverVcf-Picard + documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360037060932-LiftoverVcf-Picard + tool_dev_url: https://github.com/broadinstitute/picard + doi: "" + licence: ["MIT"] + +input: + - meta: + type: map + description: Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input_vcf: + type: file + description: VCF file + pattern: "*.{vcf,vcf.gz}" + - chain: + type: file + description: The liftover chain file + - fasta: + type: file + description: fasta file + pattern: "*.fasta" + - dict: + type: file + description: dictionary for fasta file + pattern: "*.{dict}" + +output: + - meta: + type: map + description: Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf_lifted: + type: file + description: VCF file containing successfully lifted variants + pattern: "*.{lifted.vcf.gz}" + - vcf_unlifted: + type: file + description: VCF file containing unsuccessfully lifted variants + pattern: "*.{unlifted.vcf.gz}" + +authors: + - "@lucpen" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 64779036..364d1f53 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1351,6 +1351,10 @@ picard/fixmateinformation: - modules/picard/fixmateinformation/** - tests/modules/picard/fixmateinformation/** +picard/liftovervcf: + - modules/picard/liftovervcf/** + - tests/modules/picard/liftovervcf/** + picard/markduplicates: - modules/picard/markduplicates/** - tests/modules/picard/markduplicates/** diff --git a/tests/modules/picard/liftovervcf/main.nf b/tests/modules/picard/liftovervcf/main.nf new file mode 100644 index 00000000..8aee8273 --- /dev/null +++ b/tests/modules/picard/liftovervcf/main.nf @@ -0,0 +1,17 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PICARD_LIFTOVERVCF } from '../../../../modules/picard/liftovervcf/main.nf' + +workflow test_picard_liftovervcf { + + input_vcf = [ [ id:'test' ], + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true) + ] + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + chain = file(params.test_data['homo_sapiens']['genome']['genome_chain_gz'], checkIfExists: true) + fasta = [ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ] + + PICARD_LIFTOVERVCF ( input_vcf, dict, chain, fasta ) +} diff --git a/tests/modules/picard/liftovervcf/nextflow.config b/tests/modules/picard/liftovervcf/nextflow.config new file mode 100644 index 00000000..e1581bb9 --- /dev/null +++ b/tests/modules/picard/liftovervcf/nextflow.config @@ -0,0 +1,5 @@ +process { + ext.args = "WARN_ON_MISSING_CONTIG=true" + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/picard/liftovervcf/test.yml b/tests/modules/picard/liftovervcf/test.yml new file mode 100644 index 00000000..b1b30d5d --- /dev/null +++ b/tests/modules/picard/liftovervcf/test.yml @@ -0,0 +1,11 @@ +- name: picard liftovervcf test_picard_liftovervcf + command: nextflow run tests/modules/picard/liftovervcf -entry test_picard_liftovervcf -c tests/config/nextflow.config + tags: + - picard/liftovervcf + - picard + files: + - path: output/picard/test.lifted.vcf.gz + contains: + - "chr22" + - path: output/picard/test.unlifted.vcf.gz + - path: output/picard/versions.yml From 9ae34a01d1747019fd37753ff4cafb05aec35a2b Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Fri, 8 Apr 2022 11:43:40 +0200 Subject: [PATCH 157/592] Fix Controlfreec: Add stub runs to test single sample input & make conda work with R scripts (#1504) * Fix typo * Add stub runs for testing input without matched normals * Add missing -stub-run * remove empty file checksum tests and change workflow names * test controlfreec naming * fix output file names * fix output file names * fix output file names * fix conda and container path difference for R scripts * update tar version to work with conda * fix version number in docker * try to fix path to script, pretty sure it won't work * try new ways to set path with wildcard * try which * add which but with escape * remove comment --- .../controlfreec/assesssignificance/main.nf | 13 ++++++- modules/controlfreec/freec/main.nf | 20 ++++++++++- modules/controlfreec/freec2bed/main.nf | 11 ++++++ modules/controlfreec/freec2circos/main.nf | 11 ++++++ modules/controlfreec/makegraph/main.nf | 14 +++++++- modules/untar/main.nf | 6 ++-- .../controlfreec/assesssignificance/main.nf | 35 ++++++++++++++++++ .../controlfreec/assesssignificance/test.yml | 10 +++++- tests/modules/controlfreec/freec/main.nf | 33 +++++++++++++++++ tests/modules/controlfreec/freec/test.yml | 16 ++++++++- tests/modules/controlfreec/freec2bed/main.nf | 36 ++++++++++++++++++- tests/modules/controlfreec/freec2bed/test.yml | 8 +++++ .../modules/controlfreec/freec2circos/main.nf | 34 ++++++++++++++++++ .../controlfreec/freec2circos/test.yml | 8 +++++ tests/modules/controlfreec/makegraph/main.nf | 35 ++++++++++++++++++ tests/modules/controlfreec/makegraph/test.yml | 10 ++++++ 16 files changed, 291 insertions(+), 9 deletions(-) diff --git a/modules/controlfreec/assesssignificance/main.nf b/modules/controlfreec/assesssignificance/main.nf index f85a3c7f..4bdb00b3 100644 --- a/modules/controlfreec/assesssignificance/main.nf +++ b/modules/controlfreec/assesssignificance/main.nf @@ -21,7 +21,7 @@ process CONTROLFREEC_ASSESSSIGNIFICANCE { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ - cat /usr/local/bin/assess_significance.R | R --slave --args ${cnvs} ${ratio} + cat \$(which assess_significance.R) | R --slave --args ${cnvs} ${ratio} mv *.p.value.txt ${prefix}.p.value.txt @@ -30,4 +30,15 @@ process CONTROLFREEC_ASSESSSIGNIFICANCE { controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.p.value.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ } diff --git a/modules/controlfreec/freec/main.nf b/modules/controlfreec/freec/main.nf index eb66eeaa..857ffdee 100644 --- a/modules/controlfreec/freec/main.nf +++ b/modules/controlfreec/freec/main.nf @@ -21,7 +21,7 @@ process CONTROLFREEC_FREEC { output: tuple val(meta), path("*_ratio.BedGraph") , emit: bedgraph, optional: true - tuple val(meta), path("*_control.cpn") , emit: control_cpn + tuple val(meta), path("*_control.cpn") , emit: control_cpn, optional: true tuple val(meta), path("*_sample.cpn") , emit: sample_cpn tuple val(meta), path("GC_profile.*.cpn") , emit: gcprofile_cpn, optional:true tuple val(meta), path("*_BAF.txt") , emit: BAF @@ -155,4 +155,22 @@ process CONTROLFREEC_FREEC { controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}_ratio.BedGraph + touch ${prefix}_sample.cpn + touch GC_profile.${prefix}.cpn + touch ${prefix}_BAF.txt + touch ${prefix}_CNVs + touch ${prefix}_info.txt + touch ${prefix}_ratio.txt + touch config.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ } diff --git a/modules/controlfreec/freec2bed/main.nf b/modules/controlfreec/freec2bed/main.nf index 880e4716..aefc200e 100644 --- a/modules/controlfreec/freec2bed/main.nf +++ b/modules/controlfreec/freec2bed/main.nf @@ -28,4 +28,15 @@ process CONTROLFREEC_FREEC2BED { controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bed + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ } diff --git a/modules/controlfreec/freec2circos/main.nf b/modules/controlfreec/freec2circos/main.nf index 8879d4c0..8f9be300 100644 --- a/modules/controlfreec/freec2circos/main.nf +++ b/modules/controlfreec/freec2circos/main.nf @@ -28,4 +28,15 @@ process CONTROLFREEC_FREEC2CIRCOS { controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.circos.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ } diff --git a/modules/controlfreec/makegraph/main.nf b/modules/controlfreec/makegraph/main.nf index 9a0c7281..a8954d72 100644 --- a/modules/controlfreec/makegraph/main.nf +++ b/modules/controlfreec/makegraph/main.nf @@ -25,12 +25,24 @@ process CONTROLFREEC_MAKEGRAPH { def prefix = task.ext.prefix ?: "${meta.id}" def baf = baf ?: "" """ - cat /usr/local/bin/makeGraph.R | R --slave --args ${args} ${ratio} ${baf} + cat \$(which makeGraph.R) | R --slave --args ${args} ${ratio} ${baf} mv *_BAF.txt.png ${prefix}_BAF.png mv *_ratio.txt.log2.png ${prefix}_ratio.log2.png mv *_ratio.txt.png ${prefix}_ratio.png + cat <<-END_VERSIONS > versions.yml + "${task.process}": + controlfreec: \$(echo \$(freec -version 2>&1) | sed 's/^.*Control-FREEC //; s/:.*\$//' | sed -e "s/Control-FREEC v//g" ) + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}_BAF.png + touch ${prefix}_ratio.log2.png + touch ${prefix}_ratio.png cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/untar/main.nf b/modules/untar/main.nf index 5aa6aa7f..bbfa0bfe 100644 --- a/modules/untar/main.nf +++ b/modules/untar/main.nf @@ -2,10 +2,10 @@ process UNTAR { tag "$archive" label 'process_low' - conda (params.enable_conda ? "conda-forge::tar=1.32" : null) + conda (params.enable_conda ? "conda-forge::tar=1.34" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv1/biocontainers_v1.2.0_cv1.img' : - 'biocontainers/biocontainers:v1.2.0_cv1' }" + 'https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv2/biocontainers_v1.2.0_cv2.img' : + 'biocontainers/biocontainers:v1.2.0_cv2' }" input: tuple val(meta), path(archive) diff --git a/tests/modules/controlfreec/assesssignificance/main.nf b/tests/modules/controlfreec/assesssignificance/main.nf index f8d8aa1d..e5ed1bf7 100644 --- a/tests/modules/controlfreec/assesssignificance/main.nf +++ b/tests/modules/controlfreec/assesssignificance/main.nf @@ -40,3 +40,38 @@ workflow test_controlfreec_assesssignificance { sig_in = CONTROLFREEC_FREEC.out.CNV.join(CONTROLFREEC_FREEC.out.ratio) CONTROLFREEC_ASSESSSIGNIFICANCE ( sig_in ) } + +workflow test_controlfreec_assesssignificance_single { + + input = [ + [ id:'test', single_end:false, sex:'XX' ], // meta map + [], + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] + ) + + sig_in = CONTROLFREEC_FREEC.out.CNV.join(CONTROLFREEC_FREEC.out.ratio) + CONTROLFREEC_ASSESSSIGNIFICANCE ( sig_in ) +} diff --git a/tests/modules/controlfreec/assesssignificance/test.yml b/tests/modules/controlfreec/assesssignificance/test.yml index f8393330..19e54acf 100644 --- a/tests/modules/controlfreec/assesssignificance/test.yml +++ b/tests/modules/controlfreec/assesssignificance/test.yml @@ -7,4 +7,12 @@ - path: output/controlfreec/test.p.value.txt md5sum: 44e23b916535fbc1a3f47b57fad292df - path: output/controlfreec/versions.yml - md5sum: 0aa42fed10d61e4570fe1e0e83ffe932 + +- name: controlfreec assesssignificance test_controlfreec_assesssignificance_single + command: nextflow run tests/modules/controlfreec/assesssignificance -entry test_controlfreec_assesssignificance_single -c tests/config/nextflow.config -stub-run + tags: + - controlfreec/assesssignificance + - controlfreec + files: + - path: output/controlfreec/test.p.value.txt + - path: output/controlfreec/versions.yml diff --git a/tests/modules/controlfreec/freec/main.nf b/tests/modules/controlfreec/freec/main.nf index d14c8f65..1f4a069b 100644 --- a/tests/modules/controlfreec/freec/main.nf +++ b/tests/modules/controlfreec/freec/main.nf @@ -36,3 +36,36 @@ workflow test_controlfreec_freec { [] ) } + +workflow test_controlfreec_freec_single { + + input = [ + [ id:'test2', single_end:false, sex:'XX' ], // meta map + [], + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] + ) +} + diff --git a/tests/modules/controlfreec/freec/test.yml b/tests/modules/controlfreec/freec/test.yml index d50fc063..1bd4e3a4 100644 --- a/tests/modules/controlfreec/freec/test.yml +++ b/tests/modules/controlfreec/freec/test.yml @@ -20,4 +20,18 @@ - path: output/controlfreec/test2.mpileup.gz_sample.cpn md5sum: c80dad58a77b1d7ba6d273999f4b4b4b - path: output/controlfreec/versions.yml - md5sum: 3ab250a2ab3be22628124c7c65324651 + +- name: controlfreec test_controlfreec_freec_single + command: nextflow run tests/modules/controlfreec/freec -entry test_controlfreec_freec_single -c tests/config/nextflow.config -stub-run + tags: + - controlfreec + - controlfreec/freec + files: + - path: output/controlfreec/config.txt + - path: output/controlfreec/test2_BAF.txt + - path: output/controlfreec/test2_CNVs + - path: output/controlfreec/test2_info.txt + - path: output/controlfreec/test2_ratio.BedGraph + - path: output/controlfreec/test2_ratio.txt + - path: output/controlfreec/test2_sample.cpn + - path: output/controlfreec/versions.yml diff --git a/tests/modules/controlfreec/freec2bed/main.nf b/tests/modules/controlfreec/freec2bed/main.nf index df121832..c1b0f04e 100644 --- a/tests/modules/controlfreec/freec2bed/main.nf +++ b/tests/modules/controlfreec/freec2bed/main.nf @@ -8,7 +8,7 @@ include { UNTAR } from '../../../../modules/untar/main.nf' workflow test_controlfreec_freec2bed { - input = [ + input = [ [ id:'test', single_end:false, sex:'XX' ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_mpileup'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), @@ -39,3 +39,37 @@ workflow test_controlfreec_freec2bed { CONTROLFREEC_FREEC2BED ( CONTROLFREEC_FREEC.out.ratio ) } + +workflow test_controlfreec_freec2bed_single { + + input = [ + [ id:'test', single_end:false, sex:'XX' ], // meta map + [], + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] + ) + + CONTROLFREEC_FREEC2BED ( CONTROLFREEC_FREEC.out.ratio ) +} diff --git a/tests/modules/controlfreec/freec2bed/test.yml b/tests/modules/controlfreec/freec2bed/test.yml index 0198bac6..9abb3a54 100644 --- a/tests/modules/controlfreec/freec2bed/test.yml +++ b/tests/modules/controlfreec/freec2bed/test.yml @@ -6,3 +6,11 @@ files: - path: output/controlfreec/test.bed md5sum: abe10b7ce94ba903503e697394c17297 + +- name: controlfreec freec2bed test_controlfreec_freec2bed_single + command: nextflow run tests/modules/controlfreec/freec2bed -entry test_controlfreec_freec2bed_single -c tests/config/nextflow.config -stub-run + tags: + - controlfreec/freec2bed + - controlfreec + files: + - path: output/controlfreec/test.bed diff --git a/tests/modules/controlfreec/freec2circos/main.nf b/tests/modules/controlfreec/freec2circos/main.nf index 9b655f0e..6b34edb6 100644 --- a/tests/modules/controlfreec/freec2circos/main.nf +++ b/tests/modules/controlfreec/freec2circos/main.nf @@ -39,3 +39,37 @@ workflow test_controlfreec_freec2circos { CONTROLFREEC_FREEC2CIRCOS ( CONTROLFREEC_FREEC.out.ratio ) } + +workflow test_controlfreec_freec2circos_single { + + input = [ + [ id:'test', single_end:false, sex:'XX' ], // meta map + [], + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] + ) + + CONTROLFREEC_FREEC2CIRCOS ( CONTROLFREEC_FREEC.out.ratio ) +} diff --git a/tests/modules/controlfreec/freec2circos/test.yml b/tests/modules/controlfreec/freec2circos/test.yml index 5758a828..c29111de 100644 --- a/tests/modules/controlfreec/freec2circos/test.yml +++ b/tests/modules/controlfreec/freec2circos/test.yml @@ -6,3 +6,11 @@ files: - path: output/controlfreec/test.circos.txt md5sum: 19cf35f2c36b46f717dc8342b8a5a645 + +- name: controlfreec freec2circos test_controlfreec_freec2circos_single + command: nextflow run tests/modules/controlfreec/freec2circos -entry test_controlfreec_freec2circos_single -c tests/config/nextflow.config -stub-run + tags: + - controlfreec + - controlfreec/freec2circos + files: + - path: output/controlfreec/test.circos.txt diff --git a/tests/modules/controlfreec/makegraph/main.nf b/tests/modules/controlfreec/makegraph/main.nf index ffea3d99..543216e1 100644 --- a/tests/modules/controlfreec/makegraph/main.nf +++ b/tests/modules/controlfreec/makegraph/main.nf @@ -40,3 +40,38 @@ workflow test_controlfreec_makegraph { makegraph_in = CONTROLFREEC_FREEC.out.ratio.join(CONTROLFREEC_FREEC.out.BAF) CONTROLFREEC_MAKEGRAPH ( makegraph_in ) } + +workflow test_controlfreec_makegraph_single { + + input = [ + [ id:'test', single_end:false, sex:'XX' ], // meta map + [], + file(params.test_data['homo_sapiens']['illumina']['test2_mpileup'], checkIfExists: true), + [],[],[],[] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + + chrfiles = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_chromosomes_dir'], checkIfExists: true) ] + target_bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + UNTAR(chrfiles) + CONTROLFREEC_FREEC (input, + fasta, + fai, + [], + dbsnp, + dbsnp_tbi, + UNTAR.out.untar.map{ it[1] }, + [], + target_bed, + [] + ) + + makegraph_in = CONTROLFREEC_FREEC.out.ratio.join(CONTROLFREEC_FREEC.out.BAF) + CONTROLFREEC_MAKEGRAPH ( makegraph_in ) +} diff --git a/tests/modules/controlfreec/makegraph/test.yml b/tests/modules/controlfreec/makegraph/test.yml index 21e78766..02d1a165 100644 --- a/tests/modules/controlfreec/makegraph/test.yml +++ b/tests/modules/controlfreec/makegraph/test.yml @@ -10,3 +10,13 @@ md5sum: b3c7916b1b4951a0cc3da20d8e9e0262 - path: output/controlfreec/test_ratio.png md5sum: 1435b29536b3b1555b4c423f8f4fb000 + +- name: controlfreec makegraph test_controlfreec_makegraph_single + command: nextflow run tests/modules/controlfreec/makegraph -entry test_controlfreec_makegraph_single -c tests/config/nextflow.config -stub-run + tags: + - controlfreec + - controlfreec/makegraph + files: + - path: output/controlfreec/test_BAF.png + - path: output/controlfreec/test_ratio.log2.png + - path: output/controlfreec/test_ratio.png From f57f085912a2b158eb224c21aeef45722a797aa6 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 8 Apr 2022 14:41:08 +0200 Subject: [PATCH 158/592] new tool snap-aligner/index (#1506) * add snapaligner/index * output fixes * fix outputs * fix tests * update inputs * fix more bugs * fix linting * Update modules/snapaligner/index/main.nf Co-authored-by: James A. Fellows Yates * Update modules/snapaligner/index/main.nf Co-authored-by: James A. Fellows Yates * fix comments * fix indents * fix escaping Co-authored-by: James A. Fellows Yates --- modules/snapaligner/index/main.nf | 59 +++++++++++++++++++ modules/snapaligner/index/meta.yml | 39 ++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/snapaligner/index/main.nf | 9 +++ .../modules/snapaligner/index/nextflow.config | 5 ++ tests/modules/snapaligner/index/test.yml | 13 ++++ 6 files changed, 129 insertions(+) create mode 100644 modules/snapaligner/index/main.nf create mode 100644 modules/snapaligner/index/meta.yml create mode 100644 tests/modules/snapaligner/index/main.nf create mode 100644 tests/modules/snapaligner/index/nextflow.config create mode 100644 tests/modules/snapaligner/index/test.yml diff --git a/modules/snapaligner/index/main.nf b/modules/snapaligner/index/main.nf new file mode 100644 index 00000000..6dc2c958 --- /dev/null +++ b/modules/snapaligner/index/main.nf @@ -0,0 +1,59 @@ +process SNAPALIGNER_INDEX { + tag '$fasta' + label 'process_high' + + conda (params.enable_conda ? "bioconda::snap-aligner=2.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/snap-aligner:2.0.1--hd03093a_1': + 'quay.io/biocontainers/snap-aligner:2.0.1--hd03093a_1' }" + + input: + path fasta + path altcontigfile + path nonaltcontigfile + path altliftoverfile + + output: + path "snap/*" ,emit: index + path "versions.yml" ,emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def altcontigfile_arg = altcontigfile ? '-altContigFile ' + altcontigfile : '' + def nonaltcontigfile_arg = nonaltcontigfile ? '-nonAltContigFile ' + nonaltcontigfile : '' + def altliftoverfile_arg = altliftoverfile ? '-altLiftoverFile ' + altliftoverfile : '' + """ + mkdir snap + + snap-aligner \\ + index \\ + $fasta \\ + snap \\ + -t${task.cpus} \\ + $altcontigfile_arg \\ + $nonaltcontigfile_arg \\ + $altliftoverfile_arg \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + snapaligner: \$(snap-aligner 2>&1| head -n 1 | sed 's/^.*version //') + END_VERSIONS + """ + stub: + """ + mkdir snap + echo "Genome" > snap/Genome + echo "GenomeIndex" > snap/GenomeIndex + echo "GenomeIndexHash" > snap/GenomeIndexHash + echo "OverflowTable" > snap/OverflowTable + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + snapaligner: \$(snap-aligner 2>&1| head -n 1 | sed 's/^.*version //;s/\.\$//') + END_VERSIONS + """ +} diff --git a/modules/snapaligner/index/meta.yml b/modules/snapaligner/index/meta.yml new file mode 100644 index 00000000..6d5e0f19 --- /dev/null +++ b/modules/snapaligner/index/meta.yml @@ -0,0 +1,39 @@ +name: "snapaligner_index" +description: Create a SNAP index for reference genome +keywords: + - index + - fasta + - genome + - reference +tools: + - "snapaligner": + description: "Scalable Nucleotide Alignment Program -- a fast and accurate read aligner for high-throughput sequencing data" + homepage: "http://snap.cs.berkeley.edu" + documentation: "https://1drv.ms/b/s!AhuEg_0yZD86hcpblUt-muHKYsG8fA?e=R8ogug" + tool_dev_url: "https://github.com/amplab/snap" + doi: "10.1101/2021.11.23.469039" + licence: "['Apache v2']" +input: + - fasta: + type: file + description: Input genome fasta file + - altcontigfile: + type: file + description: Optional file with a list of alt contig names, one per line. + - nonaltcontigfile: + type: file + description: Optional file that contains a list of contigs (one per line) that will not be marked ALT regardless of size. + - altliftoverfile: + type: file + description: Optional file containing ALT-to-REF mappings (SAM format). e.g., hs38DH.fa.alt from bwa-kit. +output: + - index: + type: file + description: SNAP genome index files + pattern: "{Genome,GenomeIndex,GenomeIndexHash,OverflowTable}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 364d1f53..31f62c78 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1663,6 +1663,10 @@ sistr: - modules/sistr/** - tests/modules/sistr/** +snapaligner/index: + - modules/snapaligner/index/** + - tests/modules/snapaligner/index/** + snpdists: - modules/snpdists/** - tests/modules/snpdists/** diff --git a/tests/modules/snapaligner/index/main.nf b/tests/modules/snapaligner/index/main.nf new file mode 100644 index 00000000..4cebb876 --- /dev/null +++ b/tests/modules/snapaligner/index/main.nf @@ -0,0 +1,9 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SNAPALIGNER_INDEX } from '../../../../modules/snapaligner/index/main.nf' + +workflow test_snapaligner_index { + SNAPALIGNER_INDEX ( file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true),[],[],[]) +} diff --git a/tests/modules/snapaligner/index/nextflow.config b/tests/modules/snapaligner/index/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/snapaligner/index/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/snapaligner/index/test.yml b/tests/modules/snapaligner/index/test.yml new file mode 100644 index 00000000..2c4b4935 --- /dev/null +++ b/tests/modules/snapaligner/index/test.yml @@ -0,0 +1,13 @@ +- name: snapaligner index test_snapaligner_index + command: nextflow run tests/modules/snapaligner/index -entry test_snapaligner_index -c tests/config/nextflow.config + tags: + - snapaligner/index + - snapaligner + files: + - path: output/snapaligner/snap/Genome + md5sum: 7e189c954142ba37460332b467e34ed4 + - path: output/snapaligner/snap/GenomeIndex + md5sum: 298da8bcb1134f7b24379a792a7a46f8 + - path: output/snapaligner/snap/GenomeIndexHash + - path: output/snapaligner/snap/OverflowTable + - path: output/snapaligner/versions.yml From e19a9a2474c6609875b49d8140a7264e21a1beee Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 8 Apr 2022 15:54:15 +0200 Subject: [PATCH 159/592] new tool: staden_io_lib (#1499) * new tool: staden_io_lib * update docker containers * add test.yml * add fai index input * typo * fix version.yml * update md5sum * omit md5sum for cram * move scramble to submodule * add missing in/output * remove some comments Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/stadeniolib/scramble/main.nf | 61 +++++++++++++++++++ modules/stadeniolib/scramble/meta.yml | 58 ++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/stadeniolib/scramble/main.nf | 15 +++++ .../stadeniolib/scramble/nextflow.config | 5 ++ tests/modules/stadeniolib/scramble/test.yml | 7 +++ 6 files changed, 150 insertions(+) create mode 100644 modules/stadeniolib/scramble/main.nf create mode 100644 modules/stadeniolib/scramble/meta.yml create mode 100644 tests/modules/stadeniolib/scramble/main.nf create mode 100644 tests/modules/stadeniolib/scramble/nextflow.config create mode 100644 tests/modules/stadeniolib/scramble/test.yml diff --git a/modules/stadeniolib/scramble/main.nf b/modules/stadeniolib/scramble/main.nf new file mode 100644 index 00000000..e24fb2cb --- /dev/null +++ b/modules/stadeniolib/scramble/main.nf @@ -0,0 +1,61 @@ +process STADENIOLIB_SCRAMBLE { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::staden_io_lib=1.14.14" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/staden_io_lib:1.14.14--h0d9da7e_3' : + 'quay.io/biocontainers/staden_io_lib:1.14.14--h0d9da7e_3' }" + + input: + tuple val(meta), path(reads) + path(fasta) + path(fai) + path(gzi) + + output: + tuple val(meta), path("*.cram") ,emit: cram + path "*.gzi" ,emit: gzi, optional: true + path "versions.yml" ,emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + def inputformat = reads.getExtension + def outputformat = "cram" + if ("-O sam" in args) { + outputformat = "sam" + } else if ("-O bam" in args) { + outputformat = "bam" + } + + def reference = if fasta && fai : "--r ${fasta}" else "" + if (outputformat == "cram" && !reference) { + error "Cannot convert to CRAM without a reference" + } + + def gz_index = if gzi : "--g ${gzi}" else "" + if (outputformat == "cram" || outputformat == "sam") { + gz_index = "" + warning "Cannot use gzip index for CRAM or SAM output" + } + + """ + scramble \ + $args \ + -I ${inputformat} \ + $reference \ + -t $task.cpus \ + ${reads} \ + ${prefix}.${outputformat} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + stadeniolib: \$(echo \$(scramble -h | head -n 1 |sed 's/^.*version //')) + END_VERSIONS + """ +} diff --git a/modules/stadeniolib/scramble/meta.yml b/modules/stadeniolib/scramble/meta.yml new file mode 100644 index 00000000..7e53a1b4 --- /dev/null +++ b/modules/stadeniolib/scramble/meta.yml @@ -0,0 +1,58 @@ +name: "stadeniolib_scramble" +description: Advanced sequence file format conversions +keywords: + - sam + - bam + - cram + - compression +tools: + - "scramble": + description: "Staden Package 'io_lib' (sometimes referred to as libstaden-read by distributions). This contains code for reading and writing a variety of Bioinformatics / DNA Sequence formats." + homepage: "https://github.com/jkbonfield/io_lib" + documentation: "https://github.com/jkbonfield/io_lib/blob/master/README.md" + tool_dev_url: "https://github.com/jkbonfield/io_lib" + licence: "['BSD']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + - fasta: + type: file + description: Reference genome in FASTA format + pattern: "*.{fa,fasta}" + - fai: + type: file + description: FASTA index file from samtools faidx + pattern: "*.{fai}" + - gzi: + type: file + description: Optional gzip index file for BAM inputs + pattern: "*.gzi" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - reads: + type: file + description: Converted reads + pattern: "*.{sam, bam, cram}" + - gzi: + type: Optional file + description: gzip index file for BAM outputs + pattern: ".{bam.gzi}" +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 31f62c78..2b99f835 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1707,6 +1707,10 @@ ssuissero: - modules/ssuissero/** - tests/modules/ssuissero/** +stadeniolib/scramble: + - modules/stadeniolib/scramble/** + - tests/modules/stadeniolib/scramble/** + staphopiasccmec: - modules/staphopiasccmec/** - tests/modules/staphopiasccmec/** diff --git a/tests/modules/stadeniolib/scramble/main.nf b/tests/modules/stadeniolib/scramble/main.nf new file mode 100644 index 00000000..d29c6dd8 --- /dev/null +++ b/tests/modules/stadeniolib/scramble/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { STADENIOLIB_SCRAMBLE } from '../../../../modules/stadeniolib/scramble/main.nf' + +workflow test_stadeniolib { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + STADENIOLIB_SCRAMBLE ( input, file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true), file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true), []) +} diff --git a/tests/modules/stadeniolib/scramble/nextflow.config b/tests/modules/stadeniolib/scramble/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/stadeniolib/scramble/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/stadeniolib/scramble/test.yml b/tests/modules/stadeniolib/scramble/test.yml new file mode 100644 index 00000000..cea6fb70 --- /dev/null +++ b/tests/modules/stadeniolib/scramble/test.yml @@ -0,0 +1,7 @@ +- name: stadeniolib test_stadeniolib + command: nextflow run tests/modules/stadeniolib -entry test_stadeniolib -c tests/config/nextflow.config + tags: + - stadeniolib + files: + - path: output/stadeniolib/test.cram + - path: output/stadeniolib/versions.yml From d4160c669b1f7faad3177a847c53516ac932b0c8 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 8 Apr 2022 16:02:10 +0200 Subject: [PATCH 160/592] Tool/crosscheckfingerprints (#1505) * first commit * first commit * update test.yml * update test.yml * Update modules/picard/crosscheckfingerprints/main.nf Co-authored-by: Jose Espinosa-Carrasco * Update modules/picard/crosscheckfingerprints/main.nf Co-authored-by: Jose Espinosa-Carrasco * add support for vcf haplotype maps * update test * update test data config, use test data * fix exit code * Update modules/picard/crosscheckfingerprints/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * Update modules/picard/crosscheckfingerprints/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * remove unused stub Co-authored-by: Jose Espinosa-Carrasco Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/picard/crosscheckfingerprints/main.nf | 51 ++++++++++++++++++ .../picard/crosscheckfingerprints/meta.yml | 53 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/config/test_data.config | 1 + .../picard/crosscheckfingerprints/main.nf | 14 +++++ .../crosscheckfingerprints/nextflow.config | 5 ++ .../picard/crosscheckfingerprints/test.yml | 8 +++ 7 files changed, 136 insertions(+) create mode 100644 modules/picard/crosscheckfingerprints/main.nf create mode 100644 modules/picard/crosscheckfingerprints/meta.yml create mode 100644 tests/modules/picard/crosscheckfingerprints/main.nf create mode 100644 tests/modules/picard/crosscheckfingerprints/nextflow.config create mode 100644 tests/modules/picard/crosscheckfingerprints/test.yml diff --git a/modules/picard/crosscheckfingerprints/main.nf b/modules/picard/crosscheckfingerprints/main.nf new file mode 100644 index 00000000..b3dface5 --- /dev/null +++ b/modules/picard/crosscheckfingerprints/main.nf @@ -0,0 +1,51 @@ +process PICARD_CROSSCHECKFINGERPRINTS { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + + input: + tuple val(meta), path(input1) + path input2 + path haplotype_map + + output: + tuple val(meta), path("*.crosscheck_metrics.txt"), emit: crosscheck_metrics + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + def input1_string = input1.join(" --INPUT ") + def input2_string = input2 ? "--SECOND_INPUT " + input2.join(" --SECOND_INPUT ") : "" + + def avail_mem = 3 + if (!task.memory) { + log.info '[Picard CrosscheckFingerprints] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + picard \\ + -Xmx${avail_mem}g \\ + CrosscheckFingerprints \\ + $args \\ + --NUM_THREADS ${task.cpus} \\ + --INPUT $input1_string \\ + $input2_string \\ + --HAPLOTYPE_MAP ${haplotype_map} \\ + --OUTPUT ${prefix}.crosscheck_metrics.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + picard: \$( picard CrosscheckFingerprints --version 2>&1 | grep -o 'Version:.*' | cut -f2- -d: ) + END_VERSIONS + """ +} diff --git a/modules/picard/crosscheckfingerprints/meta.yml b/modules/picard/crosscheckfingerprints/meta.yml new file mode 100644 index 00000000..4f2aff5d --- /dev/null +++ b/modules/picard/crosscheckfingerprints/meta.yml @@ -0,0 +1,53 @@ +name: "picard_crosscheckfingerprints" +description: Checks that all data in the set of input files appear to come from the same individual +keywords: + - alignment + - metrics + - statistics + - fingerprint + - bam +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/ + tool_dev_url: https://github.com/broadinstitute/picard/ + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input1: + type: file + description: List containing 1 or more bam/vcf files or a file containing filepaths + pattern: "*.{bam,vcf,vcf.gz,txt,fofn}" + - input2: + type: file + description: Optional list containing 1 or more bam/vcf files or a file containing filepaths + pattern: "*.{bam,vcf,vcf.gz,txt,fofn}" + - haplotype_map: + type: file + description: Haplotype map file + pattern: "*.{txt,vcf,vcf.gz}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - crosscheck_metrics: + type: file + description: Metrics created by crosscheckfingerprints + pattern: "*.{crosscheck_metrics.txt}" + +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 2b99f835..c0e84cbc 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1343,6 +1343,10 @@ picard/createsequencedictionary: - modules/picard/createsequencedictionary/** - tests/modules/picard/createsequencedictionary/** +picard/crosscheckfingerprints: + - modules/picard/crosscheckfingerprints/** + - tests/modules/picard/crosscheckfingerprints/** + picard/filtersamreads: - modules/picard/filtersamreads/** - tests/modules/picard/filtersamreads/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 836604b8..1a5c377c 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -161,6 +161,7 @@ params { gnomad_r2_1_1_21_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/germlineresources/gnomAD.r2.1.1.vcf.gz.tbi" mills_and_1000g_indels_21_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/germlineresources/mills_and_1000G.indels.hg38.vcf.gz" mills_and_1000g_indels_21_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/germlineresources/mills_and_1000G.indels.hg38.vcf.gz.tbi" + haplotype_map = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/germlineresources/haplotype_map.txt" index_salmon = "${test_data_dir}/genomics/homo_sapiens/genome/index/salmon" repeat_expansions = "${test_data_dir}/genomics/homo_sapiens/genome/loci/repeat_expansions.json" diff --git a/tests/modules/picard/crosscheckfingerprints/main.nf b/tests/modules/picard/crosscheckfingerprints/main.nf new file mode 100644 index 00000000..55ddb5c5 --- /dev/null +++ b/tests/modules/picard/crosscheckfingerprints/main.nf @@ -0,0 +1,14 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PICARD_CROSSCHECKFINGERPRINTS } from '../../../../modules/picard/crosscheckfingerprints/main.nf' + +workflow test_picard_crosscheckfingerprints { + + input = [ + [ id:'test', single_end:false ], // meta map + [file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)], + ] + PICARD_CROSSCHECKFINGERPRINTS ( input,[], file(params.test_data['homo_sapiens']['genome']['haplotype_map'], checkIfExists: true)) +} diff --git a/tests/modules/picard/crosscheckfingerprints/nextflow.config b/tests/modules/picard/crosscheckfingerprints/nextflow.config new file mode 100644 index 00000000..aa696290 --- /dev/null +++ b/tests/modules/picard/crosscheckfingerprints/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: PICARD_CROSSCHECKFINGERPRINTS {ext.args = "--EXIT_CODE_WHEN_MISMATCH 0"} +} diff --git a/tests/modules/picard/crosscheckfingerprints/test.yml b/tests/modules/picard/crosscheckfingerprints/test.yml new file mode 100644 index 00000000..534c206d --- /dev/null +++ b/tests/modules/picard/crosscheckfingerprints/test.yml @@ -0,0 +1,8 @@ +- name: "picard crosscheckfingerprints" + command: nextflow run ./tests/modules/picard/crosscheckfingerprints -entry test_picard_crosscheckfingerprints -c ./tests/config/nextflow.config -c ./tests/modules/picard/crosscheckfingerprints/nextflow.config + tags: + - "picard" + - "picard/crosscheckfingerprints" + files: + - path: "output/picard/test.crosscheck_metrics.txt" + - path: output/picard/versions.yml From 8dc680d3b334c6622d1edfa3b97d05dd318371e0 Mon Sep 17 00:00:00 2001 From: Michael L Heuer Date: Sat, 9 Apr 2022 11:13:47 -0500 Subject: [PATCH 161/592] Update dsh-bio to version 2.0.8. (#1483) --- modules/dshbio/exportsegments/main.nf | 6 +++--- modules/dshbio/filterbed/main.nf | 6 +++--- modules/dshbio/filtergff3/main.nf | 6 +++--- modules/dshbio/splitbed/main.nf | 6 +++--- modules/dshbio/splitgff3/main.nf | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/modules/dshbio/exportsegments/main.nf b/modules/dshbio/exportsegments/main.nf index 49442f81..03d0e91a 100644 --- a/modules/dshbio/exportsegments/main.nf +++ b/modules/dshbio/exportsegments/main.nf @@ -2,10 +2,10 @@ process DSHBIO_EXPORTSEGMENTS { tag "${meta.id}" label 'process_medium' - conda (params.enable_conda ? "bioconda::dsh-bio=2.0.7" : null) + conda (params.enable_conda ? "bioconda::dsh-bio=2.0.8" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.7--hdfd78af_0' : - 'quay.io/biocontainers/dsh-bio:2.0.7--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.8--hdfd78af_0' : + 'quay.io/biocontainers/dsh-bio:2.0.8--hdfd78af_0' }" input: tuple val(meta), path(gfa) diff --git a/modules/dshbio/filterbed/main.nf b/modules/dshbio/filterbed/main.nf index 7e3da24e..7a0a4d86 100644 --- a/modules/dshbio/filterbed/main.nf +++ b/modules/dshbio/filterbed/main.nf @@ -2,10 +2,10 @@ process DSHBIO_FILTERBED { tag "${meta.id}" label 'process_medium' - conda (params.enable_conda ? "bioconda::dsh-bio=2.0.7" : null) + conda (params.enable_conda ? "bioconda::dsh-bio=2.0.8" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.7--hdfd78af_0' : - 'quay.io/biocontainers/dsh-bio:2.0.7--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.8--hdfd78af_0' : + 'quay.io/biocontainers/dsh-bio:2.0.8--hdfd78af_0' }" input: tuple val(meta), path(bed) diff --git a/modules/dshbio/filtergff3/main.nf b/modules/dshbio/filtergff3/main.nf index 0539bbe0..c6736a49 100644 --- a/modules/dshbio/filtergff3/main.nf +++ b/modules/dshbio/filtergff3/main.nf @@ -2,10 +2,10 @@ process DSHBIO_FILTERGFF3 { tag "${meta.id}" label 'process_medium' - conda (params.enable_conda ? "bioconda::dsh-bio=2.0.7" : null) + conda (params.enable_conda ? "bioconda::dsh-bio=2.0.8" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.7--hdfd78af_0' : - 'quay.io/biocontainers/dsh-bio:2.0.7--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.8--hdfd78af_0' : + 'quay.io/biocontainers/dsh-bio:2.0.8--hdfd78af_0' }" input: tuple val(meta), path(gff3) diff --git a/modules/dshbio/splitbed/main.nf b/modules/dshbio/splitbed/main.nf index 824c7e4d..9268b5dc 100644 --- a/modules/dshbio/splitbed/main.nf +++ b/modules/dshbio/splitbed/main.nf @@ -2,10 +2,10 @@ process DSHBIO_SPLITBED { tag "${meta.id}" label 'process_medium' - conda (params.enable_conda ? "bioconda::dsh-bio=2.0.7" : null) + conda (params.enable_conda ? "bioconda::dsh-bio=2.0.8" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.7--hdfd78af_0' : - 'quay.io/biocontainers/dsh-bio:2.0.7--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.8--hdfd78af_0' : + 'quay.io/biocontainers/dsh-bio:2.0.8--hdfd78af_0' }" input: tuple val(meta), path(bed) diff --git a/modules/dshbio/splitgff3/main.nf b/modules/dshbio/splitgff3/main.nf index 424bc368..db887bd6 100644 --- a/modules/dshbio/splitgff3/main.nf +++ b/modules/dshbio/splitgff3/main.nf @@ -2,10 +2,10 @@ process DSHBIO_SPLITGFF3 { tag "${meta.id}" label 'process_medium' - conda (params.enable_conda ? "bioconda::dsh-bio=2.0.7" : null) + conda (params.enable_conda ? "bioconda::dsh-bio=2.0.8" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.7--hdfd78af_0' : - 'quay.io/biocontainers/dsh-bio:2.0.7--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/dsh-bio:2.0.8--hdfd78af_0' : + 'quay.io/biocontainers/dsh-bio:2.0.8--hdfd78af_0' }" input: tuple val(meta), path(gff3) From 897c33d5da084b61109500ee44c01da2d3e4e773 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Mon, 11 Apr 2022 14:26:28 +0200 Subject: [PATCH 162/592] Samtools version update (#1507) * Fix typo * update version to 1.15.1 * Fix md5sums * update mulled containers * update md5sums * update md5sums --- modules/bbmap/align/main.nf | 6 +++--- modules/bbmap/pileup/main.nf | 6 +++--- modules/bowtie/align/main.nf | 6 +++--- modules/bowtie2/align/main.nf | 6 +++--- modules/bwa/mem/main.nf | 6 +++--- modules/bwa/sampe/main.nf | 6 +++--- modules/bwa/samse/main.nf | 6 +++--- modules/bwamem2/mem/main.nf | 6 +++--- modules/chromap/chromap/main.nf | 6 +++--- modules/dragmap/align/main.nf | 6 +++--- modules/hisat2/align/main.nf | 6 +++--- modules/qualimap/bamqccram/main.nf | 6 +++--- modules/samblaster/main.nf | 6 +++--- modules/samtools/ampliconclip/main.nf | 6 +++--- modules/samtools/bam2fq/main.nf | 6 +++--- modules/samtools/depth/main.nf | 6 +++--- modules/samtools/faidx/main.nf | 6 +++--- modules/samtools/fastq/main.nf | 6 +++--- modules/samtools/fixmate/main.nf | 6 +++--- modules/samtools/flagstat/main.nf | 6 +++--- modules/samtools/idxstats/main.nf | 6 +++--- modules/samtools/index/main.nf | 6 +++--- modules/samtools/merge/main.nf | 6 +++--- modules/samtools/mpileup/main.nf | 7 +++---- modules/samtools/sort/main.nf | 6 +++--- modules/samtools/stats/main.nf | 6 +++--- modules/samtools/view/main.nf | 6 +++--- modules/star/genomegenerate/main.nf | 6 +++--- modules/yara/mapper/main.nf | 6 +++--- tests/modules/bbmap/align/test.yml | 8 ++++---- tests/modules/bbmap/pileup/test.yml | 2 +- tests/modules/bwa/sampe/test.yml | 2 +- tests/modules/bwa/samse/test.yml | 2 +- tests/modules/chromap/chromap/test.yml | 5 +---- tests/modules/samblaster/test.yml | 2 +- tests/modules/samtools/ampliconclip/test.yml | 10 +++++----- tests/modules/samtools/faidx/test.yml | 1 - tests/modules/samtools/fixmate/test.yml | 2 +- tests/modules/samtools/mpileup/test.yml | 2 -- tests/modules/samtools/sort/test.yml | 2 +- tests/modules/samtools/stats/test.yml | 4 ++-- 41 files changed, 105 insertions(+), 112 deletions(-) diff --git a/modules/bbmap/align/main.nf b/modules/bbmap/align/main.nf index 914399c5..aa1fbe1a 100644 --- a/modules/bbmap/align/main.nf +++ b/modules/bbmap/align/main.nf @@ -2,10 +2,10 @@ process BBMAP_ALIGN { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bbmap=38.92 bioconda::samtools=1.13 pigz=2.6" : null) + conda (params.enable_conda ? "bioconda::bbmap=38.92 bioconda::samtools=1.15.1 pigz=2.6" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:f5f55fc5623bb7b3f725e8d2f86bedacfd879510-0' : - 'quay.io/biocontainers/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:f5f55fc5623bb7b3f725e8d2f86bedacfd879510-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:2fee0e0facec1dfe32a1ee4aa516aef7d0296ebf-0' : + 'quay.io/biocontainers/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:2fee0e0facec1dfe32a1ee4aa516aef7d0296ebf-0' }" input: tuple val(meta), path(fastq) diff --git a/modules/bbmap/pileup/main.nf b/modules/bbmap/pileup/main.nf index 8d424bc2..1f34efc5 100644 --- a/modules/bbmap/pileup/main.nf +++ b/modules/bbmap/pileup/main.nf @@ -2,10 +2,10 @@ process BBMAP_PILEUP { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bbmap=38.92 bioconda::samtools=1.13 pigz=2.6" : null) + conda (params.enable_conda ? "bioconda::bbmap=38.92 bioconda::samtools=1.15.1 pigz=2.6" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:f5f55fc5623bb7b3f725e8d2f86bedacfd879510-0' : - 'quay.io/biocontainers/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:f5f55fc5623bb7b3f725e8d2f86bedacfd879510-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:2fee0e0facec1dfe32a1ee4aa516aef7d0296ebf-0' : + 'quay.io/biocontainers/mulled-v2-008daec56b7aaf3f162d7866758142b9f889d690:2fee0e0facec1dfe32a1ee4aa516aef7d0296ebf-0' }" input: tuple val(meta), path(bam) diff --git a/modules/bowtie/align/main.nf b/modules/bowtie/align/main.nf index ba82b67d..d2cba0e4 100644 --- a/modules/bowtie/align/main.nf +++ b/modules/bowtie/align/main.nf @@ -2,10 +2,10 @@ process BOWTIE_ALIGN { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? 'bioconda::bowtie=1.3.0 bioconda::samtools=1.11' : null) + conda (params.enable_conda ? 'bioconda::bowtie=1.3.0 bioconda::samtools=1.15.1' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-ffbf83a6b0ab6ec567a336cf349b80637135bca3:9e14e16c284d6860574cf5b624bbc44c793cb024-0' : - 'quay.io/biocontainers/mulled-v2-ffbf83a6b0ab6ec567a336cf349b80637135bca3:9e14e16c284d6860574cf5b624bbc44c793cb024-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-ffbf83a6b0ab6ec567a336cf349b80637135bca3:676c5bcfe34af6097728fea60fb7ea83f94a4a5f-0' : + 'quay.io/biocontainers/mulled-v2-ffbf83a6b0ab6ec567a336cf349b80637135bca3:676c5bcfe34af6097728fea60fb7ea83f94a4a5f-0' }" input: tuple val(meta), path(reads) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index 7e8a9659..44ce76ca 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -2,10 +2,10 @@ process BOWTIE2_ALIGN { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? 'bioconda::bowtie2=2.4.4 bioconda::samtools=1.14 conda-forge::pigz=2.6' : null) + conda (params.enable_conda ? 'bioconda::bowtie2=2.4.4 bioconda::samtools=1.15.1 conda-forge::pigz=2.6' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:4d235f41348a00533f18e47c9669f1ecb327f629-0' : - 'quay.io/biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:4d235f41348a00533f18e47c9669f1ecb327f629-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0' : + 'quay.io/biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0' }" input: tuple val(meta), path(reads) diff --git a/modules/bwa/mem/main.nf b/modules/bwa/mem/main.nf index 27ea6f42..ffa51908 100644 --- a/modules/bwa/mem/main.nf +++ b/modules/bwa/mem/main.nf @@ -2,10 +2,10 @@ process BWA_MEM { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' : - 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' : + 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' }" input: tuple val(meta), path(reads) diff --git a/modules/bwa/sampe/main.nf b/modules/bwa/sampe/main.nf index 73345d81..cfe9529d 100644 --- a/modules/bwa/sampe/main.nf +++ b/modules/bwa/sampe/main.nf @@ -2,10 +2,10 @@ process BWA_SAMPE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' : - 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' : + 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' }" input: tuple val(meta), path(reads), path(sai) diff --git a/modules/bwa/samse/main.nf b/modules/bwa/samse/main.nf index 2c327d99..fed412f2 100644 --- a/modules/bwa/samse/main.nf +++ b/modules/bwa/samse/main.nf @@ -2,10 +2,10 @@ process BWA_SAMSE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::bwa=0.7.17 bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' : - 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:c56a3aabc8d64e52d5b9da1e8ecec2031668596d-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' : + 'quay.io/biocontainers/mulled-v2-fe8faa35dbf6dc65a0f7f5d4ea12e31a79f73e40:8110a70be2bfe7f75a2ea7f2a89cda4cc7732095-0' }" input: tuple val(meta), path(reads), path(sai) diff --git a/modules/bwamem2/mem/main.nf b/modules/bwamem2/mem/main.nf index e3a3d164..50d84cb0 100644 --- a/modules/bwamem2/mem/main.nf +++ b/modules/bwamem2/mem/main.nf @@ -2,10 +2,10 @@ process BWAMEM2_MEM { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::bwa-mem2=2.2.1 bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::bwa-mem2=2.2.1 bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:8ee25ae85d7a2bacac3e3139db209aff3d605a18-0' : - 'quay.io/biocontainers/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:8ee25ae85d7a2bacac3e3139db209aff3d605a18-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:38aed4501da19db366dc7c8d52d31d94e760cfaf-0' : + 'quay.io/biocontainers/mulled-v2-e5d375990341c5aef3c9aff74f96f66f65375ef6:38aed4501da19db366dc7c8d52d31d94e760cfaf-0' }" input: tuple val(meta), path(reads) diff --git a/modules/chromap/chromap/main.nf b/modules/chromap/chromap/main.nf index bf3d1234..137f0340 100644 --- a/modules/chromap/chromap/main.nf +++ b/modules/chromap/chromap/main.nf @@ -2,10 +2,10 @@ process CHROMAP_CHROMAP { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::chromap=0.2.1 bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::chromap=0.2.1 bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:bd74d08a359024829a7aec1638a28607bbcd8a58-0' : - 'quay.io/biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:bd74d08a359024829a7aec1638a28607bbcd8a58-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:963e4fe6a85c548a4018585660aed79780a175d3-0' : + 'quay.io/biocontainers/mulled-v2-1f09f39f20b1c4ee36581dc81cc323c70e661633:963e4fe6a85c548a4018585660aed79780a175d3-0' }" input: tuple val(meta), path(reads) diff --git a/modules/dragmap/align/main.nf b/modules/dragmap/align/main.nf index ee94a9a8..b7f1e33b 100644 --- a/modules/dragmap/align/main.nf +++ b/modules/dragmap/align/main.nf @@ -2,10 +2,10 @@ process DRAGMAP_ALIGN { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::dragmap=1.2.1 bioconda::samtools=1.14 conda-forge::pigz=2.3.4" : null) + conda (params.enable_conda ? "bioconda::dragmap=1.2.1 bioconda::samtools=1.15.1 conda-forge::pigz=2.3.4" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-580d344d9d4a496cd403932da8765f9e0187774d:f7aad9060cde739c95685fc5ff6d6f7e3ec629c8-0': - 'quay.io/biocontainers/mulled-v2-580d344d9d4a496cd403932da8765f9e0187774d:f7aad9060cde739c95685fc5ff6d6f7e3ec629c8-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-580d344d9d4a496cd403932da8765f9e0187774d:5ebebbc128cd624282eaa37d2c7fe01505a91a69-0': + 'quay.io/biocontainers/mulled-v2-580d344d9d4a496cd403932da8765f9e0187774d:5ebebbc128cd624282eaa37d2c7fe01505a91a69-0' }" input: tuple val(meta), path(reads) diff --git a/modules/hisat2/align/main.nf b/modules/hisat2/align/main.nf index 7f680018..0a45ce72 100644 --- a/modules/hisat2/align/main.nf +++ b/modules/hisat2/align/main.nf @@ -4,10 +4,10 @@ process HISAT2_ALIGN { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::hisat2=2.2.0 bioconda::samtools=1.10" : null) + conda (params.enable_conda ? "bioconda::hisat2=2.2.0 bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1:2880dd9d8ad0a7b221d4eacda9a818e92983128d-0' : - 'quay.io/biocontainers/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1:2880dd9d8ad0a7b221d4eacda9a818e92983128d-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1:0e773bb207600fcb4d38202226eb20a33c7909b6-0' : + 'quay.io/biocontainers/mulled-v2-a97e90b3b802d1da3d6958e0867610c718cb5eb1:0e773bb207600fcb4d38202226eb20a33c7909b6-0' }" input: tuple val(meta), path(reads) diff --git a/modules/qualimap/bamqccram/main.nf b/modules/qualimap/bamqccram/main.nf index ab3fd51a..e136b8e2 100644 --- a/modules/qualimap/bamqccram/main.nf +++ b/modules/qualimap/bamqccram/main.nf @@ -2,10 +2,10 @@ process QUALIMAP_BAMQCCRAM { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::qualimap=2.2.2d bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::qualimap=2.2.2d bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:9838874d42d4477d5042782ee019cec9854da7d5-0' : - 'quay.io/biocontainers/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:9838874d42d4477d5042782ee019cec9854da7d5-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:61f6d4658ac88635fc37623af50bba77561988ab-0' : + 'quay.io/biocontainers/mulled-v2-d3934ca6bb4e61334891ffa2e9a4c87a530e3188:61f6d4658ac88635fc37623af50bba77561988ab-0' }" input: tuple val(meta), path(cram), path(crai) diff --git a/modules/samblaster/main.nf b/modules/samblaster/main.nf index c881389a..225c7152 100644 --- a/modules/samblaster/main.nf +++ b/modules/samblaster/main.nf @@ -2,10 +2,10 @@ process SAMBLASTER { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samblaster=0.1.26 bioconda::samtools=1.14" : null) + conda (params.enable_conda ? "bioconda::samblaster=0.1.26 bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-19fa9f1a5c3966b63a24166365e81da35738c5ab:ba4a02b56f3e524a6e006bcd99fe8cc1d7fe09eb-0' : - 'quay.io/biocontainers/mulled-v2-19fa9f1a5c3966b63a24166365e81da35738c5ab:ba4a02b56f3e524a6e006bcd99fe8cc1d7fe09eb-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-19fa9f1a5c3966b63a24166365e81da35738c5ab:fff03944e664bbf9a139f7b174b9cb2d4163271a-0' : + 'quay.io/biocontainers/mulled-v2-19fa9f1a5c3966b63a24166365e81da35738c5ab:fff03944e664bbf9a139f7b174b9cb2d4163271a-0' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/ampliconclip/main.nf b/modules/samtools/ampliconclip/main.nf index 4e76b1b4..2b90c953 100644 --- a/modules/samtools/ampliconclip/main.nf +++ b/modules/samtools/ampliconclip/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_AMPLICONCLIP { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/bam2fq/main.nf b/modules/samtools/bam2fq/main.nf index 8dd64dc0..5d6aa79d 100644 --- a/modules/samtools/bam2fq/main.nf +++ b/modules/samtools/bam2fq/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_BAM2FQ { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(inputbam) diff --git a/modules/samtools/depth/main.nf b/modules/samtools/depth/main.nf index 4870b2d8..e508a5f7 100644 --- a/modules/samtools/depth/main.nf +++ b/modules/samtools/depth/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_DEPTH { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/faidx/main.nf b/modules/samtools/faidx/main.nf index 053279ff..fdce7d9b 100644 --- a/modules/samtools/faidx/main.nf +++ b/modules/samtools/faidx/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FAIDX { tag "$fasta" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(fasta) diff --git a/modules/samtools/fastq/main.nf b/modules/samtools/fastq/main.nf index 6408d4a4..8d9b9d08 100644 --- a/modules/samtools/fastq/main.nf +++ b/modules/samtools/fastq/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FASTQ { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/fixmate/main.nf b/modules/samtools/fixmate/main.nf index 14c9db9f..f5e16f67 100644 --- a/modules/samtools/fixmate/main.nf +++ b/modules/samtools/fixmate/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FIXMATE { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/flagstat/main.nf b/modules/samtools/flagstat/main.nf index 9e3440ac..b87b2108 100644 --- a/modules/samtools/flagstat/main.nf +++ b/modules/samtools/flagstat/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_FLAGSTAT { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/samtools/idxstats/main.nf b/modules/samtools/idxstats/main.nf index 7d5cee17..a49ff35f 100644 --- a/modules/samtools/idxstats/main.nf +++ b/modules/samtools/idxstats/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_IDXSTATS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/samtools/index/main.nf b/modules/samtools/index/main.nf index fff6e1b8..e04e63e8 100644 --- a/modules/samtools/index/main.nf +++ b/modules/samtools/index/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_INDEX { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(input) diff --git a/modules/samtools/merge/main.nf b/modules/samtools/merge/main.nf index 9f962a4b..bbf7e8fb 100644 --- a/modules/samtools/merge/main.nf +++ b/modules/samtools/merge/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_MERGE { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(input_files) diff --git a/modules/samtools/mpileup/main.nf b/modules/samtools/mpileup/main.nf index 474a2492..fcd498be 100644 --- a/modules/samtools/mpileup/main.nf +++ b/modules/samtools/mpileup/main.nf @@ -2,11 +2,10 @@ process SAMTOOLS_MPILEUP { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" - + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(input), path(intervals) path fasta diff --git a/modules/samtools/sort/main.nf b/modules/samtools/sort/main.nf index ba46f0c9..b4fc1cbe 100644 --- a/modules/samtools/sort/main.nf +++ b/modules/samtools/sort/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_SORT { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(bam) diff --git a/modules/samtools/stats/main.nf b/modules/samtools/stats/main.nf index 85cb64f3..bbdc3240 100644 --- a/modules/samtools/stats/main.nf +++ b/modules/samtools/stats/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_STATS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(input), path(input_index) diff --git a/modules/samtools/view/main.nf b/modules/samtools/view/main.nf index 75aad063..5f14fbbf 100644 --- a/modules/samtools/view/main.nf +++ b/modules/samtools/view/main.nf @@ -2,10 +2,10 @@ process SAMTOOLS_VIEW { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: tuple val(meta), path(input) diff --git a/modules/star/genomegenerate/main.nf b/modules/star/genomegenerate/main.nf index 50d280dd..e5568f1d 100644 --- a/modules/star/genomegenerate/main.nf +++ b/modules/star/genomegenerate/main.nf @@ -3,10 +3,10 @@ process STAR_GENOMEGENERATE { label 'process_high' // Note: 2.7X indices incompatible with AWS iGenomes. - conda (params.enable_conda ? "bioconda::star=2.7.9a bioconda::samtools=1.13 conda-forge::gawk=5.1.0" : null) + conda (params.enable_conda ? "bioconda::star=2.7.9a bioconda::samtools=1.15.1 conda-forge::gawk=5.1.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:a7908dfb0485a80ca94e4d17b0ac991532e4e989-0' : - 'quay.io/biocontainers/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:a7908dfb0485a80ca94e4d17b0ac991532e4e989-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:1c4c32d87798d425c970ececfbadd155e7560277-0' : + 'quay.io/biocontainers/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:1c4c32d87798d425c970ececfbadd155e7560277-0' }" input: path fasta diff --git a/modules/yara/mapper/main.nf b/modules/yara/mapper/main.nf index 15b39236..9497fe86 100644 --- a/modules/yara/mapper/main.nf +++ b/modules/yara/mapper/main.nf @@ -2,10 +2,10 @@ process YARA_MAPPER { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::yara=1.0.2 bioconda::samtools=1.12" : null) + conda (params.enable_conda ? "bioconda::yara=1.0.2 bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-f13549097a0d1ca36f9d4f017636fb3609f6c083:f794a548b8692f29264c8984ff116c2141b90d9e-0' : - 'quay.io/biocontainers/mulled-v2-f13549097a0d1ca36f9d4f017636fb3609f6c083:f794a548b8692f29264c8984ff116c2141b90d9e-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-f13549097a0d1ca36f9d4f017636fb3609f6c083:d6c969c1e20cc02a9234961c07a24bb0887f05ea-0' : + 'quay.io/biocontainers/mulled-v2-f13549097a0d1ca36f9d4f017636fb3609f6c083:d6c969c1e20cc02a9234961c07a24bb0887f05ea-0' }" input: tuple val(meta), path(reads) diff --git a/tests/modules/bbmap/align/test.yml b/tests/modules/bbmap/align/test.yml index d9f9a862..aa3a9c1c 100644 --- a/tests/modules/bbmap/align/test.yml +++ b/tests/modules/bbmap/align/test.yml @@ -5,7 +5,7 @@ - bbmap/align files: - path: output/bbmap/test.bam - md5sum: e0ec7f1eec537acf146fac1cbdd868d1 + md5sum: 8549040067d23949bddb6fe2ad211c92 - path: output/bbmap/test.bbmap.log - name: bbmap align paired end index ref @@ -15,7 +15,7 @@ - bbmap/align files: - path: output/bbmap/test.bam - md5sum: 345a72a0d58366d75dd263b107caa460 + md5sum: aeb842491ca6c7806aa7103b5223620f - path: output/bbmap/test.bbmap.log - name: bbmap align single end index ref @@ -25,7 +25,7 @@ - bbmap/align files: - path: output/bbmap/test.bam - md5sum: 95f690636581ce9b27cf8568c715ae4d + md5sum: b6a41cb344a343d46244d8f94eb66ec0 - path: output/bbmap/test.bbmap.log - name: bbmap align paired end index ref pigz @@ -35,5 +35,5 @@ - bbmap/align files: - path: output/bbmap/test.bam - md5sum: 441c4f196b9a82c7b224903538064308 + md5sum: 74944e24acccb8c5abc316dcdd623c84 - path: output/bbmap/test.bbmap.log diff --git a/tests/modules/bbmap/pileup/test.yml b/tests/modules/bbmap/pileup/test.yml index 84814a7a..272cdcf7 100644 --- a/tests/modules/bbmap/pileup/test.yml +++ b/tests/modules/bbmap/pileup/test.yml @@ -9,4 +9,4 @@ - path: "output/bbmap/test.coverage.hist.txt" md5sum: 96915920ef42ddc9483457dd4585a088 - path: output/bbmap/versions.yml - md5sum: 894acc38bdc167dc22851df15e5a8453 + md5sum: e2bc51873b24e7fea269b7c1501de060 diff --git a/tests/modules/bwa/sampe/test.yml b/tests/modules/bwa/sampe/test.yml index bf221ebc..c3eb42f8 100644 --- a/tests/modules/bwa/sampe/test.yml +++ b/tests/modules/bwa/sampe/test.yml @@ -5,4 +5,4 @@ - bwa/sampe files: - path: output/bwa/test.bam - md5sum: 01d1d71c88b6de07ed51d1d06e9e970b + md5sum: 67528d633a1a78e3d0e8d1486c1a960a diff --git a/tests/modules/bwa/samse/test.yml b/tests/modules/bwa/samse/test.yml index c45f69dc..3af39258 100644 --- a/tests/modules/bwa/samse/test.yml +++ b/tests/modules/bwa/samse/test.yml @@ -5,4 +5,4 @@ - bwa/samse files: - path: output/bwa/test.bam - md5sum: ddfa4a8f6b65d44704a2d9528abc7e79 + md5sum: 9a0ca9678a03e6fa4bda459c04c99bd6 diff --git a/tests/modules/chromap/chromap/test.yml b/tests/modules/chromap/chromap/test.yml index d76370b2..d089922a 100644 --- a/tests/modules/chromap/chromap/test.yml +++ b/tests/modules/chromap/chromap/test.yml @@ -8,7 +8,6 @@ - path: output/chromap/test.bed.gz md5sum: 25e40bde24c7b447292cd68573728694 - path: output/chromap/versions.yml - md5sum: d24cfc35ad958206a5bc5694221b4fae - name: chromap chromap test_chromap_chromap_paired_end command: nextflow run ./tests/modules/chromap/chromap -entry test_chromap_chromap_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/chromap/chromap/nextflow.config @@ -20,7 +19,6 @@ - path: output/chromap/test.bed.gz md5sum: 7cdc8448882b75811e0c784f5f20aef2 - path: output/chromap/versions.yml - md5sum: 68ffe268a9d460956de4aad2a55ffd68 - name: chromap chromap test_chromap_chromap_paired_bam command: nextflow run ./tests/modules/chromap/chromap -entry test_chromap_chromap_paired_bam -c ./tests/config/nextflow.config -c ./tests/modules/chromap/chromap/nextflow.config @@ -30,6 +28,5 @@ files: - path: output/chromap/genome.index - path: output/chromap/test.bam - md5sum: df467417407408e42992dc3dd15b22f5 + md5sum: 0cb45628d1abe4b4359650040c501aef - path: output/chromap/versions.yml - md5sum: ea732b4c6f1312d09745b66c3963dd3f diff --git a/tests/modules/samblaster/test.yml b/tests/modules/samblaster/test.yml index acc6d0f0..8a87bd50 100644 --- a/tests/modules/samblaster/test.yml +++ b/tests/modules/samblaster/test.yml @@ -4,4 +4,4 @@ - samblaster files: - path: output/samblaster/test.processed.bam - md5sum: 950f23d85f75be1cf872f45c0144bdf4 + md5sum: 3009528be9f69e7fc8951921583b0016 diff --git a/tests/modules/samtools/ampliconclip/test.yml b/tests/modules/samtools/ampliconclip/test.yml index e9947562..cfc10dd1 100644 --- a/tests/modules/samtools/ampliconclip/test.yml +++ b/tests/modules/samtools/ampliconclip/test.yml @@ -5,7 +5,7 @@ - samtools/ampliconclip files: - path: output/samtools/test.bam - md5sum: 5d0e8bc9e6059ef3a63ee6328a3935c7 + md5sum: d270363a7fb3d96be2df211099efc75b - name: samtools ampliconclip no stats with rejects command: nextflow run ./tests/modules/samtools/ampliconclip -entry test_samtools_ampliconclip_no_stats_with_rejects -c ./tests/config/nextflow.config -c ./tests/modules/samtools/ampliconclip/nextflow.config @@ -14,9 +14,9 @@ - samtools/ampliconclip files: - path: output/samtools/test.bam - md5sum: 2c998295d624c59620b7ffdb0cc080e2 + md5sum: e7c4e64c259212e1670f6de96a5549b4 - path: output/samtools/test.cliprejects.bam - md5sum: f3ebba8d91ad29cc4d2d00943e6f6bab + md5sum: b7c057b11950c2271a0c92236bee94b7 - name: samtools ampliconclip with stats with rejects command: nextflow run ./tests/modules/samtools/ampliconclip -entry test_samtools_ampliconclip_with_stats_with_rejects -c ./tests/config/nextflow.config -c ./tests/modules/samtools/ampliconclip/nextflow.config @@ -25,8 +25,8 @@ - samtools/ampliconclip files: - path: output/samtools/test.bam - md5sum: 87882973b425ab27aad6ef18faf11f25 + md5sum: e75992d4ff69cbaed9a089231be86b5e - path: output/samtools/test.cliprejects.bam - md5sum: eb5e186e1a69864dc2e99a290f02ff78 + md5sum: 729f03e7a2801d2c56c32bef8f3d6ead - path: output/samtools/test.clipstats.txt md5sum: fc23355e1743d47f2541f2cb1a7a0cda diff --git a/tests/modules/samtools/faidx/test.yml b/tests/modules/samtools/faidx/test.yml index 1a49a0d5..346d5a0b 100644 --- a/tests/modules/samtools/faidx/test.yml +++ b/tests/modules/samtools/faidx/test.yml @@ -7,4 +7,3 @@ - path: output/samtools/genome.fasta.fai md5sum: 9da2a56e2853dc8c0b86a9e7229c9fe5 - path: output/samtools/versions.yml - md5sum: 6a16b2148a0ab43e6d0506056e6a0409 diff --git a/tests/modules/samtools/fixmate/test.yml b/tests/modules/samtools/fixmate/test.yml index 59cd6b41..c233f947 100644 --- a/tests/modules/samtools/fixmate/test.yml +++ b/tests/modules/samtools/fixmate/test.yml @@ -5,4 +5,4 @@ - samtools/fixmate files: - path: output/samtools/test.bam - md5sum: c7f574bb0c469e0ccfecb6b7210e03c5 + md5sum: 13805ea1a9212496a8cb4ce395b25119 diff --git a/tests/modules/samtools/mpileup/test.yml b/tests/modules/samtools/mpileup/test.yml index 405263d1..c3d794d0 100644 --- a/tests/modules/samtools/mpileup/test.yml +++ b/tests/modules/samtools/mpileup/test.yml @@ -7,7 +7,6 @@ - path: output/samtools/test.mpileup md5sum: 958e6bead4103d72026f80153b6b5150 - path: output/samtools/versions.yml - md5sum: 26350e1e145451f0b807911db029861e - name: samtools mpileup test_samtools_mpileup_intervals command: nextflow run tests/modules/samtools/mpileup -entry test_samtools_mpileup_intervals -c tests/config/nextflow.config @@ -18,4 +17,3 @@ - path: output/samtools/test.mpileup md5sum: 958e6bead4103d72026f80153b6b5150 - path: output/samtools/versions.yml - md5sum: 11d8118a558efb9db6798453862d719c diff --git a/tests/modules/samtools/sort/test.yml b/tests/modules/samtools/sort/test.yml index 4535dd09..e7bfd598 100644 --- a/tests/modules/samtools/sort/test.yml +++ b/tests/modules/samtools/sort/test.yml @@ -5,4 +5,4 @@ - samtools/sort files: - path: output/samtools/test.sorted.bam - md5sum: a73238d6b896a3a946025d6b13fe9525 + md5sum: f00f5d392fd5c531e1fd528d9f57b32b diff --git a/tests/modules/samtools/stats/test.yml b/tests/modules/samtools/stats/test.yml index 44b7ef8c..304619ee 100644 --- a/tests/modules/samtools/stats/test.yml +++ b/tests/modules/samtools/stats/test.yml @@ -5,7 +5,7 @@ - samtools files: - path: output/samtools/test.paired_end.sorted.bam.stats - md5sum: 6e3ca28b3e98dade14992dd7ea5fc886 + md5sum: c1e9ad551281b0bca32be1c832d125af - name: samtools stats test_samtools_stats_cram command: nextflow run ./tests/modules/samtools/stats -entry test_samtools_stats_cram -c ./tests/config/nextflow.config -c ./tests/modules/samtools/stats/nextflow.config @@ -14,4 +14,4 @@ - samtools files: - path: output/samtools/test.paired_end.recalibrated.sorted.cram.stats - md5sum: 985455b573444c3743510d603ed41f8c + md5sum: 103cd7b19743c42dab9ce570144c6f36 From 2d38566eca4cc15142b2ffa7c11837569b39aece Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Tue, 12 Apr 2022 08:35:36 +0200 Subject: [PATCH 163/592] Add MEGAN/RMA2INFO (#1513) * fix: remove left-over unnecessary code * Add megan/rma2info * Attempt at fixing test * Right yml formatting * Get the versios reporting correct --- modules/megan/rma2info/main.nf | 38 +++++++++++++++ modules/megan/rma2info/meta.yml | 51 ++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/megan/rma2info/main.nf | 16 ++++++ tests/modules/megan/rma2info/nextflow.config | 9 ++++ tests/modules/megan/rma2info/test.yml | 12 +++++ 6 files changed, 130 insertions(+) create mode 100644 modules/megan/rma2info/main.nf create mode 100644 modules/megan/rma2info/meta.yml create mode 100644 tests/modules/megan/rma2info/main.nf create mode 100644 tests/modules/megan/rma2info/nextflow.config create mode 100644 tests/modules/megan/rma2info/test.yml diff --git a/modules/megan/rma2info/main.nf b/modules/megan/rma2info/main.nf new file mode 100644 index 00000000..80d1975d --- /dev/null +++ b/modules/megan/rma2info/main.nf @@ -0,0 +1,38 @@ +process MEGAN_RMA2INFO { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::megan=6.21.7" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/megan:6.21.7--h9ee0642_0': + 'quay.io/biocontainers/megan:6.21.7--h9ee0642_0' }" + + input: + tuple val(meta), path(rma6) + val(megan_summary) + + output: + tuple val(meta), path("*.txt.gz") , emit: txt + tuple val(meta), path("*.megan"), optional: true, emit: megan_summary + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def summary = megan_summary ? "-es ${prefix}.megan" : "" + """ + rma2info \\ + -i ${rma6} \\ + -o ${prefix}.txt.gz \\ + ${summary} \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + megan: \$(echo \$(rma2info 2>&1) | grep version | sed 's/.*version //g;s/, built.*//g') + END_VERSIONS + """ +} diff --git a/modules/megan/rma2info/meta.yml b/modules/megan/rma2info/meta.yml new file mode 100644 index 00000000..0f2d5a9b --- /dev/null +++ b/modules/megan/rma2info/meta.yml @@ -0,0 +1,51 @@ +name: "megan_rma2info" +description: Analyses an RMA file and exports information in text format +keywords: + - megan + - rma6 + - classification + - conversion +tools: + - "megan": + description: "A tool for studying the taxonomic content of a set of DNA reads" + homepage: "https://uni-tuebingen.de/fakultaeten/mathematisch-naturwissenschaftliche-fakultaet/fachbereiche/informatik/lehrstuehle/algorithms-in-bioinformatics/software/megan6/" + documentation: "https://software-ab.informatik.uni-tuebingen.de/download/megan6/welcome.html" + tool_dev_url: "https://github.com/husonlab/megan-ce" + doi: "10.1371/journal.pcbi.1004957" + licence: "['GPL >=3']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - rma6: + type: file + description: RMA6 file from MEGAN or MALT + pattern: "*.rma6" + - megan_summary: + type: boolean + description: Specify whether to generate an MEGAN summary file + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - txt: + type: file + description: Compressed text file + pattern: "*.txt.gz" + - megan_summary: + type: file + description: Optionally generated MEGAN summary file + pattern: "*.megan" + +authors: + - "@jfy133" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index c0e84cbc..94bf4e91 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1138,6 +1138,10 @@ megahit: - modules/megahit/** - tests/modules/megahit/** +megan/rma2info: + - modules/megan/rma2info/** + - tests/modules/megan/rma2info/** + meningotype: - modules/meningotype/** - tests/modules/meningotype/** diff --git a/tests/modules/megan/rma2info/main.nf b/tests/modules/megan/rma2info/main.nf new file mode 100644 index 00000000..edbe9a49 --- /dev/null +++ b/tests/modules/megan/rma2info/main.nf @@ -0,0 +1,16 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MEGAN_RMA2INFO } from '../../../../modules/megan/rma2info/main.nf' + +workflow test_megan_rma2info { + + input = [ + [ id:'test', single_end:false ], // meta map + file('https://github.com/nf-core/test-datasets/raw/a7e61654553887475a2f7178108587ecd9b54608/data/delete_me/malt/test.rma6', checkIfExists: true) + ] + megan_summary = true + + MEGAN_RMA2INFO ( input, megan_summary ) +} diff --git a/tests/modules/megan/rma2info/nextflow.config b/tests/modules/megan/rma2info/nextflow.config new file mode 100644 index 00000000..3fd8dcdb --- /dev/null +++ b/tests/modules/megan/rma2info/nextflow.config @@ -0,0 +1,9 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: MEGAN_RMA2INFO { + ext.args = "-c2c Taxonomy" + } + +} diff --git a/tests/modules/megan/rma2info/test.yml b/tests/modules/megan/rma2info/test.yml new file mode 100644 index 00000000..dc845bea --- /dev/null +++ b/tests/modules/megan/rma2info/test.yml @@ -0,0 +1,12 @@ +- name: megan rma2info test_megan_rma2info + command: nextflow run tests/modules/megan/rma2info -entry test_megan_rma2info -c tests/config/nextflow.config + tags: + - megan + - megan/rma2info + files: + - path: output/megan/test.megan + contains: + - "@Creator" + - path: output/megan/test.txt.gz + md5sum: 5c3b876aa0abef12158bcd7c3702740f + - path: output/megan/versions.yml From ffedf09b6e84b479c9c901274f74bb33f3777243 Mon Sep 17 00:00:00 2001 From: FriederikeHanssen Date: Tue, 12 Apr 2022 10:40:06 +0200 Subject: [PATCH 164/592] Revert manta changes (#1518) * Fix typo * Revert to have target bed matched with sample info * Add comment on design decision --- modules/manta/germline/main.nf | 5 ++--- tests/modules/manta/germline/main.nf | 26 +++++++++++--------------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/modules/manta/germline/main.nf b/modules/manta/germline/main.nf index 5ddba51b..c680dc9d 100644 --- a/modules/manta/germline/main.nf +++ b/modules/manta/germline/main.nf @@ -8,11 +8,10 @@ process MANTA_GERMLINE { 'quay.io/biocontainers/manta:1.6.0--h9ee0642_1' }" input: - tuple val(meta), path(input), path(index) + //Matching the target bed with the input sample allows to parallelize the same sample run across different intervals or a single bed file + tuple val(meta), path(input), path(index), path(target_bed), path(target_bed_tbi) path fasta path fasta_fai - tuple path(target_bed), path(target_bed_tbi) - output: tuple val(meta), path("*candidate_small_indels.vcf.gz") , emit: candidate_small_indels_vcf diff --git a/tests/modules/manta/germline/main.nf b/tests/modules/manta/germline/main.nf index bad62629..5f6687b2 100644 --- a/tests/modules/manta/germline/main.nf +++ b/tests/modules/manta/germline/main.nf @@ -8,29 +8,27 @@ workflow test_manta_germline { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)], - [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)] + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)], + [],[] ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = [[],[]] - MANTA_GERMLINE ( input, fasta, fai, bed ) + MANTA_GERMLINE ( input, fasta, fai ) } workflow test_manta_germline_target_bed { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true)], - [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)] - ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = [ + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true)], file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true), ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - MANTA_GERMLINE ( input, fasta, fai, bed ) + MANTA_GERMLINE ( input, fasta, fai ) } workflow test_manta_germline_target_bed_jointcalling { @@ -39,14 +37,12 @@ workflow test_manta_germline_target_bed_jointcalling { [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram'], checkIfExists: true)], [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram_crai'], checkIfExists: true),] - ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - bed = [ + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_cram_crai'], checkIfExists: true),], file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true), file(params.test_data['homo_sapiens']['genome']['genome_bed_gz_tbi'], checkIfExists: true), ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - MANTA_GERMLINE ( input, fasta, fai, bed ) + MANTA_GERMLINE ( input, fasta, fai ) } From 09125979cce65350cf50948cf4233a6ce2804bec Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Tue, 12 Apr 2022 11:02:10 +0200 Subject: [PATCH 165/592] Tool/snap aligner paired (#1509) * first commit * edit main.nf * edit tests * run prettier * fix test * indent script * Update modules/snapaligner/paired/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/snapaligner/paired/meta.yml Co-authored-by: James A. Fellows Yates * fix version nr * update meta * fix versions Co-authored-by: James A. Fellows Yates --- modules/snapaligner/paired/main.nf | 41 ++++++++++++++++ modules/snapaligner/paired/meta.yml | 48 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/snapaligner/paired/main.nf | 17 +++++++ .../snapaligner/paired/nextflow.config | 5 ++ tests/modules/snapaligner/paired/test.yml | 9 ++++ 6 files changed, 124 insertions(+) create mode 100644 modules/snapaligner/paired/main.nf create mode 100644 modules/snapaligner/paired/meta.yml create mode 100644 tests/modules/snapaligner/paired/main.nf create mode 100644 tests/modules/snapaligner/paired/nextflow.config create mode 100644 tests/modules/snapaligner/paired/test.yml diff --git a/modules/snapaligner/paired/main.nf b/modules/snapaligner/paired/main.nf new file mode 100644 index 00000000..57044893 --- /dev/null +++ b/modules/snapaligner/paired/main.nf @@ -0,0 +1,41 @@ +process SNAPALIGNER_PAIRED { + tag '$meta.id' + label 'process_high' + + conda (params.enable_conda ? "bioconda::snap-aligner=2.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/snap-aligner:2.0.1--hd03093a_1': + 'quay.io/biocontainers/snap-aligner:2.0.1--hd03093a_1' }" + + input: + tuple val(meta), path(reads) + path index + + output: + tuple val(meta), path("*.bam"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + mkdir -p index + mv $index index/ + + snap-aligner paired \\ + index \\ + ${reads.join(" ")} \\ + -o -bam ${prefix}.bam \\ + -t ${task.cpus} \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + snapaligner: \$(snap-aligner 2>&1| head -n 1 | sed 's/^.*version //;s/.\$//') + END_VERSIONS + """ +} diff --git a/modules/snapaligner/paired/meta.yml b/modules/snapaligner/paired/meta.yml new file mode 100644 index 00000000..b19e0174 --- /dev/null +++ b/modules/snapaligner/paired/meta.yml @@ -0,0 +1,48 @@ +name: "snapaligner_paired" +description: Performs paired end fastq alignment to a fasta reference using SNAP +keywords: + - alignment + - map + - fastq + - bam + - sam +tools: + - "snapaligner": + description: "Scalable Nucleotide Alignment Program -- a fast and accurate read aligner for high-throughput sequencing data" + homepage: "http://snap.cs.berkeley.edu" + documentation: "https://1drv.ms/b/s!AhuEg_0yZD86hcpblUt-muHKYsG8fA?e=R8ogug" + tool_dev_url: "https://github.com/amplab/snap" + doi: "10.1101/2021.11.23.469039" + licence: "['Apache v2']" +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: List of input fastq files of size 2 for fastq or 1 for bam + pattern: "*.{fastq.gz,fq.gz,fastq,fq,bam}" + - index: + type: file + description: List of SNAP genome index files + pattern: "{Genome,GenomeIndex,GenomeIndexHash,OverflowTable}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bam: + type: file + description: Aligned BAM file + pattern: "*.{bam}" + +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 94bf4e91..b195968f 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1675,6 +1675,10 @@ snapaligner/index: - modules/snapaligner/index/** - tests/modules/snapaligner/index/** +snapaligner/paired: + - modules/snapaligner/paired/** + - tests/modules/snapaligner/paired/** + snpdists: - modules/snpdists/** - tests/modules/snpdists/** diff --git a/tests/modules/snapaligner/paired/main.nf b/tests/modules/snapaligner/paired/main.nf new file mode 100644 index 00000000..b25ca8c2 --- /dev/null +++ b/tests/modules/snapaligner/paired/main.nf @@ -0,0 +1,17 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SNAPALIGNER_INDEX } from '../../../../modules/snapaligner/index/main.nf' +include { SNAPALIGNER_PAIRED } from '../../../../modules/snapaligner/paired/main.nf' + +workflow test_snapaligner_paired { + + input = [ + [ id:'test', single_end:false ], // meta map + [file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true)] + ] + + SNAPALIGNER_INDEX ( file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true),[],[],[]) + SNAPALIGNER_PAIRED ( input, SNAPALIGNER_INDEX.out.index ) +} diff --git a/tests/modules/snapaligner/paired/nextflow.config b/tests/modules/snapaligner/paired/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/snapaligner/paired/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/snapaligner/paired/test.yml b/tests/modules/snapaligner/paired/test.yml new file mode 100644 index 00000000..7df1e02b --- /dev/null +++ b/tests/modules/snapaligner/paired/test.yml @@ -0,0 +1,9 @@ +- name: snapaligner paired test_snapaligner_paired + command: nextflow run tests/modules/snapaligner/paired -entry test_snapaligner_paired -c tests/config/nextflow.config + tags: + - snapaligner + - snapaligner/paired + files: + - path: output/snapaligner/test.bam + md5sum: 2ac92e9539fa246dd6db52b5de56fca5 + - path: output/snapaligner/versions.yml From b59713e6230cd5966d176cfd23288074612ede8f Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Tue, 12 Apr 2022 11:20:35 +0200 Subject: [PATCH 166/592] Tool/snap aligner single (#1510) * first commit * add tool * fix tests * fix indents * Update modules/snapaligner/single/meta.yml Co-authored-by: James A. Fellows Yates * fix comments * fix versions * prettier Co-authored-by: James A. Fellows Yates --- modules/snapaligner/single/main.nf | 41 ++++++++++++++++ modules/snapaligner/single/meta.yml | 48 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/snapaligner/single/main.nf | 17 +++++++ .../snapaligner/single/nextflow.config | 5 ++ tests/modules/snapaligner/single/test.yml | 9 ++++ 6 files changed, 124 insertions(+) create mode 100644 modules/snapaligner/single/main.nf create mode 100644 modules/snapaligner/single/meta.yml create mode 100644 tests/modules/snapaligner/single/main.nf create mode 100644 tests/modules/snapaligner/single/nextflow.config create mode 100644 tests/modules/snapaligner/single/test.yml diff --git a/modules/snapaligner/single/main.nf b/modules/snapaligner/single/main.nf new file mode 100644 index 00000000..b13e1153 --- /dev/null +++ b/modules/snapaligner/single/main.nf @@ -0,0 +1,41 @@ +process SNAPALIGNER_SINGLE { + tag '$meta.id' + label 'process_high' + + conda (params.enable_conda ? "bioconda::snap-aligner=2.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/snap-aligner:2.0.1--hd03093a_1': + 'quay.io/biocontainers/snap-aligner:2.0.1--hd03093a_1' }" + + input: + tuple val(meta), path(reads) + path index + + output: + tuple val(meta), path("*.bam"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + mkdir -p index + mv $index index/ + + snap-aligner single \\ + index \\ + ${reads.join(" ")} \\ + -o -bam ${prefix}.bam \\ + -t ${task.cpus} \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + snapaligner: \$(snap-aligner 2>&1| head -n 1 | sed 's/^.*version //;s/.\$//') + END_VERSIONS + """ +} diff --git a/modules/snapaligner/single/meta.yml b/modules/snapaligner/single/meta.yml new file mode 100644 index 00000000..e69cc721 --- /dev/null +++ b/modules/snapaligner/single/meta.yml @@ -0,0 +1,48 @@ +name: "snapaligner_single" +description: Performs single end fastq alignment to a fasta reference using SNAP +keywords: + - alignment + - map + - fastq + - bam + - sam +tools: + - "snapaligner": + description: "Scalable Nucleotide Alignment Program -- a fast and accurate read aligner for high-throughput sequencing data" + homepage: "http://snap.cs.berkeley.edu" + documentation: "https://1drv.ms/b/s!AhuEg_0yZD86hcpblUt-muHKYsG8fA?e=R8ogug" + tool_dev_url: "https://github.com/amplab/snap" + doi: "10.1101/2021.11.23.469039" + licence: "['Apache v2']" +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: List of single end input files + pattern: "*.{fastq.gz,fq.gz,fastq,fq,bam}" + - index: + type: file + description: List of SNAP genome index files + pattern: "{Genome,GenomeIndex,GenomeIndexHash,OverflowTable}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bam: + type: file + description: Aligned BAM file + pattern: "*.{bam}" + +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index b195968f..cd4913cf 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1679,6 +1679,10 @@ snapaligner/paired: - modules/snapaligner/paired/** - tests/modules/snapaligner/paired/** +snapaligner/single: + - modules/snapaligner/single/** + - tests/modules/snapaligner/single/** + snpdists: - modules/snpdists/** - tests/modules/snpdists/** diff --git a/tests/modules/snapaligner/single/main.nf b/tests/modules/snapaligner/single/main.nf new file mode 100644 index 00000000..616e517a --- /dev/null +++ b/tests/modules/snapaligner/single/main.nf @@ -0,0 +1,17 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SNAPALIGNER_INDEX } from '../../../../modules/snapaligner/index/main.nf' +include { SNAPALIGNER_SINGLE } from '../../../../modules/snapaligner/single/main.nf' + +workflow test_snapaligner_single { + + input = [ + [ id:'test', single_end:false ], // meta map + [file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)] + ] + + SNAPALIGNER_INDEX ( file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true),[],[],[]) + SNAPALIGNER_SINGLE ( input, SNAPALIGNER_INDEX.out.index ) +} diff --git a/tests/modules/snapaligner/single/nextflow.config b/tests/modules/snapaligner/single/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/snapaligner/single/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/snapaligner/single/test.yml b/tests/modules/snapaligner/single/test.yml new file mode 100644 index 00000000..bbcbba1f --- /dev/null +++ b/tests/modules/snapaligner/single/test.yml @@ -0,0 +1,9 @@ +- name: snapaligner single test_snapaligner_single + command: nextflow run tests/modules/snapaligner/single -entry test_snapaligner_single -c tests/config/nextflow.config + tags: + - snapaligner/single + - snapaligner + files: + - path: output/snapaligner/test.bam + md5sum: 696f7ea8e1aa5f9d7dafb9d0134fe25d + - path: output/snapaligner/versions.yml From 409af2f27cbe45109acc7fee70718d2bf20aa449 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Tue, 12 Apr 2022 17:15:39 +0200 Subject: [PATCH 167/592] Improve syntax/logic coherence in all gatk4 plugins (#1459) * feat: code polishing * Apply suggestions from code review Co-authored-by: FriederikeHanssen * code polishing * more code polishing * code polishing * tests for applybqsrspark * fix typo * no need to check md5sum for versions.yml * fix: use correct syntax * code polishing again * add tests for markduplicatesspark * simplify mergevcfs tests * add tests for baserecalibratorspark * fix: path to entry * code polishing * fix linting * simplify module * update meta.yml * fix pair mode * fix: MITO mode * more tests * fix command * bad copy paste * fix typos * fix tests * fix test * update meta.yml * correct versions.yml in all test.yml * code polishing * code polishing * more code polishing * fix args * add tmpdir for all Co-authored-by: FriederikeHanssen --- modules/gatk4/applybqsr/main.nf | 15 +- modules/gatk4/applybqsr/meta.yml | 4 + modules/gatk4/applybqsrspark/main.nf | 51 +++++++ modules/gatk4/applybqsrspark/meta.yml | 72 ++++++++++ modules/gatk4/applyvqsr/main.nf | 23 ++-- modules/gatk4/applyvqsr/meta.yml | 8 +- modules/gatk4/baserecalibrator/main.nf | 33 +++-- modules/gatk4/baserecalibrator/meta.yml | 10 +- modules/gatk4/baserecalibratorspark/main.nf | 53 +++++++ modules/gatk4/baserecalibratorspark/meta.yml | 72 ++++++++++ modules/gatk4/bedtointervallist/main.nf | 10 +- modules/gatk4/calculatecontamination/main.nf | 11 +- modules/gatk4/calculatecontamination/meta.yml | 6 +- modules/gatk4/combinegvcfs/main.nf | 24 ++-- modules/gatk4/combinegvcfs/meta.yml | 32 +++-- .../gatk4/createsequencedictionary/main.nf | 9 +- .../gatk4/createsomaticpanelofnormals/main.nf | 17 +-- .../createsomaticpanelofnormals/meta.yml | 2 +- .../gatk4/estimatelibrarycomplexity/main.nf | 24 ++-- .../gatk4/estimatelibrarycomplexity/meta.yml | 3 +- modules/gatk4/fastqtosam/main.nf | 10 +- modules/gatk4/fastqtosam/meta.yml | 8 +- modules/gatk4/filtermutectcalls/main.nf | 39 +++--- modules/gatk4/filtermutectcalls/meta.yml | 13 +- modules/gatk4/gatherbqsrreports/main.nf | 15 +- modules/gatk4/gatherbqsrreports/meta.yml | 10 +- modules/gatk4/gatherpileupsummaries/main.nf | 17 +-- modules/gatk4/gatherpileupsummaries/meta.yml | 9 +- modules/gatk4/genomicsdbimport/main.nf | 37 ++--- modules/gatk4/genotypegvcfs/main.nf | 29 ++-- modules/gatk4/genotypegvcfs/meta.yml | 20 ++- modules/gatk4/getpileupsummaries/main.nf | 27 ++-- modules/gatk4/haplotypecaller/main.nf | 35 +++-- modules/gatk4/indexfeaturefile/main.nf | 9 +- modules/gatk4/intervallisttobed/main.nf | 5 +- modules/gatk4/intervallisttools/main.nf | 13 +- .../gatk4/learnreadorientationmodel/main.nf | 12 +- modules/gatk4/markduplicates/main.nf | 10 +- modules/gatk4/markduplicates/meta.yml | 1 + modules/gatk4/markduplicatesspark/main.nf | 50 +++++++ modules/gatk4/markduplicatesspark/meta.yml | 60 ++++++++ modules/gatk4/mergebamalignment/main.nf | 10 +- modules/gatk4/mergemutectstats/main.nf | 8 +- modules/gatk4/mergevcfs/main.nf | 20 ++- modules/gatk4/mutect2/main.nf | 44 ++---- modules/gatk4/mutect2/meta.yml | 16 --- modules/gatk4/revertsam/main.nf | 6 +- modules/gatk4/samtofastq/main.nf | 6 +- modules/gatk4/selectvariants/main.nf | 6 +- modules/gatk4/splitncigarreads/main.nf | 8 +- modules/gatk4/variantfiltration/main.nf | 10 +- modules/gatk4/variantrecalibrator/main.nf | 23 ++-- tests/modules/gatk4/applybqsr/test.yml | 3 - tests/modules/gatk4/applybqsrspark/main.nf | 47 +++++++ .../gatk4/applybqsrspark/nextflow.config | 5 + tests/modules/gatk4/applybqsrspark/test.yml | 29 ++++ tests/modules/gatk4/applyvqsr/test.yml | 2 - tests/modules/gatk4/baserecalibrator/test.yml | 4 + .../gatk4/baserecalibratorspark/main.nf | 69 ++++++++++ .../baserecalibratorspark/nextflow.config | 5 + .../gatk4/baserecalibratorspark/test.yml | 39 ++++++ .../modules/gatk4/bedtointervallist/test.yml | 1 + .../gatk4/calculatecontamination/main.nf | 15 +- .../calculatecontamination/nextflow.config | 4 + .../gatk4/calculatecontamination/test.yml | 3 - tests/modules/gatk4/combinegvcfs/test.yml | 1 - .../gatk4/createsequencedictionary/test.yml | 1 + .../createsomaticpanelofnormals/test.yml | 1 + .../gatk4/estimatelibrarycomplexity/test.yml | 1 + tests/modules/gatk4/fastqtosam/test.yml | 2 - .../modules/gatk4/filtermutectcalls/test.yml | 3 + .../modules/gatk4/gatherbqsrreports/test.yml | 2 - .../gatk4/gatherpileupsummaries/test.yml | 1 + tests/modules/gatk4/genomicsdbimport/test.yml | 9 -- tests/modules/gatk4/genotypegvcfs/main.nf | 129 +++++++++--------- tests/modules/gatk4/genotypegvcfs/test.yml | 9 ++ .../modules/gatk4/getpileupsummaries/test.yml | 3 - tests/modules/gatk4/haplotypecaller/test.yml | 3 + tests/modules/gatk4/indexfeaturefile/test.yml | 4 +- .../modules/gatk4/intervallisttobed/test.yml | 1 + .../modules/gatk4/intervallisttools/test.yml | 1 + .../gatk4/learnreadorientationmodel/test.yml | 1 + .../gatk4/markduplicates/nextflow.config | 4 + tests/modules/gatk4/markduplicates/test.yml | 2 - .../modules/gatk4/markduplicatesspark/main.nf | 28 ++++ .../gatk4/markduplicatesspark/nextflow.config | 5 + .../gatk4/markduplicatesspark/test.yml | 25 ++++ .../modules/gatk4/mergebamalignment/test.yml | 1 + tests/modules/gatk4/mergemutectstats/test.yml | 1 + tests/modules/gatk4/mergevcfs/main.nf | 24 ++-- tests/modules/gatk4/mergevcfs/test.yml | 6 +- tests/modules/gatk4/mutect2/main.nf | 81 +++++------ tests/modules/gatk4/mutect2/nextflow.config | 12 ++ tests/modules/gatk4/mutect2/test.yml | 16 +++ tests/modules/gatk4/revertsam/test.yml | 1 + tests/modules/gatk4/samtofastq/test.yml | 2 + tests/modules/gatk4/selectvariants/test.yml | 2 - tests/modules/gatk4/splitncigarreads/test.yml | 1 - .../modules/gatk4/variantfiltration/test.yml | 2 + .../modules/gatk4/variantrecalibrator/main.nf | 88 ++++++------ .../gatk4/variantrecalibrator/nextflow.config | 1 + .../gatk4/variantrecalibrator/test.yml | 2 + 102 files changed, 1209 insertions(+), 558 deletions(-) create mode 100644 modules/gatk4/applybqsrspark/main.nf create mode 100644 modules/gatk4/applybqsrspark/meta.yml create mode 100644 modules/gatk4/baserecalibratorspark/main.nf create mode 100644 modules/gatk4/baserecalibratorspark/meta.yml create mode 100644 modules/gatk4/markduplicatesspark/main.nf create mode 100644 modules/gatk4/markduplicatesspark/meta.yml create mode 100644 tests/modules/gatk4/applybqsrspark/main.nf create mode 100644 tests/modules/gatk4/applybqsrspark/nextflow.config create mode 100644 tests/modules/gatk4/applybqsrspark/test.yml create mode 100644 tests/modules/gatk4/baserecalibratorspark/main.nf create mode 100644 tests/modules/gatk4/baserecalibratorspark/nextflow.config create mode 100644 tests/modules/gatk4/baserecalibratorspark/test.yml create mode 100644 tests/modules/gatk4/markduplicatesspark/main.nf create mode 100644 tests/modules/gatk4/markduplicatesspark/nextflow.config create mode 100644 tests/modules/gatk4/markduplicatesspark/test.yml diff --git a/modules/gatk4/applybqsr/main.nf b/modules/gatk4/applybqsr/main.nf index 851afc04..7a64dab2 100644 --- a/modules/gatk4/applybqsr/main.nf +++ b/modules/gatk4/applybqsr/main.nf @@ -14,9 +14,9 @@ process GATK4_APPLYBQSR { path dict output: - tuple val(meta), path("*.bam"), emit: bam, optional: true + tuple val(meta), path("*.bam") , emit: bam, optional: true tuple val(meta), path("*.cram"), emit: cram, optional: true - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -24,8 +24,7 @@ process GATK4_APPLYBQSR { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def interval = intervals ? "-L ${intervals}" : "" - def file_type = input.getExtension() + def interval_command = intervals ? "--intervals $intervals" : "" def avail_mem = 3 if (!task.memory) { @@ -35,12 +34,12 @@ process GATK4_APPLYBQSR { } """ gatk --java-options "-Xmx${avail_mem}g" ApplyBQSR \\ - -R $fasta \\ - -I $input \\ + --input $input \\ + --output ${prefix}.${input.getExtension()} \\ + --reference $fasta \\ --bqsr-recal-file $bqsr_table \\ - $interval \\ + $interval_command \\ --tmp-dir . \\ - -O ${prefix}.${file_type} \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/applybqsr/meta.yml b/modules/gatk4/applybqsr/meta.yml index 82d3cbf3..3fc93f10 100644 --- a/modules/gatk4/applybqsr/meta.yml +++ b/modules/gatk4/applybqsr/meta.yml @@ -61,6 +61,10 @@ output: type: file description: Recalibrated BAM file pattern: "*.{bam}" + - cram: + type: file + description: Recalibrated CRAM file + pattern: "*.{cram}" authors: - "@yocra3" diff --git a/modules/gatk4/applybqsrspark/main.nf b/modules/gatk4/applybqsrspark/main.nf new file mode 100644 index 00000000..04303c09 --- /dev/null +++ b/modules/gatk4/applybqsrspark/main.nf @@ -0,0 +1,51 @@ +process GATK4_APPLYBQSR_SPARK { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::gatk4=4.2.3.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.3.0--hdfd78af_0' : + 'quay.io/biocontainers/gatk4:4.2.3.0--hdfd78af_0' }" + + input: + tuple val(meta), path(input), path(input_index), path(bqsr_table), path(intervals) + path fasta + path fai + path dict + + output: + tuple val(meta), path("*.bam") , emit: bam, optional: true + tuple val(meta), path("*.cram"), emit: cram, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def interval_command = intervals ? "--intervals $intervals" : "" + + def avail_mem = 3 + if (!task.memory) { + log.info '[GATK ApplyBQSRSpark] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + gatk --java-options "-Xmx${avail_mem}g" ApplyBQSRSpark \\ + --input $input \\ + --output ${prefix}.${input.getExtension()} \\ + --reference $fasta \\ + --bqsr-recal-file $bqsr_table \\ + $interval_command \\ + --spark-master local[${task.cpus}] \\ + --tmp-dir . \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/gatk4/applybqsrspark/meta.yml b/modules/gatk4/applybqsrspark/meta.yml new file mode 100644 index 00000000..070b37ab --- /dev/null +++ b/modules/gatk4/applybqsrspark/meta.yml @@ -0,0 +1,72 @@ +name: gatk4_applybqsr_spark +description: Apply base quality score recalibration (BQSR) to a bam file +keywords: + - bqsr + - bam +tools: + - gatk4: + description: | + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s + doi: 10.1158/1538-7445.AM2017-3590 + licence: ["Apache-2.0"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: BAM/CRAM file from alignment + pattern: "*.{bam,cram}" + - input_index: + type: file + description: BAI/CRAI file from alignment + pattern: "*.{bai,crai}" + - bqsr_table: + type: file + description: Recalibration table from gatk4_baserecalibrator + - intervals: + type: file + description: Bed file with the genomic regions included in the library (optional) + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" + - fai: + type: file + description: Index of reference fasta file + pattern: "*.fasta.fai" + - dict: + type: file + description: GATK sequence dictionary + pattern: "*.dict" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bam: + type: file + description: Recalibrated BAM file + pattern: "*.{bam}" + - cram: + type: file + description: Recalibrated CRAM file + pattern: "*.{cram}" + +authors: + - "@yocra3" + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/gatk4/applyvqsr/main.nf b/modules/gatk4/applyvqsr/main.nf index 3049aa79..8b235809 100644 --- a/modules/gatk4/applyvqsr/main.nf +++ b/modules/gatk4/applyvqsr/main.nf @@ -8,15 +8,15 @@ process GATK4_APPLYVQSR { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(vcf), path(tbi), path(recal), path(recalidx), path(tranches) - path fasta - path fai - path dict + tuple val(meta), path(vcf), path(vcf_tbi), path(recal), path(recal_index), path(tranches) + path fasta + path fai + path dict output: - tuple val(meta), path("*.vcf.gz") , emit: vcf - tuple val(meta), path("*.tbi") , emit: tbi - path "versions.yml" , emit: versions + tuple val(meta), path("*.vcf.gz"), emit: vcf + tuple val(meta), path("*.tbi") , emit: tbi + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -24,7 +24,7 @@ process GATK4_APPLYVQSR { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - refCommand = fasta ? "-R ${fasta} " : '' + def reference_command = fasta ? "--reference $fasta" : '' def avail_mem = 3 if (!task.memory) { @@ -34,11 +34,12 @@ process GATK4_APPLYVQSR { } """ gatk --java-options "-Xmx${avail_mem}g" ApplyVQSR \\ - ${refCommand} \\ - -V ${vcf} \\ - -O ${prefix}.vcf.gz \\ + --variant ${vcf} \\ + --output ${prefix}.vcf.gz \\ + $reference_command \\ --tranches-file $tranches \\ --recal-file $recal \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/applyvqsr/meta.yml b/modules/gatk4/applyvqsr/meta.yml index 4a99db45..a05813d1 100644 --- a/modules/gatk4/applyvqsr/meta.yml +++ b/modules/gatk4/applyvqsr/meta.yml @@ -29,20 +29,20 @@ input: type: file description: VCF file to be recalibrated, this should be the same file as used for the first stage VariantRecalibrator. pattern: "*.vcf" - - tbi: + - vcf_tbi: type: file - description: Tbi index for the input vcf file. + description: tabix index for the input vcf file. pattern: "*.vcf.tbi" - recal: type: file description: Recalibration file produced when the input vcf was run through VariantRecalibrator in stage 1. pattern: "*.recal" - - recalidx: + - recal_index: type: file description: Index file for the recalibration file. pattern: ".recal.idx" - tranches: - type: boolean + type: file description: Tranches file produced when the input vcf was run through VariantRecalibrator in stage 1. pattern: ".tranches" - fasta: diff --git a/modules/gatk4/baserecalibrator/main.nf b/modules/gatk4/baserecalibrator/main.nf index ecb41d9b..766a8338 100644 --- a/modules/gatk4/baserecalibrator/main.nf +++ b/modules/gatk4/baserecalibrator/main.nf @@ -9,15 +9,15 @@ process GATK4_BASERECALIBRATOR { input: tuple val(meta), path(input), path(input_index), path(intervals) - path fasta - path fai - path dict - path knownSites - path knownSites_tbi + path fasta + path fai + path dict + path known_sites + path known_sites_tbi output: tuple val(meta), path("*.table"), emit: table - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -25,8 +25,8 @@ process GATK4_BASERECALIBRATOR { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def intervalsCommand = intervals ? "-L ${intervals}" : "" - def sitesCommand = knownSites.collect{"--known-sites ${it}"}.join(' ') + def interval_command = intervals ? "--intervals $intervals" : "" + def sites_command = known_sites.collect{"--known-sites $it"}.join(' ') def avail_mem = 3 if (!task.memory) { @@ -34,16 +34,15 @@ process GATK4_BASERECALIBRATOR { } else { avail_mem = task.memory.giga } - """ - gatk --java-options "-Xmx${avail_mem}g" BaseRecalibrator \ - -R $fasta \ - -I $input \ - $sitesCommand \ - $intervalsCommand \ - --tmp-dir . \ - $args \ - -O ${prefix}.table + gatk --java-options "-Xmx${avail_mem}g" BaseRecalibrator \\ + --input $input \\ + --output ${prefix}.table \\ + --reference $fasta \\ + $interval_command \\ + $sites_command \\ + --tmp-dir . \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/gatk4/baserecalibrator/meta.yml b/modules/gatk4/baserecalibrator/meta.yml index 2e52b8ab..08c1ebbf 100644 --- a/modules/gatk4/baserecalibrator/meta.yml +++ b/modules/gatk4/baserecalibrator/meta.yml @@ -42,9 +42,14 @@ input: type: file description: GATK sequence dictionary pattern: "*.dict" - - knownSites: + - known_sites: type: file - description: Bed file with the genomic regions included in the library (optional) + description: VCF files with known sites for indels / snps (optional) + pattern: "*.vcf.gz" + - known_sites_tbi: + type: file + description: Tabix index of the known_sites (optional) + pattern: "*.vcf.gz.tbi" output: - meta: @@ -64,3 +69,4 @@ output: authors: - "@yocra3" - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/gatk4/baserecalibratorspark/main.nf b/modules/gatk4/baserecalibratorspark/main.nf new file mode 100644 index 00000000..70c70181 --- /dev/null +++ b/modules/gatk4/baserecalibratorspark/main.nf @@ -0,0 +1,53 @@ +process GATK4_BASERECALIBRATOR_SPARK { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::gatk4=4.2.3.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.3.0--hdfd78af_0' : + 'broadinstitute/gatk:4.2.3.0' }" + + input: + tuple val(meta), path(input), path(input_index), path(intervals) + path fasta + path fai + path dict + path known_sites + path known_sites_tbi + + output: + tuple val(meta), path("*.table"), emit: table + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def interval_command = intervals ? "--intervals $intervals" : "" + def sites_command = known_sites.collect{"--known-sites $it"}.join(' ') + + def avail_mem = 3 + if (!task.memory) { + log.info '[GATK BaseRecalibratorSpark] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + gatk --java-options "-Xmx${avail_mem}g" BaseRecalibratorSpark \\ + --input $input \\ + --output ${prefix}.table \\ + --reference $fasta \\ + $interval_command \\ + $sites_command \\ + --spark-master local[${task.cpus}] \\ + --tmp-dir . \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/gatk4/baserecalibratorspark/meta.yml b/modules/gatk4/baserecalibratorspark/meta.yml new file mode 100644 index 00000000..581c48ef --- /dev/null +++ b/modules/gatk4/baserecalibratorspark/meta.yml @@ -0,0 +1,72 @@ +name: gatk4_baserecalibrator_spark +description: Generate recalibration table for Base Quality Score Recalibration (BQSR) +keywords: + - sort +tools: + - gatk4: + description: | + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s + doi: 10.1158/1538-7445.AM2017-3590 + licence: ["Apache-2.0"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: BAM/CRAM file from alignment + pattern: "*.{bam,cram}" + - input_index: + type: file + description: BAI/CRAI file from alignment + pattern: "*.{bai,crai}" + - intervals: + type: file + description: Bed file with the genomic regions included in the library (optional) + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" + - fai: + type: file + description: Index of reference fasta file + pattern: "*.fasta.fai" + - dict: + type: file + description: GATK sequence dictionary + pattern: "*.dict" + - known_sites: + type: file + description: VCF files with known sites for indels / snps (optional) + pattern: "*.vcf.gz" + - known_sites_tbi: + type: file + description: Tabix index of the known_sites (optional) + pattern: "*.vcf.gz.tbi" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - table: + type: file + description: Recalibration table from BaseRecalibrator + pattern: "*.{table}" + +authors: + - "@yocra3" + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/gatk4/bedtointervallist/main.nf b/modules/gatk4/bedtointervallist/main.nf index c3b624a8..118f535b 100644 --- a/modules/gatk4/bedtointervallist/main.nf +++ b/modules/gatk4/bedtointervallist/main.nf @@ -9,7 +9,7 @@ process GATK4_BEDTOINTERVALLIST { input: tuple val(meta), path(bed) - path sequence_dict + path dict output: tuple val(meta), path('*.interval_list'), emit: interval_list @@ -21,6 +21,7 @@ process GATK4_BEDTOINTERVALLIST { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 if (!task.memory) { log.info '[GATK BedToIntervalList] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -29,9 +30,10 @@ process GATK4_BEDTOINTERVALLIST { } """ gatk --java-options "-Xmx${avail_mem}g" BedToIntervalList \\ - -I $bed \\ - -SD $sequence_dict \\ - -O ${prefix}.interval_list \\ + --INPUT $bed \\ + --OUTPUT ${prefix}.interval_list \\ + --SEQUENCE_DICTIONARY $dict \\ + --TMP_DIR . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/calculatecontamination/main.nf b/modules/gatk4/calculatecontamination/main.nf index 298739ab..197fe6c2 100644 --- a/modules/gatk4/calculatecontamination/main.nf +++ b/modules/gatk4/calculatecontamination/main.nf @@ -9,7 +9,6 @@ process GATK4_CALCULATECONTAMINATION { input: tuple val(meta), path(pileup), path(matched) - val segmentout output: tuple val(meta), path('*.contamination.table'), emit: contamination @@ -22,8 +21,8 @@ process GATK4_CALCULATECONTAMINATION { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def matched_command = matched ? " -matched ${matched} " : '' - def segment_command = segmentout ? " -segments ${prefix}.segmentation.table" : '' + def matched_command = matched ? "--matched-normal $matched" : '' + def avail_mem = 3 if (!task.memory) { log.info '[GATK CalculateContamination] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -32,10 +31,10 @@ process GATK4_CALCULATECONTAMINATION { } """ gatk --java-options "-Xmx${avail_mem}g" CalculateContamination \\ - -I $pileup \\ + --input $pileup \\ + --output ${prefix}.contamination.table \\ $matched_command \\ - -O ${prefix}.contamination.table \\ - $segment_command \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/calculatecontamination/meta.yml b/modules/gatk4/calculatecontamination/meta.yml index e5e870dc..7767bd08 100644 --- a/modules/gatk4/calculatecontamination/meta.yml +++ b/modules/gatk4/calculatecontamination/meta.yml @@ -32,9 +32,6 @@ input: type: file description: File containing the pileups summary table of a normal sample that matches with the tumor sample specified in pileup argument. This is an optional input. pattern: "*.pileups.table" - - segmentout: - type: boolean - description: specifies whether to output the segmentation table. output: - contamination: @@ -43,7 +40,7 @@ output: pattern: "*.contamination.table" - segmentation: type: file - description: optional output table containing segmentation of tumor minor allele fractions. + description: output table containing segmentation of tumor minor allele fractions (optional) pattern: "*.segmentation.table" - versions: type: file @@ -52,3 +49,4 @@ output: authors: - "@GCJMackenzie" + - "@maxulysse" diff --git a/modules/gatk4/combinegvcfs/main.nf b/modules/gatk4/combinegvcfs/main.nf index c0a7ac45..45bf4372 100644 --- a/modules/gatk4/combinegvcfs/main.nf +++ b/modules/gatk4/combinegvcfs/main.nf @@ -9,9 +9,9 @@ process GATK4_COMBINEGVCFS { input: tuple val(meta), path(vcf), path(vcf_idx) - path (fasta) - path (fasta_fai) - path (fasta_dict) + path fasta + path fai + path dict output: tuple val(meta), path("*.combined.g.vcf.gz"), emit: combined_gvcf @@ -23,21 +23,21 @@ process GATK4_COMBINEGVCFS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def avail_mem = 3 + def input_list = vcf.collect{"--variant $it"}.join(' ') + + def avail_mem = 3 if (!task.memory) { log.info '[GATK COMBINEGVCFS] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' } else { avail_mem = task.memory.giga } - def input_files = vcf.collect{"-V ${it}"}.join(' ') // add '-V' to each vcf file """ - gatk \\ - --java-options "-Xmx${avail_mem}g" \\ - CombineGVCFs \\ - -R ${fasta} \\ - -O ${prefix}.combined.g.vcf.gz \\ - ${args} \\ - ${input_files} + gatk --java-options "-Xmx${avail_mem}g" CombineGVCFs \\ + $input_list \\ + --output ${prefix}.combined.g.vcf.gz \\ + --reference ${fasta} \\ + --tmp-dir . \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/gatk4/combinegvcfs/meta.yml b/modules/gatk4/combinegvcfs/meta.yml index b891de90..9330e084 100644 --- a/modules/gatk4/combinegvcfs/meta.yml +++ b/modules/gatk4/combinegvcfs/meta.yml @@ -19,18 +19,11 @@ tools: licence: ["Apache-2.0"] input: - - fasta: - type: file - description: The reference fasta file - pattern: "*.fasta" - - fai: - type: file - description: FASTA index file - pattern: "*.{fai}" - - dict: - type: file - description: FASTA dictionary file - pattern: "*.{dict}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] - vcf: type: file description: Compressed VCF files @@ -38,7 +31,19 @@ input: - vcf_idx: type: file description: VCF Index file - pattern: "*.{fai}" + pattern: "*.vcf.gz.idx" + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" + - fai: + type: file + description: FASTA index file + pattern: "*.fasta.fai" + - dict: + type: file + description: FASTA dictionary file + pattern: "*.dict" output: - gvcf: type: file @@ -53,3 +58,4 @@ authors: - "@sateeshperi" - "@mjcipriano" - "@hseabolt" + - "@maxulysse" diff --git a/modules/gatk4/createsequencedictionary/main.nf b/modules/gatk4/createsequencedictionary/main.nf index dea77a1d..dbf37048 100644 --- a/modules/gatk4/createsequencedictionary/main.nf +++ b/modules/gatk4/createsequencedictionary/main.nf @@ -11,14 +11,15 @@ process GATK4_CREATESEQUENCEDICTIONARY { path fasta output: - path "*.dict" , emit: dict - path "versions.yml" , emit: versions + path "*.dict" , emit: dict + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' + def avail_mem = 6 if (!task.memory) { log.info '[GATK CreateSequenceDictionary] Available memory not known - defaulting to 6GB. Specify process memory requirements to change this.' @@ -26,10 +27,10 @@ process GATK4_CREATESEQUENCEDICTIONARY { avail_mem = task.memory.giga } """ - gatk --java-options "-Xmx${avail_mem}g" \\ - CreateSequenceDictionary \\ + gatk --java-options "-Xmx${avail_mem}g" CreateSequenceDictionary \\ --REFERENCE $fasta \\ --URI $fasta \\ + --TMP_DIR . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/createsomaticpanelofnormals/main.nf b/modules/gatk4/createsomaticpanelofnormals/main.nf index c030f4e3..3df29947 100644 --- a/modules/gatk4/createsomaticpanelofnormals/main.nf +++ b/modules/gatk4/createsomaticpanelofnormals/main.nf @@ -9,9 +9,9 @@ process GATK4_CREATESOMATICPANELOFNORMALS { input: tuple val(meta), path(genomicsdb) - path fasta - path fai - path dict + path fasta + path fai + path dict output: tuple val(meta), path("*.vcf.gz"), emit: vcf @@ -24,6 +24,7 @@ process GATK4_CREATESOMATICPANELOFNORMALS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 if (!task.memory) { log.info '[GATK CreateSomaticPanelOfNormals] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -31,11 +32,11 @@ process GATK4_CREATESOMATICPANELOFNORMALS { avail_mem = task.memory.giga } """ - gatk --java-options "-Xmx${avail_mem}g" \\ - CreateSomaticPanelOfNormals \\ - -R $fasta \\ - -V gendb://$genomicsdb \\ - -O ${prefix}.vcf.gz \\ + gatk --java-options "-Xmx${avail_mem}g" CreateSomaticPanelOfNormals \\ + --variant gendb://$genomicsdb \\ + --output ${prefix}.vcf.gz \\ + --reference $fasta \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/createsomaticpanelofnormals/meta.yml b/modules/gatk4/createsomaticpanelofnormals/meta.yml index e450c68a..43e675fb 100644 --- a/modules/gatk4/createsomaticpanelofnormals/meta.yml +++ b/modules/gatk4/createsomaticpanelofnormals/meta.yml @@ -44,7 +44,7 @@ output: pattern: "*.vcf.gz" - tbi: type: file - description: Index of vcf file + description: Tabix index of vcf file pattern: "*vcf.gz.tbi" - versions: type: file diff --git a/modules/gatk4/estimatelibrarycomplexity/main.nf b/modules/gatk4/estimatelibrarycomplexity/main.nf index ba68bf70..caa34630 100644 --- a/modules/gatk4/estimatelibrarycomplexity/main.nf +++ b/modules/gatk4/estimatelibrarycomplexity/main.nf @@ -8,14 +8,14 @@ process GATK4_ESTIMATELIBRARYCOMPLEXITY { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(cram) - path(fasta) - path(fai) - path(dict) + tuple val(meta), path(input) + path fasta + path fai + path dict output: tuple val(meta), path('*.metrics'), emit: metrics - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -23,7 +23,7 @@ process GATK4_ESTIMATELIBRARYCOMPLEXITY { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def crams = cram.collect(){ x -> "-I ".concat(x.toString()) }.join(" ") + def input_list = input.collect(){"--INPUT $it"}.join(" ") def avail_mem = 3 if (!task.memory) { @@ -32,12 +32,12 @@ process GATK4_ESTIMATELIBRARYCOMPLEXITY { avail_mem = task.memory.giga } """ - gatk --java-options "-Xmx${avail_mem}g" EstimateLibraryComplexity \ - ${crams} \ - -O ${prefix}.metrics \ - --REFERENCE_SEQUENCE ${fasta} \ - --VALIDATION_STRINGENCY SILENT \ - --TMP_DIR . $args + gatk --java-options "-Xmx${avail_mem}g" EstimateLibraryComplexity \\ + $input_list \\ + --OUTPUT ${prefix}.metrics \\ + --REFERENCE_SEQUENCE ${fasta} \\ + --TMP_DIR . \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/gatk4/estimatelibrarycomplexity/meta.yml b/modules/gatk4/estimatelibrarycomplexity/meta.yml index 9f2dee60..72a679e9 100644 --- a/modules/gatk4/estimatelibrarycomplexity/meta.yml +++ b/modules/gatk4/estimatelibrarycomplexity/meta.yml @@ -20,7 +20,7 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - cram: + - input: type: file description: BAM/CRAM/SAM file pattern: "*.{bam,cram,sam}" @@ -54,3 +54,4 @@ output: authors: - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/gatk4/fastqtosam/main.nf b/modules/gatk4/fastqtosam/main.nf index 0c85a74f..199058d0 100644 --- a/modules/gatk4/fastqtosam/main.nf +++ b/modules/gatk4/fastqtosam/main.nf @@ -20,7 +20,8 @@ process GATK4_FASTQTOSAM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def read_files = meta.single_end ? "-F1 $reads" : "-F1 ${reads[0]} -F2 ${reads[1]}" + def reads_command = meta.single_end ? "--FASTQ $reads" : "--FASTQ ${reads[0]} --FASTQ2 ${reads[1]}" + def avail_mem = 3 if (!task.memory) { log.info '[GATK FastqToSam] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -29,9 +30,10 @@ process GATK4_FASTQTOSAM { } """ gatk --java-options "-Xmx${avail_mem}g" FastqToSam \\ - $read_files \\ - -O ${prefix}.bam \\ - -SM $prefix \\ + $reads_command \\ + --OUTPUT ${prefix}.bam \\ + --SAMPLE_NAME $prefix \\ + --TMP_DIR . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/fastqtosam/meta.yml b/modules/gatk4/fastqtosam/meta.yml index 59e305b8..6e5bf1cd 100644 --- a/modules/gatk4/fastqtosam/meta.yml +++ b/modules/gatk4/fastqtosam/meta.yml @@ -34,14 +34,14 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - bam: type: file description: Converted BAM file pattern: "*.bam" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@ntoda03" diff --git a/modules/gatk4/filtermutectcalls/main.nf b/modules/gatk4/filtermutectcalls/main.nf index 77175c7d..c1c82e0b 100644 --- a/modules/gatk4/filtermutectcalls/main.nf +++ b/modules/gatk4/filtermutectcalls/main.nf @@ -8,10 +8,10 @@ process GATK4_FILTERMUTECTCALLS { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(vcf), path(tbi), path(stats), path(orientationbias), path(segmentation), path(contaminationfile), val(contaminationest) - path fasta - path fai - path dict + tuple val(meta), path(vcf), path(vcf_tbi), path(stats), path(orientationbias), path(segmentation), path(table), val(estimate) + path fasta + path fai + path dict output: tuple val(meta), path("*.vcf.gz") , emit: vcf @@ -26,20 +26,11 @@ process GATK4_FILTERMUTECTCALLS { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def orientationbias_options = '' - if (orientationbias) { - orientationbias_options = '--orientation-bias-artifact-priors ' + orientationbias.join(' --orientation-bias-artifact-priors ') - } + def orientationbias_command = orientationbias ? orientationbias.collect{"--orientation-bias-artifact-priors $it"}.join(' ') : '' + def segmentation_command = segmentation ? segmentation.collect{"--tumor-segmentation $it"}.join(' ') : '' + def estimate_command = estimate ? " --contamination-estimate ${estimate} " : '' + def table_command = table ? " --contamination-table ${table} " : '' - def segmentation_options = '' - if (segmentation) { - segmentation_options = '--tumor-segmentation ' + segmentation.join(' --tumor-segmentation ') - } - - def contamination_options = contaminationest ? " --contamination-estimate ${contaminationest} " : '' - if (contaminationfile) { - contamination_options = '--contamination-table ' + contaminationfile.join(' --contamination-table ') - } def avail_mem = 3 if (!task.memory) { log.info '[GATK FilterMutectCalls] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -48,12 +39,14 @@ process GATK4_FILTERMUTECTCALLS { } """ gatk --java-options "-Xmx${avail_mem}g" FilterMutectCalls \\ - -R $fasta \\ - -V $vcf \\ - $orientationbias_options \\ - $segmentation_options \\ - $contamination_options \\ - -O ${prefix}.vcf.gz \\ + --variant $vcf \\ + --output ${prefix}.vcf.gz \\ + --reference $fasta \\ + $orientationbias_command \\ + $segmentation_command \\ + $estimate_command \\ + $table_command \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/filtermutectcalls/meta.yml b/modules/gatk4/filtermutectcalls/meta.yml index 5182c89f..d1972d70 100644 --- a/modules/gatk4/filtermutectcalls/meta.yml +++ b/modules/gatk4/filtermutectcalls/meta.yml @@ -26,9 +26,9 @@ input: type: file description: compressed vcf file of mutect2calls pattern: "*.vcf.gz" - - tbi: + - vcf_tbi: type: file - description: Index of vcf file + description: Tabix index of vcf file pattern: "*vcf.gz.tbi" - stats: type: file @@ -42,13 +42,13 @@ input: type: list description: tables containing segmentation information for input vcf. Optional input. pattern: "*.segmentation.table" - - contaminationfile: + - table: type: list - description: table(s) containing contamination contamination data for input vcf. Optional input, takes priority over contaminationest. + description: table(s) containing contamination data for input vcf. Optional input, takes priority over estimate. pattern: "*.contamination.table" - - contaminationest: + - estimate: type: val - description: estimation of contamination value as a double. Optional input, will only be used if contaminationfile is not specified. + description: estimation of contamination value as a double. Optional input, will only be used if table is not specified. - fasta: type: file description: The reference fasta file @@ -82,3 +82,4 @@ output: authors: - "@GCJMackenzie" + - "@maxulysse" diff --git a/modules/gatk4/gatherbqsrreports/main.nf b/modules/gatk4/gatherbqsrreports/main.nf index 279f1ac8..1f5f2e1b 100644 --- a/modules/gatk4/gatherbqsrreports/main.nf +++ b/modules/gatk4/gatherbqsrreports/main.nf @@ -8,7 +8,7 @@ process GATK4_GATHERBQSRREPORTS { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(recal_table) + tuple val(meta), path(table) output: tuple val(meta), path("*.table"), emit: table @@ -20,7 +20,7 @@ process GATK4_GATHERBQSRREPORTS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = recal_table.collect{"-I ${it}"}.join(' ') + def input_list = table.collect{"--input $it"}.join(' ') def avail_mem = 3 if (!task.memory) { @@ -29,12 +29,11 @@ process GATK4_GATHERBQSRREPORTS { avail_mem = task.memory.giga } """ - gatk --java-options "-Xmx${avail_mem}g" \\ - GatherBQSRReports \ - ${input} \ - --tmp-dir . \ - $args \ - --output ${prefix}.table + gatk --java-options "-Xmx${avail_mem}g" GatherBQSRReports \\ + $input_list \\ + --output ${prefix}.table \\ + --tmp-dir . \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/gatk4/gatherbqsrreports/meta.yml b/modules/gatk4/gatherbqsrreports/meta.yml index 62d008d2..99e74951 100644 --- a/modules/gatk4/gatherbqsrreports/meta.yml +++ b/modules/gatk4/gatherbqsrreports/meta.yml @@ -19,7 +19,7 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - recal_table: + - table: type: file description: File(s) containing BQSR table(s) pattern: "*.table" @@ -30,14 +30,14 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - table: + type: file + description: File containing joined BQSR table + pattern: "*.table" - versions: type: file description: File containing software versions pattern: "versions.yml" - - recal_table: - type: file - description: File containing joined BQSR table - pattern: "*.table" authors: - "@FriederikeHanssen" diff --git a/modules/gatk4/gatherpileupsummaries/main.nf b/modules/gatk4/gatherpileupsummaries/main.nf index 52e57127..f5e9cf22 100644 --- a/modules/gatk4/gatherpileupsummaries/main.nf +++ b/modules/gatk4/gatherpileupsummaries/main.nf @@ -10,11 +10,11 @@ process GATK4_GATHERPILEUPSUMMARIES { input: tuple val(meta), path(pileup) - path dict + path dict output: tuple val(meta), path("*.pileupsummaries.table"), emit: table - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -22,7 +22,7 @@ process GATK4_GATHERPILEUPSUMMARIES { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input = pileup.collect{ "-I ${it} " }.join(' ') + def input_list = pileup.collect{ "--I $it" }.join(' ') def avail_mem = 3 if (!task.memory) { @@ -31,11 +31,12 @@ process GATK4_GATHERPILEUPSUMMARIES { avail_mem = task.memory.giga } """ - gatk --java-options "-Xmx${avail_mem}g" \ - GatherPileupSummaries \ - --sequence-dictionary ${dict} \ - ${input} \ - -O ${prefix}.pileupsummaries.table + gatk --java-options "-Xmx${avail_mem}g" GatherPileupSummaries \\ + $input_list \\ + --O ${prefix}.pileupsummaries.table \\ + --sequence-dictionary $dict \\ + --tmp-dir . \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/gatk4/gatherpileupsummaries/meta.yml b/modules/gatk4/gatherpileupsummaries/meta.yml index 2dc92d55..823ea365 100644 --- a/modules/gatk4/gatherpileupsummaries/meta.yml +++ b/modules/gatk4/gatherpileupsummaries/meta.yml @@ -28,14 +28,15 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - table: + type: file + description: pileup summaries table file + pattern: "*.pileupsummaries.table" - versions: type: file description: File containing software versions pattern: "versions.yml" - - table: - type: file - description: Pileup file - pattern: "*.pileups.table" authors: - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/gatk4/genomicsdbimport/main.nf b/modules/gatk4/genomicsdbimport/main.nf index d2d89ccc..d2b78899 100644 --- a/modules/gatk4/genomicsdbimport/main.nf +++ b/modules/gatk4/genomicsdbimport/main.nf @@ -8,13 +8,13 @@ process GATK4_GENOMICSDBIMPORT { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(vcf), path(tbi), path(intervalfile), val(intervalval), path(wspace) - val run_intlist - val run_updatewspace - val input_map + tuple val(meta), path(vcf), path(tbi), path(interval_file), val(interval_value), path(wspace) + val run_intlist + val run_updatewspace + val input_map output: - tuple val(meta), path("${prefix}") , optional:true, emit: genomicsdb + tuple val(meta), path("$prefix") , optional:true, emit: genomicsdb tuple val(meta), path("$updated_db") , optional:true, emit: updatedb tuple val(meta), path("*.interval_list"), optional:true, emit: intervallist path "versions.yml" , emit: versions @@ -27,22 +27,22 @@ process GATK4_GENOMICSDBIMPORT { prefix = task.ext.prefix ?: "${meta.id}" // settings for running default create gendb mode - inputs_command = input_map ? "--sample-name-map ${vcf[0]}" : "${'-V ' + vcf.join(' -V ')}" - dir_command = "--genomicsdb-workspace-path ${prefix}" - intervals_command = intervalfile ? " -L ${intervalfile} " : " -L ${intervalval} " + input_command = input_map ? "--sample-name-map ${vcf[0]}" : vcf.collect(){"--variant $it"}.join(' ') + + genomicsdb_command = "--genomicsdb-workspace-path ${prefix}" + interval_command = interval_file ? "--intervals ${interval_file}" : "--intervals ${interval_value}" // settings changed for running get intervals list mode if run_intlist is true if (run_intlist) { - inputs_command = '' - dir_command = "--genomicsdb-update-workspace-path ${wspace}" - intervals_command = "--output-interval-list-to-file ${prefix}.interval_list" + genomicsdb_command = "--genomicsdb-update-workspace-path ${wspace}" + interval_command = "--output-interval-list-to-file ${prefix}.interval_list" } - // settings changed for running update gendb mode. inputs_command same as default, update_db forces module to emit the updated gendb + // settings changed for running update gendb mode. input_command same as default, update_db forces module to emit the updated gendb if (run_updatewspace) { - dir_command = "--genomicsdb-update-workspace-path ${wspace}" - intervals_command = '' - updated_db = wspace.toString() + genomicsdb_command = "--genomicsdb-update-workspace-path ${wspace}" + interval_command = '' + updated_db = "${wspace}" } def avail_mem = 3 @@ -53,9 +53,10 @@ process GATK4_GENOMICSDBIMPORT { } """ gatk --java-options "-Xmx${avail_mem}g" GenomicsDBImport \\ - $inputs_command \\ - $dir_command \\ - $intervals_command \\ + $input_command \\ + $genomicsdb_command \\ + $interval_command \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/genotypegvcfs/main.nf b/modules/gatk4/genotypegvcfs/main.nf index 4a42ad0a..0df88d66 100644 --- a/modules/gatk4/genotypegvcfs/main.nf +++ b/modules/gatk4/genotypegvcfs/main.nf @@ -10,10 +10,10 @@ process GATK4_GENOTYPEGVCFS { input: tuple val(meta), path(gvcf), path(gvcf_index), path(intervals), path(intervals_index) path fasta - path fasta_index - path fasta_dict + path fai + path dict path dbsnp - path dbsnp_index + path dbsnp_tbi output: tuple val(meta), path("*.vcf.gz"), emit: vcf @@ -26,9 +26,10 @@ process GATK4_GENOTYPEGVCFS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def dbsnp_options = dbsnp ? "-D ${dbsnp}" : "" - def interval_options = intervals ? "-L ${intervals}" : "" - def gvcf_options = gvcf.name.endsWith(".vcf") || gvcf.name.endsWith(".vcf.gz") ? "$gvcf" : "gendb://$gvcf" + def gvcf_command = gvcf.name.endsWith(".vcf") || gvcf.name.endsWith(".vcf.gz") ? "$gvcf" : "gendb://$gvcf" + def dbsnp_command = dbsnp ? "--dbsnp $dbsnp" : "" + def interval_command = intervals ? "--intervals $intervals" : "" + def avail_mem = 3 if (!task.memory) { log.info '[GATK GenotypeGVCFs] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -36,14 +37,14 @@ process GATK4_GENOTYPEGVCFS { avail_mem = task.memory.giga } """ - gatk --java-options "-Xmx${avail_mem}g" \\ - GenotypeGVCFs \\ - $args \\ - $interval_options \\ - $dbsnp_options \\ - -R $fasta \\ - -V $gvcf_options \\ - -O ${prefix}.vcf.gz + gatk --java-options "-Xmx${avail_mem}g" GenotypeGVCFs \\ + --variant $gvcf_command \\ + --output ${prefix}.vcf.gz \\ + --reference $fasta \\ + $interval_command \\ + $dbsnp_command \\ + --tmp-dir . \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/gatk4/genotypegvcfs/meta.yml b/modules/gatk4/genotypegvcfs/meta.yml index f465f835..7bec10ed 100644 --- a/modules/gatk4/genotypegvcfs/meta.yml +++ b/modules/gatk4/genotypegvcfs/meta.yml @@ -21,10 +21,15 @@ input: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - gvcf: - type: tuple of files + type: file description: | - Tuple of gVCF(.gz) file (first) and its index (second) or the path to a GenomicsDB (and empty) - pattern: ["*.{vcf,vcf.gz}", "*.{idx,tbi}"] + gVCF(.gz) file or to a GenomicsDB + pattern: "*.{vcf,vcf.gz}" + - gvcf_index: + type: file + description: | + index of gvcf file, or empty when providing GenomicsDB + pattern: "*.{idx,tbi}" - intervals: type: file description: Interval file with the genomic regions included in the library (optional) @@ -35,11 +40,11 @@ input: type: file description: Reference fasta file pattern: "*.fasta" - - fasta_index: + - fai: type: file description: Reference fasta index file pattern: "*.fai" - - fasta_dict: + - dict: type: file description: Reference fasta sequence dict file pattern: "*.dict" @@ -47,8 +52,8 @@ input: type: file description: dbSNP VCF file pattern: "*.vcf.gz" - - dbsnp_index: - type: tuple of files + - dbsnp_tbi: + type: file description: dbSNP VCF index file pattern: "*.tbi" @@ -73,3 +78,4 @@ output: authors: - "@santiagorevale" + - "@maxulysse" diff --git a/modules/gatk4/getpileupsummaries/main.nf b/modules/gatk4/getpileupsummaries/main.nf index 5395c068..c0946f71 100644 --- a/modules/gatk4/getpileupsummaries/main.nf +++ b/modules/gatk4/getpileupsummaries/main.nf @@ -9,15 +9,15 @@ process GATK4_GETPILEUPSUMMARIES { input: tuple val(meta), path(input), path(index), path(intervals) - path fasta - path fai - path dict - path variants - path variants_tbi + path fasta + path fai + path dict + path variants + path variants_tbi output: tuple val(meta), path('*.pileups.table'), emit: table - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -25,8 +25,8 @@ process GATK4_GETPILEUPSUMMARIES { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def sitesCommand = intervals ? " -L ${intervals} " : " -L ${variants} " - def reference = fasta ? " -R ${fasta}" :"" + def interval_command = intervals ? "--intervals $intervals" : "" + def reference_command = fasta ? "--reference $fasta" : '' def avail_mem = 3 if (!task.memory) { @@ -36,11 +36,12 @@ process GATK4_GETPILEUPSUMMARIES { } """ gatk --java-options "-Xmx${avail_mem}g" GetPileupSummaries \\ - -I $input \\ - -V $variants \\ - $sitesCommand \\ - ${reference} \\ - -O ${prefix}.pileups.table \\ + --input $input \\ + --variant $variants \\ + --output ${prefix}.pileups.table \\ + $reference_command \\ + $sites_command \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/haplotypecaller/main.nf b/modules/gatk4/haplotypecaller/main.nf index 33871fcf..57f69ecd 100644 --- a/modules/gatk4/haplotypecaller/main.nf +++ b/modules/gatk4/haplotypecaller/main.nf @@ -9,11 +9,11 @@ process GATK4_HAPLOTYPECALLER { input: tuple val(meta), path(input), path(input_index), path(intervals) - path fasta - path fai - path dict - path dbsnp - path dbsnp_tbi + path fasta + path fai + path dict + path dbsnp + path dbsnp_tbi output: tuple val(meta), path("*.vcf.gz"), emit: vcf @@ -26,25 +26,24 @@ process GATK4_HAPLOTYPECALLER { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def interval_option = intervals ? "-L ${intervals}" : "" - def dbsnp_option = dbsnp ? "-D ${dbsnp}" : "" - def avail_mem = 3 + def dbsnp_command = dbsnp ? "--dbsnp $dbsnp" : "" + def interval_command = intervals ? "--intervals $intervals" : "" + + def avail_mem = 3 if (!task.memory) { log.info '[GATK HaplotypeCaller] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' } else { avail_mem = task.memory.giga } """ - gatk \\ - --java-options "-Xmx${avail_mem}g" \\ - HaplotypeCaller \\ - -R $fasta \\ - -I $input \\ - ${dbsnp_option} \\ - ${interval_option} \\ - -O ${prefix}.vcf.gz \\ - $args \\ - --tmp-dir . + gatk --java-options "-Xmx${avail_mem}g" HaplotypeCaller \\ + --input $input \\ + --output ${prefix}.vcf.gz \\ + --reference $fasta \\ + $dbsnp_command \\ + $interval_command \\ + --tmp-dir . \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/gatk4/indexfeaturefile/main.nf b/modules/gatk4/indexfeaturefile/main.nf index 275e51f5..90ff94e6 100644 --- a/modules/gatk4/indexfeaturefile/main.nf +++ b/modules/gatk4/indexfeaturefile/main.nf @@ -19,6 +19,7 @@ process GATK4_INDEXFEATUREFILE { script: def args = task.ext.args ?: '' + def avail_mem = 3 if (!task.memory) { log.info '[GATK IndexFeatureFile] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -26,10 +27,10 @@ process GATK4_INDEXFEATUREFILE { avail_mem = task.memory.giga } """ - gatk --java-options "-Xmx${avail_mem}g" \\ - IndexFeatureFile \\ - $args \\ - -I $feature_file + gatk --java-options "-Xmx${avail_mem}g" IndexFeatureFile \\ + --input $feature_file \\ + --tmp-dir . \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/gatk4/intervallisttobed/main.nf b/modules/gatk4/intervallisttobed/main.nf index 24d20be1..c0f9df63 100644 --- a/modules/gatk4/intervallisttobed/main.nf +++ b/modules/gatk4/intervallisttobed/main.nf @@ -8,7 +8,7 @@ process GATK4_INTERVALLISTTOBED { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(interval) + tuple val(meta), path(intervals) output: tuple val(meta), path("*.bed"), emit: bed @@ -29,8 +29,9 @@ process GATK4_INTERVALLISTTOBED { } """ gatk --java-options "-Xmx${avail_mem}g" IntervalListToBed \\ - --INPUT ${interval} \\ + --INPUT $intervals \\ --OUTPUT ${prefix}.bed \\ + --TMP_DIR . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/intervallisttools/main.nf b/modules/gatk4/intervallisttools/main.nf index 82c3222c..1b9b37f4 100644 --- a/modules/gatk4/intervallisttools/main.nf +++ b/modules/gatk4/intervallisttools/main.nf @@ -8,11 +8,11 @@ process GATK4_INTERVALLISTTOOLS { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(interval_list) + tuple val(meta), path(intervals) output: tuple val(meta), path("*_split/*/*.interval_list"), emit: interval_list - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -20,6 +20,7 @@ process GATK4_INTERVALLISTTOOLS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 if (!task.memory) { log.info '[GATK IntervalListTools] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -30,10 +31,10 @@ process GATK4_INTERVALLISTTOOLS { mkdir ${prefix}_split - gatk --java-options "-Xmx${avail_mem}g" \\ - IntervalListTools \\ - -I ${interval_list} \\ - -O ${prefix}_split \\ + gatk --java-options "-Xmx${avail_mem}g" IntervalListTools \\ + --INPUT $intervals \\ + --OUTPUT ${prefix}_split \\ + --TMP_DIR . \\ $args python3 < inputs_list.add(" -I " + a) } + def input_list = f1r2.collect{"--input $it"}.join(' ') + def avail_mem = 3 if (!task.memory) { log.info '[GATK LearnReadOrientationModel] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -29,10 +29,10 @@ process GATK4_LEARNREADORIENTATIONMODEL { avail_mem = task.memory.giga } """ - gatk --java-options "-Xmx${avail_mem}g" \\ - LearnReadOrientationModel \\ - ${inputs_list.join(' ')} \\ - -O ${prefix}.tar.gz \\ + gatk --java-options "-Xmx${avail_mem}g" LearnReadOrientationModel \\ + $input_list \\ + --output ${prefix}.tar.gz \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/markduplicates/main.nf b/modules/gatk4/markduplicates/main.nf index 6b150655..e8a98156 100644 --- a/modules/gatk4/markduplicates/main.nf +++ b/modules/gatk4/markduplicates/main.nf @@ -8,7 +8,7 @@ process GATK4_MARKDUPLICATES { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(bams) + tuple val(meta), path(bam) output: tuple val(meta), path("*.bam") , emit: bam @@ -22,7 +22,8 @@ process GATK4_MARKDUPLICATES { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def bam_list = bams.collect(){ bam -> "--INPUT ".concat(bam.toString()) }.join(" ") + def input_list = bam.collect{"--INPUT $it"}.join(' ') + def avail_mem = 3 if (!task.memory) { log.info '[GATK MarkDuplicates] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -31,11 +32,10 @@ process GATK4_MARKDUPLICATES { } """ gatk --java-options "-Xmx${avail_mem}g" MarkDuplicates \\ - $bam_list \\ + $input_list \\ + --OUTPUT ${prefix}.bam \\ --METRICS_FILE ${prefix}.metrics \\ --TMP_DIR . \\ - --CREATE_INDEX true \\ - --OUTPUT ${prefix}.bam \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/markduplicates/meta.yml b/modules/gatk4/markduplicates/meta.yml index a7dbe8ec..93877f47 100644 --- a/modules/gatk4/markduplicates/meta.yml +++ b/modules/gatk4/markduplicates/meta.yml @@ -49,3 +49,4 @@ output: authors: - "@ajodeh-juma" - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/gatk4/markduplicatesspark/main.nf b/modules/gatk4/markduplicatesspark/main.nf new file mode 100644 index 00000000..01a19e5c --- /dev/null +++ b/modules/gatk4/markduplicatesspark/main.nf @@ -0,0 +1,50 @@ +process GATK4_MARKDUPLICATES_SPARK { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::gatk4=4.2.3.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.3.0--hdfd78af_0' : + 'broadinstitute/gatk:4.2.3.0' }" + + input: + tuple val(meta), path(bam) + path fasta + path fasta_fai + path dict + + output: + tuple val(meta), path("${prefix}"), emit: output + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + def input_list = bam.collect{"--INPUT $it"}.join(' ') + + def avail_mem = 3 + if (!task.memory) { + log.info '[GATK MarkDuplicatesSpark] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + """ + export SPARK_USER=spark3 + + gatk --java-options "-Xmx${avail_mem}g" MarkDuplicatesSpark \\ + $input_list \\ + --output $prefix \\ + --reference $fasta \\ + --spark-master local[${task.cpus}] \\ + --tmp-dir . \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/gatk4/markduplicatesspark/meta.yml b/modules/gatk4/markduplicatesspark/meta.yml new file mode 100644 index 00000000..bf3e02ba --- /dev/null +++ b/modules/gatk4/markduplicatesspark/meta.yml @@ -0,0 +1,60 @@ +name: gatk4_markduplicates_spark +description: This tool locates and tags duplicate reads in a BAM or SAM file, where duplicate reads are defined as originating from a single fragment of DNA. +keywords: + - markduplicates + - bam + - sort +tools: + - gatk4: + description: + Developed in the Data Sciences Platform at the Broad Institute, the toolkit offers a wide variety of tools + with a primary focus on variant discovery and genotyping. Its powerful processing engine + and high-performance computing features make it capable of taking on projects of any size. + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/articles/360037052812-MarkDuplicates-Picard- + tool_dev_url: https://github.com/broadinstitute/gatk + doi: 10.1158/1538-7445.AM2017-3590 + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Sorted BAM file + pattern: "*.{bam}" + - fasta: + type: file + description: The reference fasta file + pattern: "*.fasta" + - fai: + type: file + description: Index of reference fasta file + pattern: "*.fasta.fai" + - dict: + type: file + description: GATK sequence dictionary + pattern: "*.dict" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bam: + type: file + description: Marked duplicates BAM file + pattern: "*.{bam}" + +authors: + - "@ajodeh-juma" + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/modules/gatk4/mergebamalignment/main.nf b/modules/gatk4/mergebamalignment/main.nf index cfeb23dd..7ba9ccda 100644 --- a/modules/gatk4/mergebamalignment/main.nf +++ b/modules/gatk4/mergebamalignment/main.nf @@ -22,6 +22,7 @@ process GATK4_MERGEBAMALIGNMENT { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 if (!task.memory) { log.info '[GATK MergeBamAlignment] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -30,10 +31,11 @@ process GATK4_MERGEBAMALIGNMENT { } """ gatk --java-options "-Xmx${avail_mem}g" MergeBamAlignment \\ - -ALIGNED $aligned \\ - -UNMAPPED $unmapped \\ - -R $fasta \\ - -O ${prefix}.bam \\ + --UNMAPPED_BAM $unmapped \\ + --ALIGNED_BAM $aligned \\ + --OUTPUT ${prefix}.bam \\ + --REFERENCE_SEQUENCE $fasta \\ + --TMP_DIR . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/mergemutectstats/main.nf b/modules/gatk4/mergemutectstats/main.nf index bb9f91fb..409e06f6 100644 --- a/modules/gatk4/mergemutectstats/main.nf +++ b/modules/gatk4/mergemutectstats/main.nf @@ -9,6 +9,7 @@ process GATK4_MERGEMUTECTSTATS { input: tuple val(meta), path(stats) + output: tuple val(meta), path("*.vcf.gz.stats"), emit: stats path "versions.yml" , emit: versions @@ -19,7 +20,7 @@ process GATK4_MERGEMUTECTSTATS { script: def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" - def input = stats.collect{ " -stats ${it} "}.join() + def input_list = stats.collect{ "--stats ${it}"}.join(' ') def avail_mem = 3 if (!task.memory) { @@ -29,8 +30,9 @@ process GATK4_MERGEMUTECTSTATS { } """ gatk --java-options "-Xmx${avail_mem}g" MergeMutectStats \\ - ${input} \\ - -output ${meta.id}.vcf.gz.stats \\ + $input_list \\ + --output ${prefix}.vcf.gz.stats \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/mergevcfs/main.nf b/modules/gatk4/mergevcfs/main.nf index 54e38667..06ff3acb 100644 --- a/modules/gatk4/mergevcfs/main.nf +++ b/modules/gatk4/mergevcfs/main.nf @@ -8,9 +8,8 @@ process GATK4_MERGEVCFS { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(vcfs) - path ref_dict - val use_ref_dict + tuple val(meta), path(vcf) + path dict output: tuple val(meta), path('*.vcf.gz'), emit: vcf @@ -22,13 +21,9 @@ process GATK4_MERGEVCFS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def input_list = vcf.collect{ "--INPUT $it"}.join(' ') + def reference_command = dict ? "--SEQUENCE_DICTIONARY $dict" : "" - // Make list of VCFs to merge - def input = "" - for (vcf in vcfs) { - input += " I=${vcf}" - } - def ref = use_ref_dict ? "D=${ref_dict}" : "" def avail_mem = 3 if (!task.memory) { log.info '[GATK MergeVcfs] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -37,9 +32,10 @@ process GATK4_MERGEVCFS { } """ gatk --java-options "-Xmx${avail_mem}g" MergeVcfs \\ - $input \\ - O=${prefix}.vcf.gz \\ - $ref \\ + $input_list \\ + --OUTPUT ${prefix}.vcf.gz \\ + $reference_command \\ + --TMP_DIR . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/mutect2/main.nf b/modules/gatk4/mutect2/main.nf index 568d3393..4a1f5768 100644 --- a/modules/gatk4/mutect2/main.nf +++ b/modules/gatk4/mutect2/main.nf @@ -8,10 +8,7 @@ process GATK4_MUTECT2 { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta) , path(input) , path(input_index) , path(intervals), val(which_norm) - val run_single - val run_pon - val run_mito + tuple val(meta), path(input), path(input_index), path(intervals) path fasta path fai path dict @@ -33,28 +30,10 @@ process GATK4_MUTECT2 { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def panels_command = '' - def normals_command = '' - - def inputs_command = '-I ' + input.join( ' -I ') - def interval = intervals ? "-L ${intervals}" : "" - - if(run_pon) { - panels_command = '' - normals_command = '' - - } else if(run_single) { - panels_command = " --germline-resource $germline_resource --panel-of-normals $panel_of_normals" - normals_command = '' - - } else if(run_mito){ - panels_command = "-L ${intervals} --mitochondria-mode" - normals_command = '' - - } else { - panels_command = " --germline-resource $germline_resource --panel-of-normals $panel_of_normals --f1r2-tar-gz ${prefix}.f1r2.tar.gz" - normals_command = '-normal ' + which_norm.join( ' -normal ') - } + def inputs = input.collect{ "--input $it"}.join(" ") + def interval_command = intervals ? "--intervals $intervals" : "" + def pon_command = panel_of_normals ? "--panel-of-normals $panel_of_normals" : "" + def gr_command = germline_resource ? "--germline-resource $germline_resource" : "" def avail_mem = 3 if (!task.memory) { @@ -64,12 +43,13 @@ process GATK4_MUTECT2 { } """ gatk --java-options "-Xmx${avail_mem}g" Mutect2 \\ - -R ${fasta} \\ - ${inputs_command} \\ - ${normals_command} \\ - ${panels_command} \\ - ${interval} \\ - -O ${prefix}.vcf.gz \\ + $inputs \\ + --output ${prefix}.vcf.gz \\ + --reference $fasta \\ + $pon_command \\ + $gr_command \\ + $interval_command \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/mutect2/meta.yml b/modules/gatk4/mutect2/meta.yml index 69a4acfe..aa0a02aa 100644 --- a/modules/gatk4/mutect2/meta.yml +++ b/modules/gatk4/mutect2/meta.yml @@ -34,22 +34,6 @@ input: type: File/string description: Specify region the tools is run on. pattern: ".{bed,interval_list}/chrM" - - which_norm: - type: list - description: optional list of sample headers contained in the normal sample bam files (these are required for tumor_normal_pair mode) - pattern: "testN" - - run_single: - type: boolean - description: Specify whether or not to run in tumor_single mode instead of tumor_normal_pair mode (will be ignored if run_pon is also true) - pattern: "true/false" - - run_pon: - type: boolean - description: Specify whether or not to run in panel_of_normal mode instead of tumor_normal_pair mode - pattern: "true/false" - - run_mito: - type: boolean - description: Specify whether or not to run in mitochondria-mode instead of tumor_normal_pair mode - pattern: "true/false" - fasta: type: file description: The reference fasta file diff --git a/modules/gatk4/revertsam/main.nf b/modules/gatk4/revertsam/main.nf index b3bf9f95..4e8e9ddc 100644 --- a/modules/gatk4/revertsam/main.nf +++ b/modules/gatk4/revertsam/main.nf @@ -20,6 +20,7 @@ process GATK4_REVERTSAM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 if (!task.memory) { log.info '[GATK RevertSam] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -28,8 +29,9 @@ process GATK4_REVERTSAM { } """ gatk --java-options "-Xmx${avail_mem}g" RevertSam \\ - I=$bam \\ - O=${prefix}.reverted.bam \\ + --INPUT $bam \\ + --OUTPUT ${prefix}.reverted.bam \\ + --TMP_DIR . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/samtofastq/main.nf b/modules/gatk4/samtofastq/main.nf index 53e5013f..8553e419 100644 --- a/modules/gatk4/samtofastq/main.nf +++ b/modules/gatk4/samtofastq/main.nf @@ -20,7 +20,8 @@ process GATK4_SAMTOFASTQ { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def output = meta.single_end ? "FASTQ=${prefix}.fastq.gz" : "FASTQ=${prefix}_1.fastq.gz SECOND_END_FASTQ=${prefix}_2.fastq.gz" + def output = meta.single_end ? "--FASTQ ${prefix}.fastq.gz" : "--FASTQ ${prefix}_1.fastq.gz --SECOND_END_FASTQ ${prefix}_2.fastq.gz" + def avail_mem = 3 if (!task.memory) { log.info '[GATK SamToFastq] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -29,8 +30,9 @@ process GATK4_SAMTOFASTQ { } """ gatk --java-options "-Xmx${avail_mem}g" SamToFastq \\ - I=$bam \\ + --INPUT $bam \\ $output \\ + --TMP_DIR . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/selectvariants/main.nf b/modules/gatk4/selectvariants/main.nf index fd750a9b..22779211 100644 --- a/modules/gatk4/selectvariants/main.nf +++ b/modules/gatk4/selectvariants/main.nf @@ -21,6 +21,7 @@ process GATK4_SELECTVARIANTS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 if (!task.memory) { log.info '[GATK VariantFiltration] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -29,8 +30,9 @@ process GATK4_SELECTVARIANTS { } """ gatk --java-options "-Xmx${avail_mem}G" SelectVariants \\ - -V $vcf \\ - -O ${prefix}.selectvariants.vcf.gz \\ + --variant $vcf \\ + --output ${prefix}.selectvariants.vcf.gz \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/splitncigarreads/main.nf b/modules/gatk4/splitncigarreads/main.nf index fdd1d974..f7c559d9 100644 --- a/modules/gatk4/splitncigarreads/main.nf +++ b/modules/gatk4/splitncigarreads/main.nf @@ -23,6 +23,7 @@ process GATK4_SPLITNCIGARREADS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 if (!task.memory) { log.info '[GATK SplitNCigarReads] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -31,9 +32,10 @@ process GATK4_SPLITNCIGARREADS { } """ gatk --java-options "-Xmx${avail_mem}g" SplitNCigarReads \\ - -R $fasta \\ - -I $bam \\ - -O ${prefix}.bam \\ + --input $bam \\ + --output ${prefix}.bam \\ + --reference $fasta \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/variantfiltration/main.nf b/modules/gatk4/variantfiltration/main.nf index 68f3d636..6beb87ef 100644 --- a/modules/gatk4/variantfiltration/main.nf +++ b/modules/gatk4/variantfiltration/main.nf @@ -8,7 +8,7 @@ process GATK4_VARIANTFILTRATION { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(vcf), path(vcf_tbi) + tuple val(meta), path(vcf), path(tbi) path fasta path fai path dict @@ -24,6 +24,7 @@ process GATK4_VARIANTFILTRATION { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def avail_mem = 3 if (!task.memory) { log.info '[GATK VariantFiltration] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' @@ -32,9 +33,10 @@ process GATK4_VARIANTFILTRATION { } """ gatk --java-options "-Xmx${avail_mem}G" VariantFiltration \\ - -R $fasta \\ - -V $vcf \\ - -O ${prefix}.vcf.gz \\ + --variant $vcf \\ + --output ${prefix}.vcf.gz \\ + --reference $fasta \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/modules/gatk4/variantrecalibrator/main.nf b/modules/gatk4/variantrecalibrator/main.nf index 31c9efbd..cdcc1221 100644 --- a/modules/gatk4/variantrecalibrator/main.nf +++ b/modules/gatk4/variantrecalibrator/main.nf @@ -8,11 +8,11 @@ process GATK4_VARIANTRECALIBRATOR { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(vcf) , path(tbi) - path fasta - path fai - path dict - tuple path(resvcfs), path(restbis), val(reslabels) + tuple val(meta), path(vcf), path(tbi) + tuple path(vcfs), path(tbis), val(labels) + path fasta + path fai + path dict output: tuple val(meta), path("*.recal") , emit: recal @@ -27,8 +27,8 @@ process GATK4_VARIANTRECALIBRATOR { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - refCommand = fasta ? "-R ${fasta} " : '' - resourceCommand = '--resource:' + reslabels.join( ' --resource:') + def reference_command = fasta ? "--reference $fasta " : '' + def resource_command = labels.collect{"--resource:$it"}.join(' ') def avail_mem = 3 if (!task.memory) { @@ -38,11 +38,12 @@ process GATK4_VARIANTRECALIBRATOR { } """ gatk --java-options "-Xmx${avail_mem}g" VariantRecalibrator \\ - ${refCommand} \\ - -V ${vcf} \\ - -O ${prefix}.recal \\ + --variant $vcf \\ + --output ${prefix}.recal \\ --tranches-file ${prefix}.tranches \\ - ${resourceCommand} \\ + $reference_command \\ + $resource_command \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/tests/modules/gatk4/applybqsr/test.yml b/tests/modules/gatk4/applybqsr/test.yml index 4520c34b..eaf1a08e 100644 --- a/tests/modules/gatk4/applybqsr/test.yml +++ b/tests/modules/gatk4/applybqsr/test.yml @@ -7,7 +7,6 @@ - path: output/gatk4/test.bam md5sum: d088422be886dc8507ff97fcc7dd968a - path: output/gatk4/versions.yml - md5sum: d5c6455d8a77aecc63f87c795fc3443e - name: gatk4 applybqsr test_gatk4_applybqsr_intervals command: nextflow run tests/modules/gatk4/applybqsr -entry test_gatk4_applybqsr_intervals -c tests/config/nextflow.config -c ./tests/modules/gatk4/applybqsr/nextflow.config @@ -18,7 +17,6 @@ - path: output/gatk4/test.bam md5sum: 4bfa18d651abd945e240b05e70107716 - path: output/gatk4/versions.yml - md5sum: cb4cb8a62e117b4adc643ae47883d53c - name: gatk4 applybqsr test_gatk4_applybqsr_cram command: nextflow run tests/modules/gatk4/applybqsr -entry test_gatk4_applybqsr_cram -c tests/config/nextflow.config -c ./tests/modules/gatk4/applybqsr/nextflow.config @@ -29,4 +27,3 @@ - path: output/gatk4/test.cram md5sum: 2e0bca197af4f043a4a85152e6edbe04 - path: output/gatk4/versions.yml - md5sum: 1efaa18be943bab4e4c54191d6eaa260 diff --git a/tests/modules/gatk4/applybqsrspark/main.nf b/tests/modules/gatk4/applybqsrspark/main.nf new file mode 100644 index 00000000..ee1f88dd --- /dev/null +++ b/tests/modules/gatk4/applybqsrspark/main.nf @@ -0,0 +1,47 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_APPLYBQSR_SPARK } from '../../../../modules/gatk4/applybqsrspark/main.nf' + +workflow test_gatk4_applybqsr_spark { + input = [ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_baserecalibrator_table'], checkIfExists: true), + [] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + + GATK4_APPLYBQSR_SPARK ( input, fasta, fai, dict ) +} + +workflow test_gatk4_applybqsr_spark_intervals { + input = [ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_baserecalibrator_table'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true) + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + + GATK4_APPLYBQSR_SPARK ( input, fasta, fai, dict ) +} + +workflow test_gatk4_applybqsr_spark_cram { + input = [ [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_baserecalibrator_table'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + + GATK4_APPLYBQSR_SPARK ( input, fasta, fai, dict ) +} diff --git a/tests/modules/gatk4/applybqsrspark/nextflow.config b/tests/modules/gatk4/applybqsrspark/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/gatk4/applybqsrspark/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/gatk4/applybqsrspark/test.yml b/tests/modules/gatk4/applybqsrspark/test.yml new file mode 100644 index 00000000..d230c000 --- /dev/null +++ b/tests/modules/gatk4/applybqsrspark/test.yml @@ -0,0 +1,29 @@ +- name: gatk4 applybqsr test_gatk4_applybqsr_spark + command: nextflow run tests/modules/gatk4/applybqsrspark -entry test_gatk4_applybqsr_spark -c tests/config/nextflow.config -c ./tests/modules/gatk4/applybqsrspark/nextflow.config + tags: + - gatk4 + - gatk4/applybqsrspark + files: + - path: output/gatk4/test.bam + md5sum: d088422be886dc8507ff97fcc7dd968a + - path: output/gatk4/versions.yml + +- name: gatk4 applybqsr test_gatk4_applybqsr_spark_intervals + command: nextflow run tests/modules/gatk4/applybqsrspark -entry test_gatk4_applybqsr_spark_intervals -c tests/config/nextflow.config -c ./tests/modules/gatk4/applybqsrspark/nextflow.config + tags: + - gatk4 + - gatk4/applybqsrspark + files: + - path: output/gatk4/test.bam + md5sum: 4bfa18d651abd945e240b05e70107716 + - path: output/gatk4/versions.yml + +- name: gatk4 applybqsr test_gatk4_applybqsr_spark_cram + command: nextflow run tests/modules/gatk4/applybqsrspark -entry test_gatk4_applybqsr_spark_cram -c tests/config/nextflow.config -c ./tests/modules/gatk4/applybqsrspark/nextflow.config + tags: + - gatk4 + - gatk4/applybqsrspark + files: + - path: output/gatk4/test.cram + md5sum: 2e0bca197af4f043a4a85152e6edbe04 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/applyvqsr/test.yml b/tests/modules/gatk4/applyvqsr/test.yml index 7cb91c43..5b367bcc 100644 --- a/tests/modules/gatk4/applyvqsr/test.yml +++ b/tests/modules/gatk4/applyvqsr/test.yml @@ -7,7 +7,6 @@ - path: output/gatk4/test.vcf.gz - path: output/gatk4/test.vcf.gz.tbi - path: output/gatk4/versions.yml - md5sum: ce9c443375683e7f2958fe958759ad29 - name: gatk4 applyvqsr test_gatk4_applyvqsr_allele_specific command: nextflow run tests/modules/gatk4/applyvqsr -entry test_gatk4_applyvqsr_allele_specific -c tests/config/nextflow.config -c ./tests/modules/gatk4/applyvqsr/nextflow.config @@ -18,4 +17,3 @@ - path: output/gatk4/test.vcf.gz - path: output/gatk4/test.vcf.gz.tbi - path: output/gatk4/versions.yml - md5sum: 521353d12d576de2864f1d18a3e54f14 diff --git a/tests/modules/gatk4/baserecalibrator/test.yml b/tests/modules/gatk4/baserecalibrator/test.yml index 163fac08..ec103dd4 100644 --- a/tests/modules/gatk4/baserecalibrator/test.yml +++ b/tests/modules/gatk4/baserecalibrator/test.yml @@ -6,6 +6,7 @@ files: - path: output/gatk4/test.table md5sum: e2e43abdc0c943c1a54dae816d0b9ea7 + - path: output/gatk4/versions.yml - name: gatk4 baserecalibrator test_gatk4_baserecalibrator_cram command: nextflow run ./tests/modules/gatk4/baserecalibrator -entry test_gatk4_baserecalibrator_cram -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/baserecalibrator/nextflow.config @@ -15,6 +16,7 @@ files: - path: output/gatk4/test.table md5sum: 35d89a3811aa31711fc9815b6b80e6ec + - path: output/gatk4/versions.yml - name: gatk4 baserecalibrator test_gatk4_baserecalibrator_intervals command: nextflow run ./tests/modules/gatk4/baserecalibrator -entry test_gatk4_baserecalibrator_intervals -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/baserecalibrator/nextflow.config @@ -24,6 +26,7 @@ files: - path: output/gatk4/test.table md5sum: 9ecb5f00a2229291705addc09c0ec231 + - path: output/gatk4/versions.yml - name: gatk4 baserecalibrator test_gatk4_baserecalibrator_multiple_sites command: nextflow run ./tests/modules/gatk4/baserecalibrator -entry test_gatk4_baserecalibrator_multiple_sites -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/baserecalibrator/nextflow.config @@ -33,3 +36,4 @@ files: - path: output/gatk4/test.table md5sum: e2e43abdc0c943c1a54dae816d0b9ea7 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/baserecalibratorspark/main.nf b/tests/modules/gatk4/baserecalibratorspark/main.nf new file mode 100644 index 00000000..8419e16b --- /dev/null +++ b/tests/modules/gatk4/baserecalibratorspark/main.nf @@ -0,0 +1,69 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_BASERECALIBRATOR_SPARK } from '../../../../modules/gatk4/baserecalibratorspark/main.nf' + +workflow test_gatk4_baserecalibrator_spark { + input = [ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + [] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + sites = file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true) + sites_tbi = file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true) + + GATK4_BASERECALIBRATOR_SPARK ( input, fasta, fai, dict, sites, sites_tbi ) +} + +workflow test_gatk4_baserecalibrator_spark_cram { + input = [ [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_cram_crai'], checkIfExists: true), + [] + ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + sites = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) + sites_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) + + GATK4_BASERECALIBRATOR_SPARK ( input, fasta, fai, dict, sites, sites_tbi ) +} + +workflow test_gatk4_baserecalibrator_spark_intervals { + input = [ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true) + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + sites = file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true) + sites_tbi = file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true) + + GATK4_BASERECALIBRATOR_SPARK ( input, fasta, fai, dict, sites, sites_tbi ) +} + +workflow test_gatk4_baserecalibrator_spark_multiple_sites { + input = [ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + [] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + sites = [ file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test2_vcf_gz'], checkIfExists: true) + ] + sites_tbi = [ file(params.test_data['sarscov2']['illumina']['test_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test2_vcf_gz_tbi'], checkIfExists: true) + ] + + GATK4_BASERECALIBRATOR_SPARK ( input, fasta, fai, dict, sites, sites_tbi ) +} diff --git a/tests/modules/gatk4/baserecalibratorspark/nextflow.config b/tests/modules/gatk4/baserecalibratorspark/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/gatk4/baserecalibratorspark/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/gatk4/baserecalibratorspark/test.yml b/tests/modules/gatk4/baserecalibratorspark/test.yml new file mode 100644 index 00000000..6eb9d91d --- /dev/null +++ b/tests/modules/gatk4/baserecalibratorspark/test.yml @@ -0,0 +1,39 @@ +- name: gatk4 baserecalibrator test_gatk4_baserecalibrator_spark + command: nextflow run ./tests/modules/gatk4/baserecalibratorspark -entry test_gatk4_baserecalibrator_spark -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/baserecalibratorspark/nextflow.config + tags: + - gatk4 + - gatk4/baserecalibratorspark + files: + - path: output/gatk4/test.table + md5sum: e2e43abdc0c943c1a54dae816d0b9ea7 + - path: output/gatk4/versions.yml + +- name: gatk4 baserecalibrator test_gatk4_baserecalibrator_spark_cram + command: nextflow run ./tests/modules/gatk4/baserecalibratorspark -entry test_gatk4_baserecalibrator_spark_cram -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/baserecalibratorspark/nextflow.config + tags: + - gatk4 + - gatk4/baserecalibratorspark + files: + - path: output/gatk4/test.table + md5sum: 35d89a3811aa31711fc9815b6b80e6ec + - path: output/gatk4/versions.yml + +- name: gatk4 baserecalibrator test_gatk4_baserecalibrator_spark_intervals + command: nextflow run ./tests/modules/gatk4/baserecalibratorspark -entry test_gatk4_baserecalibrator_spark_intervals -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/baserecalibratorspark/nextflow.config + tags: + - gatk4 + - gatk4/baserecalibratorspark + files: + - path: output/gatk4/test.table + md5sum: 9ecb5f00a2229291705addc09c0ec231 + - path: output/gatk4/versions.yml + +- name: gatk4 baserecalibrator test_gatk4_baserecalibrator_spark_multiple_sites + command: nextflow run ./tests/modules/gatk4/baserecalibratorspark -entry test_gatk4_baserecalibrator_spark_multiple_sites -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/baserecalibratorspark/nextflow.config + tags: + - gatk4 + - gatk4/baserecalibratorspark + files: + - path: output/gatk4/test.table + md5sum: e2e43abdc0c943c1a54dae816d0b9ea7 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/bedtointervallist/test.yml b/tests/modules/gatk4/bedtointervallist/test.yml index 3482fa6c..d8eade51 100644 --- a/tests/modules/gatk4/bedtointervallist/test.yml +++ b/tests/modules/gatk4/bedtointervallist/test.yml @@ -6,3 +6,4 @@ files: - path: output/gatk4/test.interval_list md5sum: e51101c9357fb2d59fd30e370eefa39c + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/calculatecontamination/main.nf b/tests/modules/gatk4/calculatecontamination/main.nf index 4b659ed3..c6e085b1 100644 --- a/tests/modules/gatk4/calculatecontamination/main.nf +++ b/tests/modules/gatk4/calculatecontamination/main.nf @@ -2,7 +2,8 @@ nextflow.enable.dsl = 2 -include { GATK4_CALCULATECONTAMINATION } from '../../../../modules/gatk4/calculatecontamination/main.nf' +include { GATK4_CALCULATECONTAMINATION } from '../../../../modules/gatk4/calculatecontamination/main.nf' +include { GATK4_CALCULATECONTAMINATION as GATK4_CALCULATECONTAMINATION_SEGMENTATION } from '../../../../modules/gatk4/calculatecontamination/main.nf' workflow test_gatk4_calculatecontamination_tumor_only { @@ -10,9 +11,7 @@ workflow test_gatk4_calculatecontamination_tumor_only { file(params.test_data['homo_sapiens']['illumina']['test2_pileups_table'], checkIfExists: true), [] ] - segmentout = false - - GATK4_CALCULATECONTAMINATION ( input, segmentout ) + GATK4_CALCULATECONTAMINATION ( input ) } workflow test_gatk4_calculatecontamination_matched_pair { @@ -21,9 +20,7 @@ workflow test_gatk4_calculatecontamination_matched_pair { file(params.test_data['homo_sapiens']['illumina']['test2_pileups_table'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_pileups_table'], checkIfExists: true) ] - segmentout = false - - GATK4_CALCULATECONTAMINATION ( input, segmentout ) + GATK4_CALCULATECONTAMINATION ( input ) } workflow test_gatk4_calculatecontamination_segmentation { @@ -32,7 +29,5 @@ workflow test_gatk4_calculatecontamination_segmentation { file(params.test_data['homo_sapiens']['illumina']['test2_pileups_table'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_pileups_table'], checkIfExists: true) ] - segmentout = true - - GATK4_CALCULATECONTAMINATION ( input, segmentout ) + GATK4_CALCULATECONTAMINATION_SEGMENTATION ( input ) } diff --git a/tests/modules/gatk4/calculatecontamination/nextflow.config b/tests/modules/gatk4/calculatecontamination/nextflow.config index 8730f1c4..3789a000 100644 --- a/tests/modules/gatk4/calculatecontamination/nextflow.config +++ b/tests/modules/gatk4/calculatecontamination/nextflow.config @@ -2,4 +2,8 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: GATK4_CALCULATECONTAMINATION_SEGMENTATION { + ext.args = { "--tumor-segmentation ${meta.id}.segmentation.table" } + } + } diff --git a/tests/modules/gatk4/calculatecontamination/test.yml b/tests/modules/gatk4/calculatecontamination/test.yml index 4cd44281..a00e26f0 100644 --- a/tests/modules/gatk4/calculatecontamination/test.yml +++ b/tests/modules/gatk4/calculatecontamination/test.yml @@ -7,7 +7,6 @@ - path: output/gatk4/test.contamination.table md5sum: 46c708c943b453da89a3da08acfdb2a7 - path: output/gatk4/versions.yml - md5sum: 3da8f1c0de968886330a3f7a3a1c6616 - name: gatk4 calculatecontamination test_gatk4_calculatecontamination_matched_pair command: nextflow run tests/modules/gatk4/calculatecontamination -entry test_gatk4_calculatecontamination_matched_pair -c tests/config/nextflow.config -c ./tests/modules/gatk4/calculatecontamination/nextflow.config @@ -18,7 +17,6 @@ - path: output/gatk4/test.contamination.table md5sum: 46c708c943b453da89a3da08acfdb2a7 - path: output/gatk4/versions.yml - md5sum: 14ab12a71b0c2b87d8cd53639a991b3a - name: gatk4 calculatecontamination test_gatk4_calculatecontamination_segmentation command: nextflow run tests/modules/gatk4/calculatecontamination -entry test_gatk4_calculatecontamination_segmentation -c tests/config/nextflow.config -c ./tests/modules/gatk4/calculatecontamination/nextflow.config @@ -31,4 +29,3 @@ - path: output/gatk4/test.segmentation.table md5sum: f4643d9319bde4efbfbe516d6fb13052 - path: output/gatk4/versions.yml - md5sum: d2e61315de31f512e448f0cb4b77db54 diff --git a/tests/modules/gatk4/combinegvcfs/test.yml b/tests/modules/gatk4/combinegvcfs/test.yml index 54948668..762a72f3 100644 --- a/tests/modules/gatk4/combinegvcfs/test.yml +++ b/tests/modules/gatk4/combinegvcfs/test.yml @@ -7,4 +7,3 @@ - path: output/gatk4/test.combined.g.vcf.gz contains: ["VCFv4.2"] - path: output/gatk4/versions.yml - md5sum: 49d9c467f84b6a99a4da3ef161af26bd diff --git a/tests/modules/gatk4/createsequencedictionary/test.yml b/tests/modules/gatk4/createsequencedictionary/test.yml index 134a9d74..3656e0e2 100644 --- a/tests/modules/gatk4/createsequencedictionary/test.yml +++ b/tests/modules/gatk4/createsequencedictionary/test.yml @@ -6,3 +6,4 @@ files: - path: output/gatk4/genome.dict md5sum: 7362679f176e0f52add03c08f457f646 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/createsomaticpanelofnormals/test.yml b/tests/modules/gatk4/createsomaticpanelofnormals/test.yml index a0e2bf26..00d8cae9 100644 --- a/tests/modules/gatk4/createsomaticpanelofnormals/test.yml +++ b/tests/modules/gatk4/createsomaticpanelofnormals/test.yml @@ -7,3 +7,4 @@ - path: output/gatk4/test.pon.vcf.gz - path: output/gatk4/test.pon.vcf.gz.tbi md5sum: e7ca7e9fe76ce12198fd54ec9a64fad4 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/estimatelibrarycomplexity/test.yml b/tests/modules/gatk4/estimatelibrarycomplexity/test.yml index a33e4ec1..cf5d187f 100644 --- a/tests/modules/gatk4/estimatelibrarycomplexity/test.yml +++ b/tests/modules/gatk4/estimatelibrarycomplexity/test.yml @@ -5,3 +5,4 @@ - gatk4 files: - path: output/gatk4/test.metrics + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/fastqtosam/test.yml b/tests/modules/gatk4/fastqtosam/test.yml index 07f9af15..f4b2c561 100644 --- a/tests/modules/gatk4/fastqtosam/test.yml +++ b/tests/modules/gatk4/fastqtosam/test.yml @@ -6,7 +6,6 @@ files: - path: output/gatk4/test.bam - path: output/gatk4/versions.yml - md5sum: 381cdb2496b2fcc7bbc371a6e4156c7e - name: gatk4 fastqtosam test_gatk4_fastqtosam_paired_end command: nextflow run tests/modules/gatk4/fastqtosam -entry test_gatk4_fastqtosam_paired_end -c tests/config/nextflow.config -c ./tests/modules/gatk4/fastqtosam/nextflow.config @@ -16,4 +15,3 @@ files: - path: output/gatk4/test.bam - path: output/gatk4/versions.yml - md5sum: 1d07c90cbd31992c9ba003f02d1b3502 diff --git a/tests/modules/gatk4/filtermutectcalls/test.yml b/tests/modules/gatk4/filtermutectcalls/test.yml index 12cf4e69..6f650f32 100644 --- a/tests/modules/gatk4/filtermutectcalls/test.yml +++ b/tests/modules/gatk4/filtermutectcalls/test.yml @@ -8,6 +8,7 @@ - path: output/gatk4/test.filtered.vcf.gz.filteringStats.tsv md5sum: 55f228e5520c8b9fbac017d3a3a6c5fd - path: output/gatk4/test.filtered.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 filtermutectcalls test_gatk4_filtermutectcalls_with_files command: nextflow run ./tests/modules/gatk4/filtermutectcalls -entry test_gatk4_filtermutectcalls_with_files -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/filtermutectcalls/nextflow.config @@ -19,6 +20,7 @@ - path: output/gatk4/test.filtered.vcf.gz.filteringStats.tsv md5sum: 9ae27fbd04af1a2ea574e2ff1c3a683b - path: output/gatk4/test.filtered.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 filtermutectcalls test_gatk4_filtermutectcalls_use_val command: nextflow run ./tests/modules/gatk4/filtermutectcalls -entry test_gatk4_filtermutectcalls_use_val -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/filtermutectcalls/nextflow.config @@ -30,3 +32,4 @@ - path: output/gatk4/test.filtered.vcf.gz.filteringStats.tsv md5sum: 95cc3e37705bd3b97a292c5d46ab82f3 - path: output/gatk4/test.filtered.vcf.gz.tbi + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/gatherbqsrreports/test.yml b/tests/modules/gatk4/gatherbqsrreports/test.yml index 576889de..2fb4917a 100644 --- a/tests/modules/gatk4/gatherbqsrreports/test.yml +++ b/tests/modules/gatk4/gatherbqsrreports/test.yml @@ -7,7 +7,6 @@ - path: output/gatk4/test.table md5sum: 9603b69fdc3b5090de2e0dd78bfcc4bf - path: output/gatk4/versions.yml - md5sum: 8d52c5aaab73294e9ea5491b95f3e1e1 - name: gatk4 gatherbqsrreports test_gatk4_gatherbqsrreports_multiple command: nextflow run tests/modules/gatk4/gatherbqsrreports -entry test_gatk4_gatherbqsrreports_multiple -c tests/config/nextflow.config @@ -18,4 +17,3 @@ - path: output/gatk4/test.table md5sum: 0c1257eececf95db8ca378272d0f21f9 - path: output/gatk4/versions.yml - md5sum: 91cad396b9f2045c3cd8c0f256672e80 diff --git a/tests/modules/gatk4/gatherpileupsummaries/test.yml b/tests/modules/gatk4/gatherpileupsummaries/test.yml index 0c38a602..efd02f52 100644 --- a/tests/modules/gatk4/gatherpileupsummaries/test.yml +++ b/tests/modules/gatk4/gatherpileupsummaries/test.yml @@ -6,3 +6,4 @@ files: - path: output/gatk4/test.pileupsummaries.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/genomicsdbimport/test.yml b/tests/modules/gatk4/genomicsdbimport/test.yml index 5c4ea2bb..765cbfbe 100644 --- a/tests/modules/gatk4/genomicsdbimport/test.yml +++ b/tests/modules/gatk4/genomicsdbimport/test.yml @@ -5,11 +5,9 @@ - gatk4/genomicsdbimport files: - path: output/gatk4/test/__tiledb_workspace.tdb - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/gatk4/test/callset.json md5sum: a7d07d1c86449bbb1091ff29368da07a - path: output/gatk4/test/chr22$1$40001/.__consolidation_lock - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/gatk4/test/chr22$1$40001/__array_schema.tdb - path: output/gatk4/test/chr22$1$40001/genomicsdb_meta_dir/genomicsdb_column_bounds.json md5sum: 2502f79658bc000578ebcfddfc1194c0 @@ -19,7 +17,6 @@ - path: output/gatk4/test/vidmap.json md5sum: 18d3f68bd2cb6f4474990507ff95017a - path: output/gatk4/versions.yml - md5sum: 91f5c3e9529982f9c819860b403576ce - name: gatk4 genomicsdbimport test_gatk4_genomicsdbimport_get_intervalslist command: nextflow run tests/modules/gatk4/genomicsdbimport -entry test_gatk4_genomicsdbimport_get_intervalslist -c tests/config/nextflow.config -c ./tests/modules/gatk4/genomicsdbimport/nextflow.config @@ -30,9 +27,7 @@ - path: output/gatk4/test.interval_list md5sum: 4c85812ac15fc1cd29711a851d23c0bf - path: output/gatk4/versions.yml - md5sum: a898fe1cbc4acfa5936c0ffdcf121401 - path: output/untar/versions.yml - md5sum: 8f080677b109aea2cfca50208b077534 - name: gatk4 genomicsdbimport test_gatk4_genomicsdbimport_update_genomicsdb command: nextflow run tests/modules/gatk4/genomicsdbimport -entry test_gatk4_genomicsdbimport_update_genomicsdb -c tests/config/nextflow.config -c ./tests/modules/gatk4/genomicsdbimport/nextflow.config @@ -41,11 +36,9 @@ - gatk4/genomicsdbimport files: - path: output/gatk4/test_genomicsdb/__tiledb_workspace.tdb - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/gatk4/test_genomicsdb/callset.json md5sum: 1ea31b59b9a218dd5681164aff4a5e07 - path: output/gatk4/test_genomicsdb/chr22$1$40001/.__consolidation_lock - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/gatk4/test_genomicsdb/chr22$1$40001/__array_schema.tdb md5sum: 6709e67921ae840bf61fbfb192554eda - path: output/gatk4/test_genomicsdb/chr22$1$40001/genomicsdb_meta_dir/genomicsdb_column_bounds.json @@ -55,6 +48,4 @@ - path: output/gatk4/test_genomicsdb/vidmap.json md5sum: 18d3f68bd2cb6f4474990507ff95017a - path: output/gatk4/versions.yml - md5sum: d87baa3f4218c5554cad3c008cb6cbc4 - path: output/untar/versions.yml - md5sum: 9b2916aea9790bdf427c0cb38109110c diff --git a/tests/modules/gatk4/genotypegvcfs/main.nf b/tests/modules/gatk4/genotypegvcfs/main.nf index a5ae8d46..75990958 100644 --- a/tests/modules/gatk4/genotypegvcfs/main.nf +++ b/tests/modules/gatk4/genotypegvcfs/main.nf @@ -9,93 +9,96 @@ include { UNTAR } from '../../../../modules/untar/main.nf' workflow test_gatk4_genotypegvcfs_vcf_input { input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_idx'], checkIfExists: true), - [] - ] + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_idx'], checkIfExists: true), + [], + [] + ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - GATK4_GENOTYPEGVCFS ( input, fasta, fastaIndex, fastaDict, [], []) + GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, [], []) } // Basic parameters with compressed VCF input workflow test_gatk4_genotypegvcfs_gz_input { input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), - [] - ] + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), + [], + [] + ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - GATK4_GENOTYPEGVCFS ( input, fasta, fastaIndex, fastaDict, [], []) + GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, [], []) } // Basic parameters + optional dbSNP workflow test_gatk4_genotypegvcfs_gz_input_dbsnp { input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), - [] - ] + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), + [], + [] + ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) - dbsnpIndex = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) - GATK4_GENOTYPEGVCFS ( input, fasta, fastaIndex, fastaDict, dbsnp, dbsnpIndex) + GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, dbsnp, dbsnp_tbi) } // Basic parameters + optional intervals workflow test_gatk4_genotypegvcfs_gz_input_intervals { input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) ] + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - GATK4_GENOTYPEGVCFS ( input, fasta, fastaIndex, fastaDict, [], []) + GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, [], []) } // Basic parameters + optional dbSNP + optional intervals workflow test_gatk4_genotypegvcfs_gz_input_dbsnp_intervals { input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) - ] + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) - dbsnpIndex = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) - GATK4_GENOTYPEGVCFS ( input, fasta, fastaIndex, fastaDict, dbsnp, dbsnpIndex ) + GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, dbsnp, dbsnp_tbi ) } // Basic parameters with GenomicsDB input workflow test_gatk4_genotypegvcfs_gendb_input { - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) test_genomicsdb = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] @@ -106,18 +109,18 @@ workflow test_gatk4_genotypegvcfs_gendb_input { input = Channel.of([ id:'test' ]).combine(gendb) - GATK4_GENOTYPEGVCFS ( input, fasta, fastaIndex, fastaDict, [], []) + GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, [], []) } // Basic parameters with GenomicsDB + optional dbSNP workflow test_gatk4_genotypegvcfs_gendb_input_dbsnp { - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) - dbsnpIndex = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) test_genomicsdb = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] @@ -127,15 +130,15 @@ workflow test_gatk4_genotypegvcfs_gendb_input_dbsnp { gendb.add([]) input = Channel.of([ id:'test' ]).combine(gendb) - GATK4_GENOTYPEGVCFS ( input, fasta, fastaIndex, fastaDict, dbsnp, dbsnpIndex) + GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, dbsnp, dbsnp_tbi) } // Basic parameters with GenomicsDB + optional intervals workflow test_gatk4_genotypegvcfs_gendb_input_intervals { - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) test_genomicsdb = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] @@ -145,18 +148,18 @@ workflow test_gatk4_genotypegvcfs_gendb_input_intervals { gendb.add([file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)]) input = Channel.of([ id:'test' ]).combine(gendb) - GATK4_GENOTYPEGVCFS ( input, fasta, fastaIndex, fastaDict, [], [] ) + GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, [], [] ) } // Basic parameters with GenomicsDB + optional dbSNP + optional intervals workflow test_gatk4_genotypegvcfs_gendb_input_dbsnp_intervals { - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - fastaIndex = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) - fastaDict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) - dbsnpIndex = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) + dbsnp = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz'], checkIfExists: true) + dbsnp_tbi = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_vcf_gz_tbi'], checkIfExists: true) test_genomicsdb = [ [], file(params.test_data['homo_sapiens']['illumina']['test_genomicsdb_tar_gz'], checkIfExists: true) ] @@ -166,5 +169,5 @@ workflow test_gatk4_genotypegvcfs_gendb_input_dbsnp_intervals { gendb.add([file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)]) input = Channel.of([ id:'test' ]).combine(gendb) - GATK4_GENOTYPEGVCFS ( input, fasta, fastaIndex, fastaDict, dbsnp, dbsnpIndex ) + GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, dbsnp, dbsnp_tbi ) } diff --git a/tests/modules/gatk4/genotypegvcfs/test.yml b/tests/modules/gatk4/genotypegvcfs/test.yml index dff79460..ec8ee951 100644 --- a/tests/modules/gatk4/genotypegvcfs/test.yml +++ b/tests/modules/gatk4/genotypegvcfs/test.yml @@ -10,6 +10,7 @@ "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", ] - path: output/gatk4/test.genotyped.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gz_input command: nextflow run ./tests/modules/gatk4/genotypegvcfs -entry test_gatk4_genotypegvcfs_gz_input -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/genotypegvcfs/nextflow.config @@ -23,6 +24,7 @@ "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", ] - path: output/gatk4/test.genotyped.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gz_input_dbsnp command: nextflow run ./tests/modules/gatk4/genotypegvcfs -entry test_gatk4_genotypegvcfs_gz_input_dbsnp -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/genotypegvcfs/nextflow.config @@ -36,6 +38,7 @@ "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DB;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", ] - path: output/gatk4/test.genotyped.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gz_input_intervals command: nextflow run ./tests/modules/gatk4/genotypegvcfs -entry test_gatk4_genotypegvcfs_gz_input_intervals -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/genotypegvcfs/nextflow.config @@ -49,6 +52,7 @@ "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", ] - path: output/gatk4/test.genotyped.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gz_input_dbsnp_intervals command: nextflow run ./tests/modules/gatk4/genotypegvcfs -entry test_gatk4_genotypegvcfs_gz_input_dbsnp_intervals -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/genotypegvcfs/nextflow.config @@ -59,6 +63,7 @@ - path: output/gatk4/test.genotyped.vcf.gz contains: ["AC=2;AF=1.00;AN=2;DB;DP=20;ExcessHet=0.0000;FS=0.000;MLEAC=2;MLEAF=1.00;MQ=60.00;QD=24.05;SOR=0.693"] - path: output/gatk4/test.genotyped.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gendb_input command: nextflow run ./tests/modules/gatk4/genotypegvcfs -entry test_gatk4_genotypegvcfs_gendb_input -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/genotypegvcfs/nextflow.config @@ -72,6 +77,7 @@ "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", ] - path: output/gatk4/test.genotyped.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gendb_input_dbsnp command: nextflow run ./tests/modules/gatk4/genotypegvcfs -entry test_gatk4_genotypegvcfs_gendb_input_dbsnp -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/genotypegvcfs/nextflow.config @@ -85,6 +91,7 @@ "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DB;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", ] - path: output/gatk4/test.genotyped.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gendb_input_intervals command: nextflow run ./tests/modules/gatk4/genotypegvcfs -entry test_gatk4_genotypegvcfs_gendb_input_intervals -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/genotypegvcfs/nextflow.config @@ -98,6 +105,7 @@ "AC=1;AF=0.500;AN=2;BaseQRankSum=0.00;DP=211;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;MQRankSum=0.00;QD=0.95;ReadPosRankSum=1.09;SOR=0.680", ] - path: output/gatk4/test.genotyped.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 genotypegvcfs test_gatk4_genotypegvcfs_gendb_input_dbsnp_intervals command: nextflow run ./tests/modules/gatk4/genotypegvcfs -entry test_gatk4_genotypegvcfs_gendb_input_dbsnp_intervals -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/genotypegvcfs/nextflow.config @@ -108,3 +116,4 @@ - path: output/gatk4/test.genotyped.vcf.gz contains: ["AC=2;AF=1.00;AN=2;DP=2;ExcessHet=0.0000;FS=0.000;MLEAC=1;MLEAF=0.500;MQ=60.00;QD=18.66;SOR=0.693"] - path: output/gatk4/test.genotyped.vcf.gz.tbi + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/getpileupsummaries/test.yml b/tests/modules/gatk4/getpileupsummaries/test.yml index e305d412..2e4acce9 100644 --- a/tests/modules/gatk4/getpileupsummaries/test.yml +++ b/tests/modules/gatk4/getpileupsummaries/test.yml @@ -7,7 +7,6 @@ - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - path: output/gatk4/versions.yml - md5sum: 059123619f3ed8d4cd178c4390b81e69 - name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_separate_sites command: nextflow run tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_separate_sites -c tests/config/nextflow.config @@ -18,7 +17,6 @@ - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - path: output/gatk4/versions.yml - md5sum: 76b5388b0c5b5762d8d33e34b23f181d - name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_separate_sites_cram command: nextflow run tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_separate_sites_cram -c tests/config/nextflow.config @@ -29,4 +27,3 @@ - path: output/gatk4/test.pileups.table md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - path: output/gatk4/versions.yml - md5sum: 2fa51319c2b1d678ee00ab09512cf268 diff --git a/tests/modules/gatk4/haplotypecaller/test.yml b/tests/modules/gatk4/haplotypecaller/test.yml index 31dd23fd..3d416a0d 100644 --- a/tests/modules/gatk4/haplotypecaller/test.yml +++ b/tests/modules/gatk4/haplotypecaller/test.yml @@ -6,6 +6,7 @@ files: - path: output/gatk4/test.vcf.gz - path: output/gatk4/test.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 haplotypecaller test_gatk4_haplotypecaller_cram command: nextflow run ./tests/modules/gatk4/haplotypecaller -entry test_gatk4_haplotypecaller_cram -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/haplotypecaller/nextflow.config @@ -15,6 +16,7 @@ files: - path: output/gatk4/test.vcf.gz - path: output/gatk4/test.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 haplotypecaller test_gatk4_haplotypecaller_intervals_dbsnp command: nextflow run ./tests/modules/gatk4/haplotypecaller -entry test_gatk4_haplotypecaller_intervals_dbsnp -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/haplotypecaller/nextflow.config @@ -24,3 +26,4 @@ files: - path: output/gatk4/test.vcf.gz - path: output/gatk4/test.vcf.gz.tbi + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/indexfeaturefile/test.yml b/tests/modules/gatk4/indexfeaturefile/test.yml index 938c2b91..9187fa4a 100644 --- a/tests/modules/gatk4/indexfeaturefile/test.yml +++ b/tests/modules/gatk4/indexfeaturefile/test.yml @@ -5,6 +5,7 @@ - gatk4/indexfeaturefile files: - path: output/gatk4/genome.bed.idx + - path: output/gatk4/versions.yml - name: gatk4 indexfeaturefile test_gatk4_indexfeaturefile_bed_gz command: nextflow run tests/modules/gatk4/indexfeaturefile -entry test_gatk4_indexfeaturefile_bed_gz -c tests/config/nextflow.config -c ./tests/modules/gatk4/indexfeaturefile/nextflow.config @@ -15,7 +16,6 @@ - path: output/gatk4/genome.bed.gz.tbi md5sum: 4bc51e2351a6e83f20e13be75861f941 - path: output/gatk4/versions.yml - md5sum: e5003204702f83aabdb4141272c704d2 - name: gatk4 indexfeaturefile test_gatk4_indexfeaturefile_vcf command: nextflow run tests/modules/gatk4/indexfeaturefile -entry test_gatk4_indexfeaturefile_vcf -c tests/config/nextflow.config -c ./tests/modules/gatk4/indexfeaturefile/nextflow.config @@ -25,7 +25,6 @@ files: - path: output/gatk4/test.genome.vcf.idx - path: output/gatk4/versions.yml - md5sum: 08cd7c49cfb752fc2905f600106a0345 - name: gatk4 indexfeaturefile test_gatk4_indexfeaturefile_vcf_gz command: nextflow run tests/modules/gatk4/indexfeaturefile -entry test_gatk4_indexfeaturefile_vcf_gz -c tests/config/nextflow.config @@ -36,4 +35,3 @@ - path: output/gatk4/test.genome.vcf.gz.tbi md5sum: fedd68eaddf8d31257853d9da8325bd3 - path: output/gatk4/versions.yml - md5sum: b388d1681831a40264a7a27f67a8b247 diff --git a/tests/modules/gatk4/intervallisttobed/test.yml b/tests/modules/gatk4/intervallisttobed/test.yml index 9e6e38c5..a148f745 100644 --- a/tests/modules/gatk4/intervallisttobed/test.yml +++ b/tests/modules/gatk4/intervallisttobed/test.yml @@ -6,3 +6,4 @@ files: - path: output/gatk4/test.bed md5sum: 9046675d01199fbbee79f2bc1c5dce52 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/intervallisttools/test.yml b/tests/modules/gatk4/intervallisttools/test.yml index c9cb23b8..5542714b 100644 --- a/tests/modules/gatk4/intervallisttools/test.yml +++ b/tests/modules/gatk4/intervallisttools/test.yml @@ -14,3 +14,4 @@ md5sum: 55da0f3c69504148f4e7002a0e072cfe - path: output/gatk4/test_split/temp_0004_of_6/4scattered.interval_list md5sum: d29ca4447f32547f2936567fa902796a + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/learnreadorientationmodel/test.yml b/tests/modules/gatk4/learnreadorientationmodel/test.yml index b88df15f..d3d64c50 100644 --- a/tests/modules/gatk4/learnreadorientationmodel/test.yml +++ b/tests/modules/gatk4/learnreadorientationmodel/test.yml @@ -5,3 +5,4 @@ - gatk4/learnreadorientationmodel files: - path: output/gatk4/test.artifact-prior.tar.gz + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/markduplicates/nextflow.config b/tests/modules/gatk4/markduplicates/nextflow.config index 8730f1c4..787c9589 100644 --- a/tests/modules/gatk4/markduplicates/nextflow.config +++ b/tests/modules/gatk4/markduplicates/nextflow.config @@ -2,4 +2,8 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: GATK4_MARKDUPLICATES { + ext.args = '--CREATE_INDEX true' + } + } diff --git a/tests/modules/gatk4/markduplicates/test.yml b/tests/modules/gatk4/markduplicates/test.yml index 7bf49b56..1fbd768e 100644 --- a/tests/modules/gatk4/markduplicates/test.yml +++ b/tests/modules/gatk4/markduplicates/test.yml @@ -10,7 +10,6 @@ md5sum: 2efd50b2e6b7fd9bdf242cd9e266cfa9 - path: output/gatk4/test.metrics - path: output/gatk4/versions.yml - md5sum: 0bc949aaa8792cd6c537cdaab0e2c145 - name: gatk4 markduplicates test_gatk4_markduplicates_multiple_bams command: nextflow run tests/modules/gatk4/markduplicates -entry test_gatk4_markduplicates_multiple_bams -c tests/config/nextflow.config -c ./tests/modules/gatk4/markduplicates/nextflow.config @@ -24,4 +23,3 @@ md5sum: 8187febc6108ffef7f907e89b9c091a4 - path: output/gatk4/test.metrics - path: output/gatk4/versions.yml - md5sum: b10d63cf7b2b672915cb30cea081ccd5 diff --git a/tests/modules/gatk4/markduplicatesspark/main.nf b/tests/modules/gatk4/markduplicatesspark/main.nf new file mode 100644 index 00000000..2f294f59 --- /dev/null +++ b/tests/modules/gatk4/markduplicatesspark/main.nf @@ -0,0 +1,28 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_MARKDUPLICATES_SPARK } from '../../../../modules/gatk4/markduplicatesspark/main.nf' + +workflow test_gatk4_markduplicates_spark { + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) + ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) + + GATK4_MARKDUPLICATES_SPARK ( input, fasta, fai, dict ) +} + +workflow test_gatk4_markduplicates_spark_multiple_bams { + input = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true) + ] ] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) + + GATK4_MARKDUPLICATES_SPARK ( input, fasta, fai, dict ) +} diff --git a/tests/modules/gatk4/markduplicatesspark/nextflow.config b/tests/modules/gatk4/markduplicatesspark/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/gatk4/markduplicatesspark/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/gatk4/markduplicatesspark/test.yml b/tests/modules/gatk4/markduplicatesspark/test.yml new file mode 100644 index 00000000..b0c0b40d --- /dev/null +++ b/tests/modules/gatk4/markduplicatesspark/test.yml @@ -0,0 +1,25 @@ +- name: gatk4 markduplicates test_gatk4_markduplicates_spark + command: nextflow run tests/modules/gatk4/markduplicatesspark -entry test_gatk4_markduplicates_spark -c tests/config/nextflow.config -c ./tests/modules/gatk4/markduplicatesspark/nextflow.config + tags: + - gatk4 + - gatk4/markduplicatesspark + files: + - path: output/gatk4/test.bai + md5sum: e9c125e82553209933883b4fe2b8d7c2 + - path: output/gatk4/test.bam + md5sum: 2efd50b2e6b7fd9bdf242cd9e266cfa9 + - path: output/gatk4/test.metrics + - path: output/gatk4/versions.yml + +- name: gatk4 markduplicates test_gatk4_markduplicates_spark_multiple_bams + command: nextflow run tests/modules/gatk4/markduplicatesspark -entry test_gatk4_markduplicates_spark_multiple_bams -c tests/config/nextflow.config -c ./tests/modules/gatk4/markduplicatesspark/nextflow.config + tags: + - gatk4 + - gatk4/markduplicatesspark + files: + - path: output/gatk4/test.bai + md5sum: bad71df9c876e72a5bc0a3e0fd755f92 + - path: output/gatk4/test.bam + md5sum: 8187febc6108ffef7f907e89b9c091a4 + - path: output/gatk4/test.metrics + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/mergebamalignment/test.yml b/tests/modules/gatk4/mergebamalignment/test.yml index 5e1ab8d5..b1bb32b2 100644 --- a/tests/modules/gatk4/mergebamalignment/test.yml +++ b/tests/modules/gatk4/mergebamalignment/test.yml @@ -6,3 +6,4 @@ files: - path: output/gatk4/test.bam md5sum: e6f1b343700b7ccb94e81ae127433988 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/mergemutectstats/test.yml b/tests/modules/gatk4/mergemutectstats/test.yml index 44d1c5f2..cc71854e 100644 --- a/tests/modules/gatk4/mergemutectstats/test.yml +++ b/tests/modules/gatk4/mergemutectstats/test.yml @@ -6,3 +6,4 @@ files: - path: output/gatk4/test.vcf.gz.stats md5sum: 17d2091015d04cbd4a26b7a67dc659e6 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/mergevcfs/main.nf b/tests/modules/gatk4/mergevcfs/main.nf index fa09d758..99a2158d 100644 --- a/tests/modules/gatk4/mergevcfs/main.nf +++ b/tests/modules/gatk4/mergevcfs/main.nf @@ -5,22 +5,22 @@ nextflow.enable.dsl = 2 include { GATK4_MERGEVCFS } from '../../../../modules/gatk4/mergevcfs/main.nf' workflow test_gatk4_mergevcfs { - input = [ [ id:'test' ], // meta map - [ file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test2_vcf'], checkIfExists: true) ] - ] - dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) - - GATK4_MERGEVCFS ( input, dict, false ) -} - -workflow test_gatk4_mergevcfs_refdict { def input = [] input = [ [ id:'test' ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test2_vcf'], checkIfExists: true) ] + file(params.test_data['sarscov2']['illumina']['test2_vcf'], checkIfExists: true) ] ] + dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) - GATK4_MERGEVCFS ( input, dict, true ) + GATK4_MERGEVCFS ( input, dict ) +} + +workflow test_gatk4_mergevcfs_no_dict { + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test2_vcf'], checkIfExists: true) ] + ] + + GATK4_MERGEVCFS ( input, [] ) } diff --git a/tests/modules/gatk4/mergevcfs/test.yml b/tests/modules/gatk4/mergevcfs/test.yml index 3ff2bf93..da2f7578 100644 --- a/tests/modules/gatk4/mergevcfs/test.yml +++ b/tests/modules/gatk4/mergevcfs/test.yml @@ -6,12 +6,14 @@ files: - path: output/gatk4/test.vcf.gz md5sum: 5b289bda88d3a3504f2e19ee8cff177c + - path: output/gatk4/versions.yml -- name: gatk4 mergevcfs test_gatk4_mergevcfs_refdict - command: nextflow run ./tests/modules/gatk4/mergevcfs -entry test_gatk4_mergevcfs_refdict -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mergevcfs/nextflow.config +- name: gatk4 mergevcfs test_gatk4_mergevcfs_no_dict + command: nextflow run ./tests/modules/gatk4/mergevcfs -entry test_gatk4_mergevcfs_no_dict -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mergevcfs/nextflow.config tags: - gatk4/mergevcfs - gatk4 files: - path: output/gatk4/test.vcf.gz md5sum: 5b289bda88d3a3504f2e19ee8cff177c + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/mutect2/main.nf b/tests/modules/gatk4/mutect2/main.nf index 19b22914..0b4339f0 100644 --- a/tests/modules/gatk4/mutect2/main.nf +++ b/tests/modules/gatk4/mutect2/main.nf @@ -2,22 +2,22 @@ nextflow.enable.dsl = 2 -include { GATK4_MUTECT2 } from '../../../../modules/gatk4/mutect2/main.nf' +include { GATK4_MUTECT2 } from '../../../../modules/gatk4/mutect2/main.nf' +include { GATK4_MUTECT2 as GATK4_MUTECT2_PAIR } from '../../../../modules/gatk4/mutect2/main.nf' +include { GATK4_MUTECT2 as GATK4_MUTECT2_MITO } from '../../../../modules/gatk4/mutect2/main.nf' +include { GATK4_MUTECT2 as GATK4_MUTECT2_F1R2 } from '../../../../modules/gatk4/mutect2/main.nf' workflow test_gatk4_mutect2_tumor_normal_pair { - input = [ [ id:'test'], // meta map + input = [ [ id:'test', normal_id:'normal', tumor_id:'tumour' ], // meta map [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true) ], [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true) ], - [], - ["normal"] + [] ] - run_single = false - run_pon = false - run_mito = false + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) @@ -26,19 +26,38 @@ workflow test_gatk4_mutect2_tumor_normal_pair { panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2_PAIR ( input, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) +} + +workflow test_gatk4_mutect2_tumor_normal_pair_f1r2 { + input = [ [ id:'test', normal_id:'normal', tumor_id:'tumour' ], // meta map + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true) + ], + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true) + ], + [] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) + germline_resource = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'], checkIfExists: true) + germline_resource_tbi = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz_tbi'], checkIfExists: true) + panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) + panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) + + GATK4_MUTECT2_F1R2 ( input, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } workflow test_gatk4_mutect2_tumor_single { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true)], [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true)], - [], [] ] - run_single = true - run_pon = false - run_mito = false + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) @@ -47,19 +66,16 @@ workflow test_gatk4_mutect2_tumor_single { panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2 ( input, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } workflow test_gatk4_mutect2_cram_input { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram'], checkIfExists: true)], [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true)], - [], [] ] - run_single = true - run_pon = false - run_mito = false + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) @@ -68,48 +84,37 @@ workflow test_gatk4_mutect2_cram_input { panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2 ( input, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } workflow test_gatk4_mutect2_generate_pon { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true)], [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true)], - [], [] ] - run_single = false - run_pon = true - run_mito = false + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) - germline_resource = [] - germline_resource_tbi = [] - panel_of_normals = [] - panel_of_normals_tbi = [] - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2 ( input, fasta, fai, dict, [], [], [], [] ) } -// mitochondria mode would ideally have some mitochondria test data, but since the mitochondria settings only increase detection sensitivity, we can use the chr22 data as a stand in as it is already a small dataset, the extra variants detected compared to generate_pon shows the mode is working. +// mitochondria mode would ideally have some mitochondria test data +// but since the mitochondria settings only increase detection sensitivity +// we can use the chr22 data as a stand in as it is already a small dataset +// the extra variants detected compared to generate_pon shows the mode is working workflow test_gatk4_mutect2_mitochondria { input = [ [ id:'test'], // meta map [ file(params.test_data['homo_sapiens']['illumina']['mitochon_standin_recalibrated_sorted_bam'], checkIfExists: true)], [ file(params.test_data['homo_sapiens']['illumina']['mitochon_standin_recalibrated_sorted_bam_bai'], checkIfExists: true)], - [ file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)], - [] + [ file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)] ] - run_single = false - run_pon = false - run_mito = true + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) - germline_resource = [] - germline_resource_tbi = [] - panel_of_normals = [] - panel_of_normals_tbi = [] - GATK4_MUTECT2 ( input, run_single, run_pon, run_mito, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2_MITO ( input, fasta, fai, dict, [], [], [], [] ) } diff --git a/tests/modules/gatk4/mutect2/nextflow.config b/tests/modules/gatk4/mutect2/nextflow.config index 8730f1c4..3b5f6c62 100644 --- a/tests/modules/gatk4/mutect2/nextflow.config +++ b/tests/modules/gatk4/mutect2/nextflow.config @@ -2,4 +2,16 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: GATK4_MUTECT2_PAIR { + ext.args = { "--normal-sample $meta.normal_id" } + } + + withName: GATK4_MUTECT2_MITO { + ext.args = { "--mitochondria-mode" } + } + + withName: GATK4_MUTECT2_F1R2 { + ext.args = { "--normal-sample $meta.normal_id --f1r2-tar-gz ${meta.id}.f1r2.tar.gz" } + } + } diff --git a/tests/modules/gatk4/mutect2/test.yml b/tests/modules/gatk4/mutect2/test.yml index f8107e6d..3cefce09 100644 --- a/tests/modules/gatk4/mutect2/test.yml +++ b/tests/modules/gatk4/mutect2/test.yml @@ -1,5 +1,16 @@ - name: gatk4 mutect2 test_gatk4_mutect2_tumor_normal_pair command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_tumor_normal_pair -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config + tags: + - gatk4 + - gatk4/mutect2 + files: + - path: output/gatk4/test.vcf.gz + - path: output/gatk4/test.vcf.gz.stats + md5sum: 17d2091015d04cbd4a26b7a67dc659e6 + - path: output/gatk4/test.vcf.gz.tbi + +- name: gatk4 mutect2 test_gatk4_mutect2_tumor_normal_pair_f1r2 + command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_tumor_normal_pair_f1r2 -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config tags: - gatk4 - gatk4/mutect2 @@ -9,6 +20,7 @@ - path: output/gatk4/test.vcf.gz.stats md5sum: 17d2091015d04cbd4a26b7a67dc659e6 - path: output/gatk4/test.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 mutect2 test_gatk4_mutect2_tumor_single command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_tumor_single -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config @@ -20,6 +32,7 @@ - path: output/gatk4/test.vcf.gz.stats md5sum: 55ed641e16089afb33cdbc478e202d3d - path: output/gatk4/test.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 mutect2 test_gatk4_mutect2_cram_input command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_cram_input -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config @@ -31,6 +44,7 @@ - path: output/gatk4/test.vcf.gz.stats md5sum: 55ed641e16089afb33cdbc478e202d3d - path: output/gatk4/test.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 mutect2 test_gatk4_mutect2_generate_pon command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_generate_pon -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config @@ -42,6 +56,7 @@ - path: output/gatk4/test.vcf.gz.stats md5sum: b569ce66bbffe9588b3d221e821023ee - path: output/gatk4/test.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 mutect2 test_gatk4_mutect2_mitochondria command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_mitochondria -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config @@ -53,3 +68,4 @@ - path: output/gatk4/test.vcf.gz.stats md5sum: fc6ea14ca2da346babe78161beea28c9 - path: output/gatk4/test.vcf.gz.tbi + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/revertsam/test.yml b/tests/modules/gatk4/revertsam/test.yml index 4199b118..2ebdb685 100644 --- a/tests/modules/gatk4/revertsam/test.yml +++ b/tests/modules/gatk4/revertsam/test.yml @@ -6,3 +6,4 @@ files: - path: output/gatk4/test.reverted.bam md5sum: f783a88deb45c3a2c20ca12cbe1c5652 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/samtofastq/test.yml b/tests/modules/gatk4/samtofastq/test.yml index 66d3ee4c..eb25f33b 100644 --- a/tests/modules/gatk4/samtofastq/test.yml +++ b/tests/modules/gatk4/samtofastq/test.yml @@ -6,6 +6,7 @@ files: - path: output/gatk4/test.fastq.gz md5sum: 50ace41d4c24467f24f8b929540a7797 + - path: output/gatk4/versions.yml - name: gatk4 samtofastq test_gatk4_samtofastq_paired_end command: nextflow run ./tests/modules/gatk4/samtofastq -entry test_gatk4_samtofastq_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/samtofastq/nextflow.config @@ -17,3 +18,4 @@ md5sum: cfea607c9d75fd9ea9704780ad3a499c - path: output/gatk4/test_2.fastq.gz md5sum: 613bf64c023609e1c62ad6ce9e4be8d7 + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/selectvariants/test.yml b/tests/modules/gatk4/selectvariants/test.yml index 5bc32330..42d9dbd8 100644 --- a/tests/modules/gatk4/selectvariants/test.yml +++ b/tests/modules/gatk4/selectvariants/test.yml @@ -7,7 +7,6 @@ - path: output/gatk4/test.selectvariants.vcf.gz - path: output/gatk4/test.selectvariants.vcf.gz.tbi - path: output/gatk4/versions.yml - md5sum: a35d78af179f43652274bc7405d5a785 - name: gatk4 selectvariants test_gatk4_selectvariants_gz_input command: nextflow run tests/modules/gatk4/selectvariants -entry test_gatk4_selectvariants_gz_input -c tests/config/nextflow.config @@ -18,4 +17,3 @@ - path: output/gatk4/test.selectvariants.vcf.gz - path: output/gatk4/test.selectvariants.vcf.gz.tbi - path: output/gatk4/versions.yml - md5sum: c943f3579a369968ca63444eb43fb6e7 diff --git a/tests/modules/gatk4/splitncigarreads/test.yml b/tests/modules/gatk4/splitncigarreads/test.yml index 059d5e75..c38064e2 100644 --- a/tests/modules/gatk4/splitncigarreads/test.yml +++ b/tests/modules/gatk4/splitncigarreads/test.yml @@ -7,4 +7,3 @@ - path: output/gatk4/test.bam md5sum: ceed15c0bd64ff5c38d3816905933b0b - path: output/gatk4/versions.yml - md5sum: 27fceace2528a905ddca2b4db47c4bf5 diff --git a/tests/modules/gatk4/variantfiltration/test.yml b/tests/modules/gatk4/variantfiltration/test.yml index 068e8d63..0ab91091 100644 --- a/tests/modules/gatk4/variantfiltration/test.yml +++ b/tests/modules/gatk4/variantfiltration/test.yml @@ -10,6 +10,7 @@ "BaseQRankSum=-1.318;DP=17;ExcessHet=3.0103;MLEAC=1,0,0;MLEAF=0.500,0.00,0.00;MQRankSum=0.000;RAW_MQandDP=61200,17;ReadPosRankSum=2.365", ] - path: output/gatk4/test.filtered.vcf.gz.tbi + - path: output/gatk4/versions.yml - name: gatk4 variantfiltration test_gatk4_variantfiltration_gz_input command: nextflow run ./tests/modules/gatk4/variantfiltration -entry test_gatk4_variantfiltration_gz_input -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/variantfiltration/nextflow.config @@ -23,3 +24,4 @@ "BaseQRankSum=-1.318;DP=17;ExcessHet=3.0103;MLEAC=1,0,0;MLEAF=0.500,0.00,0.00;MQRankSum=0.000;RAW_MQandDP=61200,17;ReadPosRankSum=2.365", ] - path: output/gatk4/test.filtered.vcf.gz.tbi + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/variantrecalibrator/main.nf b/tests/modules/gatk4/variantrecalibrator/main.nf index be7004e7..66dde5dd 100644 --- a/tests/modules/gatk4/variantrecalibrator/main.nf +++ b/tests/modules/gatk4/variantrecalibrator/main.nf @@ -2,73 +2,67 @@ nextflow.enable.dsl = 2 -include { GATK4_VARIANTRECALIBRATOR as GATK4_VARIANTRECALIBRATOR_NO_ALLELESPECIFICTY } from '../../../../modules/gatk4/variantrecalibrator/main.nf' +include { GATK4_VARIANTRECALIBRATOR as GATK4_VARIANTRECALIBRATOR_NO_ALLELESPECIFICTY } from '../../../../modules/gatk4/variantrecalibrator/main.nf' include { GATK4_VARIANTRECALIBRATOR as GATK4_VARIANTRECALIBRATOR_WITH_ALLELESPECIFICTY } from '../../../../modules/gatk4/variantrecalibrator/main.nf' workflow test_gatk4_variantrecalibrator { input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true) ] + resources = [[ + file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['res_1000g_omni2_5_hg38_21_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['res_1000g_phase1_snps_hg38_21_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + ], [ + file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['res_1000g_omni2_5_hg38_21_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['res_1000g_phase1_snps_hg38_21_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + ], [ + 'hapmap,known=false,training=true,truth=true,prior=15.0 hapmap_3.3.hg38.vcf.gz', + 'omni,known=false,training=true,truth=false,prior=12.0 1000G_omni2.5.hg38.vcf.gz', + '1000G,known=false,training=true,truth=false,prior=10.0 1000G_phase1.snps.hg38.vcf.gz', + 'dbsnp,known=true,training=false,truth=false,prior=2.0 dbsnp_138.hg38.vcf.gz' + ]] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) - resources = [ - [ - file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['res_1000g_omni2_5_hg38_21_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['res_1000g_phase1_snps_hg38_21_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) - ], - [ - file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['res_1000g_omni2_5_hg38_21_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['res_1000g_phase1_snps_hg38_21_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) - ], - [ - 'hapmap,known=false,training=true,truth=true,prior=15.0 hapmap_3.3.hg38.vcf.gz', - 'omni,known=false,training=true,truth=false,prior=12.0 1000G_omni2.5.hg38.vcf.gz', - '1000G,known=false,training=true,truth=false,prior=10.0 1000G_phase1.snps.hg38.vcf.gz', - 'dbsnp,known=true,training=false,truth=false,prior=2.0 dbsnp_138.hg38.vcf.gz' - ] - ] - GATK4_VARIANTRECALIBRATOR_NO_ALLELESPECIFICTY ( input, fasta, fai, dict, resources) + GATK4_VARIANTRECALIBRATOR_NO_ALLELESPECIFICTY(input, resources, fasta, fai, dict) } workflow test_gatk4_variantrecalibrator_allele_specific { input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true) ] + resources = [[ + file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['res_1000g_omni2_5_hg38_21_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['res_1000g_phase1_snps_hg38_21_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) + ], [ + file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['res_1000g_omni2_5_hg38_21_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['res_1000g_phase1_snps_hg38_21_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) + ], [ + 'hapmap,known=false,training=true,truth=true,prior=15.0 hapmap_3.3.hg38.vcf.gz', + 'omni,known=false,training=true,truth=false,prior=12.0 1000G_omni2.5.hg38.vcf.gz', + '1000G,known=false,training=true,truth=false,prior=10.0 1000G_phase1.snps.hg38.vcf.gz', + 'dbsnp,known=true,training=false,truth=false,prior=2.0 dbsnp_138.hg38.vcf.gz' + ]] + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) - resources = [ - [ - file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['res_1000g_omni2_5_hg38_21_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['res_1000g_phase1_snps_hg38_21_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz'], checkIfExists: true) - ], - [ - file(params.test_data['homo_sapiens']['genome']['hapmap_3_3_hg38_21_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['res_1000g_omni2_5_hg38_21_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['res_1000g_phase1_snps_hg38_21_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['dbsnp_138_hg38_21_vcf_gz_tbi'], checkIfExists: true) - ], - [ - 'hapmap,known=false,training=true,truth=true,prior=15.0 hapmap_3.3.hg38.vcf.gz', - 'omni,known=false,training=true,truth=false,prior=12.0 1000G_omni2.5.hg38.vcf.gz', - '1000G,known=false,training=true,truth=false,prior=10.0 1000G_phase1.snps.hg38.vcf.gz', - 'dbsnp,known=true,training=false,truth=false,prior=2.0 dbsnp_138.hg38.vcf.gz' - ] - ] - GATK4_VARIANTRECALIBRATOR_WITH_ALLELESPECIFICTY ( input, fasta, fai, dict, resources) + GATK4_VARIANTRECALIBRATOR_WITH_ALLELESPECIFICTY(input, resources, fasta, fai, dict) } diff --git a/tests/modules/gatk4/variantrecalibrator/nextflow.config b/tests/modules/gatk4/variantrecalibrator/nextflow.config index 69be3b9c..6c3a9116 100644 --- a/tests/modules/gatk4/variantrecalibrator/nextflow.config +++ b/tests/modules/gatk4/variantrecalibrator/nextflow.config @@ -1,6 +1,7 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: GATK4_VARIANTRECALIBRATOR { ext.args = '--mode SNP -an QD -an MQ -an FS -an SOR' } diff --git a/tests/modules/gatk4/variantrecalibrator/test.yml b/tests/modules/gatk4/variantrecalibrator/test.yml index 42b18e36..bc84bfb3 100644 --- a/tests/modules/gatk4/variantrecalibrator/test.yml +++ b/tests/modules/gatk4/variantrecalibrator/test.yml @@ -10,6 +10,7 @@ - path: output/gatk4/test.recal.idx - path: output/gatk4/test.tranches md5sum: d238e97bf996863969dac7751e345549 + - path: output/gatk4/versions.yml - name: gatk4 variantrecalibrator test_gatk4_variantrecalibrator_allele_specific command: nextflow run tests/modules/gatk4/variantrecalibrator -entry test_gatk4_variantrecalibrator_allele_specific -c tests/config/nextflow.config -c ./tests/modules/gatk4/variantrecalibrator/nextflow.config @@ -23,3 +24,4 @@ - path: output/gatk4/test.recal.idx - path: output/gatk4/test.tranches md5sum: 444438d46716593634a6817958099292 + - path: output/gatk4/versions.yml From 0f7c04647747f535c94f63908bdd82c77f9a9ed1 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 13 Apr 2022 12:51:17 +0200 Subject: [PATCH 168/592] first commit --- modules/elprep/merge/main.nf | 44 ++++++++++++++++++++++ modules/elprep/merge/meta.yml | 44 ++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/elprep/merge/main.nf | 17 +++++++++ tests/modules/elprep/merge/nextflow.config | 5 +++ tests/modules/elprep/merge/test.yml | 11 ++++++ 6 files changed, 125 insertions(+) create mode 100644 modules/elprep/merge/main.nf create mode 100644 modules/elprep/merge/meta.yml create mode 100644 tests/modules/elprep/merge/main.nf create mode 100644 tests/modules/elprep/merge/nextflow.config create mode 100644 tests/modules/elprep/merge/test.yml diff --git a/modules/elprep/merge/main.nf b/modules/elprep/merge/main.nf new file mode 100644 index 00000000..8312d35b --- /dev/null +++ b/modules/elprep/merge/main.nf @@ -0,0 +1,44 @@ +process ELPREP_MERGE { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::elprep=5.1.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/elprep:5.1.2--he881be0_0': + 'quay.io/biocontainers/elprep:5.1.2--he881be0_0' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("**.{bam,sam}"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + if (meta.single_end) { + args += " --single-end" + } + def suffix = args.contains("--output-type sam") ? "sam" : "bam" + + """ + # create directory and move all input so elprep can find and merge them before splitting + mkdir input + mv ${bam} input/ + + elprep merge \\ + input \\ + ${prefix}.${suffix} \\ + $args \\ + --nr-of-threads $task.cpus + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + elprep: \$(elprep 2>&1 | head -n2 | tail -n1 |sed 's/^.*version //;s/ compiled.*\$//') + END_VERSIONS + """ +} diff --git a/modules/elprep/merge/meta.yml b/modules/elprep/merge/meta.yml new file mode 100644 index 00000000..e157fddb --- /dev/null +++ b/modules/elprep/merge/meta.yml @@ -0,0 +1,44 @@ +name: "elprep_merge" +description: Merge split bam/sam chunks in one file +keywords: + - bam + - sam + - merge +tools: + - "elprep": + description: "elPrep is a high-performance tool for preparing .sam/.bam files for variant calling in sequencing pipelines. It can be used as a drop-in replacement for SAMtools/Picard/GATK4." + homepage: "None" + documentation: "None" + tool_dev_url: "None" + doi: "" + licence: "['AGPL v3']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: List of BAM/SAM chunks to merge + pattern: "*.{bam,sam}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + # + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bam: + type: file + description: Merged BAM/SAM file + pattern: "*.{bam,sam}" + +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index cd4913cf..ea22a0d6 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -587,6 +587,10 @@ ectyper: - modules/ectyper/** - tests/modules/ectyper/** +elprep/merge: + - modules/elprep/merge/** + - tests/modules/elprep/merge/** + emmtyper: - modules/emmtyper/** - tests/modules/emmtyper/** diff --git a/tests/modules/elprep/merge/main.nf b/tests/modules/elprep/merge/main.nf new file mode 100644 index 00000000..b4a40ce3 --- /dev/null +++ b/tests/modules/elprep/merge/main.nf @@ -0,0 +1,17 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ELPREP_SPLIT } from '../../../../modules/elprep/split/main.nf' +include { ELPREP_MERGE } from '../../../../modules/elprep/merge/main.nf' + +workflow test_elprep_merge { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) + ] + + ELPREP_SPLIT ( input ) + ELPREP_MERGE ( ELPREP_SPLIT.out.bam ) +} diff --git a/tests/modules/elprep/merge/nextflow.config b/tests/modules/elprep/merge/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/elprep/merge/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/elprep/merge/test.yml b/tests/modules/elprep/merge/test.yml new file mode 100644 index 00000000..c66fe030 --- /dev/null +++ b/tests/modules/elprep/merge/test.yml @@ -0,0 +1,11 @@ +- name: "elprep merge" + command: nextflow run ./tests/modules/elprep/merge -entry test_elprep_merge -c ./tests/config/nextflow.config -c ./tests/modules/elprep/merge/nextflow.config + tags: + - "elprep" + # + - "elprep/merge" + # + files: + - path: "output/elprep/test.bam" + md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/elprep/versions.yml From 39b4b45ba0ed07432f39c3912a4ca615e782db5f Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Wed, 13 Apr 2022 13:31:32 +0200 Subject: [PATCH 169/592] Update test_data.config to include kaiju.tar.gz (#1520) --- tests/config/test_data.config | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 1a5c377c..97d22981 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -28,9 +28,8 @@ params { kraken2_bracken = "${test_data_dir}/genomics/sarscov2/genome/db/kraken2_bracken" kraken2_bracken_tar_gz = "${test_data_dir}/genomics/sarscov2/genome/db/kraken2_bracken.tar.gz" - kaiju_fmi = "${test_data_dir}/genomics/sarscov2/genome/db/kaiju/proteins.fmi" - kaiju_nodes = "${test_data_dir}/genomics/sarscov2/genome/db/kaiju/nodes.dmp" - kaiju_names = "${test_data_dir}/genomics/sarscov2/genome/db/kaiju/names.dmp" + kaiju = "${test_data_dir}/genomics/sarscov2/genome/db/kaiju" + kaiju_tar_gz = "${test_data_dir}/genomics/sarscov2/genome/db/kaiju.tar.gz" ncbi_taxmap_zip = "${test_data_dir}/genomics/sarscov2/genome/db/maltextract/ncbi_taxmap.zip" taxon_list_txt = "${test_data_dir}/genomics/sarscov2/genome/db/maltextract/taxon_list.txt" From 4f5274c3de0c9521f5033893ff61057a74c45ba9 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Wed, 13 Apr 2022 14:30:34 +0200 Subject: [PATCH 170/592] feat: remove read_group which should be set up with task.ext.args (#1521) * feat: remove reat_group which should be set up with ext.args * fix: simplify dragmap command --- modules/bwa/mem/main.nf | 2 -- modules/bwamem2/mem/main.nf | 2 -- modules/dragmap/align/main.nf | 53 +++++++++++------------------------ 3 files changed, 16 insertions(+), 41 deletions(-) diff --git a/modules/bwa/mem/main.nf b/modules/bwa/mem/main.nf index ffa51908..f55af944 100644 --- a/modules/bwa/mem/main.nf +++ b/modules/bwa/mem/main.nf @@ -23,14 +23,12 @@ process BWA_MEM { def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def read_group = meta.read_group ? "-R ${meta.read_group}" : "" def samtools_command = sort_bam ? 'sort' : 'view' """ INDEX=`find -L ./ -name "*.amb" | sed 's/.amb//'` bwa mem \\ $args \\ - $read_group \\ -t $task.cpus \\ \$INDEX \\ $reads \\ diff --git a/modules/bwamem2/mem/main.nf b/modules/bwamem2/mem/main.nf index 50d84cb0..978c4019 100644 --- a/modules/bwamem2/mem/main.nf +++ b/modules/bwamem2/mem/main.nf @@ -23,7 +23,6 @@ process BWAMEM2_MEM { def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def read_group = meta.read_group ? "-R ${meta.read_group}" : "" def samtools_command = sort_bam ? 'sort' : 'view' """ INDEX=`find -L ./ -name "*.amb" | sed 's/.amb//'` @@ -31,7 +30,6 @@ process BWAMEM2_MEM { bwa-mem2 \\ mem \\ $args \\ - $read_group \\ -t $task.cpus \\ \$INDEX \\ $reads \\ diff --git a/modules/dragmap/align/main.nf b/modules/dragmap/align/main.nf index b7f1e33b..f0d59f05 100644 --- a/modules/dragmap/align/main.nf +++ b/modules/dragmap/align/main.nf @@ -24,44 +24,23 @@ process DRAGMAP_ALIGN { def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def read_group = meta.read_group ? "--RGSM ${meta.read_group}" : "" + def reads_command = meta.single_end ? "-1 $reads" : "-1 ${reads[0]} -2 ${reads[1]}" def samtools_command = sort_bam ? 'sort' : 'view' - if (meta.single_end) { - """ - dragen-os \\ - -r $hashmap \\ - $args \\ - $read_group \\ - --num-threads $task.cpus \\ - -1 $reads \\ - 2> ${prefix}.dragmap.log \\ - | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dragmap: \$(echo \$(dragen-os --version 2>&1)) - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) - END_VERSIONS - """ - } else { - """ - dragen-os \\ - -r $hashmap \\ - $args \\ - $read_group \\ - --num-threads $task.cpus \\ - -1 ${reads[0]} \\ - -2 ${reads[1]} \\ - 2> ${prefix}.dragmap.log \\ - | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - + """ + dragen-os \\ + -r $hashmap \\ + $args \\ + --num-threads $task.cpus \\ + $reads_command \\ + 2> ${prefix}.dragmap.log \\ + | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - dragmap: \$(echo \$(dragen-os --version 2>&1)) - samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') - pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) - END_VERSIONS - """ - } + cat <<-END_VERSIONS > versions.yml + "${task.process}": + dragmap: \$(echo \$(dragen-os --version 2>&1)) + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + pigz: \$( pigz --version 2>&1 | sed 's/pigz //g' ) + END_VERSIONS + """ } From 8856f127c58f6af479128be8b8df4d42e442ddbe Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Wed, 13 Apr 2022 14:53:08 +0200 Subject: [PATCH 171/592] Update input in kaiju_kaiju module (#1522) --- modules/kaiju/kaiju/main.nf | 10 ++++++---- modules/kaiju/kaiju/meta.yml | 1 + tests/modules/kaiju/kaiju/main.nf | 18 ++++++++---------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/modules/kaiju/kaiju/main.nf b/modules/kaiju/kaiju/main.nf index 4050ede5..ae8f99e6 100644 --- a/modules/kaiju/kaiju/main.nf +++ b/modules/kaiju/kaiju/main.nf @@ -9,11 +9,11 @@ process KAIJU_KAIJU { input: tuple val(meta), path(reads) - tuple path(db), path(dbnodes) + path(db) output: tuple val(meta), path('*.tsv'), emit: results - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -23,11 +23,13 @@ process KAIJU_KAIJU { def prefix = task.ext.prefix ?: "${meta.id}" def input = meta.single_end ? "-i ${reads}" : "-i ${reads[0]} -j ${reads[1]}" """ + dbnodes=`find -L ${db} -name "*nodes.dmp"` + dbname=`find -L ${db} -name "*.fmi" -not -name "._*"` kaiju \\ $args \\ -z $task.cpus \\ - -t ${dbnodes} \\ - -f ${db} \\ + -t \$dbnodes \\ + -f \$dbname \\ -o ${prefix}.tsv \\ $input diff --git a/modules/kaiju/kaiju/meta.yml b/modules/kaiju/kaiju/meta.yml index 69a74037..e24c8efc 100644 --- a/modules/kaiju/kaiju/meta.yml +++ b/modules/kaiju/kaiju/meta.yml @@ -50,3 +50,4 @@ output: authors: - "@talnor" - "@sofstam" + - "@jfy133" diff --git a/tests/modules/kaiju/kaiju/main.nf b/tests/modules/kaiju/kaiju/main.nf index 00da82a9..10849ff8 100644 --- a/tests/modules/kaiju/kaiju/main.nf +++ b/tests/modules/kaiju/kaiju/main.nf @@ -2,6 +2,7 @@ nextflow.enable.dsl = 2 +include { UNTAR } from '../../../../modules/untar/main.nf' include { KAIJU_KAIJU } from '../../../../modules/kaiju/kaiju/main.nf' workflow test_kaiju_kaiju_single_end { @@ -10,12 +11,10 @@ workflow test_kaiju_kaiju_single_end { [ id:'test', single_end:true ], // meta map file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] - db = [ - file(params.test_data['sarscov2']['genome']['kaiju_fmi'], checkIfExists: true), // database - file(params.test_data['sarscov2']['genome']['kaiju_nodes'], checkIfExists: true) // taxon nodes - ] + db = [ [], file(params.test_data['sarscov2']['genome']['kaiju_tar_gz'], checkIfExists: true) ] - KAIJU_KAIJU ( input, db ) + UNTAR ( db ) + KAIJU_KAIJU ( input, UNTAR.out.untar.map{ it[1] } ) } workflow test_kaiju_kaiju_paired_end { @@ -25,10 +24,9 @@ workflow test_kaiju_kaiju_paired_end { [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] ] - db = [ - file(params.test_data['sarscov2']['genome']['kaiju_fmi'], checkIfExists: true), // database - file(params.test_data['sarscov2']['genome']['kaiju_nodes'], checkIfExists: true) // taxon nodes - ] + db = [ [], file(params.test_data['sarscov2']['genome']['kaiju_tar_gz'], checkIfExists: true) ] + + UNTAR ( db ) + KAIJU_KAIJU ( input, UNTAR.out.untar.map{ it[1] } ) - KAIJU_KAIJU ( input, db ) } From e04970b7d249365cafa5a52912f9a28840481c05 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Wed, 13 Apr 2022 15:15:44 +0200 Subject: [PATCH 172/592] typo in command line (#1523) --- modules/gatk4/markduplicatesspark/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gatk4/markduplicatesspark/main.nf b/modules/gatk4/markduplicatesspark/main.nf index 01a19e5c..77e135db 100644 --- a/modules/gatk4/markduplicatesspark/main.nf +++ b/modules/gatk4/markduplicatesspark/main.nf @@ -23,7 +23,7 @@ process GATK4_MARKDUPLICATES_SPARK { script: def args = task.ext.args ?: '' prefix = task.ext.prefix ?: "${meta.id}" - def input_list = bam.collect{"--INPUT $it"}.join(' ') + def input_list = bam.collect{"--input $it"}.join(' ') def avail_mem = 3 if (!task.memory) { From be4ae28c3c95b3c4047a7d9fb4cb0ed749631cea Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Wed, 13 Apr 2022 15:33:51 +0200 Subject: [PATCH 173/592] Add centrifuge_kreport module (#1514) --- modules/centrifuge/kreport/main.nf | 33 +++++++++++++++ modules/centrifuge/kreport/meta.yml | 41 +++++++++++++++++++ tests/modules/centrifuge/centrifuge/main.nf | 1 - tests/modules/centrifuge/kreport/main.nf | 32 +++++++++++++++ .../centrifuge/kreport/nextflow.config | 5 +++ tests/modules/centrifuge/kreport/test.yml | 21 ++++++++++ 6 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 modules/centrifuge/kreport/main.nf create mode 100644 modules/centrifuge/kreport/meta.yml create mode 100644 tests/modules/centrifuge/kreport/main.nf create mode 100644 tests/modules/centrifuge/kreport/nextflow.config create mode 100644 tests/modules/centrifuge/kreport/test.yml diff --git a/modules/centrifuge/kreport/main.nf b/modules/centrifuge/kreport/main.nf new file mode 100644 index 00000000..124cbdba --- /dev/null +++ b/modules/centrifuge/kreport/main.nf @@ -0,0 +1,33 @@ +process CENTRIFUGE_KREPORT { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::centrifuge=1.0.4_beta" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/centrifuge:1.0.4_beta--h9a82719_6': + 'quay.io/biocontainers/centrifuge:1.0.4_beta--h9a82719_6' }" + + input: + tuple val(meta), path(results) + path db + + output: + tuple val(meta), path('*.txt') , emit: kreport + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + db_name=`find -L ${db} -name "*.1.cf" -not -name "._*" | sed 's/.1.cf//'` + centrifuge-kreport -x \$db_name ${results} > ${prefix}.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + centrifuge: \$( centrifuge --version | sed -n 1p | sed 's/^.*centrifuge-class version //') + END_VERSIONS + """ +} diff --git a/modules/centrifuge/kreport/meta.yml b/modules/centrifuge/kreport/meta.yml new file mode 100644 index 00000000..fbcae24f --- /dev/null +++ b/modules/centrifuge/kreport/meta.yml @@ -0,0 +1,41 @@ +name: "centrifuge_kreport" +description: Creates Kraken-style reports from centrifuge out files +keywords: + - metagenomics +tools: + - centrifuge: + description: Centrifuge is a classifier for metagenomic sequences. + homepage: https://ccb.jhu.edu/software/centrifuge/ + documentation: https://ccb.jhu.edu/software/centrifuge/manual.shtml + doi: 10.1101/gr.210641.116 + licence: ["GPL v3"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - results: + type: file + description: File containing the centrifuge classification results + pattern: "*.{txt}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - kreport: + type: file + description: | + File containing kraken-style report from centrifuge + out files. + pattern: "*.{txt}" +authors: + - "@sofstam" + - "@jfy133" diff --git a/tests/modules/centrifuge/centrifuge/main.nf b/tests/modules/centrifuge/centrifuge/main.nf index 7e44bd80..35deeb58 100644 --- a/tests/modules/centrifuge/centrifuge/main.nf +++ b/tests/modules/centrifuge/centrifuge/main.nf @@ -25,7 +25,6 @@ workflow test_centrifuge_centrifuge_paired_end { file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] ] db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz', checkIfExists: true) ] - //db_name = "minigut_cf" save_unaligned = true save_aligned = false sam_format = false diff --git a/tests/modules/centrifuge/kreport/main.nf b/tests/modules/centrifuge/kreport/main.nf new file mode 100644 index 00000000..397d33aa --- /dev/null +++ b/tests/modules/centrifuge/kreport/main.nf @@ -0,0 +1,32 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { UNTAR } from '../../../../modules/untar/main.nf' +include { CENTRIFUGE_CENTRIFUGE } from '../../../../modules/centrifuge/centrifuge/main.nf' +include { CENTRIFUGE_KREPORT } from '../../../../modules/centrifuge/kreport/main.nf' + +workflow test_centrifuge_kreport_single_end { + + input = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz', checkIfExists: true) ] + + ch_db = UNTAR ( db ) + CENTRIFUGE_CENTRIFUGE ( input, ch_db.untar.map{ it[1] }, false, false, false ) + CENTRIFUGE_KREPORT ( CENTRIFUGE_CENTRIFUGE.out.results, ch_db.untar.map{ it[1] } ) +} + +workflow test_centrifuge_kreport_paired_end { + input = [ [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + db = [ [], file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/minigut_cf.tar.gz', checkIfExists: true) ] + + ch_db = UNTAR ( db ) + CENTRIFUGE_CENTRIFUGE ( input, ch_db.untar.map{ it[1] }, false, false, false ) + CENTRIFUGE_KREPORT ( CENTRIFUGE_CENTRIFUGE.out.results, ch_db.untar.map{ it[1] } ) +} + diff --git a/tests/modules/centrifuge/kreport/nextflow.config b/tests/modules/centrifuge/kreport/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/centrifuge/kreport/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/centrifuge/kreport/test.yml b/tests/modules/centrifuge/kreport/test.yml new file mode 100644 index 00000000..167cb0dc --- /dev/null +++ b/tests/modules/centrifuge/kreport/test.yml @@ -0,0 +1,21 @@ +- name: centrifuge kreport test_centrifuge_kreport_single_end + command: nextflow run tests/modules/centrifuge/kreport -entry test_centrifuge_kreport_single_end -c tests/config/nextflow.config + tags: + - centrifuge + - centrifuge/kreport + files: + - path: output/centrifuge/test.txt + md5sum: af1a51fe57eb6d428350ff4a4bf759d4 + contains: ["unclassified"] + - path: output/centrifuge/versions.yml + +- name: centrifuge kreport test_centrifuge_kreport_paired_end + command: nextflow run tests/modules/centrifuge/kreport -entry test_centrifuge_kreport_paired_end -c tests/config/nextflow.config + tags: + - centrifuge + - centrifuge/kreport + files: + - path: output/centrifuge/test.txt + md5sum: af1a51fe57eb6d428350ff4a4bf759d4 + contains: ["unclassified"] + - path: output/centrifuge/versions.yml From c7def8707bccdbafa54c60be275dcb045e907dd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20H=C3=B6rtenhuber?= Date: Thu, 14 Apr 2022 13:35:01 +0200 Subject: [PATCH 174/592] fix incorrect yaml formatting. (#1264) --- modules/allelecounter/meta.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/allelecounter/meta.yml b/modules/allelecounter/meta.yml index 7d921e12..0734512e 100644 --- a/modules/allelecounter/meta.yml +++ b/modules/allelecounter/meta.yml @@ -32,8 +32,8 @@ input: description: loci file pattern: "*.{tsv}" - fasta: - type: file - description: Input genome fasta file. Required when passing CRAM files. + type: file + description: Input genome fasta file. Required when passing CRAM files. output: - meta: From ee04fc27377391c39cacd79641301f87af48cc4d Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Thu, 14 Apr 2022 12:56:42 -0400 Subject: [PATCH 175/592] add module motus_downloaddb --- modules/motus/downloaddb/main.nf | 39 +++++++++++++++++++ modules/motus/downloaddb/meta.yml | 35 +++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/motus/downloaddb/main.nf | 12 ++++++ .../modules/motus/downloaddb/nextflow.config | 5 +++ tests/modules/motus/downloaddb/test.yml | 9 +++++ 6 files changed, 104 insertions(+) create mode 100644 modules/motus/downloaddb/main.nf create mode 100644 modules/motus/downloaddb/meta.yml create mode 100644 tests/modules/motus/downloaddb/main.nf create mode 100644 tests/modules/motus/downloaddb/nextflow.config create mode 100644 tests/modules/motus/downloaddb/test.yml diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf new file mode 100644 index 00000000..02e5c22d --- /dev/null +++ b/modules/motus/downloaddb/main.nf @@ -0,0 +1,39 @@ +process MOTUS_DOWNLOADDB { + label 'process_low' + + conda (params.enable_conda ? "bioconda::motus=3.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/motus:3.0.1--pyhdfd78af_0': + 'quay.io/biocontainers/motus:3.0.1--pyhdfd78af_0' }" + + input: + path motus_downloaddb + + output: + path "db_mOTU" , emit: db + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + ## must copy file to working directory, + ## otherwise the reference_db will be download to bin folder + ## other than current directory + cp $motus_downloaddb ${motus_downloaddb.simpleName}_copy.py + python ${motus_downloaddb.simpleName}_copy.py \\ + -t $task.cpus + ## clean up + rm ${motus_downloaddb.simpleName}_copy.py + + ## mOTUs version number is not available from command line. + ## mOTUs save the version number in index database folder. + ## mOTUs will check the database version is same version as exec version. + cat <<-END_VERSIONS > versions.yml + "${task.process}": + mOTUs: \$(grep motus db_mOTU/db_mOTU_versions | sed 's/motus\\t//g') + END_VERSIONS + """ +} diff --git a/modules/motus/downloaddb/meta.yml b/modules/motus/downloaddb/meta.yml new file mode 100644 index 00000000..8557b2ed --- /dev/null +++ b/modules/motus/downloaddb/meta.yml @@ -0,0 +1,35 @@ +name: "motus_downloaddb" +description: Download the mOTUs database +keywords: + - classify + - metagenomics + - fastq + - taxonomic profiling +tools: + - "motus": + description: "The mOTU profiler is a computational tool that estimates relative taxonomic abundance of known and currently unknown microbial community members using metagenomic shotgun sequencing data." + homepage: "None" + documentation: "https://github.com/motu-tool/mOTUs/wiki" + tool_dev_url: "https://github.com/motu-tool/mOTUs" + doi: "10.1038/s41467-019-08844-4" + licence: "['GPL v3']" + +input: + - motus_downloaddb: + type: file + description: | + the mOTUs downloadDB source file + pattern: "*{.py}" + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - db: + type: file + description: The mOTUs database + pattern: "db_mOTU" + +authors: + - "@jianhong" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index cd4913cf..b11f5516 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1194,6 +1194,10 @@ mosdepth: - modules/mosdepth/** - tests/modules/mosdepth/** +motus/downloaddb: + - modules/motus/downloaddb/** + - tests/modules/motus/downloaddb/** + msisensor/msi: - modules/msisensor/msi/** - tests/modules/msisensor/msi/** diff --git a/tests/modules/motus/downloaddb/main.nf b/tests/modules/motus/downloaddb/main.nf new file mode 100644 index 00000000..f7680ca9 --- /dev/null +++ b/tests/modules/motus/downloaddb/main.nf @@ -0,0 +1,12 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MOTUS_DOWNLOADDB } from '../../../../modules/motus/downloaddb/main.nf' + +workflow test_motus_downloaddb { + + input = file('https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py') + + MOTUS_DOWNLOADDB ( input ) +} diff --git a/tests/modules/motus/downloaddb/nextflow.config b/tests/modules/motus/downloaddb/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/motus/downloaddb/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/motus/downloaddb/test.yml b/tests/modules/motus/downloaddb/test.yml new file mode 100644 index 00000000..ada5383a --- /dev/null +++ b/tests/modules/motus/downloaddb/test.yml @@ -0,0 +1,9 @@ +- name: motus downloaddb test_motus_downloaddb + command: nextflow run tests/modules/motus/downloaddb -entry test_motus_downloaddb -c tests/config/nextflow.config + tags: + - motus + - motus/downloaddb + files: + - path: output/motus/db_mOTU/db_mOTU_versions + - path: output/motus/versions.yml + md5sum: b9b843b2435b01bb430ee8780b5c639e From f1f1df984c4213840546475af9bb9c204ae00def Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Sun, 17 Apr 2022 11:06:06 -0400 Subject: [PATCH 176/592] Update modules/motus/downloaddb/main.nf Co-authored-by: James A. Fellows Yates --- modules/motus/downloaddb/main.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 02e5c22d..406eb502 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -24,6 +24,7 @@ process MOTUS_DOWNLOADDB { ## other than current directory cp $motus_downloaddb ${motus_downloaddb.simpleName}_copy.py python ${motus_downloaddb.simpleName}_copy.py \\ + $args \\ -t $task.cpus ## clean up rm ${motus_downloaddb.simpleName}_copy.py From 2551201f4387dfcc12af3e896c331b917aeba63c Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Sun, 17 Apr 2022 11:10:48 -0400 Subject: [PATCH 177/592] Update modules/motus/downloaddb/main.nf Co-authored-by: James A. Fellows Yates --- modules/motus/downloaddb/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 406eb502..6fbe96ec 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -7,7 +7,7 @@ process MOTUS_DOWNLOADDB { 'quay.io/biocontainers/motus:3.0.1--pyhdfd78af_0' }" input: - path motus_downloaddb + path motus_downloaddb_script output: path "db_mOTU" , emit: db From d247ef4a0deccb1c0f36268590f58bb0835cec76 Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Sun, 17 Apr 2022 11:10:54 -0400 Subject: [PATCH 178/592] Update modules/motus/downloaddb/main.nf Co-authored-by: James A. Fellows Yates --- modules/motus/downloaddb/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 6fbe96ec..0456b471 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -10,7 +10,7 @@ process MOTUS_DOWNLOADDB { path motus_downloaddb_script output: - path "db_mOTU" , emit: db + path "db_mOTU/" , emit: db path "versions.yml" , emit: versions when: From 32d5257defe4a6683d009dcf3d0ac0474df44300 Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Sun, 17 Apr 2022 11:12:08 -0400 Subject: [PATCH 179/592] Update modules/motus/downloaddb/meta.yml Co-authored-by: James A. Fellows Yates --- modules/motus/downloaddb/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/meta.yml b/modules/motus/downloaddb/meta.yml index 8557b2ed..1fa5e220 100644 --- a/modules/motus/downloaddb/meta.yml +++ b/modules/motus/downloaddb/meta.yml @@ -18,7 +18,7 @@ input: - motus_downloaddb: type: file description: | - the mOTUs downloadDB source file + the mOTUs downloadDB script source file pattern: "*{.py}" output: From 51214d655b9e8ac930b36376adf9b9d3ce73e40e Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Sun, 17 Apr 2022 11:19:58 -0400 Subject: [PATCH 180/592] Update modules/motus/downloaddb/main.nf Co-authored-by: James A. Fellows Yates --- modules/motus/downloaddb/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 0456b471..b4bcea23 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -19,7 +19,7 @@ process MOTUS_DOWNLOADDB { script: def args = task.ext.args ?: '' """ - ## must copy file to working directory, + ## must copy script file to working directory, ## otherwise the reference_db will be download to bin folder ## other than current directory cp $motus_downloaddb ${motus_downloaddb.simpleName}_copy.py From 407d0bb752da0b97f8596e39fe29c012dbd08fd5 Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Sun, 17 Apr 2022 11:22:23 -0400 Subject: [PATCH 181/592] update motus_downloaddb --- modules/motus/downloaddb/main.nf | 11 ++++++----- modules/motus/downloaddb/meta.yml | 6 ++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 0456b471..928b1294 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -11,23 +11,24 @@ process MOTUS_DOWNLOADDB { output: path "db_mOTU/" , emit: db - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' + def args = task.ext.args ?: '' + def software = ${motus_downloaddb.simpleName}_copy.py """ ## must copy file to working directory, ## otherwise the reference_db will be download to bin folder ## other than current directory - cp $motus_downloaddb ${motus_downloaddb.simpleName}_copy.py - python ${motus_downloaddb.simpleName}_copy.py \\ + cp $motus_downloaddb ${software} + python ${software} \\ $args \\ -t $task.cpus ## clean up - rm ${motus_downloaddb.simpleName}_copy.py + rm ${software} ## mOTUs version number is not available from command line. ## mOTUs save the version number in index database folder. diff --git a/modules/motus/downloaddb/meta.yml b/modules/motus/downloaddb/meta.yml index 1fa5e220..2d363cb1 100644 --- a/modules/motus/downloaddb/meta.yml +++ b/modules/motus/downloaddb/meta.yml @@ -5,6 +5,8 @@ keywords: - metagenomics - fastq - taxonomic profiling + - database + - download tools: - "motus": description: "The mOTU profiler is a computational tool that estimates relative taxonomic abundance of known and currently unknown microbial community members using metagenomic shotgun sequencing data." @@ -19,7 +21,7 @@ input: type: file description: | the mOTUs downloadDB script source file - pattern: "*{.py}" + pattern: "downloadDB.py" output: - versions: @@ -27,7 +29,7 @@ output: description: File containing software versions pattern: "versions.yml" - db: - type: file + type: directory description: The mOTUs database pattern: "db_mOTU" From ec23ebc7c5c2517d18128eac06306dcdcf701fdb Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Sun, 17 Apr 2022 21:17:59 +0200 Subject: [PATCH 182/592] Update modules/motus/downloaddb/main.nf --- modules/motus/downloaddb/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index e2a0cec6..8162c664 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -18,7 +18,7 @@ process MOTUS_DOWNLOADDB { script: def args = task.ext.args ?: '' - def software = ${motus_downloaddb.simpleName}_copy.py + def software = ${motus_downloaddb.simplename}_copy.py """ ## must copy script file to working directory, ## otherwise the reference_db will be download to bin folder From 87005786e07eb3265aa011e5c1c34146cd4d9c0d Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Sun, 17 Apr 2022 21:18:55 +0200 Subject: [PATCH 183/592] Update modules/motus/downloaddb/main.nf --- modules/motus/downloaddb/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 8162c664..e2a0cec6 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -18,7 +18,7 @@ process MOTUS_DOWNLOADDB { script: def args = task.ext.args ?: '' - def software = ${motus_downloaddb.simplename}_copy.py + def software = ${motus_downloaddb.simpleName}_copy.py """ ## must copy script file to working directory, ## otherwise the reference_db will be download to bin folder From a6cb75174bfbd131f3da14d8cd3e34c1a2e6e268 Mon Sep 17 00:00:00 2001 From: Anders Jemt Date: Tue, 19 Apr 2022 10:53:39 +0200 Subject: [PATCH 184/592] Add variant catalog ch to stranger (#1508) * Add optional variant catalog input * fix for no variant catalog test Co-authored-by: ljmesi <37740329+ljmesi@users.noreply.github.com> Co-authored-by: Lauri Mesilaakso --- modules/stranger/main.nf | 5 ++++- modules/stranger/meta.yml | 4 ++++ tests/modules/stranger/main.nf | 24 +++++++++++++++--------- tests/modules/stranger/test.yml | 16 +++++++++++++++- 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/modules/stranger/main.nf b/modules/stranger/main.nf index 2e647627..55678bd3 100644 --- a/modules/stranger/main.nf +++ b/modules/stranger/main.nf @@ -9,6 +9,7 @@ process STRANGER { input: tuple val(meta), path(vcf) + path variant_catalog output: tuple val(meta), path("*.gz"), emit: vcf @@ -20,10 +21,12 @@ process STRANGER { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def options_variant_catalog = variant_catalog ? "--repeats-file $variant_catalog" : "" """ stranger \\ $args \\ - $vcf | gzip --no-name > ${prefix}.vcf.gz + $vcf \\ + $options_variant_catalog | gzip --no-name > ${prefix}.vcf.gz cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/stranger/meta.yml b/modules/stranger/meta.yml index 61ebc7a9..0707d806 100644 --- a/modules/stranger/meta.yml +++ b/modules/stranger/meta.yml @@ -24,6 +24,10 @@ input: type: file description: VCF with repeat expansions pattern: "*.{vcf.gz,vcf}" + - variant_catalog: + type: file + description: json file with repeat expansion sites to genotype + pattern: "*.{json}" output: - meta: diff --git a/tests/modules/stranger/main.nf b/tests/modules/stranger/main.nf index bc4bd3ce..5bd6766b 100644 --- a/tests/modules/stranger/main.nf +++ b/tests/modules/stranger/main.nf @@ -5,15 +5,21 @@ nextflow.enable.dsl = 2 include { EXPANSIONHUNTER } from '../../../modules/expansionhunter/main.nf' include { STRANGER } from '../../../modules/stranger/main.nf' + +input = [ [ id:'test', gender:'male' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + ] +fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) +variant_catalog = file(params.test_data['homo_sapiens']['genome']['repeat_expansions'], checkIfExists: true) + + workflow test_stranger { - - input = [ [ id:'test', gender:'male' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), - ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) - variant_catalog = file(params.test_data['homo_sapiens']['genome']['repeat_expansions'], checkIfExists: true) - EXPANSIONHUNTER ( input, fasta, variant_catalog ) - STRANGER ( EXPANSIONHUNTER.out.vcf ) + STRANGER ( EXPANSIONHUNTER.out.vcf, variant_catalog ) +} + +workflow test_stranger_without_optional_variant_catalog { + EXPANSIONHUNTER ( input, fasta, variant_catalog ) + STRANGER ( EXPANSIONHUNTER.out.vcf, [] ) } diff --git a/tests/modules/stranger/test.yml b/tests/modules/stranger/test.yml index 821928e8..c7a6972e 100644 --- a/tests/modules/stranger/test.yml +++ b/tests/modules/stranger/test.yml @@ -8,6 +8,20 @@ - path: output/expansionhunter/versions.yml md5sum: f3962a6eecfddf9682414c0f605a885a - path: output/stranger/test.vcf.gz - md5sum: bbe15159195681d5c18596d3ad85c78f + md5sum: 68b0ca1319851134ffa8793a4704dc11 - path: output/stranger/versions.yml md5sum: 5ec35fd835fb1be50bc3e7c004310fc0 + +- name: stranger test_stranger_without_optional_variant_catalog + command: nextflow run tests/modules/stranger -entry test_stranger_without_optional_variant_catalog -c tests/config/nextflow.config + tags: + - stranger + files: + - path: output/expansionhunter/test.vcf + md5sum: cfd4a1d35c0e469b99eb6aaa6d22de76 + - path: output/expansionhunter/versions.yml + md5sum: c95af9e6d8cd9bd2ce1090ca4e7a6020 + - path: output/stranger/test.vcf.gz + md5sum: bbe15159195681d5c18596d3ad85c78f + - path: output/stranger/versions.yml + md5sum: 8558542a007e90ea5dcdceed3f12585d From ccef7f857917189fe1c2563c4d68deb038bade4b Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Tue, 19 Apr 2022 11:26:01 +0200 Subject: [PATCH 185/592] alignment --- modules/elprep/merge/main.nf | 4 ++-- tests/modules/elprep/merge/test.yml | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/modules/elprep/merge/main.nf b/modules/elprep/merge/main.nf index 8312d35b..010156f2 100644 --- a/modules/elprep/merge/main.nf +++ b/modules/elprep/merge/main.nf @@ -11,8 +11,8 @@ process ELPREP_MERGE { tuple val(meta), path(bam) output: - tuple val(meta), path("**.{bam,sam}"), emit: bam - path "versions.yml" , emit: versions + tuple val(meta), path("**.{bam,sam}") , emit: bam + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/tests/modules/elprep/merge/test.yml b/tests/modules/elprep/merge/test.yml index c66fe030..26c16f59 100644 --- a/tests/modules/elprep/merge/test.yml +++ b/tests/modules/elprep/merge/test.yml @@ -2,10 +2,7 @@ command: nextflow run ./tests/modules/elprep/merge -entry test_elprep_merge -c ./tests/config/nextflow.config -c ./tests/modules/elprep/merge/nextflow.config tags: - "elprep" - # - "elprep/merge" - # files: - path: "output/elprep/test.bam" - md5sum: e667c7caad0bc4b7ac383fd023c654fc - path: output/elprep/versions.yml From ad15d1b7922c8de1b4b84897e4a44182f5b52299 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Tue, 19 Apr 2022 11:27:55 +0200 Subject: [PATCH 186/592] update label --- modules/elprep/merge/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/elprep/merge/main.nf b/modules/elprep/merge/main.nf index 010156f2..00ed4d60 100644 --- a/modules/elprep/merge/main.nf +++ b/modules/elprep/merge/main.nf @@ -1,6 +1,6 @@ process ELPREP_MERGE { tag "$meta.id" - label 'process_medium' + label 'process_low' conda (params.enable_conda ? "bioconda::elprep=5.1.2" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? From 6723ca7f9068ecbdee31dcad07f3115dc5b40667 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Tue, 19 Apr 2022 15:05:02 +0200 Subject: [PATCH 187/592] bump version, add merge before split --- modules/bamtools/split/main.nf | 22 +++++++++++++++------- modules/bamtools/split/meta.yml | 8 +++++++- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/modules/bamtools/split/main.nf b/modules/bamtools/split/main.nf index 014e5cdb..f6382d97 100644 --- a/modules/bamtools/split/main.nf +++ b/modules/bamtools/split/main.nf @@ -2,13 +2,14 @@ process BAMTOOLS_SPLIT { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::bamtools=2.5.1" : null) + conda (params.enable_conda ? "bioconda::bamtools=2.5.2" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bamtools:2.5.1--h9a82719_9' : - 'quay.io/biocontainers/bamtools:2.5.1--h9a82719_9' }" + 'https://depot.galaxyproject.org/singularity/bamtools:2.5.2--hd03093a_0' : + 'quay.io/biocontainers/bamtools:2.5.2--hd03093a_0' }" input: tuple val(meta), path(bam) + path(bam_list) output: tuple val(meta), path("*.bam"), emit: bam @@ -19,12 +20,19 @@ process BAMTOOLS_SPLIT { script: def args = task.ext.args ?: '' + def args2 = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def input_list = bam.collect{"-in $it"}.join(' ') + if (bam_list) { + input += " -list $bam_list" + } + """ - bamtools \\ - split \\ - -in $bam \\ - $args + bamtools merge \\ + ${input_list} \\ + $args \\ + bamtools split \\ + $args2 cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/bamtools/split/meta.yml b/modules/bamtools/split/meta.yml index 0e848212..6c534281 100644 --- a/modules/bamtools/split/meta.yml +++ b/modules/bamtools/split/meta.yml @@ -23,8 +23,13 @@ input: e.g. [ id:'test', single_end:false ] - bam: type: file - description: A BAM file to split + description: A list of BAM files to merge and then split pattern: "*.bam" + - bam_list: + type: file + description: | + Input file containing bam files to merge before splitting, + one line per file output: - meta: @@ -43,3 +48,4 @@ output: authors: - "@sguizard" + - "@matthdsm" From b35264e9196d8f7c74c28a7bd5bc126a5e16afe8 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Tue, 19 Apr 2022 15:11:37 +0200 Subject: [PATCH 188/592] bugfixes --- modules/bamtools/split/main.nf | 6 ++---- modules/bamtools/split/meta.yml | 2 +- tests/modules/bamtools/split/main.nf | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/bamtools/split/main.nf b/modules/bamtools/split/main.nf index f6382d97..2f5ef09f 100644 --- a/modules/bamtools/split/main.nf +++ b/modules/bamtools/split/main.nf @@ -20,7 +20,6 @@ process BAMTOOLS_SPLIT { script: def args = task.ext.args ?: '' - def args2 = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def input_list = bam.collect{"-in $it"}.join(' ') if (bam_list) { @@ -30,9 +29,8 @@ process BAMTOOLS_SPLIT { """ bamtools merge \\ ${input_list} \\ - $args \\ - bamtools split \\ - $args2 + | bamtools split \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/bamtools/split/meta.yml b/modules/bamtools/split/meta.yml index 6c534281..0fd5d5ca 100644 --- a/modules/bamtools/split/meta.yml +++ b/modules/bamtools/split/meta.yml @@ -28,7 +28,7 @@ input: - bam_list: type: file description: | - Input file containing bam files to merge before splitting, + Optional input file containing bam files to merge before splitting, one line per file output: diff --git a/tests/modules/bamtools/split/main.nf b/tests/modules/bamtools/split/main.nf index eb0bed01..9f30c4f9 100644 --- a/tests/modules/bamtools/split/main.nf +++ b/tests/modules/bamtools/split/main.nf @@ -10,5 +10,5 @@ workflow test_bamtools_split { [ id:'test', single_end:false ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] - BAMTOOLS_SPLIT ( input ) + BAMTOOLS_SPLIT ( input, [] ) } From 07982d6cb13649c308625bb3d215c39979e1207c Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Tue, 19 Apr 2022 15:31:39 +0200 Subject: [PATCH 189/592] fix command line, fix meta.yml --- modules/bamtools/split/main.nf | 5 ++++- tests/modules/bamtools/split/test.yml | 9 +++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/bamtools/split/main.nf b/modules/bamtools/split/main.nf index 2f5ef09f..f72d13be 100644 --- a/modules/bamtools/split/main.nf +++ b/modules/bamtools/split/main.nf @@ -23,7 +23,10 @@ process BAMTOOLS_SPLIT { def prefix = task.ext.prefix ?: "${meta.id}" def input_list = bam.collect{"-in $it"}.join(' ') if (bam_list) { - input += " -list $bam_list" + input_list += " -list $bam_list" + } + if (!args.contains("-stub")) { + args += " -stub ${prefix}" } """ diff --git a/tests/modules/bamtools/split/test.yml b/tests/modules/bamtools/split/test.yml index 4f52e9ce..b52cc9ee 100644 --- a/tests/modules/bamtools/split/test.yml +++ b/tests/modules/bamtools/split/test.yml @@ -1,10 +1,11 @@ - name: bamtools split test_bamtools_split - command: nextflow run ./tests/modules/bamtools/split -entry test_bamtools_split -c ./tests/config/nextflow.config -c ./tests/modules/bamtools/split/nextflow.config + command: nextflow run tests/modules/bamtools/split -entry test_bamtools_split -c tests/config/nextflow.config tags: - - bamtools/split - bamtools + - bamtools/split files: - - path: output/bamtools/test.paired_end.sorted.REF_chr22.bam + - path: output/bamtools/test.REF_chr22.bam md5sum: b7dc50e0edf9c6bfc2e3b0e6d074dc07 - - path: output/bamtools/test.paired_end.sorted.REF_unmapped.bam + - path: output/bamtools/test.REF_unmapped.bam md5sum: e0754bf72c51543b2d745d96537035fb + - path: output/bamtools/versions.yml From 7630e278f3aa9abe1c1b78bac783cf9db2e66c9d Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Tue, 19 Apr 2022 16:51:59 +0200 Subject: [PATCH 190/592] update gatk4 yml for spark (#1538) --- tests/config/pytest_modules.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index cd4913cf..bbd47fe5 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -659,6 +659,10 @@ gatk4/applybqsr: - modules/gatk4/applybqsr/** - tests/modules/gatk4/applybqsr/** +gatk4/applybqsrspark: + - modules/gatk4/applybqsrspark/** + - tests/modules/gatk4/applybqsrspark/** + gatk4/applyvqsr: - modules/gatk4/applyvqsr/** - tests/modules/gatk4/applyvqsr/** @@ -667,6 +671,10 @@ gatk4/baserecalibrator: - modules/gatk4/baserecalibrator/** - tests/modules/gatk4/baserecalibrator/** +gatk4/baserecalibratorspark: + - modules/gatk4/baserecalibratorspark/** + - tests/modules/gatk4/baserecalibratorspark/** + gatk4/bedtointervallist: - modules/gatk4/bedtointervallist/** - tests/modules/gatk4/bedtointervallist/** @@ -743,6 +751,10 @@ gatk4/markduplicates: - modules/gatk4/markduplicates/** - tests/modules/gatk4/markduplicates/** +gatk4/markduplicatesspark: + - modules/gatk4/markduplicatesspark/** + - tests/modules/gatk4/markduplicatesspark/** + gatk4/mergebamalignment: - modules/gatk4/mergebamalignment/** - tests/modules/gatk4/mergebamalignment/** From 705f8c9ac4dfdf07666e71abde28f267e2dfd5eb Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Wed, 20 Apr 2022 10:05:17 +0200 Subject: [PATCH 191/592] Add samtools/collatefastq module (#1536) * add samtools/collatefastq module * update yml file * improve output --- modules/samtools/collatefastq/main.nf | 47 ++++++++++++++++++ modules/samtools/collatefastq/meta.yml | 48 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/samtools/collatefastq/main.nf | 13 +++++ .../samtools/collatefastq/nextflow.config | 5 ++ tests/modules/samtools/collatefastq/test.yml | 14 ++++++ 6 files changed, 131 insertions(+) create mode 100644 modules/samtools/collatefastq/main.nf create mode 100644 modules/samtools/collatefastq/meta.yml create mode 100644 tests/modules/samtools/collatefastq/main.nf create mode 100644 tests/modules/samtools/collatefastq/nextflow.config create mode 100644 tests/modules/samtools/collatefastq/test.yml diff --git a/modules/samtools/collatefastq/main.nf b/modules/samtools/collatefastq/main.nf new file mode 100644 index 00000000..3d9becda --- /dev/null +++ b/modules/samtools/collatefastq/main.nf @@ -0,0 +1,47 @@ +process SAMTOOLS_COLLATEFASTQ { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + + input: + tuple val(meta), path(input) + + output: + //TODO might be good to have ordered output of the fastq files, so we can + // make sure the we get the right files + tuple val(meta), path("*_{1,2}.fq.gz"), path("*_other.fq.gz"), path("*_singleton.fq.gz"), emit: reads + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + samtools collate \\ + $args \\ + --threads $task.cpus \\ + -O \\ + $input \\ + . | + + samtools fastq \\ + $args2 \\ + --threads $task.cpus \\ + -1 ${prefix}_1.fq.gz \\ + -2 ${prefix}_2.fq.gz \\ + -0 ${prefix}_other.fq.gz \\ + -s ${prefix}_singleton.fq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/samtools/collatefastq/meta.yml b/modules/samtools/collatefastq/meta.yml new file mode 100644 index 00000000..d3a2e3af --- /dev/null +++ b/modules/samtools/collatefastq/meta.yml @@ -0,0 +1,48 @@ +name: samtools_collatefastq +description: | + The module uses collate and then fastq methods from samtools to + convert a SAM, BAM or CRAM file to FASTQ format +keywords: + - bam2fq + - samtools + - fastq +tools: + - samtools: + description: Tools for dealing with SAM, BAM and CRAM files + homepage: None + documentation: http://www.htslib.org/doc/1.1/samtools.html + tool_dev_url: None + doi: "" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + 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 ] + - reads: + type: file + description: | + FASTQ files, which will be either a group of 4 files (read_1, read_2, other and singleton) + or a single interleaved .fq.gz file if the user chooses not to split the reads. + pattern: "*.fq.gz" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@lescai" + - "@maxulysse" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index bbd47fe5..607981a0 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1567,6 +1567,10 @@ samtools/bam2fq: - modules/samtools/bam2fq/** - tests/modules/samtools/bam2fq/** +samtools/collatefastq: + - modules/samtools/collatefastq/** + - tests/modules/samtools/collatefastq/** + samtools/depth: - modules/samtools/depth/** - tests/modules/samtools/depth/** diff --git a/tests/modules/samtools/collatefastq/main.nf b/tests/modules/samtools/collatefastq/main.nf new file mode 100644 index 00000000..928742ac --- /dev/null +++ b/tests/modules/samtools/collatefastq/main.nf @@ -0,0 +1,13 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SAMTOOLS_COLLATEFASTQ } from '../../../../modules/samtools/collatefastq/main.nf' + +workflow test_samtools_collatefastq { + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + SAMTOOLS_COLLATEFASTQ ( input ) +} diff --git a/tests/modules/samtools/collatefastq/nextflow.config b/tests/modules/samtools/collatefastq/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/samtools/collatefastq/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/samtools/collatefastq/test.yml b/tests/modules/samtools/collatefastq/test.yml new file mode 100644 index 00000000..2b001885 --- /dev/null +++ b/tests/modules/samtools/collatefastq/test.yml @@ -0,0 +1,14 @@ +- name: samtools fastq test_samtools_collatefastq + command: nextflow run ./tests/modules/samtools/collatefastq -entry test_samtools_collatefastq -c ./tests/config/nextflow.config -c ./tests/modules/samtools/collatefastq/nextflow.config + tags: + - samtools + - samtools/collatefastq + files: + - path: output/samtools/test_1.fq.gz + md5sum: 829732de4e937edca90f27b07e5b501a + - path: output/samtools/test_2.fq.gz + md5sum: ef27d3809e495620fd93df894280c03a + - path: output/samtools/test_other.fq.gz + md5sum: 709872fc2910431b1e8b7074bfe38c67 + - path: output/samtools/test_singleton.fq.gz + md5sum: 709872fc2910431b1e8b7074bfe38c67 From 6c45773c0b7f4bdaa8c9716091b0e721a5ae96f3 Mon Sep 17 00:00:00 2001 From: louperelo <44900284+louperelo@users.noreply.github.com> Date: Wed, 20 Apr 2022 11:53:26 +0200 Subject: [PATCH 192/592] add module AMPlify (#1498) * add module AMPlify * Apply suggestions from code review Thanks for the review! Co-authored-by: Moritz E. Beber * removed trailing whitespaces * Apply suggestions from code review Thanks again! Co-authored-by: Moritz E. Beber * Apply suggestions from code review Thank you for the suggestions! Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: James A. Fellows Yates * Apply suggestions from code review Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> * including review suggestions * fix versions.yml * add model_dir input * add model_dir to meta.yml * complete faa pattern in meta.yml * add fa.gz to pattern Co-authored-by: Moritz E. Beber Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> Co-authored-by: James A. Fellows Yates --- modules/amplify/predict/main.nf | 41 ++++++++++++++++ modules/amplify/predict/meta.yml | 47 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/amplify/predict/main.nf | 18 +++++++ tests/modules/amplify/predict/nextflow.config | 5 ++ tests/modules/amplify/predict/test.yml | 9 ++++ 6 files changed, 124 insertions(+) create mode 100644 modules/amplify/predict/main.nf create mode 100644 modules/amplify/predict/meta.yml create mode 100644 tests/modules/amplify/predict/main.nf create mode 100644 tests/modules/amplify/predict/nextflow.config create mode 100644 tests/modules/amplify/predict/test.yml diff --git a/modules/amplify/predict/main.nf b/modules/amplify/predict/main.nf new file mode 100644 index 00000000..d035516f --- /dev/null +++ b/modules/amplify/predict/main.nf @@ -0,0 +1,41 @@ +def VERSION = '1.0.3' // Version information not provided by tool + +process AMPLIFY_PREDICT { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::amplify=1.0.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/amplify:1.0.3--py36hdfd78af_0': + 'quay.io/biocontainers/amplify:1.0.3--py36hdfd78af_0' }" + + input: + tuple val(meta), path(faa) + path(model_dir) + + output: + tuple val(meta), path('*.tsv'), emit: tsv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def custom_model_dir = model_dir ? "-md ${model_dir}" : "" + """ + AMPlify \\ + $args \\ + ${custom_model_dir} \\ + -s '${faa}' + + #rename output, because tool includes date and time in name + mv *.tsv ${prefix}.tsv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + AMPlify: $VERSION + END_VERSIONS + """ +} diff --git a/modules/amplify/predict/meta.yml b/modules/amplify/predict/meta.yml new file mode 100644 index 00000000..c9ffe8a4 --- /dev/null +++ b/modules/amplify/predict/meta.yml @@ -0,0 +1,47 @@ +name: "amplify_predict" +description: AMPlify is an attentive deep learning model for antimicrobial peptide prediction. +keywords: + - antimicrobial peptides + - AMPs + - prediction + - model +tools: + - "amplify": + description: "Attentive deep learning model for antimicrobial peptide prediction" + homepage: "https://github.com/bcgsc/AMPlify" + documentation: "https://github.com/bcgsc/AMPlify" + tool_dev_url: "https://github.com/bcgsc/AMPlify" + doi: "https://doi.org/10.1186/s12864-022-08310-4" + licence: "['GPL v3']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - faa: + type: file + description: amino acid sequences fasta + pattern: "*.{fa,fa.gz,faa,faa.gz,fasta,fasta.gz}" + - model_dir: + type: directory + description: Directory of where models are stored (optional) + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - tsv: + type: file + description: amino acid sequences with prediction (AMP, non-AMP) and probability scores + pattern: "*.{tsv}" + +authors: + - "@louperelo" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 607981a0..f8db3e87 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -26,6 +26,10 @@ allelecounter: - modules/allelecounter/** - tests/modules/allelecounter/** +amplify/predict: + - modules/amplify/predict/** + - tests/modules/amplify/predict/** + amps: - modules/amps/** - tests/modules/amps/** diff --git a/tests/modules/amplify/predict/main.nf b/tests/modules/amplify/predict/main.nf new file mode 100644 index 00000000..05db4cdb --- /dev/null +++ b/tests/modules/amplify/predict/main.nf @@ -0,0 +1,18 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { PRODIGAL } from '../../../modules/prodigal/main.nf' addParams( options: [:] ) +include { AMPLIFY_PREDICT } from '../../../../modules/amplify/predict/main.nf' addParams( options: [:] ) + +workflow amplify_predict { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['contigs_fasta'], checkIfExists: true) + ] + model_dir = [] + + PRODIGAL ( input, "gff" ) + AMPLIFY_PREDICT ( PRODIGAL.out.amino_acid_fasta, model_dir) +} diff --git a/tests/modules/amplify/predict/nextflow.config b/tests/modules/amplify/predict/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/amplify/predict/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/amplify/predict/test.yml b/tests/modules/amplify/predict/test.yml new file mode 100644 index 00000000..3bc92889 --- /dev/null +++ b/tests/modules/amplify/predict/test.yml @@ -0,0 +1,9 @@ +- name: amplify predict amplify_predict + command: nextflow run tests/modules/amplify/predict -entry amplify_predict -c tests/config/nextflow.config + tags: + - amplify/predict + - amplify + files: + - path: output/amplify/test.tsv + md5sum: 1951084ce1d410028be86754997e5852 + - path: output/amplify/versions.yml From 37bf3936f3665483d070a5e0e0b314311032af7c Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Wed, 20 Apr 2022 16:26:56 +0200 Subject: [PATCH 193/592] add decompress possibilities to bgzip (#1540) * add decompress possibilities to bgzip * spacing --- modules/tabix/bgzip/main.nf | 11 +++++++---- modules/tabix/bgzip/meta.yml | 15 ++++++++------- tests/config/test_data.config | 2 +- tests/modules/tabix/bgzip/main.nf | 10 +++++++++- tests/modules/tabix/bgzip/test.yml | 12 ++++++++++-- 5 files changed, 35 insertions(+), 15 deletions(-) diff --git a/modules/tabix/bgzip/main.nf b/modules/tabix/bgzip/main.nf index 90940a5d..18e83c84 100644 --- a/modules/tabix/bgzip/main.nf +++ b/modules/tabix/bgzip/main.nf @@ -11,17 +11,20 @@ process TABIX_BGZIP { tuple val(meta), path(input) output: - tuple val(meta), path("*.gz"), emit: gz - path "versions.yml" , emit: versions + tuple val(meta), path("${prefix}*"), emit: output + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" + in_bgzip = input.toString().endsWith(".gz") + command1 = in_bgzip ? '-d' : '-c' + command2 = in_bgzip ? '' : " > ${prefix}.${input.getExtension()}.gz" """ - bgzip -c $args $input > ${prefix}.${input.getExtension()}.gz + bgzip $command1 $args -@${task.cpus} $input $command2 cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/tabix/bgzip/meta.yml b/modules/tabix/bgzip/meta.yml index 207427e4..50070175 100644 --- a/modules/tabix/bgzip/meta.yml +++ b/modules/tabix/bgzip/meta.yml @@ -1,13 +1,14 @@ name: tabix_bgzip -description: Compresses files +description: Compresses/decompresses files keywords: - compress + - decompress - bgzip - tabix tools: - bgzip: description: | - Bgzip compresses files in a similar manner to, and compatible with, gzip. + Bgzip compresses or decompresses files in a similar manner to, and compatible with, gzip. homepage: https://www.htslib.org/doc/tabix.html documentation: http://www.htslib.org/doc/bgzip.html doi: 10.1093/bioinformatics/btp352 @@ -18,19 +19,19 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - file: + - input: type: file - description: text file + description: file to compress or to decompress output: - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - file: + - output: type: file - description: Output compressed file - pattern: "*.{gz}" + description: Output compressed/decompressed file + pattern: "*." - versions: type: file description: File containing software versions diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 97d22981..ea123732 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -397,7 +397,7 @@ params { hello = "${test_data_dir}/generic/txt/hello.txt" } 'cnn' { - reference = "${test_data_dir}/generic/cnn/reference.cnn" + reference = "${test_data_dir}/generic/cnn/reference.cnn" } 'cooler'{ test_pairix_pair_gz = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.blksrt.txt.gz" diff --git a/tests/modules/tabix/bgzip/main.nf b/tests/modules/tabix/bgzip/main.nf index 4d349890..4e326d64 100644 --- a/tests/modules/tabix/bgzip/main.nf +++ b/tests/modules/tabix/bgzip/main.nf @@ -4,10 +4,18 @@ nextflow.enable.dsl = 2 include { TABIX_BGZIP } from '../../../../modules/tabix/bgzip/main.nf' -workflow test_tabix_bgzip { +workflow test_tabix_bgzip_compress { input = [ [ id:'test' ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) ] ] TABIX_BGZIP ( input ) } + +workflow test_tabix_bgzip_decompress { + input = [ [ id:'test' ], // meta map + [ file(params.test_data['sarscov2']['genome']['test_bed_gz'], checkIfExists: true) ] + ] + + TABIX_BGZIP ( input ) +} diff --git a/tests/modules/tabix/bgzip/test.yml b/tests/modules/tabix/bgzip/test.yml index 19357655..72819c90 100644 --- a/tests/modules/tabix/bgzip/test.yml +++ b/tests/modules/tabix/bgzip/test.yml @@ -1,8 +1,16 @@ -- name: tabix bgzip - command: nextflow run ./tests/modules/tabix/bgzip -entry test_tabix_bgzip -c ./tests/config/nextflow.config -c ./tests/modules/tabix/bgzip/nextflow.config +- name: tabix bgzip compress + command: nextflow run ./tests/modules/tabix/bgzip -entry test_tabix_bgzip_compress -c ./tests/config/nextflow.config -c ./tests/modules/tabix/bgzip/nextflow.config tags: - tabix - tabix/bgzip files: - path: ./output/tabix/test.vcf.gz md5sum: fc178eb342a91dc0d1d568601ad8f8e2 +- name: tabix bgzip decompress + command: nextflow run ./tests/modules/tabix/bgzip -entry test_tabix_bgzip_decompress -c ./tests/config/nextflow.config -c ./tests/modules/tabix/bgzip/nextflow.config + tags: + - tabix + - tabix/bgzip + files: + - path: ./output/tabix/test.bed + md5sum: fe4053cf4de3aebbdfc3be2efb125a74 From d07d270743f1433a0aff2c490db1b33360db8b79 Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Thu, 21 Apr 2022 10:38:17 +0200 Subject: [PATCH 194/592] Antismashlite download databases (#1426) * Create module antismashlitedownloaddatabases * Corrected user-specification of database directory * Updated test.yml * Apply suggestions from code review Co-authored-by: James A. Fellows Yates * Fix typo in test.yml * Feed database files via docker/singularity mount) * Add external db file mounts to the containers * Fixed docker command in main.nf * Apply prettier * Apply prettier and add PWD * Add more output to test.yml * Add more output paths to test.yml * Fixed test.yml * Apply suggestions from code review Add documentation of why we need to mount files to the containers. Co-authored-by: James A. Fellows Yates * Fix code linting errors (remove trailing whitespaces) * Fix code linting error (remove trailing whitespace) * Fix errors from Prettier linting Co-authored-by: James A. Fellows Yates --- .../antismashlitedownloaddatabases/main.nf | 46 ++++++++++++++++ .../antismashlitedownloaddatabases/meta.yml | 55 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ .../antismashlitedownloaddatabases/main.nf | 29 ++++++++++ .../nextflow.config | 5 ++ .../antismashlitedownloaddatabases/test.yml | 14 +++++ 6 files changed, 153 insertions(+) create mode 100644 modules/antismash/antismashlitedownloaddatabases/main.nf create mode 100644 modules/antismash/antismashlitedownloaddatabases/meta.yml create mode 100644 tests/modules/antismash/antismashlitedownloaddatabases/main.nf create mode 100644 tests/modules/antismash/antismashlitedownloaddatabases/nextflow.config create mode 100644 tests/modules/antismash/antismashlitedownloaddatabases/test.yml diff --git a/modules/antismash/antismashlitedownloaddatabases/main.nf b/modules/antismash/antismashlitedownloaddatabases/main.nf new file mode 100644 index 00000000..1853d80a --- /dev/null +++ b/modules/antismash/antismashlitedownloaddatabases/main.nf @@ -0,0 +1,46 @@ +process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { + label 'process_low' + + conda (params.enable_conda ? "bioconda::antismash-lite=6.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/antismash-lite:6.0.1--pyhdfd78af_1' : + 'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }" + + /* + These files are normally downloaded by download-antismash-databases itself, and must be retrieved for input by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. This is solely for use for CI tests of the nf-core/module version of antiSMASH. + Reason: Upon execution, the tool checks if certain database files are present within the container and if not, it tries to create them in /usr/local/bin, for which only root user has write permissions. Mounting those database files with this module prevents the tool from trying to create them. + */ + + containerOptions { + workflow.containerEngine == 'singularity' ? + "-B $database_css:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css,$database_detection:/usr/local/lib/python3.8/site-packages/antismash/detection,$database_modules:/usr/local/lib/python3.8/site-packages/antismash/modules" : + workflow.containerEngine == 'docker' ? + "-v \$PWD/$database_css:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css -v \$PWD/$database_detection:/usr/local/lib/python3.8/site-packages/antismash/detection -v \$PWD/$database_modules:/usr/local/lib/python3.8/site-packages/antismash/modules" : + '' + } + + input: + path database_css + path database_detection + path database_modules + + output: + path("antismash_db") , emit: database + path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + download-antismash-databases \\ + --database-dir antismash_db \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + antismash: \$(antismash --version | sed 's/antiSMASH //') + END_VERSIONS + """ +} diff --git a/modules/antismash/antismashlitedownloaddatabases/meta.yml b/modules/antismash/antismashlitedownloaddatabases/meta.yml new file mode 100644 index 00000000..ad393bae --- /dev/null +++ b/modules/antismash/antismashlitedownloaddatabases/meta.yml @@ -0,0 +1,55 @@ +name: antismash_antismashlitedownloaddatabases +description: antiSMASH allows the rapid genome-wide identification, annotation and analysis of secondary metabolite biosynthesis gene clusters. This module downloads the antiSMASH databases. +keywords: + - secondary metabolites + - BGC + - biosynthetic gene cluster + - genome mining + - NRPS + - RiPP + - antibiotics + - prokaryotes + - bacteria + - eukaryotes + - fungi + - antismash + - database +tools: + - antismash: + description: antiSMASH - the antibiotics and Secondary Metabolite Analysis SHell + homepage: https://docs.antismash.secondarymetabolites.org + documentation: https://docs.antismash.secondarymetabolites.org + tool_dev_url: https://github.com/antismash/antismash + doi: "10.1093/nar/gkab335" + licence: ["AGPL v3"] + +input: + - database_css: + type: directory + description: | + antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "css" + - database_detection: + type: directory + description: | + antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "detection" + - database_modules: + type: directory + description: | + antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "modules" + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + + - database: + type: directory + description: Download directory for antiSMASH databases + pattern: "antismash_db" + +authors: + - "@jasmezz" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index f8db3e87..9a128bd4 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -42,6 +42,10 @@ amrfinderplus/update: - modules/amrfinderplus/update/** - tests/modules/amrfinderplus/update/** +antismash/antismashlitedownloaddatabases: + - modules/antismash/antismashlitedownloaddatabases/** + - tests/modules/antismash/antismashlitedownloaddatabases/** + arriba: - modules/arriba/** - tests/modules/arriba/** diff --git a/tests/modules/antismash/antismashlitedownloaddatabases/main.nf b/tests/modules/antismash/antismashlitedownloaddatabases/main.nf new file mode 100644 index 00000000..d7289acc --- /dev/null +++ b/tests/modules/antismash/antismashlitedownloaddatabases/main.nf @@ -0,0 +1,29 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { UNTAR as UNTAR1 } from '../../../../modules/untar/main.nf' +include { UNTAR as UNTAR2 } from '../../../../modules/untar/main.nf' +include { UNTAR as UNTAR3 } from '../../../../modules/untar/main.nf' +include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../../modules/antismash/antismashlitedownloaddatabases/main.nf' + +workflow test_antismash_antismashlitedownloaddatabases { + input1 = [ + [], + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) + ] + input2 = [ + [], + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) + ] + input3 = [ + [], + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) + ] + + UNTAR1 ( input1 ) + UNTAR2 ( input2 ) + UNTAR3 ( input3 ) + + ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) +} diff --git a/tests/modules/antismash/antismashlitedownloaddatabases/nextflow.config b/tests/modules/antismash/antismashlitedownloaddatabases/nextflow.config new file mode 100644 index 00000000..06a716aa --- /dev/null +++ b/tests/modules/antismash/antismashlitedownloaddatabases/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml new file mode 100644 index 00000000..3493bb4b --- /dev/null +++ b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml @@ -0,0 +1,14 @@ +- name: antismash antismashlitedownloaddatabases test_antismash_antismashlitedownloaddatabases + command: nextflow run tests/modules/antismash/antismashlitedownloaddatabases -entry test_antismash_antismashlitedownloaddatabases -c tests/config/nextflow.config + tags: + - antismash/antismashlitedownloaddatabases + - antismash + files: + - path: output/antismash/versions.yml + md5sum: e2656c8d2bcc7469eba40eb1ee5c91b3 + - path: output/antismash/antismash_db + - path: output/antismash/antismash_db/clusterblast + - path: output/antismash/antismash_db/clustercompare + - path: output/antismash/antismash_db/pfam + - path: output/antismash/antismash_db/resfam + - path: output/antismash/antismash_db/tigrfam From d85f9c7011a2539dc07582c1642f4255a3724b7c Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 21 Apr 2022 13:16:23 +0200 Subject: [PATCH 195/592] add subworkflow bam_qc_picard --- subworkflows/nf-core/bam_qc_picard/main.nf | 43 +++++++++++++ subworkflows/nf-core/bam_qc_picard/meta.yml | 64 +++++++++++++++++++ .../nf-core/bam_qc_picard/main.nf | 21 ++++++ .../nf-core/bam_qc_picard/test.yml | 33 ++++++++++ 4 files changed, 161 insertions(+) create mode 100644 subworkflows/nf-core/bam_qc_picard/main.nf create mode 100644 subworkflows/nf-core/bam_qc_picard/meta.yml create mode 100644 tests/subworkflows/nf-core/bam_qc_picard/main.nf create mode 100644 tests/subworkflows/nf-core/bam_qc_picard/test.yml diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf new file mode 100644 index 00000000..31edb2c3 --- /dev/null +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -0,0 +1,43 @@ +// +// Run QC steps on BAM/CRAM files using Picard +// + +params.options = [:] + +include { PICARD_COLLECTMULTIPLEMETRICS } from '../../../modules/picardcollectmultiplemetrics/main' addParams( options: params.options ) +include { PICARD_COLLECTWGSMETRICS } from '../../../modules/picardcollectwgsmetrics/main' addParams( options: params.options ) +include { PICARD_COLLECTHSMETRICS } from '../../../modules/picardcollecthsmetrics/main' addParams( options: params.options ) + +workflow BAM_QC_PICARD { + take: + ch_bam_bai // channel: [ val(meta), [ bam ], [bai/csi] ] + ch_fasta // channel: [ fasta ] + ch_bait_interval // channel: [ bait_interval ] + ch_target_interval // channel: [ target_interval ] + + main: + ch_versions = Channel.empty() + + PICARD_COLLECTMULTIPLEMETRICS( ch_bam_bai, ch_fasta] ) + ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions.first()) + if (!ch_bait_interval.isEmpty() || !ch_target_interval.isEmpty()) { + if (ch_bait_interval.isEmpty()) { + throw new Error("Bait interval channel is empty") + } + if (ch_target_interval.isEmpty()) { + throw new Error("Target interval channel is empty") + } + PICARD_COLLECTHSMETRICS( ch_bam_bai, ch_fasta, ch_bait_interval, ch_target_interval ) + ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) + } else { + PICARD_COLLECTWGSMETRICS( ch_bam_bai, ch_fasta ) + ch_versions = ch_versions.mix(PICARD_COLLECTWGSMETRICS.out.versions.first()) + } + + emit: + hs_metrics = PICARD_COLLECTHSMETRICS.out.hs_metrics // channel: [ val(meta), [ hs_metrics ] ] + wgs_metrics = PICARD_COLLECTWGSMETRICS.out.metrics // channel: [ val(meta), [ wgs_metrics ] ] + multiple_metrics = PICARD_COLLECTMULTIPLEMETRICS.out.metrics // channel: [ val(meta), [ multiple_metrics ] ] + + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/nf-core/bam_qc_picard/meta.yml b/subworkflows/nf-core/bam_qc_picard/meta.yml new file mode 100644 index 00000000..77104e82 --- /dev/null +++ b/subworkflows/nf-core/bam_qc_picard/meta.yml @@ -0,0 +1,64 @@ +name: bam_qc +description: Produces comprehensive statistics from BAM file +keywords: + - statistics + - counts + - hs_metrics + - wgs_metrics + - bam + - sam + - cram +modules: + - picard/collectmultiplemetrics + - picard/collectwgsmetrics + - picard/collecthsmetrics +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}" + - fasta: + type: optional file + description: Reference file the CRAM was created with + pattern: "*.{fasta,fa}" + - bait_intervals: + type: optional file + description: An interval list file that contains the locations of the baits used. + pattern: "baits.interval_list" + - target_intervals: + type: optional file + description: An interval list file that contains the locations of the targets. + pattern: "targets.interval_list" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - hs_metrics: + type: file + description: Alignment metrics files generated by picard CollectHsMetrics + pattern: "*_collecthsmetrics.txt" + - wgs_metrics: + type: file + description: Alignment metrics files generated by picard CollectWgsMetrics + pattern: "*_{metrics}" + - multiple_metrics: + type: file + description: Alignment metrics files generated by picard CollectMultipleMetrics + pattern: "*_{metrics}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@matthdsm" diff --git a/tests/subworkflows/nf-core/bam_qc_picard/main.nf b/tests/subworkflows/nf-core/bam_qc_picard/main.nf new file mode 100644 index 00000000..d88f2bf9 --- /dev/null +++ b/tests/subworkflows/nf-core/bam_qc_picard/main.nf @@ -0,0 +1,21 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BAM_QC_PICARD } from '../../../../subworkflows/nf-core/bam_qc_picard/main' addParams([:]) + +workflow test_bam_qc_picard_wgs { + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true) + ] + + BAM_QC_PICARD ( input, [], [], [] ) +} + +workflow test_bam_qc_picard_targetted { + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + BAM_QC_PICARD ( input, [], file(params.test_data['sarscov2']['genome']['baits_interval_list'], checkIfExists: true), file(params.test_data['sarscov2']['genome']['targets_interval_list'], checkIfExists: true) ) +} diff --git a/tests/subworkflows/nf-core/bam_qc_picard/test.yml b/tests/subworkflows/nf-core/bam_qc_picard/test.yml new file mode 100644 index 00000000..af98230d --- /dev/null +++ b/tests/subworkflows/nf-core/bam_qc_picard/test.yml @@ -0,0 +1,33 @@ +- name: bam qc picard wgs + command: nextflow run ./tests/subworkflows/nf-core/bam_qc_picard -entry test_bam_qc_picard_wgs -c tests/config/nextflow.config + tags: + - subworkflows + # - subworkflows/bam_qc_picard + # Modules + # - picard + # - picard/collectmultiplemetrics + # - picard/collectwgsmetrics + files: + - path: ./output/picard/test.CollectMultipleMetrics.alignment_summary_metrics + - path: ./output/picard/test.CollectMultipleMetrics.insert_size_metrics + - path: ./output/picard/test.CollectMultipleMetrics.base_distribution_by_cycle_metrics + - path: ./output/picard/test.CollectMultipleMetrics.quality_by_cycle_metrics + - path: ./output/picard/test.CollectMultipleMetrics.quality_distribution_metrics + - path: ./output/picard/test.CollectWgsMetrics.coverage_metrics + +- name: bam qc picard targetted + command: nextflow run ./tests/subworkflows/nf-core/bam_qc_picard -entry test_bam_qc_picard_targetted -c tests/config/nextflow.config + tags: + - subworkflows + # - subworkflows/bam_qc_picard + # Modules + # - picard + # - picard/collectmultiplemetrics + # - picard/collecthsmetrics + files: + - path: ./output/picard/test.CollectMultipleMetrics.alignment_summary_metrics + - path: ./output/picard/test.CollectMultipleMetrics.insert_size_metrics + - path: ./output/picard/test.CollectMultipleMetrics.base_distribution_by_cycle_metrics + - path: ./output/picard/test.CollectMultipleMetrics.quality_by_cycle_metrics + - path: ./output/picard/test.CollectMultipleMetrics.quality_distribution_metrics + - path: ./output/picard/test_collecthsmetrics.txt From abe025677cdd805cc93032341ab19885473c1a07 Mon Sep 17 00:00:00 2001 From: Francesco L <53608000+lescai@users.noreply.github.com> Date: Thu, 21 Apr 2022 14:33:59 +0200 Subject: [PATCH 196/592] update to kraken2: breaking change - output channels renamed (#1525) * updated kraken2 module to include optional classification of each input reads, and make fastq outputs optional NB: this is a breaking change, because the output channels have been renamed as a consequence of changes * updated yml * pigz command made optional, in order to be executed only if fastq of classified/unclassified reads are saved * updated test yaml file for kraken2 * fixed TODOs and renamed variables and outputs * untar in conda cannot keep same md5sum of version, and therefore md5sum check removed * improved description of the options Co-authored-by: James A. Fellows Yates --- modules/kraken2/kraken2/main.nf | 23 ++++++++++----- modules/kraken2/kraken2/meta.yml | 25 ++++++++++++---- tests/modules/kraken2/kraken2/main.nf | 14 +++++++-- tests/modules/kraken2/kraken2/test.yml | 40 +++++++++++++++++--------- 4 files changed, 75 insertions(+), 27 deletions(-) diff --git a/modules/kraken2/kraken2/main.nf b/modules/kraken2/kraken2/main.nf index 3ec5df52..d4000233 100644 --- a/modules/kraken2/kraken2/main.nf +++ b/modules/kraken2/kraken2/main.nf @@ -10,12 +10,15 @@ process KRAKEN2_KRAKEN2 { input: tuple val(meta), path(reads) path db + val save_output_fastqs + val save_reads_assignment output: - tuple val(meta), path('*classified*') , emit: classified - tuple val(meta), path('*unclassified*'), emit: unclassified - tuple val(meta), path('*report.txt') , emit: txt - path "versions.yml" , emit: versions + tuple val(meta), path('*classified*') , optional:true, emit: classified_reads_fastq + tuple val(meta), path('*unclassified*') , optional:true, emit: unclassified_reads_fastq + tuple val(meta), path('*classifiedreads*'), optional:true, emit: classified_reads_assignment + tuple val(meta), path('*report.txt') , emit: report + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -26,19 +29,25 @@ process KRAKEN2_KRAKEN2 { def paired = meta.single_end ? "" : "--paired" def classified = meta.single_end ? "${prefix}.classified.fastq" : "${prefix}.classified#.fastq" def unclassified = meta.single_end ? "${prefix}.unclassified.fastq" : "${prefix}.unclassified#.fastq" + def classified_command = save_output_fastqs ? "--classified-out ${classified}" : "" + def unclassified_command = save_output_fastqs ? "--unclassified-out ${unclassified}" : "" + def readclassification_command = save_reads_assignment ? "--output ${prefix}.kraken2.classifiedreads.txt" : "" + def compress_reads_command = save_output_fastqs ? "pigz -p $task.cpus *.fastq" : "" + """ kraken2 \\ --db $db \\ --threads $task.cpus \\ - --unclassified-out $unclassified \\ - --classified-out $classified \\ --report ${prefix}.kraken2.report.txt \\ --gzip-compressed \\ + $unclassified_command \\ + $classified_command \\ + $readclassification_command \\ $paired \\ $args \\ $reads - pigz -p $task.cpus *.fastq + $compress_reads_command cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/kraken2/kraken2/meta.yml b/modules/kraken2/kraken2/meta.yml index 9d6a3855..7129fe3a 100644 --- a/modules/kraken2/kraken2/meta.yml +++ b/modules/kraken2/kraken2/meta.yml @@ -27,25 +27,40 @@ input: - db: type: directory description: Kraken2 database + - save_output_fastqs: + type: boolean + description: | + If true, optional commands are added to save classified and unclassified reads + as fastq files + - save_reads_assignment: + type: boolean + description: | + If true, an optional command is added to save a file reporting the taxonomic + classification of each input read output: - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - classified: + - classified_reads_fastq: type: file description: | - Reads classified to belong to any of the taxa + Reads classified as belonging to any of the taxa on the Kraken2 database. pattern: "*{fastq.gz}" - - unclassified: + - unclassified_reads_fastq: type: file description: | - Reads not classified to belong to any of the taxa + Reads not classified to any of the taxa on the Kraken2 database. pattern: "*{fastq.gz}" - - txt: + - classified_reads_assignment: + type: file + description: | + Kraken2 output file indicating the taxonomic assignment of + each input read + - report: type: file description: | Kraken2 report containing stats about classified diff --git a/tests/modules/kraken2/kraken2/main.nf b/tests/modules/kraken2/kraken2/main.nf index 94f4db95..4a3593e4 100644 --- a/tests/modules/kraken2/kraken2/main.nf +++ b/tests/modules/kraken2/kraken2/main.nf @@ -12,7 +12,7 @@ workflow test_kraken2_kraken2_single_end { db = [ [], file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) ] UNTAR ( db ) - KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar.map{ it[1] } ) + KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar.map{ it[1] }, true, false ) } workflow test_kraken2_kraken2_paired_end { @@ -23,5 +23,15 @@ workflow test_kraken2_kraken2_paired_end { db = [ [], file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) ] UNTAR ( db ) - KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar.map{ it[1] } ) + KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar.map{ it[1] }, true, false ) +} + +workflow test_kraken2_kraken2_classifyreads { + input = [ [ id:'test', single_end:true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + db = [ [], file(params.test_data['sarscov2']['genome']['kraken2_tar_gz'], checkIfExists: true) ] + + UNTAR ( db ) + KRAKEN2_KRAKEN2 ( input, UNTAR.out.untar.map{ it[1] }, false, true ) } diff --git a/tests/modules/kraken2/kraken2/test.yml b/tests/modules/kraken2/kraken2/test.yml index 1ec413bf..af1e6e0d 100644 --- a/tests/modules/kraken2/kraken2/test.yml +++ b/tests/modules/kraken2/kraken2/test.yml @@ -1,29 +1,43 @@ -- name: kraken2 kraken2 single-end - command: nextflow run ./tests/modules/kraken2/kraken2 -entry test_kraken2_kraken2_single_end -c ./tests/config/nextflow.config -c ./tests/modules/kraken2/kraken2/nextflow.config +- name: kraken2 kraken2 test_kraken2_kraken2_single_end + command: nextflow run tests/modules/kraken2/kraken2 -entry test_kraken2_kraken2_single_end -c tests/config/nextflow.config tags: - kraken2 - kraken2/kraken2 files: - path: output/kraken2/test.classified.fastq.gz - should_exist: true - - path: output/kraken2/test.unclassified.fastq.gz - should_exist: true - path: output/kraken2/test.kraken2.report.txt md5sum: 4227755fe40478b8d7dc8634b489761e + - path: output/kraken2/test.unclassified.fastq.gz + - path: output/kraken2/versions.yml + md5sum: 6e3ad947ac8dee841a89216071c181cc + - path: output/untar/versions.yml -- name: kraken2 kraken2 paired-end - command: nextflow run ./tests/modules/kraken2/kraken2 -entry test_kraken2_kraken2_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/kraken2/kraken2/nextflow.config +- name: kraken2 kraken2 test_kraken2_kraken2_paired_end + command: nextflow run tests/modules/kraken2/kraken2 -entry test_kraken2_kraken2_paired_end -c tests/config/nextflow.config tags: - kraken2 - kraken2/kraken2 files: - path: output/kraken2/test.classified_1.fastq.gz - should_exist: true - path: output/kraken2/test.classified_2.fastq.gz - should_exist: true - - path: output/kraken2/test.unclassified_1.fastq.gz - should_exist: true - - path: output/kraken2/test.unclassified_2.fastq.gz - should_exist: true - path: output/kraken2/test.kraken2.report.txt md5sum: 4227755fe40478b8d7dc8634b489761e + - path: output/kraken2/test.unclassified_1.fastq.gz + - path: output/kraken2/test.unclassified_2.fastq.gz + - path: output/kraken2/versions.yml + md5sum: 604482fe7a4519f890fae9c8beb1bd6e + - path: output/untar/versions.yml + +- name: kraken2 kraken2 test_kraken2_kraken2_classifyreads + command: nextflow run tests/modules/kraken2/kraken2 -entry test_kraken2_kraken2_classifyreads -c tests/config/nextflow.config + tags: + - kraken2 + - kraken2/kraken2 + files: + - path: output/kraken2/test.kraken2.classifiedreads.txt + md5sum: e7a90531f0d8d777316515c36fe4cae0 + - path: output/kraken2/test.kraken2.report.txt + md5sum: 4227755fe40478b8d7dc8634b489761e + - path: output/kraken2/versions.yml + md5sum: 3488c304259e83c5bea573403293fce9 + - path: output/untar/versions.yml From f4c69bc4270186ca5ec174833dbe26cc0e1860fc Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 21 Apr 2022 15:39:22 +0200 Subject: [PATCH 197/592] Module/bclconvert (#1485) * bclconvert: initial commit * add most of tool * attempt at adding testing stub * add dockerfile + instructions * add container to module * update readme * more attempts at making stubs work * finish stub run * fix ci issues * more fixes to stub * add read version check to stub * fix some tests * update readme * fix version number * syntax fix * revert edit to output directory * Update modules/bclconvert/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/bclconvert/meta.yml Co-authored-by: James A. Fellows Yates * update meta.yaml * update thread usage * Update modules/bclconvert/main.nf Co-authored-by: Edmund Miller * Escape env variable * Update modules/bclconvert/Dockerfile Co-authored-by: Mark Whelan <7407040+MrMarkW@users.noreply.github.com> * fix comments by @Emiller88 * fix task.cpus Co-authored-by: James A. Fellows Yates Co-authored-by: Edmund Miller Co-authored-by: Mark Whelan <7407040+MrMarkW@users.noreply.github.com> --- modules/bclconvert/.gitignore | 2 + modules/bclconvert/Dockerfile | 15 +++++ modules/bclconvert/LICENSE | 30 +++++++++ modules/bclconvert/README.md | 17 +++++ modules/bclconvert/main.nf | 81 ++++++++++++++++++++++++ modules/bclconvert/meta.yml | 45 +++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/bclconvert/main.nf | 22 +++++++ tests/modules/bclconvert/nextflow.config | 5 ++ tests/modules/bclconvert/test.yml | 52 +++++++++++++++ 10 files changed, 273 insertions(+) create mode 100644 modules/bclconvert/.gitignore create mode 100644 modules/bclconvert/Dockerfile create mode 100644 modules/bclconvert/LICENSE create mode 100644 modules/bclconvert/README.md create mode 100644 modules/bclconvert/main.nf create mode 100644 modules/bclconvert/meta.yml create mode 100644 tests/modules/bclconvert/main.nf create mode 100644 tests/modules/bclconvert/nextflow.config create mode 100644 tests/modules/bclconvert/test.yml diff --git a/modules/bclconvert/.gitignore b/modules/bclconvert/.gitignore new file mode 100644 index 00000000..45b0ea3a --- /dev/null +++ b/modules/bclconvert/.gitignore @@ -0,0 +1,2 @@ +bcl-convert +*.rpm diff --git a/modules/bclconvert/Dockerfile b/modules/bclconvert/Dockerfile new file mode 100644 index 00000000..df3e1d0f --- /dev/null +++ b/modules/bclconvert/Dockerfile @@ -0,0 +1,15 @@ +# Dockerfile to create container with bcl-convert +# Push to nfcore/bclconvert: + +FROM debian:bullseye-slim +LABEL authors="Matthias De Smet " \ + description="Docker image containing bcl-convert" +# Disclaimer: this container is not provided nor supported by Illumina +# 'ps' command is need by some nextflow executions to collect system stats +# Install procps and clean apt cache +RUN apt-get update \ + && apt-get install -y \ + procps \ + && apt-get clean -y && rm -rf /var/lib/apt/lists/* +COPY bcl-convert /usr/local/bin/bcl-convert +RUN chmod +x /usr/local/bin/bcl-convert diff --git a/modules/bclconvert/LICENSE b/modules/bclconvert/LICENSE new file mode 100644 index 00000000..6f523227 --- /dev/null +++ b/modules/bclconvert/LICENSE @@ -0,0 +1,30 @@ +ILLUMINA END-USER SOFTWARE LICENSE AGREEMENT + +IMPORTANT-READ CAREFULLY. THIS IS A LICENSE AGREEMENT THAT YOU ARE REQUIRED TO ACCEPT BEFORE, DOWNLOADING, INSTALLING AND USING ANY SOFTWARE MADE AVAILABLE FROM THE ILLUMINA SUPPORT CENTER (https://support.illumina.com). + +CAREFULLY READ ALL THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT BEFORE PROCEEDING WITH DOWNLOADING, INSTALLING, AND/OR USING THE SOFTWARE. YOU ARE NOT PERMITTED TO DOWNLOAD, INSTALL, AND/OR USE THE SOFTWARE UNTIL YOU HAVE AGREED TO BE BOUND BY ALL OF THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT. YOU REPRESENT AND WARRANT THAT YOU ARE DULY AUTHORIZED TO ACCEPT THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT ON BEHALF OF YOUR EMPLOYER. + +Software made available through the Illumina Support Center is licensed, not sold, to you. Your license to each software program made available through the Illumina Support Center is subject to your prior acceptance of either this Illumina End-User Software License Agreement (“Agreement”), or a custom end user license agreement (“Custom EULA”), if one is provided with the software. Any software that is subject to this Agreement is referred to herein as the “Software.” By accepting this Agreement, you agree the terms and conditions of this Agreement will apply to and govern any and all of your downloads, installations, and uses of each Illumina software program made available through the Illumina Support Center, except that your download, installation, and use of any software provided with a Custom EULA will be governed by the terms and conditions of the Custom EULA. + +This Agreement is made and entered into by and between Illumina, Inc., a Delaware corporation, having offices at 5200 Illumina Way, San Diego, CA 92122 (“Illumina”) and you as the end-user of the Software (hereinafter, “Licensee” or “you”). All software, firmware, and associated media, printed materials, and online and electronic documentation, including any updates or upgrades thereof, made available through the Illumina Support Center (collectively, “Software”) provided to Licensee are for use solely by Licensee and the provisions herein WILL apply with respect to such Software. + +License Grant. Subject to the terms and conditions of this Agreement, Illumina grants to Licensee, under the following terms and conditions, a personal, non-exclusive, revocable, non-transferable, non-sublicensable license, for its internal end-use purposes only, in the ordinary course of Licensee’s business to use the Software in executable object code form only, solely at the Licensee’s facility to, install and use the Software on a single computer accessible only by Licensee (and not on any public network or server), where the single computer is owned, leased, or otherwise substantially controlled by Licensee, for the purpose of processing and analyzing data generated from an Illumina genetic sequencing instrument owned and operated solely by Licensee (the “Product”). In the case of Software provided by Illumina in non-compiled form, Illumina grants Licensee a personal, non-exclusive, non-sublicenseable, restricted right to compile, install, and use one copy of the Software solely for processing and analyzing data generated from the Product. +License Restrictions. Except as expressly permitted in Section 1, Licensee may not make, have made, import, use, copy, reproduce, distribute, display, publish, sell, re-sell, lease, or sub-license the Software, in whole or in part, except as expressly provided for in this Agreement. Licensee may not modify, improve, translate, reverse engineer, decompile, disassemble, or create derivative works of the Software or otherwise attempt to (a) defeat, avoid, by-pass, remove, deactivate, or otherwise circumvent any software protection mechanisms in the Software including, without limitation, any such mechanism used to restrict or control the functionality of the Software, or (b) derive the source code or the underlying ideas, algorithms, structure, or organization form of the Software. Licensee will not allow, at any time, including during and after the term of the license, the Software or any portions or copies thereof in any form to become available to any third parties. Licensee may use the Software solely with genomic data that is generated using the Product; Licensee may not use the Software with any data generated from other products or instruments. Licensee may not use the Software to perform any data analysis services for any third party. +Ownership. The Software is protected by United States and international intellectual property laws. All right, title, and interest in and to the Software (including associated intellectual property rights) are and will remain vested in Illumina or Illumina’s affiliated companies or licensors. Licensee acknowledges that no rights, license or interest to any Illumina trademarks are granted hereunder. Licensee acknowledges that unauthorized reproduction or distribution of the Software, or any portion of it, may result in severe civil and criminal penalties. Illumina reserves all rights in and to the Software not expressly granted to Licensee under this Agreement. +Upgrades/Updates. Illumina may, at its sole discretion, provide updates or upgrades to the Software. In that case, Licensee WILL have the same rights and obligations under such updates or upgrades as it has for the versions of the Software initially provided to Licensee hereunder. Licensee recognizes that Illumina is not obligated to provide any upgrades or updates to, or support for, the Software. +Data Integrity/Loss. Licensee is responsible for the integrity and availability, including preventing the loss of data that Licensee generates, uses, analyzes, manages, or stores in connection with or through its use of the Software, including without limitation, investigating and implementing industry appropriate policies and procedures regarding the provision of access to Licensee’s data, monitoring access and use of Licensee’s data, conducting routine backups and archiving of Licensee’s data, and ensuring the adequacy of anti-virus software. Accordingly, Licensee agrees that Illumina is not responsible for any inability to access, loss or corruption of data as a result of Licensee’s use of the Software, and Illumina has no liability to Licensee in connection with such inability to access, loss or corruption of data. +Term of License. This Agreement will be in effect from the time Licensee expressly accepts the terms and conditions of this license, or otherwise installs the Software, thereby accepting the terms and conditions contained herein, and will remain in effect until terminated. This license will otherwise terminate upon the conditions set forth in this Agreement, if revoked by Illumina, or if Licensee fails to comply with any term or condition of this Agreement including failure to pay any applicable license fee. Licensee agrees upon termination of this Agreement for any reason to immediately discontinue use of and un-install the Software and destroy all copies of the Software in its possession and/or under its control, and return or destroy, at Illumina’s option, any compact disks, floppy disks or other media provided by Illumina storing the Software thereon (together with any authorized copies thereof), as well as any documentation associated therewith +Limited Warranty. Illumina warrants that, for a period of 6 months from the date of download or installation of the Software by Licensee, the Software will perform in all material respects in accordance with the accompanying documentation available on the Illumina Support Center. EXCEPT AND TO THE EXTENT EXPRESSLY PROVIDED IN THE FOREGOING, AND TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, THE SOFTWARE IS PROVIDED “AS IS” AND ILLUMINA EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS REGARDING THE SOFTWARE AND RESULTS GENERATED BY THE SOFTWARE, INCLUDING WITHOUT LIMITATION, TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ALL OTHER EXPRESS OR IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABLE QUALITY, NON-INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE, AND THOSE ARISING BY STATUTE OR OTHERWISE IN LAW OR FROM A COURSE OF DEALING OR USAGE OF TRADE. ILLUMINA DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET LICENSEE"S REQUIREMENTS, OR THAT THE OPERATION OF THE SOFTWARE WILL BE ERROR FREE OR UNINTERRUPTED. +Limitation of Liability. +(a) ILLUMINA’S ENTIRE LIABILITY AND LICENSEE"S EXCLUSIVE REMEDY UNDER THE LIMITED WARRANTY PROVISION OF SECTION 7 ABOVE WILL BE, AT ILLUMINA’S OPTION, EITHER (i) RETURN OF THE PRICE PAID FOR THE SOFTWARE, OR (ii) REPAIR OR REPLACEMENT OF THE PORTIONS OF THE SOFTWARE THAT DO NOT COMPLY WITH ILLUMINA’S LIMITED WARRANTY. THIS LIMITED WARRANTY IS VOID AND ILLUMINA WILL HAVE NO LIABILITY AT ALL IF FAILURE OF THE SOFTWARE TO COMPLY WITH ILLUMINA LIMITED WARRANTY HAS RESULTED FROM: (w) FAILURE TO USE THE SOFTWARE IN ACCORDANCE WITH ILLUMINA’S THEN CURRENT USER MANUAL OR THIS AGREEMENT; (x) ACCIDENT, ABUSE, OR MISAPPLICATION; (y) PRODUCTS OR EQUIPMENT NOT SPECIFIED BY ILLUMINA AS BEING COMPATIBLE WITH THE SOFTWARE; OR (z) IF LICENSEE HAS NOT NOTIFIED ILLUMINA IN WRITING OF THE DEFECT WITHIN THE ABOVE WARRANTY PERIOD. + +(b) TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL ILLUMINA BE LIABLE UNDER ANY THEORY OF CONTRACT, TORT, STRICT LIABILITY OR OTHER LEGAL OR EQUITABLE THEORY FOR ANY PERSONAL INJURY OR ANY INDIRECT, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, EVEN IF ILLUMINA HAS BEEN ADVISED OF THE POSSIBILITY THEREOF INCLUDING, WITHOUT LIMITATION, LOST PROFITS, LOST DATA, INTERRUPTION OF BUSINESS, LOST BUSINESS REVENUE, OTHER ECONOMIC LOSS, OR ANY LOSS OF RECORDED DATA ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE. EXCEPT AND TO THE EXTENT EXPRESSLY PROVIDED IN SECTION 7 AND 8(a) ABOVE OR AS OTHERWISE PERMITTED BY LAW, IN NO EVENT WILL ILLUMINA’S TOTAL LIABILITY TO LICENSEE FOR ALL DAMAGES (OTHER THAN AS MAY BE REQUIRED BY APPLICABLE LAW IN CASES INVOLVING PERSONAL INJURY) EXCEED THE AMOUNT OF $500 USD. THE FOREGOING LIMITATIONS WILL APPLY EVEN IF THE ABOVE STATED REMEDY FAILS OF ITS ESSENTIAL PURPOSE. + +Survival. The limitations of liability and ownership rights of Illumina contained herein and Licensee’s obligations following termination of this Agreement WILL survive the termination of this Agreement for any reason. +Research Use Only. The Software is labeled with a For Research Use Only or similar labeling statement and the performance characteristics of the Software have not been established and the Software is not for use in diagnostic procedures. Licensee acknowledges and agrees that (i) the Software has not been approved, cleared, or licensed by the United States Food and Drug Administration or any other regulatory entity whether foreign or domestic for any specific intended use, whether research, commercial, diagnostic, or otherwise, and (ii) Licensee must ensure it has any regulatory approvals that are necessary for Licensee’s intended uses of the Software. Licensee will comply with all applicable laws and regulations when using and maintaining the Software. +General. Licensee may not sublicense, assign, share, pledge, rent or transfer any of its rights under this Agreement in relation to the Software or any portion thereof including documentation. Illumina reserves the right to change this Agreement at any time. When Illumina makes any changes, Illumina will provide the updated Agreement, or a link to it, on Illumina’s website (www.illumina.com) and such updated Agreement WILL become effective immediately. Licensee’s continued access to or use of the Software represents Licensee’s agreement to any revised Agreement. If one or more provisions of this Agreement are found to be invalid or unenforceable, this Agreement WILL not be rendered inoperative but the remaining provisions WILL continue in full force and effect. This Agreement constitutes the entire agreement between the parties with respect to the subject matter of this Agreement and merges all prior communications except that a “hard-copy” form of licensing agreement relating to the Software previously agreed to in writing by Illumina and Licensee WILL supersede and govern in the event of any conflicting provisions. +Governing Law. This Agreement WILL be governed by and construed in accordance with the laws of the state of California, USA, without regard to its conflicts of laws principles, and independent of where a suit or action hereunder may be filed. +U.S. Government End Users. If Licensee is a branch agency or instrumentality of the United States Government, the following provision applies. The Software is a “commercial item” as that term is defined at 48 C.F.R. 2.101, consisting of “commercial computer software” and “commercial computer software documentation,” as such terms are used in 48 C.F.R. 12.212 or 48 C.F.R. 227.7202 (as applicable). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4, all United States Government end users acquire the Software with only those rights set forth herein. +Contact. Any questions regarding legal rights, duties, obligations, or restrictions associated with the software hereunder should be directed to Illumina, Inc., 5200 Illumina Way, San Diego, CA 92122, Attention: Legal Department, Phone: (858) 202-4500, Fax: (858) 202-4599, web site: www.illumina.com . +Third Party Components. The Software may include third party software (“Third Party Programs”). Some of the Third Party Programs are available under open source or free software licenses. The License Agreement accompanying the Licensed Software does not alter any rights or obligations Licensee may have under those open source or free software licenses. The licenses that govern the terms and conditions of use of the Third Party Programs included in the Licensed Software are provided in the READ ME provided with the Software. The READ ME also contains copyright statements for the various open source software components (or portions thereof) that are distributed with the Licensed Software. +END OF END-USER SOFTWARE LICENSE AGREEMENT. diff --git a/modules/bclconvert/README.md b/modules/bclconvert/README.md new file mode 100644 index 00000000..4f8538d0 --- /dev/null +++ b/modules/bclconvert/README.md @@ -0,0 +1,17 @@ +# Updating the docker container and making a new module release + +bcl-convert is a commercial tool from Illumina. The container provided for the bcl-convert nf-core module is not provided nor supported by Illumina. Updating the bcl-convert versions in the container and pushing the update to Dockerhub needs to be done manually. + +1. Navigate to the appropriate download page. - [BCL Convert](https://support.illumina.com/sequencing/sequencing_software/bcl-convert/downloads.html): download the rpm of the desired bcl-convert version with `curl` or `wget`. +2. Unpack the RPM package using `rpm2cpio bcl-convert-*.rpm | cpio -i --make-directories`. Place the executable located in `/usr/bin/bcl-convert` in the same folder where the Dockerfile lies. +3. Create and test the container: + + ```bash + docker build . -t nfcore/bclconvert: + ``` + +4. Access rights are needed to push the container to the Dockerhub nfcore organization, please ask a core team member to do so. + + ```bash + docker push nfcore/bclconvert: + ``` diff --git a/modules/bclconvert/main.nf b/modules/bclconvert/main.nf new file mode 100644 index 00000000..e6925b50 --- /dev/null +++ b/modules/bclconvert/main.nf @@ -0,0 +1,81 @@ +process BCLCONVERT { + tag '$samplesheet' + label 'process_high' + + if (params.enable_conda) { + exit 1, "Conda environments cannot be used when using bcl-convert. Please use docker or singularity containers." + } + container "nfcore/bclconvert:3.9.3" + + input: + path samplesheet + path run_dir + + output: + path "*.fastq.gz" ,emit: fastq + path "Reports/*.{csv,xml,bin}" ,emit: reports + path "Logs/*.{log,txt}" ,emit: logs + path "InterOp/*.bin" ,emit: interop + path "versions.yml" ,emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + + """ + bcl-convert \ + $args \\ + --output-directory . \\ + --bcl-input-directory ${run_dir} \\ + --sample-sheet ${samplesheet} \\ + --bcl-num-parallel-tiles ${task.cpus} + + mkdir InterOp + cp ${run_dir}/InterOp/*.bin InterOp/ + mv Reports/*.bin InterOp/ + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bclconvert: \$(bcl-convert -V 2>&1 | head -n 1 | sed 's/^.*Version //') + END_VERSIONS + """ + + stub: + """ + echo "sample1_S1_L001_R1_001" > sample1_S1_L001_R1_001.fastq.gz + echo "sample1_S1_L001_R2_001" > sample1_S1_L001_R2_001.fastq.gz + echo "sample1_S1_L002_R1_001" > sample1_S1_L002_R1_001.fastq.gz + echo "sample1_S1_L002_R2_001" > sample1_S1_L002_R2_001.fastq.gz + echo "sample2_S2_L001_R1_001" > sample2_S2_L001_R1_001.fastq.gz + echo "sample2_S2_L001_R2_001" > sample2_S2_L001_R2_001.fastq.gz + echo "sample2_S2_L002_R1_001" > sample2_S2_L002_R1_001.fastq.gz + echo "sample2_S2_L002_R2_001" > sample2_S2_L002_R2_001.fastq.gz + + mkdir Reports + echo "Adapter_Metrics" > Reports/Adapter_Metrics.csv + echo "Demultiplex_Stats" > Reports/Demultiplex_Stats.csv + echo "fastq_list" > Reports/fastq_list.csv + echo "Index_Hopping_Counts" > Reports/Index_Hopping_Counts.csv + echo "IndexMetricsOut" > Reports/IndexMetricsOut.bin + echo "Quality_Metrics" > Reports/Quality_Metrics.csv + echo "RunInfo" > Reports/RunInfo.xml + echo "SampleSheet" > Reports/SampleSheet.csv + echo "Top_Unknown_Barcodes" > Reports/Top_Unknown_Barcodes.csv + + mkdir Logs + echo "Errors" > Logs/Errors.log + echo "FastqComplete" > Logs/FastqComplete.txt + echo "Info" > Logs/Info.log + echo "Warnings" > Logs/Warnings.log + + mkdir InterOp/ + echo "InterOp" > InterOp/InterOp.bin + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bclconvert: \$(bcl-convert -V 2>&1 | head -n 1 | sed 's/^.*Version //') + END_VERSIONS + """ +} diff --git a/modules/bclconvert/meta.yml b/modules/bclconvert/meta.yml new file mode 100644 index 00000000..5c59a978 --- /dev/null +++ b/modules/bclconvert/meta.yml @@ -0,0 +1,45 @@ +name: "bclconvert" +description: Demultiplex Illumina BCL files +keywords: + - demultiplex + - illumina + - fastq +tools: + - "bclconvert": + description: "Demultiplex Illumina BCL files" + homepage: "https://support.illumina.com/sequencing/sequencing_software/bcl-convert.html" + documentation: "https://support-docs.illumina.com/SW/BCL_Convert/Content/SW/FrontPages/BCL_Convert.htm" + licence: "ILLUMINA" + +input: + - samplesheet: + type: file + description: "Input samplesheet" + pattern: "*.{csv}" + - run_dir: + type: directory + description: "Input run directory containing RunInfo.xml and BCL data" + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - fastq: + type: file + description: Demultiplexed FASTQ files + pattern: "*.{fastq.gz}" + - reports: + type: file + description: Demultiplexing Reports + pattern: "Reports/*.{csv,xml}" + - logs: + type: file + description: Log files + pattern: "Logs/*.{log,txt}" + - interop: + type: file + description: Interop files + pattern: "Interop/*.{bin}" +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 9a128bd4..786f87db 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -174,6 +174,10 @@ bcftools/view: - modules/bcftools/view/** - tests/modules/bcftools/view/** +bclconvert: + - modules/bclconvert/** + - tests/modules/bclconvert/** + bedtools/bamtobed: - modules/bedtools/bamtobed/** - tests/modules/bedtools/bamtobed/** diff --git a/tests/modules/bclconvert/main.nf b/tests/modules/bclconvert/main.nf new file mode 100644 index 00000000..e8a78e4f --- /dev/null +++ b/tests/modules/bclconvert/main.nf @@ -0,0 +1,22 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { BCLCONVERT } from '../../../modules/bclconvert/main.nf' + +process STUB_BCLCONVERT_INPUT { + output: + path "SampleSheet.csv" ,emit: samplesheet + path "DDMMYY_SERIAL_FLOWCELL" ,emit: run_dir + + stub: + """ + mkdir DDMMYY_SERIAL_FLOWCELL + echo "SampleSheet" > SampleSheet.csv + """ +} + +workflow test_bclconvert { + STUB_BCLCONVERT_INPUT () + BCLCONVERT (STUB_BCLCONVERT_INPUT.out.samplesheet, STUB_BCLCONVERT_INPUT.out.run_dir) +} diff --git a/tests/modules/bclconvert/nextflow.config b/tests/modules/bclconvert/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/bclconvert/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/bclconvert/test.yml b/tests/modules/bclconvert/test.yml new file mode 100644 index 00000000..65e71a59 --- /dev/null +++ b/tests/modules/bclconvert/test.yml @@ -0,0 +1,52 @@ +- name: bclconvert test_bclconvert + command: nextflow run tests/modules/bclconvert -entry test_bclconvert -c tests/config/nextflow.config -stub-run + tags: + - bclconvert + files: + - path: output/bclconvert/InterOp/InterOp.bin + md5sum: d3dea0bb4ab1c8754af324f40b001481 + - path: output/bclconvert/Logs/Errors.log + md5sum: 334645f09074b2597a692e395b716a9c + - path: output/bclconvert/Logs/FastqComplete.txt + md5sum: a4c4c6ce2d0de67d3b7ac7d1fcb512e4 + - path: output/bclconvert/Logs/Info.log + md5sum: d238822d379f2277cac950ca986cb660 + - path: output/bclconvert/Logs/Warnings.log + md5sum: aeefd2d631817e170f88f25ecaaf4664 + - path: output/bclconvert/Reports/Adapter_Metrics.csv + md5sum: af62e9c7b44940cfd8ea11064a1f42ae + - path: output/bclconvert/Reports/Demultiplex_Stats.csv + md5sum: d11313931fcaabb5ce159462ad3dd1da + - path: output/bclconvert/Reports/IndexMetricsOut.bin + md5sum: 6bcee11c8145e3b1059ceaa91d2f5be7 + - path: output/bclconvert/Reports/Index_Hopping_Counts.csv + md5sum: 697e40e0c0d48b4bd25f138ef60b0bde + - path: output/bclconvert/Reports/Quality_Metrics.csv + md5sum: 3902fd38f6b01f1ce0f0e8724238f8f2 + - path: output/bclconvert/Reports/RunInfo.xml + md5sum: 5bef7c7e76360231b0c4afdfc915fd44 + - path: output/bclconvert/Reports/SampleSheet.csv + md5sum: c579e7d2c9c917c4cfb875a0373c0936 + - path: output/bclconvert/Reports/Top_Unknown_Barcodes.csv + md5sum: 39a5e7f6d21c12d6051afdc8261b6330 + - path: output/bclconvert/Reports/fastq_list.csv + md5sum: 32c51ab10e013fd547928de57361ffcb + - path: output/bclconvert/sample1_S1_L001_R1_001.fastq.gz + md5sum: 9b831a39755935333f86f167527a094d + - path: output/bclconvert/sample1_S1_L001_R2_001.fastq.gz + md5sum: 082f4f767b7619f409ca7e752ef482bf + - path: output/bclconvert/sample1_S1_L002_R1_001.fastq.gz + md5sum: 837764c89db93dfb53cd663c4f26f3d7 + - path: output/bclconvert/sample1_S1_L002_R2_001.fastq.gz + md5sum: 1a42cf6ba0bb8fc7770f278e6d1ab676 + - path: output/bclconvert/sample2_S2_L001_R1_001.fastq.gz + md5sum: 475bc426b7cc48d0551d40e31457dc78 + - path: output/bclconvert/sample2_S2_L001_R2_001.fastq.gz + md5sum: f670ccd7d9352e0e67fe1c1232429d94 + - path: output/bclconvert/sample2_S2_L002_R1_001.fastq.gz + md5sum: ebd5ff6fa5603e7d704b5a10598de58c + - path: output/bclconvert/sample2_S2_L002_R2_001.fastq.gz + md5sum: 2f83b460f52620d2548c7ef8845b31d7 + - path: output/stub/SampleSheet.csv + md5sum: c579e7d2c9c917c4cfb875a0373c0936 + - path: output/bclconvert/versions.yml From 0095bc91f7d8b7a2154f321ba8567ddd8b39bf46 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Thu, 21 Apr 2022 18:49:42 +0000 Subject: [PATCH 198/592] add module for shigatyper --- modules/shigatyper/main.nf | 64 ++++++++++++++++++++++++ modules/shigatyper/meta.yml | 47 +++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/shigatyper/main.nf | 36 +++++++++++++ tests/modules/shigatyper/nextflow.config | 5 ++ tests/modules/shigatyper/test.yml | 30 +++++++++++ 6 files changed, 186 insertions(+) create mode 100644 modules/shigatyper/main.nf create mode 100644 modules/shigatyper/meta.yml create mode 100644 tests/modules/shigatyper/main.nf create mode 100644 tests/modules/shigatyper/nextflow.config create mode 100644 tests/modules/shigatyper/test.yml diff --git a/modules/shigatyper/main.nf b/modules/shigatyper/main.nf new file mode 100644 index 00000000..3754743f --- /dev/null +++ b/modules/shigatyper/main.nf @@ -0,0 +1,64 @@ +process SHIGATYPER { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::shigatyper=2.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/shigatyper%3A2.0.1--pyhdfd78af_0': + 'quay.io/biocontainers/shigatyper:2.0.1--pyhdfd78af_0' }" + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path("${prefix}.tsv") , emit: tsv + tuple val(meta), path("${prefix}-hits.tsv"), emit: hits, optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + + if (meta.is_ont) { + """ + shigatyper \\ + $args \\ + --SE $reads \\ + --ont \\ + --name $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + shigatyper: \$(echo \$(shigatyper --version 2>&1) | sed 's/^.*ShigaTyper //' ) + END_VERSIONS + """ + } else if (meta.single_end) { + """ + shigatyper \\ + $args \\ + --SE $reads \\ + --name $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + shigatyper: \$(echo \$(shigatyper --version 2>&1) | sed 's/^.*ShigaTyper //' ) + END_VERSIONS + """ + } else { + """ + shigatyper \\ + $args \\ + --R1 ${reads[0]} \\ + --R2 ${reads[1]} \\ + --name $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + shigatyper: \$(echo \$(shigatyper --version 2>&1) | sed 's/^.*ShigaTyper //' ) + END_VERSIONS + """ + } +} diff --git a/modules/shigatyper/meta.yml b/modules/shigatyper/meta.yml new file mode 100644 index 00000000..ebaded6b --- /dev/null +++ b/modules/shigatyper/meta.yml @@ -0,0 +1,47 @@ +name: "shigatyper" +description: Determine Shigella serotype from Illumina or Oxford Nanopore reads +keywords: + - fastq + - shigella + - serotype +tools: + - "shigatyper": + description: "Typing tool for Shigella spp. from WGS Illumina sequencing" + homepage: "https://github.com/CFSAN-Biostatistics/shigatyper" + documentation: "https://github.com/CFSAN-Biostatistics/shigatyper" + tool_dev_url: "https://github.com/CFSAN-Biostatistics/shigatyper" + doi: "10.1128/AEM.00165-19" + licence: "['Public Domain']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false, is_ont:false ] + - reads: + type: file + description: Illumina or Nanopore FASTQ file + pattern: "*.fastq.gz" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - tsv: + type: file + description: A TSV formatted file with ShigaTyper results + pattern: "*.tsv" + - hits: + type: file + description: A TSV formatted file with individual gene hits + pattern: "*-hits.tsv" + +authors: + - "@rpetit3" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 786f87db..4d7ba4fd 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1691,6 +1691,10 @@ seqwish/induce: - modules/seqwish/induce/** - tests/modules/seqwish/induce/** +shigatyper: + - modules/shigatyper/** + - tests/modules/shigatyper/** + shovill: - modules/shovill/** - tests/modules/shovill/** diff --git a/tests/modules/shigatyper/main.nf b/tests/modules/shigatyper/main.nf new file mode 100644 index 00000000..eb4df084 --- /dev/null +++ b/tests/modules/shigatyper/main.nf @@ -0,0 +1,36 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SHIGATYPER } from '../../../modules/shigatyper/main.nf' + +workflow test_shigatyper_pe { + + input = [ + [ id:'test', single_end:false, is_ont:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] + ] + + SHIGATYPER ( input ) +} + +workflow test_shigatyper_se { + + input = [ + [ id:'test', single_end:true, is_ont:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] + ] + + SHIGATYPER ( input ) +} + +workflow test_shigatyper_ont { + + input = [ + [ id:'test', single_end:true, is_ont:true ], // meta map + [ file(params.test_data['sarscov2']['nanopore']['test_fastq_gz'], checkIfExists: true) ] + ] + + SHIGATYPER ( input ) +} diff --git a/tests/modules/shigatyper/nextflow.config b/tests/modules/shigatyper/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/shigatyper/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/shigatyper/test.yml b/tests/modules/shigatyper/test.yml new file mode 100644 index 00000000..69a7d408 --- /dev/null +++ b/tests/modules/shigatyper/test.yml @@ -0,0 +1,30 @@ + +- name: shigatyper test_shigatyper_pe + command: nextflow run tests/modules/shigatyper -entry test_shigatyper_pe -c tests/config/nextflow.config -c tests/modules/shigatyper/nextflow.config + tags: + - shigatyper + files: + - path: output/shigatyper/test.tsv + md5sum: 4f7d38c956993800546b9acb9881d717 + - path: output/shigatyper/versions.yml + md5sum: d8ca45ed88dfba9bc570c01e4b49773b + +- name: shigatyper test_shigatyper_se + command: nextflow run tests/modules/shigatyper -entry test_shigatyper_se -c tests/config/nextflow.config -c tests/modules/shigatyper/nextflow.config + tags: + - shigatyper + files: + - path: output/shigatyper/test.tsv + md5sum: 4f7d38c956993800546b9acb9881d717 + - path: output/shigatyper/versions.yml + md5sum: 8bbf165da5a5df3b7771a33aad197eec + +- name: shigatyper test_shigatyper_ont + command: nextflow run tests/modules/shigatyper -entry test_shigatyper_ont -c tests/config/nextflow.config -c tests/modules/shigatyper/nextflow.config + tags: + - shigatyper + files: + - path: output/shigatyper/test.tsv + md5sum: 4f7d38c956993800546b9acb9881d717 + - path: output/shigatyper/versions.yml + md5sum: 0da333e1178e9e7e84a9116ad5a5ff71 From 47d8d476b864a1d0a067a57faa99ae75f9004450 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Thu, 21 Apr 2022 12:55:56 -0600 Subject: [PATCH 199/592] make prettier --- tests/modules/shigatyper/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/modules/shigatyper/test.yml b/tests/modules/shigatyper/test.yml index 69a7d408..9dda573b 100644 --- a/tests/modules/shigatyper/test.yml +++ b/tests/modules/shigatyper/test.yml @@ -1,4 +1,3 @@ - - name: shigatyper test_shigatyper_pe command: nextflow run tests/modules/shigatyper -entry test_shigatyper_pe -c tests/config/nextflow.config -c tests/modules/shigatyper/nextflow.config tags: From 12afb6b0faf3cabf769c9a2a7dd477e3f066eac0 Mon Sep 17 00:00:00 2001 From: Lucpen Date: Fri, 22 Apr 2022 10:01:47 +0200 Subject: [PATCH 200/592] Update samtools view to add input path(index) (#1539) * feat added index as input, to allow module to be used for subsampling * fix test * feat added index to meta.yml * Update modules/samtools/view/meta.yml feat corrected description of idea pattern file in meta.yml Co-authored-by: James A. Fellows Yates Co-authored-by: James A. Fellows Yates --- modules/samtools/view/main.nf | 2 +- modules/samtools/view/meta.yml | 4 ++++ tests/modules/samtools/view/main.nf | 7 ++++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/samtools/view/main.nf b/modules/samtools/view/main.nf index 5f14fbbf..11cfb74b 100644 --- a/modules/samtools/view/main.nf +++ b/modules/samtools/view/main.nf @@ -8,7 +8,7 @@ process SAMTOOLS_VIEW { 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: - tuple val(meta), path(input) + tuple val(meta), path(input), path(index) path fasta output: diff --git a/modules/samtools/view/meta.yml b/modules/samtools/view/meta.yml index 5604bfa7..a8b43ecc 100644 --- a/modules/samtools/view/meta.yml +++ b/modules/samtools/view/meta.yml @@ -25,6 +25,10 @@ input: type: file description: BAM/CRAM/SAM file pattern: "*.{bam,cram,sam}" + - index: + type: optional file + description: BAM.BAI/CRAM.CRAI file + pattern: "*.{.bai,.crai}" - fasta: type: optional file description: Reference file the CRAM was created with diff --git a/tests/modules/samtools/view/main.nf b/tests/modules/samtools/view/main.nf index 8ee27ef8..9c239066 100644 --- a/tests/modules/samtools/view/main.nf +++ b/tests/modules/samtools/view/main.nf @@ -6,7 +6,8 @@ include { SAMTOOLS_VIEW } from '../../../../modules/samtools/view/main.nf' workflow test_samtools_view { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true), + [] ] SAMTOOLS_VIEW ( input, [] ) @@ -14,8 +15,8 @@ workflow test_samtools_view { workflow test_samtools_view_cram { input = [ [ id: 'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) From c7329a3a5730872dea512921217993cfa7acd959 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Fri, 22 Apr 2022 10:10:43 +0200 Subject: [PATCH 201/592] add stubs for stranger (#1543) --- modules/stranger/main.nf | 11 +++++++++++ tests/modules/stranger/main.nf | 5 +++++ tests/modules/stranger/test.yml | 10 ++++++++++ 3 files changed, 26 insertions(+) diff --git a/modules/stranger/main.nf b/modules/stranger/main.nf index 55678bd3..ddfa0070 100644 --- a/modules/stranger/main.nf +++ b/modules/stranger/main.nf @@ -33,4 +33,15 @@ process STRANGER { stranger: \$( stranger --version ) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + stranger: \$( stranger --version ) + END_VERSIONS + """ } diff --git a/tests/modules/stranger/main.nf b/tests/modules/stranger/main.nf index 5bd6766b..4a930c19 100644 --- a/tests/modules/stranger/main.nf +++ b/tests/modules/stranger/main.nf @@ -23,3 +23,8 @@ workflow test_stranger_without_optional_variant_catalog { EXPANSIONHUNTER ( input, fasta, variant_catalog ) STRANGER ( EXPANSIONHUNTER.out.vcf, [] ) } + +workflow test_stranger_without_optional_variant_catalog_stubs { + EXPANSIONHUNTER ( input, fasta, variant_catalog ) + STRANGER ( EXPANSIONHUNTER.out.vcf, [] ) +} diff --git a/tests/modules/stranger/test.yml b/tests/modules/stranger/test.yml index c7a6972e..bf922c86 100644 --- a/tests/modules/stranger/test.yml +++ b/tests/modules/stranger/test.yml @@ -25,3 +25,13 @@ md5sum: bbe15159195681d5c18596d3ad85c78f - path: output/stranger/versions.yml md5sum: 8558542a007e90ea5dcdceed3f12585d + +- name: stranger test_stranger_without_optional_variant_catalog_stubs + command: nextflow run tests/modules/stranger -entry test_stranger_without_optional_variant_catalog -c tests/config/nextflow.config -stub-run + tags: + - stranger + files: + - path: output/expansionhunter/test.vcf + - path: output/expansionhunter/versions.yml + - path: output/stranger/test.vcf.gz + - path: output/stranger/versions.yml From 35231d394940dca2291ac2321c8f9b2e3b039905 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 10:13:57 +0200 Subject: [PATCH 202/592] update picard/collecthsmetrics (#1542) * update picard/collecthsmetrics * syntax fixes, bugfixes * add tests Co-authored-by: Jose Espinosa-Carrasco --- modules/picard/collecthsmetrics/main.nf | 9 +++++---- modules/picard/collecthsmetrics/meta.yml | 7 ++++--- tests/modules/picard/collecthsmetrics/main.nf | 2 +- tests/modules/picard/collecthsmetrics/test.yml | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/modules/picard/collecthsmetrics/main.nf b/modules/picard/collecthsmetrics/main.nf index 3acf8bb8..ef7a9b9f 100644 --- a/modules/picard/collecthsmetrics/main.nf +++ b/modules/picard/collecthsmetrics/main.nf @@ -15,8 +15,8 @@ process PICARD_COLLECTHSMETRICS { path target_intervals output: - tuple val(meta), path("*collecthsmetrics.txt"), emit: hs_metrics - path "versions.yml" , emit: versions + tuple val(meta), path("*_metrics") , emit: metrics + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -41,7 +41,8 @@ process PICARD_COLLECTHSMETRICS { -BAIT_INTERVALS $bait_intervals \\ -TARGET_INTERVALS $target_intervals \\ -INPUT $bam \\ - -OUTPUT ${prefix}_collecthsmetrics.txt + -OUTPUT ${prefix}.CollectHsMetrics.coverage_metrics + cat <<-END_VERSIONS > versions.yml "${task.process}": @@ -52,7 +53,7 @@ process PICARD_COLLECTHSMETRICS { stub: def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}_collecthsmetrics.txt + touch ${prefix}.CollectHsMetrics.coverage_metrics cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/collecthsmetrics/meta.yml b/modules/picard/collecthsmetrics/meta.yml index 4b94909f..dc9d647a 100644 --- a/modules/picard/collecthsmetrics/meta.yml +++ b/modules/picard/collecthsmetrics/meta.yml @@ -57,10 +57,11 @@ output: type: file description: File containing software versions pattern: "versions.yml" - - hs_metrics: + - metrics: type: file - description: The metrics file. - pattern: "*_collecthsmetrics.txt" + description: Alignment metrics files generated by picard + pattern: "*_{metrics}" authors: - "@projectoriented" + - "@matthdsm" diff --git a/tests/modules/picard/collecthsmetrics/main.nf b/tests/modules/picard/collecthsmetrics/main.nf index 2e8727b5..a28eb174 100644 --- a/tests/modules/picard/collecthsmetrics/main.nf +++ b/tests/modules/picard/collecthsmetrics/main.nf @@ -7,7 +7,7 @@ include { PICARD_COLLECTHSMETRICS } from '../../../../modules/picard/collecthsme workflow test_picard_collecthsmetrics { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) ] + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) diff --git a/tests/modules/picard/collecthsmetrics/test.yml b/tests/modules/picard/collecthsmetrics/test.yml index 9232d508..9aa14f15 100644 --- a/tests/modules/picard/collecthsmetrics/test.yml +++ b/tests/modules/picard/collecthsmetrics/test.yml @@ -5,4 +5,4 @@ - picard/collecthsmetrics files: # The file can't be md5'd consistently - - path: output/picard/test_collecthsmetrics.txt + - path: output/picard/test.CollectHsMetrics.coverage_metrics From 90b203d3e915cce7434ed010b8a56a89f4142bdd Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 10:20:05 +0200 Subject: [PATCH 203/592] Tool/elprep split (#1533) * tool: elprep split * fixes for testing * fix tests * fix test outputs * create test-yaml * fix suggestions by @jfy133 Co-authored-by: James A. Fellows Yates --- modules/elprep/split/main.nf | 44 ++++++++++++++++++++++ modules/elprep/split/meta.yml | 43 +++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/elprep/split/main.nf | 15 ++++++++ tests/modules/elprep/split/nextflow.config | 9 +++++ tests/modules/elprep/split/test.yml | 10 +++++ 6 files changed, 125 insertions(+) create mode 100644 modules/elprep/split/main.nf create mode 100644 modules/elprep/split/meta.yml create mode 100644 tests/modules/elprep/split/main.nf create mode 100644 tests/modules/elprep/split/nextflow.config create mode 100644 tests/modules/elprep/split/test.yml diff --git a/modules/elprep/split/main.nf b/modules/elprep/split/main.nf new file mode 100644 index 00000000..8af558d4 --- /dev/null +++ b/modules/elprep/split/main.nf @@ -0,0 +1,44 @@ +process ELPREP_SPLIT { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::elprep=5.1.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/elprep:5.1.2--he881be0_0': + 'quay.io/biocontainers/elprep:5.1.2--he881be0_0' }" + + input: + tuple val(meta), path(bam) + + output: + tuple val(meta), path("**.{bam,sam}"), emit: bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + meta.single_end ? args += " --single-end": "" + + """ + # create directory and move all input so elprep can find and merge them before splitting + mkdir input + mv ${bam} input/ + + mkdir ${prefix} + + elprep split \\ + input \\ + . \\ + $args \\ + --nr-of-threads $task.cpus \\ + --output-prefix $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + elprep: \$(elprep 2>&1 | head -n2 | tail -n1 |sed 's/^.*version //;s/ compiled.*\$//') + END_VERSIONS + """ +} diff --git a/modules/elprep/split/meta.yml b/modules/elprep/split/meta.yml new file mode 100644 index 00000000..b99562fa --- /dev/null +++ b/modules/elprep/split/meta.yml @@ -0,0 +1,43 @@ +name: "elprep_split" +description: Split bam file into manageable chunks +keywords: + - bam + - split by chromosome +tools: + - "elprep": + description: "elPrep is a high-performance tool for preparing .sam/.bam files for variant calling in sequencing pipelines. It can be used as a drop-in replacement for SAMtools/Picard/GATK4." + homepage: "https://github.com/ExaScience/elprep" + documentation: "https://github.com/ExaScience/elprep" + tool_dev_url: "https://github.com/ExaScience/elprep" + doi: "10.1371" + licence: "['AGPL v3']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: List of BAM/SAM files + pattern: "*.{bam,sam}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + # + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bam: + type: file + description: List of split BAM/SAM files + pattern: "*.{bam,sam}" + +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 786f87db..19b51f3d 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -599,6 +599,10 @@ ectyper: - modules/ectyper/** - tests/modules/ectyper/** +elprep/split: + - modules/elprep/split/** + - tests/modules/elprep/split/** + emmtyper: - modules/emmtyper/** - tests/modules/emmtyper/** diff --git a/tests/modules/elprep/split/main.nf b/tests/modules/elprep/split/main.nf new file mode 100644 index 00000000..d5a111de --- /dev/null +++ b/tests/modules/elprep/split/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ELPREP_SPLIT } from '../../../../modules/elprep/split/main.nf' + +workflow test_elprep_split { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) + ] + + ELPREP_SPLIT ( input ) +} diff --git a/tests/modules/elprep/split/nextflow.config b/tests/modules/elprep/split/nextflow.config new file mode 100644 index 00000000..a3ae0169 --- /dev/null +++ b/tests/modules/elprep/split/nextflow.config @@ -0,0 +1,9 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName : ELPREP_SPLIT { + ext.args = "--contig-group-size 1 --output-type bam" + } + +} diff --git a/tests/modules/elprep/split/test.yml b/tests/modules/elprep/split/test.yml new file mode 100644 index 00000000..7ba139b1 --- /dev/null +++ b/tests/modules/elprep/split/test.yml @@ -0,0 +1,10 @@ +- name: elprep split test_elprep_split + command: nextflow run tests/modules/elprep/split -entry test_elprep_split -c tests/config/nextflow.config + tags: + - elprep + - elprep/split + files: + - path: output/elprep/splits/test-group00001.bam + - path: output/elprep/splits/test-unmapped.bam + - path: output/elprep/test-spread.bam + - path: output/elprep/versions.yml From 9e3daae8ef8cc1e830c9ef8af5336df7065d2823 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 11:08:03 +0200 Subject: [PATCH 204/592] New module: elprep filter (#1524) * first commit * syntax fix * fix input * output sam during test for md5sum * replace md5sum with contains * add new test data, add extra in/outputs * cli fixes * fix outputs * Update modules/elprep/filter/main.nf Co-authored-by: James A. Fellows Yates * Update modules/elprep/filter/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/elprep/filter/meta.yml Co-authored-by: James A. Fellows Yates * fix suggestions by @jfy133 * Bit more verbose explanation for bool vals * define variables * fix prettier Co-authored-by: James A. Fellows Yates --- modules/elprep/filter/main.nf | 89 ++++++++++++++++ modules/elprep/filter/meta.yml | 106 ++++++++++++++++++++ tests/config/pytest_modules.yml | 4 + tests/config/test_data.config | 3 + tests/modules/elprep/filter/main.nf | 18 ++++ tests/modules/elprep/filter/nextflow.config | 7 ++ tests/modules/elprep/filter/test.yml | 13 +++ 7 files changed, 240 insertions(+) create mode 100644 modules/elprep/filter/main.nf create mode 100644 modules/elprep/filter/meta.yml create mode 100644 tests/modules/elprep/filter/main.nf create mode 100644 tests/modules/elprep/filter/nextflow.config create mode 100644 tests/modules/elprep/filter/test.yml diff --git a/modules/elprep/filter/main.nf b/modules/elprep/filter/main.nf new file mode 100644 index 00000000..02c93186 --- /dev/null +++ b/modules/elprep/filter/main.nf @@ -0,0 +1,89 @@ +process ELPREP_FILTER { + tag "$meta.id" + label 'process_high' + + conda (params.enable_conda ? "bioconda::elprep=5.1.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/elprep:5.1.2--he881be0_0': + 'quay.io/biocontainers/elprep:5.1.2--he881be0_0' }" + + input: + tuple val(meta), path(bam) + val(run_haplotypecaller) + val(run_bqsr) + path(reference_sequences) + path(filter_regions_bed) + path(reference_elfasta) + path(known_sites_elsites) + path(target_regions_bed) + path(intermediate_bqsr_tables) + val(bqsr_tables_only) + val(get_activity_profile) + val(get_assembly_regions) + + + output: + tuple val(meta), path("**.{bam,sam}") ,emit: bam + tuple val(meta), path("*.metrics.txt") ,optional: true, emit: metrics + tuple val(meta), path("*.recall") ,optional: true, emit: recall + tuple val(meta), path("*.vcf.gz") ,optional: true, emit: gvcf + tuple val(meta), path("*.table") ,optional: true, emit: table + tuple val(meta), path("*.activity_profile.igv") ,optional: true, emit: activity_profile + tuple val(meta), path("*.assembly_regions.igv") ,optional: true, emit: assembly_regions + path "versions.yml" ,emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def suffix = args.contains("--output-type sam") ? "sam" : "bam" + + // filter args + def reference_sequences_cmd = reference_sequences ? " --replace-reference-sequences ${reference_sequences}" : "" + def filter_regions_cmd = filter_regions_bed ? " --filter-non-overlapping-reads ${filter_regions_bed}" : "" + + // markdup args + def markdup_cmd = args.contains("--mark-duplicates") ? " --mark-optical-duplicates ${prefix}.metrics.txt": "" + + // variant calling args + def haplotyper_cmd = run_haplotypecaller ? " --haplotypecaller ${prefix}.g.vcf.gz": "" + + def fasta_cmd = reference_elfasta ? " --reference ${reference_elfasta}": "" + def known_sites_cmd = known_sites_elsites ? " --known-sites ${known_sites_elsites}": "" + def target_regions_cmd = target_regions_bed ? " --target-regions ${target_regions_bed}": "" + + // bqsr args + def bqsr_cmd = run_bqsr ? " --bqsr ${prefix}.recall": "" + def bqsr_tables_only_cmd = bqsr_tables_only ? " --bqsr-tables-only ${prefix}.table": "" + + def intermediate_bqsr_cmd = intermediate_bqsr_tables ? " --bqsr-apply .": "" + + // misc + def activity_profile_cmd = get_activity_profile ? " --activity-profile ${prefix}.activity_profile.igv": "" + def assembly_regions_cmd = get_assembly_regions ? " --assembly-regions ${prefix}.assembly_regions.igv": "" + + """ + elprep filter ${bam} ${prefix}.${suffix} \\ + ${reference_sequences_cmd} \\ + ${filter_regions_cmd} \\ + ${markdup_cmd} \\ + ${haplotyper_cmd} \\ + ${fasta_cmd} \\ + ${known_sites_cmd} \\ + ${target_regions_cmd} \\ + ${bqsr_cmd} \\ + ${bqsr_tables_only_cmd} \\ + ${intermediate_bqsr_cmd} \\ + ${activity_profile_cmd} \\ + ${assembly_regions_cmd} \\ + --nr-of-threads ${task.cpus} \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + elprep: \$(elprep 2>&1 | head -n2 | tail -n1 |sed 's/^.*version //;s/ compiled.*\$//') + END_VERSIONS + """ +} diff --git a/modules/elprep/filter/meta.yml b/modules/elprep/filter/meta.yml new file mode 100644 index 00000000..d7d41071 --- /dev/null +++ b/modules/elprep/filter/meta.yml @@ -0,0 +1,106 @@ +name: "elprep_filter" +description: "Filter, sort and markdup sam/bam files, with optional BQSR and variant calling." +keywords: + - sort + - bam + - sam + - filter + - variant calling +tools: + - "elprep": + description: "elPrep is a high-performance tool for preparing .sam/.bam files for variant calling in sequencing pipelines. It can be used as a drop-in replacement for SAMtools/Picard/GATK4." + homepage: "https://github.com/ExaScience/elprep" + documentation: "https://github.com/ExaScience/elprep" + tool_dev_url: "https://github.com/ExaScience/elprep" + doi: "10.1371/journal.pone.0244471" + licence: "['AGPL v3']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - bam: + type: file + description: Input SAM/BAM file + pattern: "*.{bam,sam}" + - run_haplotypecaller: + type: boolean + description: Run variant calling on the input files. Needed to generate gvcf output. + - run_bqsr: + type: boolean + description: Run BQSR on the input files. Needed to generate recall metrics. + - reference_sequences: + type: file + description: Optional SAM header to replace existing header. + pattern: "*.sam" + - filter_regions_bed: + type: file + description: Optional BED file containing regions to filter. + pattern: "*.bed" + - reference_elfasta: + type: file + description: Elfasta file, required for BQSR and variant calling. + pattern: "*.elfasta" + - known_sites: + type: file + description: Optional elsites file containing known SNPs for BQSR. + pattern: "*.elsites" + - target_regions_bed: + type: file + description: Optional BED file containing target regions for BQSR and variant calling. + pattern: "*.bed" + - intermediate_bqsr_tables: + type: file + description: Optional list of BQSR tables, used when parsing files created by `elprep split` + pattern: "*.table" + - bqsr_tables_only: + type: boolean + description: Write intermediate BQSR tables, used when parsing files created by `elprep split`. + - get_activity_profile: + type: boolean + description: Get the activity profile calculated by the haplotypecaller to the given file in IGV format. + - get_assembly_regions: + type: boolean + description: Get the assembly regions calculated by haplotypecaller to the speficied file in IGV format. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - bam: + type: file + description: Sorted, markdup, optionally BQSR BAM/SAM file + pattern: "*.{bam,sam}" + - metrics: + type: file + description: Optional duplicate metrics file generated by elprep + pattern: "*.{metrics.txt}" + - recall: + type: file + description: Optional recall metrics file generated by elprep + pattern: "*.{recall}" + - gvcf: + type: file + description: Optional GVCF output file + pattern: "*.{vcf.gz}" + - table: + type: file + description: Optional intermediate BQSR table output file + pattern: "*.{table}" + - activity_profile: + type: file + description: Optional activity profile output file + pattern: "*.{activity_profile.igv}" + - assembly_regions: + type: file + description: Optional activity regions output file + pattern: "*.{assembly_regions.igv}" +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 19b51f3d..c3bf04aa 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -599,6 +599,10 @@ ectyper: - modules/ectyper/** - tests/modules/ectyper/** +elprep/filter: + - modules/elprep/filter/** + - tests/modules/elprep/filter/** + elprep/split: - modules/elprep/split/** - tests/modules/elprep/split/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index ea123732..559c0d6f 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -112,6 +112,7 @@ params { } 'homo_sapiens' { 'genome' { + genome_elfasta = "${test_data_dir}/genomics/homo_sapiens/genome/genome.elfasta" genome_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/genome.fasta" genome_fasta_fai = "${test_data_dir}/genomics/homo_sapiens/genome/genome.fasta.fai" genome_dict = "${test_data_dir}/genomics/homo_sapiens/genome/genome.dict" @@ -123,6 +124,7 @@ params { genome_header = "${test_data_dir}/genomics/homo_sapiens/genome/genome.header" genome_bed_gz = "${test_data_dir}/genomics/homo_sapiens/genome/genome.bed.gz" genome_bed_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/genome.bed.gz.tbi" + genome_elsites = "${test_data_dir}/genomics/homo_sapiens/genome/genome.elsites" transcriptome_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/transcriptome.fasta" genome2_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/genome2.fasta" genome_chain_gz = "${test_data_dir}/genomics/homo_sapiens/genome/genome.chain.gz" @@ -136,6 +138,7 @@ params { genome_21_multi_interval_bed_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/multi_intervals.bed.gz.tbi" genome_21_chromosomes_dir = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/chromosomes.tar.gz" + dbsnp_146_hg38_elsites = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.elsites" dbsnp_146_hg38_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.vcf.gz" dbsnp_146_hg38_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/dbsnp_146.hg38.vcf.gz.tbi" gnomad_r2_1_1_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/gnomAD.r2.1.1.vcf.gz" diff --git a/tests/modules/elprep/filter/main.nf b/tests/modules/elprep/filter/main.nf new file mode 100644 index 00000000..0a8d43ca --- /dev/null +++ b/tests/modules/elprep/filter/main.nf @@ -0,0 +1,18 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { ELPREP_FILTER } from '../../../../modules/elprep/filter/main.nf' + +workflow test_elprep_filter { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) + ] + reference_elfasta = file(params.test_data['homo_sapiens']['genome']['genome_elfasta'], checkIfExists: true) + known_sites_elsites = file(params.test_data['homo_sapiens']['genome']['dbsnp_146_hg38_elsites'], checkIfExists: true) + target_regions_bed = file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + + ELPREP_FILTER ( input, true, true, [], [], reference_elfasta, known_sites_elsites, target_regions_bed, [], [], true, true) +} diff --git a/tests/modules/elprep/filter/nextflow.config b/tests/modules/elprep/filter/nextflow.config new file mode 100644 index 00000000..d53a3d2d --- /dev/null +++ b/tests/modules/elprep/filter/nextflow.config @@ -0,0 +1,7 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: ELPREP_FILTER { + ext.args = "--mark-duplicates " + } +} diff --git a/tests/modules/elprep/filter/test.yml b/tests/modules/elprep/filter/test.yml new file mode 100644 index 00000000..5242045b --- /dev/null +++ b/tests/modules/elprep/filter/test.yml @@ -0,0 +1,13 @@ +- name: elprep filter test_elprep_filter + command: nextflow run tests/modules/elprep/filter -entry test_elprep_filter -c tests/config/nextflow.config + tags: + - elprep + - elprep/filter + files: + - path: output/elprep/test.activity_profile.igv + - path: output/elprep/test.assembly_regions.igv + - path: output/elprep/test.bam + - path: output/elprep/test.g.vcf.gz + - path: output/elprep/test.metrics.txt + - path: output/elprep/test.recall + - path: output/elprep/versions.yml From 538dbac98ba9c8f799536cd5a617195501439457 Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Fri, 22 Apr 2022 11:26:30 +0200 Subject: [PATCH 205/592] Kaiju2table module (#1545) * Add kaiju2table module --- modules/kaiju/kaiju2table/main.nf | 40 +++++++++++++++ modules/kaiju/kaiju2table/meta.yml | 50 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/kaiju/kaiju2table/main.nf | 21 ++++++++ .../modules/kaiju/kaiju2table/nextflow.config | 5 ++ tests/modules/kaiju/kaiju2table/test.yml | 9 ++++ 6 files changed, 129 insertions(+) create mode 100644 modules/kaiju/kaiju2table/main.nf create mode 100644 modules/kaiju/kaiju2table/meta.yml create mode 100644 tests/modules/kaiju/kaiju2table/main.nf create mode 100644 tests/modules/kaiju/kaiju2table/nextflow.config create mode 100644 tests/modules/kaiju/kaiju2table/test.yml diff --git a/modules/kaiju/kaiju2table/main.nf b/modules/kaiju/kaiju2table/main.nf new file mode 100644 index 00000000..00739d1e --- /dev/null +++ b/modules/kaiju/kaiju2table/main.nf @@ -0,0 +1,40 @@ +process KAIJU_KAIJU2TABLE { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::kaiju=1.8.2" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/kaiju:1.8.2--h5b5514e_1': + 'quay.io/biocontainers/kaiju:1.8.2--h2e03b76_0' }" + + input: + tuple val(meta), path(results) + path db + val taxon_rank + + output: + tuple val(meta), path('*.txt'), emit: summary + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + dbnodes=`find -L ${db} -name "*nodes.dmp"` + dbname=`find -L ${db} -name "*.fmi" -not -name "._*"` + kaiju2table $args \\ + -t \$dbnodes \\ + -n \$dbname \\ + -r ${taxon_rank} \\ + -o ${prefix}.txt \\ + ${results} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + kaiju: \$(echo \$( kaiju -h 2>&1 | sed -n 1p | sed 's/^.*Kaiju //' )) + END_VERSIONS + """ +} diff --git a/modules/kaiju/kaiju2table/meta.yml b/modules/kaiju/kaiju2table/meta.yml new file mode 100644 index 00000000..bc3e85d7 --- /dev/null +++ b/modules/kaiju/kaiju2table/meta.yml @@ -0,0 +1,50 @@ +name: "kaiju_kaiju2table" +description: write your description here +keywords: + - classify + - metagenomics +tools: + - kaiju: + description: Fast and sensitive taxonomic classification for metagenomics + homepage: https://kaiju.binf.ku.dk/ + documentation: https://github.com/bioinformatics-centre/kaiju/blob/master/README.md + tool_dev_url: https://github.com/bioinformatics-centre/kaiju + doi: "10.1038/ncomms11257" + licence: ["GNU GPL v3"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - results: + type: file + description: File containing the kaiju classification results + pattern: "*.{txt}" + - taxon_rank: + type: string + description: | + Taxonomic rank to display in report + pattern: "phylum|class|order|family|genus|species" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - results: + type: file + description: | + Summary table for a given taxonomic rank + pattern: "*.{tsv}" + +authors: + - "@sofstam" + - "@talnor" + - "@jfy133" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index c3bf04aa..a1a969e7 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1009,6 +1009,10 @@ kaiju/kaiju: - modules/kaiju/kaiju/** - tests/modules/kaiju/kaiju/** +kaiju/kaiju2table: + - modules/kaiju/kaiju2table/** + - tests/modules/kaiju/kaiju2table/** + kallisto/index: - modules/kallisto/index/** - tests/modules/kallisto/index/** diff --git a/tests/modules/kaiju/kaiju2table/main.nf b/tests/modules/kaiju/kaiju2table/main.nf new file mode 100644 index 00000000..b7169ba5 --- /dev/null +++ b/tests/modules/kaiju/kaiju2table/main.nf @@ -0,0 +1,21 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { UNTAR } from '../../../../modules/untar/main.nf' +include { KAIJU_KAIJU } from '../../../../modules/kaiju/kaiju/main.nf' +include { KAIJU_KAIJU2TABLE } from '../../../../modules/kaiju/kaiju2table/main.nf' + +workflow test_kaiju_kaiju_single_end { + + input = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + db = [ [], file(params.test_data['sarscov2']['genome']['kaiju_tar_gz'], checkIfExists: true) ] + taxon_rank = "species" + + ch_db = UNTAR ( db ) + KAIJU_KAIJU ( input, ch_db.untar.map{ it[1] } ) + KAIJU_KAIJU2TABLE ( KAIJU_KAIJU.out.results, ch_db.untar.map{ it[1] }, taxon_rank ) +} diff --git a/tests/modules/kaiju/kaiju2table/nextflow.config b/tests/modules/kaiju/kaiju2table/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/kaiju/kaiju2table/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/kaiju/kaiju2table/test.yml b/tests/modules/kaiju/kaiju2table/test.yml new file mode 100644 index 00000000..47d99c89 --- /dev/null +++ b/tests/modules/kaiju/kaiju2table/test.yml @@ -0,0 +1,9 @@ +- name: kaiju kaiju2table test_kaiju_kaiju_single_end + command: nextflow run tests/modules/kaiju/kaiju2table -entry test_kaiju_kaiju_single_end -c tests/config/nextflow.config + tags: + - kaiju + - kaiju/kaiju2table + files: + - path: output/kaiju/test.txt + md5sum: 0d9f8fd36fcf2888296ae12632c5f0a8 + - path: output/kaiju/versions.yml From 8dad38afc7f28db49c38a23deb7abfeca2ee3bc7 Mon Sep 17 00:00:00 2001 From: CMGG ICT Team Date: Fri, 22 Apr 2022 11:35:14 +0200 Subject: [PATCH 206/592] fix test.yml --- tests/modules/elprep/merge/test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/modules/elprep/merge/test.yml b/tests/modules/elprep/merge/test.yml index 26c16f59..d6037bec 100644 --- a/tests/modules/elprep/merge/test.yml +++ b/tests/modules/elprep/merge/test.yml @@ -1,8 +1,8 @@ -- name: "elprep merge" - command: nextflow run ./tests/modules/elprep/merge -entry test_elprep_merge -c ./tests/config/nextflow.config -c ./tests/modules/elprep/merge/nextflow.config +- name: elprep merge test_elprep_merge + command: nextflow run tests/modules/elprep/merge -entry test_elprep_merge -c tests/config/nextflow.config tags: - - "elprep" - - "elprep/merge" + - elprep + - elprep/merge files: - - path: "output/elprep/test.bam" + - path: output/elprep/test.bam - path: output/elprep/versions.yml From c4072f274cdf91601c895b206f2011e0b4b809df Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 11:39:22 +0200 Subject: [PATCH 207/592] fix formatting, fix code style --- modules/elprep/merge/main.nf | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/elprep/merge/main.nf b/modules/elprep/merge/main.nf index 00ed4d60..2b12bfe2 100644 --- a/modules/elprep/merge/main.nf +++ b/modules/elprep/merge/main.nf @@ -18,12 +18,10 @@ process ELPREP_MERGE { task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - if (meta.single_end) { - args += " --single-end" - } - def suffix = args.contains("--output-type sam") ? "sam" : "bam" + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def suffix = args.contains("--output-type sam") ? "sam" : "bam" + def single_end = meta.single_end ? " --single-end" : "" """ # create directory and move all input so elprep can find and merge them before splitting @@ -34,6 +32,7 @@ process ELPREP_MERGE { input \\ ${prefix}.${suffix} \\ $args \\ + ${single_end} \\ --nr-of-threads $task.cpus cat <<-END_VERSIONS > versions.yml From 2f6382168cac2ca8a9ff9d53c868fbde1a0ca5e1 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 11:51:54 +0200 Subject: [PATCH 208/592] update meta.yml --- modules/elprep/merge/meta.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/elprep/merge/meta.yml b/modules/elprep/merge/meta.yml index e157fddb..1f49b1a0 100644 --- a/modules/elprep/merge/meta.yml +++ b/modules/elprep/merge/meta.yml @@ -7,10 +7,10 @@ keywords: tools: - "elprep": description: "elPrep is a high-performance tool for preparing .sam/.bam files for variant calling in sequencing pipelines. It can be used as a drop-in replacement for SAMtools/Picard/GATK4." - homepage: "None" - documentation: "None" - tool_dev_url: "None" - doi: "" + homepage: "https://github.com/ExaScience/elprep" + documentation: "https://github.com/ExaScience/elprep" + tool_dev_url: "https://github.com/ExaScience/elprep" + doi: "10.1371/journal.pone.0244471" licence: "['AGPL v3']" input: From fefffb9bb0776e679c2297e8d80325d57e2f2d7a Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 12:36:32 +0200 Subject: [PATCH 209/592] fix output glob --- modules/elprep/merge/main.nf | 6 +++--- tests/modules/elprep/merge/test.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/elprep/merge/main.nf b/modules/elprep/merge/main.nf index 2b12bfe2..28fa9985 100644 --- a/modules/elprep/merge/main.nf +++ b/modules/elprep/merge/main.nf @@ -11,8 +11,8 @@ process ELPREP_MERGE { tuple val(meta), path(bam) output: - tuple val(meta), path("**.{bam,sam}") , emit: bam - path "versions.yml" , emit: versions + tuple val(meta), path("output/**.{bam,sam}") , emit: bam + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -30,7 +30,7 @@ process ELPREP_MERGE { elprep merge \\ input \\ - ${prefix}.${suffix} \\ + output/${prefix}.${suffix} \\ $args \\ ${single_end} \\ --nr-of-threads $task.cpus diff --git a/tests/modules/elprep/merge/test.yml b/tests/modules/elprep/merge/test.yml index d6037bec..ad2ecfef 100644 --- a/tests/modules/elprep/merge/test.yml +++ b/tests/modules/elprep/merge/test.yml @@ -4,5 +4,5 @@ - elprep - elprep/merge files: - - path: output/elprep/test.bam + - path: output/elprep/output/test.bam - path: output/elprep/versions.yml From b1749445d76d12d9961e687e811af1337f0eff0f Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 12:50:17 +0200 Subject: [PATCH 210/592] fix output glob (#1551) --- modules/elprep/split/main.nf | 11 ++++++----- tests/modules/elprep/split/test.yml | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/modules/elprep/split/main.nf b/modules/elprep/split/main.nf index 8af558d4..639944ef 100644 --- a/modules/elprep/split/main.nf +++ b/modules/elprep/split/main.nf @@ -11,16 +11,16 @@ process ELPREP_SPLIT { tuple val(meta), path(bam) output: - tuple val(meta), path("**.{bam,sam}"), emit: bam + tuple val(meta), path("output/**.{bam,sam}"), emit: bam path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - meta.single_end ? args += " --single-end": "" + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def single_end = meta.single_end ? " --single-end": "" """ # create directory and move all input so elprep can find and merge them before splitting @@ -31,8 +31,9 @@ process ELPREP_SPLIT { elprep split \\ input \\ - . \\ + output/ \\ $args \\ + $single_end \\ --nr-of-threads $task.cpus \\ --output-prefix $prefix diff --git a/tests/modules/elprep/split/test.yml b/tests/modules/elprep/split/test.yml index 7ba139b1..2de3f99b 100644 --- a/tests/modules/elprep/split/test.yml +++ b/tests/modules/elprep/split/test.yml @@ -4,7 +4,7 @@ - elprep - elprep/split files: - - path: output/elprep/splits/test-group00001.bam - - path: output/elprep/splits/test-unmapped.bam - - path: output/elprep/test-spread.bam + - path: output/elprep/output/splits/test-group00001.bam + - path: output/elprep/output/splits/test-unmapped.bam + - path: output/elprep/output/test-spread.bam - path: output/elprep/versions.yml From c17d1a7a7b473e103ddd3f28bd91b79733aa7cf2 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 13:04:41 +0200 Subject: [PATCH 211/592] fix output glob (#1552) --- modules/elprep/filter/main.nf | 4 ++-- tests/modules/elprep/filter/test.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/elprep/filter/main.nf b/modules/elprep/filter/main.nf index 02c93186..5ca288bc 100644 --- a/modules/elprep/filter/main.nf +++ b/modules/elprep/filter/main.nf @@ -23,7 +23,7 @@ process ELPREP_FILTER { output: - tuple val(meta), path("**.{bam,sam}") ,emit: bam + tuple val(meta), path("output/**.{bam,sam}") ,emit: bam tuple val(meta), path("*.metrics.txt") ,optional: true, emit: metrics tuple val(meta), path("*.recall") ,optional: true, emit: recall tuple val(meta), path("*.vcf.gz") ,optional: true, emit: gvcf @@ -65,7 +65,7 @@ process ELPREP_FILTER { def assembly_regions_cmd = get_assembly_regions ? " --assembly-regions ${prefix}.assembly_regions.igv": "" """ - elprep filter ${bam} ${prefix}.${suffix} \\ + elprep filter ${bam} output/${prefix}.${suffix} \\ ${reference_sequences_cmd} \\ ${filter_regions_cmd} \\ ${markdup_cmd} \\ diff --git a/tests/modules/elprep/filter/test.yml b/tests/modules/elprep/filter/test.yml index 5242045b..922d7a9b 100644 --- a/tests/modules/elprep/filter/test.yml +++ b/tests/modules/elprep/filter/test.yml @@ -6,7 +6,7 @@ files: - path: output/elprep/test.activity_profile.igv - path: output/elprep/test.assembly_regions.igv - - path: output/elprep/test.bam + - path: output/elprep/output/test.bam - path: output/elprep/test.g.vcf.gz - path: output/elprep/test.metrics.txt - path: output/elprep/test.recall From 9a2dad935cad22789380f94b67a44181e89e4392 Mon Sep 17 00:00:00 2001 From: CMGG ICT Team Date: Fri, 22 Apr 2022 13:13:39 +0200 Subject: [PATCH 212/592] update config --- tests/modules/elprep/merge/nextflow.config | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/modules/elprep/merge/nextflow.config b/tests/modules/elprep/merge/nextflow.config index 50f50a7a..4e4570f4 100644 --- a/tests/modules/elprep/merge/nextflow.config +++ b/tests/modules/elprep/merge/nextflow.config @@ -1,5 +1,5 @@ process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - -} \ No newline at end of file + withName : ELPREP_MERGE { + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + } +} From 413980e93a9cb8ba51f430d8a794cb25c43e9305 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 14:33:16 +0200 Subject: [PATCH 213/592] make use of dependent on input array size --- modules/bamtools/split/main.nf | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/bamtools/split/main.nf b/modules/bamtools/split/main.nf index f72d13be..7d69a824 100644 --- a/modules/bamtools/split/main.nf +++ b/modules/bamtools/split/main.nf @@ -9,7 +9,6 @@ process BAMTOOLS_SPLIT { input: tuple val(meta), path(bam) - path(bam_list) output: tuple val(meta), path("*.bam"), emit: bam @@ -21,18 +20,22 @@ process BAMTOOLS_SPLIT { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def input_list = bam.collect{"-in $it"}.join(' ') - if (bam_list) { - input_list += " -list $bam_list" - } - if (!args.contains("-stub")) { - args += " -stub ${prefix}" + def stub_cmd = !args.contains("-stub") : " -stub ${prefix}" : "" + + if (size(bam) > 1){ + def bamtools_merge_cmd = "bamtools merge ${input_list} |" + } else { + def split_input = input_list } + """ - bamtools merge \\ - ${input_list} \\ - | bamtools split \\ + ${bamtools_merge_cmd} \\ + bamtools split \\ + $split_input \\ + $stub_cmd \\ $args cat <<-END_VERSIONS > versions.yml From d617a50371abf87bdb376844926088c478ae3f51 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 14:39:25 +0200 Subject: [PATCH 214/592] add extra test --- tests/modules/bamtools/split/main.nf | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/modules/bamtools/split/main.nf b/tests/modules/bamtools/split/main.nf index 9f30c4f9..2fc16d67 100644 --- a/tests/modules/bamtools/split/main.nf +++ b/tests/modules/bamtools/split/main.nf @@ -4,11 +4,21 @@ nextflow.enable.dsl = 2 include { BAMTOOLS_SPLIT } from '../../../../modules/bamtools/split/main.nf' -workflow test_bamtools_split { +workflow test_bamtools_split_single_input { input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] - BAMTOOLS_SPLIT ( input, [] ) + BAMTOOLS_SPLIT ( input ) +} + +workflow test_bamtools_split_multiple_input { + + input = [ + [ id:'test', single_end:false ], // meta map + [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true)] + [ + + BAMTOOLS_SPLIT ( input ) } From d293cffc6a3beb7f1ef9bab6e95ea421f622b2a5 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 14:42:43 +0200 Subject: [PATCH 215/592] update tests --- tests/modules/bamtools/split/main.nf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/modules/bamtools/split/main.nf b/tests/modules/bamtools/split/main.nf index 2fc16d67..ef4b9d59 100644 --- a/tests/modules/bamtools/split/main.nf +++ b/tests/modules/bamtools/split/main.nf @@ -2,15 +2,17 @@ nextflow.enable.dsl = 2 -include { BAMTOOLS_SPLIT } from '../../../../modules/bamtools/split/main.nf' +include { BAMTOOLS_SPLIT as BAMTOOLS_SPLIT_SINGLE } from '../../../../modules/bamtools/split/main.nf' +include { BAMTOOLS_SPLIT as BAMTOOLS_SPLIT_MULTIPLE } from '../../../../modules/bamtools/split/main.nf' workflow test_bamtools_split_single_input { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) + ] - BAMTOOLS_SPLIT ( input ) + BAMTOOLS_SPLIT_SINGLE ( input ) } workflow test_bamtools_split_multiple_input { @@ -20,5 +22,5 @@ workflow test_bamtools_split_multiple_input { [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true)] [ - BAMTOOLS_SPLIT ( input ) + BAMTOOLS_SPLIT_MULTIPLE ( input ) } From 7e883da90460f77b3745468452b4c549327dde13 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 14:50:50 +0200 Subject: [PATCH 216/592] Revert "make use of dependent on input array size" This reverts commit 413980e93a9cb8ba51f430d8a794cb25c43e9305. --- modules/bamtools/split/main.nf | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/modules/bamtools/split/main.nf b/modules/bamtools/split/main.nf index 7d69a824..f72d13be 100644 --- a/modules/bamtools/split/main.nf +++ b/modules/bamtools/split/main.nf @@ -9,6 +9,7 @@ process BAMTOOLS_SPLIT { input: tuple val(meta), path(bam) + path(bam_list) output: tuple val(meta), path("*.bam"), emit: bam @@ -20,22 +21,18 @@ process BAMTOOLS_SPLIT { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input_list = bam.collect{"-in $it"}.join(' ') - def stub_cmd = !args.contains("-stub") : " -stub ${prefix}" : "" - - if (size(bam) > 1){ - def bamtools_merge_cmd = "bamtools merge ${input_list} |" - } else { - def split_input = input_list + if (bam_list) { + input_list += " -list $bam_list" + } + if (!args.contains("-stub")) { + args += " -stub ${prefix}" } - """ - ${bamtools_merge_cmd} \\ - bamtools split \\ - $split_input \\ - $stub_cmd \\ + bamtools merge \\ + ${input_list} \\ + | bamtools split \\ $args cat <<-END_VERSIONS > versions.yml From b4af3f1475b91d0c411e901d6126515babcdafec Mon Sep 17 00:00:00 2001 From: CMGG ICT Team Date: Fri, 22 Apr 2022 15:02:41 +0200 Subject: [PATCH 217/592] test fixes --- modules/bamtools/split/main.nf | 9 ++------- tests/modules/bamtools/split/main.nf | 9 ++++++--- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/modules/bamtools/split/main.nf b/modules/bamtools/split/main.nf index f72d13be..7184261e 100644 --- a/modules/bamtools/split/main.nf +++ b/modules/bamtools/split/main.nf @@ -9,7 +9,6 @@ process BAMTOOLS_SPLIT { input: tuple val(meta), path(bam) - path(bam_list) output: tuple val(meta), path("*.bam"), emit: bam @@ -22,17 +21,13 @@ process BAMTOOLS_SPLIT { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def input_list = bam.collect{"-in $it"}.join(' ') - if (bam_list) { - input_list += " -list $bam_list" - } - if (!args.contains("-stub")) { - args += " -stub ${prefix}" - } + def stub = !args.contains("-stub") ? "-stub ${prefix}" : "" """ bamtools merge \\ ${input_list} \\ | bamtools split \\ + $stub \\ $args cat <<-END_VERSIONS > versions.yml diff --git a/tests/modules/bamtools/split/main.nf b/tests/modules/bamtools/split/main.nf index ef4b9d59..ff0cb748 100644 --- a/tests/modules/bamtools/split/main.nf +++ b/tests/modules/bamtools/split/main.nf @@ -15,12 +15,15 @@ workflow test_bamtools_split_single_input { BAMTOOLS_SPLIT_SINGLE ( input ) } -workflow test_bamtools_split_multiple_input { +workflow test_bamtools_split_multiple { input = [ [ id:'test', single_end:false ], // meta map - [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true)] - [ + [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)] + + ] BAMTOOLS_SPLIT_MULTIPLE ( input ) } + From 3bcae8e71e705f289ec3786e7b6255eb5e0d56af Mon Sep 17 00:00:00 2001 From: CMGG ICT Team Date: Fri, 22 Apr 2022 15:19:52 +0200 Subject: [PATCH 218/592] fix testing errors --- tests/modules/bamtools/split/main.nf | 2 +- tests/modules/bamtools/split/test.yml | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/modules/bamtools/split/main.nf b/tests/modules/bamtools/split/main.nf index ff0cb748..9787b4ed 100644 --- a/tests/modules/bamtools/split/main.nf +++ b/tests/modules/bamtools/split/main.nf @@ -20,7 +20,7 @@ workflow test_bamtools_split_multiple { input = [ [ id:'test', single_end:false ], // meta map [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true)] + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true)] ] diff --git a/tests/modules/bamtools/split/test.yml b/tests/modules/bamtools/split/test.yml index b52cc9ee..63ecac57 100644 --- a/tests/modules/bamtools/split/test.yml +++ b/tests/modules/bamtools/split/test.yml @@ -1,5 +1,5 @@ -- name: bamtools split test_bamtools_split - command: nextflow run tests/modules/bamtools/split -entry test_bamtools_split -c tests/config/nextflow.config +- name: bamtools split test_bamtools_split_single_input + command: nextflow run tests/modules/bamtools/split -entry test_bamtools_split_single_input -c tests/config/nextflow.config tags: - bamtools - bamtools/split @@ -9,3 +9,15 @@ - path: output/bamtools/test.REF_unmapped.bam md5sum: e0754bf72c51543b2d745d96537035fb - path: output/bamtools/versions.yml + +- name: bamtools split test_bamtools_split_multiple + command: nextflow run tests/modules/bamtools/split -entry test_bamtools_split_multiple -c tests/config/nextflow.config + tags: + - bamtools + - bamtools/split + files: + - path: output/bamtools/test.REF_chr22.bam + md5sum: 585675bea34c48ebe9db06a561d4b4fa + - path: output/bamtools/test.REF_unmapped.bam + md5sum: 16ad644c87b9471f3026bc87c98b4963 + - path: output/bamtools/versions.yml From 9aadd9a6d3f5964476582319b3a1c54a3e3fe7c9 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Fri, 22 Apr 2022 14:50:07 +0100 Subject: [PATCH 219/592] Replace vanilla Linux Biocontainer with Ubuntu (#1557) --- modules/cat/fastq/main.nf | 4 ++-- modules/gunzip/main.nf | 4 ++-- modules/untar/main.nf | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/cat/fastq/main.nf b/modules/cat/fastq/main.nf index bf0877c3..b6854895 100644 --- a/modules/cat/fastq/main.nf +++ b/modules/cat/fastq/main.nf @@ -4,8 +4,8 @@ process CAT_FASTQ { conda (params.enable_conda ? "conda-forge::sed=4.7" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv1/biocontainers_v1.2.0_cv1.img' : - 'biocontainers/biocontainers:v1.2.0_cv1' }" + 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : + 'ubuntu:20.04' }" input: tuple val(meta), path(reads, stageAs: "input*/*") diff --git a/modules/gunzip/main.nf b/modules/gunzip/main.nf index 9d4b0666..61bf1afa 100644 --- a/modules/gunzip/main.nf +++ b/modules/gunzip/main.nf @@ -4,8 +4,8 @@ process GUNZIP { conda (params.enable_conda ? "conda-forge::sed=4.7" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv1/biocontainers_v1.2.0_cv1.img' : - 'biocontainers/biocontainers:v1.2.0_cv1' }" + 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : + 'ubuntu:20.04' }" input: tuple val(meta), path(archive) diff --git a/modules/untar/main.nf b/modules/untar/main.nf index bbfa0bfe..058d1764 100644 --- a/modules/untar/main.nf +++ b/modules/untar/main.nf @@ -2,10 +2,10 @@ process UNTAR { tag "$archive" label 'process_low' - conda (params.enable_conda ? "conda-forge::tar=1.34" : null) + conda (params.enable_conda ? "conda-forge::sed=4.7" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://containers.biocontainers.pro/s3/SingImgsRepo/biocontainers/v1.2.0_cv2/biocontainers_v1.2.0_cv2.img' : - 'biocontainers/biocontainers:v1.2.0_cv2' }" + 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : + 'ubuntu:20.04' }" input: tuple val(meta), path(archive) From 6d88f2da8cc5d586456e801b535cc4213e0fa2f7 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Fri, 22 Apr 2022 15:13:06 +0100 Subject: [PATCH 220/592] Rename process from STRINGTIE to STRINGTIE_STRINGTIE (#1546) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rename process from STRINGTIE to STRINGTIE_STRINGTIE * Bump Stringtie version to 2.2.1 and remove empty files in tests * Fix tests for stringtie/merge Co-authored-by: Júlia Mir Pedrol --- modules/stringtie/merge/main.nf | 6 +++--- modules/stringtie/stringtie/main.nf | 8 ++++---- modules/stringtie/stringtie/meta.yml | 2 +- tests/modules/stringtie/merge/main.nf | 12 ++++++------ tests/modules/stringtie/merge/test.yml | 14 ++++++-------- tests/modules/stringtie/stringtie/main.nf | 6 +++--- tests/modules/stringtie/stringtie/test.yml | 2 -- 7 files changed, 23 insertions(+), 27 deletions(-) diff --git a/modules/stringtie/merge/main.nf b/modules/stringtie/merge/main.nf index aa11eb36..c8460c94 100644 --- a/modules/stringtie/merge/main.nf +++ b/modules/stringtie/merge/main.nf @@ -2,10 +2,10 @@ process STRINGTIE_MERGE { label 'process_medium' // Note: 2.7X indices incompatible with AWS iGenomes. - conda (params.enable_conda ? "bioconda::stringtie=2.1.7" : null) + conda (params.enable_conda ? "bioconda::stringtie=2.2.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/stringtie:2.1.7--h978d192_0' : - 'quay.io/biocontainers/stringtie:2.1.7--h978d192_0' }" + 'https://depot.galaxyproject.org/singularity/stringtie:2.2.1--hecb563c_2' : + 'quay.io/biocontainers/stringtie:2.2.1--hecb563c_2' }" input: path stringtie_gtf diff --git a/modules/stringtie/stringtie/main.nf b/modules/stringtie/stringtie/main.nf index f37e347a..c70c9819 100644 --- a/modules/stringtie/stringtie/main.nf +++ b/modules/stringtie/stringtie/main.nf @@ -1,11 +1,11 @@ -process STRINGTIE { +process STRINGTIE_STRINGTIE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::stringtie=2.1.7" : null) + conda (params.enable_conda ? "bioconda::stringtie=2.2.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/stringtie:2.1.7--h978d192_0' : - 'quay.io/biocontainers/stringtie:2.1.7--h978d192_0' }" + 'https://depot.galaxyproject.org/singularity/stringtie:2.2.1--hecb563c_2' : + 'quay.io/biocontainers/stringtie:2.2.1--hecb563c_2' }" input: tuple val(meta), path(bam) diff --git a/modules/stringtie/stringtie/meta.yml b/modules/stringtie/stringtie/meta.yml index a462c574..0dda84d0 100644 --- a/modules/stringtie/stringtie/meta.yml +++ b/modules/stringtie/stringtie/meta.yml @@ -1,4 +1,4 @@ -name: stringtie +name: stringtie_stringtie description: Transcript assembly and quantification for RNA-Se keywords: - transcript diff --git a/tests/modules/stringtie/merge/main.nf b/tests/modules/stringtie/merge/main.nf index 7851e755..3fe32902 100644 --- a/tests/modules/stringtie/merge/main.nf +++ b/tests/modules/stringtie/merge/main.nf @@ -2,8 +2,8 @@ nextflow.enable.dsl = 2 -include { STRINGTIE } from '../../../../modules/stringtie/stringtie/main.nf' -include { STRINGTIE_MERGE } from '../../../../modules/stringtie/merge/main.nf' +include { STRINGTIE_STRINGTIE } from '../../../../modules/stringtie/stringtie/main.nf' +include { STRINGTIE_MERGE } from '../../../../modules/stringtie/merge/main.nf' /* * Test with forward strandedness @@ -15,8 +15,8 @@ workflow test_stringtie_forward_merge { ] annotation_gtf = file(params.test_data['homo_sapiens']['genome']['genome_gtf'], checkIfExists: true) - STRINGTIE ( input, annotation_gtf ) - STRINGTIE + STRINGTIE_STRINGTIE ( input, annotation_gtf ) + STRINGTIE_STRINGTIE .out .transcript_gtf .map { it -> it[1] } @@ -35,8 +35,8 @@ workflow test_stringtie_reverse_merge { ] annotation_gtf = file(params.test_data['homo_sapiens']['genome']['genome_gtf'], checkIfExists: true) - STRINGTIE ( input, annotation_gtf ) - STRINGTIE + STRINGTIE_STRINGTIE ( input, annotation_gtf ) + STRINGTIE_STRINGTIE .out .transcript_gtf .map { it -> it[1] } diff --git a/tests/modules/stringtie/merge/test.yml b/tests/modules/stringtie/merge/test.yml index 392a1d7c..fca66447 100644 --- a/tests/modules/stringtie/merge/test.yml +++ b/tests/modules/stringtie/merge/test.yml @@ -5,7 +5,7 @@ - stringtie/merge files: - path: output/stringtie/stringtie.merged.gtf - md5sum: 9fab7049ef2eafdea246fc787d1def40 + md5sum: d959eb2fab0db48ded7275e0a2e83c05 - path: output/stringtie/test.ballgown/e2t.ctab md5sum: 9ae42e056c955a88a883e5e917840d77 - path: output/stringtie/test.ballgown/e_data.ctab @@ -17,11 +17,10 @@ - path: output/stringtie/test.ballgown/t_data.ctab md5sum: 92a98902784e7406ffe054d2adbabc7c - path: output/stringtie/test.coverage.gtf - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/stringtie/test.gene.abundance.txt - md5sum: 9708811bcefe0f6384293d6f419f3250 + md5sum: 8bcd8e2730ed3337e2730186dbc184f3 - path: output/stringtie/test.transcripts.gtf - md5sum: 0e42709bfe30c2c7f2574ba664f5fa9f + md5sum: a914bd55b68a4b5f607738b17861e362 - name: stringtie merge test_stringtie_reverse_merge command: nextflow run ./tests/modules/stringtie/merge -entry test_stringtie_reverse_merge -c ./tests/config/nextflow.config -c ./tests/modules/stringtie/merge/nextflow.config @@ -30,7 +29,7 @@ - stringtie/merge files: - path: output/stringtie/stringtie.merged.gtf - md5sum: afc461bb3cbc368f268a7a45c1b54497 + md5sum: 6da479298d73d5b3216d4e1576a2bdf4 - path: output/stringtie/test.ballgown/e2t.ctab md5sum: 9ae42e056c955a88a883e5e917840d77 - path: output/stringtie/test.ballgown/e_data.ctab @@ -42,8 +41,7 @@ - path: output/stringtie/test.ballgown/t_data.ctab md5sum: 92a98902784e7406ffe054d2adbabc7c - path: output/stringtie/test.coverage.gtf - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/stringtie/test.gene.abundance.txt - md5sum: 94b85145d60ab1b80a7f0f6cf08418b0 + md5sum: f289f41b3ba1b9f0aa05d14408f1a5da - path: output/stringtie/test.transcripts.gtf - md5sum: 3196e3d50fd461aae6408e0a70acae68 + md5sum: 9dcdc9577c0fdbb25089eda210267546 diff --git a/tests/modules/stringtie/stringtie/main.nf b/tests/modules/stringtie/stringtie/main.nf index ae6abe67..463e4b98 100644 --- a/tests/modules/stringtie/stringtie/main.nf +++ b/tests/modules/stringtie/stringtie/main.nf @@ -2,7 +2,7 @@ nextflow.enable.dsl = 2 -include { STRINGTIE } from '../../../../modules/stringtie/stringtie/main.nf' +include { STRINGTIE_STRINGTIE } from '../../../../modules/stringtie/stringtie/main.nf' // // Test with forward strandedness // @@ -13,7 +13,7 @@ workflow test_stringtie_forward { ] annotation_gtf = file(params.test_data['sarscov2']['genome']['genome_gtf'], checkIfExists: true) - STRINGTIE ( input, annotation_gtf ) + STRINGTIE_STRINGTIE ( input, annotation_gtf ) } // @@ -26,5 +26,5 @@ workflow test_stringtie_reverse { ] annotation_gtf = file(params.test_data['sarscov2']['genome']['genome_gtf'], checkIfExists: true) - STRINGTIE ( input, annotation_gtf ) + STRINGTIE_STRINGTIE ( input, annotation_gtf ) } diff --git a/tests/modules/stringtie/stringtie/test.yml b/tests/modules/stringtie/stringtie/test.yml index 732b9fd1..2815ba81 100644 --- a/tests/modules/stringtie/stringtie/test.yml +++ b/tests/modules/stringtie/stringtie/test.yml @@ -8,7 +8,6 @@ - path: ./output/stringtie/test.gene.abundance.txt md5sum: 7d8bce7f2a922e367cedccae7267c22e - path: ./output/stringtie/test.coverage.gtf - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: ./output/stringtie/test.ballgown/e_data.ctab md5sum: 6b4cf69bc03f3f69890f972a0e8b7471 - path: ./output/stringtie/test.ballgown/i_data.ctab @@ -30,7 +29,6 @@ - path: ./output/stringtie/test.gene.abundance.txt md5sum: 7385b870b955dae2c2ab78a70cf05cce - path: ./output/stringtie/test.coverage.gtf - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: ./output/stringtie/test.ballgown/e_data.ctab md5sum: 879b6696029d19c4737b562e9d149218 - path: ./output/stringtie/test.ballgown/i_data.ctab From b3e56c83c683111d0d3edfa2821454d6132b6b66 Mon Sep 17 00:00:00 2001 From: Jose Espinosa-Carrasco Date: Fri, 22 Apr 2022 16:29:49 +0200 Subject: [PATCH 221/592] Remove task.cpus from the command (#1559) --- modules/phantompeakqualtools/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/phantompeakqualtools/main.nf b/modules/phantompeakqualtools/main.nf index f584cb65..0362b2e7 100644 --- a/modules/phantompeakqualtools/main.nf +++ b/modules/phantompeakqualtools/main.nf @@ -26,7 +26,7 @@ process PHANTOMPEAKQUALTOOLS { def prefix = task.ext.prefix ?: "${meta.id}" """ RUN_SPP=`which run_spp.R` - Rscript $args -e "library(caTools); source(\\"\$RUN_SPP\\")" -c="$bam" -savp="${prefix}.spp.pdf" -savd="${prefix}.spp.Rdata" -out="${prefix}.spp.out" -p=$task.cpus + Rscript $args -e "library(caTools); source(\\"\$RUN_SPP\\")" -c="$bam" -savp="${prefix}.spp.pdf" -savd="${prefix}.spp.Rdata" -out="${prefix}.spp.out" cat <<-END_VERSIONS > versions.yml "${task.process}": From 1c1e813c670c24bc6de121e424ba790f3e76eeeb Mon Sep 17 00:00:00 2001 From: jasmezz Date: Fri, 22 Apr 2022 16:47:48 +0200 Subject: [PATCH 222/592] Initial module creation --- modules/antismash/antismashlite/main.nf | 58 +++++++++ modules/antismash/antismashlite/meta.yml | 121 ++++++++++++++++++ tests/config/pytest_modules.yml | 4 + tests/modules/antismash/antismashlite/main.nf | 49 +++++++ .../antismash/antismashlite/nextflow.config | 5 + .../modules/antismash/antismashlite/test.yml | 37 ++++++ 6 files changed, 274 insertions(+) create mode 100644 modules/antismash/antismashlite/main.nf create mode 100644 modules/antismash/antismashlite/meta.yml create mode 100644 tests/modules/antismash/antismashlite/main.nf create mode 100644 tests/modules/antismash/antismashlite/nextflow.config create mode 100644 tests/modules/antismash/antismashlite/test.yml diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf new file mode 100644 index 00000000..35ca7691 --- /dev/null +++ b/modules/antismash/antismashlite/main.nf @@ -0,0 +1,58 @@ +process ANTISMASH_ANTISMASHLITE { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::antismash-lite=6.0.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/antismash-lite:6.0.1--pyhdfd78af_1' : + 'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }" + + input: + tuple val(meta), path(sequence_input) + path(databases) + + output: + tuple val(meta), path("${prefix}/clusterblast/*_c*.txt") , optional: true, emit: clusterblast_file + tuple val(meta), path("$prefix/css/*.css") , emit: css_file + tuple val(meta), path("$prefix/images") , emit: image_directory + tuple val(meta), path("$prefix/js/*.js") , emit: javascript + tuple val(meta), path("${prefix}/knownclusterblast/region*/ctg*.html") , optional: true, emit: knownclusterblast_html + tuple val(meta), path("${prefix}/knownclusterblast/*_c*.txt") , optional: true, emit: knownclusterblast_txt + tuple val(meta), path("${prefix}/svg/clusterblast*.svg") , optional: true, emit: svg_files_clusterblast + tuple val(meta), path("${prefix}/svg/knownclusterblast*.svg") , optional: true, emit: svg_files_knownclusterblast + tuple val(meta), path("$prefix/*.gbk") , emit: gbk_input + tuple val(meta), path("$prefix/*.json") , emit: json_results + tuple val(meta), path("$prefix/*.log") , emit: log + tuple val(meta), path("$prefix/*.zip") , emit: zip + tuple val(meta), path("$prefix/*region*.gbk") , emit: gbk_results + tuple val(meta), path("${prefix}/clusterblastoutput.txt") , optional: true, emit: clusterblastoutput + tuple val(meta), path("$prefix/index.html") , emit: html + tuple val(meta), path("${prefix}/knownclusterblastoutput.txt") , optional: true, emit: knownclusterblastoutput + tuple val(meta), path("$prefix/regions.js") , emit: json_sideloading + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.suffix ? "${meta.id}${task.ext.suffix}" : "${meta.id}" + + """ + ## We specifically do not include annotations (--genefinding-tool none) as + ## this should be run as a separate module for versioning purposes + antismash \\ + $sequence_input \\ + $args \\ + -c $task.cpus \\ + --output-dir $prefix \\ + --genefinding-tool none \\ + --logfile $prefix/${prefix}.log \\ + --databases $databases + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + antismash: \$(antismash --version | sed 's/antiSMASH //') + END_VERSIONS + """ +} diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml new file mode 100644 index 00000000..6a743e0e --- /dev/null +++ b/modules/antismash/antismashlite/meta.yml @@ -0,0 +1,121 @@ +name: antismash_antismashlite +description: antiSMASH allows the rapid genome-wide identification, annotation and analysis of secondary metabolite biosynthesis gene clusters. +keywords: + - secondary metabolites + - BGC + - biosynthetic gene cluster + - genome mining + - NRPS + - RiPP + - antibiotics + - prokaryotes + - bacteria + - eukaryotes + - fungi + - antismash + +tools: + - antismashlite: + description: "antiSMASH - the antibiotics and Secondary Metabolite Analysis SHell" + homepage: "https://docs.antismash.secondarymetabolites.org" + documentation: "https://docs.antismash.secondarymetabolites.org" + tool_dev_url: "https://github.com/antismash/antismash" + doi: "10.1093/nar/gkab335" + licence: "['AGPL v3']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - sequence_input: + type: file + description: nucleotide sequence file (annotated) + pattern: "*.{gbk, gb, gbff, genbank, embl}" + - databases: + type: directory + description: downloaded antismash databases e.g. data/databases + pattern: "*" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - clusterblast_file: + type: file + description: Output of ClusterBlast algorithm + pattern: "clusterblast/*_c*.txt" + - css_file: + type: file + description: Style sheet containing the formatting of HTML output + pattern: "css/*.css" + - image_directory: + type: directory + description: image files for web view of antiSMASH results + pattern: "images" + - javascript: + type: file + description: JavaScript files + pattern: "js/*.js" + - knownclusterblast_html: + type: file + description: Tables with MIBiG hits in HTML format + pattern: "knownclusterblast/region*/ctg*.html" + - knownclusterblast_txt: + type: file + description: Tables with MIBiG hits + pattern: "knownclusterblast/*_c*.txt" + - svg_files_clusterblast: + type: file + description: SVG image showing the % identity of the aligned hits against their queries + pattern: "svg/clusterblast*.svg" + - svg_files_knownclusterblast: + type: file + description: SVG image showing the % identity of the aligned hits against their queries + pattern: "svg/knownclusterblast*.svg" + - gbk_input: + type: file + description: Nucleotide sequence + annotations in GenBank file format; converted from input file + pattern: "*.gbk" + - json_results: + type: file + description: Simple representation of all detected areas during the antiSMASH run in JSON format + pattern: "*.json" + - log: + type: file + description: Contains all the logging output that antiSMASH produced during its run + pattern: "*.log" + - zip: + type: file + description: Contains a compressed version of the folder in zip format + pattern: "*.zip" + - gbk_results: + type: file + description: Nucleotide sequence + annotations in GenBank file format; one file per antiSMASH hit + pattern: "*region*.gbk" + - clusterblastoutput: + type: file + description: Raw BLAST output of known clusters previously predicted by antiSMASH using the built-in ClusterBlast algorithm + pattern: "clusterblastoutput.txt" + - html: + type: file + description: Graphical web view of results in HTML format + patterN: "index.html" + - knownclusterblastoutput: + type: file + description: Raw BLAST output of known clusters of the MIBiG database + pattern: "knownclusterblastoutput.txt" + - json_sideloading: + type: file + description: Sideloaded annotations of protoclusters and/or subregions (see documentation "Annotation sideloading") + pattern: "regions.js" + +authors: + - "@jasmezz" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 19b51f3d..205f463e 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -42,6 +42,10 @@ amrfinderplus/update: - modules/amrfinderplus/update/** - tests/modules/amrfinderplus/update/** +antismash/antismashlite: + - modules/antismash/antismashlite/** + - tests/modules/antismash/antismashlite/** + antismash/antismashlitedownloaddatabases: - modules/antismash/antismashlitedownloaddatabases/** - tests/modules/antismash/antismashlitedownloaddatabases/** diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf new file mode 100644 index 00000000..b442a1b2 --- /dev/null +++ b/tests/modules/antismash/antismashlite/main.nf @@ -0,0 +1,49 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +//include { GUNZIP } from '../../../modules/gunzip/main.nf' +include { UNTAR as UNTAR1 } from '../../../../modules/untar/main.nf' +include { UNTAR as UNTAR2 } from '../../../../modules/untar/main.nf' +include { UNTAR as UNTAR3 } from '../../../../modules/untar/main.nf' +include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/antismash/antismashlitedownloaddatabases/main.nf' +include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' +include { PROKKA } from '../../../modules/prokka/main.nf' + +workflow test_antismashlite { + input = [ + [ id:'test' ], // meta map + file(params.test_data['bacteroides_fragilis']['genome']['genome_gbff_gz'], checkIfExists: true) ] + + input_antismash_db1 = [ + [], + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) + ] + + input_antismash_db2 = [ + [], + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) + ] + + input_antismash_db3 = [ + [], + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) + ] + + UNTAR1 ( input_antismash_db1 ) + UNTAR2 ( input_antismash_db2 ) + UNTAR3 ( input_antismash_db3 ) + ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) + ANTISMASH_ANTISMASHLITE ( input, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database ) +} + +//workflow test_prokka_antismashlite { +// input_gunzip = [ [ id:'test' ], // meta map +// file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) ] + +// GUNZIP ( input_gunzip ) +// PROKKA ( GUNZIP.out.gunzip, [], [] ) +// ANTISMASHLITEDOWNLOADDATABASES () +// ANTISMASH ( PROKKA.out.gbk ) +// } + diff --git a/tests/modules/antismash/antismashlite/nextflow.config b/tests/modules/antismash/antismashlite/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/antismash/antismashlite/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/antismash/antismashlite/test.yml b/tests/modules/antismash/antismashlite/test.yml new file mode 100644 index 00000000..c95de36c --- /dev/null +++ b/tests/modules/antismash/antismashlite/test.yml @@ -0,0 +1,37 @@ +- name: antismash antismashlite test_antismashlite + command: nextflow run ./tests/modules/antismash/antismashlite -entry test_antismashlite -c tests/config/nextflow.config + tags: + - antismash/antismashlite + - antismash + files: + - path: output/antismash/test/NZ_CP069563.1.region001.gbk + contains: ['/tool="antismash"'] + - path: output/antismash/test/NZ_CP069563.1.region002.gbk + contains: ['/tool="antismash"'] + - path: output/antismash/test/css/bacteria.css + md5sum: 8b3c2f8b143d5245a5f42f55803c532c + - path: output/antismash/test/genome.gbk + contains: ['/tool="antismash"'] + - path: output/antismash/test/genome.json + contains: ['{"version": "6.0.1", "input_file": "genome.gbff.gz", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] + - path: output/antismash/test/genome.zip + - path: output/antismash/test/index.html + md5sum: 4792f0f4faf318035fbec5b4bf0ff76e + - path: output/antismash/test/js/antismash.js + md5sum: 58e90c3d783ae014cc3d51849bcb50a2 + - path: output/antismash/test/js/jquery.js + md5sum: 397754ba49e9e0cf4e7c190da78dda05 + - path: output/antismash/test/js/jquery.tablesorter.min.js + md5sum: 5e9e08cef4d1be0eaa538e6eb28809a7 + - path: output/antismash/test/regions.js + md5sum: dfc82025379d87df63fbfce734e67725 + - path: output/antismash/test/test.log + contains: ['antiSMASH version: 6.0.1'] + - path: output/antismash/versions.yml + md5sum: 7151dfd4d39173338397b2dab50acf8e + - path: output/untar1/versions.yml + md5sum: 42c2c02eb6b5bc47b151bdd2c49bbb2d + - path: output/untar2/versions.yml + md5sum: 5a608b991b7d3e55cc43206939991a2d + - path: output/untar3/versions.yml + md5sum: ec74401950e3820b7575840571a6f00c From c2d2399107852aed6bd8e3875cc7bf0cbc89bbb3 Mon Sep 17 00:00:00 2001 From: "Robert A. Petit III" Date: Fri, 22 Apr 2022 08:49:44 -0600 Subject: [PATCH 223/592] Update modules/shigatyper/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/shigatyper/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/shigatyper/main.nf b/modules/shigatyper/main.nf index 3754743f..9d5c189a 100644 --- a/modules/shigatyper/main.nf +++ b/modules/shigatyper/main.nf @@ -12,7 +12,7 @@ process SHIGATYPER { output: tuple val(meta), path("${prefix}.tsv") , emit: tsv - tuple val(meta), path("${prefix}-hits.tsv"), emit: hits, optional: true + tuple val(meta), path("${prefix}-hits.tsv"), optional: true, emit: hits path "versions.yml" , emit: versions when: From 99576895682ee210065be35596b28f308aba068d Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Fri, 22 Apr 2022 17:51:18 +0200 Subject: [PATCH 224/592] Add missing bacteroides_fragilis genome.gbff.gz (#1558) Co-authored-by: James A. Fellows Yates --- tests/config/test_data.config | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 559c0d6f..f6ea242d 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -335,6 +335,7 @@ params { 'bacteroides_fragilis' { 'genome' { genome_fna_gz = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.fna.gz" + genome_gbff_gz = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.gbff.gz" genome_paf = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.paf" genome_mapping_potential_arg = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.mapping.potential.ARG" From 2a2ac290c37fbbd6caa41b06993818491131e0f2 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 19:34:00 +0200 Subject: [PATCH 225/592] Update modules/bamtools/split/meta.yml Co-authored-by: Harshil Patel --- modules/bamtools/split/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/bamtools/split/meta.yml b/modules/bamtools/split/meta.yml index 0fd5d5ca..badc6974 100644 --- a/modules/bamtools/split/meta.yml +++ b/modules/bamtools/split/meta.yml @@ -23,7 +23,7 @@ input: e.g. [ id:'test', single_end:false ] - bam: type: file - description: A list of BAM files to merge and then split + description: A list of one or more BAM files to merge and then split pattern: "*.bam" - bam_list: type: file From 7bcede747411d77f85dde0c33e3599e81c0cdb14 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 19:34:14 +0200 Subject: [PATCH 226/592] Update modules/bamtools/split/meta.yml Co-authored-by: Harshil Patel --- modules/bamtools/split/meta.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/modules/bamtools/split/meta.yml b/modules/bamtools/split/meta.yml index badc6974..8af701f0 100644 --- a/modules/bamtools/split/meta.yml +++ b/modules/bamtools/split/meta.yml @@ -25,11 +25,6 @@ input: type: file description: A list of one or more BAM files to merge and then split pattern: "*.bam" - - bam_list: - type: file - description: | - Optional input file containing bam files to merge before splitting, - one line per file output: - meta: From b73662c8d9b5a770904ae9f3b1a79c878f125c6c Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 19:34:32 +0200 Subject: [PATCH 227/592] Update tests/modules/bamtools/split/main.nf Co-authored-by: Harshil Patel --- tests/modules/bamtools/split/main.nf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/modules/bamtools/split/main.nf b/tests/modules/bamtools/split/main.nf index 9787b4ed..e5c15c32 100644 --- a/tests/modules/bamtools/split/main.nf +++ b/tests/modules/bamtools/split/main.nf @@ -19,9 +19,10 @@ workflow test_bamtools_split_multiple { input = [ [ id:'test', single_end:false ], // meta map - [file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true)] - + [ + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_sorted_bam'], checkIfExists: true) + ] ] BAMTOOLS_SPLIT_MULTIPLE ( input ) From 6efb022f6943ff67421b46359b38582a36278fe5 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 19:34:44 +0200 Subject: [PATCH 228/592] Update tests/modules/bamtools/split/test.yml Co-authored-by: Harshil Patel --- tests/modules/bamtools/split/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/bamtools/split/test.yml b/tests/modules/bamtools/split/test.yml index 63ecac57..5747aa25 100644 --- a/tests/modules/bamtools/split/test.yml +++ b/tests/modules/bamtools/split/test.yml @@ -11,7 +11,7 @@ - path: output/bamtools/versions.yml - name: bamtools split test_bamtools_split_multiple - command: nextflow run tests/modules/bamtools/split -entry test_bamtools_split_multiple -c tests/config/nextflow.config + command: nextflow run ./tests/modules/bamtools/split -entry test_bamtools_split_multiple -c ./tests/config/nextflow.config -c ./tests/modules/bamtools/split/nextflow.config tags: - bamtools - bamtools/split From e9c44f3d85b731add02680fa6a246c0675e1aac7 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 19:35:34 +0200 Subject: [PATCH 229/592] Update tests/modules/bamtools/split/test.yml Co-authored-by: Harshil Patel --- tests/modules/bamtools/split/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/bamtools/split/test.yml b/tests/modules/bamtools/split/test.yml index 5747aa25..af639b43 100644 --- a/tests/modules/bamtools/split/test.yml +++ b/tests/modules/bamtools/split/test.yml @@ -1,5 +1,5 @@ - name: bamtools split test_bamtools_split_single_input - command: nextflow run tests/modules/bamtools/split -entry test_bamtools_split_single_input -c tests/config/nextflow.config + command: nextflow run ./tests/modules/bamtools/split -entry test_bamtools_split_single_input -c ./tests/config/nextflow.config -c ./tests/modules/bamtools/split/nextflow.config tags: - bamtools - bamtools/split From 2d32267fcdce945375294cb776ca129038d2b903 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 19:36:01 +0200 Subject: [PATCH 230/592] Update modules/bamtools/split/main.nf Co-authored-by: Harshil Patel --- modules/bamtools/split/main.nf | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/bamtools/split/main.nf b/modules/bamtools/split/main.nf index 7184261e..9c643b84 100644 --- a/modules/bamtools/split/main.nf +++ b/modules/bamtools/split/main.nf @@ -24,11 +24,13 @@ process BAMTOOLS_SPLIT { def stub = !args.contains("-stub") ? "-stub ${prefix}" : "" """ - bamtools merge \\ - ${input_list} \\ - | bamtools split \\ - $stub \\ - $args + bamtools \\ + merge \\ + $input_list \\ + | bamtools \\ + split \\ + -stub $prefix \\ + $args cat <<-END_VERSIONS > versions.yml "${task.process}": From da56a2d50968f12ff2aa1a6d6b05fae083ba26c3 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 22 Apr 2022 19:36:08 +0200 Subject: [PATCH 231/592] Update modules/bamtools/split/main.nf Co-authored-by: Harshil Patel --- modules/bamtools/split/main.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/bamtools/split/main.nf b/modules/bamtools/split/main.nf index 9c643b84..aaa5b663 100644 --- a/modules/bamtools/split/main.nf +++ b/modules/bamtools/split/main.nf @@ -21,8 +21,6 @@ process BAMTOOLS_SPLIT { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def input_list = bam.collect{"-in $it"}.join(' ') - def stub = !args.contains("-stub") ? "-stub ${prefix}" : "" - """ bamtools \\ merge \\ From 378fa5fbb47ed7c8211b01acb5cf1f66111c4e13 Mon Sep 17 00:00:00 2001 From: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> Date: Sat, 23 Apr 2022 10:12:06 -0400 Subject: [PATCH 232/592] new module: GAMMA (#1532) * initial version of gamma module * remove trailing whitespace * prettier fix * hardcode version number * Update modules/gamma/main.nf Co-authored-by: James A. Fellows Yates * Update modules/gamma/main.nf Co-authored-by: James A. Fellows Yates * Update modules/gamma/meta.yml Co-authored-by: Robert A. Petit III * update meta and prettier * add whitespaces * add fasta output and tests Co-authored-by: Robert A. Petit III Co-authored-by: James A. Fellows Yates --- modules/gamma/main.nf | 41 +++++++++++++++++++ modules/gamma/meta.yml | 63 +++++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/gamma/main.nf | 17 ++++++++ tests/modules/gamma/nextflow.config | 7 ++++ tests/modules/gamma/test.yml | 13 ++++++ 6 files changed, 145 insertions(+) create mode 100644 modules/gamma/main.nf create mode 100644 modules/gamma/meta.yml create mode 100644 tests/modules/gamma/main.nf create mode 100644 tests/modules/gamma/nextflow.config create mode 100644 tests/modules/gamma/test.yml diff --git a/modules/gamma/main.nf b/modules/gamma/main.nf new file mode 100644 index 00000000..e176ee68 --- /dev/null +++ b/modules/gamma/main.nf @@ -0,0 +1,41 @@ +def VERSION = '2.1' // Version information not provided by tool on CLI + +process GAMMA { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::gamma=2.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gamma%3A2.1--hdfd78af_0': + 'quay.io/biocontainers/gamma:2.1--hdfd78af_0' }" + + input: + tuple val(meta), path(fasta) + path(db) + + output: + tuple val(meta), path("*.gamma") , emit: gamma + tuple val(meta), path("*.psl") , emit: psl + tuple val(meta), path("*.gff") , optional:true , emit: gff + tuple val(meta), path("*.fasta"), optional:true , emit: fasta + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + GAMMA.py \\ + $args \\ + $fasta \\ + $db \\ + $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gamma: $VERSION + END_VERSIONS + """ +} diff --git a/modules/gamma/meta.yml b/modules/gamma/meta.yml new file mode 100644 index 00000000..316b685b --- /dev/null +++ b/modules/gamma/meta.yml @@ -0,0 +1,63 @@ +name: "gamma" +description: Gene Allele Mutation Microbial Assessment +keywords: + - gamma + - gene-calling +tools: + - "gamma": + description: "Tool for Gene Allele Mutation Microbial Assessment" + homepage: "https://github.com/rastanton/GAMMA" + documentation: "https://github.com/rastanton/GAMMA" + tool_dev_url: "https://github.com/rastanton/GAMMA" + doi: "10.1093/bioinformatics/btab607" + licence: "['Apache License 2.0']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: FASTA file + pattern: "*.{fa,fasta}" + - db: + type: file + description: Database in FASTA format + pattern: "*.{fa,fasta}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + + - gamma: + type: file + description: GAMMA file with annotated gene matches + pattern: "*.{gamma}" + + - psl: + type: file + description: PSL file with all gene matches found + pattern: "*.{psl}" + + - gff: + type: file + description: GFF file + pattern: "*.{gff}" + + - fasta: + type: file + description: multifasta file of the gene matches + pattern: "*.{fasta}" + +authors: + - "@sateeshperi" + - "@rastanton" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index a1a969e7..263e83a8 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -675,6 +675,10 @@ freebayes: - modules/freebayes/** - tests/modules/freebayes/** +gamma: + - modules/gamma/** + - tests/modules/gamma/** + gatk4/applybqsr: - modules/gatk4/applybqsr/** - tests/modules/gatk4/applybqsr/** diff --git a/tests/modules/gamma/main.nf b/tests/modules/gamma/main.nf new file mode 100644 index 00000000..f9477706 --- /dev/null +++ b/tests/modules/gamma/main.nf @@ -0,0 +1,17 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GAMMA } from '../../../modules/gamma/main.nf' + +workflow test_gamma { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + + db = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] + + GAMMA ( input, db ) +} diff --git a/tests/modules/gamma/nextflow.config b/tests/modules/gamma/nextflow.config new file mode 100644 index 00000000..bbbf4de0 --- /dev/null +++ b/tests/modules/gamma/nextflow.config @@ -0,0 +1,7 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + ext.args = '--fasta' + +} diff --git a/tests/modules/gamma/test.yml b/tests/modules/gamma/test.yml new file mode 100644 index 00000000..1b493b49 --- /dev/null +++ b/tests/modules/gamma/test.yml @@ -0,0 +1,13 @@ +- name: gamma test_gamma + command: nextflow run tests/modules/gamma -entry test_gamma -c tests/config/nextflow.config + tags: + - gamma + files: + - path: output/gamma/test.fasta + md5sum: df37b48466181311e0a679f3c5878484 + - path: output/gamma/test.gamma + md5sum: 3256708fa517a65ed01d99e0e3c762ae + - path: output/gamma/test.psl + md5sum: 162a2757ed3b167ae1e0cdb24213f940 + - path: output/gamma/versions.yml + md5sum: 3fefb5b46c94993362243c5f9a472057 From 569e07f0af74e2a6ea43fca61ae90bb762893461 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Mon, 25 Apr 2022 14:32:49 +0200 Subject: [PATCH 233/592] add samtools/bamtocram modules (#1561) * add new samtools/bamtocram module * fix md5sum * remove md5sum * Update modules/samtools/bamtocram/main.nf Co-authored-by: James A. Fellows Yates Co-authored-by: James A. Fellows Yates --- modules/samtools/bamtocram/main.nf | 35 +++++++++++++ modules/samtools/bamtocram/meta.yml | 52 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/samtools/bamtocram/main.nf | 17 ++++++ .../samtools/bamtocram/nextflow.config | 5 ++ tests/modules/samtools/bamtocram/test.yml | 9 ++++ 6 files changed, 122 insertions(+) create mode 100644 modules/samtools/bamtocram/main.nf create mode 100644 modules/samtools/bamtocram/meta.yml create mode 100644 tests/modules/samtools/bamtocram/main.nf create mode 100644 tests/modules/samtools/bamtocram/nextflow.config create mode 100644 tests/modules/samtools/bamtocram/test.yml diff --git a/modules/samtools/bamtocram/main.nf b/modules/samtools/bamtocram/main.nf new file mode 100644 index 00000000..b49c308f --- /dev/null +++ b/modules/samtools/bamtocram/main.nf @@ -0,0 +1,35 @@ +//There is a -L option to only output alignments in interval, might be an option for exons/panel data? +process SAMTOOLS_BAMTOCRAM { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" + + input: + tuple val(meta), path(input), path(index) + path fasta + path fai + + output: + tuple val(meta), path("*.cram"), path("*.crai"), emit: cram_crai + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + samtools view --threads ${task.cpus} --reference ${fasta} -C $args $input > ${prefix}.cram + samtools index -@${task.cpus} ${prefix}.cram + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ +} diff --git a/modules/samtools/bamtocram/meta.yml b/modules/samtools/bamtocram/meta.yml new file mode 100644 index 00000000..037704c6 --- /dev/null +++ b/modules/samtools/bamtocram/meta.yml @@ -0,0 +1,52 @@ +name: samtools_bamtocram +description: filter/convert and then index CRAM file +keywords: + - view + - index + - bam + - 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 + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: BAM/SAM file + pattern: "*.{bam,sam}" + - index: + type: file + description: BAM/SAM index file + pattern: "*.{bai,sai}" + - fasta: + type: file + description: Reference file to create the CRAM file + pattern: "*.{fasta,fa}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - cram_crai: + type: file + description: filtered/converted CRAM file + index + pattern: "*{.cram,.crai}" + - version: + type: file + description: File containing software version + pattern: "*.{version.txt}" +authors: + - "@FriederikeHanssen" + - "@maxulysse" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 263e83a8..4d8ce0b5 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1595,6 +1595,10 @@ samtools/bam2fq: - modules/samtools/bam2fq/** - tests/modules/samtools/bam2fq/** +samtools/bamtocram: + - modules/samtools/bamtocram/** + - tests/modules/samtools/bamtocram/** + samtools/collatefastq: - modules/samtools/collatefastq/** - tests/modules/samtools/collatefastq/** diff --git a/tests/modules/samtools/bamtocram/main.nf b/tests/modules/samtools/bamtocram/main.nf new file mode 100644 index 00000000..b1743310 --- /dev/null +++ b/tests/modules/samtools/bamtocram/main.nf @@ -0,0 +1,17 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SAMTOOLS_BAMTOCRAM } from '../../../../modules/samtools/bamtocram/main.nf' + +workflow test_samtools_bamtocram { + + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true)] + + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + + SAMTOOLS_BAMTOCRAM ( input, fasta, fai ) +} \ No newline at end of file diff --git a/tests/modules/samtools/bamtocram/nextflow.config b/tests/modules/samtools/bamtocram/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/samtools/bamtocram/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/samtools/bamtocram/test.yml b/tests/modules/samtools/bamtocram/test.yml new file mode 100644 index 00000000..3cb82902 --- /dev/null +++ b/tests/modules/samtools/bamtocram/test.yml @@ -0,0 +1,9 @@ +- name: samtools bamtocram test_samtools_bamtocram + command: nextflow run ./tests/modules/samtools/bamtocram -entry test_samtools_bamtocram -c ./tests/config/nextflow.config -c ./tests/modules/samtools/bamtocram/nextflow.config + tags: + - samtools/bamtocram + - samtools + files: + - path: output/samtools/test.cram + - path: output/samtools/test.cram.crai + - path: output/samtools/versions.yml From 6a46e7cf117bbae41bca9b4c7ff7a77794df16ec Mon Sep 17 00:00:00 2001 From: Jose Espinosa-Carrasco Date: Mon, 25 Apr 2022 19:07:43 +0200 Subject: [PATCH 234/592] Allow to pass arguments to the phantompeakqualtools script itself (#1562) * Allow to pass arguments to the script itself * Place args2 correctly * Define args2 aaaaarrrrgggg * Testing locally before commiting is a good practice * Update modules/phantompeakqualtools/main.nf Co-authored-by: Harshil Patel Co-authored-by: Harshil Patel --- modules/phantompeakqualtools/main.nf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/phantompeakqualtools/main.nf b/modules/phantompeakqualtools/main.nf index 0362b2e7..d8f73342 100644 --- a/modules/phantompeakqualtools/main.nf +++ b/modules/phantompeakqualtools/main.nf @@ -22,11 +22,12 @@ process PHANTOMPEAKQUALTOOLS { task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ RUN_SPP=`which run_spp.R` - Rscript $args -e "library(caTools); source(\\"\$RUN_SPP\\")" -c="$bam" -savp="${prefix}.spp.pdf" -savd="${prefix}.spp.Rdata" -out="${prefix}.spp.out" + Rscript $args -e "library(caTools); source(\\"\$RUN_SPP\\")" -c="$bam" -savp="${prefix}.spp.pdf" -savd="${prefix}.spp.Rdata" -out="${prefix}.spp.out" $args2 cat <<-END_VERSIONS > versions.yml "${task.process}": From 1acde9a7a1263b9fa9b9c5ed5e92c7268ecbdd2a Mon Sep 17 00:00:00 2001 From: jasmezz Date: Tue, 26 Apr 2022 16:28:39 +0200 Subject: [PATCH 235/592] Fix container volume mounts --- modules/antismash/antismashlite/main.nf | 15 +++- modules/antismash/antismashlite/meta.yml | 15 ++++ tests/modules/antismash/antismashlite/main.nf | 55 ++++++++----- .../modules/antismash/antismashlite/test.yml | 78 +++++++++++++++++-- 4 files changed, 137 insertions(+), 26 deletions(-) diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf index 35ca7691..645e389f 100644 --- a/modules/antismash/antismashlite/main.nf +++ b/modules/antismash/antismashlite/main.nf @@ -7,9 +7,20 @@ process ANTISMASH_ANTISMASHLITE { 'https://depot.galaxyproject.org/singularity/antismash-lite:6.0.1--pyhdfd78af_1' : 'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }" + containerOptions { + workflow.containerEngine == 'singularity' ? + "-B $css_dir:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css,$detection_dir:/usr/local/lib/python3.8/site-packages/antismash/detection,$modules_dir:/usr/local/lib/python3.8/site-packages/antismash/modules" : + workflow.containerEngine == 'docker' ? + "-v \$PWD/$css_dir:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css -v \$PWD/$detection_dir:/usr/local/lib/python3.8/site-packages/antismash/detection -v \$PWD/$modules_dir:/usr/local/lib/python3.8/site-packages/antismash/modules" : + '' + } + input: tuple val(meta), path(sequence_input) path(databases) + path css_dir + path detection_dir + path modules_dir output: tuple val(meta), path("${prefix}/clusterblast/*_c*.txt") , optional: true, emit: clusterblast_file @@ -42,13 +53,13 @@ process ANTISMASH_ANTISMASHLITE { ## We specifically do not include annotations (--genefinding-tool none) as ## this should be run as a separate module for versioning purposes antismash \\ - $sequence_input \\ $args \\ -c $task.cpus \\ --output-dir $prefix \\ --genefinding-tool none \\ --logfile $prefix/${prefix}.log \\ - --databases $databases + --databases $databases \\ + $sequence_input cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml index 6a743e0e..fa7e21a6 100644 --- a/modules/antismash/antismashlite/meta.yml +++ b/modules/antismash/antismashlite/meta.yml @@ -37,6 +37,21 @@ input: type: directory description: downloaded antismash databases e.g. data/databases pattern: "*" + - css_dir: + type: directory + description: | + antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "css" + - detection_dir: + type: directory + description: | + antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "detection" + - modules_dir: + type: directory + description: | + antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "modules" output: - meta: diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index b442a1b2..19e3b5f8 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -2,7 +2,7 @@ nextflow.enable.dsl = 2 -//include { GUNZIP } from '../../../modules/gunzip/main.nf' +include { GUNZIP } from '../../../modules/gunzip/main.nf' include { UNTAR as UNTAR1 } from '../../../../modules/untar/main.nf' include { UNTAR as UNTAR2 } from '../../../../modules/untar/main.nf' include { UNTAR as UNTAR3 } from '../../../../modules/untar/main.nf' @@ -10,40 +10,57 @@ include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/anti include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' include { PROKKA } from '../../../modules/prokka/main.nf' -workflow test_antismashlite { - input = [ - [ id:'test' ], // meta map - file(params.test_data['bacteroides_fragilis']['genome']['genome_gbff_gz'], checkIfExists: true) ] +// workflow test_antismashlite { +// input = [ +// [ id:'test' ], // meta map +// file(params.test_data['bacteroides_fragilis']['genome']['genome_gbff_gz'], checkIfExists: true) ] + +// input_antismash_db1 = [ +// [], +// file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) +// ] + +// input_antismash_db2 = [ +// [], +// file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) +// ] + +// input_antismash_db3 = [ +// [], +// file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) +// ] + +// UNTAR1 ( input_antismash_db1 ) +// UNTAR2 ( input_antismash_db2 ) +// UNTAR3 ( input_antismash_db3 ) +// ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) +// ANTISMASH_ANTISMASHLITE ( input, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) +//} + +workflow test_prokka_antismashlite { + input_gunzip = [ [ id:'test' ], // meta map + file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) ] input_antismash_db1 = [ [], file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) ] - input_antismash_db2 = [ + input_antismash_db2 = [ [], file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) ] - input_antismash_db3 = [ + input_antismash_db3 = [ [], file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) ] + GUNZIP ( input_gunzip ) + PROKKA ( GUNZIP.out.gunzip, [], [] ) UNTAR1 ( input_antismash_db1 ) UNTAR2 ( input_antismash_db2 ) UNTAR3 ( input_antismash_db3 ) ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) - ANTISMASH_ANTISMASHLITE ( input, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database ) + ANTISMASH_ANTISMASHLITE ( PROKKA.out.gbk, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) } - -//workflow test_prokka_antismashlite { -// input_gunzip = [ [ id:'test' ], // meta map -// file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) ] - -// GUNZIP ( input_gunzip ) -// PROKKA ( GUNZIP.out.gunzip, [], [] ) -// ANTISMASHLITEDOWNLOADDATABASES () -// ANTISMASH ( PROKKA.out.gbk ) -// } - diff --git a/tests/modules/antismash/antismashlite/test.yml b/tests/modules/antismash/antismashlite/test.yml index c95de36c..3fcba1e4 100644 --- a/tests/modules/antismash/antismashlite/test.yml +++ b/tests/modules/antismash/antismashlite/test.yml @@ -1,5 +1,5 @@ - name: antismash antismashlite test_antismashlite - command: nextflow run ./tests/modules/antismash/antismashlite -entry test_antismashlite -c tests/config/nextflow.config + command: nextflow run tests/modules/antismash/antismashlite -entry test_antismashlite -c tests/config/nextflow.config tags: - antismash/antismashlite - antismash @@ -16,7 +16,7 @@ contains: ['{"version": "6.0.1", "input_file": "genome.gbff.gz", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] - path: output/antismash/test/genome.zip - path: output/antismash/test/index.html - md5sum: 4792f0f4faf318035fbec5b4bf0ff76e + md5sum: 32aaf51315258af3b300d9a5bafd7bdc - path: output/antismash/test/js/antismash.js md5sum: 58e90c3d783ae014cc3d51849bcb50a2 - path: output/antismash/test/js/jquery.js @@ -30,8 +30,76 @@ - path: output/antismash/versions.yml md5sum: 7151dfd4d39173338397b2dab50acf8e - path: output/untar1/versions.yml - md5sum: 42c2c02eb6b5bc47b151bdd2c49bbb2d + md5sum: 1e4721017721c45370996318e6b807e5 - path: output/untar2/versions.yml - md5sum: 5a608b991b7d3e55cc43206939991a2d + md5sum: a6ae4977a432f3c5ef26687cec8622de - path: output/untar3/versions.yml - md5sum: ec74401950e3820b7575840571a6f00c + md5sum: a5ee00c1c426ed601ff654891ba0f645 + +- name: antismash antismashlite test_prokka_antismashlite + command: nextflow run tests/modules/antismash/antismashlite -entry test_prokka_antismashlite -c tests/config/nextflow.config + tags: + - antismash + - antismash/antismashlite + files: + - path: output/antismash/test/NZ_CP069563.1.region001.gbk + contains: ['/tool="antismash"'] + - path: output/antismash/test/NZ_CP069563.1.region002.gbk + contains: ['/tool="antismash"'] + - path: output/antismash/test/css/bacteria.css + md5sum: 8b3c2f8b143d5245a5f42f55803c532c + - path: output/antismash/test/index.html + md5sum: 3773c3ec61fb1e8cd9a67791b37d9b79 + - path: output/antismash/test/js/antismash.js + md5sum: 58e90c3d783ae014cc3d51849bcb50a2 + - path: output/antismash/test/js/jquery.js + md5sum: 397754ba49e9e0cf4e7c190da78dda05 + - path: output/antismash/test/js/jquery.tablesorter.min.js + md5sum: 5e9e08cef4d1be0eaa538e6eb28809a7 + - path: output/antismash/test/regions.js + contains: [ '"seq_id": "NZ_CP069563.1"' ] + - path: output/antismash/test/test.gbk + contains: ['/tool="antismash"'] + - path: output/antismash/test/test.json + contains: ['"id": "NZ_CP069563.1"'] + - path: output/antismash/test/test.log + contains: ['antiSMASH status: SUCCESS'] + - path: output/antismash/test/test.zip + - path: output/antismash/versions.yml + md5sum: da6bed0032d0f7ad4741e0074ad6b1ff + - path: output/gunzip/genome.fna + md5sum: dafd38f5454b54fbea38245d773062a5 + - path: output/gunzip/versions.yml + md5sum: 93ce587e93791c8cf500482d42b6069f + - path: output/prokka/test/test.err + md5sum: 194fd8a1d1cde9919841a1afd4414760 + - path: output/prokka/test/test.faa + md5sum: 8fefbfa7860f280cc881c3a3b377d6da + - path: output/prokka/test/test.ffn + md5sum: 9c4d4d7dc28625bcb13c6fbd27ca13c3 + - path: output/prokka/test/test.fna + md5sum: 96aa7707b864499745e8946f169ae8e0 + - path: output/prokka/test/test.fsa + md5sum: dbe7d3d43d46920802d2aec5cd177ddc + - path: output/prokka/test/test.gbk + md5sum: 286ea011a64c0d281de3981ed2f296ff + - path: output/prokka/test/test.gff + md5sum: 9f733b702454e7750b7d4686369fe7e4 + - path: output/prokka/test/test.log + contains: ["Annotation finished successfully."] + - path: output/prokka/test/test.sqn + md5sum: a901ac190675f976e373219f0191d067 + - path: output/prokka/test/test.tbl + md5sum: 98f3b705f47b40255631ae43823e8271 + - path: output/prokka/test/test.tsv + md5sum: 26e8aa4b2212f320e82b6db7c93d4461 + - path: output/prokka/test/test.txt + md5sum: aea5834a64dff02d3588cecbe25c3914 + - path: output/prokka/versions.yml + md5sum: 286ac10895a9f26ee8dd933dbc5d2b1c + - path: output/untar1/versions.yml + md5sum: 6c1bfedb010be6dfee273aa267b1cae3 + - path: output/untar2/versions.yml + md5sum: 65db3fe9c809e5371158deae444fb343 + - path: output/untar3/versions.yml + md5sum: 713d3aa0ee24ff680a8024cc53765d60 From 1f77bc130b26309573670c58053a928a4602a925 Mon Sep 17 00:00:00 2001 From: Sofia Stamouli <91951607+sofstam@users.noreply.github.com> Date: Tue, 26 Apr 2022 16:32:20 +0200 Subject: [PATCH 236/592] Update minimap2/align module (#1537) --- modules/minimap2/align/main.nf | 22 ++++++++++++++++------ modules/minimap2/align/meta.yml | 18 ++++++++++++++++++ tests/modules/minimap2/align/main.nf | 10 ++++++++-- tests/modules/minimap2/align/test.yml | 16 ++++++++-------- 4 files changed, 50 insertions(+), 16 deletions(-) diff --git a/modules/minimap2/align/main.nf b/modules/minimap2/align/main.nf index fe06f14d..7ba05ee9 100644 --- a/modules/minimap2/align/main.nf +++ b/modules/minimap2/align/main.nf @@ -2,18 +2,22 @@ process MINIMAP2_ALIGN { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? 'bioconda::minimap2=2.21' : null) + conda (params.enable_conda ? 'bioconda::minimap2=2.21 bioconda::samtools=1.12' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/minimap2:2.21--h5bf99c6_0' : - 'quay.io/biocontainers/minimap2:2.21--h5bf99c6_0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-66534bcbb7031a148b13e2ad42583020b9cd25c4:1679e915ddb9d6b4abda91880c4b48857d471bd8-0' : + 'quay.io/biocontainers/mulled-v2-66534bcbb7031a148b13e2ad42583020b9cd25c4:1679e915ddb9d6b4abda91880c4b48857d471bd8-0' }" input: tuple val(meta), path(reads) path reference + val bam_format + val cigar_paf_format + val cigar_bam output: - tuple val(meta), path("*.paf"), emit: paf - path "versions.yml" , emit: versions + tuple val(meta), path("*.paf"), optional: true, emit: paf + tuple val(meta), path("*.bam"), optional: true, emit: bam + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -22,13 +26,19 @@ process MINIMAP2_ALIGN { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def input_reads = meta.single_end ? "$reads" : "${reads[0]} ${reads[1]}" + def bam_output = bam_format ? "-a | samtools sort | samtools view -@ ${task.cpus} -b -h -o ${prefix}.bam" : "-o ${prefix}.paf" + def cigar_paf = cigar_paf_format && !sam_format ? "-c" : '' + def set_cigar_bam = cigar_bam && sam_format ? "-L" : '' """ minimap2 \\ $args \\ -t $task.cpus \\ $reference \\ $input_reads \\ - > ${prefix}.paf + $cigar_paf \\ + $set_cigar_bam \\ + $bam_output + cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/minimap2/align/meta.yml b/modules/minimap2/align/meta.yml index 89e24283..991b39a0 100644 --- a/modules/minimap2/align/meta.yml +++ b/modules/minimap2/align/meta.yml @@ -29,6 +29,17 @@ input: type: file description: | Reference database in FASTA format. + - bam_format: + type: boolean + description: Specify that output should be in BAM format + - cigar_paf_format: + type: boolean + description: Specify that output CIGAR should be in PAF format + - cigar_bam: + type: boolean + description: | + Write CIGAR with >65535 ops at the CG tag. This is recommended when + doing XYZ (https://github.com/lh3/minimap2#working-with-65535-cigar-operations) output: - meta: type: map @@ -39,9 +50,16 @@ output: type: file description: Alignment in PAF format pattern: "*.paf" + - bam: + type: file + description: Alignment in BAM format + pattern: "*.bam" - versions: type: file description: File containing software versions pattern: "versions.yml" authors: - "@heuermh" + - "@sofstam" + - "@sateeshperi" + - "@jfy133" diff --git a/tests/modules/minimap2/align/main.nf b/tests/modules/minimap2/align/main.nf index e507d3e5..ee6c0838 100644 --- a/tests/modules/minimap2/align/main.nf +++ b/tests/modules/minimap2/align/main.nf @@ -9,8 +9,11 @@ workflow test_minimap2_align_single_end { [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)] ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + bam_format = true + cigar_paf_format = false + cigar_bam = false - MINIMAP2_ALIGN ( input, fasta ) + MINIMAP2_ALIGN ( input, fasta, bam_format, cigar_paf_format, cigar_bam) } workflow test_minimap2_align_paired_end { @@ -19,6 +22,9 @@ workflow test_minimap2_align_paired_end { file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ] ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + bam_format = true + cigar_paf_format = false + cigar_bam = false - MINIMAP2_ALIGN ( input, fasta ) + MINIMAP2_ALIGN ( input, fasta, bam_format, cigar_paf_format, cigar_bam ) } diff --git a/tests/modules/minimap2/align/test.yml b/tests/modules/minimap2/align/test.yml index 73dd73e2..c392e313 100644 --- a/tests/modules/minimap2/align/test.yml +++ b/tests/modules/minimap2/align/test.yml @@ -1,17 +1,17 @@ -- name: minimap2 align single-end - command: nextflow run ./tests/modules/minimap2/align -entry test_minimap2_align_single_end -c ./tests/config/nextflow.config -c ./tests/modules/minimap2/align/nextflow.config +- name: minimap2 align test_minimap2_align_single_end + command: nextflow run tests/modules/minimap2/align -entry test_minimap2_align_single_end -c tests/config/nextflow.config tags: - minimap2 - minimap2/align files: - - path: ./output/minimap2/test.paf - md5sum: 70e8cf299ee3ecd33e629d10c1f588ce + - path: output/minimap2/test.bam + - path: output/minimap2/versions.yml -- name: minimap2 align paired-end - command: nextflow run ./tests/modules/minimap2/align -entry test_minimap2_align_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/minimap2/align/nextflow.config +- name: minimap2 align test_minimap2_align_paired_end + command: nextflow run tests/modules/minimap2/align -entry test_minimap2_align_paired_end -c tests/config/nextflow.config tags: - minimap2 - minimap2/align files: - - path: ./output/minimap2/test.paf - md5sum: 5e7b55a26bf0ea3a2843423d3e0b9a28 + - path: output/minimap2/test.bam + - path: output/minimap2/versions.yml From 134272c7ee2de794554d51d1a55ea2a4a7e3f9a0 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Tue, 26 Apr 2022 17:04:57 +0200 Subject: [PATCH 237/592] Add missing container folders as output channels --- .../antismashlitedownloaddatabases/main.nf | 6 +++++- .../antismashlitedownloaddatabases/meta.yml | 21 ++++++++++++++++--- .../antismashlitedownloaddatabases/test.yml | 11 +++++++++- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/modules/antismash/antismashlitedownloaddatabases/main.nf b/modules/antismash/antismashlitedownloaddatabases/main.nf index 1853d80a..2154bafa 100644 --- a/modules/antismash/antismashlitedownloaddatabases/main.nf +++ b/modules/antismash/antismashlitedownloaddatabases/main.nf @@ -7,8 +7,9 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { 'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }" /* - These files are normally downloaded by download-antismash-databases itself, and must be retrieved for input by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. This is solely for use for CI tests of the nf-core/module version of antiSMASH. + These files are normally downloaded/created by download-antismash-databases itself, and must be retrieved for input by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. This is solely for use for CI tests of the nf-core/module version of antiSMASH. Reason: Upon execution, the tool checks if certain database files are present within the container and if not, it tries to create them in /usr/local/bin, for which only root user has write permissions. Mounting those database files with this module prevents the tool from trying to create them. + These files are also emitted as output channels in this module to enable the antismash-lite module to use them as mount volumes to the docker/singularity containers. */ containerOptions { @@ -26,6 +27,9 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { output: path("antismash_db") , emit: database + path("css"), emit: css_dir + path("detection"), emit: detection_dir + path("modules"), emit: modules_dir path "versions.yml", emit: versions when: diff --git a/modules/antismash/antismashlitedownloaddatabases/meta.yml b/modules/antismash/antismashlitedownloaddatabases/meta.yml index ad393bae..9e95957a 100644 --- a/modules/antismash/antismashlitedownloaddatabases/meta.yml +++ b/modules/antismash/antismashlitedownloaddatabases/meta.yml @@ -27,17 +27,17 @@ input: - database_css: type: directory description: | - antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by ther use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. pattern: "css" - database_detection: type: directory description: | - antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. pattern: "detection" - database_modules: type: directory description: | - antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. pattern: "modules" output: @@ -50,6 +50,21 @@ output: type: directory description: Download directory for antiSMASH databases pattern: "antismash_db" + - css_dir: + type: directory + description: | + antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "css" + - detection_dir: + type: directory + description: | + antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "detection" + - modules_dir: + type: directory + description: | + antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "modules" authors: - "@jasmezz" diff --git a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml index 3493bb4b..808e3b7e 100644 --- a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml +++ b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml @@ -1,14 +1,23 @@ - name: antismash antismashlitedownloaddatabases test_antismash_antismashlitedownloaddatabases command: nextflow run tests/modules/antismash/antismashlitedownloaddatabases -entry test_antismash_antismashlitedownloaddatabases -c tests/config/nextflow.config tags: - - antismash/antismashlitedownloaddatabases - antismash + - antismash/antismashlitedownloaddatabases files: - path: output/antismash/versions.yml md5sum: e2656c8d2bcc7469eba40eb1ee5c91b3 + - path: output/untar1/versions.yml + md5sum: b724089c7a3b22557626e3d6cf79884d + - path: output/untar2/versions.yml + md5sum: 7182a024e050e5fb6b8830930e551adc + - path: output/untar3/versions.yml + md5sum: d27a9b44dd969d74d237e52ac89bd8e5 - path: output/antismash/antismash_db - path: output/antismash/antismash_db/clusterblast - path: output/antismash/antismash_db/clustercompare - path: output/antismash/antismash_db/pfam - path: output/antismash/antismash_db/resfam - path: output/antismash/antismash_db/tigrfam + - path: output/antismash/css + - path: output/antismash/detection + - path: output/antismash/modules From cc05006dbb3896cdfd65a42b9b7000e58e2a6c0a Mon Sep 17 00:00:00 2001 From: jasmezz Date: Tue, 26 Apr 2022 17:15:41 +0200 Subject: [PATCH 238/592] Update antismashlite module main.nf --- tests/modules/antismash/antismashlite/main.nf | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index 19e3b5f8..14bb7552 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -10,32 +10,32 @@ include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/anti include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' include { PROKKA } from '../../../modules/prokka/main.nf' -// workflow test_antismashlite { -// input = [ -// [ id:'test' ], // meta map -// file(params.test_data['bacteroides_fragilis']['genome']['genome_gbff_gz'], checkIfExists: true) ] +workflow test_antismashlite { + input = [ + [ id:'test' ], // meta map + file(params.test_data['bacteroides_fragilis']['genome']['genome_gbff_gz'], checkIfExists: true) ] -// input_antismash_db1 = [ -// [], -// file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) -// ] + input_antismash_db1 = [ + [], + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) + ] -// input_antismash_db2 = [ -// [], -// file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) -// ] + input_antismash_db2 = [ + [], + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) + ] -// input_antismash_db3 = [ -// [], -// file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) -// ] + input_antismash_db3 = [ + [], + file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) + ] -// UNTAR1 ( input_antismash_db1 ) -// UNTAR2 ( input_antismash_db2 ) -// UNTAR3 ( input_antismash_db3 ) -// ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) -// ANTISMASH_ANTISMASHLITE ( input, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) -//} + UNTAR1 ( input_antismash_db1 ) + UNTAR2 ( input_antismash_db2 ) + UNTAR3 ( input_antismash_db3 ) + ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) + ANTISMASH_ANTISMASHLITE ( input, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) +} workflow test_prokka_antismashlite { input_gunzip = [ [ id:'test' ], // meta map From 85ec13ff1fc2196c5a507ea497de468101baabed Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Tue, 26 Apr 2022 19:15:24 +0100 Subject: [PATCH 239/592] Add Trimgalore output for unpaired reads (#1568) * Add Trimgalore output for unpaired reads * Use glob instead of outprefix --- modules/trimgalore/main.nf | 13 ++++++++----- modules/trimgalore/meta.yml | 5 +++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/modules/trimgalore/main.nf b/modules/trimgalore/main.nf index 9487c799..3a3fca90 100644 --- a/modules/trimgalore/main.nf +++ b/modules/trimgalore/main.nf @@ -11,12 +11,13 @@ process TRIMGALORE { tuple val(meta), path(reads) output: - tuple val(meta), path("*.fq.gz") , emit: reads - tuple val(meta), path("*report.txt"), emit: log - path "versions.yml" , emit: versions + tuple val(meta), path("*{trimmed,val}*.fq.gz"), emit: reads + tuple val(meta), path("*report.txt") , emit: log + path "versions.yml" , emit: versions - tuple val(meta), path("*.html"), emit: html optional true - tuple val(meta), path("*.zip") , emit: zip optional true + tuple val(meta), path("*unpaired*.fq.gz") , emit: unpaired, optional: true + tuple val(meta), path("*.html") , emit: html , optional: true + tuple val(meta), path("*.zip") , emit: zip , optional: true when: task.ext.when == null || task.ext.when @@ -52,6 +53,7 @@ process TRIMGALORE { $c_r1 \\ $tpc_r1 \\ ${prefix}.fastq.gz + cat <<-END_VERSIONS > versions.yml "${task.process}": trimgalore: \$(echo \$(trim_galore --version 2>&1) | sed 's/^.*version //; s/Last.*\$//') @@ -73,6 +75,7 @@ process TRIMGALORE { $tpc_r2 \\ ${prefix}_1.fastq.gz \\ ${prefix}_2.fastq.gz + cat <<-END_VERSIONS > versions.yml "${task.process}": trimgalore: \$(echo \$(trim_galore --version 2>&1) | sed 's/^.*version //; s/Last.*\$//') diff --git a/modules/trimgalore/meta.yml b/modules/trimgalore/meta.yml index e99a8833..439f566d 100644 --- a/modules/trimgalore/meta.yml +++ b/modules/trimgalore/meta.yml @@ -37,6 +37,11 @@ output: List of input adapter trimmed FastQ files of size 1 and 2 for single-end and paired-end data, respectively. pattern: "*.{fq.gz}" + - unpaired: + type: file + description: | + FastQ files containing unpaired reads from read 1 or read 2 + pattern: "*unpaired*.fq.gz" - html: type: file description: FastQC report (optional) From 259f993df79e0e45f2b4709053a8b121ea09967b Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Wed, 27 Apr 2022 10:06:58 +0200 Subject: [PATCH 240/592] Update tool name --- modules/antismash/antismashlite/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf index 645e389f..6f1c0fcd 100644 --- a/modules/antismash/antismashlite/main.nf +++ b/modules/antismash/antismashlite/main.nf @@ -63,7 +63,7 @@ process ANTISMASH_ANTISMASHLITE { cat <<-END_VERSIONS > versions.yml "${task.process}": - antismash: \$(antismash --version | sed 's/antiSMASH //') + antismash-lite: \$(antismash --version | sed 's/antiSMASH //') END_VERSIONS """ } From d79433dcac78aa231f21177a3d69fde3cceb1cec Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Wed, 27 Apr 2022 10:08:07 +0200 Subject: [PATCH 241/592] Apply suggestions from code review Co-authored-by: James A. Fellows Yates --- modules/antismash/antismashlitedownloaddatabases/meta.yml | 2 +- .../antismash/antismashlitedownloaddatabases/test.yml | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/modules/antismash/antismashlitedownloaddatabases/meta.yml b/modules/antismash/antismashlitedownloaddatabases/meta.yml index 9e95957a..619dc8c2 100644 --- a/modules/antismash/antismashlitedownloaddatabases/meta.yml +++ b/modules/antismash/antismashlitedownloaddatabases/meta.yml @@ -27,7 +27,7 @@ input: - database_css: type: directory description: | - antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by ther use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. pattern: "css" - database_detection: type: directory diff --git a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml index 808e3b7e..ac38eee3 100644 --- a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml +++ b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml @@ -6,12 +6,6 @@ files: - path: output/antismash/versions.yml md5sum: e2656c8d2bcc7469eba40eb1ee5c91b3 - - path: output/untar1/versions.yml - md5sum: b724089c7a3b22557626e3d6cf79884d - - path: output/untar2/versions.yml - md5sum: 7182a024e050e5fb6b8830930e551adc - - path: output/untar3/versions.yml - md5sum: d27a9b44dd969d74d237e52ac89bd8e5 - path: output/antismash/antismash_db - path: output/antismash/antismash_db/clusterblast - path: output/antismash/antismash_db/clustercompare From 31547edc1e2491c16c00ffff4ed34de193f72b65 Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Wed, 27 Apr 2022 10:14:14 +0200 Subject: [PATCH 242/592] Update tool name --- modules/antismash/antismashlitedownloaddatabases/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/antismash/antismashlitedownloaddatabases/main.nf b/modules/antismash/antismashlitedownloaddatabases/main.nf index 2154bafa..72314eee 100644 --- a/modules/antismash/antismashlitedownloaddatabases/main.nf +++ b/modules/antismash/antismashlitedownloaddatabases/main.nf @@ -44,7 +44,7 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { cat <<-END_VERSIONS > versions.yml "${task.process}": - antismash: \$(antismash --version | sed 's/antiSMASH //') + antismash-lite: \$(antismash --version | sed 's/antiSMASH //') END_VERSIONS """ } From 024c992ca77d6bf5e4baddae30a38cd14d526042 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 27 Apr 2022 11:12:58 +0200 Subject: [PATCH 243/592] created the module --- modules/vardictjava/main.nf | 77 +++++++++++++++++++++++ modules/vardictjava/meta.yml | 51 +++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/vardictjava/main.nf | 15 +++++ tests/modules/vardictjava/nextflow.config | 8 +++ tests/modules/vardictjava/test.yml | 12 ++++ 6 files changed, 167 insertions(+) create mode 100644 modules/vardictjava/main.nf create mode 100644 modules/vardictjava/meta.yml create mode 100644 tests/modules/vardictjava/main.nf create mode 100644 tests/modules/vardictjava/nextflow.config create mode 100644 tests/modules/vardictjava/test.yml diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf new file mode 100644 index 00000000..d52e15dd --- /dev/null +++ b/modules/vardictjava/main.nf @@ -0,0 +1,77 @@ +// TODO nf-core: If in doubt look at other nf-core/modules to see how we are doing things! :) +// https://github.com/nf-core/modules/tree/master/modules +// You can also ask for help via your pull request or on the #modules channel on the nf-core Slack workspace: +// https://nf-co.re/join +// TODO nf-core: A module file SHOULD only define input and output files as command-line parameters. +// All other parameters MUST be provided using the "task.ext" directive, see here: +// https://www.nextflow.io/docs/latest/process.html#ext +// where "task.ext" is a string. +// Any parameters that need to be evaluated in the context of a particular sample +// e.g. single-end/paired-end data MUST also be defined and evaluated appropriately. +// TODO nf-core: Software that can be piped together SHOULD be added to separate module files +// unless there is a run-time, storage advantage in implementing in this way +// e.g. it's ok to have a single module for bwa to output BAM instead of SAM: +// bwa mem | samtools view -B -T ref.fasta +// TODO nf-core: Optional inputs are not currently supported by Nextflow. However, using an empty +// list (`[]`) instead of a file can be used to work around this issue. + +process VARDICTJAVA { + tag "$meta.id" + label 'process_medium' + + // TODO nf-core: List required Conda package(s). + // Software MUST be pinned to channel (i.e. "bioconda"), version (i.e. "1.10"). + // For Conda, the build (i.e. "h9402c20_2") must be EXCLUDED to support installation on different operating systems. + // TODO nf-core: See section in main README for further information regarding finding and adding container addresses to the section below. + conda (params.enable_conda ? "bioconda::vardict-java=1.8.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/vardict-java:1.8.3--hdfd78af_0': + 'quay.io/biocontainers/vardict-java:1.8.3--hdfd78af_0' }" + + input: + // TODO nf-core: Where applicable all sample-specific information e.g. "id", "single_end", "read_group" + // MUST be provided as an input via a Groovy Map called "meta". + // This information may not be required in some instances e.g. indexing reference genome files: + // https://github.com/nf-core/modules/blob/master/modules/bwa/index/main.nf + // TODO nf-core: Where applicable please provide/convert compressed files as input/output + // e.g. "*.fastq.gz" and NOT "*.fastq", "*.bam" and NOT "*.sam" etc. + tuple val(meta), path(bam) + path(reference_fasta) + path(regions_of_interest) + + output: + // TODO nf-core: Named file extensions MUST be emitted for ALL output channels + tuple val(meta), path("*.bam"), emit: bam + // TODO nf-core: List additional required output channels/values here + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + // TODO nf-core: Where possible, a command MUST be provided to obtain the version number of the software e.g. 1.10 + // If the software is unable to output a version number on the command-line then it can be manually specified + // e.g. https://github.com/nf-core/modules/blob/master/modules/homer/annotatepeaks/main.nf + // Each software used MUST provide the software name and version number in the YAML version file (versions.yml) + // TODO nf-core: It MUST be possible to pass additional parameters to the tool as a command-line string via the "task.ext.args" directive + // TODO nf-core: If the tool supports multi-threading then you MUST provide the appropriate parameter + // using the Nextflow "task" variable e.g. "--threads $task.cpus" + // TODO nf-core: Please replace the example samtools command below with your module's command + // TODO nf-core: Please indent the command appropriately (4 spaces!!) to help with readability ;) + """ + vardict-java \\ + $args \\ + -b $bam \\ + -th $task.cpus \\ + -n $prefix \\ + -G $reference_fasta \\ + $regions_of_interest \\ + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + vardictjava: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) + END_VERSIONS + """ +} diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml new file mode 100644 index 00000000..e8c55de3 --- /dev/null +++ b/modules/vardictjava/meta.yml @@ -0,0 +1,51 @@ +name: "vardictjava" +## TODO nf-core: Add a description of the module and list keywords +description: write your description here +keywords: + - sort +tools: + - "vardictjava": + ## TODO nf-core: Add a description and other details for the software below + description: "Java port of the VarDict variant discovery program" + homepage: "None" + documentation: "None" + tool_dev_url: "None" + doi: "" + licence: "['MIT']" + +## TODO nf-core: Add a description of all of the variables used as input +input: + # Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + # + ## TODO nf-core: Delete / customise this example input + - bam: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +## TODO nf-core: Add a description of all of the variables used as output +output: + #Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + # + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + ## TODO nf-core: Delete / customise this example output + - bam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +authors: + - "@nvnieuwk" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 4d8ce0b5..8ca9f2e2 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1908,6 +1908,10 @@ unzip: - modules/unzip/** - tests/modules/unzip/** +vardictjava: + - modules/vardictjava/** + - tests/modules/vardictjava/** + variantbam: - modules/variantbam/** - tests/modules/variantbam/** diff --git a/tests/modules/vardictjava/main.nf b/tests/modules/vardictjava/main.nf new file mode 100644 index 00000000..8a714b2b --- /dev/null +++ b/tests/modules/vardictjava/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { VARDICTJAVA } from '../../../modules/vardictjava/main.nf' + +workflow test_vardictjava { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + VARDICTJAVA ( input ) +} diff --git a/tests/modules/vardictjava/nextflow.config b/tests/modules/vardictjava/nextflow.config new file mode 100644 index 00000000..5dc176a9 --- /dev/null +++ b/tests/modules/vardictjava/nextflow.config @@ -0,0 +1,8 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: VARDICTJAVA { + ext.args = '' + } +} \ No newline at end of file diff --git a/tests/modules/vardictjava/test.yml b/tests/modules/vardictjava/test.yml new file mode 100644 index 00000000..73c647af --- /dev/null +++ b/tests/modules/vardictjava/test.yml @@ -0,0 +1,12 @@ +## TODO nf-core: Please run the following command to build this file: +# nf-core modules create-test-yml vardictjava +- name: "vardictjava" + command: nextflow run ./tests/modules/vardictjava -entry test_vardictjava -c ./tests/config/nextflow.config -c ./tests/modules/vardictjava/nextflow.config + tags: + - "vardictjava" + # + files: + - path: "output/vardictjava/test.bam" + md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/vardictjava/versions.yml + md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b From d57664b576d2433deed1b0fb742f3a3da05d5046 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 27 Apr 2022 11:18:58 +0200 Subject: [PATCH 244/592] cleanup TODO's --- modules/vardictjava/main.nf | 39 +------------------------------------ 1 file changed, 1 insertion(+), 38 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index d52e15dd..80beb540 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -1,48 +1,19 @@ -// TODO nf-core: If in doubt look at other nf-core/modules to see how we are doing things! :) -// https://github.com/nf-core/modules/tree/master/modules -// You can also ask for help via your pull request or on the #modules channel on the nf-core Slack workspace: -// https://nf-co.re/join -// TODO nf-core: A module file SHOULD only define input and output files as command-line parameters. -// All other parameters MUST be provided using the "task.ext" directive, see here: -// https://www.nextflow.io/docs/latest/process.html#ext -// where "task.ext" is a string. -// Any parameters that need to be evaluated in the context of a particular sample -// e.g. single-end/paired-end data MUST also be defined and evaluated appropriately. -// TODO nf-core: Software that can be piped together SHOULD be added to separate module files -// unless there is a run-time, storage advantage in implementing in this way -// e.g. it's ok to have a single module for bwa to output BAM instead of SAM: -// bwa mem | samtools view -B -T ref.fasta -// TODO nf-core: Optional inputs are not currently supported by Nextflow. However, using an empty -// list (`[]`) instead of a file can be used to work around this issue. - process VARDICTJAVA { tag "$meta.id" label 'process_medium' - // TODO nf-core: List required Conda package(s). - // Software MUST be pinned to channel (i.e. "bioconda"), version (i.e. "1.10"). - // For Conda, the build (i.e. "h9402c20_2") must be EXCLUDED to support installation on different operating systems. - // TODO nf-core: See section in main README for further information regarding finding and adding container addresses to the section below. conda (params.enable_conda ? "bioconda::vardict-java=1.8.3" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/vardict-java:1.8.3--hdfd78af_0': 'quay.io/biocontainers/vardict-java:1.8.3--hdfd78af_0' }" input: - // TODO nf-core: Where applicable all sample-specific information e.g. "id", "single_end", "read_group" - // MUST be provided as an input via a Groovy Map called "meta". - // This information may not be required in some instances e.g. indexing reference genome files: - // https://github.com/nf-core/modules/blob/master/modules/bwa/index/main.nf - // TODO nf-core: Where applicable please provide/convert compressed files as input/output - // e.g. "*.fastq.gz" and NOT "*.fastq", "*.bam" and NOT "*.sam" etc. tuple val(meta), path(bam) path(reference_fasta) path(regions_of_interest) output: - // TODO nf-core: Named file extensions MUST be emitted for ALL output channels tuple val(meta), path("*.bam"), emit: bam - // TODO nf-core: List additional required output channels/values here path "versions.yml" , emit: versions when: @@ -51,15 +22,7 @@ process VARDICTJAVA { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - // TODO nf-core: Where possible, a command MUST be provided to obtain the version number of the software e.g. 1.10 - // If the software is unable to output a version number on the command-line then it can be manually specified - // e.g. https://github.com/nf-core/modules/blob/master/modules/homer/annotatepeaks/main.nf - // Each software used MUST provide the software name and version number in the YAML version file (versions.yml) - // TODO nf-core: It MUST be possible to pass additional parameters to the tool as a command-line string via the "task.ext.args" directive - // TODO nf-core: If the tool supports multi-threading then you MUST provide the appropriate parameter - // using the Nextflow "task" variable e.g. "--threads $task.cpus" - // TODO nf-core: Please replace the example samtools command below with your module's command - // TODO nf-core: Please indent the command appropriately (4 spaces!!) to help with readability ;) + """ vardict-java \\ $args \\ From 9108e2e2ec337978929cafc8d7cfedb656124786 Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Wed, 27 Apr 2022 12:22:05 +0200 Subject: [PATCH 245/592] Update test output checksum --- tests/modules/antismash/antismashlitedownloaddatabases/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml index ac38eee3..1079363c 100644 --- a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml +++ b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml @@ -5,7 +5,7 @@ - antismash/antismashlitedownloaddatabases files: - path: output/antismash/versions.yml - md5sum: e2656c8d2bcc7469eba40eb1ee5c91b3 + md5sum: 24859c67023abab99de295d3675a24b6 - path: output/antismash/antismash_db - path: output/antismash/antismash_db/clusterblast - path: output/antismash/antismash_db/clustercompare From 61e740f79cbb4538483e751ad82ca71c592f3079 Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Wed, 27 Apr 2022 12:40:04 +0200 Subject: [PATCH 246/592] Add antismash download DB: missing container folders as output channels (#1567) * Add missing container folders as output channels * Apply suggestions from code review Co-authored-by: James A. Fellows Yates * Update tool name * Update test output checksum Co-authored-by: James A. Fellows Yates --- .../antismashlitedownloaddatabases/main.nf | 8 +++++-- .../antismashlitedownloaddatabases/meta.yml | 21 ++++++++++++++++--- .../antismashlitedownloaddatabases/test.yml | 7 +++++-- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/modules/antismash/antismashlitedownloaddatabases/main.nf b/modules/antismash/antismashlitedownloaddatabases/main.nf index 1853d80a..72314eee 100644 --- a/modules/antismash/antismashlitedownloaddatabases/main.nf +++ b/modules/antismash/antismashlitedownloaddatabases/main.nf @@ -7,8 +7,9 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { 'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }" /* - These files are normally downloaded by download-antismash-databases itself, and must be retrieved for input by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. This is solely for use for CI tests of the nf-core/module version of antiSMASH. + These files are normally downloaded/created by download-antismash-databases itself, and must be retrieved for input by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. This is solely for use for CI tests of the nf-core/module version of antiSMASH. Reason: Upon execution, the tool checks if certain database files are present within the container and if not, it tries to create them in /usr/local/bin, for which only root user has write permissions. Mounting those database files with this module prevents the tool from trying to create them. + These files are also emitted as output channels in this module to enable the antismash-lite module to use them as mount volumes to the docker/singularity containers. */ containerOptions { @@ -26,6 +27,9 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { output: path("antismash_db") , emit: database + path("css"), emit: css_dir + path("detection"), emit: detection_dir + path("modules"), emit: modules_dir path "versions.yml", emit: versions when: @@ -40,7 +44,7 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { cat <<-END_VERSIONS > versions.yml "${task.process}": - antismash: \$(antismash --version | sed 's/antiSMASH //') + antismash-lite: \$(antismash --version | sed 's/antiSMASH //') END_VERSIONS """ } diff --git a/modules/antismash/antismashlitedownloaddatabases/meta.yml b/modules/antismash/antismashlitedownloaddatabases/meta.yml index ad393bae..619dc8c2 100644 --- a/modules/antismash/antismashlitedownloaddatabases/meta.yml +++ b/modules/antismash/antismashlitedownloaddatabases/meta.yml @@ -27,17 +27,17 @@ input: - database_css: type: directory description: | - antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. pattern: "css" - database_detection: type: directory description: | - antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. pattern: "detection" - database_modules: type: directory description: | - antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. pattern: "modules" output: @@ -50,6 +50,21 @@ output: type: directory description: Download directory for antiSMASH databases pattern: "antismash_db" + - css_dir: + type: directory + description: | + antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "css" + - detection_dir: + type: directory + description: | + antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "detection" + - modules_dir: + type: directory + description: | + antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + pattern: "modules" authors: - "@jasmezz" diff --git a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml index 3493bb4b..1079363c 100644 --- a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml +++ b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml @@ -1,14 +1,17 @@ - name: antismash antismashlitedownloaddatabases test_antismash_antismashlitedownloaddatabases command: nextflow run tests/modules/antismash/antismashlitedownloaddatabases -entry test_antismash_antismashlitedownloaddatabases -c tests/config/nextflow.config tags: - - antismash/antismashlitedownloaddatabases - antismash + - antismash/antismashlitedownloaddatabases files: - path: output/antismash/versions.yml - md5sum: e2656c8d2bcc7469eba40eb1ee5c91b3 + md5sum: 24859c67023abab99de295d3675a24b6 - path: output/antismash/antismash_db - path: output/antismash/antismash_db/clusterblast - path: output/antismash/antismash_db/clustercompare - path: output/antismash/antismash_db/pfam - path: output/antismash/antismash_db/resfam - path: output/antismash/antismash_db/tigrfam + - path: output/antismash/css + - path: output/antismash/detection + - path: output/antismash/modules From 7956d38e61a8efdd2fffcb6cf33f4a02ad73bc50 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 27 Apr 2022 13:18:46 +0200 Subject: [PATCH 247/592] Fixed the test on nextflow level --- modules/vardictjava/main.nf | 4 +-- modules/vardictjava/meta.yml | 46 ++++++++++++++++++------------ tests/modules/vardictjava/main.nf | 8 ++++-- tests/modules/vardictjava/test.yml | 2 +- 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 80beb540..8170bf76 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -13,7 +13,7 @@ process VARDICTJAVA { path(regions_of_interest) output: - tuple val(meta), path("*.bam"), emit: bam + tuple val(meta), path("*.vcf"), emit: vcf path "versions.yml" , emit: versions when: @@ -34,7 +34,7 @@ process VARDICTJAVA { cat <<-END_VERSIONS > versions.yml "${task.process}": - vardictjava: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//' )) + vardictjava: \$(echo 1.8.3) END_VERSIONS """ } diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index e8c55de3..7820a877 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -1,19 +1,19 @@ name: "vardictjava" -## TODO nf-core: Add a description of the module and list keywords -description: write your description here + +description: The Java port of the VarDict variant caller keywords: - - sort + - variant calling + - VarDict + - AstraZeneca tools: - "vardictjava": - ## TODO nf-core: Add a description and other details for the software below description: "Java port of the VarDict variant discovery program" - homepage: "None" - documentation: "None" - tool_dev_url: "None" - doi: "" + homepage: "https://github.com/AstraZeneca-NGS/VarDictJava" + documentation: "https://github.com/AstraZeneca-NGS/VarDictJava" + tool_dev_url: "https://github.com/AstraZeneca-NGS/VarDictJava" + doi: "10.1093/nar/gkw227 " licence: "['MIT']" -## TODO nf-core: Add a description of all of the variables used as input input: # Only when we have meta - meta: @@ -21,14 +21,22 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - # - ## TODO nf-core: Delete / customise this example input + - bam: type: file - description: BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" + description: BAM/SAM file + pattern: "*.{bam,sam}" + + - reference_fasta: + type: file + description: FASTA of the reference genome + pattern: "*.{fa,fasta}" + + - regions_of_interest: + type: file + description: BED with the regions of interest + pattern: "*.bed" -## TODO nf-core: Add a description of all of the variables used as output output: #Only when we have meta - meta: @@ -36,16 +44,16 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - # + - versions: type: file description: File containing software versions pattern: "versions.yml" - ## TODO nf-core: Delete / customise this example output - - bam: + + - vcf: type: file - description: Sorted BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" + description: VCF file output + pattern: "*.vcf" authors: - "@nvnieuwk" diff --git a/tests/modules/vardictjava/main.nf b/tests/modules/vardictjava/main.nf index 8a714b2b..7511b529 100644 --- a/tests/modules/vardictjava/main.nf +++ b/tests/modules/vardictjava/main.nf @@ -8,8 +8,12 @@ workflow test_vardictjava { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_bam'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] - VARDICTJAVA ( input ) + VARDICTJAVA ( + input, + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + ) } diff --git a/tests/modules/vardictjava/test.yml b/tests/modules/vardictjava/test.yml index 73c647af..001a56e8 100644 --- a/tests/modules/vardictjava/test.yml +++ b/tests/modules/vardictjava/test.yml @@ -6,7 +6,7 @@ - "vardictjava" # files: - - path: "output/vardictjava/test.bam" + - path: "output/vardictjava/test.vcf" md5sum: e667c7caad0bc4b7ac383fd023c654fc - path: output/vardictjava/versions.yml md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b From 10ca39a86f1b227a5535238d02398fec686eba72 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Wed, 27 Apr 2022 16:03:44 +0200 Subject: [PATCH 248/592] add intervals possibilities to splitncigarreads (#1571) --- modules/gatk4/splitncigarreads/main.nf | 4 +++- modules/gatk4/splitncigarreads/meta.yml | 7 +++++++ tests/modules/gatk4/splitncigarreads/main.nf | 18 +++++++++++++++++- tests/modules/gatk4/splitncigarreads/test.yml | 11 ++++++++++- 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/modules/gatk4/splitncigarreads/main.nf b/modules/gatk4/splitncigarreads/main.nf index f7c559d9..85e5daa8 100644 --- a/modules/gatk4/splitncigarreads/main.nf +++ b/modules/gatk4/splitncigarreads/main.nf @@ -8,7 +8,7 @@ process GATK4_SPLITNCIGARREADS { 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" input: - tuple val(meta), path(bam) + tuple val(meta), path(bam), path(bai), path(intervals) path fasta path fai path dict @@ -23,6 +23,7 @@ process GATK4_SPLITNCIGARREADS { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def interval_command = intervals ? "--intervals $intervals" : "" def avail_mem = 3 if (!task.memory) { @@ -35,6 +36,7 @@ process GATK4_SPLITNCIGARREADS { --input $bam \\ --output ${prefix}.bam \\ --reference $fasta \\ + $interval_command \\ --tmp-dir . \\ $args diff --git a/modules/gatk4/splitncigarreads/meta.yml b/modules/gatk4/splitncigarreads/meta.yml index 407e80bd..76bfdcd3 100644 --- a/modules/gatk4/splitncigarreads/meta.yml +++ b/modules/gatk4/splitncigarreads/meta.yml @@ -23,6 +23,13 @@ input: type: list description: BAM/SAM/CRAM file containing reads pattern: "*.{bam,sam,cram}" + - bai: + type: list + description: BAI/SAI/CRAI index file (optional) + pattern: "*.{bai,sai,crai}" + - intervals: + type: file + description: Bed file with the genomic regions included in the library (optional) - fasta: type: file description: The reference fasta file diff --git a/tests/modules/gatk4/splitncigarreads/main.nf b/tests/modules/gatk4/splitncigarreads/main.nf index 7e5b7c9a..31e45cec 100644 --- a/tests/modules/gatk4/splitncigarreads/main.nf +++ b/tests/modules/gatk4/splitncigarreads/main.nf @@ -6,7 +6,23 @@ include { GATK4_SPLITNCIGARREADS } from '../../../../modules/gatk4/splitncigarre workflow test_gatk4_splitncigarreads { input = [ [ id:'test' ], // meta map - [ file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) ] + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true), + [], + [] + ] + + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + + GATK4_SPLITNCIGARREADS ( input, fasta, fai, dict ) +} + +workflow test_gatk4_splitncigarreads_intervals { + input = [ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['sarscov2']['genome']['test_bed'], checkIfExists: true) ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) diff --git a/tests/modules/gatk4/splitncigarreads/test.yml b/tests/modules/gatk4/splitncigarreads/test.yml index c38064e2..d9a58901 100644 --- a/tests/modules/gatk4/splitncigarreads/test.yml +++ b/tests/modules/gatk4/splitncigarreads/test.yml @@ -5,5 +5,14 @@ - gatk4/splitncigarreads files: - path: output/gatk4/test.bam - md5sum: ceed15c0bd64ff5c38d3816905933b0b + md5sum: 436d8e31285c6b588bdd1c7f1d07f6f2 + - path: output/gatk4/versions.yml +- name: gatk4 splitncigarreads test_gatk4_splitncigarreads_intervals + command: nextflow run tests/modules/gatk4/splitncigarreads -entry test_gatk4_splitncigarreads_intervals -c tests/config/nextflow.config + tags: + - gatk4 + - gatk4/splitncigarreads + files: + - path: output/gatk4/test.bam + md5sum: cd56e3225950f519fd47164cca60a0bb - path: output/gatk4/versions.yml From 213403187932dbbdd936a04474cc8cd8abae7a08 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Wed, 27 Apr 2022 18:15:11 +0100 Subject: [PATCH 249/592] Bump SAMtools version for custom/getchromsizes (#1572) --- modules/custom/getchromsizes/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/custom/getchromsizes/main.nf b/modules/custom/getchromsizes/main.nf index bbcfa9be..0eabf3a4 100644 --- a/modules/custom/getchromsizes/main.nf +++ b/modules/custom/getchromsizes/main.nf @@ -2,10 +2,10 @@ process CUSTOM_GETCHROMSIZES { tag "$fasta" label 'process_low' - conda (params.enable_conda ? "bioconda::samtools=1.15" : null) + conda (params.enable_conda ? "bioconda::samtools=1.15.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.15--h1170115_1' : - 'quay.io/biocontainers/samtools:1.15--h1170115_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.15.1--h1170115_0' : + 'quay.io/biocontainers/samtools:1.15.1--h1170115_0' }" input: path fasta From 1b5d3f5ac2ae61ee35dece20a2aeb8018b6438ce Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Wed, 27 Apr 2022 19:21:26 +0100 Subject: [PATCH 250/592] Bump STAR version to 2.7.10a for RSEM modules (#1573) * Bump STAR version to 2.7.10a for RSEM modules * Fix tests --- modules/rsem/calculateexpression/main.nf | 6 +++--- modules/rsem/preparereference/main.nf | 6 +++--- tests/config/test_data.config | 4 ++-- tests/modules/rsem/calculateexpression/test.yml | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/rsem/calculateexpression/main.nf b/modules/rsem/calculateexpression/main.nf index cf147a63..1ab3a635 100644 --- a/modules/rsem/calculateexpression/main.nf +++ b/modules/rsem/calculateexpression/main.nf @@ -2,10 +2,10 @@ process RSEM_CALCULATEEXPRESSION { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::rsem=1.3.3 bioconda::star=2.7.6a" : null) + conda (params.enable_conda ? "bioconda::rsem=1.3.3 bioconda::star=2.7.10a" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-cf0123ef83b3c38c13e3b0696a3f285d3f20f15b:606b713ec440e799d53a2b51a6e79dbfd28ecf3e-0' : - 'quay.io/biocontainers/mulled-v2-cf0123ef83b3c38c13e3b0696a3f285d3f20f15b:606b713ec440e799d53a2b51a6e79dbfd28ecf3e-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-cf0123ef83b3c38c13e3b0696a3f285d3f20f15b:64aad4a4e144878400649e71f42105311be7ed87-0' : + 'quay.io/biocontainers/mulled-v2-cf0123ef83b3c38c13e3b0696a3f285d3f20f15b:64aad4a4e144878400649e71f42105311be7ed87-0' }" input: tuple val(meta), path(reads) diff --git a/modules/rsem/preparereference/main.nf b/modules/rsem/preparereference/main.nf index 2d2ca205..da11be45 100644 --- a/modules/rsem/preparereference/main.nf +++ b/modules/rsem/preparereference/main.nf @@ -2,10 +2,10 @@ process RSEM_PREPAREREFERENCE { tag "$fasta" label 'process_high' - conda (params.enable_conda ? "bioconda::rsem=1.3.3 bioconda::star=2.7.6a" : null) + conda (params.enable_conda ? "bioconda::rsem=1.3.3 bioconda::star=2.7.10a" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-cf0123ef83b3c38c13e3b0696a3f285d3f20f15b:606b713ec440e799d53a2b51a6e79dbfd28ecf3e-0' : - 'quay.io/biocontainers/mulled-v2-cf0123ef83b3c38c13e3b0696a3f285d3f20f15b:606b713ec440e799d53a2b51a6e79dbfd28ecf3e-0' }" + 'https://depot.galaxyproject.org/singularity/mulled-v2-cf0123ef83b3c38c13e3b0696a3f285d3f20f15b:64aad4a4e144878400649e71f42105311be7ed87-0' : + 'quay.io/biocontainers/mulled-v2-cf0123ef83b3c38c13e3b0696a3f285d3f20f15b:64aad4a4e144878400649e71f42105311be7ed87-0' }" input: path fasta, stageAs: "rsem/*" diff --git a/tests/config/test_data.config b/tests/config/test_data.config index f6ea242d..b3171a51 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -245,8 +245,8 @@ params { test2_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2_2.fastq.gz" test2_umi_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2.umi_1.fastq.gz" test2_umi_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2.umi_2.fastq.gz" - test_rnaseq_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test.rnaseq_1.fastq.gz" - test_rnaseq_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test.rnaseq_2.fastq.gz" + test_rnaseq_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz" + test_rnaseq_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz" test_baserecalibrator_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test.baserecalibrator.table" test2_baserecalibrator_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test2.baserecalibrator.table" diff --git a/tests/modules/rsem/calculateexpression/test.yml b/tests/modules/rsem/calculateexpression/test.yml index f19c3398..b0251de9 100644 --- a/tests/modules/rsem/calculateexpression/test.yml +++ b/tests/modules/rsem/calculateexpression/test.yml @@ -42,7 +42,7 @@ - path: output/rsem/rsem/genome.transcripts.fa md5sum: 050c521a2719c2ae48267c1e65218f29 - path: output/rsem/rsem/genomeParameters.txt - md5sum: 2fe3a030e1706c3e8cd4df3818e6dd2f + md5sum: df5a456e3242520cc36e0083a6a7d9dd - path: output/rsem/rsem/sjdbInfo.txt md5sum: 5690ea9d9f09f7ff85b7fd47bd234903 - path: output/rsem/rsem/sjdbList.fromGTF.out.tab @@ -63,4 +63,4 @@ - path: output/rsem/test.stat/test.theta md5sum: de2e4490c98cc5383a86ae8225fd0a28 - path: output/rsem/test.transcript.bam - md5sum: 7846491086c478858419667d60f18edd + md5sum: ed681d39f5700ffc74d6321525330d93 From a5e7943f2be542cd186abbed45fb522546605dd8 Mon Sep 17 00:00:00 2001 From: Simone Carpanzano <96130486+carpanz@users.noreply.github.com> Date: Wed, 27 Apr 2022 22:43:31 +0200 Subject: [PATCH 251/592] update krona module add "$args" to the module --- modules/krona/kronadb/main.nf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/krona/kronadb/main.nf b/modules/krona/kronadb/main.nf index afcb0694..3ba745a2 100644 --- a/modules/krona/kronadb/main.nf +++ b/modules/krona/kronadb/main.nf @@ -18,7 +18,9 @@ process KRONA_KRONADB { script: def args = task.ext.args ?: '' """ - ktUpdateTaxonomy.sh taxonomy + ktUpdateTaxonomy.sh \\ + $args \\ + taxonomy cat <<-END_VERSIONS > versions.yml "${task.process}": From 839ee59ca1646d055dced78125d88d8a864cf651 Mon Sep 17 00:00:00 2001 From: jvhagey Date: Wed, 27 Apr 2022 18:01:28 -0400 Subject: [PATCH 252/592] adding srst2 module --- modules/srst2/srst2/main.nf | 47 ++++++++++++++++ modules/srst2/srst2/meta.yml | 68 +++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/srst2/srst2/main.nf | 28 ++++++++++ tests/modules/srst2/srst2/nextflow.config | 5 ++ tests/modules/srst2/srst2/test.yml | 29 ++++++++++ 6 files changed, 181 insertions(+) create mode 100644 modules/srst2/srst2/main.nf create mode 100644 modules/srst2/srst2/meta.yml create mode 100644 tests/modules/srst2/srst2/main.nf create mode 100644 tests/modules/srst2/srst2/nextflow.config create mode 100644 tests/modules/srst2/srst2/test.yml diff --git a/modules/srst2/srst2/main.nf b/modules/srst2/srst2/main.nf new file mode 100644 index 00000000..fc665fad --- /dev/null +++ b/modules/srst2/srst2/main.nf @@ -0,0 +1,47 @@ +process SRST2_SRST2 { + tag "${meta.id}" + label 'process_low' + + conda (params.enable_conda ? "bioconda::srst2=0.2.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/srst2%3A0.2.0--py_4': + 'quay.io/biocontainers/srst2:0.2.0--py_4'}" + + input: + tuple val(meta), path(fastq_s), path(db) + + output: + tuple val(meta), path("*_genes_*_results.txt") , emit: gene_results + tuple val(meta), path("*_fullgenes_*_results.txt") , optional:true, emit: fullgene_results + tuple val(meta), path("*.pileup") , emit: pileup + tuple val(meta), path("*.sorted.bam") , emit: sorted_bam + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: "" + def prefix = task.ext.prefix ?: "${meta.id}" + def read_s = meta.single_end ? "--input_se ${fastq_s}" : "--input_pe ${fastq_s[0]} ${fastq_s[1]}" + if (meta.db=="gene") { + database = "--gene_db ${db}" + } else if (meta.db=="mlst") { + database = "--mlst_db ${db}" + } else { + return + } + """ + srst2 \\ + ${read_s} \\ + --threads $task.cpus \\ + --output ${prefix} \\ + ${database} \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + srst2: \$(echo \$(srst2 --version 2>&1) | sed 's/srst2 //' )) + END_VERSIONS + """ +} diff --git a/modules/srst2/srst2/meta.yml b/modules/srst2/srst2/meta.yml new file mode 100644 index 00000000..2c44f53d --- /dev/null +++ b/modules/srst2/srst2/meta.yml @@ -0,0 +1,68 @@ +name: srst2_srst2 +description: | + Short Read Sequence Typing for Bacterial Pathogens is a program designed to take Illumina sequence data, + a MLST database and/or a database of gene sequences (e.g. resistance genes, virulence genes, etc) + and report the presence of STs and/or reference genes. +keywords: + - mlst + - typing + - illumina +tools: + - srst2: + description: "Short Read Sequence Typing for Bacterial Pathogens" + homepage: {http://katholt.github.io/srst2/} + documentation: {https://github.com/katholt/srst2/blob/master/README.md} + tool_dev_url: {https://github.com/katholt/srst2} + doi: "" + licence: ['BSD'] + +input: + - meta: + type: map0.2.0-4 + description: | + Groovy Map containing sample information + id: should be the identification number or sample name + single_end: should be true for single end data and false for paired in data + db: should be either 'gene' to use the --gene_db option or "mlst" to use the --mlst_db option + e.g. [ id:'sample', single_end:false , db:'gene'] + - fasta: + type: file + description: | + gzipped fasta file. If files are NOT in + MiSeq format sample_S1_L001_R1_001.fastq.gz uses --forward and --reverse parameters; otherwise + default is _1, i.e. expect forward reads as sample_1.fastq.gz). + pattern: "*.fastq.gz" + - db: + type: file + description: Database in FASTA format + pattern: "*.fasta" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'sample', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - txt: + type: file + description: results text file + pattern: "*_fullgenes_*_results.txt" + - txt: + type: file + description: results text file + pattern: "*_genes_*_results.txt" + - bam: + type: file + description: Sorted BAM file + pattern: "*.sorted.bam" + - pileup: + type: file + description: SAMtools pileup file + pattern: "*.pileup" + +authors: + - "@jvhagey" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 4d8ce0b5..66f50903 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1767,6 +1767,10 @@ sratools/prefetch: - modules/sratools/prefetch/** - tests/modules/sratools/prefetch/** +srst2/srst2: + - modules/srst2/srst2/** + - tests/modules/srst2/srst2/** + ssuissero: - modules/ssuissero/** - tests/modules/ssuissero/** diff --git a/tests/modules/srst2/srst2/main.nf b/tests/modules/srst2/srst2/main.nf new file mode 100644 index 00000000..235f3ff9 --- /dev/null +++ b/tests/modules/srst2/srst2/main.nf @@ -0,0 +1,28 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SRST2_SRST2 } from '../../../../modules/srst2/srst2/main.nf' + +workflow test_srst2_srst2_paired_end { + + input = [ + [ id:'test', single_end:false, db:"gene"], // meta map + [ file(params.test_data['bacteroides_fragilis']['illumina']['test1_1_fastq_gz'], checkIfExists: true), + file(params.test_data['bacteroides_fragilis']['illumina']['test1_2_fastq_gz'], checkIfExists: true) ], + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/srst2/resFinder_20180221_srst2.fasta') // Change to params.test_data syntax after the data is included in tests/config/test_data.config + ] + + SRST2_SRST2(input) +} + +workflow test_srst2_srst2_single_end { + + input = [ + [ id:'test', single_end:true, db:"gene" ], // meta map + file(params.test_data['bacteroides_fragilis']['illumina']['test1_1_fastq_gz'], checkIfExists: true), + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/srst2/resFinder_20180221_srst2.fasta') // Change to params.test_data syntax after the data is included in tests/config/test_data.config + ] + + SRST2_SRST2(input) +} \ No newline at end of file diff --git a/tests/modules/srst2/srst2/nextflow.config b/tests/modules/srst2/srst2/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/srst2/srst2/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml new file mode 100644 index 00000000..7afd0687 --- /dev/null +++ b/tests/modules/srst2/srst2/test.yml @@ -0,0 +1,29 @@ +- name: srst2 srst2 test_srst2_srst2_paired_end + command: nextflow run tests/modules/srst2/srst2 -entry test_srst2_srst2_paired_end -c tests/config/nextflow.config + tags: + - srst2/srst2 + - srst2 + files: + - path: /tmp/tmp03v2z3fu/srst2/test__genes__resFinder_20180221_srst2__results.txt + md5sum: 099aa6cacec5524b311f606debdfb3a9 + - path: /tmp/tmp03v2z3fu/srst2/test__test1.resFinder_20180221_srst2.pileup + md5sum: 64b512ff495b828c456405ec7b676ad1 + - path: /tmp/tmp03v2z3fu/srst2/test__test1.resFinder_20180221_srst2.sorted.bam + - path: /tmp/tmp03v2z3fu/srst2/versions.yml + md5sum: b446a70f1a2b4f60757829bcd744a214 + +- name: srst2 srst2 test_srst2_srst2_single_end + command: nextflow run tests/modules/srst2/srst2 -entry test_srst2_srst2_single_end -c tests/config/nextflow.config + tags: + - srst2/srst2 + - srst2 + files: + - path: /tmp/tmp3kabyta4/srst2/test__fullgenes__resFinder_20180221_srst2__results.txt + md5sum: d0762ef8c38afd0e0a34cce52ed1a3db + - path: /tmp/tmp3kabyta4/srst2/test__genes__resFinder_20180221_srst2__results.txt + md5sum: b8850c6644406d8b131e471ecc3f9013 + - path: /tmp/tmp3kabyta4/srst2/test__test1_1.resFinder_20180221_srst2.pileup + md5sum: 5f6279dc8124aa762a9dfe3d7a871277 + - path: /tmp/tmp3kabyta4/srst2/test__test1_1.resFinder_20180221_srst2.sorted.bam + - path: /tmp/tmp3kabyta4/srst2/versions.yml + md5sum: 790fe00493c6634d17801a930073218b From a575b91254480f964aa4e105f8fab09d0ecd8451 Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Wed, 27 Apr 2022 19:54:33 -0400 Subject: [PATCH 253/592] Update test.yml --- tests/modules/srst2/srst2/test.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml index 7afd0687..f7d058de 100644 --- a/tests/modules/srst2/srst2/test.yml +++ b/tests/modules/srst2/srst2/test.yml @@ -1,29 +1,29 @@ - name: srst2 srst2 test_srst2_srst2_paired_end command: nextflow run tests/modules/srst2/srst2 -entry test_srst2_srst2_paired_end -c tests/config/nextflow.config tags: - - srst2/srst2 - srst2 + - srst2/srst2 files: - - path: /tmp/tmp03v2z3fu/srst2/test__genes__resFinder_20180221_srst2__results.txt + - path: /tmp/tmpsqtj3g4l/srst2/test__genes__resFinder_20180221_srst2__results.txt md5sum: 099aa6cacec5524b311f606debdfb3a9 - - path: /tmp/tmp03v2z3fu/srst2/test__test1.resFinder_20180221_srst2.pileup + - path: /tmp/tmpsqtj3g4l/srst2/test__test1.resFinder_20180221_srst2.pileup md5sum: 64b512ff495b828c456405ec7b676ad1 - - path: /tmp/tmp03v2z3fu/srst2/test__test1.resFinder_20180221_srst2.sorted.bam - - path: /tmp/tmp03v2z3fu/srst2/versions.yml + - path: /tmp/tmpsqtj3g4l/srst2/test__test1.resFinder_20180221_srst2.sorted.bam + - path: /tmp/tmpsqtj3g4l/srst2/versions.yml md5sum: b446a70f1a2b4f60757829bcd744a214 - name: srst2 srst2 test_srst2_srst2_single_end command: nextflow run tests/modules/srst2/srst2 -entry test_srst2_srst2_single_end -c tests/config/nextflow.config tags: - - srst2/srst2 - srst2 + - srst2/srst2 files: - - path: /tmp/tmp3kabyta4/srst2/test__fullgenes__resFinder_20180221_srst2__results.txt + - path: /tmp/tmpo9au1v02/srst2/test__fullgenes__resFinder_20180221_srst2__results.txt md5sum: d0762ef8c38afd0e0a34cce52ed1a3db - - path: /tmp/tmp3kabyta4/srst2/test__genes__resFinder_20180221_srst2__results.txt + - path: /tmp/tmpo9au1v02/srst2/test__genes__resFinder_20180221_srst2__results.txt md5sum: b8850c6644406d8b131e471ecc3f9013 - - path: /tmp/tmp3kabyta4/srst2/test__test1_1.resFinder_20180221_srst2.pileup + - path: /tmp/tmpo9au1v02/srst2/test__test1_1.resFinder_20180221_srst2.pileup md5sum: 5f6279dc8124aa762a9dfe3d7a871277 - - path: /tmp/tmp3kabyta4/srst2/test__test1_1.resFinder_20180221_srst2.sorted.bam - - path: /tmp/tmp3kabyta4/srst2/versions.yml + - path: /tmp/tmpo9au1v02/srst2/test__test1_1.resFinder_20180221_srst2.sorted.bam + - path: /tmp/tmpo9au1v02/srst2/versions.yml md5sum: 790fe00493c6634d17801a930073218b From ecd31fd3cdc1646bb80e5b04a52cfc3e4666b18b Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Wed, 27 Apr 2022 19:55:42 -0400 Subject: [PATCH 254/592] remove whitespaces and prettier fix --- modules/srst2/srst2/meta.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/srst2/srst2/meta.yml b/modules/srst2/srst2/meta.yml index 2c44f53d..31cf4de0 100644 --- a/modules/srst2/srst2/meta.yml +++ b/modules/srst2/srst2/meta.yml @@ -1,7 +1,7 @@ name: srst2_srst2 description: | - Short Read Sequence Typing for Bacterial Pathogens is a program designed to take Illumina sequence data, - a MLST database and/or a database of gene sequences (e.g. resistance genes, virulence genes, etc) + Short Read Sequence Typing for Bacterial Pathogens is a program designed to take Illumina sequence data, + a MLST database and/or a database of gene sequences (e.g. resistance genes, virulence genes, etc) and report the presence of STs and/or reference genes. keywords: - mlst @@ -10,11 +10,11 @@ keywords: tools: - srst2: description: "Short Read Sequence Typing for Bacterial Pathogens" - homepage: {http://katholt.github.io/srst2/} - documentation: {https://github.com/katholt/srst2/blob/master/README.md} - tool_dev_url: {https://github.com/katholt/srst2} + homepage: { http://katholt.github.io/srst2/ } + documentation: { https://github.com/katholt/srst2/blob/master/README.md } + tool_dev_url: { https://github.com/katholt/srst2 } doi: "" - licence: ['BSD'] + licence: ["BSD"] input: - meta: @@ -49,11 +49,11 @@ output: pattern: "versions.yml" - txt: type: file - description: results text file + description: results text file pattern: "*_fullgenes_*_results.txt" - txt: type: file - description: results text file + description: results text file pattern: "*_genes_*_results.txt" - bam: type: file From b0c5f9422bf4f48a6799b42e9302fe71c0e9bf0f Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Wed, 27 Apr 2022 20:21:41 -0400 Subject: [PATCH 255/592] tmp/ to changed to output/ --- tests/modules/srst2/srst2/test.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml index f7d058de..f011b4d1 100644 --- a/tests/modules/srst2/srst2/test.yml +++ b/tests/modules/srst2/srst2/test.yml @@ -4,12 +4,12 @@ - srst2 - srst2/srst2 files: - - path: /tmp/tmpsqtj3g4l/srst2/test__genes__resFinder_20180221_srst2__results.txt + - path: output/srst2/test__genes__resFinder_20180221_srst2__results.txt md5sum: 099aa6cacec5524b311f606debdfb3a9 - - path: /tmp/tmpsqtj3g4l/srst2/test__test1.resFinder_20180221_srst2.pileup + - path: output/srst2/test__test1.resFinder_20180221_srst2.pileup md5sum: 64b512ff495b828c456405ec7b676ad1 - - path: /tmp/tmpsqtj3g4l/srst2/test__test1.resFinder_20180221_srst2.sorted.bam - - path: /tmp/tmpsqtj3g4l/srst2/versions.yml + - path: output/srst2/test__test1.resFinder_20180221_srst2.sorted.bam + - path: output/srst2/versions.yml md5sum: b446a70f1a2b4f60757829bcd744a214 - name: srst2 srst2 test_srst2_srst2_single_end @@ -18,12 +18,12 @@ - srst2 - srst2/srst2 files: - - path: /tmp/tmpo9au1v02/srst2/test__fullgenes__resFinder_20180221_srst2__results.txt + - path: output/srst2/test__fullgenes__resFinder_20180221_srst2__results.txt md5sum: d0762ef8c38afd0e0a34cce52ed1a3db - - path: /tmp/tmpo9au1v02/srst2/test__genes__resFinder_20180221_srst2__results.txt + - path: output/srst2/test__genes__resFinder_20180221_srst2__results.txt md5sum: b8850c6644406d8b131e471ecc3f9013 - - path: /tmp/tmpo9au1v02/srst2/test__test1_1.resFinder_20180221_srst2.pileup + - path: output/srst2/test__test1_1.resFinder_20180221_srst2.pileup md5sum: 5f6279dc8124aa762a9dfe3d7a871277 - - path: /tmp/tmpo9au1v02/srst2/test__test1_1.resFinder_20180221_srst2.sorted.bam - - path: /tmp/tmpo9au1v02/srst2/versions.yml + - path: output/srst2/test__test1_1.resFinder_20180221_srst2.sorted.bam + - path: output/srst2/versions.yml md5sum: 790fe00493c6634d17801a930073218b From 85c49a971f91208ead572212be8475f5e7518feb Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 09:07:52 +0200 Subject: [PATCH 256/592] Fixed an issue with wrong file order --- modules/vardictjava/main.nf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 8170bf76..855784db 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -8,9 +8,8 @@ process VARDICTJAVA { 'quay.io/biocontainers/vardict-java:1.8.3--hdfd78af_0' }" input: - tuple val(meta), path(bam) + tuple val(meta), path(bam), path(regions_of_interest) path(reference_fasta) - path(regions_of_interest) output: tuple val(meta), path("*.vcf"), emit: vcf @@ -24,6 +23,9 @@ process VARDICTJAVA { def prefix = task.ext.prefix ?: "${meta.id}" """ + head -n 20 $reference_fasta + cat $reference_fasta | wc -l + vardict-java \\ $args \\ -b $bam \\ @@ -31,10 +33,11 @@ process VARDICTJAVA { -n $prefix \\ -G $reference_fasta \\ $regions_of_interest \\ + > ${prefix}.vcf cat <<-END_VERSIONS > versions.yml "${task.process}": - vardictjava: \$(echo 1.8.3) + vardict-java: \$(echo 1.8.3) END_VERSIONS """ } From db43095b1a1530af1e3cac7f3e7211c52d87bbd7 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 09:18:15 +0200 Subject: [PATCH 257/592] Split the bed file into a seperate input --- modules/vardictjava/main.nf | 8 +++----- tests/modules/vardictjava/main.nf | 14 +++++++------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 855784db..e1098b22 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -8,7 +8,8 @@ process VARDICTJAVA { 'quay.io/biocontainers/vardict-java:1.8.3--hdfd78af_0' }" input: - tuple val(meta), path(bam), path(regions_of_interest) + tuple val(meta), path(bam) + path(regions_of_interest) path(reference_fasta) output: @@ -23,14 +24,11 @@ process VARDICTJAVA { def prefix = task.ext.prefix ?: "${meta.id}" """ - head -n 20 $reference_fasta - cat $reference_fasta | wc -l - vardict-java \\ $args \\ -b $bam \\ -th $task.cpus \\ - -n $prefix \\ + -N $prefix \\ -G $reference_fasta \\ $regions_of_interest \\ > ${prefix}.vcf diff --git a/tests/modules/vardictjava/main.nf b/tests/modules/vardictjava/main.nf index 7511b529..647c8bba 100644 --- a/tests/modules/vardictjava/main.nf +++ b/tests/modules/vardictjava/main.nf @@ -6,14 +6,14 @@ include { VARDICTJAVA } from '../../../modules/vardictjava/main.nf' workflow test_vardictjava { - input = [ + bam_input_ch = Channel.of([ [ id:'test', single_end:false ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) - ] + ]) - VARDICTJAVA ( - input, - file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) - ) + bed = file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + + VARDICTJAVA ( bam_input_ch, bed, fasta ) } From def580ddb7af11619f8f0757ef5af5ed156ed6a4 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 09:28:57 +0200 Subject: [PATCH 258/592] Add gzip for compressed output --- modules/vardictjava/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index e1098b22..425c1706 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -31,7 +31,7 @@ process VARDICTJAVA { -N $prefix \\ -G $reference_fasta \\ $regions_of_interest \\ - > ${prefix}.vcf + | gzip -c > ${prefix}.vcf.gz cat <<-END_VERSIONS > versions.yml "${task.process}": From 484c8f5dfa40a2117997afcd8434bcd52ff4fe4e Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 09:29:27 +0200 Subject: [PATCH 259/592] Update meta.yml --- modules/vardictjava/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 7820a877..5bc21b55 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -53,7 +53,7 @@ output: - vcf: type: file description: VCF file output - pattern: "*.vcf" + pattern: "*.vcf.gz" authors: - "@nvnieuwk" From 2b29ff5883278856200f003328ece8d4897548bc Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 10:03:02 +0200 Subject: [PATCH 260/592] drop params.options --- subworkflows/nf-core/bam_qc_picard/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index 31edb2c3..b8a92a21 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -4,9 +4,9 @@ params.options = [:] -include { PICARD_COLLECTMULTIPLEMETRICS } from '../../../modules/picardcollectmultiplemetrics/main' addParams( options: params.options ) -include { PICARD_COLLECTWGSMETRICS } from '../../../modules/picardcollectwgsmetrics/main' addParams( options: params.options ) -include { PICARD_COLLECTHSMETRICS } from '../../../modules/picardcollecthsmetrics/main' addParams( options: params.options ) +include { PICARD_COLLECTMULTIPLEMETRICS } from '../../../modules/picardcollectmultiplemetrics/main' +include { PICARD_COLLECTWGSMETRICS } from '../../../modules/picardcollectwgsmetrics/main' +include { PICARD_COLLECTHSMETRICS } from '../../../modules/picardcollecthsmetrics/main' workflow BAM_QC_PICARD { take: From 8fb8199f3115c1a7f136202882b39be403ac5cd5 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 10:05:07 +0200 Subject: [PATCH 261/592] fix copilot suggestion --- subworkflows/nf-core/bam_qc_picard/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index b8a92a21..e4a7e5f0 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -22,10 +22,10 @@ workflow BAM_QC_PICARD { ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions.first()) if (!ch_bait_interval.isEmpty() || !ch_target_interval.isEmpty()) { if (ch_bait_interval.isEmpty()) { - throw new Error("Bait interval channel is empty") + log.error("Bait interval channel is empty") } if (ch_target_interval.isEmpty()) { - throw new Error("Target interval channel is empty") + log.error("Target interval channel is empty") } PICARD_COLLECTHSMETRICS( ch_bam_bai, ch_fasta, ch_bait_interval, ch_target_interval ) ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) From 433aaece46967b56ba6a4c937ce1c8b0706b260e Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 10:05:31 +0200 Subject: [PATCH 262/592] Update tests/subworkflows/nf-core/bam_qc_picard/main.nf Co-authored-by: Maxime U. Garcia --- tests/subworkflows/nf-core/bam_qc_picard/main.nf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/subworkflows/nf-core/bam_qc_picard/main.nf b/tests/subworkflows/nf-core/bam_qc_picard/main.nf index d88f2bf9..9112416b 100644 --- a/tests/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/tests/subworkflows/nf-core/bam_qc_picard/main.nf @@ -16,6 +16,8 @@ workflow test_bam_qc_picard_targetted { input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) ] + bait = file(params.test_data['sarscov2']['genome']['baits_interval_list'], checkIfExists: true) + target = file(params.test_data['sarscov2']['genome']['targets_interval_list'], checkIfExists: true) - BAM_QC_PICARD ( input, [], file(params.test_data['sarscov2']['genome']['baits_interval_list'], checkIfExists: true), file(params.test_data['sarscov2']['genome']['targets_interval_list'], checkIfExists: true) ) + BAM_QC_PICARD ( input, [], bait, target ) } From 3cbf5c63e5677491377f23e6dda20443804a8158 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 10:09:25 +0200 Subject: [PATCH 263/592] Update subworkflows/nf-core/bam_qc_picard/main.nf Co-authored-by: Maxime U. Garcia --- subworkflows/nf-core/bam_qc_picard/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index e4a7e5f0..851268c6 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -20,7 +20,7 @@ workflow BAM_QC_PICARD { PICARD_COLLECTMULTIPLEMETRICS( ch_bam_bai, ch_fasta] ) ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions.first()) - if (!ch_bait_interval.isEmpty() || !ch_target_interval.isEmpty()) { + if (ch_bait_interval || ch_target_interval) { if (ch_bait_interval.isEmpty()) { log.error("Bait interval channel is empty") } From 881e9db4bfde569c8e9c0d51a1b3916817610fc0 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 10:19:30 +0200 Subject: [PATCH 264/592] update tests --- subworkflows/nf-core/bam_qc_picard/meta.yml | 2 +- tests/subworkflows/nf-core/bam_qc_picard/main.nf | 12 +++++++----- tests/subworkflows/nf-core/bam_qc_picard/test.yml | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/subworkflows/nf-core/bam_qc_picard/meta.yml b/subworkflows/nf-core/bam_qc_picard/meta.yml index 77104e82..c4422150 100644 --- a/subworkflows/nf-core/bam_qc_picard/meta.yml +++ b/subworkflows/nf-core/bam_qc_picard/meta.yml @@ -47,7 +47,7 @@ output: - hs_metrics: type: file description: Alignment metrics files generated by picard CollectHsMetrics - pattern: "*_collecthsmetrics.txt" + pattern: "*_metrics.txt" - wgs_metrics: type: file description: Alignment metrics files generated by picard CollectWgsMetrics diff --git a/tests/subworkflows/nf-core/bam_qc_picard/main.nf b/tests/subworkflows/nf-core/bam_qc_picard/main.nf index 9112416b..03696b44 100644 --- a/tests/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/tests/subworkflows/nf-core/bam_qc_picard/main.nf @@ -6,18 +6,20 @@ include { BAM_QC_PICARD } from '../../../../subworkflows/nf-core/bam_qc_picard/m workflow test_bam_qc_picard_wgs { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true) + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - BAM_QC_PICARD ( input, [], [], [] ) + BAM_QC_PICARD ( input, fasta, [], [] ) } workflow test_bam_qc_picard_targetted { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) bait = file(params.test_data['sarscov2']['genome']['baits_interval_list'], checkIfExists: true) - target = file(params.test_data['sarscov2']['genome']['targets_interval_list'], checkIfExists: true) + target = file(params.test_data['sarscov2']['genome']['targets_interval_list'], checkIfExists: true) - BAM_QC_PICARD ( input, [], bait, target ) + BAM_QC_PICARD ( input, fasta, bait, target ) } diff --git a/tests/subworkflows/nf-core/bam_qc_picard/test.yml b/tests/subworkflows/nf-core/bam_qc_picard/test.yml index af98230d..7b0a6c2b 100644 --- a/tests/subworkflows/nf-core/bam_qc_picard/test.yml +++ b/tests/subworkflows/nf-core/bam_qc_picard/test.yml @@ -30,4 +30,4 @@ - path: ./output/picard/test.CollectMultipleMetrics.base_distribution_by_cycle_metrics - path: ./output/picard/test.CollectMultipleMetrics.quality_by_cycle_metrics - path: ./output/picard/test.CollectMultipleMetrics.quality_distribution_metrics - - path: ./output/picard/test_collecthsmetrics.txt + - path: ./output/picard/test.CollectHsMetrics.coverage_metrics From b92efb7abfc77cb8d9b4149c5fb866409122ce05 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 10:21:47 +0200 Subject: [PATCH 265/592] add nextflow.config --- tests/subworkflows/nf-core/bam_qc_picard/nextflow.config | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/subworkflows/nf-core/bam_qc_picard/nextflow.config diff --git a/tests/subworkflows/nf-core/bam_qc_picard/nextflow.config b/tests/subworkflows/nf-core/bam_qc_picard/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/subworkflows/nf-core/bam_qc_picard/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} From 9df830f79dc70a347578120e797a4e3160dfc66d Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 10:23:07 +0200 Subject: [PATCH 266/592] Added the .bai and .fai files --- modules/vardictjava/main.nf | 8 ++++---- tests/modules/vardictjava/main.nf | 12 ++++++++---- tests/modules/vardictjava/test.yml | 15 ++++++--------- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 425c1706..c370b6ef 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -8,12 +8,12 @@ process VARDICTJAVA { 'quay.io/biocontainers/vardict-java:1.8.3--hdfd78af_0' }" input: - tuple val(meta), path(bam) + tuple val(meta), path(bam), path(bai) path(regions_of_interest) - path(reference_fasta) + tuple path(reference_fasta), path(reference_fai) output: - tuple val(meta), path("*.vcf"), emit: vcf + tuple val(meta), path("*.vcf.gz"), emit: vcf path "versions.yml" , emit: versions when: @@ -30,7 +30,7 @@ process VARDICTJAVA { -th $task.cpus \\ -N $prefix \\ -G $reference_fasta \\ - $regions_of_interest \\ + $regions_of_interest | gzip -c > ${prefix}.vcf.gz cat <<-END_VERSIONS > versions.yml diff --git a/tests/modules/vardictjava/main.nf b/tests/modules/vardictjava/main.nf index 647c8bba..89eec407 100644 --- a/tests/modules/vardictjava/main.nf +++ b/tests/modules/vardictjava/main.nf @@ -8,12 +8,16 @@ workflow test_vardictjava { bam_input_ch = Channel.of([ [ id:'test', single_end:false ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ]) - bed = file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + bed = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true) - fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + reference = Channel.of([ + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + ]) - VARDICTJAVA ( bam_input_ch, bed, fasta ) + VARDICTJAVA ( bam_input_ch, bed, reference ) } diff --git a/tests/modules/vardictjava/test.yml b/tests/modules/vardictjava/test.yml index 001a56e8..77aa9047 100644 --- a/tests/modules/vardictjava/test.yml +++ b/tests/modules/vardictjava/test.yml @@ -1,12 +1,9 @@ -## TODO nf-core: Please run the following command to build this file: -# nf-core modules create-test-yml vardictjava -- name: "vardictjava" - command: nextflow run ./tests/modules/vardictjava -entry test_vardictjava -c ./tests/config/nextflow.config -c ./tests/modules/vardictjava/nextflow.config +- name: vardictjava test_vardictjava + command: nextflow run tests/modules/vardictjava -entry test_vardictjava -c tests/config/nextflow.config tags: - - "vardictjava" - # + - vardictjava files: - - path: "output/vardictjava/test.vcf" - md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/vardictjava/test.vcf.gz + md5sum: 2179dcaee6183495b421293f42db11b5 - path: output/vardictjava/versions.yml - md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b + md5sum: aac455b8c9c9194c5fed80e4fd495b96 From dee8ec9e911ec848e93c8ed0b9667e7c674e9132 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 12:53:17 +0200 Subject: [PATCH 267/592] fix typos --- subworkflows/nf-core/bam_qc_picard/main.nf | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index 851268c6..747d5995 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -2,11 +2,9 @@ // Run QC steps on BAM/CRAM files using Picard // -params.options = [:] - -include { PICARD_COLLECTMULTIPLEMETRICS } from '../../../modules/picardcollectmultiplemetrics/main' -include { PICARD_COLLECTWGSMETRICS } from '../../../modules/picardcollectwgsmetrics/main' -include { PICARD_COLLECTHSMETRICS } from '../../../modules/picardcollecthsmetrics/main' +include { PICARD_COLLECTMULTIPLEMETRICS } from '../../../modules/picard/collectmultiplemetrics/main' +include { PICARD_COLLECTWGSMETRICS } from '../../../modules/picard/collectwgsmetrics/main' +include { PICARD_COLLECTHSMETRICS } from '../../../modules/picard/collecthsmetrics/main' workflow BAM_QC_PICARD { take: @@ -18,7 +16,7 @@ workflow BAM_QC_PICARD { main: ch_versions = Channel.empty() - PICARD_COLLECTMULTIPLEMETRICS( ch_bam_bai, ch_fasta] ) + PICARD_COLLECTMULTIPLEMETRICS( ch_bam_bai, ch_fasta ) ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions.first()) if (ch_bait_interval || ch_target_interval) { if (ch_bait_interval.isEmpty()) { From 45b4a61a15c8b7ac6c29a447ccc1ece9f08f8efe Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 13:31:37 +0200 Subject: [PATCH 268/592] Some small updates --- modules/vardictjava/main.nf | 2 +- tests/modules/vardictjava/main.nf | 8 ++++---- tests/modules/vardictjava/test.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index c370b6ef..26833436 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -30,7 +30,7 @@ process VARDICTJAVA { -th $task.cpus \\ -N $prefix \\ -G $reference_fasta \\ - $regions_of_interest + $regions_of_interest \\ | gzip -c > ${prefix}.vcf.gz cat <<-END_VERSIONS > versions.yml diff --git a/tests/modules/vardictjava/main.nf b/tests/modules/vardictjava/main.nf index 89eec407..d392358a 100644 --- a/tests/modules/vardictjava/main.nf +++ b/tests/modules/vardictjava/main.nf @@ -6,15 +6,15 @@ include { VARDICTJAVA } from '../../../modules/vardictjava/main.nf' workflow test_vardictjava { - bam_input_ch = Channel.of([ - [ id:'test', single_end:false ], // meta map + bam_input_ch = Channel.value([ + [ id:'test' ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) ]) - bed = file(params.test_data['homo_sapiens']['genome']['genome_bed_gz'], checkIfExists: true) + bed = Channel.value(file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)) - reference = Channel.of([ + reference = Channel.value([ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true), file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) ]) diff --git a/tests/modules/vardictjava/test.yml b/tests/modules/vardictjava/test.yml index 77aa9047..0bd21f4e 100644 --- a/tests/modules/vardictjava/test.yml +++ b/tests/modules/vardictjava/test.yml @@ -4,6 +4,6 @@ - vardictjava files: - path: output/vardictjava/test.vcf.gz - md5sum: 2179dcaee6183495b421293f42db11b5 + md5sum: 7029066c27ac6f5ef18d660d5741979a - path: output/vardictjava/versions.yml md5sum: aac455b8c9c9194c5fed80e4fd495b96 From 68f1c27169946f931ea4318911de5681f88b2961 Mon Sep 17 00:00:00 2001 From: Praveen Raj S <43108054+praveenraj2018@users.noreply.github.com> Date: Thu, 28 Apr 2022 13:41:20 +0200 Subject: [PATCH 269/592] Changed tbi as optional output in GATK4 HaplotypeCaller (#1576) * Changed tbi as optional output. HC cannot index a VCF from large chromosomes. * Apply suggestions from code review * Update modules/gatk4/haplotypecaller/main.nf Co-authored-by: Maxime U. Garcia --- modules/gatk4/haplotypecaller/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gatk4/haplotypecaller/main.nf b/modules/gatk4/haplotypecaller/main.nf index 57f69ecd..2cd9e7d4 100644 --- a/modules/gatk4/haplotypecaller/main.nf +++ b/modules/gatk4/haplotypecaller/main.nf @@ -17,7 +17,7 @@ process GATK4_HAPLOTYPECALLER { output: tuple val(meta), path("*.vcf.gz"), emit: vcf - tuple val(meta), path("*.tbi") , emit: tbi + tuple val(meta), path("*.tbi") , optional:true, emit: tbi path "versions.yml" , emit: versions when: From e0a8af869324765ec0c6a375703bfa68f5ba4e77 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 13:42:14 +0200 Subject: [PATCH 270/592] fix outputs --- subworkflows/nf-core/bam_qc_picard/main.nf | 14 ++++++++------ subworkflows/nf-core/bam_qc_picard/meta.yml | 8 ++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index 747d5995..13f4a845 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -8,7 +8,7 @@ include { PICARD_COLLECTHSMETRICS } from '../../../modules/picard/collecth workflow BAM_QC_PICARD { take: - ch_bam_bai // channel: [ val(meta), [ bam ], [bai/csi] ] + ch_bam // channel: [ val(meta), [ bam ]] ch_fasta // channel: [ fasta ] ch_bait_interval // channel: [ bait_interval ] ch_target_interval // channel: [ target_interval ] @@ -16,7 +16,7 @@ workflow BAM_QC_PICARD { main: ch_versions = Channel.empty() - PICARD_COLLECTMULTIPLEMETRICS( ch_bam_bai, ch_fasta ) + PICARD_COLLECTMULTIPLEMETRICS( ch_bam, ch_fasta ) ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions.first()) if (ch_bait_interval || ch_target_interval) { if (ch_bait_interval.isEmpty()) { @@ -25,16 +25,18 @@ workflow BAM_QC_PICARD { if (ch_target_interval.isEmpty()) { log.error("Target interval channel is empty") } - PICARD_COLLECTHSMETRICS( ch_bam_bai, ch_fasta, ch_bait_interval, ch_target_interval ) + PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, ch_bait_interval, ch_target_interval ) ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) } else { - PICARD_COLLECTWGSMETRICS( ch_bam_bai, ch_fasta ) + PICARD_COLLECTWGSMETRICS( ch_bam, ch_fasta ) ch_versions = ch_versions.mix(PICARD_COLLECTWGSMETRICS.out.versions.first()) } + ch_coverage_metrics = Channel.empty() + ch_coverage_metrics.mix(PICARD_COLLECTHSMETRICS.out.coverage_metrics.first(), PICARD_COLLECTWGSMETRICS.out.coverage_metrics.first()) + emit: - hs_metrics = PICARD_COLLECTHSMETRICS.out.hs_metrics // channel: [ val(meta), [ hs_metrics ] ] - wgs_metrics = PICARD_COLLECTWGSMETRICS.out.metrics // channel: [ val(meta), [ wgs_metrics ] ] + coverage_metrics = PICARD_COLLECTWGSMETRICS.out.metrics // channel: [ val(meta), [ coverage_metrics ] ] multiple_metrics = PICARD_COLLECTMULTIPLEMETRICS.out.metrics // channel: [ val(meta), [ multiple_metrics ] ] versions = ch_versions // channel: [ versions.yml ] diff --git a/subworkflows/nf-core/bam_qc_picard/meta.yml b/subworkflows/nf-core/bam_qc_picard/meta.yml index c4422150..67d3496e 100644 --- a/subworkflows/nf-core/bam_qc_picard/meta.yml +++ b/subworkflows/nf-core/bam_qc_picard/meta.yml @@ -44,14 +44,10 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - hs_metrics: + - coverage_metrics: type: file - description: Alignment metrics files generated by picard CollectHsMetrics + description: Alignment metrics files generated by picard CollectHsMetrics or CollectWgsMetrics pattern: "*_metrics.txt" - - wgs_metrics: - type: file - description: Alignment metrics files generated by picard CollectWgsMetrics - pattern: "*_{metrics}" - multiple_metrics: type: file description: Alignment metrics files generated by picard CollectMultipleMetrics From 55dfe1d8ab35873790c13ee4eb75af818fef80b2 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 13:43:59 +0200 Subject: [PATCH 271/592] fix hsmetrics input --- subworkflows/nf-core/bam_qc_picard/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index 13f4a845..9e429448 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -25,7 +25,7 @@ workflow BAM_QC_PICARD { if (ch_target_interval.isEmpty()) { log.error("Target interval channel is empty") } - PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, ch_bait_interval, ch_target_interval ) + PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, [], ch_bait_interval, ch_target_interval ) ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) } else { PICARD_COLLECTWGSMETRICS( ch_bam, ch_fasta ) From 8ad861a645e86c411b47472616a924063afba106 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 13:52:03 +0200 Subject: [PATCH 272/592] add fasta index --- subworkflows/nf-core/bam_qc_picard/main.nf | 12 +++++++----- subworkflows/nf-core/bam_qc_picard/meta.yml | 10 +++++----- tests/subworkflows/nf-core/bam_qc_picard/main.nf | 12 +++++++----- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index 9e429448..e6f82feb 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -10,14 +10,17 @@ workflow BAM_QC_PICARD { take: ch_bam // channel: [ val(meta), [ bam ]] ch_fasta // channel: [ fasta ] + ch_fasta_faix // channel: [ fasta_fai ] ch_bait_interval // channel: [ bait_interval ] ch_target_interval // channel: [ target_interval ] main: ch_versions = Channel.empty() + ch_coverage_metrics = Channel.empty() PICARD_COLLECTMULTIPLEMETRICS( ch_bam, ch_fasta ) ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions.first()) + if (ch_bait_interval || ch_target_interval) { if (ch_bait_interval.isEmpty()) { log.error("Bait interval channel is empty") @@ -26,18 +29,17 @@ workflow BAM_QC_PICARD { log.error("Target interval channel is empty") } PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, [], ch_bait_interval, ch_target_interval ) + ch_coverage_metrics.mix(PICARD_COLLECTHSMETRICS.out.coverage_metrics.first()) ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) } else { PICARD_COLLECTWGSMETRICS( ch_bam, ch_fasta ) ch_versions = ch_versions.mix(PICARD_COLLECTWGSMETRICS.out.versions.first()) + ch_coverage_metrics.mix(PICARD_COLLECTWGSMETRICS.out.coverage_metrics.first()) } - ch_coverage_metrics = Channel.empty() - ch_coverage_metrics.mix(PICARD_COLLECTHSMETRICS.out.coverage_metrics.first(), PICARD_COLLECTWGSMETRICS.out.coverage_metrics.first()) - emit: - coverage_metrics = PICARD_COLLECTWGSMETRICS.out.metrics // channel: [ val(meta), [ coverage_metrics ] ] + coverage_metrics = ch_coverage_metrics // channel: [ val(meta), [ coverage_metrics ] ] multiple_metrics = PICARD_COLLECTMULTIPLEMETRICS.out.metrics // channel: [ val(meta), [ multiple_metrics ] ] - versions = ch_versions // channel: [ versions.yml ] + versions = ch_versions // channel: [ versions.yml ] } diff --git a/subworkflows/nf-core/bam_qc_picard/meta.yml b/subworkflows/nf-core/bam_qc_picard/meta.yml index 67d3496e..c45215d1 100644 --- a/subworkflows/nf-core/bam_qc_picard/meta.yml +++ b/subworkflows/nf-core/bam_qc_picard/meta.yml @@ -22,14 +22,14 @@ input: 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}" - fasta: type: optional file - description: Reference file the CRAM was created with + description: Reference fasta file pattern: "*.{fasta,fa}" + - fasta_fai: + type: optional file + description: Reference fasta file index + pattern: "*.{fasta,fa}.fai" - bait_intervals: type: optional file description: An interval list file that contains the locations of the baits used. diff --git a/tests/subworkflows/nf-core/bam_qc_picard/main.nf b/tests/subworkflows/nf-core/bam_qc_picard/main.nf index 03696b44..a3e2ed62 100644 --- a/tests/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/tests/subworkflows/nf-core/bam_qc_picard/main.nf @@ -9,17 +9,19 @@ workflow test_bam_qc_picard_wgs { file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fasta_fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) - BAM_QC_PICARD ( input, fasta, [], [] ) + BAM_QC_PICARD ( input, fasta, fasta_fai, [], [] ) } workflow test_bam_qc_picard_targetted { input = [ [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true) ] - fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - bait = file(params.test_data['sarscov2']['genome']['baits_interval_list'], checkIfExists: true) - target = file(params.test_data['sarscov2']['genome']['targets_interval_list'], checkIfExists: true) + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fasta_fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + bait = file(params.test_data['sarscov2']['genome']['baits_interval_list'], checkIfExists: true) + target = file(params.test_data['sarscov2']['genome']['targets_interval_list'], checkIfExists: true) - BAM_QC_PICARD ( input, fasta, bait, target ) + BAM_QC_PICARD ( input, fasta, fasta_fai, bait, target ) } From 2fc857955f42c3aed840f9a61062b481a159ff4a Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 13:53:48 +0200 Subject: [PATCH 273/592] fix index omission --- subworkflows/nf-core/bam_qc_picard/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index e6f82feb..341a4310 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -10,7 +10,7 @@ workflow BAM_QC_PICARD { take: ch_bam // channel: [ val(meta), [ bam ]] ch_fasta // channel: [ fasta ] - ch_fasta_faix // channel: [ fasta_fai ] + ch_fasta_fai // channel: [ fasta_fai ] ch_bait_interval // channel: [ bait_interval ] ch_target_interval // channel: [ target_interval ] @@ -28,7 +28,7 @@ workflow BAM_QC_PICARD { if (ch_target_interval.isEmpty()) { log.error("Target interval channel is empty") } - PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, [], ch_bait_interval, ch_target_interval ) + PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, ch_fasta_fai, ch_bait_interval, ch_target_interval ) ch_coverage_metrics.mix(PICARD_COLLECTHSMETRICS.out.coverage_metrics.first()) ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) } else { From 4618c542e9d64cd71176cfd24fe0edc908eb3d10 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Thu, 28 Apr 2022 13:59:46 +0200 Subject: [PATCH 274/592] fix metrics output --- subworkflows/nf-core/bam_qc_picard/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index 341a4310..b8be04b2 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -29,12 +29,12 @@ workflow BAM_QC_PICARD { log.error("Target interval channel is empty") } PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, ch_fasta_fai, ch_bait_interval, ch_target_interval ) - ch_coverage_metrics.mix(PICARD_COLLECTHSMETRICS.out.coverage_metrics.first()) + ch_coverage_metrics.mix(PICARD_COLLECTHSMETRICS.out.metrics.first()) ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) } else { PICARD_COLLECTWGSMETRICS( ch_bam, ch_fasta ) ch_versions = ch_versions.mix(PICARD_COLLECTWGSMETRICS.out.versions.first()) - ch_coverage_metrics.mix(PICARD_COLLECTWGSMETRICS.out.coverage_metrics.first()) + ch_coverage_metrics.mix(PICARD_COLLECTWGSMETRICS.out.metrics.first()) } emit: From 57cb730e78634673fb254a77606e014ce942734c Mon Sep 17 00:00:00 2001 From: Daniel Cooke Date: Thu, 28 Apr 2022 13:06:38 +0100 Subject: [PATCH 275/592] Fix tiddit/sv (#1580) * Fix fasta ref option for TIDDIT_SV * Add md5sum's to tiddit/sv tests Co-authored-by: Daniel Cooke --- modules/tiddit/sv/main.nf | 2 +- tests/modules/tiddit/sv/test.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/tiddit/sv/main.nf b/modules/tiddit/sv/main.nf index 1bf7146a..b3e3813c 100644 --- a/modules/tiddit/sv/main.nf +++ b/modules/tiddit/sv/main.nf @@ -24,7 +24,7 @@ process TIDDIT_SV { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def reference = fasta == "dummy_file.txt" ? "--ref $fasta" : "" + def reference = fasta ? "--ref $fasta" : "" """ tiddit \\ --sv \\ diff --git a/tests/modules/tiddit/sv/test.yml b/tests/modules/tiddit/sv/test.yml index 168d21c5..40ea5b4d 100644 --- a/tests/modules/tiddit/sv/test.yml +++ b/tests/modules/tiddit/sv/test.yml @@ -9,6 +9,7 @@ - path: output/tiddit/test.signals.tab md5sum: dab4b2fec4ddf8eb1c23005b0770150e - path: output/tiddit/test.vcf + md5sum: bdce14ae8292bf3deb81f6f255baf859 - name: tiddit sv no ref command: nextflow run ./tests/modules/tiddit/sv -entry test_tiddit_sv_no_ref -c ./tests/config/nextflow.config -c ./tests/modules/tiddit/sv/nextflow.config @@ -21,3 +22,4 @@ - path: output/tiddit/test.signals.tab md5sum: dab4b2fec4ddf8eb1c23005b0770150e - path: output/tiddit/test.vcf + md5sum: 3d0e83a8199b2bdb81cfe3e6b12bf64b From 8c98a78d2a0e12d081184736e17ccde3feee3f44 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 14:07:55 +0200 Subject: [PATCH 276/592] Fixed the issue with the BED file --- modules/vardictjava/main.nf | 1 + tests/modules/vardictjava/test.yml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 26833436..d6b4f1dd 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -26,6 +26,7 @@ process VARDICTJAVA { """ vardict-java \\ $args \\ + -c 1 -S 2 -E 3 \\ -b $bam \\ -th $task.cpus \\ -N $prefix \\ diff --git a/tests/modules/vardictjava/test.yml b/tests/modules/vardictjava/test.yml index 0bd21f4e..77aa9047 100644 --- a/tests/modules/vardictjava/test.yml +++ b/tests/modules/vardictjava/test.yml @@ -4,6 +4,6 @@ - vardictjava files: - path: output/vardictjava/test.vcf.gz - md5sum: 7029066c27ac6f5ef18d660d5741979a + md5sum: 2179dcaee6183495b421293f42db11b5 - path: output/vardictjava/versions.yml md5sum: aac455b8c9c9194c5fed80e4fd495b96 From 24fb7c89aafa401b084e8022b8999efca15fae9d Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Thu, 28 Apr 2022 08:14:30 -0400 Subject: [PATCH 277/592] Update modules/motus/downloaddb/main.nf Co-authored-by: Robert A. Petit III --- modules/motus/downloaddb/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index e2a0cec6..58f3cd03 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -18,7 +18,7 @@ process MOTUS_DOWNLOADDB { script: def args = task.ext.args ?: '' - def software = ${motus_downloaddb.simpleName}_copy.py + def software = "${motus_downloaddb.simpleName}_copy.py" """ ## must copy script file to working directory, ## otherwise the reference_db will be download to bin folder From cdefbec66999c0b49d8bfeea9d6f9d19056635a2 Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Thu, 28 Apr 2022 08:16:26 -0400 Subject: [PATCH 278/592] add kimporttext module (#1560) * add kimporttext module * fix the Prettier error. * fix the Prettier error. * fix the test.yml * fix the test.yml * Update modules/krona/ktimporttext/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/krona/ktimporttext/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/krona/ktimporttext/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/krona/ktimporttext/meta.yml Co-authored-by: James A. Fellows Yates * Update modules/krona/ktimporttext/meta.yml Co-authored-by: James A. Fellows Yates * update the test files; simplify the main script of krona/ktimporttext. * update the test file url for krona ktimporttext Co-authored-by: James A. Fellows Yates --- modules/krona/ktimporttext/main.nf | 34 ++++++++++++++ modules/krona/ktimporttext/meta.yml | 47 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/config/test_data.config | 3 ++ tests/modules/krona/ktimporttext/main.nf | 31 ++++++++++++ .../krona/ktimporttext/nextflow.config | 5 ++ tests/modules/krona/ktimporttext/test.yml | 19 ++++++++ 7 files changed, 143 insertions(+) create mode 100644 modules/krona/ktimporttext/main.nf create mode 100644 modules/krona/ktimporttext/meta.yml create mode 100644 tests/modules/krona/ktimporttext/main.nf create mode 100644 tests/modules/krona/ktimporttext/nextflow.config create mode 100644 tests/modules/krona/ktimporttext/test.yml diff --git a/modules/krona/ktimporttext/main.nf b/modules/krona/ktimporttext/main.nf new file mode 100644 index 00000000..de0cfc22 --- /dev/null +++ b/modules/krona/ktimporttext/main.nf @@ -0,0 +1,34 @@ +process KRONA_KTIMPORTTEXT { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::krona=2.8.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/krona:2.8.1--pl5321hdfd78af_1': + 'quay.io/biocontainers/krona:2.8.1--pl5321hdfd78af_1' }" + + input: + tuple val(meta), path(report) + + output: + tuple val(meta), path ('*.html'), emit: html + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + ktImportText \\ + $args \\ + -o ${prefix}.html \\ + $report + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + krona: \$( echo \$(ktImportText 2>&1) | sed 's/^.*KronaTools //g; s/- ktImportText.*\$//g') + END_VERSIONS + """ +} diff --git a/modules/krona/ktimporttext/meta.yml b/modules/krona/ktimporttext/meta.yml new file mode 100644 index 00000000..a7108e0d --- /dev/null +++ b/modules/krona/ktimporttext/meta.yml @@ -0,0 +1,47 @@ +name: "krona_ktimporttext" +description: Creates a Krona chart from text files listing quantities and lineages. +keywords: + - plot + - taxonomy + - interactive + - html + - visualisation + - krona chart + - metagenomics +tools: + - krona: + description: Krona Tools is a set of scripts to create Krona charts from several Bioinformatics tools as well as from text and XML files. + homepage: https://github.com/marbl/Krona/wiki/KronaTools + documentation: http://manpages.ubuntu.com/manpages/impish/man1/ktImportTaxonomy.1.html + tool_dev_url: https://github.com/marbl/Krona + doi: 10.1186/1471-2105-12-385 + licence: https://raw.githubusercontent.com/marbl/Krona/master/KronaTools/LICENSE.txt + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test'] + - report: + type: file + description: "Tab-delimited text file. Each line should be a number followed by a list of wedges to contribute to (starting from the highest level). If no wedges are listed (and just a quantity is given), it will contribute to the top level. If the same lineage is listed more than once, the values will be added. Quantities can be omitted if -q is specified. Lines beginning with '#' will be ignored." + pattern: "*.{txt}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - html: + type: file + description: A html file containing an interactive krona plot. + pattern: "*.{html}" + +authors: + - "@jianhong" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 4d8ce0b5..dfcbfa8c 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1050,6 +1050,10 @@ krona/ktimporttaxonomy: - modules/krona/ktimporttaxonomy/** - tests/modules/krona/ktimporttaxonomy/** +krona/ktimporttext: + - modules/krona/ktimporttext/** + - tests/modules/krona/ktimporttext/** + last/dotplot: - modules/last/dotplot/** - tests/modules/last/dotplot/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index b3171a51..5d5535c4 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -109,6 +109,9 @@ params { test_sequencing_summary = "${test_data_dir}/genomics/sarscov2/nanopore/sequencing_summary/test.sequencing_summary.txt" } + 'metagenome' { + kraken_report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt" + } } 'homo_sapiens' { 'genome' { diff --git a/tests/modules/krona/ktimporttext/main.nf b/tests/modules/krona/ktimporttext/main.nf new file mode 100644 index 00000000..3d288b7b --- /dev/null +++ b/tests/modules/krona/ktimporttext/main.nf @@ -0,0 +1,31 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { KRONA_KTIMPORTTEXT } from '../../../../modules/krona/ktimporttext/main.nf' + +workflow test_krona_ktimporttext_multi { + + input = [ + [ id:'test', single_end:false ], // meta map + [ + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/krona/ktimporttext.txt', checkIfExists: true), // krona default test file + file(params.test_data['sarscov2']['metagenome']['kraken_report'], checkIfExists: true), //Kraken2 report file + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/krona/kaiju_out4krona.txt', checkIfExists: true) // Kaiju output 4 krona + ] + ] + + KRONA_KTIMPORTTEXT ( input ) +} + +workflow test_krona_ktimporttext_single { + + input = [ + [ id:'test', single_end:false ], // meta map + [ + file('http://krona.sourceforge.net/examples/text.txt', checkIfExists: true) // krona default test file + ] + ] + + KRONA_KTIMPORTTEXT ( input ) +} diff --git a/tests/modules/krona/ktimporttext/nextflow.config b/tests/modules/krona/ktimporttext/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/krona/ktimporttext/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/krona/ktimporttext/test.yml b/tests/modules/krona/ktimporttext/test.yml new file mode 100644 index 00000000..93ae12da --- /dev/null +++ b/tests/modules/krona/ktimporttext/test.yml @@ -0,0 +1,19 @@ +- name: krona ktimporttext test_krona_ktimporttext_multi + command: nextflow run tests/modules/krona/ktimporttext -entry test_krona_ktimporttext_multi -c tests/config/nextflow.config + tags: + - krona + - krona/ktimporttext + files: + - path: output/krona/test.html + contains: + - "DOCTYPE html PUBLIC" + +- name: krona ktimporttext test_krona_ktimporttext_single + command: nextflow run tests/modules/krona/ktimporttext -entry test_krona_ktimporttext_single -c tests/config/nextflow.config + tags: + - krona + - krona/ktimporttext + files: + - path: output/krona/test.html + contains: + - "DOCTYPE html PUBLIC" From bf186044716cb0621f31ccc4727ad4a0fb7c81b9 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 14:29:37 +0200 Subject: [PATCH 279/592] fix for a linting issue --- modules/vardictjava/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index d6b4f1dd..3e036ebd 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -14,7 +14,7 @@ process VARDICTJAVA { output: tuple val(meta), path("*.vcf.gz"), emit: vcf - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when From 40e6e5273de785042fc1b4d6fc1d7510729a7789 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 14:30:04 +0200 Subject: [PATCH 280/592] fix for a linting issue --- modules/vardictjava/meta.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 5bc21b55..39368f81 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -15,7 +15,6 @@ tools: licence: "['MIT']" input: - # Only when we have meta - meta: type: map description: | @@ -38,7 +37,6 @@ input: pattern: "*.bed" output: - #Only when we have meta - meta: type: map description: | From b3e9b88e80880f450ad79a95b2b7aa05e1de5484 Mon Sep 17 00:00:00 2001 From: Praveen Raj S <43108054+praveenraj2018@users.noreply.github.com> Date: Thu, 28 Apr 2022 14:41:01 +0200 Subject: [PATCH 281/592] csi output in TABIX (#1579) * Added: csi output to TABIX * Added: tests for csi * Fix tiddit/sv (#1580) * Fix fasta ref option for TIDDIT_SV * Add md5sum's to tiddit/sv tests Co-authored-by: Daniel Cooke * Fix: prettier issues Co-authored-by: Daniel Cooke Co-authored-by: Daniel Cooke --- modules/tabix/tabix/main.nf | 3 ++- modules/tabix/tabix/meta.yml | 4 ++++ tests/modules/tabix/tabix/main.nf | 19 ++++++++++++++----- tests/modules/tabix/tabix/nextflow.config | 6 +++++- tests/modules/tabix/tabix/test.yml | 10 +++++++++- 5 files changed, 34 insertions(+), 8 deletions(-) diff --git a/modules/tabix/tabix/main.nf b/modules/tabix/tabix/main.nf index c9dab068..e155e468 100644 --- a/modules/tabix/tabix/main.nf +++ b/modules/tabix/tabix/main.nf @@ -11,7 +11,8 @@ process TABIX_TABIX { tuple val(meta), path(tab) output: - tuple val(meta), path("*.tbi"), emit: tbi + tuple val(meta), path("*.tbi"), optional:true, emit: tbi + tuple val(meta), path("*.csi"), optional:true, emit: csi path "versions.yml" , emit: versions when: diff --git a/modules/tabix/tabix/meta.yml b/modules/tabix/tabix/meta.yml index 89478abe..fcc6e524 100644 --- a/modules/tabix/tabix/meta.yml +++ b/modules/tabix/tabix/meta.yml @@ -31,6 +31,10 @@ output: type: file description: tabix index file pattern: "*.{tbi}" + - csi: + type: file + description: coordinate sorted index file + pattern: "*.{csi}" - versions: type: file description: File containing software versions diff --git a/tests/modules/tabix/tabix/main.nf b/tests/modules/tabix/tabix/main.nf index 993ee812..da26f4d7 100644 --- a/tests/modules/tabix/tabix/main.nf +++ b/tests/modules/tabix/tabix/main.nf @@ -2,9 +2,10 @@ nextflow.enable.dsl = 2 -include { TABIX_TABIX as TABIX_BED } from '../../../../modules/tabix/tabix/main.nf' -include { TABIX_TABIX as TABIX_GFF } from '../../../../modules/tabix/tabix/main.nf' -include { TABIX_TABIX as TABIX_VCF } from '../../../../modules/tabix/tabix/main.nf' +include { TABIX_TABIX as TABIX_BED } from '../../../../modules/tabix/tabix/main.nf' +include { TABIX_TABIX as TABIX_GFF } from '../../../../modules/tabix/tabix/main.nf' +include { TABIX_TABIX as TABIX_VCF_TBI } from '../../../../modules/tabix/tabix/main.nf' +include { TABIX_TABIX as TABIX_VCF_CSI } from '../../../../modules/tabix/tabix/main.nf' workflow test_tabix_tabix_bed { input = [ [ id:'B.bed' ], // meta map @@ -22,10 +23,18 @@ workflow test_tabix_tabix_gff { TABIX_GFF ( input ) } -workflow test_tabix_tabix_vcf { +workflow test_tabix_tabix_vcf_tbi { input = [ [ id:'test.vcf' ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true) ] ] - TABIX_VCF ( input ) + TABIX_VCF_TBI ( input ) +} + +workflow test_tabix_tabix_vcf_csi { + input = [ [ id:'test.vcf' ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_vcf_gz'], checkIfExists: true) ] + ] + + TABIX_VCF_CSI ( input ) } diff --git a/tests/modules/tabix/tabix/nextflow.config b/tests/modules/tabix/tabix/nextflow.config index aa97a873..139e0865 100644 --- a/tests/modules/tabix/tabix/nextflow.config +++ b/tests/modules/tabix/tabix/nextflow.config @@ -10,8 +10,12 @@ process { ext.args = '-p gff' } - withName: TABIX_VCF { + withName: TABIX_VCF_TBI { ext.args = '-p vcf' } + withName: TABIX_VCF_CSI { + ext.args = '-p vcf --csi' + } + } diff --git a/tests/modules/tabix/tabix/test.yml b/tests/modules/tabix/tabix/test.yml index 46be28dd..6d168ef5 100644 --- a/tests/modules/tabix/tabix/test.yml +++ b/tests/modules/tabix/tabix/test.yml @@ -15,10 +15,18 @@ - path: ./output/tabix/genome.gff3.gz.tbi md5sum: f79a67d95a98076e04fbe0455d825926 - name: tabix tabix vcf - command: nextflow run ./tests/modules/tabix/tabix -entry test_tabix_tabix_vcf -c ./tests/config/nextflow.config -c ./tests/modules/tabix/tabix/nextflow.config + command: nextflow run ./tests/modules/tabix/tabix -entry test_tabix_tabix_vcf_tbi -c ./tests/config/nextflow.config -c ./tests/modules/tabix/tabix/nextflow.config tags: - tabix - tabix/tabix files: - path: output/tabix/test.vcf.gz.tbi md5sum: 36e11bf96ed0af4a92caa91a68612d64 +- name: tabix tabix vcf csi + command: nextflow run ./tests/modules/tabix/tabix -entry test_tabix_tabix_vcf_csi -c ./tests/config/nextflow.config -c ./tests/modules/tabix/tabix/nextflow.config + tags: + - tabix + - tabix/tabix + files: + - path: output/tabix/test.vcf.gz.csi + md5sum: 5f930522d2b9dcdba2807b7da4dfa3fd From 6678ad4426664076d912dab488ea641f44c1fdb6 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 14:54:20 +0200 Subject: [PATCH 282/592] Added a header to the VCF --- modules/vardictjava/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 3e036ebd..a28cb539 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -26,7 +26,7 @@ process VARDICTJAVA { """ vardict-java \\ $args \\ - -c 1 -S 2 -E 3 \\ + -c 1 -S 2 -E 3 -h \\ -b $bam \\ -th $task.cpus \\ -N $prefix \\ From bdff37c3d7c880f599af223504808306e75e2d76 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 15:33:27 +0200 Subject: [PATCH 283/592] Added the statistical tests and conversion to vcf --- modules/vardictjava/main.nf | 7 ++++++- tests/modules/vardictjava/nextflow.config | 1 + tests/modules/vardictjava/test.yml | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index a28cb539..92051074 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -21,17 +21,22 @@ process VARDICTJAVA { script: def args = task.ext.args ?: '' + def args_conversion = task.ext.args_conversion ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ vardict-java \\ $args \\ - -c 1 -S 2 -E 3 -h \\ + -c 1 -S 2 -E 3 \\ -b $bam \\ -th $task.cpus \\ -N $prefix \\ -G $reference_fasta \\ $regions_of_interest \\ + | teststrandbias.R \\ + | var2vcf_valid.pl \\ + $args_conversion \\ + -N $prefix \\ | gzip -c > ${prefix}.vcf.gz cat <<-END_VERSIONS > versions.yml diff --git a/tests/modules/vardictjava/nextflow.config b/tests/modules/vardictjava/nextflow.config index 5dc176a9..fc698f59 100644 --- a/tests/modules/vardictjava/nextflow.config +++ b/tests/modules/vardictjava/nextflow.config @@ -4,5 +4,6 @@ process { withName: VARDICTJAVA { ext.args = '' + ext.args_conversion = '' } } \ No newline at end of file diff --git a/tests/modules/vardictjava/test.yml b/tests/modules/vardictjava/test.yml index 77aa9047..549d688e 100644 --- a/tests/modules/vardictjava/test.yml +++ b/tests/modules/vardictjava/test.yml @@ -4,6 +4,6 @@ - vardictjava files: - path: output/vardictjava/test.vcf.gz - md5sum: 2179dcaee6183495b421293f42db11b5 + md5sum: 3f1f227afc532bddeb58f16fd3013fc8 - path: output/vardictjava/versions.yml md5sum: aac455b8c9c9194c5fed80e4fd495b96 From d626a1dcd3ca759c2c398efe49642a39d843ecd7 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 15:41:43 +0200 Subject: [PATCH 284/592] Removed a whitespace in meta.yml... --- modules/vardictjava/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 39368f81..e3b2efe7 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -25,7 +25,7 @@ input: type: file description: BAM/SAM file pattern: "*.{bam,sam}" - + - reference_fasta: type: file description: FASTA of the reference genome From 4b04ca22ddc577951bc59a693e247c6ff5949dd7 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Thu, 28 Apr 2022 16:38:49 +0200 Subject: [PATCH 285/592] Variable name change for var2vcf conversion arguments --- modules/vardictjava/main.nf | 4 ++-- tests/modules/vardictjava/nextflow.config | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 92051074..08318c29 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -21,7 +21,7 @@ process VARDICTJAVA { script: def args = task.ext.args ?: '' - def args_conversion = task.ext.args_conversion ?: '' + def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ @@ -35,7 +35,7 @@ process VARDICTJAVA { $regions_of_interest \\ | teststrandbias.R \\ | var2vcf_valid.pl \\ - $args_conversion \\ + $args2 \\ -N $prefix \\ | gzip -c > ${prefix}.vcf.gz diff --git a/tests/modules/vardictjava/nextflow.config b/tests/modules/vardictjava/nextflow.config index fc698f59..e08201cc 100644 --- a/tests/modules/vardictjava/nextflow.config +++ b/tests/modules/vardictjava/nextflow.config @@ -4,6 +4,6 @@ process { withName: VARDICTJAVA { ext.args = '' - ext.args_conversion = '' + ext.args2 = '' } } \ No newline at end of file From c7408538746bd2c8d64418691c0e0440483c48da Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Thu, 28 Apr 2022 16:42:44 +0200 Subject: [PATCH 286/592] Antismash db output patch 1 (#3) * Update main.nf * Update meta.yml * Update test.yml --- .../antismashlitedownloaddatabases/main.nf | 6 +++--- .../antismashlitedownloaddatabases/meta.yml | 18 ++++-------------- .../antismashlitedownloaddatabases/test.yml | 9 ++++----- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/modules/antismash/antismashlitedownloaddatabases/main.nf b/modules/antismash/antismashlitedownloaddatabases/main.nf index 72314eee..5f9141f0 100644 --- a/modules/antismash/antismashlitedownloaddatabases/main.nf +++ b/modules/antismash/antismashlitedownloaddatabases/main.nf @@ -27,9 +27,7 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { output: path("antismash_db") , emit: database - path("css"), emit: css_dir - path("detection"), emit: detection_dir - path("modules"), emit: modules_dir + path("antismash_dir"), emit: antismash_dir path "versions.yml", emit: versions when: @@ -42,6 +40,8 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { --database-dir antismash_db \\ $args + cp -r /usr/local/lib/python3.8/site-packages/antismash antismash_dir + cat <<-END_VERSIONS > versions.yml "${task.process}": antismash-lite: \$(antismash --version | sed 's/antiSMASH //') diff --git a/modules/antismash/antismashlitedownloaddatabases/meta.yml b/modules/antismash/antismashlitedownloaddatabases/meta.yml index 619dc8c2..4b9644c4 100644 --- a/modules/antismash/antismashlitedownloaddatabases/meta.yml +++ b/modules/antismash/antismashlitedownloaddatabases/meta.yml @@ -27,7 +27,7 @@ input: - database_css: type: directory description: | - antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by ther use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. pattern: "css" - database_detection: type: directory @@ -50,21 +50,11 @@ output: type: directory description: Download directory for antiSMASH databases pattern: "antismash_db" - - css_dir: + - antismash_dir: type: directory description: | - antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. - pattern: "css" - - detection_dir: - type: directory - description: | - antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. - pattern: "detection" - - modules_dir: - type: directory - description: | - antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. - pattern: "modules" + antismash installation folder which is being modified during the antiSMASH database downloading step. The modified files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database and installation folder in pipelines. + pattern: "antismash_dir" authors: - "@jasmezz" diff --git a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml index 1079363c..f9143163 100644 --- a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml +++ b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml @@ -1,17 +1,16 @@ - name: antismash antismashlitedownloaddatabases test_antismash_antismashlitedownloaddatabases command: nextflow run tests/modules/antismash/antismashlitedownloaddatabases -entry test_antismash_antismashlitedownloaddatabases -c tests/config/nextflow.config tags: - - antismash - antismash/antismashlitedownloaddatabases + - antismash files: - path: output/antismash/versions.yml - md5sum: 24859c67023abab99de295d3675a24b6 + md5sum: e2656c8d2bcc7469eba40eb1ee5c91b3 - path: output/antismash/antismash_db - path: output/antismash/antismash_db/clusterblast - path: output/antismash/antismash_db/clustercompare - path: output/antismash/antismash_db/pfam - path: output/antismash/antismash_db/resfam - path: output/antismash/antismash_db/tigrfam - - path: output/antismash/css - - path: output/antismash/detection - - path: output/antismash/modules + - path: output/antismash/antismash_dir + - path: output/antismash/antismash_dir/detection/hmm_detection/data/bgc_seeds.hmm From 39258e53d7b6168fc576d1d46dbd78c286919ec1 Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Thu, 28 Apr 2022 17:09:40 +0200 Subject: [PATCH 287/592] Update checksum in test.yml --- tests/modules/antismash/antismashlitedownloaddatabases/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml index f9143163..b4a964a0 100644 --- a/tests/modules/antismash/antismashlitedownloaddatabases/test.yml +++ b/tests/modules/antismash/antismashlitedownloaddatabases/test.yml @@ -5,7 +5,7 @@ - antismash files: - path: output/antismash/versions.yml - md5sum: e2656c8d2bcc7469eba40eb1ee5c91b3 + md5sum: 24859c67023abab99de295d3675a24b6 - path: output/antismash/antismash_db - path: output/antismash/antismash_db/clusterblast - path: output/antismash/antismash_db/clustercompare From 5be6afd6b1e9b4362ad9f3e43e4a93e0ef4af423 Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Thu, 28 Apr 2022 12:29:39 -0400 Subject: [PATCH 288/592] changed container --- modules/srst2/srst2/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/srst2/srst2/main.nf b/modules/srst2/srst2/main.nf index fc665fad..5f69205d 100644 --- a/modules/srst2/srst2/main.nf +++ b/modules/srst2/srst2/main.nf @@ -4,8 +4,8 @@ process SRST2_SRST2 { conda (params.enable_conda ? "bioconda::srst2=0.2.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/srst2%3A0.2.0--py_4': - 'quay.io/biocontainers/srst2:0.2.0--py_4'}" + 'https://depot.galaxyproject.org/singularity/srst2%3A0.2.0--py27_2': + 'quay.io/biocontainers/srst2:0.2.0--py27_2'}" input: tuple val(meta), path(fastq_s), path(db) From e29a69077d470734cd721be8932a1e5b6bf64ff4 Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Thu, 28 Apr 2022 12:30:04 -0400 Subject: [PATCH 289/592] add doi --- modules/srst2/srst2/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/srst2/srst2/meta.yml b/modules/srst2/srst2/meta.yml index 31cf4de0..17d9226d 100644 --- a/modules/srst2/srst2/meta.yml +++ b/modules/srst2/srst2/meta.yml @@ -13,7 +13,7 @@ tools: homepage: { http://katholt.github.io/srst2/ } documentation: { https://github.com/katholt/srst2/blob/master/README.md } tool_dev_url: { https://github.com/katholt/srst2 } - doi: "" + doi: "10.1186/s13073-014-0090-6" licence: ["BSD"] input: From 9e7e10305b98e57f221de07d56bc7add2cfbd263 Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Thu, 28 Apr 2022 14:02:28 -0400 Subject: [PATCH 290/592] Update modules/srst2/srst2/meta.yml Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/srst2/srst2/meta.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/srst2/srst2/meta.yml b/modules/srst2/srst2/meta.yml index 17d9226d..f70d3780 100644 --- a/modules/srst2/srst2/meta.yml +++ b/modules/srst2/srst2/meta.yml @@ -10,9 +10,9 @@ keywords: tools: - srst2: description: "Short Read Sequence Typing for Bacterial Pathogens" - homepage: { http://katholt.github.io/srst2/ } - documentation: { https://github.com/katholt/srst2/blob/master/README.md } - tool_dev_url: { https://github.com/katholt/srst2 } + homepage: "http://katholt.github.io/srst2/" + documentation: "https://github.com/katholt/srst2/blob/master/README.md" + tool_dev_url: "https://github.com/katholt/srst2" doi: "10.1186/s13073-014-0090-6" licence: ["BSD"] From 842ae3982bd2238cbf5a6e50874c287962573cd9 Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Thu, 28 Apr 2022 14:39:02 -0400 Subject: [PATCH 291/592] Update meta.yml --- modules/srst2/srst2/meta.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/srst2/srst2/meta.yml b/modules/srst2/srst2/meta.yml index f70d3780..3755fb34 100644 --- a/modules/srst2/srst2/meta.yml +++ b/modules/srst2/srst2/meta.yml @@ -49,11 +49,11 @@ output: pattern: "versions.yml" - txt: type: file - description: results text file + description: A detailed report, with one row per gene per sample described here: https://github.com/katholt/srst2#gene-typing pattern: "*_fullgenes_*_results.txt" - txt: type: file - description: results text file + description: A tabulated summary report of samples x genes. pattern: "*_genes_*_results.txt" - bam: type: file From 218769d7df89c78ed253f4a5a70b436e4de17eba Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Thu, 28 Apr 2022 14:41:37 -0400 Subject: [PATCH 292/592] Update modules/srst2/srst2/main.nf Co-authored-by: Edmund Miller --- modules/srst2/srst2/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/srst2/srst2/main.nf b/modules/srst2/srst2/main.nf index 5f69205d..4ee9f6a6 100644 --- a/modules/srst2/srst2/main.nf +++ b/modules/srst2/srst2/main.nf @@ -29,7 +29,7 @@ process SRST2_SRST2 { } else if (meta.db=="mlst") { database = "--mlst_db ${db}" } else { - return + error "Please set meta.db to either \"gene\" or \"mlst\"" } """ srst2 \\ From 2efa5a09abb1393f10ffa240cff388e09dab9b40 Mon Sep 17 00:00:00 2001 From: Simone Carpanzano <96130486+carpanz@users.noreply.github.com> Date: Fri, 29 Apr 2022 00:00:13 +0200 Subject: [PATCH 293/592] Update main.nf $args line 28 --- modules/krona/ktimporttaxonomy/main.nf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/krona/ktimporttaxonomy/main.nf b/modules/krona/ktimporttaxonomy/main.nf index 7837bb87..4fa15669 100644 --- a/modules/krona/ktimporttaxonomy/main.nf +++ b/modules/krona/ktimporttaxonomy/main.nf @@ -23,7 +23,10 @@ process KRONA_KTIMPORTTAXONOMY { script: def args = task.ext.args ?: '' """ - ktImportTaxonomy "$report" -tax taxonomy + ktImportTaxonomy \\ + "$report" \\ + $args \\ + -tax taxonomy cat <<-END_VERSIONS > versions.yml "${task.process}": From 10a3718ad67ff27f99551c8a5f39c9936e6263b3 Mon Sep 17 00:00:00 2001 From: Simone Carpanzano <96130486+carpanz@users.noreply.github.com> Date: Fri, 29 Apr 2022 00:03:54 +0200 Subject: [PATCH 294/592] Update test_data.config add 'metagenome' in sarscov2 --- tests/config/test_data.config | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 1a5c377c..51454c39 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -110,6 +110,10 @@ params { test_sequencing_summary = "${test_data_dir}/genomics/sarscov2/nanopore/sequencing_summary/test.sequencing_summary.txt" } + 'metagenome' { + classified_reads_alignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt + report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt + } } 'homo_sapiens' { 'genome' { From f13a0070d0f68ff47fc6e1cac7b21b88e52f877f Mon Sep 17 00:00:00 2001 From: Simone Carpanzano <96130486+carpanz@users.noreply.github.com> Date: Fri, 29 Apr 2022 00:04:49 +0200 Subject: [PATCH 295/592] Update test_data.config --- tests/config/test_data.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 51454c39..ff97106d 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -112,7 +112,7 @@ params { } 'metagenome' { classified_reads_alignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt - report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt + report_txt = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt } } 'homo_sapiens' { From a76be27d9f071129d1a0fe9c952c6452cf2ef05f Mon Sep 17 00:00:00 2001 From: Simone Carpanzano <96130486+carpanz@users.noreply.github.com> Date: Fri, 29 Apr 2022 00:06:55 +0200 Subject: [PATCH 296/592] Update test_data.config --- tests/config/test_data.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index ff97106d..7f305cda 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -112,7 +112,7 @@ params { } 'metagenome' { classified_reads_alignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt - report_txt = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt + report = '${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt } } 'homo_sapiens' { From a6026e6d3079490a7ab94c456bf439bfb4d0747d Mon Sep 17 00:00:00 2001 From: Simone Carpanzano <96130486+carpanz@users.noreply.github.com> Date: Fri, 29 Apr 2022 00:08:27 +0200 Subject: [PATCH 297/592] Update test_data.config --- tests/config/test_data.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 7f305cda..579695a8 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -111,8 +111,8 @@ params { test_sequencing_summary = "${test_data_dir}/genomics/sarscov2/nanopore/sequencing_summary/test.sequencing_summary.txt" } 'metagenome' { - classified_reads_alignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt - report = '${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt + classified_reads_alignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt" + report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt" } } 'homo_sapiens' { From 05e283405c7a4088f7c65f79ba4a2acef06ce839 Mon Sep 17 00:00:00 2001 From: Simone Carpanzano <96130486+carpanz@users.noreply.github.com> Date: Fri, 29 Apr 2022 00:13:01 +0200 Subject: [PATCH 298/592] Update test_data.config --- tests/config/test_data.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 579695a8..4337d5b9 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -111,7 +111,7 @@ params { test_sequencing_summary = "${test_data_dir}/genomics/sarscov2/nanopore/sequencing_summary/test.sequencing_summary.txt" } 'metagenome' { - classified_reads_alignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt" + classified_reads_assignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt" report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt" } } From 6ca6de91f8da9b8cc9a34f7ef6469eb0f851604d Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 07:47:24 +0200 Subject: [PATCH 299/592] bump picard version across the board --- modules/picard/addorreplacereadgroups/main.nf | 6 +++--- modules/picard/cleansam/main.nf | 6 +++--- modules/picard/collecthsmetrics/main.nf | 6 +++--- modules/picard/collectmultiplemetrics/main.nf | 6 +++--- modules/picard/collectwgsmetrics/main.nf | 6 +++--- modules/picard/createsequencedictionary/main.nf | 6 +++--- modules/picard/crosscheckfingerprints/main.nf | 6 +++--- modules/picard/filtersamreads/main.nf | 6 +++--- modules/picard/fixmateinformation/main.nf | 6 +++--- modules/picard/liftovervcf/main.nf | 6 +++--- modules/picard/markduplicates/main.nf | 6 +++--- modules/picard/mergesamfiles/main.nf | 6 +++--- modules/picard/sortsam/main.nf | 6 +++--- modules/picard/sortvcf/main.nf | 6 +++--- 14 files changed, 42 insertions(+), 42 deletions(-) diff --git a/modules/picard/addorreplacereadgroups/main.nf b/modules/picard/addorreplacereadgroups/main.nf index 8e1d10af..e395f4d7 100644 --- a/modules/picard/addorreplacereadgroups/main.nf +++ b/modules/picard/addorreplacereadgroups/main.nf @@ -2,10 +2,10 @@ process PICARD_ADDORREPLACEREADGROUPS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::picard=2.26.9" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.9--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.9--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/picard/cleansam/main.nf b/modules/picard/cleansam/main.nf index fb435911..4cd4db58 100644 --- a/modules/picard/cleansam/main.nf +++ b/modules/picard/cleansam/main.nf @@ -2,10 +2,10 @@ process PICARD_CLEANSAM { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.9" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.9--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.9--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/picard/collecthsmetrics/main.nf b/modules/picard/collecthsmetrics/main.nf index ef7a9b9f..26ba8a04 100644 --- a/modules/picard/collecthsmetrics/main.nf +++ b/modules/picard/collecthsmetrics/main.nf @@ -2,10 +2,10 @@ process PICARD_COLLECTHSMETRICS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/picard/collectmultiplemetrics/main.nf b/modules/picard/collectmultiplemetrics/main.nf index 340463a8..0c79b7a5 100644 --- a/modules/picard/collectmultiplemetrics/main.nf +++ b/modules/picard/collectmultiplemetrics/main.nf @@ -2,10 +2,10 @@ process PICARD_COLLECTMULTIPLEMETRICS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/picard/collectwgsmetrics/main.nf b/modules/picard/collectwgsmetrics/main.nf index f4efaa4c..ef53d7bd 100644 --- a/modules/picard/collectwgsmetrics/main.nf +++ b/modules/picard/collectwgsmetrics/main.nf @@ -2,10 +2,10 @@ process PICARD_COLLECTWGSMETRICS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/picard/createsequencedictionary/main.nf b/modules/picard/createsequencedictionary/main.nf index 96069e9f..3a8f1477 100644 --- a/modules/picard/createsequencedictionary/main.nf +++ b/modules/picard/createsequencedictionary/main.nf @@ -2,10 +2,10 @@ process PICARD_CREATESEQUENCEDICTIONARY { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.9" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.9--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.9--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(fasta) diff --git a/modules/picard/crosscheckfingerprints/main.nf b/modules/picard/crosscheckfingerprints/main.nf index b3dface5..d3b59402 100644 --- a/modules/picard/crosscheckfingerprints/main.nf +++ b/modules/picard/crosscheckfingerprints/main.nf @@ -2,10 +2,10 @@ process PICARD_CROSSCHECKFINGERPRINTS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(input1) diff --git a/modules/picard/filtersamreads/main.nf b/modules/picard/filtersamreads/main.nf index ab75abfa..adedcdc2 100644 --- a/modules/picard/filtersamreads/main.nf +++ b/modules/picard/filtersamreads/main.nf @@ -2,10 +2,10 @@ process PICARD_FILTERSAMREADS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bam), path(readlist) diff --git a/modules/picard/fixmateinformation/main.nf b/modules/picard/fixmateinformation/main.nf index 763f3bb4..1993e4fd 100644 --- a/modules/picard/fixmateinformation/main.nf +++ b/modules/picard/fixmateinformation/main.nf @@ -2,10 +2,10 @@ process PICARD_FIXMATEINFORMATION { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::picard=2.26.9" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.9--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.9--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/picard/liftovervcf/main.nf b/modules/picard/liftovervcf/main.nf index cdbd637e..7ce694e9 100644 --- a/modules/picard/liftovervcf/main.nf +++ b/modules/picard/liftovervcf/main.nf @@ -2,10 +2,10 @@ process PICARD_LIFTOVERVCF { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(input_vcf) diff --git a/modules/picard/markduplicates/main.nf b/modules/picard/markduplicates/main.nf index e754a587..b9fec576 100644 --- a/modules/picard/markduplicates/main.nf +++ b/modules/picard/markduplicates/main.nf @@ -2,10 +2,10 @@ process PICARD_MARKDUPLICATES { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/picard/mergesamfiles/main.nf b/modules/picard/mergesamfiles/main.nf index ef5c3980..7b0185cd 100644 --- a/modules/picard/mergesamfiles/main.nf +++ b/modules/picard/mergesamfiles/main.nf @@ -2,10 +2,10 @@ process PICARD_MERGESAMFILES { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bams) diff --git a/modules/picard/sortsam/main.nf b/modules/picard/sortsam/main.nf index adec17cb..cee60fd1 100644 --- a/modules/picard/sortsam/main.nf +++ b/modules/picard/sortsam/main.nf @@ -2,10 +2,10 @@ process PICARD_SORTSAM { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/picard/sortvcf/main.nf b/modules/picard/sortvcf/main.nf index 4047545e..5fe0ecfd 100644 --- a/modules/picard/sortvcf/main.nf +++ b/modules/picard/sortvcf/main.nf @@ -2,10 +2,10 @@ process PICARD_SORTVCF { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: tuple val(meta), path(vcf) From 00467ac64affbbc17b255762f10a6c8fa362aabc Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 07:57:11 +0200 Subject: [PATCH 300/592] update command line syntax for all tools --- modules/picard/addorreplacereadgroups/main.nf | 2 +- modules/picard/collecthsmetrics/main.nf | 8 ++++---- modules/picard/collectmultiplemetrics/main.nf | 6 +++--- modules/picard/collectwgsmetrics/main.nf | 6 +++--- modules/picard/createsequencedictionary/main.nf | 4 ++-- modules/picard/liftovervcf/main.nf | 10 +++++----- modules/picard/markduplicates/main.nf | 6 +++--- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/modules/picard/addorreplacereadgroups/main.nf b/modules/picard/addorreplacereadgroups/main.nf index e395f4d7..55200d2e 100644 --- a/modules/picard/addorreplacereadgroups/main.nf +++ b/modules/picard/addorreplacereadgroups/main.nf @@ -43,7 +43,7 @@ process PICARD_ADDORREPLACEREADGROUPS { -PL ${PLATFORM} \\ -PU ${BARCODE} \\ -SM ${SAMPLE} \\ - -CREATE_INDEX true + --CREATE_INDEX true cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/collecthsmetrics/main.nf b/modules/picard/collecthsmetrics/main.nf index 26ba8a04..317aff4b 100644 --- a/modules/picard/collecthsmetrics/main.nf +++ b/modules/picard/collecthsmetrics/main.nf @@ -38,10 +38,10 @@ process PICARD_COLLECTHSMETRICS { CollectHsMetrics \\ $args \\ $reference \\ - -BAIT_INTERVALS $bait_intervals \\ - -TARGET_INTERVALS $target_intervals \\ - -INPUT $bam \\ - -OUTPUT ${prefix}.CollectHsMetrics.coverage_metrics + --BAIT_INTERVALS $bait_intervals \\ + --TARGET_INTERVALS $target_intervals \\ + --INPUT $bam \\ + --OUTPUT ${prefix}.CollectHsMetrics.coverage_metrics cat <<-END_VERSIONS > versions.yml diff --git a/modules/picard/collectmultiplemetrics/main.nf b/modules/picard/collectmultiplemetrics/main.nf index 0c79b7a5..a653b549 100644 --- a/modules/picard/collectmultiplemetrics/main.nf +++ b/modules/picard/collectmultiplemetrics/main.nf @@ -33,9 +33,9 @@ process PICARD_COLLECTMULTIPLEMETRICS { -Xmx${avail_mem}g \\ CollectMultipleMetrics \\ $args \\ - INPUT=$bam \\ - OUTPUT=${prefix}.CollectMultipleMetrics \\ - REFERENCE_SEQUENCE=$fasta + --INPUT $bam \\ + --OUTPUT ${prefix}.CollectMultipleMetrics \\ + --REFERENCE_SEQUENCE $fasta cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/collectwgsmetrics/main.nf b/modules/picard/collectwgsmetrics/main.nf index ef53d7bd..957c8058 100644 --- a/modules/picard/collectwgsmetrics/main.nf +++ b/modules/picard/collectwgsmetrics/main.nf @@ -32,9 +32,9 @@ process PICARD_COLLECTWGSMETRICS { -Xmx${avail_mem}g \\ CollectWgsMetrics \\ $args \\ - INPUT=$bam \\ - OUTPUT=${prefix}.CollectWgsMetrics.coverage_metrics \\ - REFERENCE_SEQUENCE=$fasta + --INPUT $bam \\ + --OUTPUT ${prefix}.CollectWgsMetrics.coverage_metrics \\ + --REFERENCE_SEQUENCE $fasta cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/createsequencedictionary/main.nf b/modules/picard/createsequencedictionary/main.nf index 3a8f1477..3a8bb62a 100644 --- a/modules/picard/createsequencedictionary/main.nf +++ b/modules/picard/createsequencedictionary/main.nf @@ -31,8 +31,8 @@ process PICARD_CREATESEQUENCEDICTIONARY { -Xmx${avail_mem}g \\ CreateSequenceDictionary \\ $args \\ - R=$fasta \\ - O=${prefix}.dict + -R $fasta \\ + -O ${prefix}.dict cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/liftovervcf/main.nf b/modules/picard/liftovervcf/main.nf index 7ce694e9..ea3f4cb7 100644 --- a/modules/picard/liftovervcf/main.nf +++ b/modules/picard/liftovervcf/main.nf @@ -35,11 +35,11 @@ process PICARD_LIFTOVERVCF { -Xmx${avail_mem}g \\ LiftoverVcf \\ $args \\ - I=$input_vcf \\ - O=${prefix}.lifted.vcf.gz \\ - CHAIN=$chain \\ - REJECT=${prefix}.unlifted.vcf.gz \\ - R=$fasta + -I $input_vcf \\ + -O ${prefix}.lifted.vcf.gz \\ + --CHAIN $chain \\ + --REJECT ${prefix}.unlifted.vcf.gz \\ + -R $fasta cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/markduplicates/main.nf b/modules/picard/markduplicates/main.nf index b9fec576..58b6b88a 100644 --- a/modules/picard/markduplicates/main.nf +++ b/modules/picard/markduplicates/main.nf @@ -33,9 +33,9 @@ process PICARD_MARKDUPLICATES { -Xmx${avail_mem}g \\ MarkDuplicates \\ $args \\ - I=$bam \\ - O=${prefix}.bam \\ - M=${prefix}.MarkDuplicates.metrics.txt + -I $bam \\ + -O ${prefix}.bam \\ + -M ${prefix}.MarkDuplicates.metrics.txt cat <<-END_VERSIONS > versions.yml "${task.process}": From b72ec05d69140c6a9c6054175d1412b2f116466f Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 08:19:42 +0200 Subject: [PATCH 301/592] drop md5sum from versions.yml --- tests/modules/picard/addorreplacereadgroups/test.yml | 1 - tests/modules/picard/cleansam/test.yml | 1 - tests/modules/picard/createsequencedictionary/test.yml | 1 - 3 files changed, 3 deletions(-) diff --git a/tests/modules/picard/addorreplacereadgroups/test.yml b/tests/modules/picard/addorreplacereadgroups/test.yml index aa1536bb..6ee81737 100644 --- a/tests/modules/picard/addorreplacereadgroups/test.yml +++ b/tests/modules/picard/addorreplacereadgroups/test.yml @@ -7,4 +7,3 @@ - path: output/picard/test.bam md5sum: 7b82f3461c2d80fc6a10385e78c9427f - path: output/picard/versions.yml - md5sum: 8a2d176295e1343146ea433c79bb517f diff --git a/tests/modules/picard/cleansam/test.yml b/tests/modules/picard/cleansam/test.yml index 3b235d07..08dcd84d 100644 --- a/tests/modules/picard/cleansam/test.yml +++ b/tests/modules/picard/cleansam/test.yml @@ -7,4 +7,3 @@ - path: output/picard/test.bam md5sum: a48f8e77a1480445efc57570c3a38a68 - path: output/picard/versions.yml - md5sum: e6457d7c6de51bf6f4b577eda65e57ac diff --git a/tests/modules/picard/createsequencedictionary/test.yml b/tests/modules/picard/createsequencedictionary/test.yml index 2a43be41..59f2dd44 100644 --- a/tests/modules/picard/createsequencedictionary/test.yml +++ b/tests/modules/picard/createsequencedictionary/test.yml @@ -7,4 +7,3 @@ - path: output/picard/test.dict contains: ["SN:MT192765.1"] - path: output/picard/versions.yml - md5sum: b3d8c7ea65b8a6d3237b153d13fe2014 From ec10f98d558a84da79ba7c90c2d57f6c6f0f7af5 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 09:32:32 +0200 Subject: [PATCH 302/592] picard CollectWgsMetrics: update to new cli args (#1578) * update to new cli args * remove bam index from tuple, not needed by program * bump picard version Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/picard/collectwgsmetrics/main.nf | 14 +++++++------- tests/modules/picard/collectwgsmetrics/main.nf | 3 +-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/modules/picard/collectwgsmetrics/main.nf b/modules/picard/collectwgsmetrics/main.nf index f4efaa4c..d9c1ec7c 100644 --- a/modules/picard/collectwgsmetrics/main.nf +++ b/modules/picard/collectwgsmetrics/main.nf @@ -2,13 +2,13 @@ process PICARD_COLLECTWGSMETRICS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::picard=2.26.10" : null) + conda (params.enable_conda ? "bioconda::picard=2.27.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/picard:2.26.10--hdfd78af_0' : - 'quay.io/biocontainers/picard:2.26.10--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/picard:2.27.1--hdfd78af_0' : + 'quay.io/biocontainers/picard:2.27.1--hdfd78af_0' }" input: - tuple val(meta), path(bam), path(bai) + tuple val(meta), path(bam) path fasta output: @@ -32,9 +32,9 @@ process PICARD_COLLECTWGSMETRICS { -Xmx${avail_mem}g \\ CollectWgsMetrics \\ $args \\ - INPUT=$bam \\ - OUTPUT=${prefix}.CollectWgsMetrics.coverage_metrics \\ - REFERENCE_SEQUENCE=$fasta + -INPUT $bam \\ + -OUTPUT ${prefix}.CollectWgsMetrics.coverage_metrics \\ + -REFERENCE_SEQUENCE $fasta cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/tests/modules/picard/collectwgsmetrics/main.nf b/tests/modules/picard/collectwgsmetrics/main.nf index 1d75a2bd..eddf5603 100644 --- a/tests/modules/picard/collectwgsmetrics/main.nf +++ b/tests/modules/picard/collectwgsmetrics/main.nf @@ -6,8 +6,7 @@ include { PICARD_COLLECTWGSMETRICS } from '../../../../modules/picard/collectwgs workflow test_picard_collectwgsmetrics { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) From 1a5a9e7b4009dcf34e6867dd1a5a1d9a718b027b Mon Sep 17 00:00:00 2001 From: Lauri Mesilaakso Date: Fri, 29 Apr 2022 09:37:23 +0200 Subject: [PATCH 303/592] Fix typo (#1586) --- modules/minimap2/align/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/minimap2/align/main.nf b/modules/minimap2/align/main.nf index 7ba05ee9..08ac6eef 100644 --- a/modules/minimap2/align/main.nf +++ b/modules/minimap2/align/main.nf @@ -27,8 +27,8 @@ process MINIMAP2_ALIGN { def prefix = task.ext.prefix ?: "${meta.id}" def input_reads = meta.single_end ? "$reads" : "${reads[0]} ${reads[1]}" def bam_output = bam_format ? "-a | samtools sort | samtools view -@ ${task.cpus} -b -h -o ${prefix}.bam" : "-o ${prefix}.paf" - def cigar_paf = cigar_paf_format && !sam_format ? "-c" : '' - def set_cigar_bam = cigar_bam && sam_format ? "-L" : '' + def cigar_paf = cigar_paf_format && !bam_format ? "-c" : '' + def set_cigar_bam = cigar_bam && bam_format ? "-L" : '' """ minimap2 \\ $args \\ From 0e01d703ea55899bd048689258d22c153d39b981 Mon Sep 17 00:00:00 2001 From: CMGG ICT Team Date: Fri, 29 Apr 2022 10:12:52 +0200 Subject: [PATCH 304/592] remove version md5sum from fixmateinformation --- tests/modules/picard/fixmateinformation/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/modules/picard/fixmateinformation/test.yml b/tests/modules/picard/fixmateinformation/test.yml index f12f823b..f2f9c491 100644 --- a/tests/modules/picard/fixmateinformation/test.yml +++ b/tests/modules/picard/fixmateinformation/test.yml @@ -7,4 +7,3 @@ - path: output/picard/test.bam md5sum: 746102e8c242c0ef42e045c49d320030 - path: output/picard/versions.yml - md5sum: 4329ba7cdca8f4f6018dfd5c019ba2eb From bda132191db9548cd1fc1c594399cba583bcd061 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 10:13:22 +0200 Subject: [PATCH 305/592] fix args in nextflow.config --- tests/modules/picard/markduplicates/nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/picard/markduplicates/nextflow.config b/tests/modules/picard/markduplicates/nextflow.config index 9178c5b1..40d46110 100644 --- a/tests/modules/picard/markduplicates/nextflow.config +++ b/tests/modules/picard/markduplicates/nextflow.config @@ -3,7 +3,7 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } withName: PICARD_MARKDUPLICATES_UNSORTED { - ext.args = 'ASSUME_SORT_ORDER=queryname' + ext.args = '--ASSUME_SORT_ORDER queryname' } } From b2e4342105d4e6b06edd33ed2613328eb740b4b8 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 10:21:22 +0200 Subject: [PATCH 306/592] fix args in nextflow.config --- tests/modules/picard/liftovervcf/nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/picard/liftovervcf/nextflow.config b/tests/modules/picard/liftovervcf/nextflow.config index e1581bb9..f69fc351 100644 --- a/tests/modules/picard/liftovervcf/nextflow.config +++ b/tests/modules/picard/liftovervcf/nextflow.config @@ -1,5 +1,5 @@ process { - ext.args = "WARN_ON_MISSING_CONTIG=true" + ext.args = "--WARN_ON_MISSING_CONTIG true" publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } } From 42564565b934eeb2449e35ec97ed13ff2a67f1de Mon Sep 17 00:00:00 2001 From: James Fellows Yates Date: Fri, 29 Apr 2022 10:26:17 +0200 Subject: [PATCH 307/592] Update diamond/blastx diamond/blastp to support all possible output formats --- modules/diamond/blastp/main.nf | 17 ++++++++++++++--- modules/diamond/blastp/meta.yml | 9 +++++++++ modules/diamond/blastx/main.nf | 17 ++++++++++++++--- modules/diamond/blastx/meta.yml | 9 +++++++++ tests/modules/diamond/blastp/main.nf | 13 ++++++++++++- tests/modules/diamond/blastp/test.yml | 21 ++++++++++++++++++--- tests/modules/diamond/blastx/main.nf | 13 ++++++++++++- tests/modules/diamond/blastx/test.yml | 24 ++++++++++++++++++++---- 8 files changed, 108 insertions(+), 15 deletions(-) diff --git a/modules/diamond/blastp/main.nf b/modules/diamond/blastp/main.nf index 955952dc..d7c53d6f 100644 --- a/modules/diamond/blastp/main.nf +++ b/modules/diamond/blastp/main.nf @@ -11,10 +11,11 @@ process DIAMOND_BLASTP { input: tuple val(meta), path(fasta) - path db + path db + val outext output: - tuple val(meta), path('*.txt'), emit: txt + tuple val(meta), path('*.{blast,xml,txt,daa,sam,tsv,paf}'), emit: output path "versions.yml" , emit: versions when: @@ -23,6 +24,15 @@ process DIAMOND_BLASTP { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + switch ( outext ) { + case "blast": outfmt = 0; break + case "xml": outfmt = 5; break + case "txt": outfmt = 6; break + case "daa": outfmt = 100; break + case "sam": outfmt = 101; break + case "tsv": outfmt = 102; break + case "paf": outfmt = 103; break + } """ DB=`find -L ./ -name "*.dmnd" | sed 's/.dmnd//'` @@ -31,8 +41,9 @@ process DIAMOND_BLASTP { --threads $task.cpus \\ --db \$DB \\ --query $fasta \\ + --outfmt ${outfmt} \\ $args \\ - --out ${prefix}.txt + --out ${prefix}.${outext} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/diamond/blastp/meta.yml b/modules/diamond/blastp/meta.yml index 8ac1d371..1aa36c23 100644 --- a/modules/diamond/blastp/meta.yml +++ b/modules/diamond/blastp/meta.yml @@ -28,6 +28,14 @@ input: type: directory description: Directory containing the protein blast database pattern: "*" + - outext: + type: string + description: | + Specify the type of output file to be generated. `blast` corresponds to + BLAST pairwise format. `xml` corresponds to BLAST xml format. + `txt` corresponds to to BLAST tabular format. `tsv` corresponds to + taxonomic classification format. + pattern: "blast|xml|txt|daa|sam|tsv|paf" output: - txt: @@ -41,3 +49,4 @@ output: authors: - "@spficklin" + - "@jfy133" diff --git a/modules/diamond/blastx/main.nf b/modules/diamond/blastx/main.nf index 3700bd36..6703c1e4 100644 --- a/modules/diamond/blastx/main.nf +++ b/modules/diamond/blastx/main.nf @@ -11,10 +11,11 @@ process DIAMOND_BLASTX { input: tuple val(meta), path(fasta) - path db + path db + val outext output: - tuple val(meta), path('*.txt'), emit: txt + tuple val(meta), path('*.{blast,xml,txt,daa,sam,tsv,paf}'), emit: output path "versions.yml" , emit: versions when: @@ -23,6 +24,15 @@ process DIAMOND_BLASTX { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + switch ( outext ) { + case "blast": outfmt = 0; break + case "xml": outfmt = 5; break + case "txt": outfmt = 6; break + case "daa": outfmt = 100; break + case "sam": outfmt = 101; break + case "tsv": outfmt = 102; break + case "paf": outfmt = 103; break + } """ DB=`find -L ./ -name "*.dmnd" | sed 's/.dmnd//'` @@ -31,8 +41,9 @@ process DIAMOND_BLASTX { --threads $task.cpus \\ --db \$DB \\ --query $fasta \\ + --outfmt ${outfmt} \\ $args \\ - --out ${prefix}.txt + --out ${prefix}.${outext} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/diamond/blastx/meta.yml b/modules/diamond/blastx/meta.yml index 7eb3d7b4..5ee2d55e 100644 --- a/modules/diamond/blastx/meta.yml +++ b/modules/diamond/blastx/meta.yml @@ -28,6 +28,14 @@ input: type: directory description: Directory containing the nucelotide blast database pattern: "*" + - outext: + type: string + description: | + Specify the type of output file to be generated. `blast` corresponds to + BLAST pairwise format. `xml` corresponds to BLAST xml format. + `txt` corresponds to to BLAST tabular format. `tsv` corresponds to + taxonomic classification format. + pattern: "blast|xml|txt|daa|sam|tsv|paf" output: - txt: @@ -41,3 +49,4 @@ output: authors: - "@spficklin" + - "@jfy133" diff --git a/tests/modules/diamond/blastp/main.nf b/tests/modules/diamond/blastp/main.nf index 87d05bf9..5c1459d8 100644 --- a/tests/modules/diamond/blastp/main.nf +++ b/tests/modules/diamond/blastp/main.nf @@ -9,7 +9,18 @@ workflow test_diamond_blastp { db = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] + outext = 'txt' DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db ) + DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext ) +} + +workflow test_diamond_blastp_daa { + + db = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] + outext = 'daa' + + DIAMOND_MAKEDB ( db ) + DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext ) } diff --git a/tests/modules/diamond/blastp/test.yml b/tests/modules/diamond/blastp/test.yml index 32dfacaa..5e31df1f 100644 --- a/tests/modules/diamond/blastp/test.yml +++ b/tests/modules/diamond/blastp/test.yml @@ -1,8 +1,23 @@ -- name: diamond blastp - command: nextflow run ./tests/modules/diamond/blastp -entry test_diamond_blastp -c ./tests/config/nextflow.config -c ./tests/modules/diamond/blastp/nextflow.config +- name: diamond blastp test_diamond_blastp + command: nextflow run tests/modules/diamond/blastp -entry test_diamond_blastp -c tests/config/nextflow.config tags: - diamond - diamond/blastp files: - - path: ./output/diamond/test.diamond_blastp.txt + - path: output/diamond/genome.fasta.dmnd + md5sum: 2447fb376394c20d43ea3aad2aa5d15d + - path: output/diamond/test.diamond_blastp.txt md5sum: 3ca7f6290c1d8741c573370e6f8b4db0 + - path: output/diamond/versions.yml + +- name: diamond blastp test_diamond_blastp_daa + command: nextflow run tests/modules/diamond/blastp -entry test_diamond_blastp_daa -c tests/config/nextflow.config + tags: + - diamond + - diamond/blastp + files: + - path: output/diamond/genome.fasta.dmnd + md5sum: 2447fb376394c20d43ea3aad2aa5d15d + - path: output/diamond/test.diamond_blastp.daa + md5sum: d4a79ad1fcb2ec69460e5a09a9468db7 + - path: output/diamond/versions.yml diff --git a/tests/modules/diamond/blastx/main.nf b/tests/modules/diamond/blastx/main.nf index 77eb08ea..d6d5a77a 100644 --- a/tests/modules/diamond/blastx/main.nf +++ b/tests/modules/diamond/blastx/main.nf @@ -9,7 +9,18 @@ workflow test_diamond_blastx { db = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] + outext = 'txt' DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db ) + DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext ) +} + +workflow test_diamond_blastx_daa { + + db = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] + outext = 'daa' + + DIAMOND_MAKEDB ( db ) + DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext ) } diff --git a/tests/modules/diamond/blastx/test.yml b/tests/modules/diamond/blastx/test.yml index fe7c6938..6a792f30 100644 --- a/tests/modules/diamond/blastx/test.yml +++ b/tests/modules/diamond/blastx/test.yml @@ -1,8 +1,24 @@ -- name: diamond blastx - command: nextflow run ./tests/modules/diamond/blastx -entry test_diamond_blastx -c ./tests/config/nextflow.config -c ./tests/modules/diamond/blastx/nextflow.config +- name: diamond blastx test_diamond_blastx + command: nextflow run tests/modules/diamond/blastx -entry test_diamond_blastx -c tests/config/nextflow.config tags: - diamond - diamond/blastx files: - - path: ./output/diamond/test.diamond_blastx.txt - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/diamond/genome.fasta.dmnd + md5sum: 2447fb376394c20d43ea3aad2aa5d15d + - path: output/diamond/test.diamond_blastx.txt + - path: output/diamond/versions.yml + md5sum: 747934f57b7c0f8901570500f206eac6 + +- name: diamond blastx test_diamond_blastx_daa + command: nextflow run tests/modules/diamond/blastx -entry test_diamond_blastx_daa -c tests/config/nextflow.config + tags: + - diamond + - diamond/blastx + files: + - path: output/diamond/genome.fasta.dmnd + md5sum: 2447fb376394c20d43ea3aad2aa5d15d + - path: output/diamond/test.diamond_blastx.daa + md5sum: 2a0ce0f7e01dcead828b87d5cbaccf7a + - path: output/diamond/versions.yml + md5sum: 05cbabfd500fc17e26b3d8061c5a78c3 From 7df2fae7469095b2f211f4e183cd5f7de77a2b98 Mon Sep 17 00:00:00 2001 From: James Fellows Yates Date: Fri, 29 Apr 2022 10:26:38 +0200 Subject: [PATCH 308/592] Clean up test data --- tests/modules/diamond/blastp/test.yml | 4 ---- tests/modules/diamond/blastx/test.yml | 6 ------ 2 files changed, 10 deletions(-) diff --git a/tests/modules/diamond/blastp/test.yml b/tests/modules/diamond/blastp/test.yml index 5e31df1f..cb297743 100644 --- a/tests/modules/diamond/blastp/test.yml +++ b/tests/modules/diamond/blastp/test.yml @@ -4,8 +4,6 @@ - diamond - diamond/blastp files: - - path: output/diamond/genome.fasta.dmnd - md5sum: 2447fb376394c20d43ea3aad2aa5d15d - path: output/diamond/test.diamond_blastp.txt md5sum: 3ca7f6290c1d8741c573370e6f8b4db0 - path: output/diamond/versions.yml @@ -16,8 +14,6 @@ - diamond - diamond/blastp files: - - path: output/diamond/genome.fasta.dmnd - md5sum: 2447fb376394c20d43ea3aad2aa5d15d - path: output/diamond/test.diamond_blastp.daa md5sum: d4a79ad1fcb2ec69460e5a09a9468db7 - path: output/diamond/versions.yml diff --git a/tests/modules/diamond/blastx/test.yml b/tests/modules/diamond/blastx/test.yml index 6a792f30..a2d35c80 100644 --- a/tests/modules/diamond/blastx/test.yml +++ b/tests/modules/diamond/blastx/test.yml @@ -4,11 +4,8 @@ - diamond - diamond/blastx files: - - path: output/diamond/genome.fasta.dmnd - md5sum: 2447fb376394c20d43ea3aad2aa5d15d - path: output/diamond/test.diamond_blastx.txt - path: output/diamond/versions.yml - md5sum: 747934f57b7c0f8901570500f206eac6 - name: diamond blastx test_diamond_blastx_daa command: nextflow run tests/modules/diamond/blastx -entry test_diamond_blastx_daa -c tests/config/nextflow.config @@ -16,9 +13,6 @@ - diamond - diamond/blastx files: - - path: output/diamond/genome.fasta.dmnd - md5sum: 2447fb376394c20d43ea3aad2aa5d15d - path: output/diamond/test.diamond_blastx.daa md5sum: 2a0ce0f7e01dcead828b87d5cbaccf7a - path: output/diamond/versions.yml - md5sum: 05cbabfd500fc17e26b3d8061c5a78c3 From 20ebb89ff97a2665106be9cace5ccb9aa4eed1be Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 10:52:40 +0200 Subject: [PATCH 309/592] update to long args --- modules/picard/addorreplacereadgroups/main.nf | 10 +++++----- modules/picard/cleansam/main.nf | 4 ++-- modules/picard/createsequencedictionary/main.nf | 4 ++-- modules/picard/fixmateinformation/main.nf | 4 ++-- modules/picard/liftovervcf/main.nf | 6 +++--- modules/picard/markduplicates/main.nf | 6 +++--- modules/picard/mergesamfiles/main.nf | 4 ++-- modules/picard/sortvcf/main.nf | 4 ++-- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/modules/picard/addorreplacereadgroups/main.nf b/modules/picard/addorreplacereadgroups/main.nf index 55200d2e..fd102f67 100644 --- a/modules/picard/addorreplacereadgroups/main.nf +++ b/modules/picard/addorreplacereadgroups/main.nf @@ -38,11 +38,11 @@ process PICARD_ADDORREPLACEREADGROUPS { -Xmx${avail_mem}g \\ --INPUT ${bam} \\ --OUTPUT ${prefix}.bam \\ - -ID ${ID} \\ - -LB ${LIBRARY} \\ - -PL ${PLATFORM} \\ - -PU ${BARCODE} \\ - -SM ${SAMPLE} \\ + --RGID ${ID} \\ + --RGLB ${LIBRARY} \\ + --RGPL ${PLATFORM} \\ + --RGPU ${BARCODE} \\ + --RGSM ${SAMPLE} \\ --CREATE_INDEX true cat <<-END_VERSIONS > versions.yml diff --git a/modules/picard/cleansam/main.nf b/modules/picard/cleansam/main.nf index 4cd4db58..62989565 100644 --- a/modules/picard/cleansam/main.nf +++ b/modules/picard/cleansam/main.nf @@ -31,8 +31,8 @@ process PICARD_CLEANSAM { -Xmx${avail_mem}g \\ CleanSam \\ ${args} \\ - -I ${bam} \\ - -O ${prefix}.bam + --INPUT ${bam} \\ + --OUTPUT ${prefix}.bam cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/createsequencedictionary/main.nf b/modules/picard/createsequencedictionary/main.nf index 3a8bb62a..735cc97b 100644 --- a/modules/picard/createsequencedictionary/main.nf +++ b/modules/picard/createsequencedictionary/main.nf @@ -31,8 +31,8 @@ process PICARD_CREATESEQUENCEDICTIONARY { -Xmx${avail_mem}g \\ CreateSequenceDictionary \\ $args \\ - -R $fasta \\ - -O ${prefix}.dict + --REFERENCE_SEQUENCE $fasta \\ + --OUTPUT ${prefix}.dict cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/fixmateinformation/main.nf b/modules/picard/fixmateinformation/main.nf index 1993e4fd..539b1082 100644 --- a/modules/picard/fixmateinformation/main.nf +++ b/modules/picard/fixmateinformation/main.nf @@ -31,8 +31,8 @@ process PICARD_FIXMATEINFORMATION { picard \\ FixMateInformation \\ -Xmx${avail_mem}g \\ - -I ${bam} \\ - -O ${prefix}.bam \\ + --INPUT ${bam} \\ + --OUTPUT ${prefix}.bam \\ --VALIDATION_STRINGENCY ${STRINGENCY} cat <<-END_VERSIONS > versions.yml diff --git a/modules/picard/liftovervcf/main.nf b/modules/picard/liftovervcf/main.nf index ea3f4cb7..c92abfeb 100644 --- a/modules/picard/liftovervcf/main.nf +++ b/modules/picard/liftovervcf/main.nf @@ -35,11 +35,11 @@ process PICARD_LIFTOVERVCF { -Xmx${avail_mem}g \\ LiftoverVcf \\ $args \\ - -I $input_vcf \\ - -O ${prefix}.lifted.vcf.gz \\ + --INPUT $input_vcf \\ + --OUTPUT ${prefix}.lifted.vcf.gz \\ --CHAIN $chain \\ --REJECT ${prefix}.unlifted.vcf.gz \\ - -R $fasta + --REFERENCE_SEQUENCE $fasta cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/markduplicates/main.nf b/modules/picard/markduplicates/main.nf index 58b6b88a..1565c647 100644 --- a/modules/picard/markduplicates/main.nf +++ b/modules/picard/markduplicates/main.nf @@ -33,9 +33,9 @@ process PICARD_MARKDUPLICATES { -Xmx${avail_mem}g \\ MarkDuplicates \\ $args \\ - -I $bam \\ - -O ${prefix}.bam \\ - -M ${prefix}.MarkDuplicates.metrics.txt + --INPUT $bam \\ + --OUTPUT ${prefix}.bam \\ + --METRICS_FILE ${prefix}.MarkDuplicates.metrics.txt cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/picard/mergesamfiles/main.nf b/modules/picard/mergesamfiles/main.nf index 7b0185cd..1e32c63a 100644 --- a/modules/picard/mergesamfiles/main.nf +++ b/modules/picard/mergesamfiles/main.nf @@ -33,8 +33,8 @@ process PICARD_MERGESAMFILES { -Xmx${avail_mem}g \\ MergeSamFiles \\ $args \\ - ${'INPUT='+bam_files.join(' INPUT=')} \\ - OUTPUT=${prefix}.bam + ${'--INPUT '+bam_files.join(' --INPUT ')} \\ + --OUTPUT ${prefix}.bam cat <<-END_VERSIONS > versions.yml "${task.process}": picard: \$( echo \$(picard MergeSamFiles --version 2>&1) | grep -o 'Version:.*' | cut -f2- -d:) diff --git a/modules/picard/sortvcf/main.nf b/modules/picard/sortvcf/main.nf index 5fe0ecfd..fb8dbb79 100644 --- a/modules/picard/sortvcf/main.nf +++ b/modules/picard/sortvcf/main.nf @@ -22,8 +22,8 @@ process PICARD_SORTVCF { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def seq_dict = sequence_dict ? "-SEQUENCE_DICTIONARY $sequence_dict" : "" - def reference = reference ? "-REFERENCE_SEQUENCE $reference" : "" + def seq_dict = sequence_dict ? "--SEQUENCE_DICTIONARY $sequence_dict" : "" + def reference = reference ? "--REFERENCE_SEQUENCE $reference" : "" def avail_mem = 3 if (!task.memory) { log.info '[Picard SortVcf] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' From 771d5a19f1cf72f663df27dd396e863193bc0f04 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 11:12:24 +0200 Subject: [PATCH 310/592] fix reference arg --- modules/picard/createsequencedictionary/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/picard/createsequencedictionary/main.nf b/modules/picard/createsequencedictionary/main.nf index 735cc97b..2348c496 100644 --- a/modules/picard/createsequencedictionary/main.nf +++ b/modules/picard/createsequencedictionary/main.nf @@ -31,7 +31,7 @@ process PICARD_CREATESEQUENCEDICTIONARY { -Xmx${avail_mem}g \\ CreateSequenceDictionary \\ $args \\ - --REFERENCE_SEQUENCE $fasta \\ + --REFERENCE $fasta \\ --OUTPUT ${prefix}.dict cat <<-END_VERSIONS > versions.yml From 73600b03393ee2ec585bdc6bb5ff2585fc47bdda Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 14:20:15 +0200 Subject: [PATCH 311/592] Update subworkflows/nf-core/bam_qc_picard/main.nf Co-authored-by: Maxime U. Garcia --- subworkflows/nf-core/bam_qc_picard/main.nf | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index b8be04b2..c3a441bc 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -22,12 +22,8 @@ workflow BAM_QC_PICARD { ch_versions = ch_versions.mix(PICARD_COLLECTMULTIPLEMETRICS.out.versions.first()) if (ch_bait_interval || ch_target_interval) { - if (ch_bait_interval.isEmpty()) { - log.error("Bait interval channel is empty") - } - if (ch_target_interval.isEmpty()) { - log.error("Target interval channel is empty") - } + if (!ch_bait_interval) log.error("Bait interval channel is empty") + if (!ch_target_interval) log.error("Target interval channel is empty") PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, ch_fasta_fai, ch_bait_interval, ch_target_interval ) ch_coverage_metrics.mix(PICARD_COLLECTHSMETRICS.out.metrics.first()) ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) From 71ccf0e207d2b034c931d2264b33f5f54abe1f59 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 14:24:19 +0200 Subject: [PATCH 312/592] Update subworkflows/nf-core/bam_qc_picard/main.nf Co-authored-by: Maxime U. Garcia --- subworkflows/nf-core/bam_qc_picard/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index c3a441bc..e3c890d5 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -25,7 +25,7 @@ workflow BAM_QC_PICARD { if (!ch_bait_interval) log.error("Bait interval channel is empty") if (!ch_target_interval) log.error("Target interval channel is empty") PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, ch_fasta_fai, ch_bait_interval, ch_target_interval ) - ch_coverage_metrics.mix(PICARD_COLLECTHSMETRICS.out.metrics.first()) + ch_coverage_metrics = PICARD_COLLECTHSMETRICS.out.metrics ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) } else { PICARD_COLLECTWGSMETRICS( ch_bam, ch_fasta ) From 20e3767657ba1a4b87a412121321e79ca109b401 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 14:24:25 +0200 Subject: [PATCH 313/592] Update subworkflows/nf-core/bam_qc_picard/main.nf Co-authored-by: Maxime U. Garcia --- subworkflows/nf-core/bam_qc_picard/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index e3c890d5..5f46e065 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -30,7 +30,7 @@ workflow BAM_QC_PICARD { } else { PICARD_COLLECTWGSMETRICS( ch_bam, ch_fasta ) ch_versions = ch_versions.mix(PICARD_COLLECTWGSMETRICS.out.versions.first()) - ch_coverage_metrics.mix(PICARD_COLLECTWGSMETRICS.out.metrics.first()) + ch_coverage_metrics.mix(PICARD_COLLECTWGSMETRICS.out.metrics) } emit: From 343c0ebe203e53ca9149ec473a8396836039a516 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 14:26:00 +0200 Subject: [PATCH 314/592] Update subworkflows/nf-core/bam_qc_picard/main.nf Co-authored-by: Maxime U. Garcia --- subworkflows/nf-core/bam_qc_picard/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index 5f46e065..76709ea6 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -30,7 +30,7 @@ workflow BAM_QC_PICARD { } else { PICARD_COLLECTWGSMETRICS( ch_bam, ch_fasta ) ch_versions = ch_versions.mix(PICARD_COLLECTWGSMETRICS.out.versions.first()) - ch_coverage_metrics.mix(PICARD_COLLECTWGSMETRICS.out.metrics) + ch_coverage_metrics = ch_coverage_metrics.mix(PICARD_COLLECTWGSMETRICS.out.metrics) } emit: From 7e391c3a3bfc84b71e79077ba2569276e6fc5d2a Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 14:26:06 +0200 Subject: [PATCH 315/592] Update subworkflows/nf-core/bam_qc_picard/main.nf Co-authored-by: Maxime U. Garcia --- subworkflows/nf-core/bam_qc_picard/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subworkflows/nf-core/bam_qc_picard/main.nf b/subworkflows/nf-core/bam_qc_picard/main.nf index 76709ea6..e38697c3 100644 --- a/subworkflows/nf-core/bam_qc_picard/main.nf +++ b/subworkflows/nf-core/bam_qc_picard/main.nf @@ -25,7 +25,7 @@ workflow BAM_QC_PICARD { if (!ch_bait_interval) log.error("Bait interval channel is empty") if (!ch_target_interval) log.error("Target interval channel is empty") PICARD_COLLECTHSMETRICS( ch_bam, ch_fasta, ch_fasta_fai, ch_bait_interval, ch_target_interval ) - ch_coverage_metrics = PICARD_COLLECTHSMETRICS.out.metrics + ch_coverage_metrics = ch_coverage_metrics.mix(PICARD_COLLECTHSMETRICS.out.metrics) ch_versions = ch_versions.mix(PICARD_COLLECTHSMETRICS.out.versions.first()) } else { PICARD_COLLECTWGSMETRICS( ch_bam, ch_fasta ) From 9d0f03d96a6855af87f19f27728757e839e51842 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 29 Apr 2022 15:07:09 +0200 Subject: [PATCH 316/592] Update modules/elprep/merge/main.nf Co-authored-by: James A. Fellows Yates --- modules/elprep/merge/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/elprep/merge/main.nf b/modules/elprep/merge/main.nf index 28fa9985..d5ffc497 100644 --- a/modules/elprep/merge/main.nf +++ b/modules/elprep/merge/main.nf @@ -29,7 +29,7 @@ process ELPREP_MERGE { mv ${bam} input/ elprep merge \\ - input \\ + input/ \\ output/${prefix}.${suffix} \\ $args \\ ${single_end} \\ From 20787514d91b5fc699e85b8a1558b5b4de97f451 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Fri, 29 Apr 2022 15:11:21 +0200 Subject: [PATCH 317/592] modifiche per il test --- tests/modules/krona/ktimporttaxonomy/main.nf | 21 +++++++++++++++---- .../krona/ktimporttaxonomy/nextflow.config | 8 +++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index a23e6fcb..280658a5 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -2,15 +2,28 @@ nextflow.enable.dsl = 2 -include { KRONA_KTIMPORTTAXONOMY } from '../../../../modules/krona/ktimporttaxonomy/main.nf' +include { KRONA_KTIMPORTTAXONOMY_READS } from '../../../../modules/krona/ktimporttaxonomy/main.nf' -workflow test_krona_ktimporttaxonomy { +include { KRONA_KTIMPORTTAXONOMY_REPORT } from '../../../../modules/krona/ktimporttaxonomy/main.nf' + +workflow test_krona_ktimporttaxonomy_reads { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['generic']['txt']['hello'], checkIfExists: true) + file(params.test_data['sarscov2']['metagenome']['test_1.kraken2.reads.txt'], checkIfExists: true) ] taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) - KRONA_KTIMPORTTAXONOMY ( input, taxonomy ) + KRONA_KTIMPORTTAXONOMY_READS ( input, taxonomy ) +} + +workflow test_krona_ktimporttaxonomy_report { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['metagenome']['test_1.kraken2.report.txt'], checkIfExists: true) + ] + taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) + + KRONA_KTIMPORTTAXONOMY_REPORT ( input, taxonomy ) } diff --git a/tests/modules/krona/ktimporttaxonomy/nextflow.config b/tests/modules/krona/ktimporttaxonomy/nextflow.config index 8730f1c4..0abcdbeb 100644 --- a/tests/modules/krona/ktimporttaxonomy/nextflow.config +++ b/tests/modules/krona/ktimporttaxonomy/nextflow.config @@ -2,4 +2,12 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: CLASSIFIED_READS { + ext.args = '-t 3' + } + + withName: CLASSIFIED_REPORT { + ext.args = '-m 3 -t 5' + } + } From d9d0eb393bcc16d672ae39418dd6b4296777e95d Mon Sep 17 00:00:00 2001 From: Simone Carpanzano <96130486+carpanz@users.noreply.github.com> Date: Fri, 29 Apr 2022 15:39:50 +0200 Subject: [PATCH 318/592] Update nextflow.config --- tests/modules/krona/ktimporttaxonomy/nextflow.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/nextflow.config b/tests/modules/krona/ktimporttaxonomy/nextflow.config index 0abcdbeb..fb4d86f5 100644 --- a/tests/modules/krona/ktimporttaxonomy/nextflow.config +++ b/tests/modules/krona/ktimporttaxonomy/nextflow.config @@ -2,11 +2,11 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: CLASSIFIED_READS { + withName: KRONA_KTIMPORTTAXONOMY_READS { ext.args = '-t 3' } - withName: CLASSIFIED_REPORT { + withName: KRONA_KTIMPORTTAXONOMY_REPORT { ext.args = '-m 3 -t 5' } From 6bf0a407f6427c017921e7d6f30c58b80c6e4445 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Fri, 29 Apr 2022 15:51:27 +0200 Subject: [PATCH 319/592] modifiche nextflow.config --- tests/modules/krona/ktimporttaxonomy/nextflow.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/nextflow.config b/tests/modules/krona/ktimporttaxonomy/nextflow.config index fb4d86f5..0abcdbeb 100644 --- a/tests/modules/krona/ktimporttaxonomy/nextflow.config +++ b/tests/modules/krona/ktimporttaxonomy/nextflow.config @@ -2,11 +2,11 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: KRONA_KTIMPORTTAXONOMY_READS { + withName: CLASSIFIED_READS { ext.args = '-t 3' } - withName: KRONA_KTIMPORTTAXONOMY_REPORT { + withName: CLASSIFIED_REPORT { ext.args = '-m 3 -t 5' } From cb29ae2187a2bc624a948eee589ad11d168a069e Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 28 Apr 2022 21:14:52 -0500 Subject: [PATCH 320/592] chore: Use forms for bug report --- .github/ISSUE_TEMPLATE/bug_report.md | 64 --------------------------- .github/ISSUE_TEMPLATE/bug_report.yml | 50 +++++++++++++++++++++ 2 files changed, 50 insertions(+), 64 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index f1122ea3..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -name: Bug report -about: Report something that is broken or incorrect -title: "[BUG]" ---- - - - -## Check Documentation - -I have checked the following places for your error: - -- [ ] [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) -- [ ] [nf-core/module documentation](https://github.com/nf-core/modules/blob/master/README.md) - -## 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 module -- [ ] The `.nextflow.log` file - -## System - -- Hardware: -- Executor: -- OS: -- Version - -## Nextflow Installation - -- Version: - -## Container engine - -- Engine: -- version: -- Image tag: - -## Additional context - - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..d9720fb7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,50 @@ +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/rnaseq pipeline documentation](https://nf-co.re/rnaseq/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/rnaseq _(eg. 1.1, 1.5, 1.8.2)_ From 2da712f6f3d8f9b246e5fdcb1d786d5fbd6ef7d1 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 28 Apr 2022 21:29:29 -0500 Subject: [PATCH 321/592] chore: Use forms for new modules --- .github/ISSUE_TEMPLATE/new_module.md | 26 ------------------- .github/ISSUE_TEMPLATE/new_module.yml | 36 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 26 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/new_module.md create mode 100644 .github/ISSUE_TEMPLATE/new_module.yml diff --git a/.github/ISSUE_TEMPLATE/new_module.md b/.github/ISSUE_TEMPLATE/new_module.md deleted file mode 100644 index 5c7e61cc..00000000 --- a/.github/ISSUE_TEMPLATE/new_module.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: New module -about: Suggest a new module for nf-core/modules -title: "new module: TOOL/SUBTOOL" -label: new module ---- - - - -I think it would be good to have a module for [TOOL](https://bioconda.github.io/recipes/TOOL/README.html) - -- [ ] This module does not exist yet with the [`nf-core modules list`](https://github.com/nf-core/tools#list-modules) command -- [ ] There is no [open pull request](https://github.com/nf-core/modules/pulls) for this module -- [ ] There is no [open issue](https://github.com/nf-core/modules/issues) for this module -- [ ] If I'm planning to work on this module, I added myself to the `Assignees` to facilitate tracking who is working on the module diff --git a/.github/ISSUE_TEMPLATE/new_module.yml b/.github/ISSUE_TEMPLATE/new_module.yml new file mode 100644 index 00000000..2d3e9d47 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/new_module.yml @@ -0,0 +1,36 @@ +name: New module +description: Suggest a new module for nf-core/modules +title: "new module: TOOL/SUBTOOL" +labels: new module +body: + - type: checkboxes + attributes: + label: Is there an existing module for this? + description: This module does not exist yet with the [`nf-core modules list`](https://github.com/nf-core/tools#list-modules) command + options: + - label: I have searched for the existing module + required: true + + - type: checkboxes + attributes: + label: Is there an open PR for this? + description: There is no [open pull request](https://github.com/nf-core/modules/pulls) for this module + options: + - label: I have searched for existing PRs + required: true + + - type: checkboxes + attributes: + label: Is there an open issue for this? + description: There is no [open issue](https://github.com/nf-core/modules/issues) for this module + options: + - label: I have searched for existing issues + required: true + + - type: checkboxes + attributes: + label: Are you going to work on this? + description: If I'm planning to work on this module, I added myself to the `Assignees` to facilitate tracking who is working on the module + options: + - label: If I'm planning to work on this module, I added myself to the `Assignees` to facilitate tracking who is working on the module + required: false From 816803dbe98bc5395e87ab51862b57d5b84b2824 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 28 Apr 2022 21:36:49 -0500 Subject: [PATCH 322/592] chore: Add checkboxes for bug report --- .github/ISSUE_TEMPLATE/bug_report.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index d9720fb7..22dc47d4 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -2,13 +2,15 @@ name: Bug report description: Report something that is broken or incorrect labels: bug body: - - type: markdown + - type: checkboxes attributes: - value: | - Before you post this issue, please check the documentation: - - - [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) - - [nf-core/rnaseq pipeline documentation](https://nf-co.re/rnaseq/usage) + label: Have you checked the docs? + description: I have checked the following places for my error + options: + - label: "[nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting)" + required: true + - label: "[nf-core modules documentation](https://nf-co.re/docs/contributing/modules)" + required: true - type: textarea id: description From ef0483586a1a2fdeff3f90584b558f14302a2973 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Thu, 28 Apr 2022 21:46:36 -0500 Subject: [PATCH 323/592] chore: Use forms for feature request --- .github/ISSUE_TEMPLATE/feature_request.md | 32 ---------------------- .github/ISSUE_TEMPLATE/feature_request.yml | 32 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 32 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 72d6c058..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for nf-core/modules -title: "[FEATURE]" ---- - - - -## 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..316fba90 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,32 @@ +name: Feature request +description: Suggest an idea for nf-core/modules +labels: feature +title: "[FEATURE]" +body: + - type: textarea + id: description + attributes: + label: Is your feature request related to a problem? Please describe + description: A clear and concise description of what the bug is. + placeholder: | + + validations: + required: true + + - type: textarea + id: solution + attributes: + label: Describe the solution you'd like + description: A clear and concise description of the solution you want to happen. + + - type: textarea + id: alternatives + attributes: + label: Describe alternatives you've considered + description: A clear and concise description of any alternative solutions or features you've considered. + + - type: textarea + id: additional_context + attributes: + label: Additional context + description: Add any other context about the feature request here. From 8bee7d47489ae3a6652e7925a841f32b39f15609 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 29 Apr 2022 09:28:08 -0500 Subject: [PATCH 324/592] chore: Add image tag to bug report Co-authored-by: FriederikeHanssen --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 22dc47d4..349dd44d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -49,4 +49,4 @@ body: * 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/rnaseq _(eg. 1.1, 1.5, 1.8.2)_ + * Image tag: From fb02d6e85f95e5564ca446fe448e94db5a78d470 Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 29 Apr 2022 09:30:03 -0500 Subject: [PATCH 325/592] chore: add OS version to bug report Co-authored-by: FriederikeHanssen --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 349dd44d..71afc6b0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -48,5 +48,5 @@ body: * 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)_ + * OS and version: _(eg. CentOS Linux, macOS, Ubuntu 22.04)_ * Image tag: From a8a4d76a65af792ca5ab254e9eb0cb521a70047b Mon Sep 17 00:00:00 2001 From: Edmund Miller Date: Fri, 29 Apr 2022 09:30:45 -0500 Subject: [PATCH 326/592] chore: Add container version Co-authored-by: FriederikeHanssen --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 71afc6b0..74907cfe 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -47,6 +47,6 @@ body: * 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)_ + * Container engine and version: _(e.g. Docker 1.0.0, Singularity, Conda, Podman, Shifter or Charliecloud)_ * OS and version: _(eg. CentOS Linux, macOS, Ubuntu 22.04)_ * Image tag: From 41fd2d15576ba669a7aaec281a9d95de219185f4 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Fri, 29 Apr 2022 17:52:12 +0200 Subject: [PATCH 327/592] modifiche --- tests/modules/krona/ktimporttaxonomy/nextflow.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/nextflow.config b/tests/modules/krona/ktimporttaxonomy/nextflow.config index 0abcdbeb..fb4d86f5 100644 --- a/tests/modules/krona/ktimporttaxonomy/nextflow.config +++ b/tests/modules/krona/ktimporttaxonomy/nextflow.config @@ -2,11 +2,11 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: CLASSIFIED_READS { + withName: KRONA_KTIMPORTTAXONOMY_READS { ext.args = '-t 3' } - withName: CLASSIFIED_REPORT { + withName: KRONA_KTIMPORTTAXONOMY_REPORT { ext.args = '-m 3 -t 5' } From 39530b5ca710e028fdec94a704e5eed3f78c5800 Mon Sep 17 00:00:00 2001 From: James Fellows Yates Date: Fri, 29 Apr 2022 21:05:12 +0200 Subject: [PATCH 328/592] Bump DIAMOND version to 2.0.15 --- modules/diamond/blastp/main.nf | 8 +++----- modules/diamond/blastx/main.nf | 8 +++----- modules/diamond/makedb/main.nf | 8 +++----- tests/config/test_data.config | 1 + tests/modules/diamond/blastp/main.nf | 8 ++++---- tests/modules/diamond/blastp/test.yml | 8 ++++---- tests/modules/diamond/blastx/main.nf | 4 ++-- tests/modules/diamond/blastx/test.yml | 3 ++- tests/modules/diamond/makedb/main.nf | 2 +- tests/modules/diamond/makedb/test.yml | 9 +++++---- 10 files changed, 28 insertions(+), 31 deletions(-) diff --git a/modules/diamond/blastp/main.nf b/modules/diamond/blastp/main.nf index d7c53d6f..ccd455f4 100644 --- a/modules/diamond/blastp/main.nf +++ b/modules/diamond/blastp/main.nf @@ -2,12 +2,10 @@ process DIAMOND_BLASTP { tag "$meta.id" label 'process_medium' - // Dimaond is limited to v2.0.9 because there is not a - // singularity version higher than this at the current time. - conda (params.enable_conda ? "bioconda::diamond=2.0.9" : null) + conda (params.enable_conda ? "bioconda::diamond=2.0.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/diamond:2.0.9--hdcc8f71_0' : - 'quay.io/biocontainers/diamond:2.0.9--hdcc8f71_0' }" + 'https://depot.galaxyproject.org/singularity/diamond:2.0.15--hb97b32f_0' : + 'quay.io/biocontainers/diamond:2.0.15--hb97b32f_0' }" input: tuple val(meta), path(fasta) diff --git a/modules/diamond/blastx/main.nf b/modules/diamond/blastx/main.nf index 6703c1e4..357427eb 100644 --- a/modules/diamond/blastx/main.nf +++ b/modules/diamond/blastx/main.nf @@ -2,12 +2,10 @@ process DIAMOND_BLASTX { tag "$meta.id" label 'process_medium' - // Dimaond is limited to v2.0.9 because there is not a - // singularity version higher than this at the current time. - conda (params.enable_conda ? "bioconda::diamond=2.0.9" : null) + conda (params.enable_conda ? "bioconda::diamond=2.0.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/diamond:2.0.9--hdcc8f71_0' : - 'quay.io/biocontainers/diamond:2.0.9--hdcc8f71_0' }" + 'https://depot.galaxyproject.org/singularity/diamond:2.0.15--hb97b32f_0' : + 'quay.io/biocontainers/diamond:2.0.15--hb97b32f_0' }" input: tuple val(meta), path(fasta) diff --git a/modules/diamond/makedb/main.nf b/modules/diamond/makedb/main.nf index e3d62f00..a76a94e5 100644 --- a/modules/diamond/makedb/main.nf +++ b/modules/diamond/makedb/main.nf @@ -2,12 +2,10 @@ process DIAMOND_MAKEDB { tag "$fasta" label 'process_medium' - // Dimaond is limited to v2.0.9 because there is not a - // singularity version higher than this at the current time. - conda (params.enable_conda ? 'bioconda::diamond=2.0.9' : null) + conda (params.enable_conda ? "bioconda::diamond=2.0.15" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/diamond:2.0.9--hdcc8f71_0' : - 'quay.io/biocontainers/diamond:2.0.9--hdcc8f71_0' }" + 'https://depot.galaxyproject.org/singularity/diamond:2.0.15--hb97b32f_0' : + 'quay.io/biocontainers/diamond:2.0.15--hb97b32f_0' }" input: path fasta diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 5d5535c4..62e38c4d 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -14,6 +14,7 @@ params { genome_paf = "${test_data_dir}/genomics/sarscov2/genome/genome.paf" genome_sizes = "${test_data_dir}/genomics/sarscov2/genome/genome.sizes" transcriptome_fasta = "${test_data_dir}/genomics/sarscov2/genome/transcriptome.fasta" + proteome_fasta = "${test_data_dir}/genomics/sarscov2/genome/proteome.fasta" transcriptome_paf = "${test_data_dir}/genomics/sarscov2/genome/transcriptome.paf" test_bed = "${test_data_dir}/genomics/sarscov2/genome/bed/test.bed" diff --git a/tests/modules/diamond/blastp/main.nf b/tests/modules/diamond/blastp/main.nf index 5c1459d8..80ea2ec5 100644 --- a/tests/modules/diamond/blastp/main.nf +++ b/tests/modules/diamond/blastp/main.nf @@ -7,8 +7,8 @@ include { DIAMOND_BLASTP } from '../../../../modules/diamond/blastp/main.nf' workflow test_diamond_blastp { - db = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] - fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] + db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] + fasta = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] outext = 'txt' DIAMOND_MAKEDB ( db ) @@ -17,8 +17,8 @@ workflow test_diamond_blastp { workflow test_diamond_blastp_daa { - db = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] - fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] + db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] + fasta = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] outext = 'daa' DIAMOND_MAKEDB ( db ) diff --git a/tests/modules/diamond/blastp/test.yml b/tests/modules/diamond/blastp/test.yml index cb297743..c2b8b6f5 100644 --- a/tests/modules/diamond/blastp/test.yml +++ b/tests/modules/diamond/blastp/test.yml @@ -1,19 +1,19 @@ - name: diamond blastp test_diamond_blastp command: nextflow run tests/modules/diamond/blastp -entry test_diamond_blastp -c tests/config/nextflow.config tags: - - diamond - diamond/blastp + - diamond files: - path: output/diamond/test.diamond_blastp.txt - md5sum: 3ca7f6290c1d8741c573370e6f8b4db0 + md5sum: 2515cf88590afa32356497e79a51fce9 - path: output/diamond/versions.yml - name: diamond blastp test_diamond_blastp_daa command: nextflow run tests/modules/diamond/blastp -entry test_diamond_blastp_daa -c tests/config/nextflow.config tags: - - diamond - diamond/blastp + - diamond files: - path: output/diamond/test.diamond_blastp.daa - md5sum: d4a79ad1fcb2ec69460e5a09a9468db7 + md5sum: 0b539c68a5b66dd6e20ad5d218f4f4c6 - path: output/diamond/versions.yml diff --git a/tests/modules/diamond/blastx/main.nf b/tests/modules/diamond/blastx/main.nf index d6d5a77a..d5949762 100644 --- a/tests/modules/diamond/blastx/main.nf +++ b/tests/modules/diamond/blastx/main.nf @@ -7,7 +7,7 @@ include { DIAMOND_BLASTX } from '../../../../modules/diamond/blastx/main.nf' workflow test_diamond_blastx { - db = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] outext = 'txt' @@ -17,7 +17,7 @@ workflow test_diamond_blastx { workflow test_diamond_blastx_daa { - db = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] outext = 'daa' diff --git a/tests/modules/diamond/blastx/test.yml b/tests/modules/diamond/blastx/test.yml index a2d35c80..9c30ba25 100644 --- a/tests/modules/diamond/blastx/test.yml +++ b/tests/modules/diamond/blastx/test.yml @@ -5,6 +5,7 @@ - diamond/blastx files: - path: output/diamond/test.diamond_blastx.txt + md5sum: eb2aebfa1cb42fcb2121c65528663307 - path: output/diamond/versions.yml - name: diamond blastx test_diamond_blastx_daa @@ -14,5 +15,5 @@ - diamond/blastx files: - path: output/diamond/test.diamond_blastx.daa - md5sum: 2a0ce0f7e01dcead828b87d5cbaccf7a + md5sum: 0df4a833408416f32981415873facc11 - path: output/diamond/versions.yml diff --git a/tests/modules/diamond/makedb/main.nf b/tests/modules/diamond/makedb/main.nf index 70982ae9..d309de6d 100644 --- a/tests/modules/diamond/makedb/main.nf +++ b/tests/modules/diamond/makedb/main.nf @@ -6,7 +6,7 @@ include { DIAMOND_MAKEDB } from '../../../../modules/diamond/makedb/main.nf' workflow test_diamond_makedb { - input = [ file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) ] + input = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] DIAMOND_MAKEDB ( input ) } diff --git a/tests/modules/diamond/makedb/test.yml b/tests/modules/diamond/makedb/test.yml index c8f2d79e..cdddf735 100644 --- a/tests/modules/diamond/makedb/test.yml +++ b/tests/modules/diamond/makedb/test.yml @@ -1,8 +1,9 @@ - name: diamond makedb test_diamond_makedb - command: nextflow run ./tests/modules/diamond/makedb -entry test_diamond_makedb -c ./tests/config/nextflow.config -c ./tests/modules/diamond/makedb/nextflow.config + command: nextflow run tests/modules/diamond/makedb -entry test_diamond_makedb -c tests/config/nextflow.config tags: - - diamond - diamond/makedb + - diamond files: - - path: output/diamond/genome.fasta.dmnd - md5sum: 2447fb376394c20d43ea3aad2aa5d15d + - path: output/diamond/proteome.fasta.dmnd + md5sum: fc28c50b202dd7a7c5451cddff2ba1f4 + - path: output/diamond/versions.yml From d2004a2b769d9ff6c2f8fd8a1e1d0e5660fcc3f9 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Sun, 1 May 2022 21:14:01 +0200 Subject: [PATCH 329/592] update cnvpytor --- modules/cnvpytor/callcnvs/main.nf | 6 +++--- modules/cnvpytor/histogram/main.nf | 6 +++--- modules/cnvpytor/importreaddepth/main.nf | 6 +++--- modules/cnvpytor/partition/main.nf | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/modules/cnvpytor/callcnvs/main.nf b/modules/cnvpytor/callcnvs/main.nf index 17675cde..fcb36ba5 100644 --- a/modules/cnvpytor/callcnvs/main.nf +++ b/modules/cnvpytor/callcnvs/main.nf @@ -2,10 +2,10 @@ process CNVPYTOR_CALLCNVS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) + conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': - 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" + 'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0': + 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }" input: tuple val(meta), path(pytor) diff --git a/modules/cnvpytor/histogram/main.nf b/modules/cnvpytor/histogram/main.nf index 9e59c6b8..f6e9dd25 100644 --- a/modules/cnvpytor/histogram/main.nf +++ b/modules/cnvpytor/histogram/main.nf @@ -2,10 +2,10 @@ process CNVPYTOR_HISTOGRAM { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) + conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': - 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" + 'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0': + 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }" input: tuple val(meta), path(pytor) diff --git a/modules/cnvpytor/importreaddepth/main.nf b/modules/cnvpytor/importreaddepth/main.nf index 162da719..059c19a5 100644 --- a/modules/cnvpytor/importreaddepth/main.nf +++ b/modules/cnvpytor/importreaddepth/main.nf @@ -2,10 +2,10 @@ process CNVPYTOR_IMPORTREADDEPTH { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) + conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': - 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" + 'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0': + 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }" input: tuple val(meta), path(input_file), path(index) diff --git a/modules/cnvpytor/partition/main.nf b/modules/cnvpytor/partition/main.nf index 0311bdfc..8365cb29 100644 --- a/modules/cnvpytor/partition/main.nf +++ b/modules/cnvpytor/partition/main.nf @@ -2,10 +2,10 @@ process CNVPYTOR_PARTITION { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::cnvpytor=1.0" : null) + conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/cnvpytor:1.0--py39h6a678da_2': - 'quay.io/biocontainers/cnvpytor:1.0--py39h6a678da_2' }" + 'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0': + 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }" input: tuple val(meta), path(pytor) From 9a9f3e97dedd3cf72720cca5588df4d4edd35d71 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Sun, 1 May 2022 21:51:40 +0200 Subject: [PATCH 330/592] fix md5sums --- tests/modules/cnvpytor/callcnvs/test.yml | 3 --- tests/modules/cnvpytor/histogram/test.yml | 3 --- tests/modules/cnvpytor/importreaddepth/test.yml | 4 ---- tests/modules/cnvpytor/partition/test.yml | 3 --- 4 files changed, 13 deletions(-) diff --git a/tests/modules/cnvpytor/callcnvs/test.yml b/tests/modules/cnvpytor/callcnvs/test.yml index 4565151e..e284ab53 100644 --- a/tests/modules/cnvpytor/callcnvs/test.yml +++ b/tests/modules/cnvpytor/callcnvs/test.yml @@ -5,9 +5,7 @@ - cnvpytor/callcnvs files: - path: output/cnvpytor/test.tsv - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/cnvpytor/versions.yml - md5sum: 0bea08a253fcb2ff0ff79b99df77b9fa - name: cnvpytor callcnvs test_cnvpytor_callcnvs stub command: nextflow run tests/modules/cnvpytor/callcnvs -entry test_cnvpytor_callcnvs -c tests/config/nextflow.config -stub-run @@ -17,4 +15,3 @@ files: - path: output/cnvpytor/test.tsv - path: output/cnvpytor/versions.yml - md5sum: 0bea08a253fcb2ff0ff79b99df77b9fa diff --git a/tests/modules/cnvpytor/histogram/test.yml b/tests/modules/cnvpytor/histogram/test.yml index 0543fcc3..f67901d4 100644 --- a/tests/modules/cnvpytor/histogram/test.yml +++ b/tests/modules/cnvpytor/histogram/test.yml @@ -5,9 +5,7 @@ - cnvpytor/histogram files: - path: output/cnvpytor/test.pytor - md5sum: aa03a8fa15b39f77816705a48e10312a - path: output/cnvpytor/versions.yml - md5sum: 0f4d75c4f3a3eb26c22616d12b0b78b2 - name: cnvpytor histogram test_cnvpytor_histogram stub command: nextflow run tests/modules/cnvpytor/histogram -entry test_cnvpytor_histogram -c tests/config/nextflow.config -stub-run @@ -17,4 +15,3 @@ files: - path: output/cnvpytor/test.pytor - path: output/cnvpytor/versions.yml - md5sum: 0f4d75c4f3a3eb26c22616d12b0b78b2 diff --git a/tests/modules/cnvpytor/importreaddepth/test.yml b/tests/modules/cnvpytor/importreaddepth/test.yml index b148c38e..a2530c26 100644 --- a/tests/modules/cnvpytor/importreaddepth/test.yml +++ b/tests/modules/cnvpytor/importreaddepth/test.yml @@ -6,7 +6,6 @@ files: - path: output/cnvpytor/test.pytor - path: output/cnvpytor/versions.yml - md5sum: 5834495324c08a37f3fd73ccdd881dc8 - name: cnvpytor importreaddepth test_cnvpytor_importreaddepth stub command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth -c tests/config/nextflow.config -stub-run @@ -16,7 +15,6 @@ files: - path: output/cnvpytor/test.pytor - path: output/cnvpytor/versions.yml - md5sum: 5834495324c08a37f3fd73ccdd881dc8 - name: cnvpytor importreaddepth test_cnvpytor_importreaddepth_cram command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth_cram -c tests/config/nextflow.config @@ -26,7 +24,6 @@ files: - path: output/cnvpytor/test.pytor - path: output/cnvpytor/versions.yml - md5sum: dfa0afb0982d985b96d1633f71ebb82a - name: cnvpytor importreaddepth test_cnvpytor_importreaddepth_cram stub command: nextflow run tests/modules/cnvpytor/importreaddepth -entry test_cnvpytor_importreaddepth_cram -c tests/config/nextflow.config -stub-run @@ -36,4 +33,3 @@ files: - path: output/cnvpytor/test.pytor - path: output/cnvpytor/versions.yml - md5sum: dfa0afb0982d985b96d1633f71ebb82a diff --git a/tests/modules/cnvpytor/partition/test.yml b/tests/modules/cnvpytor/partition/test.yml index 10232097..e24a1200 100644 --- a/tests/modules/cnvpytor/partition/test.yml +++ b/tests/modules/cnvpytor/partition/test.yml @@ -5,9 +5,7 @@ - cnvpytor/partition files: - path: output/cnvpytor/test.pytor - md5sum: aa03a8fa15b39f77816705a48e10312a - path: output/cnvpytor/versions.yml - md5sum: 7fd6ec952a316463bcd324f176b46b64 - name: cnvpytor partition test_cnvpytor_partition stub command: nextflow run tests/modules/cnvpytor/partition -entry test_cnvpytor_partition -c tests/config/nextflow.config -stub-run @@ -17,4 +15,3 @@ files: - path: output/cnvpytor/test.pytor - path: output/cnvpytor/versions.yml - md5sum: 7fd6ec952a316463bcd324f176b46b64 From 996385fb0f2018d4bb79bc82aea329a58a1e6fe3 Mon Sep 17 00:00:00 2001 From: James Fellows Yates Date: Mon, 2 May 2022 09:36:34 +0200 Subject: [PATCH 331/592] Remove MD5sumfor DIAMOND DAA file due to occasioanlly variability --- tests/modules/diamond/blastp/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/modules/diamond/blastp/test.yml b/tests/modules/diamond/blastp/test.yml index c2b8b6f5..4fad0cbf 100644 --- a/tests/modules/diamond/blastp/test.yml +++ b/tests/modules/diamond/blastp/test.yml @@ -15,5 +15,4 @@ - diamond files: - path: output/diamond/test.diamond_blastp.daa - md5sum: 0b539c68a5b66dd6e20ad5d218f4f4c6 - path: output/diamond/versions.yml From 6b64f9cb6c3dd3577931cc3cd032d6fb730000ce Mon Sep 17 00:00:00 2001 From: Lucpen Date: Mon, 2 May 2022 10:34:14 +0200 Subject: [PATCH 332/592] feat added stub to modules --- modules/gatk4/mergebamalignment/main.nf | 11 +++++++++++ modules/gatk4/mutect2/main.nf | 14 ++++++++++++++ modules/gatk4/revertsam/main.nf | 11 +++++++++++ modules/gatk4/samtofastq/main.nf | 13 +++++++++++++ modules/samtools/view/main.nf | 12 ++++++++++++ 5 files changed, 61 insertions(+) diff --git a/modules/gatk4/mergebamalignment/main.nf b/modules/gatk4/mergebamalignment/main.nf index 7ba9ccda..5c36b4ba 100644 --- a/modules/gatk4/mergebamalignment/main.nf +++ b/modules/gatk4/mergebamalignment/main.nf @@ -43,4 +43,15 @@ process GATK4_MERGEBAMALIGNMENT { gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/gatk4/mutect2/main.nf b/modules/gatk4/mutect2/main.nf index 4a1f5768..a214b57d 100644 --- a/modules/gatk4/mutect2/main.nf +++ b/modules/gatk4/mutect2/main.nf @@ -57,4 +57,18 @@ process GATK4_MUTECT2 { gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.vcf.gz + touch ${prefix}.tbi + touch ${prefix}.stats + touch ${prefix}.f1r2.tar.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/gatk4/revertsam/main.nf b/modules/gatk4/revertsam/main.nf index 4e8e9ddc..3084658d 100644 --- a/modules/gatk4/revertsam/main.nf +++ b/modules/gatk4/revertsam/main.nf @@ -39,4 +39,15 @@ process GATK4_REVERTSAM { gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.reverted.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/gatk4/samtofastq/main.nf b/modules/gatk4/samtofastq/main.nf index 8553e419..d8d94d69 100644 --- a/modules/gatk4/samtofastq/main.nf +++ b/modules/gatk4/samtofastq/main.nf @@ -40,4 +40,17 @@ process GATK4_SAMTOFASTQ { gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.fastq.gz + touch ${prefix}_1.fastq.gz + touch ${prefix}_2.fastq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ } diff --git a/modules/samtools/view/main.nf b/modules/samtools/view/main.nf index 11cfb74b..55194e88 100644 --- a/modules/samtools/view/main.nf +++ b/modules/samtools/view/main.nf @@ -41,4 +41,16 @@ process SAMTOOLS_VIEW { samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.bam + touch ${prefix}.cram + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ } From 8a5bcbc325d20f081c9a722bc47f380df43448b7 Mon Sep 17 00:00:00 2001 From: Lucpen Date: Mon, 2 May 2022 11:06:08 +0200 Subject: [PATCH 333/592] fix the stub of gatk4_revertsam --- modules/gatk4/revertsam/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gatk4/revertsam/main.nf b/modules/gatk4/revertsam/main.nf index 3084658d..162aa0fa 100644 --- a/modules/gatk4/revertsam/main.nf +++ b/modules/gatk4/revertsam/main.nf @@ -43,7 +43,7 @@ process GATK4_REVERTSAM { stub: def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.reverted.bam + touch ${prefix}.bam cat <<-END_VERSIONS > versions.yml "${task.process}": From 0511e7fbbfa4ba41940d33b687b1cc90227b4eb8 Mon Sep 17 00:00:00 2001 From: Praveen Date: Mon, 2 May 2022 11:35:15 +0200 Subject: [PATCH 334/592] Changed BAI as optional output to handle large genome --- modules/gatk4/markduplicates/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gatk4/markduplicates/main.nf b/modules/gatk4/markduplicates/main.nf index e8a98156..2650925b 100644 --- a/modules/gatk4/markduplicates/main.nf +++ b/modules/gatk4/markduplicates/main.nf @@ -12,7 +12,7 @@ process GATK4_MARKDUPLICATES { output: tuple val(meta), path("*.bam") , emit: bam - tuple val(meta), path("*.bai") , emit: bai + tuple val(meta), path("*.bai") , optional:true, emit: bai tuple val(meta), path("*.metrics"), emit: metrics path "versions.yml" , emit: versions From 6986975bc0425e0b0e6c93dce648167f91f7ebc9 Mon Sep 17 00:00:00 2001 From: James Fellows Yates Date: Mon, 2 May 2022 11:39:07 +0200 Subject: [PATCH 335/592] Fix output channels allow BLAST table customisation --- modules/diamond/blastp/main.nf | 14 +++++++++--- modules/diamond/blastp/meta.yml | 34 ++++++++++++++++++++++++++-- modules/diamond/blastx/main.nf | 14 +++++++++--- modules/diamond/blastx/meta.yml | 28 +++++++++++++++++++++-- tests/modules/diamond/blastp/main.nf | 6 +++-- tests/modules/diamond/blastx/main.nf | 6 +++-- 6 files changed, 88 insertions(+), 14 deletions(-) diff --git a/modules/diamond/blastp/main.nf b/modules/diamond/blastp/main.nf index ccd455f4..6b750145 100644 --- a/modules/diamond/blastp/main.nf +++ b/modules/diamond/blastp/main.nf @@ -11,10 +11,17 @@ process DIAMOND_BLASTP { tuple val(meta), path(fasta) path db val outext + val blast_columns output: - tuple val(meta), path('*.{blast,xml,txt,daa,sam,tsv,paf}'), emit: output - path "versions.yml" , emit: versions + tuple val(meta), path('*.{blast}'), optional: true, emit: blast + tuple val(meta), path('*.{xml}') , optional: true, emit: xml + tuple val(meta), path('*.{txt}') , optional: true, emit: txt + tuple val(meta), path('*.{daa}') , optional: true, emit: daa + tuple val(meta), path('*.{sam}') , optional: true, emit: sam + tuple val(meta), path('*.{tsv}') , optional: true, emit: tsv + tuple val(meta), path('*.{paf}') , optional: true, emit: paf + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -22,6 +29,7 @@ process DIAMOND_BLASTP { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def columns = blast_columns ? "${blast_columns}" : '' switch ( outext ) { case "blast": outfmt = 0; break case "xml": outfmt = 5; break @@ -39,7 +47,7 @@ process DIAMOND_BLASTP { --threads $task.cpus \\ --db \$DB \\ --query $fasta \\ - --outfmt ${outfmt} \\ + --outfmt ${outfmt} ${columns} \\ $args \\ --out ${prefix}.${outext} diff --git a/modules/diamond/blastp/meta.yml b/modules/diamond/blastp/meta.yml index 1aa36c23..0bc12889 100644 --- a/modules/diamond/blastp/meta.yml +++ b/modules/diamond/blastp/meta.yml @@ -36,12 +36,42 @@ input: `txt` corresponds to to BLAST tabular format. `tsv` corresponds to taxonomic classification format. pattern: "blast|xml|txt|daa|sam|tsv|paf" + - blast_columns: + type: string + description: | + Optional space separated list of DIAMOND tabular BLAST output keywords + used for in conjunction with the 'txt' outext option (--outfmt 6). See + DIAMOND documnetation for more information. output: - - txt: + - blast: type: file description: File containing blastp hits - pattern: "*.{blastp.txt}" + pattern: "*.{blast}" + - xml: + type: file + description: File containing blastp hits + pattern: "*.{xml}" + - txt: + type: file + description: File containing hits in tabular BLAST format. + pattern: "*.{txt}" + - daa: + type: file + description: File containing hits DAA format + pattern: "*.{daa}" + - sam: + type: file + description: File containing aligned reads in SAM format + pattern: "*.{sam}" + - tsv: + type: file + description: Tab separated file containing taxonomic classification of hits + pattern: "*.{tsv}" + - paf: + type: file + description: File containing aligned reads in pairwise mapping format format + pattern: "*.{paf}" - versions: type: file description: File containing software versions diff --git a/modules/diamond/blastx/main.nf b/modules/diamond/blastx/main.nf index 357427eb..bb630e32 100644 --- a/modules/diamond/blastx/main.nf +++ b/modules/diamond/blastx/main.nf @@ -11,10 +11,17 @@ process DIAMOND_BLASTX { tuple val(meta), path(fasta) path db val outext + val blast_columns output: - tuple val(meta), path('*.{blast,xml,txt,daa,sam,tsv,paf}'), emit: output - path "versions.yml" , emit: versions + tuple val(meta), path('*.{blast}'), optional: true, emit: blast + tuple val(meta), path('*.{xml}') , optional: true, emit: xml + tuple val(meta), path('*.{txt}') , optional: true, emit: txt + tuple val(meta), path('*.{daa}') , optional: true, emit: daa + tuple val(meta), path('*.{sam}') , optional: true, emit: sam + tuple val(meta), path('*.{tsv}') , optional: true, emit: tsv + tuple val(meta), path('*.{paf}') , optional: true, emit: paf + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -22,6 +29,7 @@ process DIAMOND_BLASTX { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def columns = blast_columns ? "${blast_columns}" : '' switch ( outext ) { case "blast": outfmt = 0; break case "xml": outfmt = 5; break @@ -39,7 +47,7 @@ process DIAMOND_BLASTX { --threads $task.cpus \\ --db \$DB \\ --query $fasta \\ - --outfmt ${outfmt} \\ + --outfmt ${outfmt} ${columns} \\ $args \\ --out ${prefix}.${outext} diff --git a/modules/diamond/blastx/meta.yml b/modules/diamond/blastx/meta.yml index 5ee2d55e..64645d34 100644 --- a/modules/diamond/blastx/meta.yml +++ b/modules/diamond/blastx/meta.yml @@ -38,10 +38,34 @@ input: pattern: "blast|xml|txt|daa|sam|tsv|paf" output: + - blast: + type: file + description: File containing blastp hits + pattern: "*.{blast}" + - xml: + type: file + description: File containing blastp hits + pattern: "*.{xml}" - txt: type: file - description: File containing blastx hits - pattern: "*.{blastx.txt}" + description: File containing hits in tabular BLAST format. + pattern: "*.{txt}" + - daa: + type: file + description: File containing hits DAA format + pattern: "*.{daa}" + - sam: + type: file + description: File containing aligned reads in SAM format + pattern: "*.{sam}" + - tsv: + type: file + description: Tab separated file containing taxonomic classification of hits + pattern: "*.{tsv}" + - paf: + type: file + description: File containing aligned reads in pairwise mapping format format + pattern: "*.{paf}" - versions: type: file description: File containing software versions diff --git a/tests/modules/diamond/blastp/main.nf b/tests/modules/diamond/blastp/main.nf index 80ea2ec5..e90599f0 100644 --- a/tests/modules/diamond/blastp/main.nf +++ b/tests/modules/diamond/blastp/main.nf @@ -10,9 +10,10 @@ workflow test_diamond_blastp { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] outext = 'txt' + blast_columns = 'qseqid qlen' DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext ) + DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext, blast_columns ) } workflow test_diamond_blastp_daa { @@ -20,7 +21,8 @@ workflow test_diamond_blastp_daa { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] outext = 'daa' + blast_columns = [] DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext ) + DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext, blast_columns ) } diff --git a/tests/modules/diamond/blastx/main.nf b/tests/modules/diamond/blastx/main.nf index d5949762..8f244528 100644 --- a/tests/modules/diamond/blastx/main.nf +++ b/tests/modules/diamond/blastx/main.nf @@ -10,9 +10,10 @@ workflow test_diamond_blastx { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] outext = 'txt' + blast_columns = 'qseqid qlen' DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext ) + DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext, blast_columns ) } workflow test_diamond_blastx_daa { @@ -20,7 +21,8 @@ workflow test_diamond_blastx_daa { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] outext = 'daa' + blast_columns = [] DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext ) + DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext, blast_columns ) } From 58e5c6aecefbff55b8f29bb542b908da0bd293f7 Mon Sep 17 00:00:00 2001 From: James Fellows Yates Date: Mon, 2 May 2022 11:55:43 +0200 Subject: [PATCH 336/592] Make variables consistent --- modules/diamond/blastp/main.nf | 6 +++--- modules/diamond/blastp/meta.yml | 4 ++-- modules/diamond/blastx/main.nf | 6 +++--- modules/diamond/blastx/meta.yml | 2 +- tests/modules/diamond/blastp/main.nf | 8 ++++---- tests/modules/diamond/blastx/main.nf | 8 ++++---- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/diamond/blastp/main.nf b/modules/diamond/blastp/main.nf index 6b750145..0d78e230 100644 --- a/modules/diamond/blastp/main.nf +++ b/modules/diamond/blastp/main.nf @@ -10,7 +10,7 @@ process DIAMOND_BLASTP { input: tuple val(meta), path(fasta) path db - val outext + val out_ext val blast_columns output: @@ -30,7 +30,7 @@ process DIAMOND_BLASTP { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def columns = blast_columns ? "${blast_columns}" : '' - switch ( outext ) { + switch ( out_ext ) { case "blast": outfmt = 0; break case "xml": outfmt = 5; break case "txt": outfmt = 6; break @@ -49,7 +49,7 @@ process DIAMOND_BLASTP { --query $fasta \\ --outfmt ${outfmt} ${columns} \\ $args \\ - --out ${prefix}.${outext} + --out ${prefix}.${out_ext} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/diamond/blastp/meta.yml b/modules/diamond/blastp/meta.yml index 0bc12889..3aa81e53 100644 --- a/modules/diamond/blastp/meta.yml +++ b/modules/diamond/blastp/meta.yml @@ -28,7 +28,7 @@ input: type: directory description: Directory containing the protein blast database pattern: "*" - - outext: + - out_ext: type: string description: | Specify the type of output file to be generated. `blast` corresponds to @@ -40,7 +40,7 @@ input: type: string description: | Optional space separated list of DIAMOND tabular BLAST output keywords - used for in conjunction with the 'txt' outext option (--outfmt 6). See + used for in conjunction with the 'txt' out_ext option (--outfmt 6). See DIAMOND documnetation for more information. output: diff --git a/modules/diamond/blastx/main.nf b/modules/diamond/blastx/main.nf index bb630e32..ef641435 100644 --- a/modules/diamond/blastx/main.nf +++ b/modules/diamond/blastx/main.nf @@ -10,7 +10,7 @@ process DIAMOND_BLASTX { input: tuple val(meta), path(fasta) path db - val outext + val out_ext val blast_columns output: @@ -30,7 +30,7 @@ process DIAMOND_BLASTX { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" def columns = blast_columns ? "${blast_columns}" : '' - switch ( outext ) { + switch ( out_ext ) { case "blast": outfmt = 0; break case "xml": outfmt = 5; break case "txt": outfmt = 6; break @@ -49,7 +49,7 @@ process DIAMOND_BLASTX { --query $fasta \\ --outfmt ${outfmt} ${columns} \\ $args \\ - --out ${prefix}.${outext} + --out ${prefix}.${out_ext} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/diamond/blastx/meta.yml b/modules/diamond/blastx/meta.yml index 64645d34..2dcd7bc6 100644 --- a/modules/diamond/blastx/meta.yml +++ b/modules/diamond/blastx/meta.yml @@ -28,7 +28,7 @@ input: type: directory description: Directory containing the nucelotide blast database pattern: "*" - - outext: + - out_ext: type: string description: | Specify the type of output file to be generated. `blast` corresponds to diff --git a/tests/modules/diamond/blastp/main.nf b/tests/modules/diamond/blastp/main.nf index e90599f0..ff669233 100644 --- a/tests/modules/diamond/blastp/main.nf +++ b/tests/modules/diamond/blastp/main.nf @@ -9,20 +9,20 @@ workflow test_diamond_blastp { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] - outext = 'txt' + out_ext = 'txt' blast_columns = 'qseqid qlen' DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext, blast_columns ) + DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, out_ext, blast_columns ) } workflow test_diamond_blastp_daa { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] - outext = 'daa' + out_ext = 'daa' blast_columns = [] DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext, blast_columns ) + DIAMOND_BLASTP ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, out_ext, blast_columns ) } diff --git a/tests/modules/diamond/blastx/main.nf b/tests/modules/diamond/blastx/main.nf index 8f244528..bb1b55a8 100644 --- a/tests/modules/diamond/blastx/main.nf +++ b/tests/modules/diamond/blastx/main.nf @@ -9,20 +9,20 @@ workflow test_diamond_blastx { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] - outext = 'txt' + out_ext = 'txt' blast_columns = 'qseqid qlen' DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext, blast_columns ) + DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, out_ext, blast_columns ) } workflow test_diamond_blastx_daa { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] - outext = 'daa' + out_ext = 'daa' blast_columns = [] DIAMOND_MAKEDB ( db ) - DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, outext, blast_columns ) + DIAMOND_BLASTX ( [ [id:'test'], fasta ], DIAMOND_MAKEDB.out.db, out_ext, blast_columns ) } From 08d5acbeb6c9e1b113ef3a0f4d32a6a1dbe522fe Mon Sep 17 00:00:00 2001 From: Lucpen Date: Mon, 2 May 2022 11:59:08 +0200 Subject: [PATCH 337/592] feat added tests for stubs --- tests/modules/gatk4/mergebamalignment/main.nf | 11 +++++++++++ tests/modules/gatk4/mergebamalignment/test.yml | 9 +++++++++ tests/modules/gatk4/mutect2/main.nf | 18 ++++++++++++++++++ tests/modules/gatk4/mutect2/test.yml | 11 +++++++++++ tests/modules/gatk4/revertsam/main.nf | 8 ++++++++ tests/modules/gatk4/revertsam/test.yml | 9 +++++++++ tests/modules/gatk4/samtofastq/main.nf | 8 ++++++++ tests/modules/gatk4/samtofastq/test.yml | 10 ++++++++++ tests/modules/samtools/view/main.nf | 9 +++++++++ tests/modules/samtools/view/test.yml | 8 ++++++++ 10 files changed, 101 insertions(+) diff --git a/tests/modules/gatk4/mergebamalignment/main.nf b/tests/modules/gatk4/mergebamalignment/main.nf index 8a38c129..ebedad9b 100644 --- a/tests/modules/gatk4/mergebamalignment/main.nf +++ b/tests/modules/gatk4/mergebamalignment/main.nf @@ -14,3 +14,14 @@ workflow test_gatk4_mergebamalignment { GATK4_MERGEBAMALIGNMENT ( input, fasta, dict ) } + +workflow test_gatk4_mergebamalignment_stubs { + input = [ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_unaligned_bam'], checkIfExists: true) + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + + GATK4_MERGEBAMALIGNMENT ( input, fasta, dict ) +} diff --git a/tests/modules/gatk4/mergebamalignment/test.yml b/tests/modules/gatk4/mergebamalignment/test.yml index b1bb32b2..84a67654 100644 --- a/tests/modules/gatk4/mergebamalignment/test.yml +++ b/tests/modules/gatk4/mergebamalignment/test.yml @@ -7,3 +7,12 @@ - path: output/gatk4/test.bam md5sum: e6f1b343700b7ccb94e81ae127433988 - path: output/gatk4/versions.yml + +- name: gatk4 mergebamalignment test_gatk4_mergebamalignment_stubs + command: nextflow run ./tests/modules/gatk4/mergebamalignment -entry test_gatk4_mergebamalignment -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mergebamalignment/nextflow.config -stub-run + tags: + - gatk4 + - gatk4/mergebamalignment + files: + - path: output/gatk4/test.bam + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/mutect2/main.nf b/tests/modules/gatk4/mutect2/main.nf index 0b4339f0..619d28b8 100644 --- a/tests/modules/gatk4/mutect2/main.nf +++ b/tests/modules/gatk4/mutect2/main.nf @@ -118,3 +118,21 @@ workflow test_gatk4_mutect2_mitochondria { GATK4_MUTECT2_MITO ( input, fasta, fai, dict, [], [], [], [] ) } + +workflow test_gatk4_mutect2_tumor_single_stubs { + input = [ [ id:'test'], // meta map + [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true)], + [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true)], + [] + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) + germline_resource = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'], checkIfExists: true) + germline_resource_tbi = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz_tbi'], checkIfExists: true) + panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) + panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) + + GATK4_MUTECT2 ( input, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) +} diff --git a/tests/modules/gatk4/mutect2/test.yml b/tests/modules/gatk4/mutect2/test.yml index 3cefce09..9232cedd 100644 --- a/tests/modules/gatk4/mutect2/test.yml +++ b/tests/modules/gatk4/mutect2/test.yml @@ -69,3 +69,14 @@ md5sum: fc6ea14ca2da346babe78161beea28c9 - path: output/gatk4/test.vcf.gz.tbi - path: output/gatk4/versions.yml + +- name: gatk4 mutect2 test_gatk4_mutect2_tumor_single_stubs + command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_tumor_single -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config -stub-run + tags: + - gatk4 + - gatk4/mutect2 + files: + - path: output/gatk4/test.vcf.gz + - path: output/gatk4/test.vcf.gz.stats + - path: output/gatk4/test.vcf.gz.tbi + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/revertsam/main.nf b/tests/modules/gatk4/revertsam/main.nf index ab5dddee..5b14d471 100644 --- a/tests/modules/gatk4/revertsam/main.nf +++ b/tests/modules/gatk4/revertsam/main.nf @@ -11,3 +11,11 @@ workflow test_gatk4_revertsam { GATK4_REVERTSAM ( input ) } + +workflow test_gatk4_revertsam_stubs { + input = [ [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + GATK4_REVERTSAM ( input ) +} diff --git a/tests/modules/gatk4/revertsam/test.yml b/tests/modules/gatk4/revertsam/test.yml index 2ebdb685..89e78659 100644 --- a/tests/modules/gatk4/revertsam/test.yml +++ b/tests/modules/gatk4/revertsam/test.yml @@ -7,3 +7,12 @@ - path: output/gatk4/test.reverted.bam md5sum: f783a88deb45c3a2c20ca12cbe1c5652 - path: output/gatk4/versions.yml + +- name: gatk4 revertsam test_gatk4_revertsam_stubs + command: nextflow run ./tests/modules/gatk4/revertsam -entry test_gatk4_revertsam -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/revertsam/nextflow.config -stub-run + tags: + - gatk4 + - gatk4/revertsam + files: + - path: output/gatk4/test.reverted.bam + - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/samtofastq/main.nf b/tests/modules/gatk4/samtofastq/main.nf index 26a8ce2d..aad80057 100644 --- a/tests/modules/gatk4/samtofastq/main.nf +++ b/tests/modules/gatk4/samtofastq/main.nf @@ -19,3 +19,11 @@ workflow test_gatk4_samtofastq_paired_end { GATK4_SAMTOFASTQ ( input ) } + +workflow test_gatk4_samtofastq_paired_end_stubs { + input = [ [ id:'test', single_end: false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) ] + ] + + GATK4_SAMTOFASTQ ( input ) +} diff --git a/tests/modules/gatk4/samtofastq/test.yml b/tests/modules/gatk4/samtofastq/test.yml index eb25f33b..1288a270 100644 --- a/tests/modules/gatk4/samtofastq/test.yml +++ b/tests/modules/gatk4/samtofastq/test.yml @@ -19,3 +19,13 @@ - path: output/gatk4/test_2.fastq.gz md5sum: 613bf64c023609e1c62ad6ce9e4be8d7 - path: output/gatk4/versions.yml + +- name: gatk4 samtofastq test_gatk4_samtofastq_paired_end_stubs + command: nextflow run ./tests/modules/gatk4/samtofastq -entry test_gatk4_samtofastq_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/samtofastq/nextflow.config -stub-run + tags: + - gatk4 + - gatk4/samtofastq + files: + - path: output/gatk4/test_1.fastq.gz + - path: output/gatk4/test_2.fastq.gz + - path: output/gatk4/versions.yml diff --git a/tests/modules/samtools/view/main.nf b/tests/modules/samtools/view/main.nf index 9c239066..0e3f597e 100644 --- a/tests/modules/samtools/view/main.nf +++ b/tests/modules/samtools/view/main.nf @@ -22,3 +22,12 @@ workflow test_samtools_view_cram { SAMTOOLS_VIEW ( input, fasta ) } + +workflow test_samtools_view_stubs { + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true), + [] + ] + + SAMTOOLS_VIEW ( input, [] ) +} diff --git a/tests/modules/samtools/view/test.yml b/tests/modules/samtools/view/test.yml index 1287d455..2718130e 100644 --- a/tests/modules/samtools/view/test.yml +++ b/tests/modules/samtools/view/test.yml @@ -14,3 +14,11 @@ - samtools files: - path: output/samtools/test.cram + +- name: samtools view test_samtools_view_stubs + command: nextflow run ./tests/modules/samtools/view -entry test_samtools_view -c ./tests/config/nextflow.config -c ./tests/modules/samtools/view/nextflow.config -stub-run + tags: + - samtools/view + - samtools + files: + - path: output/samtools/test.bam From 67b074382e418de8b86409af7d4b7663f6912a02 Mon Sep 17 00:00:00 2001 From: James Fellows Yates Date: Mon, 2 May 2022 12:29:00 +0200 Subject: [PATCH 338/592] Fix tests --- modules/diamond/blastp/main.nf | 14 +++++++------- modules/diamond/blastx/main.nf | 14 +++++++------- tests/modules/diamond/blastp/test.yml | 1 - tests/modules/diamond/blastx/test.yml | 1 - 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/modules/diamond/blastp/main.nf b/modules/diamond/blastp/main.nf index 0d78e230..fc77ee7b 100644 --- a/modules/diamond/blastp/main.nf +++ b/modules/diamond/blastp/main.nf @@ -14,13 +14,13 @@ process DIAMOND_BLASTP { val blast_columns output: - tuple val(meta), path('*.{blast}'), optional: true, emit: blast - tuple val(meta), path('*.{xml}') , optional: true, emit: xml - tuple val(meta), path('*.{txt}') , optional: true, emit: txt - tuple val(meta), path('*.{daa}') , optional: true, emit: daa - tuple val(meta), path('*.{sam}') , optional: true, emit: sam - tuple val(meta), path('*.{tsv}') , optional: true, emit: tsv - tuple val(meta), path('*.{paf}') , optional: true, emit: paf + tuple val(meta), path('*.blast'), optional: true, emit: blast + tuple val(meta), path('*.xml') , optional: true, emit: xml + tuple val(meta), path('*.txt') , optional: true, emit: txt + tuple val(meta), path('*.daa') , optional: true, emit: daa + tuple val(meta), path('*.sam') , optional: true, emit: sam + tuple val(meta), path('*.tsv') , optional: true, emit: tsv + tuple val(meta), path('*.paf') , optional: true, emit: paf path "versions.yml" , emit: versions when: diff --git a/modules/diamond/blastx/main.nf b/modules/diamond/blastx/main.nf index ef641435..3479eedb 100644 --- a/modules/diamond/blastx/main.nf +++ b/modules/diamond/blastx/main.nf @@ -14,13 +14,13 @@ process DIAMOND_BLASTX { val blast_columns output: - tuple val(meta), path('*.{blast}'), optional: true, emit: blast - tuple val(meta), path('*.{xml}') , optional: true, emit: xml - tuple val(meta), path('*.{txt}') , optional: true, emit: txt - tuple val(meta), path('*.{daa}') , optional: true, emit: daa - tuple val(meta), path('*.{sam}') , optional: true, emit: sam - tuple val(meta), path('*.{tsv}') , optional: true, emit: tsv - tuple val(meta), path('*.{paf}') , optional: true, emit: paf + tuple val(meta), path('*.blast'), optional: true, emit: blast + tuple val(meta), path('*.xml') , optional: true, emit: xml + tuple val(meta), path('*.txt') , optional: true, emit: txt + tuple val(meta), path('*.daa') , optional: true, emit: daa + tuple val(meta), path('*.sam') , optional: true, emit: sam + tuple val(meta), path('*.tsv') , optional: true, emit: tsv + tuple val(meta), path('*.paf') , optional: true, emit: paf path "versions.yml" , emit: versions when: diff --git a/tests/modules/diamond/blastp/test.yml b/tests/modules/diamond/blastp/test.yml index 4fad0cbf..aff4e1c5 100644 --- a/tests/modules/diamond/blastp/test.yml +++ b/tests/modules/diamond/blastp/test.yml @@ -5,7 +5,6 @@ - diamond files: - path: output/diamond/test.diamond_blastp.txt - md5sum: 2515cf88590afa32356497e79a51fce9 - path: output/diamond/versions.yml - name: diamond blastp test_diamond_blastp_daa diff --git a/tests/modules/diamond/blastx/test.yml b/tests/modules/diamond/blastx/test.yml index 9c30ba25..b2b6149f 100644 --- a/tests/modules/diamond/blastx/test.yml +++ b/tests/modules/diamond/blastx/test.yml @@ -5,7 +5,6 @@ - diamond/blastx files: - path: output/diamond/test.diamond_blastx.txt - md5sum: eb2aebfa1cb42fcb2121c65528663307 - path: output/diamond/versions.yml - name: diamond blastx test_diamond_blastx_daa From bd3bfe0817246082525ab93707976676b1fe208b Mon Sep 17 00:00:00 2001 From: James Fellows Yates Date: Mon, 2 May 2022 12:41:24 +0200 Subject: [PATCH 339/592] Add warn of default being used --- modules/diamond/blastp/main.nf | 5 +++++ modules/diamond/blastx/main.nf | 5 +++++ tests/modules/diamond/blastx/main.nf | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/diamond/blastp/main.nf b/modules/diamond/blastp/main.nf index fc77ee7b..033186ea 100644 --- a/modules/diamond/blastp/main.nf +++ b/modules/diamond/blastp/main.nf @@ -38,6 +38,11 @@ process DIAMOND_BLASTP { case "sam": outfmt = 101; break case "tsv": outfmt = 102; break case "paf": outfmt = 103; break + default: + outfmt = '6'; + out_ext = 'txt'; + log.warn("Unknown output file format provided (${out_ext}): selecting DIAMOND default of tabular BLAST output (txt)"); + break } """ DB=`find -L ./ -name "*.dmnd" | sed 's/.dmnd//'` diff --git a/modules/diamond/blastx/main.nf b/modules/diamond/blastx/main.nf index 3479eedb..d3272279 100644 --- a/modules/diamond/blastx/main.nf +++ b/modules/diamond/blastx/main.nf @@ -38,6 +38,11 @@ process DIAMOND_BLASTX { case "sam": outfmt = 101; break case "tsv": outfmt = 102; break case "paf": outfmt = 103; break + default: + outfmt = '6'; + out_ext = 'txt'; + log.warn("Unknown output file format provided (${out_ext}): selecting DIAMOND default of tabular BLAST output (txt)"); + break } """ DB=`find -L ./ -name "*.dmnd" | sed 's/.dmnd//'` diff --git a/tests/modules/diamond/blastx/main.nf b/tests/modules/diamond/blastx/main.nf index bb1b55a8..847a64b1 100644 --- a/tests/modules/diamond/blastx/main.nf +++ b/tests/modules/diamond/blastx/main.nf @@ -9,7 +9,7 @@ workflow test_diamond_blastx { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] - out_ext = 'txt' + out_ext = 'tfdfdt' blast_columns = 'qseqid qlen' DIAMOND_MAKEDB ( db ) From f231291e7730654158cbd3f10b82c292e27fa273 Mon Sep 17 00:00:00 2001 From: Lucpen Date: Mon, 2 May 2022 12:58:12 +0200 Subject: [PATCH 340/592] fix gatk4_reversam test --- modules/gatk4/revertsam/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gatk4/revertsam/main.nf b/modules/gatk4/revertsam/main.nf index 162aa0fa..3084658d 100644 --- a/modules/gatk4/revertsam/main.nf +++ b/modules/gatk4/revertsam/main.nf @@ -43,7 +43,7 @@ process GATK4_REVERTSAM { stub: def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.bam + touch ${prefix}.reverted.bam cat <<-END_VERSIONS > versions.yml "${task.process}": From de40c1bf54b79efb4aa2396ded7f8f457cf33c02 Mon Sep 17 00:00:00 2001 From: Lucpen Date: Mon, 2 May 2022 13:15:01 +0200 Subject: [PATCH 341/592] chore removing file from test --- tests/modules/gatk4/mergebamalignment/main.nf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/modules/gatk4/mergebamalignment/main.nf b/tests/modules/gatk4/mergebamalignment/main.nf index ebedad9b..0eb6876d 100644 --- a/tests/modules/gatk4/mergebamalignment/main.nf +++ b/tests/modules/gatk4/mergebamalignment/main.nf @@ -16,12 +16,12 @@ workflow test_gatk4_mergebamalignment { } workflow test_gatk4_mergebamalignment_stubs { - input = [ [ id:'test' ], // meta map - file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_unaligned_bam'], checkIfExists: true) + input = [ [ id:'test' ], // meta map + "test_foo.bam", + "test_bar.bam" ] - fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) + fasta = "genome.fasta" + dict = "genome.fasta.dict" GATK4_MERGEBAMALIGNMENT ( input, fasta, dict ) } From f1c2f624ebf8fb4368b6d5f26ea5b3cfafadf25c Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Mon, 2 May 2022 13:17:22 +0200 Subject: [PATCH 342/592] Update tests/modules/diamond/blastx/main.nf Co-authored-by: Mahesh Binzer-Panchal --- tests/modules/diamond/blastx/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/diamond/blastx/main.nf b/tests/modules/diamond/blastx/main.nf index 847a64b1..8316aa91 100644 --- a/tests/modules/diamond/blastx/main.nf +++ b/tests/modules/diamond/blastx/main.nf @@ -9,7 +9,7 @@ workflow test_diamond_blastx { db = [ file(params.test_data['sarscov2']['genome']['proteome_fasta'], checkIfExists: true) ] fasta = [ file(params.test_data['sarscov2']['genome']['transcriptome_fasta'], checkIfExists: true) ] - out_ext = 'tfdfdt' + out_ext = 'tfdfdt' // Nonsense file extension to check default case. blast_columns = 'qseqid qlen' DIAMOND_MAKEDB ( db ) From 3a4e415fe21982ccb39807d71c16e7d6ad0a1c1a Mon Sep 17 00:00:00 2001 From: Lucpen Date: Mon, 2 May 2022 13:30:18 +0200 Subject: [PATCH 343/592] chores adding dummy files for stubs --- tests/modules/gatk4/mutect2/main.nf | 18 +++++++++--------- tests/modules/gatk4/revertsam/main.nf | 2 +- tests/modules/gatk4/samtofastq/main.nf | 2 +- tests/modules/samtools/view/main.nf | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/modules/gatk4/mutect2/main.nf b/tests/modules/gatk4/mutect2/main.nf index 619d28b8..251e1987 100644 --- a/tests/modules/gatk4/mutect2/main.nf +++ b/tests/modules/gatk4/mutect2/main.nf @@ -121,18 +121,18 @@ workflow test_gatk4_mutect2_mitochondria { workflow test_gatk4_mutect2_tumor_single_stubs { input = [ [ id:'test'], // meta map - [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true)], - [ file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true)], + [ "foo.bam" ], + [ "foo.bam.bai" ], [] ] - fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) - fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) - dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) - germline_resource = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'], checkIfExists: true) - germline_resource_tbi = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz_tbi'], checkIfExists: true) - panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) - panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) + fasta = "genome.fasta" + fai = "genome.fasta.fai" + dict = "genome.fasta.dict" + germline_resource = "genome_gnomAD.r2.1.1.vcf.gz" + germline_resource_tbi = "genome_gnomAD.r2.1.1.vcf.gz.tbi" + panel_of_normals = "genome_mills_and_1000G.indels.hg38.vcf.gz" + panel_of_normals_tbi = "genome_mills_and_1000G.indels.hg38.vcf.gz.tbi" GATK4_MUTECT2 ( input, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } diff --git a/tests/modules/gatk4/revertsam/main.nf b/tests/modules/gatk4/revertsam/main.nf index 5b14d471..738ecd8f 100644 --- a/tests/modules/gatk4/revertsam/main.nf +++ b/tests/modules/gatk4/revertsam/main.nf @@ -14,7 +14,7 @@ workflow test_gatk4_revertsam { workflow test_gatk4_revertsam_stubs { input = [ [ id:'test' ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + "foo_paired_end.bam" ] GATK4_REVERTSAM ( input ) diff --git a/tests/modules/gatk4/samtofastq/main.nf b/tests/modules/gatk4/samtofastq/main.nf index aad80057..79d04c7c 100644 --- a/tests/modules/gatk4/samtofastq/main.nf +++ b/tests/modules/gatk4/samtofastq/main.nf @@ -22,7 +22,7 @@ workflow test_gatk4_samtofastq_paired_end { workflow test_gatk4_samtofastq_paired_end_stubs { input = [ [ id:'test', single_end: false ], // meta map - [ file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) ] + [ "foo_paired_end.bam" ] ] GATK4_SAMTOFASTQ ( input ) diff --git a/tests/modules/samtools/view/main.nf b/tests/modules/samtools/view/main.nf index 0e3f597e..bdad1078 100644 --- a/tests/modules/samtools/view/main.nf +++ b/tests/modules/samtools/view/main.nf @@ -25,7 +25,7 @@ workflow test_samtools_view_cram { workflow test_samtools_view_stubs { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true), + "foo_paired_end.bam", [] ] From da82e06354c34bf6381a86e5af195b24d7ef98ee Mon Sep 17 00:00:00 2001 From: Lucpen Date: Mon, 2 May 2022 14:16:07 +0200 Subject: [PATCH 344/592] fix gatk4_mutect2 test --- tests/modules/gatk4/mutect2/main.nf | 14 +++++++++----- tests/modules/gatk4/mutect2/test.yml | 5 +++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/tests/modules/gatk4/mutect2/main.nf b/tests/modules/gatk4/mutect2/main.nf index 251e1987..486b78ad 100644 --- a/tests/modules/gatk4/mutect2/main.nf +++ b/tests/modules/gatk4/mutect2/main.nf @@ -119,10 +119,14 @@ workflow test_gatk4_mutect2_mitochondria { GATK4_MUTECT2_MITO ( input, fasta, fai, dict, [], [], [], [] ) } -workflow test_gatk4_mutect2_tumor_single_stubs { - input = [ [ id:'test'], // meta map - [ "foo.bam" ], - [ "foo.bam.bai" ], +workflow test_gatk4_mutect2_tumor_normal_pair_f1r2_stubs { + input = [ [ id:'test', normal_id:'normal', tumor_id:'tumour' ], // meta map + [ "foo_parired.bam", + "foo_parired2.bam" + ], + [ "foo_parired.bam.bai", + "foo_parired2.bam.bai" + ], [] ] @@ -134,5 +138,5 @@ workflow test_gatk4_mutect2_tumor_single_stubs { panel_of_normals = "genome_mills_and_1000G.indels.hg38.vcf.gz" panel_of_normals_tbi = "genome_mills_and_1000G.indels.hg38.vcf.gz.tbi" - GATK4_MUTECT2 ( input, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) + GATK4_MUTECT2_F1R2 ( input, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } diff --git a/tests/modules/gatk4/mutect2/test.yml b/tests/modules/gatk4/mutect2/test.yml index 9232cedd..3853801d 100644 --- a/tests/modules/gatk4/mutect2/test.yml +++ b/tests/modules/gatk4/mutect2/test.yml @@ -70,12 +70,13 @@ - path: output/gatk4/test.vcf.gz.tbi - path: output/gatk4/versions.yml -- name: gatk4 mutect2 test_gatk4_mutect2_tumor_single_stubs - command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_tumor_single -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config -stub-run +- name: gatk4 mutect2 test_gatk4_mutect2_tumor_normal_pair_f1r2_stubs + command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_tumor_normal_pair_f1r2 -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config -stub-run tags: - gatk4 - gatk4/mutect2 files: + - path: output/gatk4/test.f1r2.tar.gz - path: output/gatk4/test.vcf.gz - path: output/gatk4/test.vcf.gz.stats - path: output/gatk4/test.vcf.gz.tbi From ed4dd1a928ebf4308efb720de878045f7773f8e2 Mon Sep 17 00:00:00 2001 From: ljmesi <37740329+ljmesi@users.noreply.github.com> Date: Mon, 2 May 2022 14:16:12 +0200 Subject: [PATCH 345/592] Add additional handling of fq.gz file name suffix --- modules/metaphlan3/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/metaphlan3/main.nf b/modules/metaphlan3/main.nf index 3fc6b277..bff0eb9a 100644 --- a/modules/metaphlan3/main.nf +++ b/modules/metaphlan3/main.nf @@ -23,7 +23,7 @@ process METAPHLAN3 { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def input_type = ("$input".endsWith(".fastq.gz")) ? "--input_type fastq" : ("$input".contains(".fasta")) ? "--input_type fasta" : ("$input".endsWith(".bowtie2out.txt")) ? "--input_type bowtie2out" : "--input_type sam" + def input_type = ("$input".endsWith(".fastq.gz") || "$input".endsWith(".fq.gz")) ? "--input_type fastq" : ("$input".contains(".fasta")) ? "--input_type fasta" : ("$input".endsWith(".bowtie2out.txt")) ? "--input_type bowtie2out" : "--input_type sam" def input_data = ("$input_type".contains("fastq")) && !meta.single_end ? "${input[0]},${input[1]}" : "$input" def bowtie2_out = "$input_type" == "--input_type bowtie2out" || "$input_type" == "--input_type sam" ? '' : "--bowtie2out ${prefix}.bowtie2out.txt" From 3f07761da5cfee184a281acb1dfe80838566f234 Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Mon, 2 May 2022 08:19:13 -0400 Subject: [PATCH 346/592] remove the output check for the versions.yml. --- tests/modules/motus/downloaddb/test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/modules/motus/downloaddb/test.yml b/tests/modules/motus/downloaddb/test.yml index ada5383a..e61f937f 100644 --- a/tests/modules/motus/downloaddb/test.yml +++ b/tests/modules/motus/downloaddb/test.yml @@ -5,5 +5,3 @@ - motus/downloaddb files: - path: output/motus/db_mOTU/db_mOTU_versions - - path: output/motus/versions.yml - md5sum: b9b843b2435b01bb430ee8780b5c639e From 5cd517e7596b8869d27c01505029ac1449067e95 Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Mon, 2 May 2022 14:31:40 +0200 Subject: [PATCH 347/592] Apply suggestions from code review Co-authored-by: James A. Fellows Yates --- modules/antismash/antismashlitedownloaddatabases/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/antismash/antismashlitedownloaddatabases/meta.yml b/modules/antismash/antismashlitedownloaddatabases/meta.yml index 4b9644c4..f7ddf3b0 100644 --- a/modules/antismash/antismashlitedownloaddatabases/meta.yml +++ b/modules/antismash/antismashlitedownloaddatabases/meta.yml @@ -27,7 +27,7 @@ input: - database_css: type: directory description: | - antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by ther use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. + antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. pattern: "css" - database_detection: type: directory From 0fc352188b8060331ee4268ee5492d9a54905b47 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Mon, 2 May 2022 14:40:35 +0200 Subject: [PATCH 348/592] Fix conda antismash path --- modules/antismash/antismashlitedownloaddatabases/main.nf | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/antismash/antismashlitedownloaddatabases/main.nf b/modules/antismash/antismashlitedownloaddatabases/main.nf index 5f9141f0..da8a750d 100644 --- a/modules/antismash/antismashlitedownloaddatabases/main.nf +++ b/modules/antismash/antismashlitedownloaddatabases/main.nf @@ -35,12 +35,19 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { script: def args = task.ext.args ?: '' + conda = params.enable_conda """ download-antismash-databases \\ --database-dir antismash_db \\ $args - cp -r /usr/local/lib/python3.8/site-packages/antismash antismash_dir + if [[ $conda = false ]]; \ + then \ + cp -r /usr/local/lib/python3.8/site-packages/antismash antismash_dir; \ + else \ + antismash_path=\$(python -c 'import antismash;print(antismash.__file__.split("__")[0])') \ + cp -r \$antismash_path antismash_dir; \ + fi cat <<-END_VERSIONS > versions.yml "${task.process}": From 31dd31079d8f2968dcd39eb3e4eca5687467d634 Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Mon, 2 May 2022 08:41:41 -0400 Subject: [PATCH 349/592] update teh versions.yml --- modules/motus/downloaddb/main.nf | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 58f3cd03..6a689e4a 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -30,12 +30,9 @@ process MOTUS_DOWNLOADDB { ## clean up rm ${software} - ## mOTUs version number is not available from command line. - ## mOTUs save the version number in index database folder. - ## mOTUs will check the database version is same version as exec version. cat <<-END_VERSIONS > versions.yml "${task.process}": - mOTUs: \$(grep motus db_mOTU/db_mOTU_versions | sed 's/motus\\t//g') + mOTUs: \$(echo \$(motus -h 2>&1) | sed 's/^.*Version: //; s/References.*\$//') END_VERSIONS """ } From 250d64dfde684d9e180e737e79540d1675b17dcb Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Mon, 2 May 2022 08:52:54 -0400 Subject: [PATCH 350/592] fix the typo of motus_downloadb. --- modules/motus/downloaddb/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 6a689e4a..46bec9b6 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -18,12 +18,12 @@ process MOTUS_DOWNLOADDB { script: def args = task.ext.args ?: '' - def software = "${motus_downloaddb.simpleName}_copy.py" + def software = "${motus_downloaddb_script.simpleName}_copy.py" """ ## must copy script file to working directory, ## otherwise the reference_db will be download to bin folder ## other than current directory - cp $motus_downloaddb ${software} + cp $motus_downloaddb_script ${software} python ${software} \\ $args \\ -t $task.cpus From 62c6123ec48e15b42bd60b344603a83b658054d8 Mon Sep 17 00:00:00 2001 From: Lucpen Date: Mon, 2 May 2022 15:11:57 +0200 Subject: [PATCH 351/592] fix gatk4_mutect2 test by changing main.nf --- modules/gatk4/mutect2/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/gatk4/mutect2/main.nf b/modules/gatk4/mutect2/main.nf index a214b57d..9969ad70 100644 --- a/modules/gatk4/mutect2/main.nf +++ b/modules/gatk4/mutect2/main.nf @@ -62,8 +62,8 @@ process GATK4_MUTECT2 { def prefix = task.ext.prefix ?: "${meta.id}" """ touch ${prefix}.vcf.gz - touch ${prefix}.tbi - touch ${prefix}.stats + touch ${prefix}.vcf.gz.tbi + touch ${prefix}.vcf.gz.stats touch ${prefix}.f1r2.tar.gz cat <<-END_VERSIONS > versions.yml From 50cc136a7810323f2c802ff3bcc1bf54c85d57a9 Mon Sep 17 00:00:00 2001 From: Lucpen Date: Mon, 2 May 2022 15:14:05 +0200 Subject: [PATCH 352/592] Update tests/modules/gatk4/mutect2/main.nf fix spelling mistake Co-authored-by: Maxime U. Garcia --- tests/modules/gatk4/mutect2/main.nf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/modules/gatk4/mutect2/main.nf b/tests/modules/gatk4/mutect2/main.nf index 486b78ad..310e9ca1 100644 --- a/tests/modules/gatk4/mutect2/main.nf +++ b/tests/modules/gatk4/mutect2/main.nf @@ -121,11 +121,11 @@ workflow test_gatk4_mutect2_mitochondria { workflow test_gatk4_mutect2_tumor_normal_pair_f1r2_stubs { input = [ [ id:'test', normal_id:'normal', tumor_id:'tumour' ], // meta map - [ "foo_parired.bam", - "foo_parired2.bam" + [ "foo_paired.bam", + "foo_paired2.bam" ], - [ "foo_parired.bam.bai", - "foo_parired2.bam.bai" + [ "foo_paired.bam.bai", + "foo_paired2.bam.bai" ], [] ] From 38d9d81aaf61c83743b7e43e405917e7aeb376a6 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 16:10:57 +0200 Subject: [PATCH 353/592] update code --- tests/modules/krona/ktimporttaxonomy/main.nf | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index 280658a5..e58543a6 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -2,9 +2,11 @@ nextflow.enable.dsl = 2 -include { KRONA_KTIMPORTTAXONOMY_READS } from '../../../../modules/krona/ktimporttaxonomy/main.nf' +include { KRONA_KTIMPORTTAXONOMY as TAXONOMY_READS } from '../../../../modules/krona/ktimporttaxonomy/main.nf' -include { KRONA_KTIMPORTTAXONOMY_REPORT } from '../../../../modules/krona/ktimporttaxonomy/main.nf' +include { KRONA_KTIMPORTTAXONOMY as TAXONOMY_REPORT } from '../../../../modules/krona/ktimporttaxonomy/main.nf' + +include { KRONA_KRONADB as DOWNLOAD_DB } from '../../../../modules/krona/kronadb/main.nf' workflow test_krona_ktimporttaxonomy_reads { @@ -12,9 +14,10 @@ workflow test_krona_ktimporttaxonomy_reads { [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['metagenome']['test_1.kraken2.reads.txt'], checkIfExists: true) ] - taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) + // taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) - KRONA_KTIMPORTTAXONOMY_READS ( input, taxonomy ) + DOWNLOAD_DB() + TAXONOMY_READS ( input, DOWNLOAD_DB.out.db ) } workflow test_krona_ktimporttaxonomy_report { @@ -25,5 +28,6 @@ workflow test_krona_ktimporttaxonomy_report { ] taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) - KRONA_KTIMPORTTAXONOMY_REPORT ( input, taxonomy ) + TDOWNLOAD_DB() + TAXONOMY_REPORT ( input, DOWNLOAD_DB.out.db ) } From 42310cbce29929b0c40520f852ca19307febf094 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 16:14:38 +0200 Subject: [PATCH 354/592] updated config to reflect names in test workflow --- tests/modules/krona/ktimporttaxonomy/nextflow.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/nextflow.config b/tests/modules/krona/ktimporttaxonomy/nextflow.config index fb4d86f5..973b60ba 100644 --- a/tests/modules/krona/ktimporttaxonomy/nextflow.config +++ b/tests/modules/krona/ktimporttaxonomy/nextflow.config @@ -2,11 +2,11 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: KRONA_KTIMPORTTAXONOMY_READS { + withName: TAXONOMY_READS { ext.args = '-t 3' } - withName: KRONA_KTIMPORTTAXONOMY_REPORT { + withName: TAXONOMY_REPORT { ext.args = '-m 3 -t 5' } From 80f107515e5e4d0db115d4ce4677a8c98bd50633 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 16:22:22 +0200 Subject: [PATCH 355/592] update nextflow.config withName --- tests/modules/krona/ktimporttaxonomy/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index e58543a6..4ac0f0ac 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -12,7 +12,7 @@ workflow test_krona_ktimporttaxonomy_reads { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['metagenome']['test_1.kraken2.reads.txt'], checkIfExists: true) + file(params.test_data['sarscov2']['metagenome']['classified_reads_assignment'], checkIfExists: true) ] // taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) @@ -24,7 +24,7 @@ workflow test_krona_ktimporttaxonomy_report { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['metagenome']['test_1.kraken2.report.txt'], checkIfExists: true) + file(params.test_data['sarscov2']['metagenome']['report'], checkIfExists: true) ] taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) From 6a9f2077cf6f224c547e4c7ff0f703cedc69bda2 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Mon, 2 May 2022 16:41:59 +0200 Subject: [PATCH 356/592] Fix unbound variable crash --- modules/antismash/antismashlitedownloaddatabases/main.nf | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/antismash/antismashlitedownloaddatabases/main.nf b/modules/antismash/antismashlitedownloaddatabases/main.nf index da8a750d..fbb92490 100644 --- a/modules/antismash/antismashlitedownloaddatabases/main.nf +++ b/modules/antismash/antismashlitedownloaddatabases/main.nf @@ -37,16 +37,15 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { def args = task.ext.args ?: '' conda = params.enable_conda """ - download-antismash-databases \\ - --database-dir antismash_db \\ - $args + #download-antismash-databases \\ + # --database-dir antismash_db \\ + # $args if [[ $conda = false ]]; \ then \ cp -r /usr/local/lib/python3.8/site-packages/antismash antismash_dir; \ else \ - antismash_path=\$(python -c 'import antismash;print(antismash.__file__.split("__")[0])') \ - cp -r \$antismash_path antismash_dir; \ + cp -r \$(python -c 'import antismash;print(antismash.__file__.split("/__")[0])') antismash_dir; \ fi cat <<-END_VERSIONS > versions.yml From 700d6ab3f1a5596a2c9bbdd22c763644061580a8 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 16:55:18 +0200 Subject: [PATCH 357/592] errore TDOWNLOAD --- tests/modules/krona/ktimporttaxonomy/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index 4ac0f0ac..9987eec5 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -28,6 +28,6 @@ workflow test_krona_ktimporttaxonomy_report { ] taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) - TDOWNLOAD_DB() + DOWNLOAD_DB() TAXONOMY_REPORT ( input, DOWNLOAD_DB.out.db ) } From 8db0b754c0422cb80d06f47986d660f8aaf02c89 Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Mon, 2 May 2022 16:56:39 +0200 Subject: [PATCH 358/592] Fix commented-out command --- modules/antismash/antismashlitedownloaddatabases/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/antismash/antismashlitedownloaddatabases/main.nf b/modules/antismash/antismashlitedownloaddatabases/main.nf index fbb92490..a0928333 100644 --- a/modules/antismash/antismashlitedownloaddatabases/main.nf +++ b/modules/antismash/antismashlitedownloaddatabases/main.nf @@ -37,9 +37,9 @@ process ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { def args = task.ext.args ?: '' conda = params.enable_conda """ - #download-antismash-databases \\ - # --database-dir antismash_db \\ - # $args + download-antismash-databases \\ + --database-dir antismash_db \\ + $args if [[ $conda = false ]]; \ then \ From 2e4c200a26ecb6dd63f2c95e5ab619d99e7a7582 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 17:13:20 +0200 Subject: [PATCH 359/592] remove new line between includes --- tests/modules/krona/ktimporttaxonomy/main.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index 9987eec5..56ff8ae2 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -3,9 +3,7 @@ nextflow.enable.dsl = 2 include { KRONA_KTIMPORTTAXONOMY as TAXONOMY_READS } from '../../../../modules/krona/ktimporttaxonomy/main.nf' - include { KRONA_KTIMPORTTAXONOMY as TAXONOMY_REPORT } from '../../../../modules/krona/ktimporttaxonomy/main.nf' - include { KRONA_KRONADB as DOWNLOAD_DB } from '../../../../modules/krona/kronadb/main.nf' workflow test_krona_ktimporttaxonomy_reads { From 3cebcbfc0ae17d3fe026619ee7c0cb1c7c2a665d Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 17:13:58 +0200 Subject: [PATCH 360/592] remove taxonomy not used in place of db --- tests/modules/krona/ktimporttaxonomy/main.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index 56ff8ae2..c259a793 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -12,7 +12,6 @@ workflow test_krona_ktimporttaxonomy_reads { [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['metagenome']['classified_reads_assignment'], checkIfExists: true) ] - // taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) DOWNLOAD_DB() TAXONOMY_READS ( input, DOWNLOAD_DB.out.db ) @@ -24,7 +23,6 @@ workflow test_krona_ktimporttaxonomy_report { [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['metagenome']['report'], checkIfExists: true) ] - taxonomy = file(params.test_data['generic']['txt']['hello'], checkIfExists: true) DOWNLOAD_DB() TAXONOMY_REPORT ( input, DOWNLOAD_DB.out.db ) From 028dc3cb876415932054df1d456e2f6549c52219 Mon Sep 17 00:00:00 2001 From: carpanz Date: Mon, 2 May 2022 17:24:55 +0200 Subject: [PATCH 361/592] updated test yml file --- tests/modules/krona/ktimporttaxonomy/test.yml | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/test.yml b/tests/modules/krona/ktimporttaxonomy/test.yml index b7748980..b73e6473 100644 --- a/tests/modules/krona/ktimporttaxonomy/test.yml +++ b/tests/modules/krona/ktimporttaxonomy/test.yml @@ -1,9 +1,29 @@ -- name: krona ktimporttaxonomy test_krona_ktimporttaxonomy - command: nextflow run ./tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy -c ./tests/config/nextflow.config -c ./tests/modules/krona/ktimporttaxonomy/nextflow.config +- name: krona ktimporttaxonomy test_krona_ktimporttaxonomy_reads + command: nextflow run tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy_reads -c tests/config/nextflow.config tags: - krona/ktimporttaxonomy - krona files: - - path: output/krona/taxonomy.krona.html - contains: - - "DOCTYPE html PUBLIC" + - path: output/download/taxonomy/taxonomy.tab + md5sum: 0d13b5b3838f12d1f51827464345e0f0 + - path: output/download/versions.yml + md5sum: 5bf3137779303fb36e4c5373704a4bb6 + - path: output/taxonomy/taxonomy.krona.html + contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' + - path: output/taxonomy/versions.yml + md5sum: ea32399c9fd3bc1d4fc1081cb3a345d5 + +- name: krona ktimporttaxonomy test_krona_ktimporttaxonomy_report + command: nextflow run tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy_report -c tests/config/nextflow.config + tags: + - krona/ktimporttaxonomy + - krona + files: + - path: output/download/taxonomy/taxonomy.tab + md5sum: 0d13b5b3838f12d1f51827464345e0f0 + - path: output/download/versions.yml + md5sum: ea7720c3555ad61eb06b46454c87407e + - path: output/taxonomy/taxonomy.krona.html + contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' + - path: output/taxonomy/versions.yml + md5sum: 4d46e08ff46dbd1e7075b93903b72400 From 1188264fa209e4de8e139d79e0d79684d543c11a Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 17:25:58 +0200 Subject: [PATCH 362/592] finished test yml file --- tests/modules/krona/ktimporttaxonomy/test.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/test.yml b/tests/modules/krona/ktimporttaxonomy/test.yml index b73e6473..f9d4c91a 100644 --- a/tests/modules/krona/ktimporttaxonomy/test.yml +++ b/tests/modules/krona/ktimporttaxonomy/test.yml @@ -9,7 +9,8 @@ - path: output/download/versions.yml md5sum: 5bf3137779303fb36e4c5373704a4bb6 - path: output/taxonomy/taxonomy.krona.html - contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' + contains: + - "DOCTYPE html PUBLIC" - path: output/taxonomy/versions.yml md5sum: ea32399c9fd3bc1d4fc1081cb3a345d5 @@ -24,6 +25,7 @@ - path: output/download/versions.yml md5sum: ea7720c3555ad61eb06b46454c87407e - path: output/taxonomy/taxonomy.krona.html - contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' + contains: + - "DOCTYPE html PUBLIC" - path: output/taxonomy/versions.yml md5sum: 4d46e08ff46dbd1e7075b93903b72400 From 24dc2d21132b07b4c3d36c9836885427a5019b11 Mon Sep 17 00:00:00 2001 From: jvhagey Date: Mon, 2 May 2022 11:30:19 -0400 Subject: [PATCH 363/592] added tests --- modules/srst2/srst2/main.nf | 4 ++-- modules/srst2/srst2/meta.yml | 6 +++++- tests/modules/srst2/srst2/main.nf | 31 +++++++++++++++++++++++++++--- tests/modules/srst2/srst2/test.yml | 21 ++++++++++++++++++-- 4 files changed, 54 insertions(+), 8 deletions(-) diff --git a/modules/srst2/srst2/main.nf b/modules/srst2/srst2/main.nf index 4ee9f6a6..e8a91716 100644 --- a/modules/srst2/srst2/main.nf +++ b/modules/srst2/srst2/main.nf @@ -11,8 +11,9 @@ process SRST2_SRST2 { tuple val(meta), path(fastq_s), path(db) output: - tuple val(meta), path("*_genes_*_results.txt") , emit: gene_results + tuple val(meta), path("*_genes_*_results.txt") , optional:true, emit: gene_results tuple val(meta), path("*_fullgenes_*_results.txt") , optional:true, emit: fullgene_results + tuple val(meta), path("*_mlst_*_results.txt") , optional:true, emit: mlst_results tuple val(meta), path("*.pileup") , emit: pileup tuple val(meta), path("*.sorted.bam") , emit: sorted_bam path "versions.yml" , emit: versions @@ -38,7 +39,6 @@ process SRST2_SRST2 { --output ${prefix} \\ ${database} \\ $args - cat <<-END_VERSIONS > versions.yml "${task.process}": srst2: \$(echo \$(srst2 --version 2>&1) | sed 's/srst2 //' )) diff --git a/modules/srst2/srst2/meta.yml b/modules/srst2/srst2/meta.yml index 3755fb34..94c763bb 100644 --- a/modules/srst2/srst2/meta.yml +++ b/modules/srst2/srst2/meta.yml @@ -49,12 +49,16 @@ output: pattern: "versions.yml" - txt: type: file - description: A detailed report, with one row per gene per sample described here: https://github.com/katholt/srst2#gene-typing + description: A detailed report, with one row per gene per sample described here github.com/katholt/srst2#gene-typing pattern: "*_fullgenes_*_results.txt" - txt: type: file description: A tabulated summary report of samples x genes. pattern: "*_genes_*_results.txt" + - txt: + type: file + description: A tabulated summary report of mlst subtyping. + pattern: "*_mlst_*_results.txt" - bam: type: file description: Sorted BAM file diff --git a/tests/modules/srst2/srst2/main.nf b/tests/modules/srst2/srst2/main.nf index 235f3ff9..7d51937b 100644 --- a/tests/modules/srst2/srst2/main.nf +++ b/tests/modules/srst2/srst2/main.nf @@ -4,9 +4,34 @@ nextflow.enable.dsl = 2 include { SRST2_SRST2 } from '../../../../modules/srst2/srst2/main.nf' +workflow test_srst2_srst2_exit { + + input = [ + [ id:'test', single_end:false, db:"test"], // meta map + [ file(params.test_data['bacteroides_fragilis']['illumina']['test1_1_fastq_gz'], checkIfExists: true), + file(params.test_data['bacteroides_fragilis']['illumina']['test1_2_fastq_gz'], checkIfExists: true) ], +// [("")] + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/srst2/resFinder_20180221_srst2.fasta') + ] + + SRST2_SRST2(input) +} + +workflow test_srst2_srst2_mlst { + + input = [ + [ id:'test', single_end:false, db:"mlst"], // meta map + [ file("https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/srst2/SRR9067271_1.fastq.gz", checkIfExists: true), + file("https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/srst2/SRR9067271_2.fastq.gz", checkIfExists: true) ], + file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/srst2/MLST_DB.fas') + ] + + SRST2_SRST2(input) +} + workflow test_srst2_srst2_paired_end { - input = [ + input = [ [ id:'test', single_end:false, db:"gene"], // meta map [ file(params.test_data['bacteroides_fragilis']['illumina']['test1_1_fastq_gz'], checkIfExists: true), file(params.test_data['bacteroides_fragilis']['illumina']['test1_2_fastq_gz'], checkIfExists: true) ], @@ -18,11 +43,11 @@ workflow test_srst2_srst2_paired_end { workflow test_srst2_srst2_single_end { - input = [ + input = [ [ id:'test', single_end:true, db:"gene" ], // meta map file(params.test_data['bacteroides_fragilis']['illumina']['test1_1_fastq_gz'], checkIfExists: true), file('https://raw.githubusercontent.com/nf-core/test-datasets/modules/data/delete_me/srst2/resFinder_20180221_srst2.fasta') // Change to params.test_data syntax after the data is included in tests/config/test_data.config ] SRST2_SRST2(input) -} \ No newline at end of file +} diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml index f011b4d1..102c78a4 100644 --- a/tests/modules/srst2/srst2/test.yml +++ b/tests/modules/srst2/srst2/test.yml @@ -1,8 +1,22 @@ +- name: srst2 srst2 test_srst2_srst2_mlst + command: nextflow run tests/modules/srst2/srst2 -entry test_srst2_srst2_mlst -c tests/config/nextflow.config + tags: + - srst2/srst2 + - srst2 + files: + - path: output/srst2/test__SRR9067271.MLST_DB.pileup + md5sum: f59217dd9340264b9913c20b545b2ce7 + - path: output/srst2/test__SRR9067271.MLST_DB.sorted.bam + - path: output/srst2/test__mlst__MLST_DB__results.txt + md5sum: ec1b1f69933401d67c57f64cad11a098 + - path: output/srst2/versions.yml + md5sum: a0c256a2fd3636069710b8ef22ee5ea7 + - name: srst2 srst2 test_srst2_srst2_paired_end command: nextflow run tests/modules/srst2/srst2 -entry test_srst2_srst2_paired_end -c tests/config/nextflow.config tags: - - srst2 - srst2/srst2 + - srst2 files: - path: output/srst2/test__genes__resFinder_20180221_srst2__results.txt md5sum: 099aa6cacec5524b311f606debdfb3a9 @@ -15,8 +29,8 @@ - name: srst2 srst2 test_srst2_srst2_single_end command: nextflow run tests/modules/srst2/srst2 -entry test_srst2_srst2_single_end -c tests/config/nextflow.config tags: - - srst2 - srst2/srst2 + - srst2 files: - path: output/srst2/test__fullgenes__resFinder_20180221_srst2__results.txt md5sum: d0762ef8c38afd0e0a34cce52ed1a3db @@ -27,3 +41,6 @@ - path: output/srst2/test__test1_1.resFinder_20180221_srst2.sorted.bam - path: output/srst2/versions.yml md5sum: 790fe00493c6634d17801a930073218b + +- name: srst2 srst2 test_srst2_srst2_exit #Testing pipeline exit when not meta.db + exit_code: 1 From 4a4de550b89220a3f12947cd546ad78bc1f9d479 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Mon, 2 May 2022 17:30:46 +0200 Subject: [PATCH 364/592] Simplify/reduce container mount volumes --- modules/antismash/antismashlite/main.nf | 8 +++---- modules/antismash/antismashlite/meta.yml | 16 +++----------- tests/modules/antismash/antismashlite/main.nf | 6 ++--- .../modules/antismash/antismashlite/test.yml | 22 +++---------------- 4 files changed, 12 insertions(+), 40 deletions(-) diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf index 6f1c0fcd..c92f983e 100644 --- a/modules/antismash/antismashlite/main.nf +++ b/modules/antismash/antismashlite/main.nf @@ -9,18 +9,16 @@ process ANTISMASH_ANTISMASHLITE { containerOptions { workflow.containerEngine == 'singularity' ? - "-B $css_dir:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css,$detection_dir:/usr/local/lib/python3.8/site-packages/antismash/detection,$modules_dir:/usr/local/lib/python3.8/site-packages/antismash/modules" : + "-B $antismash_dir:/usr/local/lib/python3.8/site-packages/antismash" : workflow.containerEngine == 'docker' ? - "-v \$PWD/$css_dir:/usr/local/lib/python3.8/site-packages/antismash/outputs/html/css -v \$PWD/$detection_dir:/usr/local/lib/python3.8/site-packages/antismash/detection -v \$PWD/$modules_dir:/usr/local/lib/python3.8/site-packages/antismash/modules" : + "-v \$PWD/$antismash_dir:/usr/local/lib/python3.8/site-packages/antismash" : '' } input: tuple val(meta), path(sequence_input) path(databases) - path css_dir - path detection_dir - path modules_dir + path(antismash_dir) // Optional input: AntiSMASH installation folder. It is not needed for using this module with conda, but required for docker/singularity (see meta.yml). output: tuple val(meta), path("${prefix}/clusterblast/*_c*.txt") , optional: true, emit: clusterblast_file diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml index fa7e21a6..d726ad3e 100644 --- a/modules/antismash/antismashlite/meta.yml +++ b/modules/antismash/antismashlite/meta.yml @@ -37,21 +37,11 @@ input: type: directory description: downloaded antismash databases e.g. data/databases pattern: "*" - - css_dir: + - antismash_dir: type: directory description: | - antismash/outputs/html/css folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. - pattern: "css" - - detection_dir: - type: directory - description: | - antismash/detection folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. - pattern: "detection" - - modules_dir: - type: directory - description: | - antismash/modules folder which is being created during the antiSMASH database downloading step. These files are normally downloaded by download-antismash-databases itself, and must be retrieved by the use by manually running the command with conda or a standalone installation of antiSMASH. Therefore we do not recommend using this module for production pipelines, but rather require users to specify their own local copy of the antiSMASH database in pipelines. - pattern: "modules" + antismash installation folder which is being modified during the antiSMASH database downloading step. The modified files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command within antismash-lite. As this folder cannot be modified within the docker and singularity containers, it needs to be mounted (including all modified files from the downloading step) as a workaround. + pattern: "*" output: - meta: diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index 14bb7552..536d1266 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -11,7 +11,7 @@ include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismas include { PROKKA } from '../../../modules/prokka/main.nf' workflow test_antismashlite { - input = [ + input_genome = [ [ id:'test' ], // meta map file(params.test_data['bacteroides_fragilis']['genome']['genome_gbff_gz'], checkIfExists: true) ] @@ -34,7 +34,7 @@ workflow test_antismashlite { UNTAR2 ( input_antismash_db2 ) UNTAR3 ( input_antismash_db3 ) ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) - ANTISMASH_ANTISMASHLITE ( input, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) + ANTISMASH_ANTISMASHLITE ( input_genome, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, [] ) } workflow test_prokka_antismashlite { @@ -62,5 +62,5 @@ workflow test_prokka_antismashlite { UNTAR2 ( input_antismash_db2 ) UNTAR3 ( input_antismash_db3 ) ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) - ANTISMASH_ANTISMASHLITE ( PROKKA.out.gbk, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) + ANTISMASH_ANTISMASHLITE ( PROKKA.out.gbk, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir ) } diff --git a/tests/modules/antismash/antismashlite/test.yml b/tests/modules/antismash/antismashlite/test.yml index 3fcba1e4..a2adad79 100644 --- a/tests/modules/antismash/antismashlite/test.yml +++ b/tests/modules/antismash/antismashlite/test.yml @@ -24,23 +24,17 @@ - path: output/antismash/test/js/jquery.tablesorter.min.js md5sum: 5e9e08cef4d1be0eaa538e6eb28809a7 - path: output/antismash/test/regions.js - md5sum: dfc82025379d87df63fbfce734e67725 + contains: ['"seq_id": "NZ_CP069563.1"'] - path: output/antismash/test/test.log contains: ['antiSMASH version: 6.0.1'] - path: output/antismash/versions.yml - md5sum: 7151dfd4d39173338397b2dab50acf8e - - path: output/untar1/versions.yml - md5sum: 1e4721017721c45370996318e6b807e5 - - path: output/untar2/versions.yml - md5sum: a6ae4977a432f3c5ef26687cec8622de - - path: output/untar3/versions.yml - md5sum: a5ee00c1c426ed601ff654891ba0f645 + md5sum: 759431a43da33e2ef8e2d0ebd79a439b - name: antismash antismashlite test_prokka_antismashlite command: nextflow run tests/modules/antismash/antismashlite -entry test_prokka_antismashlite -c tests/config/nextflow.config tags: - - antismash - antismash/antismashlite + - antismash files: - path: output/antismash/test/NZ_CP069563.1.region001.gbk contains: ['/tool="antismash"'] @@ -69,8 +63,6 @@ md5sum: da6bed0032d0f7ad4741e0074ad6b1ff - path: output/gunzip/genome.fna md5sum: dafd38f5454b54fbea38245d773062a5 - - path: output/gunzip/versions.yml - md5sum: 93ce587e93791c8cf500482d42b6069f - path: output/prokka/test/test.err md5sum: 194fd8a1d1cde9919841a1afd4414760 - path: output/prokka/test/test.faa @@ -95,11 +87,3 @@ md5sum: 26e8aa4b2212f320e82b6db7c93d4461 - path: output/prokka/test/test.txt md5sum: aea5834a64dff02d3588cecbe25c3914 - - path: output/prokka/versions.yml - md5sum: 286ac10895a9f26ee8dd933dbc5d2b1c - - path: output/untar1/versions.yml - md5sum: 6c1bfedb010be6dfee273aa267b1cae3 - - path: output/untar2/versions.yml - md5sum: 65db3fe9c809e5371158deae444fb343 - - path: output/untar3/versions.yml - md5sum: 713d3aa0ee24ff680a8024cc53765d60 From cd45dc15503972b3f4bce572fe98168f68e66f9e Mon Sep 17 00:00:00 2001 From: jvhagey Date: Mon, 2 May 2022 11:38:39 -0400 Subject: [PATCH 365/592] linting test.yml --- tests/modules/srst2/srst2/test.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml index 102c78a4..9e448211 100644 --- a/tests/modules/srst2/srst2/test.yml +++ b/tests/modules/srst2/srst2/test.yml @@ -1,3 +1,9 @@ +- name: srst2 srst2 test_srst2_srst2_exit #Testing pipeline exit when not meta.db + tags: + - srst2/srst2 + - srst2 + exit_code: 1 + - name: srst2 srst2 test_srst2_srst2_mlst command: nextflow run tests/modules/srst2/srst2 -entry test_srst2_srst2_mlst -c tests/config/nextflow.config tags: @@ -41,6 +47,3 @@ - path: output/srst2/test__test1_1.resFinder_20180221_srst2.sorted.bam - path: output/srst2/versions.yml md5sum: 790fe00493c6634d17801a930073218b - -- name: srst2 srst2 test_srst2_srst2_exit #Testing pipeline exit when not meta.db - exit_code: 1 From 76a0e3ef04aac7c3ea70b375aaabee9f2dfb332a Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 17:40:50 +0200 Subject: [PATCH 366/592] updated config kraken report name --- tests/config/test_data.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 4337d5b9..21cf5b27 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -112,7 +112,7 @@ params { } 'metagenome' { classified_reads_assignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt" - report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt" + kraken_report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt" } } 'homo_sapiens' { From c9ab26ba8e5b222599baca73fa40a36909834685 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 17:41:55 +0200 Subject: [PATCH 367/592] synced name of report as in test config --- tests/modules/krona/ktimporttaxonomy/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index c259a793..5fa227b6 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -21,7 +21,7 @@ workflow test_krona_ktimporttaxonomy_report { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['metagenome']['report'], checkIfExists: true) + file(params.test_data['sarscov2']['metagenome']['kraken_report'], checkIfExists: true) ] DOWNLOAD_DB() From c07ae8c48345b2700684eda60fda099c159ad6de Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 17:47:45 +0200 Subject: [PATCH 368/592] fixed lint in ktimporttaxonomy --- modules/krona/ktimporttaxonomy/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/krona/ktimporttaxonomy/main.nf b/modules/krona/ktimporttaxonomy/main.nf index 4fa15669..6a9fae89 100644 --- a/modules/krona/ktimporttaxonomy/main.nf +++ b/modules/krona/ktimporttaxonomy/main.nf @@ -24,9 +24,9 @@ process KRONA_KTIMPORTTAXONOMY { def args = task.ext.args ?: '' """ ktImportTaxonomy \\ - "$report" \\ - $args \\ - -tax taxonomy + "$report" \\ + $args \\ + -tax taxonomy cat <<-END_VERSIONS > versions.yml "${task.process}": From 35cc8152b877ed30dd061261f5196e474dcc1775 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Mon, 2 May 2022 17:55:39 +0200 Subject: [PATCH 369/592] Fix missing test input --- tests/modules/antismash/antismashlite/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index 536d1266..3044250a 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -34,7 +34,7 @@ workflow test_antismashlite { UNTAR2 ( input_antismash_db2 ) UNTAR3 ( input_antismash_db3 ) ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) - ANTISMASH_ANTISMASHLITE ( input_genome, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, [] ) + ANTISMASH_ANTISMASHLITE ( input_genome, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir ) } workflow test_prokka_antismashlite { From b0a2d36ec1e8cd53258961e8fbd1e40b42e07638 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 18:16:08 +0200 Subject: [PATCH 370/592] removing kronadb module from testing ktimporttaxonomy test - NB: temporarily using test db while testdb is added to test-datasets --- tests/modules/krona/ktimporttaxonomy/main.nf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index 5fa227b6..e48882b9 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -12,9 +12,9 @@ workflow test_krona_ktimporttaxonomy_reads { [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['metagenome']['classified_reads_assignment'], checkIfExists: true) ] + taxonomy = file("https://raw.githubusercontent.com/lescai/test-datasets/modules/data/genomics/sarscov2/metagenome/krona_taxonomy.tab") - DOWNLOAD_DB() - TAXONOMY_READS ( input, DOWNLOAD_DB.out.db ) + TAXONOMY_READS ( input, taxonomy ) } workflow test_krona_ktimporttaxonomy_report { @@ -23,7 +23,7 @@ workflow test_krona_ktimporttaxonomy_report { [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['metagenome']['kraken_report'], checkIfExists: true) ] + taxonomy = file("https://raw.githubusercontent.com/lescai/test-datasets/modules/data/genomics/sarscov2/metagenome/krona_taxonomy.tab") - DOWNLOAD_DB() - TAXONOMY_REPORT ( input, DOWNLOAD_DB.out.db ) + TAXONOMY_REPORT ( input, taxonomy ) } From 6e83196634582e7a70dc1ab52e293e26f80c7acc Mon Sep 17 00:00:00 2001 From: carpanz Date: Mon, 2 May 2022 18:20:36 +0200 Subject: [PATCH 371/592] updating test yml after removing kronadb from test --- tests/modules/krona/ktimporttaxonomy/test.yml | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/test.yml b/tests/modules/krona/ktimporttaxonomy/test.yml index f9d4c91a..64ec948e 100644 --- a/tests/modules/krona/ktimporttaxonomy/test.yml +++ b/tests/modules/krona/ktimporttaxonomy/test.yml @@ -1,31 +1,21 @@ - name: krona ktimporttaxonomy test_krona_ktimporttaxonomy_reads command: nextflow run tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy_reads -c tests/config/nextflow.config tags: - - krona/ktimporttaxonomy - krona + - krona/ktimporttaxonomy files: - - path: output/download/taxonomy/taxonomy.tab - md5sum: 0d13b5b3838f12d1f51827464345e0f0 - - path: output/download/versions.yml - md5sum: 5bf3137779303fb36e4c5373704a4bb6 - path: output/taxonomy/taxonomy.krona.html - contains: - - "DOCTYPE html PUBLIC" + contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' - path: output/taxonomy/versions.yml md5sum: ea32399c9fd3bc1d4fc1081cb3a345d5 - name: krona ktimporttaxonomy test_krona_ktimporttaxonomy_report command: nextflow run tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy_report -c tests/config/nextflow.config tags: - - krona/ktimporttaxonomy - krona + - krona/ktimporttaxonomy files: - - path: output/download/taxonomy/taxonomy.tab - md5sum: 0d13b5b3838f12d1f51827464345e0f0 - - path: output/download/versions.yml - md5sum: ea7720c3555ad61eb06b46454c87407e - path: output/taxonomy/taxonomy.krona.html - contains: - - "DOCTYPE html PUBLIC" + contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' - path: output/taxonomy/versions.yml md5sum: 4d46e08ff46dbd1e7075b93903b72400 From 32b8f3f612e22aeca11dd8ec1fb0a025d1e8e8ed Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 18:21:26 +0200 Subject: [PATCH 372/592] adding contain for html output in test yml --- tests/modules/krona/ktimporttaxonomy/test.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/test.yml b/tests/modules/krona/ktimporttaxonomy/test.yml index 64ec948e..26d16dde 100644 --- a/tests/modules/krona/ktimporttaxonomy/test.yml +++ b/tests/modules/krona/ktimporttaxonomy/test.yml @@ -5,7 +5,8 @@ - krona/ktimporttaxonomy files: - path: output/taxonomy/taxonomy.krona.html - contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' + contains: + - "DOCTYPE html PUBLIC" - path: output/taxonomy/versions.yml md5sum: ea32399c9fd3bc1d4fc1081cb3a345d5 @@ -16,6 +17,6 @@ - krona/ktimporttaxonomy files: - path: output/taxonomy/taxonomy.krona.html - contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' - - path: output/taxonomy/versions.yml + contains: + - "DOCTYPE html PUBLIC" md5sum: 4d46e08ff46dbd1e7075b93903b72400 From 5735f515f805445d0d2132fa5b587e0a1f61d2ec Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Mon, 2 May 2022 12:25:48 -0400 Subject: [PATCH 373/592] fix a typo in version export. --- modules/motus/downloaddb/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 46bec9b6..c8af459a 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -32,7 +32,7 @@ process MOTUS_DOWNLOADDB { cat <<-END_VERSIONS > versions.yml "${task.process}": - mOTUs: \$(echo \$(motus -h 2>&1) | sed 's/^.*Version: //; s/References.*\$//') + mOTUs: \$(echo \$(motus -h 2>&1) | sed 's/^.*Version: //; s/Reference.*\$//') END_VERSIONS """ } From 99a87119970762fea09f8c71080dabf88d0836f3 Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Mon, 2 May 2022 12:26:56 -0400 Subject: [PATCH 374/592] Update tests/modules/srst2/srst2/test.yml Co-authored-by: Edmund Miller --- tests/modules/srst2/srst2/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml index 9e448211..5ed236d3 100644 --- a/tests/modules/srst2/srst2/test.yml +++ b/tests/modules/srst2/srst2/test.yml @@ -1,4 +1,5 @@ - name: srst2 srst2 test_srst2_srst2_exit #Testing pipeline exit when not meta.db + command: nextflow run tests/modules/srst2/srst2 -entry test_srst2_srst2_exit -c tests/config/nextflow.config tags: - srst2/srst2 - srst2 From 5136ed29c4ce92eb32160ff7c5ad63ba243861fa Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 18:38:59 +0200 Subject: [PATCH 375/592] removed include and changed process name due to expected folder name before tokenize --- tests/modules/krona/ktimporttaxonomy/main.nf | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index e48882b9..f8e9f485 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -2,9 +2,8 @@ nextflow.enable.dsl = 2 -include { KRONA_KTIMPORTTAXONOMY as TAXONOMY_READS } from '../../../../modules/krona/ktimporttaxonomy/main.nf' -include { KRONA_KTIMPORTTAXONOMY as TAXONOMY_REPORT } from '../../../../modules/krona/ktimporttaxonomy/main.nf' -include { KRONA_KRONADB as DOWNLOAD_DB } from '../../../../modules/krona/kronadb/main.nf' +include { KRONA_KTIMPORTTAXONOMY as KRONA_TAXONOMY_READS } from '../../../../modules/krona/ktimporttaxonomy/main.nf' +include { KRONA_KTIMPORTTAXONOMY as KRONA_TAXONOMY_REPORT } from '../../../../modules/krona/ktimporttaxonomy/main.nf' workflow test_krona_ktimporttaxonomy_reads { @@ -14,7 +13,7 @@ workflow test_krona_ktimporttaxonomy_reads { ] taxonomy = file("https://raw.githubusercontent.com/lescai/test-datasets/modules/data/genomics/sarscov2/metagenome/krona_taxonomy.tab") - TAXONOMY_READS ( input, taxonomy ) + KRONA_TAXONOMY_READS ( input, taxonomy ) } workflow test_krona_ktimporttaxonomy_report { @@ -25,5 +24,5 @@ workflow test_krona_ktimporttaxonomy_report { ] taxonomy = file("https://raw.githubusercontent.com/lescai/test-datasets/modules/data/genomics/sarscov2/metagenome/krona_taxonomy.tab") - TAXONOMY_REPORT ( input, taxonomy ) + KRONA_TAXONOMY_REPORT ( input, taxonomy ) } From 1deb789502a3a2765329141598ed3e1a69d5b4fa Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 18:39:45 +0200 Subject: [PATCH 376/592] synced withName ext.args with process name --- tests/modules/krona/ktimporttaxonomy/nextflow.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/nextflow.config b/tests/modules/krona/ktimporttaxonomy/nextflow.config index 973b60ba..3f35bfc2 100644 --- a/tests/modules/krona/ktimporttaxonomy/nextflow.config +++ b/tests/modules/krona/ktimporttaxonomy/nextflow.config @@ -2,11 +2,11 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: TAXONOMY_READS { + withName: KRONA_TAXONOMY_READS { ext.args = '-t 3' } - withName: TAXONOMY_REPORT { + withName: KRONA_TAXONOMY_REPORT { ext.args = '-m 3 -t 5' } From e8b24458780cc4716c35416fa50bba9efb3361b9 Mon Sep 17 00:00:00 2001 From: carpanz Date: Mon, 2 May 2022 18:43:20 +0200 Subject: [PATCH 377/592] updated file location in test yml --- tests/modules/krona/ktimporttaxonomy/test.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/test.yml b/tests/modules/krona/ktimporttaxonomy/test.yml index 26d16dde..14b3d9be 100644 --- a/tests/modules/krona/ktimporttaxonomy/test.yml +++ b/tests/modules/krona/ktimporttaxonomy/test.yml @@ -4,11 +4,10 @@ - krona - krona/ktimporttaxonomy files: - - path: output/taxonomy/taxonomy.krona.html - contains: - - "DOCTYPE html PUBLIC" - - path: output/taxonomy/versions.yml - md5sum: ea32399c9fd3bc1d4fc1081cb3a345d5 + - path: output/krona/taxonomy.krona.html + contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' + - path: output/krona/versions.yml + md5sum: c6823bf3822cf3714fe9f2073ee76d60 - name: krona ktimporttaxonomy test_krona_ktimporttaxonomy_report command: nextflow run tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy_report -c tests/config/nextflow.config @@ -16,7 +15,7 @@ - krona - krona/ktimporttaxonomy files: - - path: output/taxonomy/taxonomy.krona.html - contains: - - "DOCTYPE html PUBLIC" - md5sum: 4d46e08ff46dbd1e7075b93903b72400 + - path: output/krona/taxonomy.krona.html + contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' + - path: output/krona/versions.yml + md5sum: 06b76d9a7602d63fec182e195cc16a76 From d2e1408b0f1cd17fed110285d7399f63e6d357ad Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Mon, 2 May 2022 18:44:05 +0200 Subject: [PATCH 378/592] updated content for html file in test yml --- tests/modules/krona/ktimporttaxonomy/test.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/test.yml b/tests/modules/krona/ktimporttaxonomy/test.yml index 14b3d9be..5dc02c58 100644 --- a/tests/modules/krona/ktimporttaxonomy/test.yml +++ b/tests/modules/krona/ktimporttaxonomy/test.yml @@ -5,7 +5,8 @@ - krona/ktimporttaxonomy files: - path: output/krona/taxonomy.krona.html - contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' + contains: + - "DOCTYPE html PUBLIC" - path: output/krona/versions.yml md5sum: c6823bf3822cf3714fe9f2073ee76d60 @@ -16,6 +17,7 @@ - krona/ktimporttaxonomy files: - path: output/krona/taxonomy.krona.html - contains: '[ # TODO nf-core: file md5sum was variable, please replace this text with a string found in the file instead ]' + contains: + - "DOCTYPE html PUBLIC" - path: output/krona/versions.yml md5sum: 06b76d9a7602d63fec182e195cc16a76 From 16aa3915e3853c6baed6d847dedc0229340c7901 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Mon, 2 May 2022 23:16:59 +0200 Subject: [PATCH 379/592] feat: add module for slimfastq --- modules/slimfastq/main.nf | 52 +++++++++++++++++++++++++ modules/slimfastq/meta.yml | 41 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/slimfastq/main.nf | 46 ++++++++++++++++++++++ tests/modules/slimfastq/nextflow.config | 5 +++ tests/modules/slimfastq/test.yml | 41 +++++++++++++++++++ 6 files changed, 189 insertions(+) create mode 100644 modules/slimfastq/main.nf create mode 100644 modules/slimfastq/meta.yml create mode 100644 tests/modules/slimfastq/main.nf create mode 100644 tests/modules/slimfastq/nextflow.config create mode 100644 tests/modules/slimfastq/test.yml diff --git a/modules/slimfastq/main.nf b/modules/slimfastq/main.nf new file mode 100644 index 00000000..19ca876f --- /dev/null +++ b/modules/slimfastq/main.nf @@ -0,0 +1,52 @@ +def VERSION = '2.04' + +process SLIMFASTQ { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::slimfastq=2.04" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/slimfastq:2.04--h87f3376_2': + 'quay.io/biocontainers/slimfastq:2.04--h87f3376_2' }" + + input: + tuple val(meta), path(fastq) + + output: + tuple val(meta), path("*.sfq"), emit: sfq + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + if (meta.single_end) { + """ + gzip -d -c '${fastq}' | slimfastq \\ + $args \\ + -f '${prefix}.sfq' + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + slimfastq: ${VERSION} + END_VERSIONS + """ + } else { + """ + gzip -d -c '${fastq[0]}' | slimfastq \\ + $args \\ + -f '${prefix}_1.sfq' + + gzip -d -c '${fastq[1]}' | slimfastq \\ + $args \\ + -f '${prefix}_2.sfq' + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + slimfastq: ${VERSION} + END_VERSIONS + """ + } +} diff --git a/modules/slimfastq/meta.yml b/modules/slimfastq/meta.yml new file mode 100644 index 00000000..3b040f25 --- /dev/null +++ b/modules/slimfastq/meta.yml @@ -0,0 +1,41 @@ +name: "slimfastq" +description: Fast, efficient, lossless compression of FASTQ files. +keywords: + - FASTQ + - compression + - lossless +tools: + - "slimfastq": + description: "slimfastq efficiently compresses/decompresses FASTQ files" + homepage: "https://github.com/Infinidat/slimfastq" + tool_dev_url: "https://github.com/Infinidat/slimfastq" + licence: "['BSD-3-clause']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fastq: + type: file + description: Either a single-end FASTQ file or paired-end files. + pattern: "*.{fq.gz,fastq.gz}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - sfq: + type: file + description: Either one or two sequence files in slimfastq compressed format. + pattern: "*.{sfq}" + +authors: + - "@Midnighter" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index dcf85ba0..9da057d9 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1727,6 +1727,10 @@ sistr: - modules/sistr/** - tests/modules/sistr/** +slimfastq: + - modules/slimfastq/** + - tests/modules/slimfastq/** + snapaligner/index: - modules/snapaligner/index/** - tests/modules/snapaligner/index/** diff --git a/tests/modules/slimfastq/main.nf b/tests/modules/slimfastq/main.nf new file mode 100644 index 00000000..40d44285 --- /dev/null +++ b/tests/modules/slimfastq/main.nf @@ -0,0 +1,46 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SLIMFASTQ } from '../../../modules/slimfastq/main.nf' + +workflow test_slimfastq_single_end { + + input = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + + SLIMFASTQ ( input ) +} + +workflow test_slimfastq_paired_end { + + input = [ + [ id:'test', single_end:false ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true)] + ] + + SLIMFASTQ ( input ) +} + +workflow test_slimfastq_nanopore { + + input = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['sarscov2']['nanopore']['test_fastq_gz'], checkIfExists: true) + ] + + SLIMFASTQ ( input ) +} + +workflow test_slimfastq_pacbio { + + input = [ + [ id:'test', single_end:true ], // meta map + file(params.test_data['homo_sapiens']['pacbio']['ccs_fq_gz'], checkIfExists: true) + ] + + SLIMFASTQ ( input ) +} diff --git a/tests/modules/slimfastq/nextflow.config b/tests/modules/slimfastq/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/slimfastq/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/slimfastq/test.yml b/tests/modules/slimfastq/test.yml new file mode 100644 index 00000000..f0d8b446 --- /dev/null +++ b/tests/modules/slimfastq/test.yml @@ -0,0 +1,41 @@ +- name: slimfastq test_slimfastq_single_end + command: nextflow run tests/modules/slimfastq -entry test_slimfastq_single_end -c tests/config/nextflow.config + tags: + - slimfastq + files: + - path: output/slimfastq/test.sfq + md5sum: 6a942eeca6c99ee9a9a0cedab5d246f1 + - path: output/slimfastq/versions.yml + md5sum: f52351f5c9e6259af02745c8eae5c780 + +- name: slimfastq test_slimfastq_paired_end + command: nextflow run tests/modules/slimfastq -entry test_slimfastq_paired_end -c tests/config/nextflow.config + tags: + - slimfastq + files: + - path: output/slimfastq/test_1.sfq + md5sum: 6a942eeca6c99ee9a9a0cedab5d246f1 + - path: output/slimfastq/test_2.sfq + md5sum: 0d2c60b52a39f7c2cb7843e848d90afd + - path: output/slimfastq/versions.yml + md5sum: 6239853705877651a4851c4cb6d62da4 + +- name: slimfastq test_slimfastq_nanopore + command: nextflow run tests/modules/slimfastq -entry test_slimfastq_nanopore -c tests/config/nextflow.config + tags: + - slimfastq + files: + - path: output/slimfastq/test.sfq + md5sum: e17f14d64d3a75356b03ff2f9e8881f7 + - path: output/slimfastq/versions.yml + md5sum: 33153f1103482a2bd35cb2f4c337c5e8 + +- name: slimfastq test_slimfastq_pacbio + command: nextflow run tests/modules/slimfastq -entry test_slimfastq_pacbio -c tests/config/nextflow.config + tags: + - slimfastq + files: + - path: output/slimfastq/test.sfq + md5sum: 9e8389e47e6ddf8c25e92412dd628339 + - path: output/slimfastq/versions.yml + md5sum: 1982789c3d5c7de37c0a9351e4ae63f7 From e5d7c80bb50dc58c360c3234faa243964d1a2dbb Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Mon, 2 May 2022 18:13:14 -0400 Subject: [PATCH 380/592] Update test.yml --- tests/modules/srst2/srst2/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml index 5ed236d3..9ea38dd6 100644 --- a/tests/modules/srst2/srst2/test.yml +++ b/tests/modules/srst2/srst2/test.yml @@ -12,11 +12,11 @@ - srst2 files: - path: output/srst2/test__SRR9067271.MLST_DB.pileup - md5sum: f59217dd9340264b9913c20b545b2ce7 + contains: "dnaJ_1 2 C 17 .........,....... FFFFFFFFFFFFFFFFF" - path: output/srst2/test__SRR9067271.MLST_DB.sorted.bam - path: output/srst2/test__mlst__MLST_DB__results.txt md5sum: ec1b1f69933401d67c57f64cad11a098 - - path: output/srst2/versions.yml + - path: /tmp/tmp74070b6r/srst2/versions.yml md5sum: a0c256a2fd3636069710b8ef22ee5ea7 - name: srst2 srst2 test_srst2_srst2_paired_end From 7b0d6f96fd0764254510df99e238be33b0acf862 Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Mon, 2 May 2022 18:20:54 -0400 Subject: [PATCH 381/592] Update test.yml --- tests/modules/srst2/srst2/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml index 9ea38dd6..2b0c0d70 100644 --- a/tests/modules/srst2/srst2/test.yml +++ b/tests/modules/srst2/srst2/test.yml @@ -12,7 +12,8 @@ - srst2 files: - path: output/srst2/test__SRR9067271.MLST_DB.pileup - contains: "dnaJ_1 2 C 17 .........,....... FFFFFFFFFFFFFFFFF" + contains: + - "dnaJ_1 2 C 17 .........,....... FFFFFFFFFFFFFFFFF" - path: output/srst2/test__SRR9067271.MLST_DB.sorted.bam - path: output/srst2/test__mlst__MLST_DB__results.txt md5sum: ec1b1f69933401d67c57f64cad11a098 From db9681029c7a75da227577e29f26cb26de78a2e5 Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Mon, 2 May 2022 18:27:01 -0400 Subject: [PATCH 382/592] Update test.yml --- tests/modules/srst2/srst2/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml index 2b0c0d70..12b2a4f0 100644 --- a/tests/modules/srst2/srst2/test.yml +++ b/tests/modules/srst2/srst2/test.yml @@ -13,11 +13,11 @@ files: - path: output/srst2/test__SRR9067271.MLST_DB.pileup contains: - - "dnaJ_1 2 C 17 .........,....... FFFFFFFFFFFFFFFFF" + - "dnaJ-1 2 C 17 .........,....... FFFFFFFFFFFFFFFFF" - path: output/srst2/test__SRR9067271.MLST_DB.sorted.bam - path: output/srst2/test__mlst__MLST_DB__results.txt md5sum: ec1b1f69933401d67c57f64cad11a098 - - path: /tmp/tmp74070b6r/srst2/versions.yml + - path: output/srst2/versions.yml md5sum: a0c256a2fd3636069710b8ef22ee5ea7 - name: srst2 srst2 test_srst2_srst2_paired_end From 23cfb5dd42dc3dba37ee4588cf1262ce5c59ef6e Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Mon, 2 May 2022 18:38:48 -0400 Subject: [PATCH 383/592] Update test.yml --- tests/modules/srst2/srst2/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/srst2/srst2/test.yml b/tests/modules/srst2/srst2/test.yml index 12b2a4f0..f7621f4f 100644 --- a/tests/modules/srst2/srst2/test.yml +++ b/tests/modules/srst2/srst2/test.yml @@ -13,7 +13,7 @@ files: - path: output/srst2/test__SRR9067271.MLST_DB.pileup contains: - - "dnaJ-1 2 C 17 .........,....... FFFFFFFFFFFFFFFFF" + - "dnaJ-1 2 C 17 .........,....... FFFFFFFFFFFFFFFFF" - path: output/srst2/test__SRR9067271.MLST_DB.sorted.bam - path: output/srst2/test__mlst__MLST_DB__results.txt md5sum: ec1b1f69933401d67c57f64cad11a098 From b8a59c2b173cf0d987effc8a3e1cd547307a6085 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 3 May 2022 08:20:10 +0200 Subject: [PATCH 384/592] Fixed version annotation --- modules/vardictjava/main.nf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 08318c29..682c26be 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -24,6 +24,8 @@ process VARDICTJAVA { def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def VERSION = '1.8.3' + """ vardict-java \\ $args \\ @@ -41,7 +43,8 @@ process VARDICTJAVA { cat <<-END_VERSIONS > versions.yml "${task.process}": - vardict-java: \$(echo 1.8.3) + vardict-java: \$VERSION + var2vcf_valid.pl: \$(echo \$(var2vcf_valid.pl -h | sed -n 2p | awk '{ print \$2 }')) END_VERSIONS """ } From 9a10e5beb56904061e0b728fea55c8246af74997 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 3 May 2022 08:29:46 +0200 Subject: [PATCH 385/592] Added the missing inputs in meta.yml + correct notation --- modules/vardictjava/main.nf | 10 +++++----- modules/vardictjava/meta.yml | 16 ++++++++++++++-- tests/modules/vardictjava/nextflow.config | 4 ---- tests/modules/vardictjava/test.yml | 2 +- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 682c26be..14964989 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -9,8 +9,8 @@ process VARDICTJAVA { input: tuple val(meta), path(bam), path(bai) - path(regions_of_interest) - tuple path(reference_fasta), path(reference_fai) + path(bed) + tuple path(fasta), path(fasta_fai) output: tuple val(meta), path("*.vcf.gz"), emit: vcf @@ -33,8 +33,8 @@ process VARDICTJAVA { -b $bam \\ -th $task.cpus \\ -N $prefix \\ - -G $reference_fasta \\ - $regions_of_interest \\ + -G $fasta \\ + $bed \\ | teststrandbias.R \\ | var2vcf_valid.pl \\ $args2 \\ @@ -43,7 +43,7 @@ process VARDICTJAVA { cat <<-END_VERSIONS > versions.yml "${task.process}": - vardict-java: \$VERSION + vardict-java: $VERSION var2vcf_valid.pl: \$(echo \$(var2vcf_valid.pl -h | sed -n 2p | awk '{ print \$2 }')) END_VERSIONS """ diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index e3b2efe7..42480bc1 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -25,17 +25,29 @@ input: type: file description: BAM/SAM file pattern: "*.{bam,sam}" + + - bai: + type: file + description: Index of the BAM file + pattern: "*.bai" - - reference_fasta: + - fasta: type: file description: FASTA of the reference genome pattern: "*.{fa,fasta}" - - regions_of_interest: + - fasta_fai: + type: file + description: The index of the FASTA of the reference genome + pattern: "*.fai" + + - bed: type: file description: BED with the regions of interest pattern: "*.bed" + + output: - meta: type: map diff --git a/tests/modules/vardictjava/nextflow.config b/tests/modules/vardictjava/nextflow.config index e08201cc..50f50a7a 100644 --- a/tests/modules/vardictjava/nextflow.config +++ b/tests/modules/vardictjava/nextflow.config @@ -2,8 +2,4 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: VARDICTJAVA { - ext.args = '' - ext.args2 = '' - } } \ No newline at end of file diff --git a/tests/modules/vardictjava/test.yml b/tests/modules/vardictjava/test.yml index 549d688e..8cb29c4e 100644 --- a/tests/modules/vardictjava/test.yml +++ b/tests/modules/vardictjava/test.yml @@ -6,4 +6,4 @@ - path: output/vardictjava/test.vcf.gz md5sum: 3f1f227afc532bddeb58f16fd3013fc8 - path: output/vardictjava/versions.yml - md5sum: aac455b8c9c9194c5fed80e4fd495b96 + md5sum: 9b62c431a4f2680412b61c7071bdb1cd From 71c5d213742b56c62a75b6f34b1f734e073f415e Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 3 May 2022 08:34:12 +0200 Subject: [PATCH 386/592] ran prettier --- modules/vardictjava/meta.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 42480bc1..83675fdc 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -25,10 +25,10 @@ input: type: file description: BAM/SAM file pattern: "*.{bam,sam}" - + - bai: type: file - description: Index of the BAM file + description: Index of the BAM file pattern: "*.bai" - fasta: @@ -46,8 +46,6 @@ input: description: BED with the regions of interest pattern: "*.bed" - - output: - meta: type: map From 550390345785fe0ebb1835616f895af2bdadf122 Mon Sep 17 00:00:00 2001 From: ljmesi <37740329+ljmesi@users.noreply.github.com> Date: Tue, 3 May 2022 09:46:04 +0200 Subject: [PATCH 387/592] Add compression for output fastq file --- modules/samtools/bam2fq/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/samtools/bam2fq/main.nf b/modules/samtools/bam2fq/main.nf index 5d6aa79d..554af48b 100644 --- a/modules/samtools/bam2fq/main.nf +++ b/modules/samtools/bam2fq/main.nf @@ -45,7 +45,7 @@ process SAMTOOLS_BAM2FQ { bam2fq \\ $args \\ -@ $task.cpus \\ - $inputbam >${prefix}_interleaved.fq.gz + $inputbam | gzip > ${prefix}_interleaved.fq.gz cat <<-END_VERSIONS > versions.yml "${task.process}": From 59d6e6e1dd0dc5cbfff7d431725caeaf201c40e4 Mon Sep 17 00:00:00 2001 From: ljmesi <37740329+ljmesi@users.noreply.github.com> Date: Tue, 3 May 2022 09:56:50 +0200 Subject: [PATCH 388/592] Add updated md5sums --- tests/modules/samtools/bam2fq/test.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/modules/samtools/bam2fq/test.yml b/tests/modules/samtools/bam2fq/test.yml index 213c7a2d..6fcc9c22 100644 --- a/tests/modules/samtools/bam2fq/test.yml +++ b/tests/modules/samtools/bam2fq/test.yml @@ -1,17 +1,19 @@ - name: samtools bam2fq test_samtools_bam2fq_nosplit - command: nextflow run ./tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_nosplit -c ./tests/config/nextflow.config -c ./tests/modules/samtools/bam2fq/nextflow.config + command: nextflow run tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_nosplit -c tests/config/nextflow.config tags: - - samtools/bam2fq - samtools + - samtools/bam2fq files: - path: output/samtools/test_interleaved.fq.gz - md5sum: d733e66d29a4b366bf9df8c42f845256 + md5sum: 7a57a8ab53dd1d799cca67a85c47ccd9 + - path: output/samtools/versions.yml + md5sum: 4973eac1b6a8f090d5fcd4456d65a894 - name: samtools bam2fq test_samtools_bam2fq_withsplit - command: nextflow run ./tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_withsplit -c ./tests/config/nextflow.config -c ./tests/modules/samtools/bam2fq/nextflow.config + command: nextflow run tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_withsplit -c tests/config/nextflow.config tags: - - samtools/bam2fq - samtools + - samtools/bam2fq files: - path: output/samtools/test_1.fq.gz md5sum: 1c84aadcdca10e97be2b5b6ce773f5ed @@ -21,3 +23,5 @@ md5sum: 709872fc2910431b1e8b7074bfe38c67 - path: output/samtools/test_singleton.fq.gz md5sum: 709872fc2910431b1e8b7074bfe38c67 + - path: output/samtools/versions.yml + md5sum: e92d21bbcda2fed7cb438d95c51edff0 From d33253513fcd8900db9480450496886ea1f17adb Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 3 May 2022 10:15:30 +0200 Subject: [PATCH 389/592] put the version on top of the file --- modules/vardictjava/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 14964989..454b86a4 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -1,3 +1,5 @@ +def VERSION = '1.8.3' + process VARDICTJAVA { tag "$meta.id" label 'process_medium' @@ -24,8 +26,6 @@ process VARDICTJAVA { def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def VERSION = '1.8.3' - """ vardict-java \\ $args \\ From 7c89af359c19131d2f9e8d32bd6ebb0dd682e4d2 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 3 May 2022 10:15:51 +0200 Subject: [PATCH 390/592] Update modules/vardictjava/meta.yml Co-authored-by: James A. Fellows Yates --- modules/vardictjava/meta.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 83675fdc..63a52611 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -20,7 +20,6 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - bam: type: file description: BAM/SAM file From 2dff193b543d78c1176d19c6f9c42385caa131c2 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 3 May 2022 10:15:59 +0200 Subject: [PATCH 391/592] Update modules/vardictjava/meta.yml Co-authored-by: James A. Fellows Yates --- modules/vardictjava/meta.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 63a52611..a0af9fcc 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -29,7 +29,6 @@ input: type: file description: Index of the BAM file pattern: "*.bai" - - fasta: type: file description: FASTA of the reference genome From 3cdbdf50fc6423826e4aeed8fef8e1f75a19f621 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 3 May 2022 10:16:14 +0200 Subject: [PATCH 392/592] Update modules/vardictjava/meta.yml Co-authored-by: James A. Fellows Yates --- modules/vardictjava/meta.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index a0af9fcc..3afa7e62 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -24,7 +24,6 @@ input: type: file description: BAM/SAM file pattern: "*.{bam,sam}" - - bai: type: file description: Index of the BAM file From 1609dfc96dd1ff205f1cac511b8dabb64f8a3db6 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 3 May 2022 10:16:20 +0200 Subject: [PATCH 393/592] Update modules/vardictjava/meta.yml Co-authored-by: James A. Fellows Yates --- modules/vardictjava/meta.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 3afa7e62..325ce1ca 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -32,7 +32,6 @@ input: type: file description: FASTA of the reference genome pattern: "*.{fa,fasta}" - - fasta_fai: type: file description: The index of the FASTA of the reference genome From 01085b3e090b0e64ed0db23a93e00bd891a11639 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 3 May 2022 10:16:30 +0200 Subject: [PATCH 394/592] Update modules/vardictjava/meta.yml Co-authored-by: James A. Fellows Yates --- modules/vardictjava/meta.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 325ce1ca..5be27690 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -36,7 +36,6 @@ input: type: file description: The index of the FASTA of the reference genome pattern: "*.fai" - - bed: type: file description: BED with the regions of interest From 11c6faf433d19803a1a9c198c83bde5ce5ae9706 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 3 May 2022 10:16:36 +0200 Subject: [PATCH 395/592] Update modules/vardictjava/meta.yml Co-authored-by: James A. Fellows Yates --- modules/vardictjava/meta.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 5be27690..196b090e 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -47,7 +47,6 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - versions: type: file description: File containing software versions From 818764128039936e8d94df70427667638b0276a9 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 3 May 2022 10:16:45 +0200 Subject: [PATCH 396/592] Update modules/vardictjava/meta.yml Co-authored-by: James A. Fellows Yates --- modules/vardictjava/meta.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/vardictjava/meta.yml b/modules/vardictjava/meta.yml index 196b090e..59fba966 100644 --- a/modules/vardictjava/meta.yml +++ b/modules/vardictjava/meta.yml @@ -51,7 +51,6 @@ output: type: file description: File containing software versions pattern: "versions.yml" - - vcf: type: file description: VCF file output From 9a72548ee122607e46681f4b0b87296b48580cb3 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Tue, 3 May 2022 08:42:56 +0000 Subject: [PATCH 397/592] Update busco module --- modules/busco/main.nf | 62 +++++++++++++++++++---------- tests/modules/busco/main.nf | 20 +++++++--- tests/modules/busco/nextflow.config | 5 ++- tests/modules/busco/test.yml | 9 ++--- 4 files changed, 60 insertions(+), 36 deletions(-) diff --git a/modules/busco/main.nf b/modules/busco/main.nf index 6e526538..e66beeeb 100644 --- a/modules/busco/main.nf +++ b/modules/busco/main.nf @@ -1,31 +1,31 @@ process BUSCO { tag "$meta.id" label 'process_medium' - - conda (params.enable_conda ? "bioconda::busco=5.2.2" : null) + + conda (params.enable_conda ? "bioconda::busco=5.3.2" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/busco:5.2.2--pyhdfd78af_0': - 'quay.io/biocontainers/busco:5.2.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/busco:5.3.2--pyhdfd78af_0': + 'quay.io/biocontainers/busco:5.3.2--pyhdfd78af_0' }" input: - tuple val(meta), path(fasta) - val(mode) - path(augustus_config) - val(lineage) + tuple val(meta), path(fasta) // Required: meta map, and fasta sequence file + each lineage // Required: lineage to check against + path busco_lineages_path // Recommended: path to busco lineages - downloads if not set + path config_file // Optional: busco configuration file output: - tuple val(meta), path("${meta.id}/run_*/full_table.tsv"), emit: tsv - tuple val(meta), path("${meta.id}/run_*/short_summary.txt"), emit: txt - path "versions.yml" , emit: versions + tuple val(meta), path("*-busco"), emit: busco_dir + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - if (lineage) args += " --lineage_dataset $lineage" + def prefix = task.ext.prefix ?: "${meta.id}-${lineage}" + def busco_config = config_file ? "--config $config_file" : '' + def busco_lineage_dir = busco_lineages_path ? "--download_path ${busco_lineages_path}" : '' """ - # Ensure the input is uncompressed - gzip -cdf $fasta > __UNCOMPRESSED_FASTA_FILE__ - # Nextflow changes the container --entrypoint to /bin/bash (container default entrypoint: /usr/local/env-execute) # Check for container variable initialisation script and source it. if [ -f "/usr/local/env-activate.sh" ]; then @@ -39,12 +39,30 @@ process BUSCO { . "/usr/local/etc/conda/activate.d/augustus.sh" . "/usr/local/etc/conda/activate.d/openjdk_activate.sh" fi - - # Copy the image's AUGUSTUS config directory if it was not provided to the module - [ ! -e augustus_config ] && cp -a /usr/local/config augustus_config - - # Busco command - AUGUSTUS_CONFIG_PATH=augustus_config busco $args --augustus --mode $mode --cpu $task.cpus --in __UNCOMPRESSED_FASTA_FILE__ --out $meta.id + + # If the augustus config directory is not writable, then copy to writeable area + if [ ! -w "\${AUGUSTUS_CONFIG_PATH}" ]; then + # Create writable tmp directory for augustus + AUG_CONF_DIR=\$( mktemp -d -p \$PWD ) + cp -r \$AUGUSTUS_CONFIG_PATH/* \$AUG_CONF_DIR + export AUGUSTUS_CONFIG_PATH=\$AUG_CONF_DIR + echo "New AUGUSTUS_CONFIG_PATH=\${AUGUSTUS_CONFIG_PATH}" + fi + + # Ensure the input is uncompressed + gzip -cdf $fasta > ${prefix}_uncompressed.fasta + + busco \\ + --cpu $task.cpus \\ + --in ${prefix}_uncompressed.fasta \\ + --out ${prefix}-busco \\ + --lineage_dataset $lineage \\ + $busco_lineage_dir \\ + $busco_config \\ + $args + + # clean up + rm ${prefix}_uncompressed.fasta cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/tests/modules/busco/main.nf b/tests/modules/busco/main.nf index d12abae9..4985bd18 100644 --- a/tests/modules/busco/main.nf +++ b/tests/modules/busco/main.nf @@ -2,14 +2,22 @@ nextflow.enable.dsl = 2 -include { BUSCO as BUSCO_BACTE } from '../../../modules/busco/main.nf' +include { BUSCO } from '../../../modules/busco/main.nf' // This tests genome decompression, empty input channels and data download workflow test_busco { - input = [ [ id:'test' ], file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) ] - BUSCO_BACTE ( input, - "genome", - [], - [] ) + + input = [ + [ id:'test', single_end:false ], // meta map + file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + + BUSCO ( + input, + 'bacteria_odb10', + [], // Download busco lineage + [], // No config + ) + } diff --git a/tests/modules/busco/nextflow.config b/tests/modules/busco/nextflow.config index 50f50a7a..feea8d40 100644 --- a/tests/modules/busco/nextflow.config +++ b/tests/modules/busco/nextflow.config @@ -1,5 +1,6 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - -} \ No newline at end of file + ext.args = '--mode genome' + +} diff --git a/tests/modules/busco/test.yml b/tests/modules/busco/test.yml index d66bd305..3e7c1bf6 100644 --- a/tests/modules/busco/test.yml +++ b/tests/modules/busco/test.yml @@ -1,10 +1,7 @@ - name: busco test_busco - command: nextflow run ./tests/modules/busco -entry test_busco -c ./tests/config/nextflow.config -c ./tests/modules/busco/nextflow.config + command: nextflow run tests/modules/busco -entry test_busco -c tests/config/nextflow.config tags: - busco files: - - path: output/busco/test/run_bacteroidales_odb10/full_table.tsv - md5sum: 8d7b401d875ecd9291b01bf4485bf080 - - path: output/busco/test/run_bacteroidales_odb10/short_summary.txt - contains: ['Complete BUSCOs (C)'] - + - path: output/busco/versions.yml + md5sum: 921e2abe85bf73e63a8b494453dc83cf From 9eff38ff94c2ecf7236b770b005518bacd272983 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Tue, 3 May 2022 09:15:15 +0000 Subject: [PATCH 398/592] Update meta.yml --- modules/busco/meta.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/modules/busco/meta.yml b/modules/busco/meta.yml index 8f41f2f3..72ae4c29 100644 --- a/modules/busco/meta.yml +++ b/modules/busco/meta.yml @@ -22,14 +22,17 @@ input: e.g. [ id:'test', single_end:false ] - fasta: type: file - description: Nucleic or amino acid sequence file in FASTA format - pattern: "*.{fasta}" - - mode: + description: Nucleic or amino acid sequence file in FASTA format. + pattern: "*.{fasta,fna,fa,fasta.gz,fna.gz,fa.gz}" + - lineage: type: value - description: Sets the assessment MODE – genome, proteins, transcriptome - - augustus_config: + description: The BUSCO lineage to use. + - busco_lineages_path: type: directory - description: AUGUSTUS config directory + description: Path to local BUSCO lineages directory. + - config_file: + type: directory + description: Path to BUSCO config file. output: - meta: @@ -37,19 +40,16 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - busco_dir: + type: directory + description: BUSCO lineage specific output + pattern: "*-busco" - versions: type: file description: File containing software versions pattern: "versions.yml" - - tsv: - type: file - description: Full summary table - pattern: "*.{tsv}" - - txt: - type: file - description: Short summary text - pattern: "*.{txt}" authors: - "@priyanka-surana" - "@charles-plessy" + - "@mahesh-panchal" From 012f08537880805ad70a006f0076e6f8933b860f Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Tue, 3 May 2022 09:19:39 +0000 Subject: [PATCH 399/592] Prettier --- modules/busco/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/busco/meta.yml b/modules/busco/meta.yml index 72ae4c29..b73f498b 100644 --- a/modules/busco/meta.yml +++ b/modules/busco/meta.yml @@ -12,7 +12,7 @@ tools: documentation: https://busco.ezlab.org/busco_userguide.html tool_dev_url: https://gitlab.com/ezlab/busco doi: "10.1007/978-1-4939-9173-0_14" - licence: ['MIT'] + licence: ["MIT"] input: - meta: From 768073be6390c620e133230dea376466383832f5 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 3 May 2022 11:46:19 +0100 Subject: [PATCH 400/592] bowtie2|Added support for large indexes --- modules/bowtie2/align/main.nf | 4 ++ tests/modules/bowtie2/align/main.nf | 2 +- tests/modules/bowtie2/align/nextflow.config | 13 ++++++- tests/modules/bowtie2/align/test.yml | 43 +++++++++++++++++++++ 4 files changed, 60 insertions(+), 2 deletions(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index 20b08f72..e68dbf24 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -26,6 +26,8 @@ process BOWTIE2_ALIGN { def unaligned = save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : '' """ INDEX=`find -L ./ -name "*.rev.1.bt2" | sed 's/.rev.1.bt2//'` + [ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed 's/.rev.1.bt2l//'` + [ -z "\$INDEX" ] && echo "BT2 index files not found" 1>&2 && exit 1 bowtie2 \\ -x \$INDEX \\ -U $reads \\ @@ -46,6 +48,8 @@ process BOWTIE2_ALIGN { def unaligned = save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : '' """ INDEX=`find -L ./ -name "*.rev.1.bt2" | sed 's/.rev.1.bt2//'` + [ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed 's/.rev.1.bt2l//'` + [ -z "\$INDEX" ] && echo "BT2 index files not found" 1>&2 && exit 1 bowtie2 \\ -x \$INDEX \\ -1 ${reads[0]} \\ diff --git a/tests/modules/bowtie2/align/main.nf b/tests/modules/bowtie2/align/main.nf index 2d3945e5..f91394ff 100644 --- a/tests/modules/bowtie2/align/main.nf +++ b/tests/modules/bowtie2/align/main.nf @@ -32,4 +32,4 @@ workflow test_bowtie2_align_paired_end { BOWTIE2_BUILD ( fasta ) BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned ) -} +} \ No newline at end of file diff --git a/tests/modules/bowtie2/align/nextflow.config b/tests/modules/bowtie2/align/nextflow.config index 8730f1c4..b4640de7 100644 --- a/tests/modules/bowtie2/align/nextflow.config +++ b/tests/modules/bowtie2/align/nextflow.config @@ -1,5 +1,16 @@ +params { + force_large_index = false +} + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - +} + +if (params.force_large_index) { + process { + withName: BOWTIE2_BUILD { + ext.args = '--large-index' + } + } } diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index 95d48b88..11e4c4e5 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -39,3 +39,46 @@ md5sum: 52be6950579598a990570fbcf5372184 - path: ./output/bowtie2/bowtie2/genome.rev.2.bt2 md5sum: e3b4ef343dea4dd571642010a7d09597 + +- name: bowtie2 align single-end large-index + command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config --force_large_index + tags: + tags: + - bowtie2 + - bowtie2/align + files: + - path: ./output/bowtie2/test.bam + - path: ./output/bowtie2/test.bowtie2.log + - path: ./output/bowtie2/bowtie2/genome.3.bt2 + md5sum: 8952b3e0b1ce9a7a5916f2e147180853 + - path: ./output/bowtie2/bowtie2/genome.2.bt2 + md5sum: 22c284084784a0720989595e0c9461fd + - path: ./output/bowtie2/bowtie2/genome.1.bt2 + md5sum: 07d811cd4e350d56267183d2ac7023a5 + - path: ./output/bowtie2/bowtie2/genome.4.bt2 + md5sum: c25be5f8b0378abf7a58c8a880b87626 + - path: ./output/bowtie2/bowtie2/genome.rev.1.bt2 + md5sum: fda48e35925fb24d1c0785f021981e25 + - path: ./output/bowtie2/bowtie2/genome.rev.2.bt2 + md5sum: 802c26d32b970e1b105032b7ce7348b4 + +- name: bowtie2 align paired-end large-index + command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config --force_large_index + tags: + - bowtie2 + - bowtie2/align + files: + - path: ./output/bowtie2/test.bam + - path: ./output/bowtie2/test.bowtie2.log + - path: ./output/bowtie2/bowtie2/genome.3.bt2l + md5sum: 8952b3e0b1ce9a7a5916f2e147180853 + - path: ./output/bowtie2/bowtie2/genome.2.bt2l + md5sum: 22c284084784a0720989595e0c9461fd + - path: ./output/bowtie2/bowtie2/genome.1.bt2l + md5sum: 07d811cd4e350d56267183d2ac7023a5 + - path: ./output/bowtie2/bowtie2/genome.4.bt2l + md5sum: c25be5f8b0378abf7a58c8a880b87626 + - path: ./output/bowtie2/bowtie2/genome.rev.1.bt2l + md5sum: fda48e35925fb24d1c0785f021981e25 + - path: ./output/bowtie2/bowtie2/genome.rev.2.bt2l + md5sum: 802c26d32b970e1b105032b7ce7348b4 From 0f1ee7e50dccd1a8717cd448c518b67fb68c1d09 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 3 May 2022 12:04:51 +0100 Subject: [PATCH 401/592] bowtie2|test fixes --- tests/modules/bowtie2/align/test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index 11e4c4e5..961009b4 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -49,17 +49,17 @@ files: - path: ./output/bowtie2/test.bam - path: ./output/bowtie2/test.bowtie2.log - - path: ./output/bowtie2/bowtie2/genome.3.bt2 + - path: ./output/bowtie2/bowtie2/genome.3.bt2l md5sum: 8952b3e0b1ce9a7a5916f2e147180853 - - path: ./output/bowtie2/bowtie2/genome.2.bt2 + - path: ./output/bowtie2/bowtie2/genome.2.bt2l md5sum: 22c284084784a0720989595e0c9461fd - - path: ./output/bowtie2/bowtie2/genome.1.bt2 + - path: ./output/bowtie2/bowtie2/genome.1.bt2l md5sum: 07d811cd4e350d56267183d2ac7023a5 - - path: ./output/bowtie2/bowtie2/genome.4.bt2 + - path: ./output/bowtie2/bowtie2/genome.4.bt2l md5sum: c25be5f8b0378abf7a58c8a880b87626 - - path: ./output/bowtie2/bowtie2/genome.rev.1.bt2 + - path: ./output/bowtie2/bowtie2/genome.rev.1.bt2l md5sum: fda48e35925fb24d1c0785f021981e25 - - path: ./output/bowtie2/bowtie2/genome.rev.2.bt2 + - path: ./output/bowtie2/bowtie2/genome.rev.2.bt2l md5sum: 802c26d32b970e1b105032b7ce7348b4 - name: bowtie2 align paired-end large-index From 40e6bd9dc16a7a4b63d399cf79f0bb1b7e3927c0 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Tue, 3 May 2022 12:07:04 +0100 Subject: [PATCH 402/592] bowtie2|fix tags error --- tests/modules/bowtie2/align/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index 961009b4..ea9aa72a 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -42,7 +42,6 @@ - name: bowtie2 align single-end large-index command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config --force_large_index - tags: tags: - bowtie2 - bowtie2/align From 2990dc8357dcf3bb53aef8cf5a7c9e8c8f5caa9b Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Tue, 3 May 2022 14:20:05 +0200 Subject: [PATCH 403/592] callcnv module --- modules/cnvpytor/callcnvs/main.nf | 14 +++++++------- modules/cnvpytor/callcnvs/meta.yml | 11 +++++++---- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/modules/cnvpytor/callcnvs/main.nf b/modules/cnvpytor/callcnvs/main.nf index fcb36ba5..c3866095 100644 --- a/modules/cnvpytor/callcnvs/main.nf +++ b/modules/cnvpytor/callcnvs/main.nf @@ -9,10 +9,11 @@ process CNVPYTOR_CALLCNVS { input: tuple val(meta), path(pytor) + val bin_sizes output: - tuple val(meta), path("*.tsv"), emit: cnvs - path "versions.yml" , emit: versions + tuple val(meta), path("${pytor.baseName}.pytor") , emit: pytor + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -23,22 +24,21 @@ process CNVPYTOR_CALLCNVS { """ cnvpytor \\ -root $pytor \\ - -call $args > ${prefix}.tsv + -call $bin_sizes cat <<-END_VERSIONS > versions.yml "${task.process}": - cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) END_VERSIONS """ stub: - def prefix = task.ext.prefix ?: "${meta.id}" """ - touch ${prefix}.tsv + touch ${pytor.baseName}.pytor cat <<-END_VERSIONS > versions.yml "${task.process}": - cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) END_VERSIONS """ } diff --git a/modules/cnvpytor/callcnvs/meta.yml b/modules/cnvpytor/callcnvs/meta.yml index edfc462a..6ba46b6f 100644 --- a/modules/cnvpytor/callcnvs/meta.yml +++ b/modules/cnvpytor/callcnvs/meta.yml @@ -17,8 +17,11 @@ input: e.g. [ id:'test'] - pytor: type: file - description: cnvpytor root file + description: pytor file containing partitions of read depth histograms using mean-shift method pattern: "*.{pytor}" + - bin_sizes: + type: string + description: list of binsizes separated by space e.g. "1000 10000" and "1000" output: - meta: @@ -26,10 +29,10 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test' ] - - cnvs: + - pytor: type: file - description: file containing identified copy numer variations - pattern: "*.{tsv}" + description: pytor files containing cnv calls + pattern: "*.{pytor}" - versions: type: file description: File containing software versions From 07e026054a018139da73534acacfdcaf8762173e Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Tue, 3 May 2022 14:24:54 +0200 Subject: [PATCH 404/592] histogram --- modules/cnvpytor/histogram/main.nf | 8 +++++--- modules/cnvpytor/histogram/meta.yml | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/cnvpytor/histogram/main.nf b/modules/cnvpytor/histogram/main.nf index f6e9dd25..1906fa36 100644 --- a/modules/cnvpytor/histogram/main.nf +++ b/modules/cnvpytor/histogram/main.nf @@ -9,6 +9,8 @@ process CNVPYTOR_HISTOGRAM { input: tuple val(meta), path(pytor) + val bin_sizes + output: tuple val(meta), path("${pytor.baseName}.pytor") , emit: pytor @@ -18,15 +20,15 @@ process CNVPYTOR_HISTOGRAM { task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '1000' + def bins = bin_sizes ?: '1000' """ cnvpytor \\ -root $pytor \\ - -his $args + -his $bins cat <<-END_VERSIONS > versions.yml "${task.process}": - cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) END_VERSIONS """ diff --git a/modules/cnvpytor/histogram/meta.yml b/modules/cnvpytor/histogram/meta.yml index fcad2221..4855f26d 100644 --- a/modules/cnvpytor/histogram/meta.yml +++ b/modules/cnvpytor/histogram/meta.yml @@ -22,6 +22,9 @@ input: type: file description: pytor file containing read depth data pattern: "*.{pytor}" + - bin_sizes: + type: string + description: list of binsizes separated by space e.g. "1000 10000" and "1000" output: - meta: From 7cc47f6ba6a3aba385fde62bb8c2e0a7ae435ed3 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Tue, 3 May 2022 14:25:20 +0200 Subject: [PATCH 405/592] importrd --- modules/cnvpytor/importreaddepth/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cnvpytor/importreaddepth/main.nf b/modules/cnvpytor/importreaddepth/main.nf index 059c19a5..ff00c0b0 100644 --- a/modules/cnvpytor/importreaddepth/main.nf +++ b/modules/cnvpytor/importreaddepth/main.nf @@ -43,7 +43,7 @@ process CNVPYTOR_IMPORTREADDEPTH { cat <<-END_VERSIONS > versions.yml "${task.process}": - cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) END_VERSIONS """ } From 829c15c98b1447f9445690e29f2b684dbe053f65 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Tue, 3 May 2022 14:26:34 +0200 Subject: [PATCH 406/592] partition --- modules/cnvpytor/partition/main.nf | 7 ++++--- modules/cnvpytor/partition/meta.yml | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/cnvpytor/partition/main.nf b/modules/cnvpytor/partition/main.nf index 8365cb29..42a5ec78 100644 --- a/modules/cnvpytor/partition/main.nf +++ b/modules/cnvpytor/partition/main.nf @@ -9,6 +9,7 @@ process CNVPYTOR_PARTITION { input: tuple val(meta), path(pytor) + val bin_sizes output: tuple val(meta), path("${pytor.baseName}.pytor"), emit: pytor @@ -18,15 +19,15 @@ process CNVPYTOR_PARTITION { task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' + def bins = bin_sizes ?: '1000' """ cnvpytor \\ -root $pytor \\ - -partition $args + -partition $bins cat <<-END_VERSIONS > versions.yml "${task.process}": - cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) END_VERSIONS """ diff --git a/modules/cnvpytor/partition/meta.yml b/modules/cnvpytor/partition/meta.yml index a72cea4c..bb7a047e 100644 --- a/modules/cnvpytor/partition/meta.yml +++ b/modules/cnvpytor/partition/meta.yml @@ -22,6 +22,9 @@ input: type: file description: pytor file containing read depth data pattern: "*.{pytor}" + - bin_sizes: + type: string + description: list of binsizes separated by space e.g. "1000 10000" and "1000" output: - meta: From 3efa931bf6a77a6f6942ebfe4ba8620119f49327 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Tue, 3 May 2022 14:26:46 +0200 Subject: [PATCH 407/592] view --- modules/cnvpytor/view/main.nf | 59 ++++++++++++++++++++++++++++++++++ modules/cnvpytor/view/meta.yml | 44 +++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 modules/cnvpytor/view/main.nf create mode 100644 modules/cnvpytor/view/meta.yml diff --git a/modules/cnvpytor/view/main.nf b/modules/cnvpytor/view/main.nf new file mode 100644 index 00000000..c4e49a78 --- /dev/null +++ b/modules/cnvpytor/view/main.nf @@ -0,0 +1,59 @@ +process CNVPYTOR_VIEW { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::cnvpytor=1.2.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/cnvpytor:1.2.1--pyhdfd78af_0': + 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }" + + input: + tuple val(meta), path(pytor) + val bin_sizes + val output_format + + output: + tuple val(meta), path("*.vcf"), emit: vcf , optional: true + tuple val(meta), path("*.tsv"), emit: tsv , optional: true + tuple val(meta), path("*.xls"), emit: xls , optional: true + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def output_suffix = output_format ?: 'vcf' + """ + + python3 < versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) + END_VERSIONS + """ + + stub: + def output_suffix = output_format ?: 'vcf' + """ + touch ${pytor.baseName}.${output_suffix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) + END_VERSIONS + """ +} diff --git a/modules/cnvpytor/view/meta.yml b/modules/cnvpytor/view/meta.yml new file mode 100644 index 00000000..d4456469 --- /dev/null +++ b/modules/cnvpytor/view/meta.yml @@ -0,0 +1,44 @@ +name: cnvpytor_view +description: view function to generate vcfs +keywords: + - cnv calling +tools: + - cnvpytor: + description: calling CNVs using read depth + homepage: https://github.com/abyzovlab/CNVpytor + documentation: https://github.com/abyzovlab/CNVpytor + tool_dev_url: https://github.com/abyzovlab/CNVpytor + doi: "10.1101/2021.01.27.428472v1" + licence: ["MIT"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - pytor: + type: file + description: pytor file containing read depth data + pattern: "*.{pytor}" + - bin_sizes: + type: string + description: list of binsizes separated by space e.g. "1000 10000" and "1000" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - partitions: + type: file + description: pytor file containing partitions of read depth histograms using mean-shift method + pattern: "*.{pytor}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@sima-r" From 46e5752b82fb9d0f8d472b3d87efa7419f658279 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Tue, 3 May 2022 14:32:45 +0200 Subject: [PATCH 408/592] update tests --- tests/modules/cnvpytor/callcnvs/test.yml | 4 +- tests/modules/cnvpytor/view/main.nf | 43 +++++++++++++++++++++ tests/modules/cnvpytor/view/nextflow.config | 7 ++++ tests/modules/cnvpytor/view/test.yml | 26 +++++++++++++ 4 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 tests/modules/cnvpytor/view/main.nf create mode 100644 tests/modules/cnvpytor/view/nextflow.config create mode 100644 tests/modules/cnvpytor/view/test.yml diff --git a/tests/modules/cnvpytor/callcnvs/test.yml b/tests/modules/cnvpytor/callcnvs/test.yml index e284ab53..fd07db4c 100644 --- a/tests/modules/cnvpytor/callcnvs/test.yml +++ b/tests/modules/cnvpytor/callcnvs/test.yml @@ -4,7 +4,7 @@ - cnvpytor - cnvpytor/callcnvs files: - - path: output/cnvpytor/test.tsv + - path: output/cnvpytor/test.pytor - path: output/cnvpytor/versions.yml - name: cnvpytor callcnvs test_cnvpytor_callcnvs stub @@ -13,5 +13,5 @@ - cnvpytor - cnvpytor/callcnvs files: - - path: output/cnvpytor/test.tsv + - path: output/cnvpytor/test.pytor - path: output/cnvpytor/versions.yml diff --git a/tests/modules/cnvpytor/view/main.nf b/tests/modules/cnvpytor/view/main.nf new file mode 100644 index 00000000..30177c44 --- /dev/null +++ b/tests/modules/cnvpytor/view/main.nf @@ -0,0 +1,43 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { CNVPYTOR_VIEW } from '../../../../modules/cnvpytor/view/main.nf' + +workflow test_cnvpytor_view { + + input = [ + [ id:'test'], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true) + ] + + bin_sizes = "10000 100000" + + CNVPYTOR_VIEW ( input, bin_sizes, [] ) +} + +workflow test_cnvpytor_view_tsvout { + + input = [ + [ id:'test'], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true) + ] + + bin_sizes = "10000" + output_suffix = "tsv" + + CNVPYTOR_VIEW ( input, bin_sizes, output_suffix ) +} + +workflow test_cnvpytor_view_stub { + + input = [ + [ id:'test'], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true) + ] + + bin_sizes = "10000" + output_suffix = "tsv" + + CNVPYTOR_VIEW ( input, bin_sizes, output_suffix ) +} diff --git a/tests/modules/cnvpytor/view/nextflow.config b/tests/modules/cnvpytor/view/nextflow.config new file mode 100644 index 00000000..6d2cc1fb --- /dev/null +++ b/tests/modules/cnvpytor/view/nextflow.config @@ -0,0 +1,7 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: CNVPYTOR_VIEW { + ext.args = '10000 100000' + } +} diff --git a/tests/modules/cnvpytor/view/test.yml b/tests/modules/cnvpytor/view/test.yml new file mode 100644 index 00000000..38f75003 --- /dev/null +++ b/tests/modules/cnvpytor/view/test.yml @@ -0,0 +1,26 @@ +- name: cnvpytor view test_cnvpytor_view + command: nextflow run tests/modules/cnvpytor/view -entry test_cnvpytor_view -c tests/config/nextflow.config + tags: + - cnvpytor + - cnvpytor/view + files: + - path: output/cnvpytor/test_10000.vcf + - path: output/cnvpytor/versions.yml + +- name: cnvpytor view test_cnvpytor_view tsv + command: nextflow run tests/modules/cnvpytor/view -entry test_cnvpytor_view_tsvout -c tests/config/nextflow.config + tags: + - cnvpytor + - cnvpytor/view + files: + - path: output/cnvpytor/test.tsv + - path: output/cnvpytor/versions.yml + +- name: cnvpytor view test_cnvpytor_view stub + command: nextflow run tests/modules/cnvpytor/view -entry test_cnvpytor_view_stub -c tests/config/nextflow.config -stub-run + tags: + - cnvpytor + - cnvpytor/view + files: + - path: output/cnvpytor/test.vcf + - path: output/cnvpytor/versions.yml From 19cfb4e95196d0e8cc14a67ecb8f1ed0b0fcc3a7 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Tue, 3 May 2022 14:53:56 +0200 Subject: [PATCH 409/592] update meta files --- modules/cnvpytor/histogram/main.nf | 2 +- modules/cnvpytor/histogram/meta.yml | 1 + modules/cnvpytor/importreaddepth/main.nf | 2 +- modules/cnvpytor/importreaddepth/meta.yml | 1 + modules/cnvpytor/partition/main.nf | 2 +- modules/cnvpytor/partition/meta.yml | 1 + modules/cnvpytor/view/main.nf | 3 ++- modules/cnvpytor/view/meta.yml | 15 ++++++++++++--- tests/modules/cnvpytor/view/main.nf | 7 +++---- tests/modules/cnvpytor/view/test.yml | 2 +- 10 files changed, 24 insertions(+), 12 deletions(-) diff --git a/modules/cnvpytor/histogram/main.nf b/modules/cnvpytor/histogram/main.nf index 1906fa36..fd2ebe14 100644 --- a/modules/cnvpytor/histogram/main.nf +++ b/modules/cnvpytor/histogram/main.nf @@ -38,7 +38,7 @@ process CNVPYTOR_HISTOGRAM { cat <<-END_VERSIONS > versions.yml "${task.process}": - cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) END_VERSIONS """ } diff --git a/modules/cnvpytor/histogram/meta.yml b/modules/cnvpytor/histogram/meta.yml index 4855f26d..ecd48b9a 100644 --- a/modules/cnvpytor/histogram/meta.yml +++ b/modules/cnvpytor/histogram/meta.yml @@ -43,3 +43,4 @@ output: authors: - "@sima-r" + - "@ramprasadn" diff --git a/modules/cnvpytor/importreaddepth/main.nf b/modules/cnvpytor/importreaddepth/main.nf index ff00c0b0..6f9abae9 100644 --- a/modules/cnvpytor/importreaddepth/main.nf +++ b/modules/cnvpytor/importreaddepth/main.nf @@ -32,7 +32,7 @@ process CNVPYTOR_IMPORTREADDEPTH { cat <<-END_VERSIONS > versions.yml "${task.process}": - cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) END_VERSIONS """ diff --git a/modules/cnvpytor/importreaddepth/meta.yml b/modules/cnvpytor/importreaddepth/meta.yml index 1cf3c0d0..8b58887e 100644 --- a/modules/cnvpytor/importreaddepth/meta.yml +++ b/modules/cnvpytor/importreaddepth/meta.yml @@ -52,3 +52,4 @@ output: authors: - "@sima-r" + - "@ramprasadn" diff --git a/modules/cnvpytor/partition/main.nf b/modules/cnvpytor/partition/main.nf index 42a5ec78..6d7a9c6b 100644 --- a/modules/cnvpytor/partition/main.nf +++ b/modules/cnvpytor/partition/main.nf @@ -37,7 +37,7 @@ process CNVPYTOR_PARTITION { cat <<-END_VERSIONS > versions.yml "${task.process}": - cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/^.*pyCNVnator //; s/Using.*\$//' )) + cnvpytor: \$(echo \$(cnvpytor --version 2>&1) | sed 's/CNVpytor //' )) END_VERSIONS """ } diff --git a/modules/cnvpytor/partition/meta.yml b/modules/cnvpytor/partition/meta.yml index bb7a047e..17b5e199 100644 --- a/modules/cnvpytor/partition/meta.yml +++ b/modules/cnvpytor/partition/meta.yml @@ -43,3 +43,4 @@ output: authors: - "@sima-r" + - "@ramprasadn" diff --git a/modules/cnvpytor/view/main.nf b/modules/cnvpytor/view/main.nf index c4e49a78..72726615 100644 --- a/modules/cnvpytor/view/main.nf +++ b/modules/cnvpytor/view/main.nf @@ -23,13 +23,14 @@ process CNVPYTOR_VIEW { script: def output_suffix = output_format ?: 'vcf' + def bins = bin_sizes ?: '1000' """ python3 < Date: Tue, 3 May 2022 15:04:37 +0200 Subject: [PATCH 410/592] fix minor errors --- modules/cnvpytor/callcnvs/main.nf | 2 +- modules/cnvpytor/view/meta.yml | 3 +++ tests/modules/cnvpytor/view/test.yml | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/cnvpytor/callcnvs/main.nf b/modules/cnvpytor/callcnvs/main.nf index c3866095..092f6def 100644 --- a/modules/cnvpytor/callcnvs/main.nf +++ b/modules/cnvpytor/callcnvs/main.nf @@ -19,7 +19,7 @@ process CNVPYTOR_CALLCNVS { task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '1000' + def bins = bin_sizes ?: '1000' def prefix = task.ext.prefix ?: "${meta.id}" """ cnvpytor \\ diff --git a/modules/cnvpytor/view/meta.yml b/modules/cnvpytor/view/meta.yml index 0f9bbb43..1392e90e 100644 --- a/modules/cnvpytor/view/meta.yml +++ b/modules/cnvpytor/view/meta.yml @@ -24,6 +24,9 @@ input: - bin_sizes: type: string description: list of binsizes separated by space e.g. "1000 10000" and "1000" + - output_format: + type: string + description: output format of the cnv calls. Valid entries are "tsv", "vcf", and "xls" output: - meta: diff --git a/tests/modules/cnvpytor/view/test.yml b/tests/modules/cnvpytor/view/test.yml index 9c8b346b..ea8ab792 100644 --- a/tests/modules/cnvpytor/view/test.yml +++ b/tests/modules/cnvpytor/view/test.yml @@ -5,6 +5,7 @@ - cnvpytor/view files: - path: output/cnvpytor/test_10000.vcf + - path: output/cnvpytor/test_100000.vcf - path: output/cnvpytor/versions.yml - name: cnvpytor view test_cnvpytor_view tsv From 5510ea39fe638594bc26ac34cadf4a84bf27d159 Mon Sep 17 00:00:00 2001 From: ljmesi <37740329+ljmesi@users.noreply.github.com> Date: Tue, 3 May 2022 15:18:09 +0200 Subject: [PATCH 411/592] Test --no-name to solve inconsistent checksums --- modules/samtools/bam2fq/main.nf | 2 +- tests/modules/samtools/bam2fq/test.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/samtools/bam2fq/main.nf b/modules/samtools/bam2fq/main.nf index 554af48b..9301d1d3 100644 --- a/modules/samtools/bam2fq/main.nf +++ b/modules/samtools/bam2fq/main.nf @@ -45,7 +45,7 @@ process SAMTOOLS_BAM2FQ { bam2fq \\ $args \\ -@ $task.cpus \\ - $inputbam | gzip > ${prefix}_interleaved.fq.gz + $inputbam | gzip --no-name > ${prefix}_interleaved.fq.gz cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/tests/modules/samtools/bam2fq/test.yml b/tests/modules/samtools/bam2fq/test.yml index 6fcc9c22..674730d7 100644 --- a/tests/modules/samtools/bam2fq/test.yml +++ b/tests/modules/samtools/bam2fq/test.yml @@ -1,8 +1,8 @@ - name: samtools bam2fq test_samtools_bam2fq_nosplit command: nextflow run tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_nosplit -c tests/config/nextflow.config tags: - - samtools - samtools/bam2fq + - samtools files: - path: output/samtools/test_interleaved.fq.gz md5sum: 7a57a8ab53dd1d799cca67a85c47ccd9 @@ -12,8 +12,8 @@ - name: samtools bam2fq test_samtools_bam2fq_withsplit command: nextflow run tests/modules/samtools/bam2fq -entry test_samtools_bam2fq_withsplit -c tests/config/nextflow.config tags: - - samtools - samtools/bam2fq + - samtools files: - path: output/samtools/test_1.fq.gz md5sum: 1c84aadcdca10e97be2b5b6ce773f5ed From 57db28386ebd236e4ffd07c47eba21f284cda55c Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Tue, 3 May 2022 13:26:49 +0000 Subject: [PATCH 412/592] Support batch fasta analysis --- modules/busco/main.nf | 24 +++++++++++++++++------- tests/modules/busco/main.nf | 6 ++++-- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/modules/busco/main.nf b/modules/busco/main.nf index e66beeeb..4ba4baac 100644 --- a/modules/busco/main.nf +++ b/modules/busco/main.nf @@ -8,10 +8,10 @@ process BUSCO { 'quay.io/biocontainers/busco:5.3.2--pyhdfd78af_0' }" input: - tuple val(meta), path(fasta) // Required: meta map, and fasta sequence file - each lineage // Required: lineage to check against - path busco_lineages_path // Recommended: path to busco lineages - downloads if not set - path config_file // Optional: busco configuration file + tuple val(meta), path(fasta, stageAs: 'tmp_input/*') // Required: meta map, and fasta sequence files + each lineage // Required: lineage to check against + path busco_lineages_path // Recommended: path to busco lineages - downloads if not set + path config_file // Optional: busco configuration file output: tuple val(meta), path("*-busco"), emit: busco_dir @@ -50,11 +50,21 @@ process BUSCO { fi # Ensure the input is uncompressed - gzip -cdf $fasta > ${prefix}_uncompressed.fasta + INPUT_SEQS=input_seqs + mkdir "\$INPUT_SEQS" + cd "\$INPUT_SEQS" + for FASTA in ../tmp_input/*; do + if [ "\${FASTA##*.}" == 'gz' ]; then + gzip -cdf "\$FASTA" > \$( basename "\$FASTA" .gz ) + else + ln -s "\$FASTA" . + fi + done + cd .. busco \\ --cpu $task.cpus \\ - --in ${prefix}_uncompressed.fasta \\ + --in "\$INPUT_SEQS" \\ --out ${prefix}-busco \\ --lineage_dataset $lineage \\ $busco_lineage_dir \\ @@ -62,7 +72,7 @@ process BUSCO { $args # clean up - rm ${prefix}_uncompressed.fasta + rm -rf "\$INPUT_SEQS" cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/tests/modules/busco/main.nf b/tests/modules/busco/main.nf index 4985bd18..bdd5f40d 100644 --- a/tests/modules/busco/main.nf +++ b/tests/modules/busco/main.nf @@ -9,7 +9,10 @@ workflow test_busco { input = [ [ id:'test', single_end:false ], // meta map - file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + [ + file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true), + file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['genome_fasta'], checkIfExists: true) + ] ] BUSCO ( @@ -20,4 +23,3 @@ workflow test_busco { ) } - From 96d4a31cc15e3b20ee6a7df0ad39ca59feeb3a02 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 3 May 2022 15:31:05 +0200 Subject: [PATCH 413/592] Moved the BED file to the main tuple --- modules/vardictjava/main.nf | 3 +-- tests/modules/vardictjava/main.nf | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/vardictjava/main.nf b/modules/vardictjava/main.nf index 454b86a4..c99301bb 100644 --- a/modules/vardictjava/main.nf +++ b/modules/vardictjava/main.nf @@ -10,8 +10,7 @@ process VARDICTJAVA { 'quay.io/biocontainers/vardict-java:1.8.3--hdfd78af_0' }" input: - tuple val(meta), path(bam), path(bai) - path(bed) + tuple val(meta), path(bam), path(bai), path(bed) tuple path(fasta), path(fasta_fai) output: diff --git a/tests/modules/vardictjava/main.nf b/tests/modules/vardictjava/main.nf index d392358a..e29490f3 100644 --- a/tests/modules/vardictjava/main.nf +++ b/tests/modules/vardictjava/main.nf @@ -9,15 +9,14 @@ workflow test_vardictjava { bam_input_ch = Channel.value([ [ id:'test' ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) ]) - bed = Channel.value(file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)) - reference = Channel.value([ file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true), file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) ]) - VARDICTJAVA ( bam_input_ch, bed, reference ) + VARDICTJAVA ( bam_input_ch, reference ) } From a39fa4e003efce395debe34de57c5b28472c762c Mon Sep 17 00:00:00 2001 From: ljmesi <37740329+ljmesi@users.noreply.github.com> Date: Tue, 3 May 2022 15:47:49 +0200 Subject: [PATCH 414/592] Fix checksum for one file --- tests/modules/samtools/bam2fq/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/samtools/bam2fq/test.yml b/tests/modules/samtools/bam2fq/test.yml index 674730d7..9d641e4a 100644 --- a/tests/modules/samtools/bam2fq/test.yml +++ b/tests/modules/samtools/bam2fq/test.yml @@ -5,7 +5,7 @@ - samtools files: - path: output/samtools/test_interleaved.fq.gz - md5sum: 7a57a8ab53dd1d799cca67a85c47ccd9 + md5sum: 7290d2d8dbef0fa57c0e2f28b5db1bf8 - path: output/samtools/versions.yml md5sum: 4973eac1b6a8f090d5fcd4456d65a894 From 4be754b0080364ea14470ea152e3d0f3ca38baa8 Mon Sep 17 00:00:00 2001 From: Matthieu Muffato Date: Tue, 3 May 2022 14:53:17 +0100 Subject: [PATCH 415/592] It's a file, not a directory --- modules/busco/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/busco/meta.yml b/modules/busco/meta.yml index b73f498b..e546c5ae 100644 --- a/modules/busco/meta.yml +++ b/modules/busco/meta.yml @@ -31,7 +31,7 @@ input: type: directory description: Path to local BUSCO lineages directory. - config_file: - type: directory + type: file description: Path to BUSCO config file. output: From 6351ec745ea35861554a0896470a43d47d1abee4 Mon Sep 17 00:00:00 2001 From: Matthieu Muffato Date: Tue, 3 May 2022 14:56:27 +0100 Subject: [PATCH 416/592] Update contributor list --- modules/busco/meta.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/busco/meta.yml b/modules/busco/meta.yml index e546c5ae..1301e091 100644 --- a/modules/busco/meta.yml +++ b/modules/busco/meta.yml @@ -53,3 +53,4 @@ authors: - "@priyanka-surana" - "@charles-plessy" - "@mahesh-panchal" + - "@muffato" From 1c54c0b1ae684dba97345a136b802b5ef8e31e4d Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Tue, 3 May 2022 16:02:11 +0200 Subject: [PATCH 417/592] Apply suggestions from code review Co-authored-by: Matthieu Muffato --- modules/busco/main.nf | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/modules/busco/main.nf b/modules/busco/main.nf index 4ba4baac..c011b05b 100644 --- a/modules/busco/main.nf +++ b/modules/busco/main.nf @@ -24,20 +24,14 @@ process BUSCO { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}-${lineage}" def busco_config = config_file ? "--config $config_file" : '' - def busco_lineage_dir = busco_lineages_path ? "--download_path ${busco_lineages_path}" : '' + def busco_lineage_dir = busco_lineages_path ? "--offline --download_path ${busco_lineages_path}" : '' """ # Nextflow changes the container --entrypoint to /bin/bash (container default entrypoint: /usr/local/env-execute) # Check for container variable initialisation script and source it. if [ -f "/usr/local/env-activate.sh" ]; then - # . "/usr/local/env-activate.sh" # Errors out because of various unbound variables - export PATH='/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' - export CONDA_PREFIX='/usr/local' - export CONDA_SHLVL='1' - export CONDA_DEFAULT_ENV='/usr/local' - export CONDA_PROMPT_MODIFIER='' - . "/usr/local/etc/conda/activate.d/activate-r-base.sh" - . "/usr/local/etc/conda/activate.d/augustus.sh" - . "/usr/local/etc/conda/activate.d/openjdk_activate.sh" + set +u # Otherwise, errors out because of various unbound variables + . "/usr/local/env-activate.sh" + set -u fi # If the augustus config directory is not writable, then copy to writeable area From f02cd618b89e57f7d7a92bcdd8c654c85897c14c Mon Sep 17 00:00:00 2001 From: "Jill V. Hagey, PhD" Date: Tue, 3 May 2022 10:09:19 -0400 Subject: [PATCH 418/592] Update meta.yml --- modules/busco/meta.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/busco/meta.yml b/modules/busco/meta.yml index 1301e091..007d5e7c 100644 --- a/modules/busco/meta.yml +++ b/modules/busco/meta.yml @@ -54,3 +54,4 @@ authors: - "@charles-plessy" - "@mahesh-panchal" - "@muffato" + - "@jvhagey" From fa9f0753de4b4040b5b7b9a28ffa2c7f59c4e6ca Mon Sep 17 00:00:00 2001 From: jasmezz Date: Tue, 3 May 2022 17:30:16 +0200 Subject: [PATCH 419/592] Apply review suggestions + add stub for prokka test workflow --- modules/antismash/antismashlite/main.nf | 47 +++++++++++--- modules/antismash/antismashlite/meta.yml | 8 +-- tests/modules/antismash/antismashlite/main.nf | 21 ++++++- .../modules/antismash/antismashlite/test.yml | 63 +++++++++++-------- 4 files changed, 97 insertions(+), 42 deletions(-) diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf index c92f983e..a4998be6 100644 --- a/modules/antismash/antismashlite/main.nf +++ b/modules/antismash/antismashlite/main.nf @@ -22,22 +22,22 @@ process ANTISMASH_ANTISMASHLITE { output: tuple val(meta), path("${prefix}/clusterblast/*_c*.txt") , optional: true, emit: clusterblast_file - tuple val(meta), path("$prefix/css/*.css") , emit: css_file - tuple val(meta), path("$prefix/images") , emit: image_directory - tuple val(meta), path("$prefix/js/*.js") , emit: javascript + tuple val(meta), path("${prefix}/css/*.css") , emit: css_file + tuple val(meta), path("${prefix}/images") , emit: image_directory + tuple val(meta), path("${prefix}/js/*.js") , emit: javascript tuple val(meta), path("${prefix}/knownclusterblast/region*/ctg*.html") , optional: true, emit: knownclusterblast_html tuple val(meta), path("${prefix}/knownclusterblast/*_c*.txt") , optional: true, emit: knownclusterblast_txt tuple val(meta), path("${prefix}/svg/clusterblast*.svg") , optional: true, emit: svg_files_clusterblast tuple val(meta), path("${prefix}/svg/knownclusterblast*.svg") , optional: true, emit: svg_files_knownclusterblast - tuple val(meta), path("$prefix/*.gbk") , emit: gbk_input - tuple val(meta), path("$prefix/*.json") , emit: json_results - tuple val(meta), path("$prefix/*.log") , emit: log - tuple val(meta), path("$prefix/*.zip") , emit: zip - tuple val(meta), path("$prefix/*region*.gbk") , emit: gbk_results + tuple val(meta), path("${prefix}/*.gbk") , emit: gbk_input + tuple val(meta), path("${prefix}/*.json") , emit: json_results + tuple val(meta), path("${prefix}/*.log") , emit: log + tuple val(meta), path("${prefix}/*.zip") , emit: zip + tuple val(meta), path("${prefix}/*region*.gbk") , emit: gbk_results tuple val(meta), path("${prefix}/clusterblastoutput.txt") , optional: true, emit: clusterblastoutput - tuple val(meta), path("$prefix/index.html") , emit: html + tuple val(meta), path("${prefix}/index.html") , emit: html tuple val(meta), path("${prefix}/knownclusterblastoutput.txt") , optional: true, emit: knownclusterblastoutput - tuple val(meta), path("$prefix/regions.js") , emit: json_sideloading + tuple val(meta), path("${prefix}/regions.js") , emit: json_sideloading path "versions.yml" , emit: versions when: @@ -64,4 +64,31 @@ process ANTISMASH_ANTISMASHLITE { antismash-lite: \$(antismash --version | sed 's/antiSMASH //') END_VERSIONS """ + + stub: + """ + mkdir ${prefix} + touch ${prefix}/clusterblast/stub_c.stub.txt + touch ${prefix}/css/stub.css + touch ${prefix}/images + touch ${prefix}/js/stub.js + touch ${prefix}/knownclusterblast/regionstub/ctg.stub.html + touch ${prefix}/knownclusterblast/stub._c.stub.txt + touch ${prefix}/svg/clusterblast.stub.svg + touch ${prefix}/svg/knownclusterblast.stub.svg + touch ${prefix}/stub.gbk + touch ${prefix}/stub.json + touch ${prefix}/stub.log + touch ${prefix}/stub.zip + touch ${prefix}/stub.region.stub.gbk + touch ${prefix}/clusterblastoutput.txt + touch ${prefix}/index.html + touch ${prefix}/knownclusterblastoutput.txt + touch ${prefix}/regions.js + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + antismash-lite: \$(antismash --version | sed 's/antiSMASH //') + END_VERSIONS + """ } diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml index d726ad3e..22056202 100644 --- a/modules/antismash/antismashlite/meta.yml +++ b/modules/antismash/antismashlite/meta.yml @@ -87,11 +87,11 @@ output: pattern: "svg/knownclusterblast*.svg" - gbk_input: type: file - description: Nucleotide sequence + annotations in GenBank file format; converted from input file + description: Nucleotide sequence + annotations in GenBank format; converted from input file pattern: "*.gbk" - json_results: type: file - description: Simple representation of all detected areas during the antiSMASH run in JSON format + description: Nucleotide sequence + annotations in JSON format; converted from GenBank file (gbk_input) pattern: "*.json" - log: type: file @@ -99,11 +99,11 @@ output: pattern: "*.log" - zip: type: file - description: Contains a compressed version of the folder in zip format + description: Contains a compressed version of the output folder in zip format pattern: "*.zip" - gbk_results: type: file - description: Nucleotide sequence + annotations in GenBank file format; one file per antiSMASH hit + description: Nucleotide sequence + annotations in GenBank format; one file per antiSMASH hit pattern: "*region*.gbk" - clusterblastoutput: type: file diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index 3044250a..2ef4430f 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -10,6 +10,23 @@ include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/anti include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' include { PROKKA } from '../../../modules/prokka/main.nf' +process STUB_ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { + input: + path database_css + path database_detection + path database_modules + + output: + path("antismash_db") , emit: database + path("antismash_dir"), emit: antismash_dir + + stub: + """ + mkdir antismash_db + mkdir antismash_dir + """ +} + workflow test_antismashlite { input_genome = [ [ id:'test' ], // meta map @@ -61,6 +78,6 @@ workflow test_prokka_antismashlite { UNTAR1 ( input_antismash_db1 ) UNTAR2 ( input_antismash_db2 ) UNTAR3 ( input_antismash_db3 ) - ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) - ANTISMASH_ANTISMASHLITE ( PROKKA.out.gbk, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir ) + STUB_ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) + ANTISMASH_ANTISMASHLITE ( PROKKA.out.gbk, STUB_ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, STUB_ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir ) } diff --git a/tests/modules/antismash/antismashlite/test.yml b/tests/modules/antismash/antismashlite/test.yml index a2adad79..96752b18 100644 --- a/tests/modules/antismash/antismashlite/test.yml +++ b/tests/modules/antismash/antismashlite/test.yml @@ -36,31 +36,42 @@ - antismash/antismashlite - antismash files: - - path: output/antismash/test/NZ_CP069563.1.region001.gbk - contains: ['/tool="antismash"'] - - path: output/antismash/test/NZ_CP069563.1.region002.gbk - contains: ['/tool="antismash"'] - - path: output/antismash/test/css/bacteria.css - md5sum: 8b3c2f8b143d5245a5f42f55803c532c - - path: output/antismash/test/index.html - md5sum: 3773c3ec61fb1e8cd9a67791b37d9b79 - - path: output/antismash/test/js/antismash.js - md5sum: 58e90c3d783ae014cc3d51849bcb50a2 - - path: output/antismash/test/js/jquery.js - md5sum: 397754ba49e9e0cf4e7c190da78dda05 - - path: output/antismash/test/js/jquery.tablesorter.min.js - md5sum: 5e9e08cef4d1be0eaa538e6eb28809a7 - - path: output/antismash/test/regions.js - contains: [ '"seq_id": "NZ_CP069563.1"' ] - - path: output/antismash/test/test.gbk - contains: ['/tool="antismash"'] - - path: output/antismash/test/test.json - contains: ['"id": "NZ_CP069563.1"'] - - path: output/antismash/test/test.log - contains: ['antiSMASH status: SUCCESS'] - - path: output/antismash/test/test.zip + - path: output/antismash/clusterblast/stub_c.stub.txt + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/css/stub.css + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/images + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/js/stub.js + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/knownclusterblast/regionstub/ctg.stub.html + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/knownclusterblast/stub._c.stub.txt + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/svg/clusterblast.stub.svg + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/svg/knownclusterblast.stub.svg + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/stub.gbk + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/stub.json + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/stub.log + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/stub.zip + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/stub.region.stub. + - md5sum: d41d8cd98f00b204e9800998ecf8427egbk + - path: output/antismash/clusterblastoutpu + - md5sum: d41d8cd98f00b204e9800998ecf8427et.txt + - path: output/antismash/index.html + - md5sum: d41d8cd98f00b204e9800998ecf8427e + - path: output/antismash/knownclusterblast + - md5sum: d41d8cd98f00b204e9800998ecf8427eoutput.txt + - path: output/antismash/regions.js + - md5sum: d41d8cd98f00b204e9800998ecf8427e - path: output/antismash/versions.yml - md5sum: da6bed0032d0f7ad4741e0074ad6b1ff + md5sum: 33e96b52f50beacd83c7e0feab8cb03b - path: output/gunzip/genome.fna md5sum: dafd38f5454b54fbea38245d773062a5 - path: output/prokka/test/test.err @@ -74,13 +85,13 @@ - path: output/prokka/test/test.fsa md5sum: dbe7d3d43d46920802d2aec5cd177ddc - path: output/prokka/test/test.gbk - md5sum: 286ea011a64c0d281de3981ed2f296ff + contains: ['NZ_CP069563.1'] - path: output/prokka/test/test.gff md5sum: 9f733b702454e7750b7d4686369fe7e4 - path: output/prokka/test/test.log contains: ["Annotation finished successfully."] - path: output/prokka/test/test.sqn - md5sum: a901ac190675f976e373219f0191d067 + contains: ['str "NZ_CP069563.1"'] - path: output/prokka/test/test.tbl md5sum: 98f3b705f47b40255631ae43823e8271 - path: output/prokka/test/test.tsv From 480c4ced783927365a36bf28b1fa0f1ab51e0951 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Tue, 3 May 2022 17:35:16 +0200 Subject: [PATCH 420/592] Update meta.yml --- modules/antismash/antismashlite/meta.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml index 22056202..ac52edaa 100644 --- a/modules/antismash/antismashlite/meta.yml +++ b/modules/antismash/antismashlite/meta.yml @@ -1,5 +1,7 @@ name: antismash_antismashlite -description: antiSMASH allows the rapid genome-wide identification, annotation and analysis of secondary metabolite biosynthesis gene clusters. +description: | + antiSMASH allows the rapid genome-wide identification, annotation + and analysis of secondary metabolite biosynthesis gene clusters. keywords: - secondary metabolites - BGC @@ -40,7 +42,13 @@ input: - antismash_dir: type: directory description: | - antismash installation folder which is being modified during the antiSMASH database downloading step. The modified files are normally downloaded by download-antismash-databases itself, and must be retrieved by the user by manually running the command within antismash-lite. As this folder cannot be modified within the docker and singularity containers, it needs to be mounted (including all modified files from the downloading step) as a workaround. + antismash installation folder which is being modified during the + antiSMASH database downloading step. The modified files are + normally downloaded by download-antismash-databases itself, and must be + retrieved by the user by manually running the command within antismash-lite. + As this folder cannot be modified within the docker and singularity containers, + it needs to be mounted (including all modified files from the downloading step) + as a workaround. pattern: "*" output: From dc59ad0bf5cd65a921c85680e872097da43d2f77 Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Tue, 3 May 2022 12:27:39 -0400 Subject: [PATCH 421/592] fix the version issue. --- modules/motus/downloaddb/main.nf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index c8af459a..20dae83c 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -30,9 +30,12 @@ process MOTUS_DOWNLOADDB { ## clean up rm ${software} + ## mOTUs version number is not available from command line. + ## mOTUs save the version number in index database folder. + ## mOTUs will check the database version is same version as exec version. cat <<-END_VERSIONS > versions.yml "${task.process}": - mOTUs: \$(echo \$(motus -h 2>&1) | sed 's/^.*Version: //; s/Reference.*\$//') + mOTUs: \$(grep motus db_mOTU/db_mOTU_versions | sed 's/motus\\t//g') END_VERSIONS """ } From 8df20218bf2f348a4f30b7a9b2f72bdb8e9e23a5 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Wed, 4 May 2022 09:22:43 +0000 Subject: [PATCH 422/592] Add more tests and capture summaries Co-authored-by: Jill V. Hagey, PhD --- modules/busco/main.nf | 11 +- tests/modules/busco/main.nf | 304 +++++++++++++++++++++++++++- tests/modules/busco/nextflow.config | 24 ++- tests/modules/busco/test.yml | 60 +++++- 4 files changed, 392 insertions(+), 7 deletions(-) diff --git a/modules/busco/main.nf b/modules/busco/main.nf index c011b05b..59ac20f8 100644 --- a/modules/busco/main.nf +++ b/modules/busco/main.nf @@ -14,8 +14,11 @@ process BUSCO { path config_file // Optional: busco configuration file output: - tuple val(meta), path("*-busco"), emit: busco_dir - path "versions.yml" , emit: versions + tuple val(meta), path("*-busco.batch_summary.txt"), emit: batch_summary + tuple val(meta), path("short_summary.*.txt") , emit: short_summaries_txt + tuple val(meta), path("short_summary.*.json") , emit: short_summaries_json + tuple val(meta), path("*-busco") , emit: busco_dir + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -68,6 +71,10 @@ process BUSCO { # clean up rm -rf "\$INPUT_SEQS" + # Move files to avoid staging/publishing issues + mv ${prefix}-busco/batch_summary.txt ${prefix}-busco.batch_summary.txt + mv ${prefix}-busco/*/short_summary.*.{json,txt} . + cat <<-END_VERSIONS > versions.yml "${task.process}": busco: \$( busco --version 2>&1 | sed 's/^BUSCO //' ) diff --git a/tests/modules/busco/main.nf b/tests/modules/busco/main.nf index bdd5f40d..a678d371 100644 --- a/tests/modules/busco/main.nf +++ b/tests/modules/busco/main.nf @@ -5,7 +5,70 @@ nextflow.enable.dsl = 2 include { BUSCO } from '../../../modules/busco/main.nf' // This tests genome decompression, empty input channels and data download -workflow test_busco { +workflow test_busco_genome_single_fasta { + + input = [ + [ id:'test', single_end:false ], // meta map + file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] + + BUSCO ( + input, + ['bacteria_odb10', 'bacteroidetes_odb10'], + [], // Download busco lineage + [], // No config + ) + + /* Output tree: + /tmp/tmpimsfk4sj/busco/ + ├── test-bacteria_odb10-busco -> /tmp/tmp1sz7013h/b7/fdeaab567e1c5bccc475a4c19b8582/test-bacteria_odb10-busco/ + │ ├── batch_summary.txt + │ ├── genome.fna/ + │ │ ├── logs/ + │ │ │ ├── hmmsearch_err.log + │ │ │ ├── hmmsearch_out.log + │ │ │ ├── prodigal_err.log + │ │ │ └── prodigal_out.log + │ │ ├── prodigal_output/ + │ │ │ └── predicted_genes/ + │ │ ├── run_bacteria_odb10/ + │ │ │ ├── busco_sequences/ + │ │ │ ├── full_table.tsv + │ │ │ ├── hmmer_output/ + │ │ │ ├── missing_busco_list.tsv + │ │ │ ├── short_summary.json + │ │ │ └── short_summary.txt + │ │ ├── short_summary.specific.bacteria_odb10.genome.fna.json + │ │ └── short_summary.specific.bacteria_odb10.genome.fna.txt + │ └── logs/ + │ └── busco.log + ├── test-bacteroidetes_odb10-busco -> /tmp/tmp1sz7013h/75/0da56f59ee44bd2b85e0172906de49/test-bacteroidetes_odb10-busco/ + │ ├── batch_summary.txt + │ ├── genome.fna/ + │ │ ├── logs/ + │ │ │ ├── hmmsearch_err.log + │ │ │ ├── hmmsearch_out.log + │ │ │ ├── prodigal_err.log + │ │ │ └── prodigal_out.log + │ │ ├── prodigal_output/ + │ │ │ └── predicted_genes/ + │ │ ├── run_bacteroidetes_odb10/ + │ │ │ ├── busco_sequences/ + │ │ │ ├── full_table.tsv + │ │ │ ├── hmmer_output/ + │ │ │ ├── missing_busco_list.tsv + │ │ │ ├── short_summary.json + │ │ │ └── short_summary.txt + │ │ ├── short_summary.specific.bacteroidetes_odb10.genome.fna.json + │ │ └── short_summary.specific.bacteroidetes_odb10.genome.fna.txt + │ └── logs/ + │ └── busco.log + └── versions.yml -> /tmp/tmp1sz7013h/b7/fdeaab567e1c5bccc475a4c19b8582/versions.yml + */ + +} + +workflow test_busco_genome_multi_fasta { input = [ [ id:'test', single_end:false ], // meta map @@ -22,4 +85,243 @@ workflow test_busco { [], // No config ) + /* Output tree: + /tmp/tmpt22rjxzq/busco/ + ├── test-bacteria_odb10-busco -> /tmp/tmpfxt64xr_/36/425acbe5e9b27ba0bac8861f735494/test-bacteria_odb10-busco/ + │ ├── batch_summary.txt + │ ├── genome.fasta/ + │ │ ├── logs/ + │ │ │ ├── hmmsearch_err.log + │ │ │ ├── hmmsearch_out.log + │ │ │ ├── prodigal_err.log + │ │ │ └── prodigal_out.log + │ │ ├── prodigal_output/ + │ │ │ └── predicted_genes/ + │ │ ├── run_bacteria_odb10/ + │ │ │ ├── busco_sequences/ + │ │ │ ├── full_table.tsv + │ │ │ ├── hmmer_output/ + │ │ │ ├── missing_busco_list.tsv + │ │ │ ├── short_summary.json + │ │ │ └── short_summary.txt + │ │ ├── short_summary.specific.bacteria_odb10.genome.fasta.json + │ │ └── short_summary.specific.bacteria_odb10.genome.fasta.txt + │ ├── genome.fna/ + │ │ ├── logs/ + │ │ │ ├── hmmsearch_err.log + │ │ │ ├── hmmsearch_out.log + │ │ │ ├── prodigal_err.log + │ │ │ └── prodigal_out.log + │ │ ├── prodigal_output/ + │ │ │ └── predicted_genes/ + │ │ ├── run_bacteria_odb10/ + │ │ │ ├── busco_sequences/ + │ │ │ ├── full_table.tsv + │ │ │ ├── hmmer_output/ + │ │ │ ├── missing_busco_list.tsv + │ │ │ ├── short_summary.json + │ │ │ └── short_summary.txt + │ │ ├── short_summary.specific.bacteria_odb10.genome.fna.json + │ │ └── short_summary.specific.bacteria_odb10.genome.fna.txt + │ └── logs/ + │ └── busco.log + └── versions.yml -> /tmp/tmpfxt64xr_/36/425acbe5e9b27ba0bac8861f735494/versions.yml + */ + +} + +workflow test_busco_eukaryote_metaeuk { + + input = [ + [ id:'test', single_end:false ], // meta map + file( params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + + BUSCO ( + input, + 'eukaryota_odb10', + [], // Download busco lineage + [], // No config + ) + + /* Output tree: + /tmp/tmp22sf7kg9/busco/ + ├── test-eukaryota_odb10-busco -> /tmp/tmpmic8qsk6/d5/d8cb6681c0fcaa6da34b57ec174d59/test-eukaryota_odb10-busco/ + │ ├── batch_summary.txt + │ ├── genome.fasta/ + │ │ ├── logs/ + │ │ │ ├── hmmsearch_err.log + │ │ │ ├── hmmsearch_out.log + │ │ │ ├── metaeuk_err.log + │ │ │ └── metaeuk_out.log + │ │ ├── run_eukaryota_odb10/ + │ │ │ ├── busco_sequences/ + │ │ │ ├── full_table.tsv + │ │ │ ├── hmmer_output/ + │ │ │ ├── metaeuk_output/ + │ │ │ ├── missing_busco_list.tsv + │ │ │ ├── short_summary.json + │ │ │ └── short_summary.txt + │ │ ├── short_summary.specific.eukaryota_odb10.genome.fasta.json + │ │ └── short_summary.specific.eukaryota_odb10.genome.fasta.txt + │ └── logs/ + │ └── busco.log + └── versions.yml -> /tmp/tmpmic8qsk6/d5/d8cb6681c0fcaa6da34b57ec174d59/versions.yml + */ + +} + +workflow test_busco_eukaryote_augustus { + + input = [ + [ id:'test', single_end:false ], // meta map + file( params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + + BUSCO ( + input, + 'eukaryota_odb10', + [], // Download busco lineage + [], // No config + ) + + /* Output tree: + /tmp/tmpo77wyvb9/busco/ + ├── test-eukaryota_odb10-busco -> /tmp/tmpshljnwcg/25/9891a19cbabda15a5c10fb5e34987f/test-eukaryota_odb10-busco/ + │ ├── batch_summary.txt + │ ├── genome.fasta/ + │ │ ├── blast_db/ + │ │ │ ├── genome.fasta.ndb + │ │ │ ├── genome.fasta.nhr + │ │ │ ├── genome.fasta.nin + │ │ │ ├── genome.fasta.not + │ │ │ ├── genome.fasta.nsq + │ │ │ ├── genome.fasta.ntf + │ │ │ └── genome.fasta.nto + │ │ ├── logs/ + │ │ │ ├── makeblastdb_err.log + │ │ │ ├── makeblastdb_out.log + │ │ │ ├── tblastn_err.log + │ │ │ └── tblastn_out.log + │ │ └── run_eukaryota_odb10/ + │ │ ├── augustus_output/ + │ │ ├── blast_output/ + │ │ ├── busco_sequences/ + │ │ └── hmmer_output/ + │ └── logs/ + │ └── busco.log + └── versions.yml -> /tmp/tmpshljnwcg/25/9891a19cbabda15a5c10fb5e34987f/versions.yml + */ + +} + +workflow test_busco_protein { + + input = [ + [ id:'test', single_end:false ], // meta map + file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['proteome_fasta'], checkIfExists: true) + ] + + BUSCO ( + input, + 'bacteria_odb10', + [], // Download busco lineage + [], // No config + ) + + /* Output tree: + /tmp/tmplju98s42/busco/ + ├── test-bacteria_odb10-busco -> /tmp/tmp0oru9_61/9c/e992f5eee84806770002e4510f51cb/test-bacteria_odb10-busco/ + │ ├── batch_summary.txt + │ ├── logs/ + │ │ └── busco.log + │ └── proteome.fasta/ + │ ├── logs/ + │ │ ├── hmmsearch_err.log + │ │ └── hmmsearch_out.log + │ ├── run_bacteria_odb10/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ └── short_summary.txt + │ ├── short_summary.specific.bacteria_odb10.proteome.fasta.json + │ └── short_summary.specific.bacteria_odb10.proteome.fasta.txt + └── versions.yml -> /tmp/tmp0oru9_61/9c/e992f5eee84806770002e4510f51cb/versions.yml + */ +} +workflow test_busco_transcriptome { + + input = [ + [ id:'test', single_end:false ], // meta map + file( params.test_data['bacteroides_fragilis']['illumina']['test1_contigs_fa_gz'], checkIfExists: true) + ] + + BUSCO ( + input, + 'bacteria_odb10', + [], // Download busco lineage + [], // No config + ) + + /* Output tree: + /tmp/tmp5twpr8o9/busco/ + ├── test-bacteria_odb10-busco -> /tmp/tmp_qyjiads/0d/886515d0f06686b2227517398ef8ce/test-bacteria_odb10-busco/ + │ ├── batch_summary.txt + │ ├── logs/ + │ │ └── busco.log + │ └── test1.contigs.fa/ + │ ├── blast_db/ + │ │ ├── test1.contigs.fa.ndb + │ │ ├── test1.contigs.fa.nhr + │ │ ├── test1.contigs.fa.nin + │ │ ├── test1.contigs.fa.not + │ │ ├── test1.contigs.fa.nsq + │ │ ├── test1.contigs.fa.ntf + │ │ └── test1.contigs.fa.nto + │ ├── logs/ + │ │ ├── hmmsearch_err.log + │ │ ├── hmmsearch_out.log + │ │ ├── makeblastdb_err.log + │ │ ├── makeblastdb_out.log + │ │ ├── tblastn_err.log + │ │ └── tblastn_out.log + │ ├── run_bacteria_odb10/ + │ │ ├── blast_output/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ ├── short_summary.txt + │ │ └── single_copy_proteins.faa + │ ├── short_summary.specific.bacteria_odb10.test1.contigs.fa.json + │ ├── short_summary.specific.bacteria_odb10.test1.contigs.fa.txt + │ └── translated_proteins/ + │ ├── 1024388at2.faa + │ ├── 1054741at2.faa + │ ├── 1093223at2.faa + │ ├── 1151822at2.faa + │ ├── 143460at2.faa + │ ├── 1491686at2.faa + │ ├── 1504821at2.faa + │ ├── 1574817at2.faa + │ ├── 1592033at2.faa + │ ├── 1623045at2.faa + │ ├── 1661836at2.faa + │ ├── 1674344at2.faa + │ ├── 1698718at2.faa + │ ├── 1990650at2.faa + │ ├── 223233at2.faa + │ ├── 402899at2.faa + │ ├── 505485at2.faa + │ ├── 665824at2.faa + │ ├── 776861at2.faa + │ ├── 874197at2.faa + │ ├── 932854at2.faa + │ └── 95696at2.faa + └── versions.yml -> /tmp/tmp_qyjiads/0d/886515d0f06686b2227517398ef8ce/versions.yml + */ + } diff --git a/tests/modules/busco/nextflow.config b/tests/modules/busco/nextflow.config index feea8d40..9e8f718f 100644 --- a/tests/modules/busco/nextflow.config +++ b/tests/modules/busco/nextflow.config @@ -1,6 +1,28 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - ext.args = '--mode genome' + withName: 'test_busco_genome_single_fasta:BUSCO' { + ext.args = '--mode genome' + } + + withName: 'test_busco_genome_multi_fasta:BUSCO' { + ext.args = '--mode genome' + } + + withName: 'test_busco_eukaryote_metaeuk:BUSCO' { + ext.args = '--mode genome' + } + + withName: 'test_busco_eukaryote_augustus:BUSCO' { + ext.args = '--mode genome --augustus' + } + + withName: 'test_busco_protein:BUSCO' { + ext.args = '--mode proteins' + } + + withName: 'test_busco_transcriptome:BUSCO'{ + ext.args = '--mode transcriptome' + } } diff --git a/tests/modules/busco/test.yml b/tests/modules/busco/test.yml index 3e7c1bf6..2125c3a4 100644 --- a/tests/modules/busco/test.yml +++ b/tests/modules/busco/test.yml @@ -1,7 +1,61 @@ -- name: busco test_busco - command: nextflow run tests/modules/busco -entry test_busco -c tests/config/nextflow.config +- name: busco test_busco_genome_single_fasta + command: nextflow run tests/modules/busco -entry test_busco_genome_single_fasta -c tests/config/nextflow.config tags: - busco + - bacteria + - genome files: - path: output/busco/versions.yml - md5sum: 921e2abe85bf73e63a8b494453dc83cf + md5sum: 8aa830f71587d859df35c6cfab59f35d + +- name: busco test_busco_genome_multi_fasta + command: nextflow run tests/modules/busco -entry test_busco_genome_multi_fasta -c tests/config/nextflow.config + tags: + - busco + - bacteria + - genome + files: + - path: output/busco/versions.yml + md5sum: 9a959eb0a1f765777dff1ea2f5c139c0 + +- name: busco test_busco_eukaryote_metaeuk + command: nextflow run tests/modules/busco -entry test_busco_eukaryote_metaeuk -c tests/config/nextflow.config + tags: + - busco + - eukaryote + - genome + - metaeuk + files: + - path: output/busco/versions.yml + md5sum: 34a808c257e6db1b0456f3b4372bc477 + +- name: busco test_busco_eukaryote_augustus + command: nextflow run tests/modules/busco -entry test_busco_eukaryote_augustus -c tests/config/nextflow.config + tags: + - busco + - eukaryote + - genome + - augustus + files: + - path: output/busco/versions.yml + md5sum: 2caac915461410b16a1524ac064cd0df + +- name: busco test_busco_protein + command: nextflow run tests/modules/busco -entry test_busco_protein -c tests/config/nextflow.config + tags: + - busco + - bacteria + - proteins + files: + - path: output/busco/versions.yml + md5sum: d7392261a57960a7e6aea609dce824f5 + +- name: busco test_busco_transcriptome + command: nextflow run tests/modules/busco -entry test_busco_transcriptome -c tests/config/nextflow.config + tags: + - busco + - bacteria + - transcriptome + files: + - path: output/busco/versions.yml + md5sum: 30eacbc7df70f6b1e72e0a7b6d02a7e1 From c517ce9b4d3f09f2d49cf0c6795019a6e78938b3 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 13:42:12 +0200 Subject: [PATCH 423/592] Added the module and some simple testing --- modules/happy/main.nf | 53 +++++++++++++++++++++++++++++ modules/happy/meta.yml | 51 +++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/happy/main.nf | 39 +++++++++++++++++++++ tests/modules/happy/nextflow.config | 5 +++ tests/modules/happy/test.yml | 7 ++++ 6 files changed, 159 insertions(+) create mode 100644 modules/happy/main.nf create mode 100644 modules/happy/meta.yml create mode 100644 tests/modules/happy/main.nf create mode 100644 tests/modules/happy/nextflow.config create mode 100644 tests/modules/happy/test.yml diff --git a/modules/happy/main.nf b/modules/happy/main.nf new file mode 100644 index 00000000..68059dd8 --- /dev/null +++ b/modules/happy/main.nf @@ -0,0 +1,53 @@ +def VERSION_HAP = '0.3.14' +def VERSION_PRE = '0.3.14' + +process HAPPY { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::hap.py=0.3.14" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/hap.py:0.3.14--py27h5c5a3ab_0': + 'quay.io/biocontainers/hap.py:0.3.14--py27h5c5a3ab_0' }" + + input: + tuple val(meta), path(truth_vcf), path(query_vcf), path(bed) + tuple path(fasta), path(fasta_fai) + + output: + tuple val(meta), path('*.csv'), path('*.json') , emit: metrics + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + pre.py \\ + $args \\ + -R $bed \\ + --reference $fasta \\ + --threads $task.cpus \\ + $query_vcf \\ + ${prefix}_preprocessed.vcf.gz + + hap.py \\ + $truth_vcf \\ + ${prefix}_preprocessed.vcf.gz \\ + $args2 \\ + --reference $fasta \\ + --threads $task.cpus \\ + -R $bed \\ + -o $prefix + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + hap.py: $VERSION_HAP + pre.py: $VERSION_PRE + END_VERSIONS + """ +} diff --git a/modules/happy/meta.yml b/modules/happy/meta.yml new file mode 100644 index 00000000..52d98e04 --- /dev/null +++ b/modules/happy/meta.yml @@ -0,0 +1,51 @@ +name: "happy" +description: Hap.py is a tool to compare diploid genotypes at haplotype level. Rather than comparing VCF records row by row, hap.py will generate and match alternate sequences in a superlocus. A superlocus is a small region of the genome (sized between 1 and around 1000 bp) that contains one or more variants. +keywords: + - happy + - benchmark + - haplotype +tools: + - "happy": + description: "Haplotype VCF comparison tools" + homepage: "https://www.illumina.com/products/by-type/informatics-products/basespace-sequence-hub/apps/hap-py-benchmarking.html" + documentation: "https://github.com/Illumina/hap.py" + tool_dev_url: "https://github.com/Illumina/hap.py" + doi: "" + licence: "['BSD-2-clause']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - truth_vcf: + type: file + description: gold standard VCF file + pattern: "*.{vcf,vcf.gz}" + - query_vcf: + type: file + description: VCF file to query + pattern: "*.{vcf,vcf.gz}" + - bed: + type: file + description: BED file + pattern: "*.bed" + - fasta: + type: file + description: FASTA file of the reference genome + pattern: "*.{fa,fasta}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@nvnieuwk" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index f4feb844..c14ffc8e 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -891,6 +891,10 @@ hamronization/summarize: - modules/hamronization/summarize/** - tests/modules/hamronization/summarize/** +happy: + - modules/happy/** + - tests/modules/happy/** + hicap: - modules/hicap/** - tests/modules/hicap/** diff --git a/tests/modules/happy/main.nf b/tests/modules/happy/main.nf new file mode 100644 index 00000000..0ce23b50 --- /dev/null +++ b/tests/modules/happy/main.nf @@ -0,0 +1,39 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { HAPPY } from '../../../modules/happy/main.nf' + +workflow test_happy_vcf { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome21_indels_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + ] + + fasta = Channel.value([ + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + ]) + + HAPPY ( input, fasta ) +} + +workflow test_happy_gvcf { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_rnaseq_vcf'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + ] + + fasta = Channel.value([ + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + ]) + + HAPPY ( input, fasta ) +} diff --git a/tests/modules/happy/nextflow.config b/tests/modules/happy/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/happy/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/happy/test.yml b/tests/modules/happy/test.yml new file mode 100644 index 00000000..d85d42a2 --- /dev/null +++ b/tests/modules/happy/test.yml @@ -0,0 +1,7 @@ +- name: happy test_happy + command: nextflow run tests/modules/happy -entry test_happy -c tests/config/nextflow.config + tags: + - happy + files: + - path: output/happy/versions.yml + md5sum: ab8944c1b24e55bab311a9d389c75c90 From 73a8df9522e31eaa34f9f611d8a5a42d6a8c53fe Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Wed, 4 May 2022 11:52:42 +0000 Subject: [PATCH 424/592] Fix no genes found test and update test.yml --- modules/busco/main.nf | 6 +- tests/modules/busco/main.nf | 166 +++++++++++++++++------------------ tests/modules/busco/test.yml | 126 +++++++++++++++++++++++--- 3 files changed, 198 insertions(+), 100 deletions(-) diff --git a/modules/busco/main.nf b/modules/busco/main.nf index 59ac20f8..f6bd63e2 100644 --- a/modules/busco/main.nf +++ b/modules/busco/main.nf @@ -15,8 +15,8 @@ process BUSCO { output: tuple val(meta), path("*-busco.batch_summary.txt"), emit: batch_summary - tuple val(meta), path("short_summary.*.txt") , emit: short_summaries_txt - tuple val(meta), path("short_summary.*.json") , emit: short_summaries_json + tuple val(meta), path("short_summary.*.txt") , emit: short_summaries_txt, optional: true + tuple val(meta), path("short_summary.*.json") , emit: short_summaries_json, optional: true tuple val(meta), path("*-busco") , emit: busco_dir path "versions.yml" , emit: versions @@ -73,7 +73,7 @@ process BUSCO { # Move files to avoid staging/publishing issues mv ${prefix}-busco/batch_summary.txt ${prefix}-busco.batch_summary.txt - mv ${prefix}-busco/*/short_summary.*.{json,txt} . + mv ${prefix}-busco/*/short_summary.*.{json,txt} . || echo "Short summaries were not available: No genes were found." cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/tests/modules/busco/main.nf b/tests/modules/busco/main.nf index a678d371..f0201d21 100644 --- a/tests/modules/busco/main.nf +++ b/tests/modules/busco/main.nf @@ -20,9 +20,12 @@ workflow test_busco_genome_single_fasta { ) /* Output tree: - /tmp/tmpimsfk4sj/busco/ - ├── test-bacteria_odb10-busco -> /tmp/tmp1sz7013h/b7/fdeaab567e1c5bccc475a4c19b8582/test-bacteria_odb10-busco/ - │ ├── batch_summary.txt + /tmp/tmpisa3ktco/busco/ + ├── short_summary.specific.bacteria_odb10.genome.fna.json -> /tmp/tmpm91x0mn2/8a/ff5c15baba0942cca15a8d53e98009/short_summary.specific.bacteria_odb10.genome.fna.json + ├── short_summary.specific.bacteria_odb10.genome.fna.txt -> /tmp/tmpm91x0mn2/8a/ff5c15baba0942cca15a8d53e98009/short_summary.specific.bacteria_odb10.genome.fna.txt + ├── short_summary.specific.bacteroidetes_odb10.genome.fna.json -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/short_summary.specific.bacteroidetes_odb10.genome.fna.json + ├── short_summary.specific.bacteroidetes_odb10.genome.fna.txt -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/short_summary.specific.bacteroidetes_odb10.genome.fna.txt + ├── test-bacteria_odb10-busco -> /tmp/tmpm91x0mn2/8a/ff5c15baba0942cca15a8d53e98009/test-bacteria_odb10-busco/ │ ├── genome.fna/ │ │ ├── logs/ │ │ │ ├── hmmsearch_err.log @@ -31,19 +34,17 @@ workflow test_busco_genome_single_fasta { │ │ │ └── prodigal_out.log │ │ ├── prodigal_output/ │ │ │ └── predicted_genes/ - │ │ ├── run_bacteria_odb10/ - │ │ │ ├── busco_sequences/ - │ │ │ ├── full_table.tsv - │ │ │ ├── hmmer_output/ - │ │ │ ├── missing_busco_list.tsv - │ │ │ ├── short_summary.json - │ │ │ └── short_summary.txt - │ │ ├── short_summary.specific.bacteria_odb10.genome.fna.json - │ │ └── short_summary.specific.bacteria_odb10.genome.fna.txt + │ │ └── run_bacteria_odb10/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ └── short_summary.txt │ └── logs/ │ └── busco.log - ├── test-bacteroidetes_odb10-busco -> /tmp/tmp1sz7013h/75/0da56f59ee44bd2b85e0172906de49/test-bacteroidetes_odb10-busco/ - │ ├── batch_summary.txt + ├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmpm91x0mn2/8a/ff5c15baba0942cca15a8d53e98009/test-bacteria_odb10-busco.batch_summary.txt + ├── test-bacteroidetes_odb10-busco -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/test-bacteroidetes_odb10-busco/ │ ├── genome.fna/ │ │ ├── logs/ │ │ │ ├── hmmsearch_err.log @@ -52,18 +53,17 @@ workflow test_busco_genome_single_fasta { │ │ │ └── prodigal_out.log │ │ ├── prodigal_output/ │ │ │ └── predicted_genes/ - │ │ ├── run_bacteroidetes_odb10/ - │ │ │ ├── busco_sequences/ - │ │ │ ├── full_table.tsv - │ │ │ ├── hmmer_output/ - │ │ │ ├── missing_busco_list.tsv - │ │ │ ├── short_summary.json - │ │ │ └── short_summary.txt - │ │ ├── short_summary.specific.bacteroidetes_odb10.genome.fna.json - │ │ └── short_summary.specific.bacteroidetes_odb10.genome.fna.txt + │ │ └── run_bacteroidetes_odb10/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ └── short_summary.txt │ └── logs/ │ └── busco.log - └── versions.yml -> /tmp/tmp1sz7013h/b7/fdeaab567e1c5bccc475a4c19b8582/versions.yml + ├── test-bacteroidetes_odb10-busco.batch_summary.txt -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/test-bacteroidetes_odb10-busco.batch_summary.txt + └── versions.yml -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/versions.yml */ } @@ -86,9 +86,12 @@ workflow test_busco_genome_multi_fasta { ) /* Output tree: - /tmp/tmpt22rjxzq/busco/ - ├── test-bacteria_odb10-busco -> /tmp/tmpfxt64xr_/36/425acbe5e9b27ba0bac8861f735494/test-bacteria_odb10-busco/ - │ ├── batch_summary.txt + /tmp/tmpk19byek7/busco/ + ├── short_summary.specific.bacteria_odb10.genome.fasta.json -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/short_summary.specific.bacteria_odb10.genome.fasta.json + ├── short_summary.specific.bacteria_odb10.genome.fasta.txt -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/short_summary.specific.bacteria_odb10.genome.fasta.txt + ├── short_summary.specific.bacteria_odb10.genome.fna.json -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/short_summary.specific.bacteria_odb10.genome.fna.json + ├── short_summary.specific.bacteria_odb10.genome.fna.txt -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/short_summary.specific.bacteria_odb10.genome.fna.txt + ├── test-bacteria_odb10-busco -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/test-bacteria_odb10-busco/ │ ├── genome.fasta/ │ │ ├── logs/ │ │ │ ├── hmmsearch_err.log @@ -97,15 +100,13 @@ workflow test_busco_genome_multi_fasta { │ │ │ └── prodigal_out.log │ │ ├── prodigal_output/ │ │ │ └── predicted_genes/ - │ │ ├── run_bacteria_odb10/ - │ │ │ ├── busco_sequences/ - │ │ │ ├── full_table.tsv - │ │ │ ├── hmmer_output/ - │ │ │ ├── missing_busco_list.tsv - │ │ │ ├── short_summary.json - │ │ │ └── short_summary.txt - │ │ ├── short_summary.specific.bacteria_odb10.genome.fasta.json - │ │ └── short_summary.specific.bacteria_odb10.genome.fasta.txt + │ │ └── run_bacteria_odb10/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ └── short_summary.txt │ ├── genome.fna/ │ │ ├── logs/ │ │ │ ├── hmmsearch_err.log @@ -114,18 +115,17 @@ workflow test_busco_genome_multi_fasta { │ │ │ └── prodigal_out.log │ │ ├── prodigal_output/ │ │ │ └── predicted_genes/ - │ │ ├── run_bacteria_odb10/ - │ │ │ ├── busco_sequences/ - │ │ │ ├── full_table.tsv - │ │ │ ├── hmmer_output/ - │ │ │ ├── missing_busco_list.tsv - │ │ │ ├── short_summary.json - │ │ │ └── short_summary.txt - │ │ ├── short_summary.specific.bacteria_odb10.genome.fna.json - │ │ └── short_summary.specific.bacteria_odb10.genome.fna.txt + │ │ └── run_bacteria_odb10/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ └── short_summary.txt │ └── logs/ │ └── busco.log - └── versions.yml -> /tmp/tmpfxt64xr_/36/425acbe5e9b27ba0bac8861f735494/versions.yml + ├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/test-bacteria_odb10-busco.batch_summary.txt + └── versions.yml -> /tmp/tmplt9fv3tl/15/ff310a16d9ce7ad24e207a05ce718e/versions.yml */ } @@ -145,28 +145,28 @@ workflow test_busco_eukaryote_metaeuk { ) /* Output tree: - /tmp/tmp22sf7kg9/busco/ - ├── test-eukaryota_odb10-busco -> /tmp/tmpmic8qsk6/d5/d8cb6681c0fcaa6da34b57ec174d59/test-eukaryota_odb10-busco/ - │ ├── batch_summary.txt + /tmp/tmpeq4dsir5/busco/ + ├── short_summary.specific.eukaryota_odb10.genome.fasta.json -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/short_summary.specific.eukaryota_odb10.genome.fasta.json + ├── short_summary.specific.eukaryota_odb10.genome.fasta.txt -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/short_summary.specific.eukaryota_odb10.genome.fasta.txt + ├── test-eukaryota_odb10-busco -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/test-eukaryota_odb10-busco/ │ ├── genome.fasta/ │ │ ├── logs/ │ │ │ ├── hmmsearch_err.log │ │ │ ├── hmmsearch_out.log │ │ │ ├── metaeuk_err.log │ │ │ └── metaeuk_out.log - │ │ ├── run_eukaryota_odb10/ - │ │ │ ├── busco_sequences/ - │ │ │ ├── full_table.tsv - │ │ │ ├── hmmer_output/ - │ │ │ ├── metaeuk_output/ - │ │ │ ├── missing_busco_list.tsv - │ │ │ ├── short_summary.json - │ │ │ └── short_summary.txt - │ │ ├── short_summary.specific.eukaryota_odb10.genome.fasta.json - │ │ └── short_summary.specific.eukaryota_odb10.genome.fasta.txt + │ │ └── run_eukaryota_odb10/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── metaeuk_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ └── short_summary.txt │ └── logs/ │ └── busco.log - └── versions.yml -> /tmp/tmpmic8qsk6/d5/d8cb6681c0fcaa6da34b57ec174d59/versions.yml + ├── test-eukaryota_odb10-busco.batch_summary.txt -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/test-eukaryota_odb10-busco.batch_summary.txt + └── versions.yml -> /tmp/tmp60hby2pk/6f/529873d91cda6bae3a4a6a21746aee/versions.yml */ } @@ -186,9 +186,8 @@ workflow test_busco_eukaryote_augustus { ) /* Output tree: - /tmp/tmpo77wyvb9/busco/ - ├── test-eukaryota_odb10-busco -> /tmp/tmpshljnwcg/25/9891a19cbabda15a5c10fb5e34987f/test-eukaryota_odb10-busco/ - │ ├── batch_summary.txt + /tmp/tmp2xqaygjj/busco/ + ├── test-eukaryota_odb10-busco -> /tmp/tmpjqs61x9o/3f/67cc14e873c0ceb45e2a27594d624c/test-eukaryota_odb10-busco/ │ ├── genome.fasta/ │ │ ├── blast_db/ │ │ │ ├── genome.fasta.ndb @@ -210,7 +209,8 @@ workflow test_busco_eukaryote_augustus { │ │ └── hmmer_output/ │ └── logs/ │ └── busco.log - └── versions.yml -> /tmp/tmpshljnwcg/25/9891a19cbabda15a5c10fb5e34987f/versions.yml + ├── test-eukaryota_odb10-busco.batch_summary.txt -> /tmp/tmpjqs61x9o/3f/67cc14e873c0ceb45e2a27594d624c/test-eukaryota_odb10-busco.batch_summary.txt + └── versions.yml -> /tmp/tmpjqs61x9o/3f/67cc14e873c0ceb45e2a27594d624c/versions.yml */ } @@ -230,25 +230,25 @@ workflow test_busco_protein { ) /* Output tree: - /tmp/tmplju98s42/busco/ - ├── test-bacteria_odb10-busco -> /tmp/tmp0oru9_61/9c/e992f5eee84806770002e4510f51cb/test-bacteria_odb10-busco/ - │ ├── batch_summary.txt + /tmp/tmpzwd5dn56/busco/ + ├── short_summary.specific.bacteria_odb10.proteome.fasta.json -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/short_summary.specific.bacteria_odb10.proteome.fasta.json + ├── short_summary.specific.bacteria_odb10.proteome.fasta.txt -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/short_summary.specific.bacteria_odb10.proteome.fasta.txt + ├── test-bacteria_odb10-busco -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/test-bacteria_odb10-busco/ │ ├── logs/ │ │ └── busco.log │ └── proteome.fasta/ │ ├── logs/ │ │ ├── hmmsearch_err.log │ │ └── hmmsearch_out.log - │ ├── run_bacteria_odb10/ - │ │ ├── busco_sequences/ - │ │ ├── full_table.tsv - │ │ ├── hmmer_output/ - │ │ ├── missing_busco_list.tsv - │ │ ├── short_summary.json - │ │ └── short_summary.txt - │ ├── short_summary.specific.bacteria_odb10.proteome.fasta.json - │ └── short_summary.specific.bacteria_odb10.proteome.fasta.txt - └── versions.yml -> /tmp/tmp0oru9_61/9c/e992f5eee84806770002e4510f51cb/versions.yml + │ └── run_bacteria_odb10/ + │ ├── busco_sequences/ + │ ├── full_table.tsv + │ ├── hmmer_output/ + │ ├── missing_busco_list.tsv + │ ├── short_summary.json + │ └── short_summary.txt + ├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/test-bacteria_odb10-busco.batch_summary.txt + └── versions.yml -> /tmp/tmpk1nlgbf_/ae/0db07b5cd08fb23d0aba5f134ebbe2/versions.yml */ } workflow test_busco_transcriptome { @@ -266,9 +266,10 @@ workflow test_busco_transcriptome { ) /* Output tree: - /tmp/tmp5twpr8o9/busco/ - ├── test-bacteria_odb10-busco -> /tmp/tmp_qyjiads/0d/886515d0f06686b2227517398ef8ce/test-bacteria_odb10-busco/ - │ ├── batch_summary.txt + /tmp/tmpitjyvo9g/busco/ + ├── short_summary.specific.bacteria_odb10.test1.contigs.fa.json -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/short_summary.specific.bacteria_odb10.test1.contigs.fa.json + ├── short_summary.specific.bacteria_odb10.test1.contigs.fa.txt -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/short_summary.specific.bacteria_odb10.test1.contigs.fa.txt + ├── test-bacteria_odb10-busco -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/test-bacteria_odb10-busco/ │ ├── logs/ │ │ └── busco.log │ └── test1.contigs.fa/ @@ -296,8 +297,6 @@ workflow test_busco_transcriptome { │ │ ├── short_summary.json │ │ ├── short_summary.txt │ │ └── single_copy_proteins.faa - │ ├── short_summary.specific.bacteria_odb10.test1.contigs.fa.json - │ ├── short_summary.specific.bacteria_odb10.test1.contigs.fa.txt │ └── translated_proteins/ │ ├── 1024388at2.faa │ ├── 1054741at2.faa @@ -321,7 +320,8 @@ workflow test_busco_transcriptome { │ ├── 874197at2.faa │ ├── 932854at2.faa │ └── 95696at2.faa - └── versions.yml -> /tmp/tmp_qyjiads/0d/886515d0f06686b2227517398ef8ce/versions.yml + ├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/test-bacteria_odb10-busco.batch_summary.txt + └── versions.yml -> /tmp/tmp6wqi0eyx/4f/ed0b23f0fc807bb68091298845c135/versions.yml */ } diff --git a/tests/modules/busco/test.yml b/tests/modules/busco/test.yml index 2125c3a4..b838d9b7 100644 --- a/tests/modules/busco/test.yml +++ b/tests/modules/busco/test.yml @@ -2,9 +2,39 @@ command: nextflow run tests/modules/busco -entry test_busco_genome_single_fasta -c tests/config/nextflow.config tags: - busco - - bacteria - - genome files: + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json + contains: + - 'one_line_summary' + - 'input_file' + - 'mode' + - 'dataset' + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.txt + contains: + - 'BUSCO version' + - 'The lineage dataset is' + - 'BUSCO was run in mode' + - 'Complete BUSCOs' + - 'Missing BUSCOs' + - 'Dependencies and versions' + - path: output/busco/short_summary.specific.bacteroidetes_odb10.genome.fna.json + contains: + - 'one_line_summary' + - 'input_file' + - 'mode' + - 'dataset' + - path: output/busco/short_summary.specific.bacteroidetes_odb10.genome.fna.txt + contains: + - 'BUSCO version' + - 'The lineage dataset is' + - 'BUSCO was run in mode' + - 'Complete BUSCOs' + - 'Missing BUSCOs' + - 'Dependencies and versions' + - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt + md5sum: e50690742e9ae6abdd2bf99334ff9e12 + - path: output/busco/test-bacteroidetes_odb10-busco.batch_summary.txt + md5sum: 4c1b2c4317c88398eddc30877ed740d9 - path: output/busco/versions.yml md5sum: 8aa830f71587d859df35c6cfab59f35d @@ -12,9 +42,37 @@ command: nextflow run tests/modules/busco -entry test_busco_genome_multi_fasta -c tests/config/nextflow.config tags: - busco - - bacteria - - genome files: + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fasta.json + contains: + - 'one_line_summary' + - 'input_file' + - 'mode' + - 'dataset' + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fasta.txt + contains: + - 'BUSCO version' + - 'The lineage dataset is' + - 'BUSCO was run in mode' + - 'Complete BUSCOs' + - 'Missing BUSCOs' + - 'Dependencies and versions' + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json + contains: + - 'one_line_summary' + - 'input_file' + - 'mode' + - 'dataset' + - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.txt + contains: + - 'BUSCO version' + - 'The lineage dataset is' + - 'BUSCO was run in mode' + - 'Complete BUSCOs' + - 'Missing BUSCOs' + - 'Dependencies and versions' + - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt + md5sum: 5360dfe83bec1f5741ee115e53e6b517 - path: output/busco/versions.yml md5sum: 9a959eb0a1f765777dff1ea2f5c139c0 @@ -22,10 +80,23 @@ command: nextflow run tests/modules/busco -entry test_busco_eukaryote_metaeuk -c tests/config/nextflow.config tags: - busco - - eukaryote - - genome - - metaeuk files: + - path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.json + contains: + - 'one_line_summary' + - 'input_file' + - 'mode' + - 'dataset' + - path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.txt + contains: + - 'BUSCO version' + - 'The lineage dataset is' + - 'BUSCO was run in mode' + - 'Complete BUSCOs' + - 'Missing BUSCOs' + - 'Dependencies and versions' + - path: output/busco/test-eukaryota_odb10-busco.batch_summary.txt + md5sum: a70806f99ba5706d7353d3353b3f1d2b - path: output/busco/versions.yml md5sum: 34a808c257e6db1b0456f3b4372bc477 @@ -33,10 +104,9 @@ command: nextflow run tests/modules/busco -entry test_busco_eukaryote_augustus -c tests/config/nextflow.config tags: - busco - - eukaryote - - genome - - augustus files: + - path: output/busco/test-eukaryota_odb10-busco.batch_summary.txt + md5sum: 660393dd43cd6a093b952d4b8ad41e40 - path: output/busco/versions.yml md5sum: 2caac915461410b16a1524ac064cd0df @@ -44,9 +114,23 @@ command: nextflow run tests/modules/busco -entry test_busco_protein -c tests/config/nextflow.config tags: - busco - - bacteria - - proteins files: + - path: output/busco/short_summary.specific.bacteria_odb10.proteome.fasta.json + contains: + - 'one_line_summary' + - 'input_file' + - 'mode' + - 'dataset' + - path: output/busco/short_summary.specific.bacteria_odb10.proteome.fasta.txt + contains: + - 'BUSCO version' + - 'The lineage dataset is' + - 'BUSCO was run in mode' + - 'Complete BUSCOs' + - 'Missing BUSCOs' + - 'Dependencies and versions' + - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt + md5sum: fd3b4e30ce74d1fcb95d6286d6e2049f - path: output/busco/versions.yml md5sum: d7392261a57960a7e6aea609dce824f5 @@ -54,8 +138,22 @@ command: nextflow run tests/modules/busco -entry test_busco_transcriptome -c tests/config/nextflow.config tags: - busco - - bacteria - - transcriptome files: + - path: output/busco/short_summary.specific.bacteria_odb10.test1.contigs.fa.json + contains: + - 'one_line_summary' + - 'input_file' + - 'mode' + - 'dataset' + - path: output/busco/short_summary.specific.bacteria_odb10.test1.contigs.fa.txt + contains: + - 'BUSCO version' + - 'The lineage dataset is' + - 'BUSCO was run in mode' + - 'Complete BUSCOs' + - 'Missing BUSCOs' + - 'Dependencies and versions' + - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt + md5sum: 9a176cafe66ac0adca89dc34ad2be13f - path: output/busco/versions.yml md5sum: 30eacbc7df70f6b1e72e0a7b6d02a7e1 From f65abe1e9a4e9d9932772a4d2355666b9cac9e61 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Wed, 4 May 2022 11:54:51 +0000 Subject: [PATCH 425/592] Prettier --- tests/modules/busco/test.yml | 140 +++++++++++++++++------------------ 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/tests/modules/busco/test.yml b/tests/modules/busco/test.yml index b838d9b7..43b810ba 100644 --- a/tests/modules/busco/test.yml +++ b/tests/modules/busco/test.yml @@ -5,32 +5,32 @@ files: - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json contains: - - 'one_line_summary' - - 'input_file' - - 'mode' - - 'dataset' + - "one_line_summary" + - "input_file" + - "mode" + - "dataset" - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.txt contains: - - 'BUSCO version' - - 'The lineage dataset is' - - 'BUSCO was run in mode' - - 'Complete BUSCOs' - - 'Missing BUSCOs' - - 'Dependencies and versions' + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" - path: output/busco/short_summary.specific.bacteroidetes_odb10.genome.fna.json contains: - - 'one_line_summary' - - 'input_file' - - 'mode' - - 'dataset' + - "one_line_summary" + - "input_file" + - "mode" + - "dataset" - path: output/busco/short_summary.specific.bacteroidetes_odb10.genome.fna.txt contains: - - 'BUSCO version' - - 'The lineage dataset is' - - 'BUSCO was run in mode' - - 'Complete BUSCOs' - - 'Missing BUSCOs' - - 'Dependencies and versions' + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt md5sum: e50690742e9ae6abdd2bf99334ff9e12 - path: output/busco/test-bacteroidetes_odb10-busco.batch_summary.txt @@ -45,32 +45,32 @@ files: - path: output/busco/short_summary.specific.bacteria_odb10.genome.fasta.json contains: - - 'one_line_summary' - - 'input_file' - - 'mode' - - 'dataset' + - "one_line_summary" + - "input_file" + - "mode" + - "dataset" - path: output/busco/short_summary.specific.bacteria_odb10.genome.fasta.txt contains: - - 'BUSCO version' - - 'The lineage dataset is' - - 'BUSCO was run in mode' - - 'Complete BUSCOs' - - 'Missing BUSCOs' - - 'Dependencies and versions' + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json contains: - - 'one_line_summary' - - 'input_file' - - 'mode' - - 'dataset' + - "one_line_summary" + - "input_file" + - "mode" + - "dataset" - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.txt contains: - - 'BUSCO version' - - 'The lineage dataset is' - - 'BUSCO was run in mode' - - 'Complete BUSCOs' - - 'Missing BUSCOs' - - 'Dependencies and versions' + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt md5sum: 5360dfe83bec1f5741ee115e53e6b517 - path: output/busco/versions.yml @@ -83,18 +83,18 @@ files: - path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.json contains: - - 'one_line_summary' - - 'input_file' - - 'mode' - - 'dataset' + - "one_line_summary" + - "input_file" + - "mode" + - "dataset" - path: output/busco/short_summary.specific.eukaryota_odb10.genome.fasta.txt contains: - - 'BUSCO version' - - 'The lineage dataset is' - - 'BUSCO was run in mode' - - 'Complete BUSCOs' - - 'Missing BUSCOs' - - 'Dependencies and versions' + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" - path: output/busco/test-eukaryota_odb10-busco.batch_summary.txt md5sum: a70806f99ba5706d7353d3353b3f1d2b - path: output/busco/versions.yml @@ -117,18 +117,18 @@ files: - path: output/busco/short_summary.specific.bacteria_odb10.proteome.fasta.json contains: - - 'one_line_summary' - - 'input_file' - - 'mode' - - 'dataset' + - "one_line_summary" + - "input_file" + - "mode" + - "dataset" - path: output/busco/short_summary.specific.bacteria_odb10.proteome.fasta.txt contains: - - 'BUSCO version' - - 'The lineage dataset is' - - 'BUSCO was run in mode' - - 'Complete BUSCOs' - - 'Missing BUSCOs' - - 'Dependencies and versions' + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt md5sum: fd3b4e30ce74d1fcb95d6286d6e2049f - path: output/busco/versions.yml @@ -141,18 +141,18 @@ files: - path: output/busco/short_summary.specific.bacteria_odb10.test1.contigs.fa.json contains: - - 'one_line_summary' - - 'input_file' - - 'mode' - - 'dataset' + - "one_line_summary" + - "input_file" + - "mode" + - "dataset" - path: output/busco/short_summary.specific.bacteria_odb10.test1.contigs.fa.txt contains: - - 'BUSCO version' - - 'The lineage dataset is' - - 'BUSCO was run in mode' - - 'Complete BUSCOs' - - 'Missing BUSCOs' - - 'Dependencies and versions' + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt md5sum: 9a176cafe66ac0adca89dc34ad2be13f - path: output/busco/versions.yml From 37338ecee30a7210e9a40d993370fd25bddf003d Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 14:00:02 +0200 Subject: [PATCH 426/592] Finished the module --- modules/happy/meta.yml | 12 ++++++++++++ tests/modules/happy/test.yml | 26 +++++++++++++++++++++++--- 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/modules/happy/meta.yml b/modules/happy/meta.yml index 52d98e04..28142d9b 100644 --- a/modules/happy/meta.yml +++ b/modules/happy/meta.yml @@ -42,6 +42,18 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - summary: + type: file + description: A CSV file containing the summary of the benchmarking + pattern: "*.summary.csv" + - extended: + type: file + description: A CSV file containing extended info of the benchmarking + pattern: "*.extended.csv" + - runinfo: + type: file + description: A JSON file containing the run info + pattern: "*.runinfo.json" - versions: type: file description: File containing software versions diff --git a/tests/modules/happy/test.yml b/tests/modules/happy/test.yml index d85d42a2..7dddca17 100644 --- a/tests/modules/happy/test.yml +++ b/tests/modules/happy/test.yml @@ -1,7 +1,27 @@ -- name: happy test_happy - command: nextflow run tests/modules/happy -entry test_happy -c tests/config/nextflow.config +- name: happy test_happy_vcf + command: nextflow run tests/modules/happy -entry test_happy_vcf -c tests/config/nextflow.config tags: - happy files: + - path: output/happy/test.extended.csv + md5sum: ef79c7c789ef4f146ca2e50dafaf22b3 + - path: output/happy/test.runinfo.json + contains: '"name": "hap.py"' + - path: output/happy/test.summary.csv + md5sum: f8aa5d36d3c48dede2f607fd565894ad - path: output/happy/versions.yml - md5sum: ab8944c1b24e55bab311a9d389c75c90 + md5sum: 2c2b8249f9f52194da7f09076dbb5019 + +- name: happy test_happy_gvcf + command: nextflow run tests/modules/happy -entry test_happy_gvcf -c tests/config/nextflow.config + tags: + - happy + files: + - path: output/happy/test.extended.csv + md5sum: 3d5c21b67a259a3f6dcb088d55b86cd3 + - path: output/happy/test.runinfo.json + contains: '"name": "hap.py"' + - path: output/happy/test.summary.csv + md5sum: 03044e9bb5a0c6f0947b7e910fc8a558 + - path: output/happy/versions.yml + md5sum: 75331161af9ec046d045ffcba83abddf From 065a5d6a7f13a50ad7965fdc770df50363bde3d7 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 14:05:21 +0200 Subject: [PATCH 427/592] Fixed a linting issue --- modules/happy/main.nf | 2 +- modules/happy/meta.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/happy/main.nf b/modules/happy/main.nf index 68059dd8..1338686e 100644 --- a/modules/happy/main.nf +++ b/modules/happy/main.nf @@ -25,7 +25,7 @@ process HAPPY { def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - + """ pre.py \\ $args \\ diff --git a/modules/happy/meta.yml b/modules/happy/meta.yml index 28142d9b..aba9410b 100644 --- a/modules/happy/meta.yml +++ b/modules/happy/meta.yml @@ -45,7 +45,7 @@ output: - summary: type: file description: A CSV file containing the summary of the benchmarking - pattern: "*.summary.csv" + pattern: "*.summary.csv" - extended: type: file description: A CSV file containing extended info of the benchmarking @@ -60,4 +60,4 @@ output: pattern: "versions.yml" authors: - - "@nvnieuwk" + - "@nvnieuwk" \ No newline at end of file From 177a7e49f249952d8b3271c454529a768f16af43 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 14:06:42 +0200 Subject: [PATCH 428/592] Fixed a linting issue --- modules/happy/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/happy/meta.yml b/modules/happy/meta.yml index aba9410b..d732df22 100644 --- a/modules/happy/meta.yml +++ b/modules/happy/meta.yml @@ -60,4 +60,4 @@ output: pattern: "versions.yml" authors: - - "@nvnieuwk" \ No newline at end of file + - "@nvnieuwk" From c1393bf999e4e967d24d7ec3d2e864c5d0a856e3 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 14:14:01 +0200 Subject: [PATCH 429/592] Possible fix for the pytest errors? --- tests/modules/happy/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/happy/test.yml b/tests/modules/happy/test.yml index 7dddca17..f5bdef52 100644 --- a/tests/modules/happy/test.yml +++ b/tests/modules/happy/test.yml @@ -6,7 +6,7 @@ - path: output/happy/test.extended.csv md5sum: ef79c7c789ef4f146ca2e50dafaf22b3 - path: output/happy/test.runinfo.json - contains: '"name": "hap.py"' + contains: 'hap.py' - path: output/happy/test.summary.csv md5sum: f8aa5d36d3c48dede2f607fd565894ad - path: output/happy/versions.yml @@ -20,7 +20,7 @@ - path: output/happy/test.extended.csv md5sum: 3d5c21b67a259a3f6dcb088d55b86cd3 - path: output/happy/test.runinfo.json - contains: '"name": "hap.py"' + contains: 'hap.py' - path: output/happy/test.summary.csv md5sum: 03044e9bb5a0c6f0947b7e910fc8a558 - path: output/happy/versions.yml From 505ab038037df6a7d7af1db1cae3354b8f713364 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 14:14:53 +0200 Subject: [PATCH 430/592] fixed a description --- modules/happy/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/happy/meta.yml b/modules/happy/meta.yml index d732df22..6b5b86cf 100644 --- a/modules/happy/meta.yml +++ b/modules/happy/meta.yml @@ -25,7 +25,7 @@ input: pattern: "*.{vcf,vcf.gz}" - query_vcf: type: file - description: VCF file to query + description: VCF/GVCF file to query pattern: "*.{vcf,vcf.gz}" - bed: type: file From 17dbd2bb82093cd6ca1d1439c5c7815eb0b9a2a6 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 14:18:56 +0200 Subject: [PATCH 431/592] Linting issue fixed --- tests/modules/happy/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/happy/test.yml b/tests/modules/happy/test.yml index f5bdef52..937df32e 100644 --- a/tests/modules/happy/test.yml +++ b/tests/modules/happy/test.yml @@ -6,7 +6,7 @@ - path: output/happy/test.extended.csv md5sum: ef79c7c789ef4f146ca2e50dafaf22b3 - path: output/happy/test.runinfo.json - contains: 'hap.py' + contains: hap.py - path: output/happy/test.summary.csv md5sum: f8aa5d36d3c48dede2f607fd565894ad - path: output/happy/versions.yml @@ -20,7 +20,7 @@ - path: output/happy/test.extended.csv md5sum: 3d5c21b67a259a3f6dcb088d55b86cd3 - path: output/happy/test.runinfo.json - contains: 'hap.py' + contains: hap.py - path: output/happy/test.summary.csv md5sum: 03044e9bb5a0c6f0947b7e910fc8a558 - path: output/happy/versions.yml From 583ea138006d8c49d4821bbfaeba81408ff57053 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 14:22:55 +0200 Subject: [PATCH 432/592] Another try to fix the pytest issues --- tests/modules/happy/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/happy/test.yml b/tests/modules/happy/test.yml index 937df32e..c0a34387 100644 --- a/tests/modules/happy/test.yml +++ b/tests/modules/happy/test.yml @@ -6,7 +6,7 @@ - path: output/happy/test.extended.csv md5sum: ef79c7c789ef4f146ca2e50dafaf22b3 - path: output/happy/test.runinfo.json - contains: hap.py + contains: dist - path: output/happy/test.summary.csv md5sum: f8aa5d36d3c48dede2f607fd565894ad - path: output/happy/versions.yml @@ -20,7 +20,7 @@ - path: output/happy/test.extended.csv md5sum: 3d5c21b67a259a3f6dcb088d55b86cd3 - path: output/happy/test.runinfo.json - contains: hap.py + contains: dist - path: output/happy/test.summary.csv md5sum: 03044e9bb5a0c6f0947b7e910fc8a558 - path: output/happy/versions.yml From 5889d6c9233fae612dbce8d333773f1a8b1d47e9 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 14:46:15 +0200 Subject: [PATCH 433/592] Another possible fix for the pytest issues --- tests/modules/happy/test.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/modules/happy/test.yml b/tests/modules/happy/test.yml index c0a34387..9af6cc83 100644 --- a/tests/modules/happy/test.yml +++ b/tests/modules/happy/test.yml @@ -6,7 +6,9 @@ - path: output/happy/test.extended.csv md5sum: ef79c7c789ef4f146ca2e50dafaf22b3 - path: output/happy/test.runinfo.json - contains: dist + contains: + - 'dist' + - 'python_version' - path: output/happy/test.summary.csv md5sum: f8aa5d36d3c48dede2f607fd565894ad - path: output/happy/versions.yml @@ -20,7 +22,9 @@ - path: output/happy/test.extended.csv md5sum: 3d5c21b67a259a3f6dcb088d55b86cd3 - path: output/happy/test.runinfo.json - contains: dist + contains: + - 'dist' + - 'python_version' - path: output/happy/test.summary.csv md5sum: 03044e9bb5a0c6f0947b7e910fc8a558 - path: output/happy/versions.yml From 3c661386728c3552da55db5252ef2bae8f113220 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 14:49:17 +0200 Subject: [PATCH 434/592] Linting issue + removed the contains lines --- tests/modules/happy/test.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/modules/happy/test.yml b/tests/modules/happy/test.yml index 9af6cc83..0fd26e5b 100644 --- a/tests/modules/happy/test.yml +++ b/tests/modules/happy/test.yml @@ -6,9 +6,6 @@ - path: output/happy/test.extended.csv md5sum: ef79c7c789ef4f146ca2e50dafaf22b3 - path: output/happy/test.runinfo.json - contains: - - 'dist' - - 'python_version' - path: output/happy/test.summary.csv md5sum: f8aa5d36d3c48dede2f607fd565894ad - path: output/happy/versions.yml @@ -22,9 +19,6 @@ - path: output/happy/test.extended.csv md5sum: 3d5c21b67a259a3f6dcb088d55b86cd3 - path: output/happy/test.runinfo.json - contains: - - 'dist' - - 'python_version' - path: output/happy/test.summary.csv md5sum: 03044e9bb5a0c6f0947b7e910fc8a558 - path: output/happy/versions.yml From f875aec46b9ab231ab96dfa4bb3b62c53fb821ee Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 15:29:48 +0200 Subject: [PATCH 435/592] Split the module into two parts --- modules/happy/{ => happy}/main.nf | 21 ++----- modules/happy/{ => happy}/meta.yml | 6 +- modules/happy/prepy/main.nf | 41 ++++++++++++++ modules/happy/prepy/meta.yml | 55 +++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/happy/{ => happy}/main.nf | 6 +- .../modules/happy/{ => happy}/nextflow.config | 0 tests/modules/happy/{ => happy}/test.yml | 14 +++-- tests/modules/happy/prepy/main.nf | 37 +++++++++++++ tests/modules/happy/prepy/nextflow.config | 5 ++ tests/modules/happy/prepy/test.yml | 19 +++++++ 11 files changed, 182 insertions(+), 26 deletions(-) rename modules/happy/{ => happy}/main.nf (74%) rename modules/happy/{ => happy}/meta.yml (93%) create mode 100644 modules/happy/prepy/main.nf create mode 100644 modules/happy/prepy/meta.yml rename tests/modules/happy/{ => happy}/main.nf (90%) rename tests/modules/happy/{ => happy}/nextflow.config (100%) rename tests/modules/happy/{ => happy}/test.yml (58%) create mode 100644 tests/modules/happy/prepy/main.nf create mode 100644 tests/modules/happy/prepy/nextflow.config create mode 100644 tests/modules/happy/prepy/test.yml diff --git a/modules/happy/main.nf b/modules/happy/happy/main.nf similarity index 74% rename from modules/happy/main.nf rename to modules/happy/happy/main.nf index 1338686e..1bb99117 100644 --- a/modules/happy/main.nf +++ b/modules/happy/happy/main.nf @@ -1,7 +1,6 @@ -def VERSION_HAP = '0.3.14' -def VERSION_PRE = '0.3.14' +def VERSION = '0.3.14' -process HAPPY { +process HAPPY_HAPPY { tag "$meta.id" label 'process_medium' @@ -23,22 +22,13 @@ process HAPPY { script: def args = task.ext.args ?: '' - def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ - pre.py \\ - $args \\ - -R $bed \\ - --reference $fasta \\ - --threads $task.cpus \\ - $query_vcf \\ - ${prefix}_preprocessed.vcf.gz - hap.py \\ $truth_vcf \\ - ${prefix}_preprocessed.vcf.gz \\ - $args2 \\ + $query_vcf \\ + $args \\ --reference $fasta \\ --threads $task.cpus \\ -R $bed \\ @@ -46,8 +36,7 @@ process HAPPY { cat <<-END_VERSIONS > versions.yml "${task.process}": - hap.py: $VERSION_HAP - pre.py: $VERSION_PRE + hap.py: $VERSION END_VERSIONS """ } diff --git a/modules/happy/meta.yml b/modules/happy/happy/meta.yml similarity index 93% rename from modules/happy/meta.yml rename to modules/happy/happy/meta.yml index 6b5b86cf..8ec762d5 100644 --- a/modules/happy/meta.yml +++ b/modules/happy/happy/meta.yml @@ -1,4 +1,4 @@ -name: "happy" +name: "happy_happy" description: Hap.py is a tool to compare diploid genotypes at haplotype level. Rather than comparing VCF records row by row, hap.py will generate and match alternate sequences in a superlocus. A superlocus is a small region of the genome (sized between 1 and around 1000 bp) that contains one or more variants. keywords: - happy @@ -35,6 +35,10 @@ input: type: file description: FASTA file of the reference genome pattern: "*.{fa,fasta}" + - fasta_fai: + type: file + description: The index of the reference FASTA + pattern: "*.fai" output: - meta: diff --git a/modules/happy/prepy/main.nf b/modules/happy/prepy/main.nf new file mode 100644 index 00000000..936f56ea --- /dev/null +++ b/modules/happy/prepy/main.nf @@ -0,0 +1,41 @@ +def VERSION = '0.3.14' + +process HAPPY_PREPY { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::hap.py=0.3.14" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/hap.py:0.3.14--py27h5c5a3ab_0': + 'quay.io/biocontainers/hap.py:0.3.14--py27h5c5a3ab_0' }" + + input: + tuple val(meta), path(vcf), path(bed) + tuple path(fasta), path(fasta_fai) + + output: + tuple val(meta), path('*.vcf.gz') , emit: preprocessed_vcf + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + pre.py \\ + $args \\ + -R $bed \\ + --reference $fasta \\ + --threads $task.cpus \\ + $vcf \\ + ${prefix}.vcf.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pre.py: $VERSION + END_VERSIONS + """ +} diff --git a/modules/happy/prepy/meta.yml b/modules/happy/prepy/meta.yml new file mode 100644 index 00000000..7e27a652 --- /dev/null +++ b/modules/happy/prepy/meta.yml @@ -0,0 +1,55 @@ +name: "happy_prepy" +description: Pre.py is a preprocessing tool made to preprocess VCF files for Hap.py +keywords: + - happy + - benchmark + - haplotype +tools: + - "happy": + description: "Haplotype VCF comparison tools" + homepage: "https://www.illumina.com/products/by-type/informatics-products/basespace-sequence-hub/apps/hap-py-benchmarking.html" + documentation: "https://github.com/Illumina/hap.py" + tool_dev_url: "https://github.com/Illumina/hap.py" + doi: "" + licence: "['BSD-2-clause']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: VCF file to preprocess + pattern: "*.{vcf,vcf.gz}" + - bed: + type: file + description: BED file + pattern: "*.bed" + - fasta: + type: file + description: FASTA file of the reference genome + pattern: "*.{fa,fasta}" + - fasta_fai: + type: file + description: The index of the reference FASTA + pattern: "*.fai" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: A preprocessed VCF file + pattern: "*.vcf.gz" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@nvnieuwk" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index c14ffc8e..4f85ba7d 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -895,6 +895,10 @@ happy: - modules/happy/** - tests/modules/happy/** +happy/prepy: + - modules/happy/prepy/** + - tests/modules/happy/prepy/** + hicap: - modules/hicap/** - tests/modules/hicap/** diff --git a/tests/modules/happy/main.nf b/tests/modules/happy/happy/main.nf similarity index 90% rename from tests/modules/happy/main.nf rename to tests/modules/happy/happy/main.nf index 0ce23b50..515a657b 100644 --- a/tests/modules/happy/main.nf +++ b/tests/modules/happy/happy/main.nf @@ -2,7 +2,7 @@ nextflow.enable.dsl = 2 -include { HAPPY } from '../../../modules/happy/main.nf' +include { HAPPY_HAPPY } from '../../../../modules/happy/happy/main.nf' workflow test_happy_vcf { @@ -18,7 +18,7 @@ workflow test_happy_vcf { file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) ]) - HAPPY ( input, fasta ) + HAPPY_HAPPY ( input, fasta ) } workflow test_happy_gvcf { @@ -35,5 +35,5 @@ workflow test_happy_gvcf { file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) ]) - HAPPY ( input, fasta ) + HAPPY_HAPPY ( input, fasta ) } diff --git a/tests/modules/happy/nextflow.config b/tests/modules/happy/happy/nextflow.config similarity index 100% rename from tests/modules/happy/nextflow.config rename to tests/modules/happy/happy/nextflow.config diff --git a/tests/modules/happy/test.yml b/tests/modules/happy/happy/test.yml similarity index 58% rename from tests/modules/happy/test.yml rename to tests/modules/happy/happy/test.yml index 0fd26e5b..89a1f012 100644 --- a/tests/modules/happy/test.yml +++ b/tests/modules/happy/happy/test.yml @@ -1,7 +1,8 @@ -- name: happy test_happy_vcf - command: nextflow run tests/modules/happy -entry test_happy_vcf -c tests/config/nextflow.config +- name: happy happy test_happy_vcf + command: nextflow run tests/modules/happy/happy -entry test_happy_vcf -c tests/config/nextflow.config tags: - happy + - happy/happy files: - path: output/happy/test.extended.csv md5sum: ef79c7c789ef4f146ca2e50dafaf22b3 @@ -9,12 +10,13 @@ - path: output/happy/test.summary.csv md5sum: f8aa5d36d3c48dede2f607fd565894ad - path: output/happy/versions.yml - md5sum: 2c2b8249f9f52194da7f09076dbb5019 + md5sum: 82243bf6dbdc71aa63211ee2a89f47f2 -- name: happy test_happy_gvcf - command: nextflow run tests/modules/happy -entry test_happy_gvcf -c tests/config/nextflow.config +- name: happy happy test_happy_gvcf + command: nextflow run tests/modules/happy/happy -entry test_happy_gvcf -c tests/config/nextflow.config tags: - happy + - happy/happy files: - path: output/happy/test.extended.csv md5sum: 3d5c21b67a259a3f6dcb088d55b86cd3 @@ -22,4 +24,4 @@ - path: output/happy/test.summary.csv md5sum: 03044e9bb5a0c6f0947b7e910fc8a558 - path: output/happy/versions.yml - md5sum: 75331161af9ec046d045ffcba83abddf + md5sum: 551fa216952d6f5de78e6e453b92aaab diff --git a/tests/modules/happy/prepy/main.nf b/tests/modules/happy/prepy/main.nf new file mode 100644 index 00000000..0b511104 --- /dev/null +++ b/tests/modules/happy/prepy/main.nf @@ -0,0 +1,37 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { HAPPY_PREPY } from '../../../../modules/happy/prepy/main.nf' + +workflow test_happy_prepy_vcf { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_genome21_indels_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + ] + + fasta = Channel.value([ + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + ]) + + HAPPY_PREPY ( input, fasta ) +} + +workflow test_happy_prepy_gvcf { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + ] + + fasta = Channel.value([ + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + ]) + + HAPPY_PREPY ( input, fasta ) +} diff --git a/tests/modules/happy/prepy/nextflow.config b/tests/modules/happy/prepy/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/happy/prepy/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/happy/prepy/test.yml b/tests/modules/happy/prepy/test.yml new file mode 100644 index 00000000..a0a45c38 --- /dev/null +++ b/tests/modules/happy/prepy/test.yml @@ -0,0 +1,19 @@ +- name: happy prepy test_happy_prepy_vcf + command: nextflow run tests/modules/happy/prepy -entry test_happy_prepy_vcf -c tests/config/nextflow.config + tags: + - happy/prepy + - happy + files: + - path: output/happy/test.vcf.gz + - path: output/happy/versions.yml + md5sum: 814d20f1f29f23a3d21012748a5d6393 + +- name: happy prepy test_happy_prepy_gvcf + command: nextflow run tests/modules/happy/prepy -entry test_happy_prepy_gvcf -c tests/config/nextflow.config + tags: + - happy/prepy + - happy + files: + - path: output/happy/test.vcf.gz + - path: output/happy/versions.yml + md5sum: 970a54de46e68ef6d5228a26eaa4c8e7 From 42bdc5471e1591ba6c8272dcd8a955ea21fec2e3 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 15:40:34 +0200 Subject: [PATCH 436/592] Changed the pytest location of happy --- tests/config/pytest_modules.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 4f85ba7d..32a28477 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -891,9 +891,9 @@ hamronization/summarize: - modules/hamronization/summarize/** - tests/modules/hamronization/summarize/** -happy: - - modules/happy/** - - tests/modules/happy/** +happy/happy: + - modules/happy/happy/** + - tests/modules/happy/happy/** happy/prepy: - modules/happy/prepy/** From 6b8ca501ed2d20e7d021f56cb6b15406cc4e584c Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Wed, 4 May 2022 16:34:52 +0200 Subject: [PATCH 437/592] fixing suggestions from PR --- modules/krona/ktimporttaxonomy/main.nf | 4 ++-- modules/krona/{kronadb => ktupdatetaxonomy}/main.nf | 4 ++-- modules/krona/{kronadb => ktupdatetaxonomy}/meta.yml | 0 tests/config/pytest_modules.yml | 6 +++--- tests/config/test_data.config | 1 + tests/modules/krona/kronadb/main.nf | 9 --------- tests/modules/krona/kronadb/test.yml | 7 ------- tests/modules/krona/ktimporttaxonomy/main.nf | 12 ++++++------ tests/modules/krona/ktupdatetaxonomy/main.nf | 9 +++++++++ .../{kronadb => ktupdatetaxonomy}/nextflow.config | 0 tests/modules/krona/ktupdatetaxonomy/test.yml | 7 +++++++ 11 files changed, 30 insertions(+), 29 deletions(-) rename modules/krona/{kronadb => ktupdatetaxonomy}/main.nf (93%) rename modules/krona/{kronadb => ktupdatetaxonomy}/meta.yml (100%) delete mode 100644 tests/modules/krona/kronadb/main.nf delete mode 100644 tests/modules/krona/kronadb/test.yml create mode 100644 tests/modules/krona/ktupdatetaxonomy/main.nf rename tests/modules/krona/{kronadb => ktupdatetaxonomy}/nextflow.config (100%) create mode 100644 tests/modules/krona/ktupdatetaxonomy/test.yml diff --git a/modules/krona/ktimporttaxonomy/main.nf b/modules/krona/ktimporttaxonomy/main.nf index 6a9fae89..bc78c6ba 100644 --- a/modules/krona/ktimporttaxonomy/main.nf +++ b/modules/krona/ktimporttaxonomy/main.nf @@ -24,9 +24,9 @@ process KRONA_KTIMPORTTAXONOMY { def args = task.ext.args ?: '' """ ktImportTaxonomy \\ - "$report" \\ $args \\ - -tax taxonomy + -tax taxonomy/ \\ + "$report" cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/krona/kronadb/main.nf b/modules/krona/ktupdatetaxonomy/main.nf similarity index 93% rename from modules/krona/kronadb/main.nf rename to modules/krona/ktupdatetaxonomy/main.nf index 3ba745a2..8326f219 100644 --- a/modules/krona/kronadb/main.nf +++ b/modules/krona/ktupdatetaxonomy/main.nf @@ -1,6 +1,6 @@ def VERSION='2.7.1' // Version information not provided by tool on CLI -process KRONA_KRONADB { +process KRONA_KTUPDATETAXONOMY { label 'process_low' conda (params.enable_conda ? "bioconda::krona=2.7.1" : null) @@ -20,7 +20,7 @@ process KRONA_KRONADB { """ ktUpdateTaxonomy.sh \\ $args \\ - taxonomy + taxonomy/ cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/krona/kronadb/meta.yml b/modules/krona/ktupdatetaxonomy/meta.yml similarity index 100% rename from modules/krona/kronadb/meta.yml rename to modules/krona/ktupdatetaxonomy/meta.yml diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index dcf85ba0..6b649a92 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1046,9 +1046,9 @@ kraken2/kraken2: - modules/untar/** - tests/modules/kraken2/kraken2/** -krona/kronadb: - - modules/krona/kronadb/** - - tests/modules/krona/kronadb/** +krona/ktupdatetaxonomy: + - modules/krona/ktupdatetaxonomy/** + - tests/modules/krona/ktupdatetaxonomy/** krona/ktimporttaxonomy: - modules/krona/ktimporttaxonomy/** diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 9757a29d..e9a5f4ab 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -113,6 +113,7 @@ params { 'metagenome' { classified_reads_assignment = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.reads.txt" kraken_report = "${test_data_dir}/genomics/sarscov2/metagenome/test_1.kraken2.report.txt" + krona_taxonomy = "${test_data_dir}/genomics/sarscov2/metagenome/krona_taxonomy.tab" } } 'homo_sapiens' { diff --git a/tests/modules/krona/kronadb/main.nf b/tests/modules/krona/kronadb/main.nf deleted file mode 100644 index ed955854..00000000 --- a/tests/modules/krona/kronadb/main.nf +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { KRONA_KRONADB } from '../../../../modules/krona/kronadb/main.nf' - -workflow test_krona_kronadb { - KRONA_KRONADB ( ) -} diff --git a/tests/modules/krona/kronadb/test.yml b/tests/modules/krona/kronadb/test.yml deleted file mode 100644 index 1d61640f..00000000 --- a/tests/modules/krona/kronadb/test.yml +++ /dev/null @@ -1,7 +0,0 @@ -- name: krona kronadb test_krona_kronadb - command: nextflow run ./tests/modules/krona/kronadb -entry test_krona_kronadb -c ./tests/config/nextflow.config -c ./tests/modules/krona/kronadb/nextflow.config - tags: - - krona - - krona/kronadb - files: - - path: output/krona/taxonomy/taxonomy.tab diff --git a/tests/modules/krona/ktimporttaxonomy/main.nf b/tests/modules/krona/ktimporttaxonomy/main.nf index f8e9f485..7b39ee82 100644 --- a/tests/modules/krona/ktimporttaxonomy/main.nf +++ b/tests/modules/krona/ktimporttaxonomy/main.nf @@ -2,8 +2,8 @@ nextflow.enable.dsl = 2 -include { KRONA_KTIMPORTTAXONOMY as KRONA_TAXONOMY_READS } from '../../../../modules/krona/ktimporttaxonomy/main.nf' -include { KRONA_KTIMPORTTAXONOMY as KRONA_TAXONOMY_REPORT } from '../../../../modules/krona/ktimporttaxonomy/main.nf' +include { KRONA_KTIMPORTTAXONOMY as KRONA_KTIMPORTTAXONOMY_READS } from '../../../../modules/krona/ktimporttaxonomy/main.nf' +include { KRONA_KTIMPORTTAXONOMY as KRONA_KTIMPORTTAXONOMY_REPORT } from '../../../../modules/krona/ktimporttaxonomy/main.nf' workflow test_krona_ktimporttaxonomy_reads { @@ -11,9 +11,9 @@ workflow test_krona_ktimporttaxonomy_reads { [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['metagenome']['classified_reads_assignment'], checkIfExists: true) ] - taxonomy = file("https://raw.githubusercontent.com/lescai/test-datasets/modules/data/genomics/sarscov2/metagenome/krona_taxonomy.tab") + taxonomy = file(params.test_data['sarscov2']['metagenome']['krona_taxonomy'], checkIfExists: true) - KRONA_TAXONOMY_READS ( input, taxonomy ) + KRONA_KTIMPORTTAXONOMY_READS ( input, taxonomy ) } workflow test_krona_ktimporttaxonomy_report { @@ -22,7 +22,7 @@ workflow test_krona_ktimporttaxonomy_report { [ id:'test', single_end:false ], // meta map file(params.test_data['sarscov2']['metagenome']['kraken_report'], checkIfExists: true) ] - taxonomy = file("https://raw.githubusercontent.com/lescai/test-datasets/modules/data/genomics/sarscov2/metagenome/krona_taxonomy.tab") + taxonomy = file(params.test_data['sarscov2']['metagenome']['krona_taxonomy'], checkIfExists: true) - KRONA_TAXONOMY_REPORT ( input, taxonomy ) + KRONA_KTIMPORTTAXONOMY_REPORT ( input, taxonomy ) } diff --git a/tests/modules/krona/ktupdatetaxonomy/main.nf b/tests/modules/krona/ktupdatetaxonomy/main.nf new file mode 100644 index 00000000..d2d18f31 --- /dev/null +++ b/tests/modules/krona/ktupdatetaxonomy/main.nf @@ -0,0 +1,9 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { KRONA_KTUPDATETAXONOMY } from '../../../../modules/krona/ktupdatetaxonomy/main.nf' + +workflow test_krona_ktupdatetaxonomy { + KRONA_KTUPDATETAXONOMY ( ) +} diff --git a/tests/modules/krona/kronadb/nextflow.config b/tests/modules/krona/ktupdatetaxonomy/nextflow.config similarity index 100% rename from tests/modules/krona/kronadb/nextflow.config rename to tests/modules/krona/ktupdatetaxonomy/nextflow.config diff --git a/tests/modules/krona/ktupdatetaxonomy/test.yml b/tests/modules/krona/ktupdatetaxonomy/test.yml new file mode 100644 index 00000000..b50fe8f2 --- /dev/null +++ b/tests/modules/krona/ktupdatetaxonomy/test.yml @@ -0,0 +1,7 @@ +- name: krona ktupdatetaxonomy test_krona_ktupdatetaxonomy + command: nextflow run ./tests/modules/krona/ktupdatetaxonomy -entry test_krona_ktupdatetaxonomy -c ./tests/config/nextflow.config -c ./tests/modules/krona/ktupdatetaxonomy/nextflow.config + tags: + - krona + - krona/ktupdatetaxonomy + files: + - path: output/krona/taxonomy/taxonomy.tab From 8b1711d8a19696df101c73df2fa11f8994941823 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Wed, 4 May 2022 16:38:10 +0200 Subject: [PATCH 438/592] recovering old module name --- modules/krona/kronadb/main.nf | 30 +++++++++++++++++++++++++ modules/krona/kronadb/meta.yml | 30 +++++++++++++++++++++++++ modules/krona/ktupdatetaxonomy/meta.yml | 2 +- 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 modules/krona/kronadb/main.nf create mode 100644 modules/krona/kronadb/meta.yml diff --git a/modules/krona/kronadb/main.nf b/modules/krona/kronadb/main.nf new file mode 100644 index 00000000..8326f219 --- /dev/null +++ b/modules/krona/kronadb/main.nf @@ -0,0 +1,30 @@ +def VERSION='2.7.1' // Version information not provided by tool on CLI + +process KRONA_KTUPDATETAXONOMY { + label 'process_low' + + conda (params.enable_conda ? "bioconda::krona=2.7.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/krona:2.7.1--pl526_5' : + 'quay.io/biocontainers/krona:2.7.1--pl526_5' }" + + output: + path 'taxonomy/taxonomy.tab', emit: db + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + ktUpdateTaxonomy.sh \\ + $args \\ + taxonomy/ + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + krona: $VERSION + END_VERSIONS + """ +} diff --git a/modules/krona/kronadb/meta.yml b/modules/krona/kronadb/meta.yml new file mode 100644 index 00000000..2a12aaaf --- /dev/null +++ b/modules/krona/kronadb/meta.yml @@ -0,0 +1,30 @@ +name: krona_kronadb +description: KronaTools Update Taxonomy downloads a taxonomy database +keywords: + - database + - taxonomy + - krona +tools: + - krona: + description: Krona Tools is a set of scripts to create Krona charts from several Bioinformatics tools as well as from text and XML files. + homepage: https://github.com/marbl/Krona/wiki/KronaTools + documentation: https://github.com/marbl/Krona/wiki/Installing + tool_dev_url: + doi: https://doi.org/10.1186/1471-2105-12-385 + licence: + +input: + - none: There is no input. This module downloads a pre-built taxonomy database for use with Krona Tools. + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - db: + type: file + description: A TAB separated file that contains a taxonomy database. + pattern: "*.{tab}" + +authors: + - "@mjakobs" diff --git a/modules/krona/ktupdatetaxonomy/meta.yml b/modules/krona/ktupdatetaxonomy/meta.yml index 2a12aaaf..1e0d6299 100644 --- a/modules/krona/ktupdatetaxonomy/meta.yml +++ b/modules/krona/ktupdatetaxonomy/meta.yml @@ -1,4 +1,4 @@ -name: krona_kronadb +name: krona_ktupdatetaxonomy description: KronaTools Update Taxonomy downloads a taxonomy database keywords: - database From e7b92a7616f653272ce9fb0e443921b37c915e79 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Wed, 4 May 2022 16:43:22 +0200 Subject: [PATCH 439/592] fixing md5sum changes --- tests/modules/krona/ktimporttaxonomy/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/test.yml b/tests/modules/krona/ktimporttaxonomy/test.yml index 5dc02c58..ffcb5669 100644 --- a/tests/modules/krona/ktimporttaxonomy/test.yml +++ b/tests/modules/krona/ktimporttaxonomy/test.yml @@ -8,7 +8,7 @@ contains: - "DOCTYPE html PUBLIC" - path: output/krona/versions.yml - md5sum: c6823bf3822cf3714fe9f2073ee76d60 + md5sum: 660a8c151191bf4c63bd96db2c7fe503 - name: krona ktimporttaxonomy test_krona_ktimporttaxonomy_report command: nextflow run tests/modules/krona/ktimporttaxonomy -entry test_krona_ktimporttaxonomy_report -c tests/config/nextflow.config @@ -20,4 +20,4 @@ contains: - "DOCTYPE html PUBLIC" - path: output/krona/versions.yml - md5sum: 06b76d9a7602d63fec182e195cc16a76 + md5sum: 8a593c16bb2d4132638fb0fc342fe2b7 From 3c076024435704be6ed13a0fa715a4c11d1c8825 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Wed, 4 May 2022 16:51:09 +0200 Subject: [PATCH 440/592] Added the version.yml --- modules/rtgtools/vcfeval/main.nf | 67 +++++++++++++++++++ modules/rtgtools/vcfeval/meta.yml | 51 ++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/rtgtools/vcfeval/main.nf | 15 +++++ .../modules/rtgtools/vcfeval/nextflow.config | 5 ++ tests/modules/rtgtools/vcfeval/test.yml | 14 ++++ 6 files changed, 156 insertions(+) create mode 100644 modules/rtgtools/vcfeval/main.nf create mode 100644 modules/rtgtools/vcfeval/meta.yml create mode 100644 tests/modules/rtgtools/vcfeval/main.nf create mode 100644 tests/modules/rtgtools/vcfeval/nextflow.config create mode 100644 tests/modules/rtgtools/vcfeval/test.yml diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf new file mode 100644 index 00000000..4fd8aa4b --- /dev/null +++ b/modules/rtgtools/vcfeval/main.nf @@ -0,0 +1,67 @@ +// TODO nf-core: If in doubt look at other nf-core/modules to see how we are doing things! :) +// https://github.com/nf-core/modules/tree/master/modules +// You can also ask for help via your pull request or on the #modules channel on the nf-core Slack workspace: +// https://nf-co.re/join +// TODO nf-core: A module file SHOULD only define input and output files as command-line parameters. +// All other parameters MUST be provided using the "task.ext" directive, see here: +// https://www.nextflow.io/docs/latest/process.html#ext +// where "task.ext" is a string. +// Any parameters that need to be evaluated in the context of a particular sample +// e.g. single-end/paired-end data MUST also be defined and evaluated appropriately. +// TODO nf-core: Software that can be piped together SHOULD be added to separate module files +// unless there is a run-time, storage advantage in implementing in this way +// e.g. it's ok to have a single module for bwa to output BAM instead of SAM: +// bwa mem | samtools view -B -T ref.fasta +// TODO nf-core: Optional inputs are not currently supported by Nextflow. However, using an empty +// list (`[]`) instead of a file can be used to work around this issue. + +process RTGTOOLS_VCFEVAL { + tag "$meta.id" + label 'process_medium' + + // TODO nf-core: List required Conda package(s). + // Software MUST be pinned to channel (i.e. "bioconda"), version (i.e. "1.10"). + // For Conda, the build (i.e. "h9402c20_2") must be EXCLUDED to support installation on different operating systems. + // TODO nf-core: See section in main README for further information regarding finding and adding container addresses to the section below. + conda (params.enable_conda ? "bioconda::rtg-tools=3.12.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/rtg-tools:3.12.1--hdfd78af_0': + 'quay.io/biocontainers/rtg-tools:3.12.1--hdfd78af_0' }" + + input: + // TODO nf-core: Where applicable all sample-specific information e.g. "id", "single_end", "read_group" + // MUST be provided as an input via a Groovy Map called "meta". + // This information may not be required in some instances e.g. indexing reference genome files: + // https://github.com/nf-core/modules/blob/master/modules/bwa/index/main.nf + // TODO nf-core: Where applicable please provide/convert compressed files as input/output + // e.g. "*.fastq.gz" and NOT "*.fastq", "*.bam" and NOT "*.sam" etc. + tuple val(meta), path(bam) + + output: + // TODO nf-core: Named file extensions MUST be emitted for ALL output channels + tuple val(meta), path("*.bam"), emit: bam + // TODO nf-core: List additional required output channels/values here + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + // TODO nf-core: Where possible, a command MUST be provided to obtain the version number of the software e.g. 1.10 + // If the software is unable to output a version number on the command-line then it can be manually specified + // e.g. https://github.com/nf-core/modules/blob/master/modules/homer/annotatepeaks/main.nf + // Each software used MUST provide the software name and version number in the YAML version file (versions.yml) + // TODO nf-core: It MUST be possible to pass additional parameters to the tool as a command-line string via the "task.ext.args" directive + // TODO nf-core: If the tool supports multi-threading then you MUST provide the appropriate parameter + // using the Nextflow "task" variable e.g. "--threads $task.cpus" + // TODO nf-core: Please replace the example samtools command below with your module's command + // TODO nf-core: Please indent the command appropriately (4 spaces!!) to help with readability ;) + """ + cat <<-END_VERSIONS > versions.yml + "${task.process}": + rtgtools: \$(echo \$(rtg version | head -n 1 | awk '{print \$4}')) + END_VERSIONS + """ +} diff --git a/modules/rtgtools/vcfeval/meta.yml b/modules/rtgtools/vcfeval/meta.yml new file mode 100644 index 00000000..512a7734 --- /dev/null +++ b/modules/rtgtools/vcfeval/meta.yml @@ -0,0 +1,51 @@ +name: "rtgtools_vcfeval" +## TODO nf-core: Add a description of the module and list keywords +description: write your description here +keywords: + - sort +tools: + - "rtgtools": + ## TODO nf-core: Add a description and other details for the software below + description: "RealTimeGenomics Tools -- Utilities for accurate VCF comparison and manipulation" + homepage: "None" + documentation: "None" + tool_dev_url: "None" + doi: "" + licence: "['BSD']" + +## TODO nf-core: Add a description of all of the variables used as input +input: + # Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + # + ## TODO nf-core: Delete / customise this example input + - bam: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +## TODO nf-core: Add a description of all of the variables used as output +output: + #Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + # + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + ## TODO nf-core: Delete / customise this example output + - bam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +authors: + - "@nvnieuwk" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 32a28477..f702deda 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1591,6 +1591,10 @@ rseqc/tin: - modules/rseqc/tin/** - tests/modules/rseqc/tin/** +rtgtools/vcfeval: + - modules/rtgtools/vcfeval/** + - tests/modules/rtgtools/vcfeval/** + salmon/index: - modules/salmon/index/** - tests/modules/salmon/index/** diff --git a/tests/modules/rtgtools/vcfeval/main.nf b/tests/modules/rtgtools/vcfeval/main.nf new file mode 100644 index 00000000..1a4297fc --- /dev/null +++ b/tests/modules/rtgtools/vcfeval/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { RTGTOOLS_VCFEVAL } from '../../../../modules/rtgtools/vcfeval/main.nf' + +workflow test_rtgtools_vcfeval { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + RTGTOOLS_VCFEVAL ( input ) +} diff --git a/tests/modules/rtgtools/vcfeval/nextflow.config b/tests/modules/rtgtools/vcfeval/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/rtgtools/vcfeval/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml new file mode 100644 index 00000000..862f4acd --- /dev/null +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -0,0 +1,14 @@ +## TODO nf-core: Please run the following command to build this file: +# nf-core modules create-test-yml rtgtools/vcfeval +- name: "rtgtools vcfeval" + command: nextflow run ./tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval -c ./tests/config/nextflow.config -c ./tests/modules/rtgtools/vcfeval/nextflow.config + tags: + - "rtgtools" + # + - "rtgtools/vcfeval" + # + files: + - path: "output/rtgtools/test.bam" + md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/rtgtools/versions.yml + md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b From 38faf040ecbae67abbc4d26623f30b1a9b763f2e Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Wed, 4 May 2022 16:54:15 +0200 Subject: [PATCH 441/592] missing change in ext.args config --- tests/modules/krona/ktimporttaxonomy/nextflow.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/krona/ktimporttaxonomy/nextflow.config b/tests/modules/krona/ktimporttaxonomy/nextflow.config index 3f35bfc2..fb4d86f5 100644 --- a/tests/modules/krona/ktimporttaxonomy/nextflow.config +++ b/tests/modules/krona/ktimporttaxonomy/nextflow.config @@ -2,11 +2,11 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: KRONA_TAXONOMY_READS { + withName: KRONA_KTIMPORTTAXONOMY_READS { ext.args = '-t 3' } - withName: KRONA_TAXONOMY_REPORT { + withName: KRONA_KTIMPORTTAXONOMY_REPORT { ext.args = '-m 3 -t 5' } From a6086f549d1e10627ed5caa26f8e8d6485125869 Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Wed, 4 May 2022 17:28:24 +0200 Subject: [PATCH 442/592] recovered process name --- modules/krona/kronadb/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/krona/kronadb/main.nf b/modules/krona/kronadb/main.nf index 8326f219..eaab43f0 100644 --- a/modules/krona/kronadb/main.nf +++ b/modules/krona/kronadb/main.nf @@ -1,6 +1,6 @@ def VERSION='2.7.1' // Version information not provided by tool on CLI -process KRONA_KTUPDATETAXONOMY { +process KRONA_KRONADB { label 'process_low' conda (params.enable_conda ? "bioconda::krona=2.7.1" : null) From ec5bada3fc9aa2bf7cbce711f870139f9a649b51 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Wed, 4 May 2022 20:55:16 +0200 Subject: [PATCH 443/592] Update modules/motus/downloaddb/meta.yml --- modules/motus/downloaddb/meta.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/motus/downloaddb/meta.yml b/modules/motus/downloaddb/meta.yml index 2d363cb1..416f6ba8 100644 --- a/modules/motus/downloaddb/meta.yml +++ b/modules/motus/downloaddb/meta.yml @@ -7,6 +7,8 @@ keywords: - taxonomic profiling - database - download + - database + - download tools: - "motus": description: "The mOTU profiler is a computational tool that estimates relative taxonomic abundance of known and currently unknown microbial community members using metagenomic shotgun sequencing data." From e9c82a5f48fd4801f56854ab7e68c737721155c0 Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Wed, 4 May 2022 15:29:06 -0400 Subject: [PATCH 444/592] Update modules/motus/downloaddb/meta.yml Co-authored-by: James A. Fellows Yates --- modules/motus/downloaddb/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/meta.yml b/modules/motus/downloaddb/meta.yml index 416f6ba8..1d6b265b 100644 --- a/modules/motus/downloaddb/meta.yml +++ b/modules/motus/downloaddb/meta.yml @@ -20,7 +20,7 @@ tools: input: - motus_downloaddb: - type: file + type: directory description: | the mOTUs downloadDB script source file pattern: "downloadDB.py" From 29ee72c693fc271943a9cc719e856cbb806b925c Mon Sep 17 00:00:00 2001 From: JIANHONG OU Date: Wed, 4 May 2022 15:37:12 -0400 Subject: [PATCH 445/592] update meta.yml and remove the cleanup step. --- modules/motus/downloaddb/main.nf | 2 -- modules/motus/downloaddb/meta.yml | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/motus/downloaddb/main.nf b/modules/motus/downloaddb/main.nf index 20dae83c..317624b5 100644 --- a/modules/motus/downloaddb/main.nf +++ b/modules/motus/downloaddb/main.nf @@ -27,8 +27,6 @@ process MOTUS_DOWNLOADDB { python ${software} \\ $args \\ -t $task.cpus - ## clean up - rm ${software} ## mOTUs version number is not available from command line. ## mOTUs save the version number in index database folder. diff --git a/modules/motus/downloaddb/meta.yml b/modules/motus/downloaddb/meta.yml index 1d6b265b..a4759128 100644 --- a/modules/motus/downloaddb/meta.yml +++ b/modules/motus/downloaddb/meta.yml @@ -7,8 +7,6 @@ keywords: - taxonomic profiling - database - download - - database - - download tools: - "motus": description: "The mOTU profiler is a computational tool that estimates relative taxonomic abundance of known and currently unknown microbial community members using metagenomic shotgun sequencing data." @@ -22,7 +20,9 @@ input: - motus_downloaddb: type: directory description: | - the mOTUs downloadDB script source file + The mOTUs downloadDB script source file. + It is the source file installed or + remote source in github such as https://raw.githubusercontent.com/motu-tool/mOTUs/master/motus/downloadDB.py pattern: "downloadDB.py" output: From 6393a085c5fcea11963774c041808df169907487 Mon Sep 17 00:00:00 2001 From: "James A. Fellows Yates" Date: Thu, 5 May 2022 08:23:51 +0200 Subject: [PATCH 446/592] Apply suggestions from code review --- modules/motus/downloaddb/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/motus/downloaddb/meta.yml b/modules/motus/downloaddb/meta.yml index a4759128..64df5ee0 100644 --- a/modules/motus/downloaddb/meta.yml +++ b/modules/motus/downloaddb/meta.yml @@ -32,7 +32,7 @@ output: pattern: "versions.yml" - db: type: directory - description: The mOTUs database + description: The mOTUs database directory pattern: "db_mOTU" authors: From be8ce6de2ae833802a44b9c2b3991dbb56eb43a4 Mon Sep 17 00:00:00 2001 From: ljmesi <37740329+ljmesi@users.noreply.github.com> Date: Thu, 5 May 2022 08:32:45 +0200 Subject: [PATCH 447/592] Remove variable md5sum from the tests --- tests/modules/samtools/bam2fq/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/modules/samtools/bam2fq/test.yml b/tests/modules/samtools/bam2fq/test.yml index 9d641e4a..4f9472e5 100644 --- a/tests/modules/samtools/bam2fq/test.yml +++ b/tests/modules/samtools/bam2fq/test.yml @@ -5,7 +5,6 @@ - samtools files: - path: output/samtools/test_interleaved.fq.gz - md5sum: 7290d2d8dbef0fa57c0e2f28b5db1bf8 - path: output/samtools/versions.yml md5sum: 4973eac1b6a8f090d5fcd4456d65a894 From 6a7aec8b41dc77d6c823e1a321208d58fc992427 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Thu, 5 May 2022 10:22:02 +0200 Subject: [PATCH 448/592] Remove prokka test workflow --- modules/antismash/antismashlite/main.nf | 27 ------- tests/modules/antismash/antismashlite/main.nf | 47 ------------ .../modules/antismash/antismashlite/test.yml | 74 +------------------ 3 files changed, 3 insertions(+), 145 deletions(-) diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf index a4998be6..f6f8a30d 100644 --- a/modules/antismash/antismashlite/main.nf +++ b/modules/antismash/antismashlite/main.nf @@ -64,31 +64,4 @@ process ANTISMASH_ANTISMASHLITE { antismash-lite: \$(antismash --version | sed 's/antiSMASH //') END_VERSIONS """ - - stub: - """ - mkdir ${prefix} - touch ${prefix}/clusterblast/stub_c.stub.txt - touch ${prefix}/css/stub.css - touch ${prefix}/images - touch ${prefix}/js/stub.js - touch ${prefix}/knownclusterblast/regionstub/ctg.stub.html - touch ${prefix}/knownclusterblast/stub._c.stub.txt - touch ${prefix}/svg/clusterblast.stub.svg - touch ${prefix}/svg/knownclusterblast.stub.svg - touch ${prefix}/stub.gbk - touch ${prefix}/stub.json - touch ${prefix}/stub.log - touch ${prefix}/stub.zip - touch ${prefix}/stub.region.stub.gbk - touch ${prefix}/clusterblastoutput.txt - touch ${prefix}/index.html - touch ${prefix}/knownclusterblastoutput.txt - touch ${prefix}/regions.js - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - antismash-lite: \$(antismash --version | sed 's/antiSMASH //') - END_VERSIONS - """ } diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index 2ef4430f..a625a0c1 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -2,30 +2,11 @@ nextflow.enable.dsl = 2 -include { GUNZIP } from '../../../modules/gunzip/main.nf' include { UNTAR as UNTAR1 } from '../../../../modules/untar/main.nf' include { UNTAR as UNTAR2 } from '../../../../modules/untar/main.nf' include { UNTAR as UNTAR3 } from '../../../../modules/untar/main.nf' include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/antismash/antismashlitedownloaddatabases/main.nf' include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' -include { PROKKA } from '../../../modules/prokka/main.nf' - -process STUB_ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES { - input: - path database_css - path database_detection - path database_modules - - output: - path("antismash_db") , emit: database - path("antismash_dir"), emit: antismash_dir - - stub: - """ - mkdir antismash_db - mkdir antismash_dir - """ -} workflow test_antismashlite { input_genome = [ @@ -53,31 +34,3 @@ workflow test_antismashlite { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) ANTISMASH_ANTISMASHLITE ( input_genome, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir ) } - -workflow test_prokka_antismashlite { - input_gunzip = [ [ id:'test' ], // meta map - file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) ] - - input_antismash_db1 = [ - [], - file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) - ] - - input_antismash_db2 = [ - [], - file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) - ] - - input_antismash_db3 = [ - [], - file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) - ] - - GUNZIP ( input_gunzip ) - PROKKA ( GUNZIP.out.gunzip, [], [] ) - UNTAR1 ( input_antismash_db1 ) - UNTAR2 ( input_antismash_db2 ) - UNTAR3 ( input_antismash_db3 ) - STUB_ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) - ANTISMASH_ANTISMASHLITE ( PROKKA.out.gbk, STUB_ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, STUB_ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir ) -} diff --git a/tests/modules/antismash/antismashlite/test.yml b/tests/modules/antismash/antismashlite/test.yml index 96752b18..b1365414 100644 --- a/tests/modules/antismash/antismashlite/test.yml +++ b/tests/modules/antismash/antismashlite/test.yml @@ -13,7 +13,8 @@ - path: output/antismash/test/genome.gbk contains: ['/tool="antismash"'] - path: output/antismash/test/genome.json - contains: ['{"version": "6.0.1", "input_file": "genome.gbff.gz", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] + contains: + ['{"version": "6.0.1", "input_file": "genome.gbff.gz", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] - path: output/antismash/test/genome.zip - path: output/antismash/test/index.html md5sum: 32aaf51315258af3b300d9a5bafd7bdc @@ -26,75 +27,6 @@ - path: output/antismash/test/regions.js contains: ['"seq_id": "NZ_CP069563.1"'] - path: output/antismash/test/test.log - contains: ['antiSMASH version: 6.0.1'] + contains: ["antiSMASH version: 6.0.1"] - path: output/antismash/versions.yml md5sum: 759431a43da33e2ef8e2d0ebd79a439b - -- name: antismash antismashlite test_prokka_antismashlite - command: nextflow run tests/modules/antismash/antismashlite -entry test_prokka_antismashlite -c tests/config/nextflow.config - tags: - - antismash/antismashlite - - antismash - files: - - path: output/antismash/clusterblast/stub_c.stub.txt - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/css/stub.css - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/images - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/js/stub.js - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/knownclusterblast/regionstub/ctg.stub.html - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/knownclusterblast/stub._c.stub.txt - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/svg/clusterblast.stub.svg - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/svg/knownclusterblast.stub.svg - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/stub.gbk - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/stub.json - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/stub.log - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/stub.zip - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/stub.region.stub. - - md5sum: d41d8cd98f00b204e9800998ecf8427egbk - - path: output/antismash/clusterblastoutpu - - md5sum: d41d8cd98f00b204e9800998ecf8427et.txt - - path: output/antismash/index.html - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/knownclusterblast - - md5sum: d41d8cd98f00b204e9800998ecf8427eoutput.txt - - path: output/antismash/regions.js - - md5sum: d41d8cd98f00b204e9800998ecf8427e - - path: output/antismash/versions.yml - md5sum: 33e96b52f50beacd83c7e0feab8cb03b - - path: output/gunzip/genome.fna - md5sum: dafd38f5454b54fbea38245d773062a5 - - path: output/prokka/test/test.err - md5sum: 194fd8a1d1cde9919841a1afd4414760 - - path: output/prokka/test/test.faa - md5sum: 8fefbfa7860f280cc881c3a3b377d6da - - path: output/prokka/test/test.ffn - md5sum: 9c4d4d7dc28625bcb13c6fbd27ca13c3 - - path: output/prokka/test/test.fna - md5sum: 96aa7707b864499745e8946f169ae8e0 - - path: output/prokka/test/test.fsa - md5sum: dbe7d3d43d46920802d2aec5cd177ddc - - path: output/prokka/test/test.gbk - contains: ['NZ_CP069563.1'] - - path: output/prokka/test/test.gff - md5sum: 9f733b702454e7750b7d4686369fe7e4 - - path: output/prokka/test/test.log - contains: ["Annotation finished successfully."] - - path: output/prokka/test/test.sqn - contains: ['str "NZ_CP069563.1"'] - - path: output/prokka/test/test.tbl - md5sum: 98f3b705f47b40255631ae43823e8271 - - path: output/prokka/test/test.tsv - md5sum: 26e8aa4b2212f320e82b6db7c93d4461 - - path: output/prokka/test/test.txt - md5sum: aea5834a64dff02d3588cecbe25c3914 From 865ad3447a2b74167a25f36e0471f7dbe42fce97 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Thu, 5 May 2022 08:23:54 +0000 Subject: [PATCH 449/592] Update meta.yml output files --- modules/busco/meta.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/busco/meta.yml b/modules/busco/meta.yml index 007d5e7c..19c2c991 100644 --- a/modules/busco/meta.yml +++ b/modules/busco/meta.yml @@ -40,6 +40,18 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - batch_summary: + type: file + description: Summary of all sequence files analyzed + pattern: "*-busco.batch_summary.txt" + - short_summaries_txt: + type: file + description: Short Busco summary in plain text format + pattern: "short_summary.*.txt" + - short_summaries_json: + type: file + description: Short Busco summary in JSON format + pattern: "short_summary.*.json" - busco_dir: type: directory description: BUSCO lineage specific output From 204dfba2d8635d1a73255538441544a0c1501d4d Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Thu, 5 May 2022 10:51:22 +0200 Subject: [PATCH 450/592] fixing ktupdatetaxonomy/meta.yml as suggested in PR --- modules/krona/ktupdatetaxonomy/meta.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/krona/ktupdatetaxonomy/meta.yml b/modules/krona/ktupdatetaxonomy/meta.yml index 1e0d6299..945b5062 100644 --- a/modules/krona/ktupdatetaxonomy/meta.yml +++ b/modules/krona/ktupdatetaxonomy/meta.yml @@ -4,6 +4,7 @@ keywords: - database - taxonomy - krona + - visualisation tools: - krona: description: Krona Tools is a set of scripts to create Krona charts from several Bioinformatics tools as well as from text and XML files. From 40dd662fd26c3eb3160b7c8cbbe9bff80bbe2c30 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Thu, 5 May 2022 12:57:14 +0200 Subject: [PATCH 451/592] update ensemblvep and snpeff modules --- modules/ensemblvep/Dockerfile | 11 +++-- modules/ensemblvep/build.sh | 5 +- modules/ensemblvep/main.nf | 1 + modules/ensemblvep/meta.yml | 15 ++---- modules/snpeff/Dockerfile | 9 ++-- modules/snpeff/build.sh | 5 +- modules/snpeff/meta.yml | 12 ----- .../nf-core/annotation/ensemblvep/main.nf | 31 ++++++++++++ .../nf-core/annotation/ensemblvep/meta.yml | 49 +++++++++++++++++++ .../nf-core/annotation/snpeff/main.nf | 28 +++++++++++ .../snpeff}/meta.yml | 18 +++++-- .../nf-core/annotation_ensemblvep/main.nf | 26 ---------- .../nf-core/annotation_ensemblvep/meta.yml | 29 ----------- .../nf-core/annotation_snpeff/main.nf | 23 --------- tests/modules/ensemblvep/main.nf | 2 +- .../ensemblvep}/main.nf | 4 +- .../ensemblvep}/nextflow.config | 2 +- .../ensemblvep}/test.yml | 0 .../snpeff}/main.nf | 2 +- .../snpeff}/nextflow.config | 2 +- .../snpeff}/test.yml | 0 21 files changed, 149 insertions(+), 125 deletions(-) mode change 100755 => 100644 modules/snpeff/build.sh create mode 100644 subworkflows/nf-core/annotation/ensemblvep/main.nf create mode 100644 subworkflows/nf-core/annotation/ensemblvep/meta.yml create mode 100644 subworkflows/nf-core/annotation/snpeff/main.nf rename subworkflows/nf-core/{annotation_snpeff => annotation/snpeff}/meta.yml (66%) delete mode 100644 subworkflows/nf-core/annotation_ensemblvep/main.nf delete mode 100644 subworkflows/nf-core/annotation_ensemblvep/meta.yml delete mode 100644 subworkflows/nf-core/annotation_snpeff/main.nf rename tests/subworkflows/nf-core/{annotation_ensemblvep => annotation/ensemblvep}/main.nf (69%) rename tests/subworkflows/nf-core/{annotation_ensemblvep => annotation/ensemblvep}/nextflow.config (88%) rename tests/subworkflows/nf-core/{annotation_ensemblvep => annotation/ensemblvep}/test.yml (100%) rename tests/subworkflows/nf-core/{annotation_snpeff => annotation/snpeff}/main.nf (74%) rename tests/subworkflows/nf-core/{annotation_snpeff => annotation/snpeff}/nextflow.config (88%) rename tests/subworkflows/nf-core/{annotation_snpeff => annotation/snpeff}/test.yml (100%) diff --git a/modules/ensemblvep/Dockerfile b/modules/ensemblvep/Dockerfile index ac1b4691..b4a1c664 100644 --- a/modules/ensemblvep/Dockerfile +++ b/modules/ensemblvep/Dockerfile @@ -8,13 +8,14 @@ LABEL \ COPY environment.yml / RUN conda env create -f /environment.yml && conda clean -a -# Add conda installation dir to PATH (instead of doing 'conda activate') -ENV PATH /opt/conda/envs/nf-core-vep-104.3/bin:$PATH - # Setup default ARG variables ARG GENOME=GRCh38 ARG SPECIES=homo_sapiens -ARG VEP_VERSION=99 +ARG VEP_VERSION=104 +ARG VEP_TAG=104.3 + +# Add conda installation dir to PATH (instead of doing 'conda activate') +ENV PATH /opt/conda/envs/nf-core-vep-${VEP_TAG}/bin:$PATH # Download Genome RUN vep_install \ @@ -27,4 +28,4 @@ RUN vep_install \ --NO_BIOPERL --NO_HTSLIB --NO_TEST --NO_UPDATE # Dump the details of the installed packages to a file for posterity -RUN conda env export --name nf-core-vep-104.3 > nf-core-vep-104.3.yml +RUN conda env export --name nf-core-vep-${VEP_TAG} > nf-core-vep-${VEP_TAG}.yml diff --git a/modules/ensemblvep/build.sh b/modules/ensemblvep/build.sh index 5fcb91df..650c8704 100755 --- a/modules/ensemblvep/build.sh +++ b/modules/ensemblvep/build.sh @@ -10,11 +10,12 @@ build_push() { VEP_TAG=$4 docker build \ + . \ -t nfcore/vep:${VEP_TAG}.${GENOME} \ - software/vep/. \ --build-arg GENOME=${GENOME} \ --build-arg SPECIES=${SPECIES} \ - --build-arg VEP_VERSION=${VEP_VERSION} + --build-arg VEP_VERSION=${VEP_VERSION} \ + --build-arg VEP_TAG=${VEP_TAG} docker push nfcore/vep:${VEP_TAG}.${GENOME} } diff --git a/modules/ensemblvep/main.nf b/modules/ensemblvep/main.nf index c2bd055f..a5a9b1ab 100644 --- a/modules/ensemblvep/main.nf +++ b/modules/ensemblvep/main.nf @@ -13,6 +13,7 @@ process ENSEMBLVEP { val species val cache_version path cache + path extra_files output: tuple val(meta), path("*.ann.vcf"), emit: vcf diff --git a/modules/ensemblvep/meta.yml b/modules/ensemblvep/meta.yml index cd9c8905..418bb970 100644 --- a/modules/ensemblvep/meta.yml +++ b/modules/ensemblvep/meta.yml @@ -10,17 +10,6 @@ tools: homepage: https://www.ensembl.org/info/docs/tools/vep/index.html documentation: https://www.ensembl.org/info/docs/tools/vep/script/index.html licence: ["Apache-2.0"] -params: - - use_cache: - type: boolean - description: | - Enable the usage of containers with cache - Does not work with conda - - vep_tag: - type: value - description: | - Specify the tag for the container - https://hub.docker.com/r/nfcore/vep/tags input: - meta: type: map @@ -47,6 +36,10 @@ input: type: file description: | path to VEP cache (optional) + - extra_files: + type: tuple + description: | + path to file(s) needed for plugins (optional) output: - vcf: type: file diff --git a/modules/snpeff/Dockerfile b/modules/snpeff/Dockerfile index 608716a4..d0e34757 100644 --- a/modules/snpeff/Dockerfile +++ b/modules/snpeff/Dockerfile @@ -8,15 +8,16 @@ LABEL \ COPY environment.yml / RUN conda env create -f /environment.yml && conda clean -a -# Add conda installation dir to PATH (instead of doing 'conda activate') -ENV PATH /opt/conda/envs/nf-core-snpeff-5.0/bin:$PATH - # Setup default ARG variables ARG GENOME=GRCh38 ARG SNPEFF_CACHE_VERSION=99 +ARG SNPEFF_TAG=99 + +# Add conda installation dir to PATH (instead of doing 'conda activate') +ENV PATH /opt/conda/envs/nf-core-snpeff-${SNPEFF_TAG}/bin:$PATH # Download Genome RUN snpEff download -v ${GENOME}.${SNPEFF_CACHE_VERSION} # Dump the details of the installed packages to a file for posterity -RUN conda env export --name nf-core-snpeff-5.0 > nf-core-snpeff-5.0.yml +RUN conda env export --name nf-core-snpeff-${SNPEFF_TAG} > nf-core-snpeff-${SNPEFF_TAG}.yml diff --git a/modules/snpeff/build.sh b/modules/snpeff/build.sh old mode 100755 new mode 100644 index b94ffd69..2fccf9a8 --- a/modules/snpeff/build.sh +++ b/modules/snpeff/build.sh @@ -9,10 +9,11 @@ build_push() { SNPEFF_TAG=$3 docker build \ + . \ -t nfcore/snpeff:${SNPEFF_TAG}.${GENOME} \ - software/snpeff/. \ --build-arg GENOME=${GENOME} \ - --build-arg SNPEFF_CACHE_VERSION=${SNPEFF_CACHE_VERSION} + --build-arg SNPEFF_CACHE_VERSION=${SNPEFF_CACHE_VERSION} \ + --build-arg SNPEFF_TAG=${SNPEFF_TAG} docker push nfcore/snpeff:${SNPEFF_TAG}.${GENOME} } diff --git a/modules/snpeff/meta.yml b/modules/snpeff/meta.yml index c191b9ac..2f0d866e 100644 --- a/modules/snpeff/meta.yml +++ b/modules/snpeff/meta.yml @@ -10,18 +10,6 @@ tools: homepage: https://pcingola.github.io/SnpEff/ documentation: https://pcingola.github.io/SnpEff/se_introduction/ licence: ["MIT"] -params: - - use_cache: - type: boolean - description: | - boolean to enable the usage of containers with cache - Enable the usage of containers with cache - Does not work with conda - - snpeff_tag: - type: value - description: | - Specify the tag for the container - https://hub.docker.com/r/nfcore/snpeff/tags input: - meta: type: map diff --git a/subworkflows/nf-core/annotation/ensemblvep/main.nf b/subworkflows/nf-core/annotation/ensemblvep/main.nf new file mode 100644 index 00000000..5073f38d --- /dev/null +++ b/subworkflows/nf-core/annotation/ensemblvep/main.nf @@ -0,0 +1,31 @@ +// +// Run VEP to annotate VCF files +// + +include { ENSEMBLVEP } from '../../../../modules/ensemblvep/main' +include { TABIX_BGZIPTABIX } from '../../../../modules/tabix/bgziptabix/main' + +workflow ANNOTATION_ENSEMBLVEP { + take: + vcf // channel: [ val(meta), vcf ] + vep_genome // value: genome to use + vep_species // value: species to use + vep_cache_version // value: cache version to use + vep_cache // path: /path/to/vep/cache (optionnal) + vep_extra_files // channel: [ file1, file2...] (optionnal) + + main: + ch_versions = Channel.empty() + + ENSEMBLVEP(vcf, vep_genome, vep_species, vep_cache_version, vep_cache, vep_extra_files) + TABIX_BGZIPTABIX(ENSEMBLVEP.out.vcf) + + // Gather versions of all tools used + ch_versions = ch_versions.mix(ENSEMBLVEP.out.versions.first()) + ch_versions = ch_versions.mix(TABIX_BGZIPTABIX.out.versions.first()) + + emit: + vcf_tbi = TABIX_BGZIPTABIX.out.gz_tbi // channel: [ val(meta), vcf.gz, vcf.gz.tbi ] + reports = ENSEMBLVEP.out.report // path: *.html + versions = ch_versions // path: versions.yml +} diff --git a/subworkflows/nf-core/annotation/ensemblvep/meta.yml b/subworkflows/nf-core/annotation/ensemblvep/meta.yml new file mode 100644 index 00000000..585e003b --- /dev/null +++ b/subworkflows/nf-core/annotation/ensemblvep/meta.yml @@ -0,0 +1,49 @@ +name: annotation_ensemblvep +description: | + Perform annotation with ensemblvep and bgzip + tabix index the resulting VCF file +keywords: + - ensemblvep +modules: + - ensemblvep + - tabix/bgziptabix +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: | + vcf to annotate + - genome: + type: value + description: | + which genome to annotate with + - species: + type: value + description: | + which species to annotate with + - cache_version: + type: value + description: | + which version of the cache to annotate with + - cache: + type: file + description: | + path to VEP cache (optional) + - extra_files: + type: tuple + description: | + path to file(s) needed for plugins (optional) +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - vcf_tbi: + type: file + description: Compressed vcf file + tabix index + pattern: "[ *{.vcf.gz,vcf.gz.tbi} ]" +authors: + - "@maxulysse" diff --git a/subworkflows/nf-core/annotation/snpeff/main.nf b/subworkflows/nf-core/annotation/snpeff/main.nf new file mode 100644 index 00000000..dcf06eb0 --- /dev/null +++ b/subworkflows/nf-core/annotation/snpeff/main.nf @@ -0,0 +1,28 @@ +// +// Run SNPEFF to annotate VCF files +// + +include { SNPEFF } from '../../../../modules/snpeff/main' +include { TABIX_BGZIPTABIX } from '../../../../modules/tabix/bgziptabix/main' + +workflow ANNOTATION_SNPEFF { + take: + vcf // channel: [ val(meta), vcf ] + snpeff_db // value: db version to use + snpeff_cache // path: /path/to/snpeff/cache (optionnal) + + main: + ch_versions = Channel.empty() + + SNPEFF(vcf, snpeff_db, snpeff_cache) + TABIX_BGZIPTABIX(SNPEFF.out.vcf) + + // Gather versions of all tools used + ch_versions = ch_versions.mix(SNPEFF.out.versions.first()) + ch_versions = ch_versions.mix(TABIX_BGZIPTABIX.out.versions.first()) + + emit: + vcf_tbi = TABIX_BGZIPTABIX.out.gz_tbi // channel: [ val(meta), vcf.gz, vcf.gz.tbi ] + reports = SNPEFF.out.report // path: *.html + versions = ch_versions // path: versions.yml +} diff --git a/subworkflows/nf-core/annotation_snpeff/meta.yml b/subworkflows/nf-core/annotation/snpeff/meta.yml similarity index 66% rename from subworkflows/nf-core/annotation_snpeff/meta.yml rename to subworkflows/nf-core/annotation/snpeff/meta.yml index e0773626..241a00cc 100644 --- a/subworkflows/nf-core/annotation_snpeff/meta.yml +++ b/subworkflows/nf-core/annotation/snpeff/meta.yml @@ -11,11 +11,19 @@ input: type: map description: | Groovy Map containing sample information - e.g. [ id:'test' ] - - input: - type: vcf - description: list containing one vcf file - pattern: "[ *.{vcf,vcf.gz} ]" + e.g. [ id:'test', single_end:false ] + - vcf: + type: file + description: | + vcf to annotate + - db: + type: value + description: | + which db to annotate with + - cache: + type: file + description: | + path to snpEff cache (optional) output: - versions: type: file diff --git a/subworkflows/nf-core/annotation_ensemblvep/main.nf b/subworkflows/nf-core/annotation_ensemblvep/main.nf deleted file mode 100644 index 3f3ecc6e..00000000 --- a/subworkflows/nf-core/annotation_ensemblvep/main.nf +++ /dev/null @@ -1,26 +0,0 @@ -// -// Run VEP to annotate VCF files -// - -include { ENSEMBLVEP } from '../../../modules/ensemblvep/main' -include { TABIX_BGZIPTABIX as ANNOTATION_BGZIPTABIX } from '../../../modules/tabix/bgziptabix/main' - -workflow ANNOTATION_ENSEMBLVEP { - take: - vcf // channel: [ val(meta), vcf ] - vep_genome // value: which genome - vep_species // value: which species - vep_cache_version // value: which cache version - vep_cache // path: path_to_vep_cache (optionnal) - - main: - ENSEMBLVEP(vcf, vep_genome, vep_species, vep_cache_version, vep_cache) - ANNOTATION_BGZIPTABIX(ENSEMBLVEP.out.vcf) - - ch_versions = ENSEMBLVEP.out.versions.first().mix(ANNOTATION_BGZIPTABIX.out.versions.first()) - - emit: - vcf_tbi = ANNOTATION_BGZIPTABIX.out.gz_tbi // channel: [ val(meta), vcf.gz, vcf.gz.tbi ] - reports = ENSEMBLVEP.out.report // path: *.html - versions = ch_versions // path: versions.yml -} diff --git a/subworkflows/nf-core/annotation_ensemblvep/meta.yml b/subworkflows/nf-core/annotation_ensemblvep/meta.yml deleted file mode 100644 index 991a8b2f..00000000 --- a/subworkflows/nf-core/annotation_ensemblvep/meta.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: annotation_ensemblvep -description: | - Perform annotation with ensemblvep and bgzip + tabix index the resulting VCF file -keywords: - - ensemblvep -modules: - - ensemblvep - - tabix/bgziptabix -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test' ] - - input: - type: vcf - description: list containing one vcf file - pattern: "[ *.{vcf,vcf.gz} ]" -output: - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - - vcf_tbi: - type: file - description: Compressed vcf file + tabix index - pattern: "[ *{.vcf.gz,vcf.gz.tbi} ]" -authors: - - "@maxulysse" diff --git a/subworkflows/nf-core/annotation_snpeff/main.nf b/subworkflows/nf-core/annotation_snpeff/main.nf deleted file mode 100644 index add5f9c8..00000000 --- a/subworkflows/nf-core/annotation_snpeff/main.nf +++ /dev/null @@ -1,23 +0,0 @@ -// -// Run SNPEFF to annotate VCF files -// - -include { SNPEFF } from '../../../modules/snpeff/main' -include { TABIX_BGZIPTABIX as ANNOTATION_BGZIPTABIX } from '../../../modules/tabix/bgziptabix/main' - -workflow ANNOTATION_SNPEFF { - take: - vcf // channel: [ val(meta), vcf ] - snpeff_db // value: version of db to use - snpeff_cache // path: path_to_snpeff_cache (optionnal) - - main: - SNPEFF(vcf, snpeff_db, snpeff_cache) - ANNOTATION_BGZIPTABIX(SNPEFF.out.vcf) - ch_versions = SNPEFF.out.versions.first().mix(ANNOTATION_BGZIPTABIX.out.versions.first()) - - emit: - vcf_tbi = ANNOTATION_BGZIPTABIX.out.gz_tbi // channel: [ val(meta), vcf.gz, vcf.gz.tbi ] - reports = SNPEFF.out.report // path: *.html - versions = ch_versions // path: versions.yml -} diff --git a/tests/modules/ensemblvep/main.nf b/tests/modules/ensemblvep/main.nf index 223847c7..30d19957 100644 --- a/tests/modules/ensemblvep/main.nf +++ b/tests/modules/ensemblvep/main.nf @@ -10,5 +10,5 @@ workflow test_ensemblvep { file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) ] - ENSEMBLVEP ( input, "WBcel235", "caenorhabditis_elegans", "104", [] ) + ENSEMBLVEP ( input, "WBcel235", "caenorhabditis_elegans", "104", [], [] ) } diff --git a/tests/subworkflows/nf-core/annotation_ensemblvep/main.nf b/tests/subworkflows/nf-core/annotation/ensemblvep/main.nf similarity index 69% rename from tests/subworkflows/nf-core/annotation_ensemblvep/main.nf rename to tests/subworkflows/nf-core/annotation/ensemblvep/main.nf index 0f00c62e..2c599671 100644 --- a/tests/subworkflows/nf-core/annotation_ensemblvep/main.nf +++ b/tests/subworkflows/nf-core/annotation/ensemblvep/main.nf @@ -2,7 +2,7 @@ nextflow.enable.dsl = 2 -include { ANNOTATION_ENSEMBLVEP } from '../../../../subworkflows/nf-core/annotation_ensemblvep/main' +include { ANNOTATION_ENSEMBLVEP } from '../../../../../subworkflows/nf-core/annotation/ensemblvep/main' workflow annotation_ensemblvep { input = [ @@ -10,5 +10,5 @@ workflow annotation_ensemblvep { file(params.test_data['sarscov2']['illumina']['test_vcf'], checkIfExists: true) ] - ANNOTATION_ENSEMBLVEP ( input, "WBcel235", "caenorhabditis_elegans", "104", [] ) + ANNOTATION_ENSEMBLVEP ( input, "WBcel235", "caenorhabditis_elegans", "104", [], [] ) } diff --git a/tests/subworkflows/nf-core/annotation_ensemblvep/nextflow.config b/tests/subworkflows/nf-core/annotation/ensemblvep/nextflow.config similarity index 88% rename from tests/subworkflows/nf-core/annotation_ensemblvep/nextflow.config rename to tests/subworkflows/nf-core/annotation/ensemblvep/nextflow.config index 4e8d2990..806adb58 100644 --- a/tests/subworkflows/nf-core/annotation_ensemblvep/nextflow.config +++ b/tests/subworkflows/nf-core/annotation/ensemblvep/nextflow.config @@ -7,7 +7,7 @@ process { publishDir = [ enabled: false ] } - withName: ANNOTATION_BGZIPTABIX { + withName: TABIX_BGZIPTABIX { ext.prefix = { "${meta.id}_VEP.ann.vcf" } } diff --git a/tests/subworkflows/nf-core/annotation_ensemblvep/test.yml b/tests/subworkflows/nf-core/annotation/ensemblvep/test.yml similarity index 100% rename from tests/subworkflows/nf-core/annotation_ensemblvep/test.yml rename to tests/subworkflows/nf-core/annotation/ensemblvep/test.yml diff --git a/tests/subworkflows/nf-core/annotation_snpeff/main.nf b/tests/subworkflows/nf-core/annotation/snpeff/main.nf similarity index 74% rename from tests/subworkflows/nf-core/annotation_snpeff/main.nf rename to tests/subworkflows/nf-core/annotation/snpeff/main.nf index c80197ee..4aee20ee 100644 --- a/tests/subworkflows/nf-core/annotation_snpeff/main.nf +++ b/tests/subworkflows/nf-core/annotation/snpeff/main.nf @@ -2,7 +2,7 @@ nextflow.enable.dsl = 2 -include { ANNOTATION_SNPEFF } from '../../../../subworkflows/nf-core/annotation_snpeff/main' +include { ANNOTATION_SNPEFF } from '../../../../../subworkflows/nf-core/annotation_snpeff/main' workflow annotation_snpeff { input = [ diff --git a/tests/subworkflows/nf-core/annotation_snpeff/nextflow.config b/tests/subworkflows/nf-core/annotation/snpeff/nextflow.config similarity index 88% rename from tests/subworkflows/nf-core/annotation_snpeff/nextflow.config rename to tests/subworkflows/nf-core/annotation/snpeff/nextflow.config index be76cb4a..31fd635b 100644 --- a/tests/subworkflows/nf-core/annotation_snpeff/nextflow.config +++ b/tests/subworkflows/nf-core/annotation/snpeff/nextflow.config @@ -7,7 +7,7 @@ process { publishDir = [ enabled: false ] } - withName: ANNOTATION_BGZIPTABIX { + withName: TABIX_BGZIPTABIX { ext.prefix = { "${meta.id}_snpEff.ann.vcf" } } diff --git a/tests/subworkflows/nf-core/annotation_snpeff/test.yml b/tests/subworkflows/nf-core/annotation/snpeff/test.yml similarity index 100% rename from tests/subworkflows/nf-core/annotation_snpeff/test.yml rename to tests/subworkflows/nf-core/annotation/snpeff/test.yml From 24b9c397dded7933bf472f64bf63eb59981cd050 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Thu, 5 May 2022 13:14:39 +0200 Subject: [PATCH 452/592] Apply suggestions from code review + add support for GFF annotations --- modules/antismash/antismashlite/main.nf | 8 +++++ modules/antismash/antismashlite/meta.yml | 29 ++++++++++--------- tests/modules/antismash/antismashlite/main.nf | 2 +- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf index f6f8a30d..006852d9 100644 --- a/modules/antismash/antismashlite/main.nf +++ b/modules/antismash/antismashlite/main.nf @@ -17,6 +17,7 @@ process ANTISMASH_ANTISMASHLITE { input: tuple val(meta), path(sequence_input) + path(gff) path(databases) path(antismash_dir) // Optional input: AntiSMASH installation folder. It is not needed for using this module with conda, but required for docker/singularity (see meta.yml). @@ -46,6 +47,12 @@ process ANTISMASH_ANTISMASHLITE { script: def args = task.ext.args ?: '' prefix = task.ext.suffix ? "${meta.id}${task.ext.suffix}" : "${meta.id}" + if ( sequence_input.getExtension != 'fasta' && sequence_input.getExtension != 'fna' && gff ) + log.warn "GFF input to antiSMASH can only be used if FASTA sequence input is supplied. GFF will be ignored for sample ${meta.id}" + if ( (sequence_input.getExtension == 'fasta' || sequence_input.getExtension == 'fna') && gff ) + gff_flag = "--genefinding-gff3 ${gff}" + else + gff_flag = "" """ ## We specifically do not include annotations (--genefinding-tool none) as @@ -57,6 +64,7 @@ process ANTISMASH_ANTISMASHLITE { --genefinding-tool none \\ --logfile $prefix/${prefix}.log \\ --databases $databases \\ + $gff_flag \\ $sequence_input cat <<-END_VERSIONS > versions.yml diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml index ac52edaa..310b542e 100644 --- a/modules/antismash/antismashlite/meta.yml +++ b/modules/antismash/antismashlite/meta.yml @@ -34,21 +34,24 @@ input: - sequence_input: type: file description: nucleotide sequence file (annotated) - pattern: "*.{gbk, gb, gbff, genbank, embl}" + pattern: "*.{gbk, gb, gbff, genbank, embl, fasta, fna}" + - gff: + type: file + description: GFF3 file to extract annotated features from (only needed if sequence_input is in FASTA format) + pattern: "*.{gff, GFF}" - databases: type: directory - description: downloaded antismash databases e.g. data/databases - pattern: "*" + description: downloaded AntiSMASH databases e.g. data/databases + pattern: "*/" - antismash_dir: type: directory description: | - antismash installation folder which is being modified during the - antiSMASH database downloading step. The modified files are - normally downloaded by download-antismash-databases itself, and must be - retrieved by the user by manually running the command within antismash-lite. - As this folder cannot be modified within the docker and singularity containers, - it needs to be mounted (including all modified files from the downloading step) - as a workaround. + A local copy of an AntiSMASH installation folder. This is required when running with + docker and singularity (not required for conda), due to attempted 'modifications' of + files during database checks in the installation directory, something that cannot + be done in immutable docker/singularity containers. Therefore, a local installation + directory needs to be mounted (including all modified files from the downloading step) + to the container as a workaround. pattern: "*" output: @@ -87,11 +90,11 @@ output: pattern: "knownclusterblast/*_c*.txt" - svg_files_clusterblast: type: file - description: SVG image showing the % identity of the aligned hits against their queries + description: SVG images showing the % identity of the aligned hits against their queries pattern: "svg/clusterblast*.svg" - svg_files_knownclusterblast: type: file - description: SVG image showing the % identity of the aligned hits against their queries + description: SVG images showing the % identity of the aligned hits against their queries pattern: "svg/knownclusterblast*.svg" - gbk_input: type: file @@ -127,7 +130,7 @@ output: pattern: "knownclusterblastoutput.txt" - json_sideloading: type: file - description: Sideloaded annotations of protoclusters and/or subregions (see documentation "Annotation sideloading") + description: Sideloaded annotations of protoclusters and/or subregions (see antiSMASH documentation "Annotation sideloading") pattern: "regions.js" authors: diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index a625a0c1..44d28129 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -32,5 +32,5 @@ workflow test_antismashlite { UNTAR2 ( input_antismash_db2 ) UNTAR3 ( input_antismash_db3 ) ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) - ANTISMASH_ANTISMASHLITE ( input_genome, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir ) + ANTISMASH_ANTISMASHLITE ( input_genome, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir, [] ) } From 47a95388c2d15f080a305184f75e0d5816889008 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Thu, 5 May 2022 13:17:36 +0200 Subject: [PATCH 453/592] Remove trailing whitespaces (ECLint check) --- modules/antismash/antismashlite/meta.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml index 310b542e..f47dbad0 100644 --- a/modules/antismash/antismashlite/meta.yml +++ b/modules/antismash/antismashlite/meta.yml @@ -47,8 +47,8 @@ input: type: directory description: | A local copy of an AntiSMASH installation folder. This is required when running with - docker and singularity (not required for conda), due to attempted 'modifications' of - files during database checks in the installation directory, something that cannot + docker and singularity (not required for conda), due to attempted 'modifications' of + files during database checks in the installation directory, something that cannot be done in immutable docker/singularity containers. Therefore, a local installation directory needs to be mounted (including all modified files from the downloading step) to the container as a workaround. From 9083d3bb3dfeae8dc61d6a2e9e097468af5fafcd Mon Sep 17 00:00:00 2001 From: Carpanzano Date: Thu, 5 May 2022 13:51:41 +0200 Subject: [PATCH 454/592] integrating suggestions from PR comments, including recovery of tests for kronadb and more detailed explanation of input database in yml file --- modules/krona/ktimporttaxonomy/meta.yml | 7 +++++-- tests/config/pytest_modules.yml | 4 ++++ tests/modules/krona/kronadb/main.nf | 9 +++++++++ tests/modules/krona/kronadb/nextflow.config | 5 +++++ tests/modules/krona/kronadb/test.yml | 7 +++++++ 5 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 tests/modules/krona/kronadb/main.nf create mode 100644 tests/modules/krona/kronadb/nextflow.config create mode 100644 tests/modules/krona/kronadb/test.yml diff --git a/modules/krona/ktimporttaxonomy/meta.yml b/modules/krona/ktimporttaxonomy/meta.yml index b65919f8..df0ad1c9 100644 --- a/modules/krona/ktimporttaxonomy/meta.yml +++ b/modules/krona/ktimporttaxonomy/meta.yml @@ -23,8 +23,11 @@ input: Groovy Map containing sample information e.g. [ id:'test'] - database: - type: path - description: "Path to the taxonomy database downloaded by krona/kronadb" + type: file + description: | + Path to the taxonomy database .tab file downloaded by krona/ktUpdateTaxonomy + The file will be saved under a folder named "taxonomy" as "taxonomy/taxonomy.tab". + The parent folder will be passed as argument to ktImportTaxonomy. - report: type: file description: "A tab-delimited file with taxonomy IDs and (optionally) query IDs, magnitudes, and scores. Query IDs are taken from column 1, taxonomy IDs from column 2, and scores from column 3. Lines beginning with # will be ignored." diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index dbf6c196..031f5717 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1054,6 +1054,10 @@ kraken2/kraken2: - modules/untar/** - tests/modules/kraken2/kraken2/** +krona/kronadb: + - modules/krona/kronadb/** + - tests/modules/krona/kronadb/** + krona/ktupdatetaxonomy: - modules/krona/ktupdatetaxonomy/** - tests/modules/krona/ktupdatetaxonomy/** diff --git a/tests/modules/krona/kronadb/main.nf b/tests/modules/krona/kronadb/main.nf new file mode 100644 index 00000000..ed955854 --- /dev/null +++ b/tests/modules/krona/kronadb/main.nf @@ -0,0 +1,9 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { KRONA_KRONADB } from '../../../../modules/krona/kronadb/main.nf' + +workflow test_krona_kronadb { + KRONA_KRONADB ( ) +} diff --git a/tests/modules/krona/kronadb/nextflow.config b/tests/modules/krona/kronadb/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/modules/krona/kronadb/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/modules/krona/kronadb/test.yml b/tests/modules/krona/kronadb/test.yml new file mode 100644 index 00000000..1d61640f --- /dev/null +++ b/tests/modules/krona/kronadb/test.yml @@ -0,0 +1,7 @@ +- name: krona kronadb test_krona_kronadb + command: nextflow run ./tests/modules/krona/kronadb -entry test_krona_kronadb -c ./tests/config/nextflow.config -c ./tests/modules/krona/kronadb/nextflow.config + tags: + - krona + - krona/kronadb + files: + - path: output/krona/taxonomy/taxonomy.tab From 2542ae1823d57777434a63849e217eabf97b3a8e Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Thu, 5 May 2022 16:33:32 +0200 Subject: [PATCH 455/592] Update modules/busco/main.nf Co-authored-by: Sateesh Peri <33637490+sateeshperi@users.noreply.github.com> --- modules/busco/main.nf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/busco/main.nf b/modules/busco/main.nf index f6bd63e2..15e7ce5c 100644 --- a/modules/busco/main.nf +++ b/modules/busco/main.nf @@ -8,10 +8,10 @@ process BUSCO { 'quay.io/biocontainers/busco:5.3.2--pyhdfd78af_0' }" input: - tuple val(meta), path(fasta, stageAs: 'tmp_input/*') // Required: meta map, and fasta sequence files - each lineage // Required: lineage to check against - path busco_lineages_path // Recommended: path to busco lineages - downloads if not set - path config_file // Optional: busco configuration file + tuple val(meta), path('tmp_input/*') // Required: meta map, and fasta sequence files + each lineage // Required: lineage to check against + path busco_lineages_path // Recommended: path to busco lineages - downloads if not set + path config_file // Optional: busco configuration file output: tuple val(meta), path("*-busco.batch_summary.txt"), emit: batch_summary From 1289626cc99eecb3436bd067cd90a85028957d5f Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Thu, 5 May 2022 16:09:45 +0100 Subject: [PATCH 456/592] Update modules/busco/main.nf --- modules/busco/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/busco/main.nf b/modules/busco/main.nf index 15e7ce5c..8c1b1dad 100644 --- a/modules/busco/main.nf +++ b/modules/busco/main.nf @@ -8,7 +8,7 @@ process BUSCO { 'quay.io/biocontainers/busco:5.3.2--pyhdfd78af_0' }" input: - tuple val(meta), path('tmp_input/*') // Required: meta map, and fasta sequence files + tuple val(meta), path('tmp_input/*') each lineage // Required: lineage to check against path busco_lineages_path // Recommended: path to busco lineages - downloads if not set path config_file // Optional: busco configuration file From ea1f5daf449190dd3b8550c1307f14aa3371413d Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Thu, 5 May 2022 17:28:49 +0200 Subject: [PATCH 457/592] polish python script in view --- modules/cnvpytor/view/main.nf | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/modules/cnvpytor/view/main.nf b/modules/cnvpytor/view/main.nf index 72726615..ad2249b8 100644 --- a/modules/cnvpytor/view/main.nf +++ b/modules/cnvpytor/view/main.nf @@ -29,16 +29,14 @@ process CNVPYTOR_VIEW { python3 < versions.yml From e4e4f8090caa7c2f3fd71caa62792a1ea9ff4b59 Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Thu, 5 May 2022 23:59:12 +0200 Subject: [PATCH 458/592] combine multiple pytor --- modules/cnvpytor/view/main.nf | 16 +++++++++------- tests/modules/cnvpytor/view/main.nf | 6 +++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/modules/cnvpytor/view/main.nf b/modules/cnvpytor/view/main.nf index ad2249b8..1bb61a38 100644 --- a/modules/cnvpytor/view/main.nf +++ b/modules/cnvpytor/view/main.nf @@ -8,7 +8,7 @@ process CNVPYTOR_VIEW { 'quay.io/biocontainers/cnvpytor:1.2.1--pyhdfd78af_0' }" input: - tuple val(meta), path(pytor) + tuple val(meta), path(pytor_files) val bin_sizes val output_format @@ -23,17 +23,18 @@ process CNVPYTOR_VIEW { script: def output_suffix = output_format ?: 'vcf' - def bins = bin_sizes ?: '1000' + def bins = bin_sizes ?: '1000' + def input = pytor_files.join(" ") + def prefix = task.ext.prefix ?: "${meta.id}" """ python3 < versions.yml "${task.process}": diff --git a/tests/modules/cnvpytor/view/main.nf b/tests/modules/cnvpytor/view/main.nf index b865dd6d..3b99c314 100644 --- a/tests/modules/cnvpytor/view/main.nf +++ b/tests/modules/cnvpytor/view/main.nf @@ -8,7 +8,7 @@ workflow test_cnvpytor_view { input = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true) + [file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true)] ] bin_sizes = "10000 100000" @@ -20,7 +20,7 @@ workflow test_cnvpytor_view_tsvout { input = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true) + [file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true)] ] output_suffix = "tsv" @@ -32,7 +32,7 @@ workflow test_cnvpytor_view_stub { input = [ [ id:'test'], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true) + [file(params.test_data['homo_sapiens']['illumina']['test_pytor'], checkIfExists: true)] ] bin_sizes = [] From af73544010cc9563ec7d7160aeb825ae28ec217f Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Fri, 6 May 2022 00:13:49 +0200 Subject: [PATCH 459/592] update meta --- modules/cnvpytor/view/meta.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/cnvpytor/view/meta.yml b/modules/cnvpytor/view/meta.yml index 1392e90e..e4e68fad 100644 --- a/modules/cnvpytor/view/meta.yml +++ b/modules/cnvpytor/view/meta.yml @@ -17,9 +17,9 @@ input: description: | Groovy Map containing sample information e.g. [ id:'test' ] - - pytor: + - pytor_files: type: file - description: pytor file containing read depth data + description: pytor file containing cnv calls. To merge calls from multiple samples use a list of files. pattern: "*.{pytor}" - bin_sizes: type: string From 313d76e00525c8e975dabce0c34973fd53c3f4dd Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Fri, 6 May 2022 00:18:16 +0200 Subject: [PATCH 460/592] update svdb version --- modules/svdb/merge/main.nf | 6 +++--- modules/svdb/query/main.nf | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/svdb/merge/main.nf b/modules/svdb/merge/main.nf index 4a39940c..0d56fea2 100644 --- a/modules/svdb/merge/main.nf +++ b/modules/svdb/merge/main.nf @@ -2,10 +2,10 @@ process SVDB_MERGE { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::svdb=2.6.0" : null) + conda (params.enable_conda ? "bioconda::svdb=2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/svdb:2.6.0--py39h5371cbf_0': - 'quay.io/biocontainers/svdb:2.6.0--py39h5371cbf_0' }" + 'https://depot.galaxyproject.org/singularity/svdb:2.6.1--py39h5371cbf_0': + 'quay.io/biocontainers/svdb:2.6.1--py39h5371cbf_0' }" input: tuple val(meta), path(vcfs) diff --git a/modules/svdb/query/main.nf b/modules/svdb/query/main.nf index c669b5a5..dbab5259 100644 --- a/modules/svdb/query/main.nf +++ b/modules/svdb/query/main.nf @@ -2,10 +2,10 @@ process SVDB_QUERY { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::svdb=2.6.0" : null) + conda (params.enable_conda ? "bioconda::svdb=2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/svdb:2.6.0--py39h5371cbf_0': - 'quay.io/biocontainers/svdb:2.6.0--py39h5371cbf_0' }" + 'https://depot.galaxyproject.org/singularity/svdb:2.6.1--py39h5371cbf_0': + 'quay.io/biocontainers/svdb:2.6.1--py39h5371cbf_0' }" input: tuple val(meta), path(vcf) From 853b623969357753468365aa538eb92b2bcb8ce9 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 6 May 2022 09:20:40 +0200 Subject: [PATCH 461/592] new module: md5sum --- modules/md5sum/main.nf | 35 +++++++++++++++++++++++++ modules/md5sum/meta.yml | 39 ++++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 12 ++++++--- tests/modules/md5sum/main.nf | 15 +++++++++++ tests/modules/md5sum/nextflow.config | 3 +++ tests/modules/md5sum/test.yml | 8 ++++++ 6 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 modules/md5sum/main.nf create mode 100644 modules/md5sum/meta.yml create mode 100644 tests/modules/md5sum/main.nf create mode 100644 tests/modules/md5sum/nextflow.config create mode 100644 tests/modules/md5sum/test.yml diff --git a/modules/md5sum/main.nf b/modules/md5sum/main.nf new file mode 100644 index 00000000..0b101811 --- /dev/null +++ b/modules/md5sum/main.nf @@ -0,0 +1,35 @@ +process MD5SUM { + tag "$meta.id" + label 'process_low' + + if (params.enable_conda) { + exit 1, "Conda environments cannot be used when using bcl-convert. Please use docker or singularity containers." + } + container "debian:bullseye-slim" + + input: + tuple val(meta), path(file) + + output: + tuple val(meta), path("*.md5"), emit: checksum + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + md5sum \\ + $args \\ + ${file} \\ + > ${file}.md5 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + md5sum: \$(echo \$(md5sum --version 2>&1 | head -n 1| sed 's/^.*) //;' )) + END_VERSIONS + """ +} diff --git a/modules/md5sum/meta.yml b/modules/md5sum/meta.yml new file mode 100644 index 00000000..d4f1939d --- /dev/null +++ b/modules/md5sum/meta.yml @@ -0,0 +1,39 @@ +name: "md5sum" +description: Create an MD5 (128-bit) checksum +keywords: + - checksum +tools: + - "md5sum": + description: Create an MD5 (128-bit) checksum + homepage: "https://www.gnu.org" + documentation: "https://man7.org/linux/man-pages/man1/md5sum.1.html" + licence: GPLv3+ + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - file: + type: file + description: Any file + pattern: "*.*" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - checksum: + type: file + description: File containing checksum + pattern: "*.md5" + +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 81f98d59..a5a7c083 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1058,10 +1058,6 @@ krona/kronadb: - modules/krona/kronadb/** - tests/modules/krona/kronadb/** -krona/ktupdatetaxonomy: - - modules/krona/ktupdatetaxonomy/** - - tests/modules/krona/ktupdatetaxonomy/** - krona/ktimporttaxonomy: - modules/krona/ktimporttaxonomy/** - tests/modules/krona/ktimporttaxonomy/** @@ -1070,6 +1066,10 @@ krona/ktimporttext: - modules/krona/ktimporttext/** - tests/modules/krona/ktimporttext/** +krona/ktupdatetaxonomy: + - modules/krona/ktupdatetaxonomy/** + - tests/modules/krona/ktupdatetaxonomy/** + last/dotplot: - modules/last/dotplot/** - tests/modules/last/dotplot/** @@ -1190,6 +1190,10 @@ maxbin2: - modules/maxbin2/** - tests/modules/maxbin2/** +md5sum: + - modules/md5sum/** + - tests/modules/md5sum/** + medaka: - modules/medaka/** - tests/modules/medaka/** diff --git a/tests/modules/md5sum/main.nf b/tests/modules/md5sum/main.nf new file mode 100644 index 00000000..f90642b6 --- /dev/null +++ b/tests/modules/md5sum/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MD5SUM } from '../../../modules/md5sum/main.nf' + +workflow test_md5sum { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + MD5SUM ( input ) +} diff --git a/tests/modules/md5sum/nextflow.config b/tests/modules/md5sum/nextflow.config new file mode 100644 index 00000000..0293c16f --- /dev/null +++ b/tests/modules/md5sum/nextflow.config @@ -0,0 +1,3 @@ +process { + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } +} diff --git a/tests/modules/md5sum/test.yml b/tests/modules/md5sum/test.yml new file mode 100644 index 00000000..1e6517a7 --- /dev/null +++ b/tests/modules/md5sum/test.yml @@ -0,0 +1,8 @@ +- name: md5sum test_md5sum + command: nextflow run tests/modules/md5sum -entry test_md5sum -c tests/config/nextflow.config + tags: + - md5sum + files: + - path: output/md5sum/test.paired_end.bam.md5 + md5sum: 1163095be8fdfb2acb3cc6c027389c4b + - path: output/md5sum/versions.yml From 09e729ad414bc51d91b487edf720e7bb9b80abb7 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 6 May 2022 10:28:14 +0200 Subject: [PATCH 462/592] added sha256sum --- modules/shasum/main.nf | 35 ++++++++++++++++++++++++ modules/shasum/meta.yml | 40 ++++++++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 +++ tests/modules/shasum/main.nf | 15 +++++++++++ tests/modules/shasum/nextflow.config | 5 ++++ tests/modules/shasum/test.yml | 8 ++++++ 6 files changed, 107 insertions(+) create mode 100644 modules/shasum/main.nf create mode 100644 modules/shasum/meta.yml create mode 100644 tests/modules/shasum/main.nf create mode 100644 tests/modules/shasum/nextflow.config create mode 100644 tests/modules/shasum/test.yml diff --git a/modules/shasum/main.nf b/modules/shasum/main.nf new file mode 100644 index 00000000..a2c37da7 --- /dev/null +++ b/modules/shasum/main.nf @@ -0,0 +1,35 @@ +process SHASUM { + tag "$meta.id" + label 'process_low' + + if (params.enable_conda) { + exit 1, "Conda environments cannot be used when using bcl-convert. Please use docker or singularity containers." + } + container "debian:bullseye-slim" + + input: + tuple val(meta), path(file) + + output: + tuple val(meta), path("*.sha256"), emit: checksum + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + sha256sum \\ + $args \\ + ${file} \\ + > ${file}.sha256 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + sha256sum: \$(echo \$(sha256sum --version 2>&1 | head -n 1| sed 's/^.*) //;' )) + END_VERSIONS + """ +} diff --git a/modules/shasum/meta.yml b/modules/shasum/meta.yml new file mode 100644 index 00000000..f16e0771 --- /dev/null +++ b/modules/shasum/meta.yml @@ -0,0 +1,40 @@ +name: "shasum" +description: Print SHA256 (256-bit) checksums. +keywords: + - checksum + - sha256 +tools: + - "md5sum": + description: Create an SHA256 (256-bit) checksum. + homepage: "https://www.gnu.org" + documentation: "https://linux.die.net/man/1/shasum" + licence: GPLv3+ + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - file: + type: file + description: Any file + pattern: "*.*" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - checksum: + type: file + description: File containing checksum + pattern: "*.sha256" + +authors: + - "@matthdsm" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index a5a7c083..effe6fe2 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1739,6 +1739,10 @@ seqwish/induce: - modules/seqwish/induce/** - tests/modules/seqwish/induce/** +shasum: + - modules/shasum/** + - tests/modules/shasum/** + shigatyper: - modules/shigatyper/** - tests/modules/shigatyper/** diff --git a/tests/modules/shasum/main.nf b/tests/modules/shasum/main.nf new file mode 100644 index 00000000..817ea6f0 --- /dev/null +++ b/tests/modules/shasum/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SHASUM } from '../../../modules/shasum/main.nf' + +workflow test_shasum { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + ] + + SHASUM ( input ) +} diff --git a/tests/modules/shasum/nextflow.config b/tests/modules/shasum/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/shasum/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/shasum/test.yml b/tests/modules/shasum/test.yml new file mode 100644 index 00000000..6778d156 --- /dev/null +++ b/tests/modules/shasum/test.yml @@ -0,0 +1,8 @@ +- name: shasum test_shasum + command: nextflow run tests/modules/shasum -entry test_shasum -c tests/config/nextflow.config + tags: + - shasum + files: + - path: output/shasum/test.paired_end.bam.sha256 + md5sum: 138a19e100f09fc975ea1b717da9b6dd + - path: output/shasum/versions.yml From 77d825e0439c4d9a1d68a329c97012e4b99f3e40 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 6 May 2022 10:39:13 +0200 Subject: [PATCH 463/592] fix copy paste errors --- modules/md5sum/main.nf | 2 +- modules/shasum/main.nf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/md5sum/main.nf b/modules/md5sum/main.nf index 0b101811..2cdb8bf6 100644 --- a/modules/md5sum/main.nf +++ b/modules/md5sum/main.nf @@ -3,7 +3,7 @@ process MD5SUM { label 'process_low' if (params.enable_conda) { - exit 1, "Conda environments cannot be used when using bcl-convert. Please use docker or singularity containers." + exit 1, "Conda environments cannot be used when using md5sum. Please use docker or singularity containers." } container "debian:bullseye-slim" diff --git a/modules/shasum/main.nf b/modules/shasum/main.nf index a2c37da7..e7a18da6 100644 --- a/modules/shasum/main.nf +++ b/modules/shasum/main.nf @@ -3,7 +3,7 @@ process SHASUM { label 'process_low' if (params.enable_conda) { - exit 1, "Conda environments cannot be used when using bcl-convert. Please use docker or singularity containers." + exit 1, "Conda environments cannot be used when using sha256sum. Please use docker or singularity containers." } container "debian:bullseye-slim" From 1c7205d68389a899ee6b4f8c11343701c2c07ce8 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 6 May 2022 10:44:51 +0200 Subject: [PATCH 464/592] fixed container definitions --- modules/md5sum/main.nf | 8 ++++---- modules/shasum/main.nf | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/md5sum/main.nf b/modules/md5sum/main.nf index 2cdb8bf6..7b66625e 100644 --- a/modules/md5sum/main.nf +++ b/modules/md5sum/main.nf @@ -2,10 +2,10 @@ process MD5SUM { tag "$meta.id" label 'process_low' - if (params.enable_conda) { - exit 1, "Conda environments cannot be used when using md5sum. Please use docker or singularity containers." - } - container "debian:bullseye-slim" + conda (params.enable_conda ? "conda-forge::coreutils=8.25" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/coreutils:8.31--h14c3975_0' : + 'quay.io/biocontainers/coreutils:8.31--h14c3975_0' }" input: tuple val(meta), path(file) diff --git a/modules/shasum/main.nf b/modules/shasum/main.nf index e7a18da6..11f9376c 100644 --- a/modules/shasum/main.nf +++ b/modules/shasum/main.nf @@ -2,10 +2,10 @@ process SHASUM { tag "$meta.id" label 'process_low' - if (params.enable_conda) { - exit 1, "Conda environments cannot be used when using sha256sum. Please use docker or singularity containers." - } - container "debian:bullseye-slim" + conda (params.enable_conda ? "conda-forge::coreutils=8.25" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/coreutils:8.31--h14c3975_0' : + 'quay.io/biocontainers/coreutils:8.31--h14c3975_0' }" input: tuple val(meta), path(file) From 1ccea5ff4d3dffbf9a8e53032481cc9246d4e23d Mon Sep 17 00:00:00 2001 From: Ramprasad Neethiraj <20065894+ramprasadn@users.noreply.github.com> Date: Fri, 6 May 2022 10:56:58 +0200 Subject: [PATCH 465/592] remove prefix def in callcnvs --- modules/cnvpytor/callcnvs/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/cnvpytor/callcnvs/main.nf b/modules/cnvpytor/callcnvs/main.nf index 092f6def..69c9d40e 100644 --- a/modules/cnvpytor/callcnvs/main.nf +++ b/modules/cnvpytor/callcnvs/main.nf @@ -20,7 +20,6 @@ process CNVPYTOR_CALLCNVS { script: def bins = bin_sizes ?: '1000' - def prefix = task.ext.prefix ?: "${meta.id}" """ cnvpytor \\ -root $pytor \\ From bd1b80f36e1b9a978e598e4b47f6705ede34da37 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 6 May 2022 11:07:05 +0200 Subject: [PATCH 466/592] fix software definitions --- modules/md5sum/main.nf | 6 +++--- modules/shasum/main.nf | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/md5sum/main.nf b/modules/md5sum/main.nf index 7b66625e..2b516f1b 100644 --- a/modules/md5sum/main.nf +++ b/modules/md5sum/main.nf @@ -2,10 +2,10 @@ process MD5SUM { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "conda-forge::coreutils=8.25" : null) + conda (params.enable_conda ? "conda-forge::coreutils=9.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/coreutils:8.31--h14c3975_0' : - 'quay.io/biocontainers/coreutils:8.31--h14c3975_0' }" + 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : + 'ubuntu:20.04' }" input: tuple val(meta), path(file) diff --git a/modules/shasum/main.nf b/modules/shasum/main.nf index 11f9376c..0e288435 100644 --- a/modules/shasum/main.nf +++ b/modules/shasum/main.nf @@ -2,10 +2,10 @@ process SHASUM { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "conda-forge::coreutils=8.25" : null) + conda (params.enable_conda ? "conda-forge::coreutils=9.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/coreutils:8.31--h14c3975_0' : - 'quay.io/biocontainers/coreutils:8.31--h14c3975_0' }" + 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : + 'ubuntu:20.04' }" input: tuple val(meta), path(file) From 35c5828f43b50bc029b20b133d3878b3bc16ca9d Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Fri, 6 May 2022 11:48:21 +0000 Subject: [PATCH 467/592] Add --auto-lineage option and remove single_end Co-authored-by: Jill V. Hagey, PhD --- modules/busco/main.nf | 5 +-- tests/modules/busco/main.nf | 67 ++++++++++++++++++++++++++---------- tests/modules/busco/test.yml | 30 ++++++++++++++++ 3 files changed, 82 insertions(+), 20 deletions(-) diff --git a/modules/busco/main.nf b/modules/busco/main.nf index 8c1b1dad..f0713862 100644 --- a/modules/busco/main.nf +++ b/modules/busco/main.nf @@ -9,7 +9,7 @@ process BUSCO { input: tuple val(meta), path('tmp_input/*') - each lineage // Required: lineage to check against + each lineage // Required: lineage to check against, "auto" enables --auto-lineage instead path busco_lineages_path // Recommended: path to busco lineages - downloads if not set path config_file // Optional: busco configuration file @@ -27,6 +27,7 @@ process BUSCO { def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}-${lineage}" def busco_config = config_file ? "--config $config_file" : '' + def busco_lineage = lineage.equals('auto') ? '--auto-lineage' : "--lineage_dataset ${lineage}" def busco_lineage_dir = busco_lineages_path ? "--offline --download_path ${busco_lineages_path}" : '' """ # Nextflow changes the container --entrypoint to /bin/bash (container default entrypoint: /usr/local/env-execute) @@ -63,7 +64,7 @@ process BUSCO { --cpu $task.cpus \\ --in "\$INPUT_SEQS" \\ --out ${prefix}-busco \\ - --lineage_dataset $lineage \\ + $busco_lineage \\ $busco_lineage_dir \\ $busco_config \\ $args diff --git a/tests/modules/busco/main.nf b/tests/modules/busco/main.nf index f0201d21..e290b965 100644 --- a/tests/modules/busco/main.nf +++ b/tests/modules/busco/main.nf @@ -4,28 +4,59 @@ nextflow.enable.dsl = 2 include { BUSCO } from '../../../modules/busco/main.nf' -// This tests genome decompression, empty input channels and data download workflow test_busco_genome_single_fasta { input = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) ] BUSCO ( input, - ['bacteria_odb10', 'bacteroidetes_odb10'], + ['auto','bacteria_odb10', 'bacteroidetes_odb10'], // Launch with auto to use --auto-lineage, and specified lineages [], // Download busco lineage [], // No config ) /* Output tree: - /tmp/tmpisa3ktco/busco/ - ├── short_summary.specific.bacteria_odb10.genome.fna.json -> /tmp/tmpm91x0mn2/8a/ff5c15baba0942cca15a8d53e98009/short_summary.specific.bacteria_odb10.genome.fna.json - ├── short_summary.specific.bacteria_odb10.genome.fna.txt -> /tmp/tmpm91x0mn2/8a/ff5c15baba0942cca15a8d53e98009/short_summary.specific.bacteria_odb10.genome.fna.txt - ├── short_summary.specific.bacteroidetes_odb10.genome.fna.json -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/short_summary.specific.bacteroidetes_odb10.genome.fna.json - ├── short_summary.specific.bacteroidetes_odb10.genome.fna.txt -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/short_summary.specific.bacteroidetes_odb10.genome.fna.txt - ├── test-bacteria_odb10-busco -> /tmp/tmpm91x0mn2/8a/ff5c15baba0942cca15a8d53e98009/test-bacteria_odb10-busco/ + /tmp/tmp846crjv2/busco/ + ├── short_summary.generic.bacteria_odb10.genome.fna.json -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.generic.bacteria_odb10.genome.fna.json + ├── short_summary.generic.bacteria_odb10.genome.fna.txt -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.generic.bacteria_odb10.genome.fna.txt + ├── short_summary.specific.bacteria_odb10.genome.fna.json -> /tmp/tmpi6af66j1/45/107812e983a8e695c380ebc215e7d9/short_summary.specific.bacteria_odb10.genome.fna.json + ├── short_summary.specific.bacteria_odb10.genome.fna.txt -> /tmp/tmpi6af66j1/45/107812e983a8e695c380ebc215e7d9/short_summary.specific.bacteria_odb10.genome.fna.txt + ├── short_summary.specific.bacteroidales_odb10.genome.fna.json -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.specific.bacteroidales_odb10.genome.fna.json + ├── short_summary.specific.bacteroidales_odb10.genome.fna.txt -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.specific.bacteroidales_odb10.genome.fna.txt + ├── short_summary.specific.bacteroidetes_odb10.genome.fna.json -> /tmp/tmpi6af66j1/a2/eb4a34894f3ac5554759ad6c9f652b/short_summary.specific.bacteroidetes_odb10.genome.fna.json + ├── short_summary.specific.bacteroidetes_odb10.genome.fna.txt -> /tmp/tmpi6af66j1/a2/eb4a34894f3ac5554759ad6c9f652b/short_summary.specific.bacteroidetes_odb10.genome.fna.txt + ├── test-auto-busco -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/test-auto-busco/ + │ ├── genome.fna/ + │ │ ├── auto_lineage/ + │ │ │ ├── run_archaea_odb10/ + │ │ │ ├── run_bacteria_odb10/ + │ │ │ └── run_eukaryota_odb10/ + │ │ ├── logs/ + │ │ │ ├── hmmsearch_err.log + │ │ │ ├── hmmsearch_out.log + │ │ │ ├── metaeuk_err.log + │ │ │ ├── metaeuk_out.log + │ │ │ ├── prodigal_err.log + │ │ │ ├── prodigal_out.log + │ │ │ ├── sepp_err.log + │ │ │ └── sepp_out.log + │ │ ├── prodigal_output/ + │ │ │ └── predicted_genes/ + │ │ ├── run_bacteria_odb10 -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/test-auto-busco/genome.fna/auto_lineage/run_bacteria_odb10/ [recursive, not followed] + │ │ └── run_bacteroidales_odb10/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ └── short_summary.txt + │ └── logs/ + │ └── busco.log + ├── test-auto-busco.batch_summary.txt -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/test-auto-busco.batch_summary.txt + ├── test-bacteria_odb10-busco -> /tmp/tmpi6af66j1/45/107812e983a8e695c380ebc215e7d9/test-bacteria_odb10-busco/ │ ├── genome.fna/ │ │ ├── logs/ │ │ │ ├── hmmsearch_err.log @@ -43,8 +74,8 @@ workflow test_busco_genome_single_fasta { │ │ └── short_summary.txt │ └── logs/ │ └── busco.log - ├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmpm91x0mn2/8a/ff5c15baba0942cca15a8d53e98009/test-bacteria_odb10-busco.batch_summary.txt - ├── test-bacteroidetes_odb10-busco -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/test-bacteroidetes_odb10-busco/ + ├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmpi6af66j1/45/107812e983a8e695c380ebc215e7d9/test-bacteria_odb10-busco.batch_summary.txt + ├── test-bacteroidetes_odb10-busco -> /tmp/tmpi6af66j1/a2/eb4a34894f3ac5554759ad6c9f652b/test-bacteroidetes_odb10-busco/ │ ├── genome.fna/ │ │ ├── logs/ │ │ │ ├── hmmsearch_err.log @@ -62,8 +93,8 @@ workflow test_busco_genome_single_fasta { │ │ └── short_summary.txt │ └── logs/ │ └── busco.log - ├── test-bacteroidetes_odb10-busco.batch_summary.txt -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/test-bacteroidetes_odb10-busco.batch_summary.txt - └── versions.yml -> /tmp/tmpm91x0mn2/91/3abf602561d35fcd917711402977a3/versions.yml + ├── test-bacteroidetes_odb10-busco.batch_summary.txt -> /tmp/tmpi6af66j1/a2/eb4a34894f3ac5554759ad6c9f652b/test-bacteroidetes_odb10-busco.batch_summary.txt + └── versions.yml -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/versions.yml */ } @@ -71,7 +102,7 @@ workflow test_busco_genome_single_fasta { workflow test_busco_genome_multi_fasta { input = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map [ file( params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true), file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['genome_fasta'], checkIfExists: true) @@ -133,7 +164,7 @@ workflow test_busco_genome_multi_fasta { workflow test_busco_eukaryote_metaeuk { input = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file( params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ] @@ -174,7 +205,7 @@ workflow test_busco_eukaryote_metaeuk { workflow test_busco_eukaryote_augustus { input = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file( params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) ] @@ -218,7 +249,7 @@ workflow test_busco_eukaryote_augustus { workflow test_busco_protein { input = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file( params.test_data['candidatus_portiera_aleyrodidarum']['genome']['proteome_fasta'], checkIfExists: true) ] @@ -254,7 +285,7 @@ workflow test_busco_protein { workflow test_busco_transcriptome { input = [ - [ id:'test', single_end:false ], // meta map + [ id:'test' ], // meta map file( params.test_data['bacteroides_fragilis']['illumina']['test1_contigs_fa_gz'], checkIfExists: true) ] diff --git a/tests/modules/busco/test.yml b/tests/modules/busco/test.yml index 43b810ba..2a801e64 100644 --- a/tests/modules/busco/test.yml +++ b/tests/modules/busco/test.yml @@ -3,6 +3,20 @@ tags: - busco files: + - path: output/busco/short_summary.generic.bacteria_odb10.genome.fna.json + contains: + - "one_line_summary" + - "input_file" + - "mode" + - "dataset" + - path: output/busco/short_summary.generic.bacteria_odb10.genome.fna.txt + contains: + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json contains: - "one_line_summary" @@ -17,6 +31,20 @@ - "Complete BUSCOs" - "Missing BUSCOs" - "Dependencies and versions" + - path: output/busco/short_summary.specific.bacteroidales_odb10.genome.fna.json + contains: + - "one_line_summary" + - "input_file" + - "mode" + - "dataset" + - path: output/busco/short_summary.specific.bacteroidales_odb10.genome.fna.txt + contains: + - "BUSCO version" + - "The lineage dataset is" + - "BUSCO was run in mode" + - "Complete BUSCOs" + - "Missing BUSCOs" + - "Dependencies and versions" - path: output/busco/short_summary.specific.bacteroidetes_odb10.genome.fna.json contains: - "one_line_summary" @@ -31,6 +59,8 @@ - "Complete BUSCOs" - "Missing BUSCOs" - "Dependencies and versions" + - path: output/busco/test-auto-busco.batch_summary.txt + md5sum: 32f7765c310f33555c31c7a3e64c990e - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt md5sum: e50690742e9ae6abdd2bf99334ff9e12 - path: output/busco/test-bacteroidetes_odb10-busco.batch_summary.txt From 9fa6b6c1fc930830c1d819a9273b4ec12ffacb0a Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Fri, 6 May 2022 11:56:19 +0000 Subject: [PATCH 468/592] Update meta.yml --- modules/busco/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/busco/meta.yml b/modules/busco/meta.yml index 19c2c991..ef8c5245 100644 --- a/modules/busco/meta.yml +++ b/modules/busco/meta.yml @@ -26,7 +26,7 @@ input: pattern: "*.{fasta,fna,fa,fasta.gz,fna.gz,fa.gz}" - lineage: type: value - description: The BUSCO lineage to use. + description: The BUSCO lineage to use, or "auto" to automatically select lineage - busco_lineages_path: type: directory description: Path to local BUSCO lineages directory. From 3930ba227bc49541e25272eb9332a10d01a1b271 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 6 May 2022 14:10:44 +0200 Subject: [PATCH 469/592] merge snapaligner modes into one --- modules/snapaligner/{paired => align}/main.nf | 7 +-- .../snapaligner/{paired => align}/meta.yml | 6 +-- modules/snapaligner/single/main.nf | 41 ---------------- modules/snapaligner/single/meta.yml | 48 ------------------- tests/modules/snapaligner/align/main.nf | 29 +++++++++++ .../{paired => align}/nextflow.config | 0 tests/modules/snapaligner/align/test.yml | 19 ++++++++ tests/modules/snapaligner/paired/main.nf | 17 ------- tests/modules/snapaligner/paired/test.yml | 9 ---- tests/modules/snapaligner/single/main.nf | 17 ------- .../snapaligner/single/nextflow.config | 5 -- tests/modules/snapaligner/single/test.yml | 9 ---- 12 files changed, 55 insertions(+), 152 deletions(-) rename modules/snapaligner/{paired => align}/main.nf (87%) rename modules/snapaligner/{paired => align}/meta.yml (86%) delete mode 100644 modules/snapaligner/single/main.nf delete mode 100644 modules/snapaligner/single/meta.yml create mode 100644 tests/modules/snapaligner/align/main.nf rename tests/modules/snapaligner/{paired => align}/nextflow.config (100%) create mode 100644 tests/modules/snapaligner/align/test.yml delete mode 100644 tests/modules/snapaligner/paired/main.nf delete mode 100644 tests/modules/snapaligner/paired/test.yml delete mode 100644 tests/modules/snapaligner/single/main.nf delete mode 100644 tests/modules/snapaligner/single/nextflow.config delete mode 100644 tests/modules/snapaligner/single/test.yml diff --git a/modules/snapaligner/paired/main.nf b/modules/snapaligner/align/main.nf similarity index 87% rename from modules/snapaligner/paired/main.nf rename to modules/snapaligner/align/main.nf index 57044893..ef7af561 100644 --- a/modules/snapaligner/paired/main.nf +++ b/modules/snapaligner/align/main.nf @@ -1,4 +1,4 @@ -process SNAPALIGNER_PAIRED { +process SNAPALIGNER_ALIGN { tag '$meta.id' label 'process_high' @@ -21,15 +21,16 @@ process SNAPALIGNER_PAIRED { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def subcmd = meta.single_end ? "single" : "paired" """ mkdir -p index mv $index index/ - snap-aligner paired \\ + snap-aligner ${subcmd} \\ index \\ ${reads.join(" ")} \\ - -o -bam ${prefix}.bam \\ + -o ${prefix}.bam \\ -t ${task.cpus} \\ $args diff --git a/modules/snapaligner/paired/meta.yml b/modules/snapaligner/align/meta.yml similarity index 86% rename from modules/snapaligner/paired/meta.yml rename to modules/snapaligner/align/meta.yml index b19e0174..611b0b71 100644 --- a/modules/snapaligner/paired/meta.yml +++ b/modules/snapaligner/align/meta.yml @@ -1,5 +1,5 @@ -name: "snapaligner_paired" -description: Performs paired end fastq alignment to a fasta reference using SNAP +name: "snapaligner_align" +description: Performs fastq alignment to a fasta reference using SNAP keywords: - alignment - map @@ -22,7 +22,7 @@ input: e.g. [ id:'test', single_end:false ] - reads: type: file - description: List of input fastq files of size 2 for fastq or 1 for bam + description: List of input fastq files of size 2 for paired fastq or 1 for bam or single fastq pattern: "*.{fastq.gz,fq.gz,fastq,fq,bam}" - index: type: file diff --git a/modules/snapaligner/single/main.nf b/modules/snapaligner/single/main.nf deleted file mode 100644 index b13e1153..00000000 --- a/modules/snapaligner/single/main.nf +++ /dev/null @@ -1,41 +0,0 @@ -process SNAPALIGNER_SINGLE { - tag '$meta.id' - label 'process_high' - - conda (params.enable_conda ? "bioconda::snap-aligner=2.0.1" : null) - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/snap-aligner:2.0.1--hd03093a_1': - 'quay.io/biocontainers/snap-aligner:2.0.1--hd03093a_1' }" - - input: - tuple val(meta), path(reads) - path index - - output: - tuple val(meta), path("*.bam"), emit: bam - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - - """ - mkdir -p index - mv $index index/ - - snap-aligner single \\ - index \\ - ${reads.join(" ")} \\ - -o -bam ${prefix}.bam \\ - -t ${task.cpus} \\ - $args - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - snapaligner: \$(snap-aligner 2>&1| head -n 1 | sed 's/^.*version //;s/.\$//') - END_VERSIONS - """ -} diff --git a/modules/snapaligner/single/meta.yml b/modules/snapaligner/single/meta.yml deleted file mode 100644 index e69cc721..00000000 --- a/modules/snapaligner/single/meta.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: "snapaligner_single" -description: Performs single end fastq alignment to a fasta reference using SNAP -keywords: - - alignment - - map - - fastq - - bam - - sam -tools: - - "snapaligner": - description: "Scalable Nucleotide Alignment Program -- a fast and accurate read aligner for high-throughput sequencing data" - homepage: "http://snap.cs.berkeley.edu" - documentation: "https://1drv.ms/b/s!AhuEg_0yZD86hcpblUt-muHKYsG8fA?e=R8ogug" - tool_dev_url: "https://github.com/amplab/snap" - doi: "10.1101/2021.11.23.469039" - licence: "['Apache v2']" -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: List of single end input files - pattern: "*.{fastq.gz,fq.gz,fastq,fq,bam}" - - index: - type: file - description: List of SNAP genome index files - pattern: "{Genome,GenomeIndex,GenomeIndexHash,OverflowTable}" - -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - - bam: - type: file - description: Aligned BAM file - pattern: "*.{bam}" - -authors: - - "@matthdsm" diff --git a/tests/modules/snapaligner/align/main.nf b/tests/modules/snapaligner/align/main.nf new file mode 100644 index 00000000..4f5943fe --- /dev/null +++ b/tests/modules/snapaligner/align/main.nf @@ -0,0 +1,29 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SNAPALIGNER_INDEX } from '../../../../modules/snapaligner/index/main.nf' +include { SNAPALIGNER_ALIGN as SNAPALIGNER_SINGLE } from '../../../../modules/snapaligner/align/main.nf' +include { SNAPALIGNER_ALIGN as SNAPALIGNER_PAIRED } from '../../../../modules/snapaligner/align/main.nf' + +workflow test_snapaligner_single { + + input = [ + [ id:'test', single_end:true ], // meta map + [file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)] + ] + + SNAPALIGNER_INDEX ( file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true),[],[],[]) + SNAPALIGNER_SINGLE ( input, SNAPALIGNER_INDEX.out.index ) +} + +workflow test_snapaligner_paired { + + input = [ + [ id:'test', single_end:false ], // meta map + [file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true)] + ] + + SNAPALIGNER_INDEX ( file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true),[],[],[]) + SNAPALIGNER_PAIRED ( input, SNAPALIGNER_INDEX.out.index ) +} diff --git a/tests/modules/snapaligner/paired/nextflow.config b/tests/modules/snapaligner/align/nextflow.config similarity index 100% rename from tests/modules/snapaligner/paired/nextflow.config rename to tests/modules/snapaligner/align/nextflow.config diff --git a/tests/modules/snapaligner/align/test.yml b/tests/modules/snapaligner/align/test.yml new file mode 100644 index 00000000..9cc7e230 --- /dev/null +++ b/tests/modules/snapaligner/align/test.yml @@ -0,0 +1,19 @@ +- name: snapaligner align test_snapaligner_single + command: nextflow run tests/modules/snapaligner/align -entry test_snapaligner_single -c tests/config/nextflow.config + tags: + - snapaligner/single + - snapaligner + files: + - path: output/snapaligner/test.bam + md5sum: 5d95594e4ef1ee23ce56e6a7cb64f0f2 + - path: output/snapaligner/versions.yml + +- name: snapaligner align test_snapaligner_paired + command: nextflow run tests/modules/snapaligner/align -entry test_snapaligner_paired -c tests/config/nextflow.config + tags: + - snapaligner/paired + - snapaligner + files: + - path: output/snapaligner/test.bam + md5sum: a1405da5876f15dbe8a81516b94c2a15 + - path: output/snapaligner/versions.yml diff --git a/tests/modules/snapaligner/paired/main.nf b/tests/modules/snapaligner/paired/main.nf deleted file mode 100644 index b25ca8c2..00000000 --- a/tests/modules/snapaligner/paired/main.nf +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { SNAPALIGNER_INDEX } from '../../../../modules/snapaligner/index/main.nf' -include { SNAPALIGNER_PAIRED } from '../../../../modules/snapaligner/paired/main.nf' - -workflow test_snapaligner_paired { - - input = [ - [ id:'test', single_end:false ], // meta map - [file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true)] - ] - - SNAPALIGNER_INDEX ( file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true),[],[],[]) - SNAPALIGNER_PAIRED ( input, SNAPALIGNER_INDEX.out.index ) -} diff --git a/tests/modules/snapaligner/paired/test.yml b/tests/modules/snapaligner/paired/test.yml deleted file mode 100644 index 7df1e02b..00000000 --- a/tests/modules/snapaligner/paired/test.yml +++ /dev/null @@ -1,9 +0,0 @@ -- name: snapaligner paired test_snapaligner_paired - command: nextflow run tests/modules/snapaligner/paired -entry test_snapaligner_paired -c tests/config/nextflow.config - tags: - - snapaligner - - snapaligner/paired - files: - - path: output/snapaligner/test.bam - md5sum: 2ac92e9539fa246dd6db52b5de56fca5 - - path: output/snapaligner/versions.yml diff --git a/tests/modules/snapaligner/single/main.nf b/tests/modules/snapaligner/single/main.nf deleted file mode 100644 index 616e517a..00000000 --- a/tests/modules/snapaligner/single/main.nf +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { SNAPALIGNER_INDEX } from '../../../../modules/snapaligner/index/main.nf' -include { SNAPALIGNER_SINGLE } from '../../../../modules/snapaligner/single/main.nf' - -workflow test_snapaligner_single { - - input = [ - [ id:'test', single_end:false ], // meta map - [file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)] - ] - - SNAPALIGNER_INDEX ( file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true),[],[],[]) - SNAPALIGNER_SINGLE ( input, SNAPALIGNER_INDEX.out.index ) -} diff --git a/tests/modules/snapaligner/single/nextflow.config b/tests/modules/snapaligner/single/nextflow.config deleted file mode 100644 index 50f50a7a..00000000 --- a/tests/modules/snapaligner/single/nextflow.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - -} \ No newline at end of file diff --git a/tests/modules/snapaligner/single/test.yml b/tests/modules/snapaligner/single/test.yml deleted file mode 100644 index bbcbba1f..00000000 --- a/tests/modules/snapaligner/single/test.yml +++ /dev/null @@ -1,9 +0,0 @@ -- name: snapaligner single test_snapaligner_single - command: nextflow run tests/modules/snapaligner/single -entry test_snapaligner_single -c tests/config/nextflow.config - tags: - - snapaligner/single - - snapaligner - files: - - path: output/snapaligner/test.bam - md5sum: 696f7ea8e1aa5f9d7dafb9d0134fe25d - - path: output/snapaligner/versions.yml From 26d2231e854b909fcf0d2a4971c01a7030ae6cf2 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 6 May 2022 14:16:38 +0200 Subject: [PATCH 470/592] fix linting --- tests/config/pytest_modules.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index effe6fe2..2c9ea7d4 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1763,13 +1763,9 @@ snapaligner/index: - modules/snapaligner/index/** - tests/modules/snapaligner/index/** -snapaligner/paired: - - modules/snapaligner/paired/** - - tests/modules/snapaligner/paired/** - -snapaligner/single: - - modules/snapaligner/single/** - - tests/modules/snapaligner/single/** +snapaligner/align: + - modules/snapaligner/align/** + - tests/modules/snapaligner/align/** snpdists: - modules/snpdists/** From 84b354ab6a110861db68e0d3eb6b0e746d014845 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 6 May 2022 14:23:40 +0200 Subject: [PATCH 471/592] Added the rtgtools/vcfeval module --- modules/rtgtools/vcfeval/main.nf | 70 ++++++++++--------------- modules/rtgtools/vcfeval/meta.yml | 54 +++++++++++-------- tests/config/test_data.config | 4 ++ tests/modules/rtgtools/vcfeval/main.nf | 32 +++++++++-- tests/modules/rtgtools/vcfeval/test.yml | 29 ++++++---- 5 files changed, 113 insertions(+), 76 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 4fd8aa4b..0b927a22 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -1,46 +1,18 @@ -// TODO nf-core: If in doubt look at other nf-core/modules to see how we are doing things! :) -// https://github.com/nf-core/modules/tree/master/modules -// You can also ask for help via your pull request or on the #modules channel on the nf-core Slack workspace: -// https://nf-co.re/join -// TODO nf-core: A module file SHOULD only define input and output files as command-line parameters. -// All other parameters MUST be provided using the "task.ext" directive, see here: -// https://www.nextflow.io/docs/latest/process.html#ext -// where "task.ext" is a string. -// Any parameters that need to be evaluated in the context of a particular sample -// e.g. single-end/paired-end data MUST also be defined and evaluated appropriately. -// TODO nf-core: Software that can be piped together SHOULD be added to separate module files -// unless there is a run-time, storage advantage in implementing in this way -// e.g. it's ok to have a single module for bwa to output BAM instead of SAM: -// bwa mem | samtools view -B -T ref.fasta -// TODO nf-core: Optional inputs are not currently supported by Nextflow. However, using an empty -// list (`[]`) instead of a file can be used to work around this issue. - process RTGTOOLS_VCFEVAL { tag "$meta.id" label 'process_medium' - // TODO nf-core: List required Conda package(s). - // Software MUST be pinned to channel (i.e. "bioconda"), version (i.e. "1.10"). - // For Conda, the build (i.e. "h9402c20_2") must be EXCLUDED to support installation on different operating systems. - // TODO nf-core: See section in main README for further information regarding finding and adding container addresses to the section below. conda (params.enable_conda ? "bioconda::rtg-tools=3.12.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/rtg-tools:3.12.1--hdfd78af_0': 'quay.io/biocontainers/rtg-tools:3.12.1--hdfd78af_0' }" input: - // TODO nf-core: Where applicable all sample-specific information e.g. "id", "single_end", "read_group" - // MUST be provided as an input via a Groovy Map called "meta". - // This information may not be required in some instances e.g. indexing reference genome files: - // https://github.com/nf-core/modules/blob/master/modules/bwa/index/main.nf - // TODO nf-core: Where applicable please provide/convert compressed files as input/output - // e.g. "*.fastq.gz" and NOT "*.fastq", "*.bam" and NOT "*.sam" etc. - tuple val(meta), path(bam) + tuple val(meta), path(truth_vcf), path(truth_vcf_tbi), path(query_vcf), path(query_vcf_tbi), path(bed) + path(sdf) output: - // TODO nf-core: Named file extensions MUST be emitted for ALL output channels - tuple val(meta), path("*.bam"), emit: bam - // TODO nf-core: List additional required output channels/values here + tuple val(meta), path("*.txt"), emit: results path "versions.yml" , emit: versions when: @@ -49,19 +21,35 @@ process RTGTOOLS_VCFEVAL { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - // TODO nf-core: Where possible, a command MUST be provided to obtain the version number of the software e.g. 1.10 - // If the software is unable to output a version number on the command-line then it can be manually specified - // e.g. https://github.com/nf-core/modules/blob/master/modules/homer/annotatepeaks/main.nf - // Each software used MUST provide the software name and version number in the YAML version file (versions.yml) - // TODO nf-core: It MUST be possible to pass additional parameters to the tool as a command-line string via the "task.ext.args" directive - // TODO nf-core: If the tool supports multi-threading then you MUST provide the appropriate parameter - // using the Nextflow "task" variable e.g. "--threads $task.cpus" - // TODO nf-core: Please replace the example samtools command below with your module's command - // TODO nf-core: Please indent the command appropriately (4 spaces!!) to help with readability ;) + def regions = bed ? "--bed-regions=$bed" : "" + def truth_index = truth_vcf_tbi ? "" : "rtg index $truth_vcf" + def query_index = query_vcf_tbi ? "" : "rtg index $query_vcf" + + sdf_basename = sdf.getBaseName().replace(".tar","") + tar_decomp = "" + if((sdf =~ /.tar.gz\b/).find() == true) { + tar_decomp = "tar -xzf $sdf" + } + """ + $tar_decomp + + $truth_index + $query_index + + rtg vcfeval \\ + $args \\ + --baseline=$truth_vcf \\ + $regions \\ + --calls=$query_vcf \\ + --output=$prefix \\ + --template=$sdf_basename \\ + --threads=$task.cpus \\ + > ${prefix}_results.txt + cat <<-END_VERSIONS > versions.yml "${task.process}": - rtgtools: \$(echo \$(rtg version | head -n 1 | awk '{print \$4}')) + rtg-tools: \$(echo \$(rtg version | head -n 1 | awk '{print \$4}')) END_VERSIONS """ } diff --git a/modules/rtgtools/vcfeval/meta.yml b/modules/rtgtools/vcfeval/meta.yml index 512a7734..061ea876 100644 --- a/modules/rtgtools/vcfeval/meta.yml +++ b/modules/rtgtools/vcfeval/meta.yml @@ -1,51 +1,63 @@ name: "rtgtools_vcfeval" -## TODO nf-core: Add a description of the module and list keywords -description: write your description here +description: The VCFeval tool of RTG tools. It is used to evaluate called variants for agreement with a baseline variant set keywords: - - sort + - benchmarking + - vcf + - rtg-tools tools: - "rtgtools": - ## TODO nf-core: Add a description and other details for the software below description: "RealTimeGenomics Tools -- Utilities for accurate VCF comparison and manipulation" - homepage: "None" - documentation: "None" - tool_dev_url: "None" + homepage: "https://www.realtimegenomics.com/products/rtg-tools" + documentation: "https://github.com/RealTimeGenomics/rtg-tools" + tool_dev_url: "https://github.com/RealTimeGenomics/rtg-tools" doi: "" licence: "['BSD']" -## TODO nf-core: Add a description of all of the variables used as input input: - # Only when we have meta - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - # - ## TODO nf-core: Delete / customise this example input - - bam: + - truth_vcf: type: file - description: BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" + description: A standard VCF to compare against + pattern: "*.{vcf,vcf.gz}" + - truth_vcf_index: + type: file + description: The index of the standard VCF (optional) + pattern: "*.tbi" + - query_vcf: + type: file + description: A VCF with called variants to benchmark against the standard + pattern: "*.{vcf,vcf.gz}" + - query_vcf_index: + type: file + description: The index of the called VCF (optional) + pattern: "*.tbi" + - bed: + type: file + description: The BED file of the called VCF + pattern: "*.bed" + - sdf: + type: folder/file + description: The SDF (RTG Sequence Data File) of the reference genome. Can be a folder or a tar-zipped folder. + pattern: "*.{,tar.gz}" -## TODO nf-core: Add a description of all of the variables used as output output: - #Only when we have meta - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - # - versions: type: file description: File containing software versions pattern: "versions.yml" - ## TODO nf-core: Delete / customise this example output - - bam: + - results: type: file - description: Sorted BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" + description: A text file containing the results of the benchmark + pattern: "*.txt" authors: - "@nvnieuwk" diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 62e38c4d..5a204ae1 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -132,6 +132,7 @@ params { transcriptome_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/transcriptome.fasta" genome2_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/genome2.fasta" genome_chain_gz = "${test_data_dir}/genomics/homo_sapiens/genome/genome.chain.gz" + genome_21_sdf = "${test_data_dir}/genomics/homo_sapiens/genome/genome_sdf.tar.gz" genome_21_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta" genome_21_fasta_fai = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai" genome_21_dict = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.dict" @@ -263,6 +264,9 @@ params { test2_haplotc_ann_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz" test2_haplotc_ann_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz.tbi" + test2_haplotc_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz" + test2_haplotc_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.vcf.gz.tbi" + test2_recal = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal" test2_recal_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal.idx" test2_tranches = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.tranches" diff --git a/tests/modules/rtgtools/vcfeval/main.nf b/tests/modules/rtgtools/vcfeval/main.nf index 1a4297fc..baf3c54d 100644 --- a/tests/modules/rtgtools/vcfeval/main.nf +++ b/tests/modules/rtgtools/vcfeval/main.nf @@ -7,9 +7,35 @@ include { RTGTOOLS_VCFEVAL } from '../../../../modules/rtgtools/vcfeval/main.nf' workflow test_rtgtools_vcfeval { input = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz_tbi'], checkIfExists: true), + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) ] - RTGTOOLS_VCFEVAL ( input ) + sdf = Channel.value( + file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) + ) + + RTGTOOLS_VCFEVAL ( input, sdf ) +} + +workflow test_rtgtools_vcfeval_no_index { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), + [], + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), + [], + file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + ] + + sdf = Channel.value( + file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) + ) + + RTGTOOLS_VCFEVAL ( input, sdf ) } diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index 862f4acd..73ed8cc6 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -1,14 +1,21 @@ -## TODO nf-core: Please run the following command to build this file: -# nf-core modules create-test-yml rtgtools/vcfeval -- name: "rtgtools vcfeval" - command: nextflow run ./tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval -c ./tests/config/nextflow.config -c ./tests/modules/rtgtools/vcfeval/nextflow.config +- name: rtgtools vcfeval test_rtgtools_vcfeval + command: nextflow run tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval -c tests/config/nextflow.config tags: - - "rtgtools" - # - - "rtgtools/vcfeval" - # + - rtgtools + - rtgtools/vcfeval files: - - path: "output/rtgtools/test.bam" - md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/rtgtools/test_results.txt + md5sum: 2e011aa6e54d258fcc3b45b2dda02ae4 - path: output/rtgtools/versions.yml - md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b + md5sum: 270ed7a5a8e347b251eb4aa2198f98e8 + +- name: rtgtools vcfeval test_rtgtools_vcfeval_no_index + command: nextflow run tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval_no_index -c tests/config/nextflow.config + tags: + - rtgtools + - rtgtools/vcfeval + files: + - path: output/rtgtools/test_results.txt + md5sum: 2e011aa6e54d258fcc3b45b2dda02ae4 + - path: output/rtgtools/versions.yml + md5sum: 8d0407000988c78fa43fe5cfe3d4449d From 0fa36e6777b968d8527966d6963e6ffdc7716592 Mon Sep 17 00:00:00 2001 From: Lucpen Date: Fri, 6 May 2022 15:26:34 +0200 Subject: [PATCH 472/592] fix added correct entry workflow in test.yml --- tests/modules/gatk4/mergebamalignment/test.yml | 2 +- tests/modules/gatk4/mutect2/test.yml | 2 +- tests/modules/gatk4/revertsam/test.yml | 2 +- tests/modules/gatk4/samtofastq/test.yml | 2 +- tests/modules/samtools/view/test.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/modules/gatk4/mergebamalignment/test.yml b/tests/modules/gatk4/mergebamalignment/test.yml index 84a67654..01d9bf46 100644 --- a/tests/modules/gatk4/mergebamalignment/test.yml +++ b/tests/modules/gatk4/mergebamalignment/test.yml @@ -9,7 +9,7 @@ - path: output/gatk4/versions.yml - name: gatk4 mergebamalignment test_gatk4_mergebamalignment_stubs - command: nextflow run ./tests/modules/gatk4/mergebamalignment -entry test_gatk4_mergebamalignment -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mergebamalignment/nextflow.config -stub-run + command: nextflow run ./tests/modules/gatk4/mergebamalignment -entry test_gatk4_mergebamalignment_stubs -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mergebamalignment/nextflow.config -stub-run tags: - gatk4 - gatk4/mergebamalignment diff --git a/tests/modules/gatk4/mutect2/test.yml b/tests/modules/gatk4/mutect2/test.yml index 3853801d..27fb40b9 100644 --- a/tests/modules/gatk4/mutect2/test.yml +++ b/tests/modules/gatk4/mutect2/test.yml @@ -71,7 +71,7 @@ - path: output/gatk4/versions.yml - name: gatk4 mutect2 test_gatk4_mutect2_tumor_normal_pair_f1r2_stubs - command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_tumor_normal_pair_f1r2 -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config -stub-run + command: nextflow run ./tests/modules/gatk4/mutect2 -entry test_gatk4_mutect2_tumor_normal_pair_f1r2_stubs -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/mutect2/nextflow.config -stub-run tags: - gatk4 - gatk4/mutect2 diff --git a/tests/modules/gatk4/revertsam/test.yml b/tests/modules/gatk4/revertsam/test.yml index 89e78659..fd26d06f 100644 --- a/tests/modules/gatk4/revertsam/test.yml +++ b/tests/modules/gatk4/revertsam/test.yml @@ -9,7 +9,7 @@ - path: output/gatk4/versions.yml - name: gatk4 revertsam test_gatk4_revertsam_stubs - command: nextflow run ./tests/modules/gatk4/revertsam -entry test_gatk4_revertsam -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/revertsam/nextflow.config -stub-run + command: nextflow run ./tests/modules/gatk4/revertsam -entry test_gatk4_revertsam_stubs -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/revertsam/nextflow.config -stub-run tags: - gatk4 - gatk4/revertsam diff --git a/tests/modules/gatk4/samtofastq/test.yml b/tests/modules/gatk4/samtofastq/test.yml index 1288a270..bab7fc7a 100644 --- a/tests/modules/gatk4/samtofastq/test.yml +++ b/tests/modules/gatk4/samtofastq/test.yml @@ -21,7 +21,7 @@ - path: output/gatk4/versions.yml - name: gatk4 samtofastq test_gatk4_samtofastq_paired_end_stubs - command: nextflow run ./tests/modules/gatk4/samtofastq -entry test_gatk4_samtofastq_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/samtofastq/nextflow.config -stub-run + command: nextflow run ./tests/modules/gatk4/samtofastq -entry test_gatk4_samtofastq_paired_end_stubs -c ./tests/config/nextflow.config -c ./tests/modules/gatk4/samtofastq/nextflow.config -stub-run tags: - gatk4 - gatk4/samtofastq diff --git a/tests/modules/samtools/view/test.yml b/tests/modules/samtools/view/test.yml index 2718130e..f3ad4552 100644 --- a/tests/modules/samtools/view/test.yml +++ b/tests/modules/samtools/view/test.yml @@ -16,7 +16,7 @@ - path: output/samtools/test.cram - name: samtools view test_samtools_view_stubs - command: nextflow run ./tests/modules/samtools/view -entry test_samtools_view -c ./tests/config/nextflow.config -c ./tests/modules/samtools/view/nextflow.config -stub-run + command: nextflow run ./tests/modules/samtools/view -entry test_samtools_view_stubs -c ./tests/config/nextflow.config -c ./tests/modules/samtools/view/nextflow.config -stub-run tags: - samtools/view - samtools From 7a85760d080d74ea8b883f9255a6d3861fd7d44b Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Fri, 6 May 2022 13:33:27 +0000 Subject: [PATCH 473/592] remove 'auto' test --- tests/modules/busco/main.nf | 48 +++++++++++++++++++++++++++++++++++- tests/modules/busco/test.yml | 30 ---------------------- 2 files changed, 47 insertions(+), 31 deletions(-) diff --git a/tests/modules/busco/main.nf b/tests/modules/busco/main.nf index e290b965..598e148a 100644 --- a/tests/modules/busco/main.nf +++ b/tests/modules/busco/main.nf @@ -13,12 +13,58 @@ workflow test_busco_genome_single_fasta { BUSCO ( input, - ['auto','bacteria_odb10', 'bacteroidetes_odb10'], // Launch with auto to use --auto-lineage, and specified lineages + ['bacteria_odb10', 'bacteroidetes_odb10'], // Launch with 'auto' to use --auto-lineage, and specified lineages // 'auto' removed from test due to memory issues [], // Download busco lineage [], // No config ) /* Output tree: + /tmp/tmpyz_hi62i/busco/ + ├── short_summary.specific.bacteria_odb10.genome.fna.json -> /tmp/tmpza_0dth3/33/7d8c9b2c8931d9ad6a67aa843895e7/short_summary.specific.bacteria_odb10.genome.fna.json + ├── short_summary.specific.bacteria_odb10.genome.fna.txt -> /tmp/tmpza_0dth3/33/7d8c9b2c8931d9ad6a67aa843895e7/short_summary.specific.bacteria_odb10.genome.fna.txt + ├── short_summary.specific.bacteroidetes_odb10.genome.fna.json -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/short_summary.specific.bacteroidetes_odb10.genome.fna.json + ├── short_summary.specific.bacteroidetes_odb10.genome.fna.txt -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/short_summary.specific.bacteroidetes_odb10.genome.fna.txt + ├── test-bacteria_odb10-busco -> /tmp/tmpza_0dth3/33/7d8c9b2c8931d9ad6a67aa843895e7/test-bacteria_odb10-busco/ + │ ├── genome.fna/ + │ │ ├── logs/ + │ │ │ ├── hmmsearch_err.log + │ │ │ ├── hmmsearch_out.log + │ │ │ ├── prodigal_err.log + │ │ │ └── prodigal_out.log + │ │ ├── prodigal_output/ + │ │ │ └── predicted_genes/ + │ │ └── run_bacteria_odb10/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ └── short_summary.txt + │ └── logs/ + │ └── busco.log + ├── test-bacteria_odb10-busco.batch_summary.txt -> /tmp/tmpza_0dth3/33/7d8c9b2c8931d9ad6a67aa843895e7/test-bacteria_odb10-busco.batch_summary.txt + ├── test-bacteroidetes_odb10-busco -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/test-bacteroidetes_odb10-busco/ + │ ├── genome.fna/ + │ │ ├── logs/ + │ │ │ ├── hmmsearch_err.log + │ │ │ ├── hmmsearch_out.log + │ │ │ ├── prodigal_err.log + │ │ │ └── prodigal_out.log + │ │ ├── prodigal_output/ + │ │ │ └── predicted_genes/ + │ │ └── run_bacteroidetes_odb10/ + │ │ ├── busco_sequences/ + │ │ ├── full_table.tsv + │ │ ├── hmmer_output/ + │ │ ├── missing_busco_list.tsv + │ │ ├── short_summary.json + │ │ └── short_summary.txt + │ └── logs/ + │ └── busco.log + ├── test-bacteroidetes_odb10-busco.batch_summary.txt -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/test-bacteroidetes_odb10-busco.batch_summary.txt + └── versions.yml -> /tmp/tmpza_0dth3/6a/e95a0cd21785ce33d63b8f73a68a51/versions.yml + + Former Output tree -w 'auto': /tmp/tmp846crjv2/busco/ ├── short_summary.generic.bacteria_odb10.genome.fna.json -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.generic.bacteria_odb10.genome.fna.json ├── short_summary.generic.bacteria_odb10.genome.fna.txt -> /tmp/tmpi6af66j1/18/8be22ecd7a71471ff5082bd512972b/short_summary.generic.bacteria_odb10.genome.fna.txt diff --git a/tests/modules/busco/test.yml b/tests/modules/busco/test.yml index 2a801e64..43b810ba 100644 --- a/tests/modules/busco/test.yml +++ b/tests/modules/busco/test.yml @@ -3,20 +3,6 @@ tags: - busco files: - - path: output/busco/short_summary.generic.bacteria_odb10.genome.fna.json - contains: - - "one_line_summary" - - "input_file" - - "mode" - - "dataset" - - path: output/busco/short_summary.generic.bacteria_odb10.genome.fna.txt - contains: - - "BUSCO version" - - "The lineage dataset is" - - "BUSCO was run in mode" - - "Complete BUSCOs" - - "Missing BUSCOs" - - "Dependencies and versions" - path: output/busco/short_summary.specific.bacteria_odb10.genome.fna.json contains: - "one_line_summary" @@ -31,20 +17,6 @@ - "Complete BUSCOs" - "Missing BUSCOs" - "Dependencies and versions" - - path: output/busco/short_summary.specific.bacteroidales_odb10.genome.fna.json - contains: - - "one_line_summary" - - "input_file" - - "mode" - - "dataset" - - path: output/busco/short_summary.specific.bacteroidales_odb10.genome.fna.txt - contains: - - "BUSCO version" - - "The lineage dataset is" - - "BUSCO was run in mode" - - "Complete BUSCOs" - - "Missing BUSCOs" - - "Dependencies and versions" - path: output/busco/short_summary.specific.bacteroidetes_odb10.genome.fna.json contains: - "one_line_summary" @@ -59,8 +31,6 @@ - "Complete BUSCOs" - "Missing BUSCOs" - "Dependencies and versions" - - path: output/busco/test-auto-busco.batch_summary.txt - md5sum: 32f7765c310f33555c31c7a3e64c990e - path: output/busco/test-bacteria_odb10-busco.batch_summary.txt md5sum: e50690742e9ae6abdd2bf99334ff9e12 - path: output/busco/test-bacteroidetes_odb10-busco.batch_summary.txt From 971a17a3ab9f81785d3c6a265746abe3bfe319b0 Mon Sep 17 00:00:00 2001 From: Lucpen Date: Fri, 6 May 2022 15:34:18 +0200 Subject: [PATCH 474/592] fix datatest for stubs --- tests/modules/gatk4/mergebamalignment/main.nf | 8 +++---- tests/modules/gatk4/mutect2/main.nf | 24 +++++++++---------- tests/modules/gatk4/revertsam/main.nf | 2 +- tests/modules/gatk4/samtofastq/main.nf | 4 ++-- tests/modules/samtools/view/main.nf | 2 +- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/modules/gatk4/mergebamalignment/main.nf b/tests/modules/gatk4/mergebamalignment/main.nf index 0eb6876d..d0949a52 100644 --- a/tests/modules/gatk4/mergebamalignment/main.nf +++ b/tests/modules/gatk4/mergebamalignment/main.nf @@ -17,11 +17,11 @@ workflow test_gatk4_mergebamalignment { workflow test_gatk4_mergebamalignment_stubs { input = [ [ id:'test' ], // meta map - "test_foo.bam", - "test_bar.bam" + file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_unaligned_bam'], checkIfExists: true) ] - fasta = "genome.fasta" - dict = "genome.fasta.dict" + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + dict = file(params.test_data['sarscov2']['genome']['genome_dict'], checkIfExists: true) GATK4_MERGEBAMALIGNMENT ( input, fasta, dict ) } diff --git a/tests/modules/gatk4/mutect2/main.nf b/tests/modules/gatk4/mutect2/main.nf index 310e9ca1..fa229eff 100644 --- a/tests/modules/gatk4/mutect2/main.nf +++ b/tests/modules/gatk4/mutect2/main.nf @@ -120,23 +120,23 @@ workflow test_gatk4_mutect2_mitochondria { } workflow test_gatk4_mutect2_tumor_normal_pair_f1r2_stubs { - input = [ [ id:'test', normal_id:'normal', tumor_id:'tumour' ], // meta map - [ "foo_paired.bam", - "foo_paired2.bam" + input = [ [ id:'test', normal_id:'normal', tumor_id:'tumour' ], // meta map + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam'], checkIfExists: true) ], - [ "foo_paired.bam.bai", - "foo_paired2.bam.bai" + [ file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true) ], [] ] - fasta = "genome.fasta" - fai = "genome.fasta.fai" - dict = "genome.fasta.dict" - germline_resource = "genome_gnomAD.r2.1.1.vcf.gz" - germline_resource_tbi = "genome_gnomAD.r2.1.1.vcf.gz.tbi" - panel_of_normals = "genome_mills_and_1000G.indels.hg38.vcf.gz" - panel_of_normals_tbi = "genome_mills_and_1000G.indels.hg38.vcf.gz.tbi" + fasta = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_21_fasta_fai'], checkIfExists: true) + dict = file(params.test_data['homo_sapiens']['genome']['genome_21_dict'], checkIfExists: true) + germline_resource = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'], checkIfExists: true) + germline_resource_tbi = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz_tbi'], checkIfExists: true) + panel_of_normals = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz'], checkIfExists: true) + panel_of_normals_tbi = file(params.test_data['homo_sapiens']['genome']['mills_and_1000g_indels_21_vcf_gz_tbi'], checkIfExists: true) GATK4_MUTECT2_F1R2 ( input, fasta, fai, dict, germline_resource, germline_resource_tbi, panel_of_normals, panel_of_normals_tbi ) } diff --git a/tests/modules/gatk4/revertsam/main.nf b/tests/modules/gatk4/revertsam/main.nf index 738ecd8f..5b14d471 100644 --- a/tests/modules/gatk4/revertsam/main.nf +++ b/tests/modules/gatk4/revertsam/main.nf @@ -14,7 +14,7 @@ workflow test_gatk4_revertsam { workflow test_gatk4_revertsam_stubs { input = [ [ id:'test' ], // meta map - "foo_paired_end.bam" + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true) ] GATK4_REVERTSAM ( input ) diff --git a/tests/modules/gatk4/samtofastq/main.nf b/tests/modules/gatk4/samtofastq/main.nf index 79d04c7c..757b080f 100644 --- a/tests/modules/gatk4/samtofastq/main.nf +++ b/tests/modules/gatk4/samtofastq/main.nf @@ -21,8 +21,8 @@ workflow test_gatk4_samtofastq_paired_end { } workflow test_gatk4_samtofastq_paired_end_stubs { - input = [ [ id:'test', single_end: false ], // meta map - [ "foo_paired_end.bam" ] + input = [ [ id:'test', single_end: true ], // meta map + [ file(params.test_data['sarscov2']['illumina']['test_single_end_bam'], checkIfExists: true) ] ] GATK4_SAMTOFASTQ ( input ) diff --git a/tests/modules/samtools/view/main.nf b/tests/modules/samtools/view/main.nf index bdad1078..0e3f597e 100644 --- a/tests/modules/samtools/view/main.nf +++ b/tests/modules/samtools/view/main.nf @@ -25,7 +25,7 @@ workflow test_samtools_view_cram { workflow test_samtools_view_stubs { input = [ [ id:'test', single_end:false ], // meta map - "foo_paired_end.bam", + file(params.test_data['sarscov2']['illumina']['test_paired_end_bam'], checkIfExists: true), [] ] From 8c857dee3a3ea50a41e212ac2e8dda24b50c90f6 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 6 May 2022 16:16:57 +0200 Subject: [PATCH 475/592] Fixed the sdf folder fetching --- tests/config/test_data.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 5a204ae1..f8d6b948 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -132,7 +132,7 @@ params { transcriptome_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/transcriptome.fasta" genome2_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/genome2.fasta" genome_chain_gz = "${test_data_dir}/genomics/homo_sapiens/genome/genome.chain.gz" - genome_21_sdf = "${test_data_dir}/genomics/homo_sapiens/genome/genome_sdf.tar.gz" + genome_21_sdf = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome_sdf.tar.gz" genome_21_fasta = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta" genome_21_fasta_fai = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.fasta.fai" genome_21_dict = "${test_data_dir}/genomics/homo_sapiens/genome/chr21/sequence/genome.dict" From e271410017c52b6ada3008db313a702c8e005263 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 6 May 2022 16:21:32 +0200 Subject: [PATCH 476/592] Removed some whitespaces --- modules/rtgtools/vcfeval/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 0b927a22..9daadd05 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -24,11 +24,11 @@ process RTGTOOLS_VCFEVAL { def regions = bed ? "--bed-regions=$bed" : "" def truth_index = truth_vcf_tbi ? "" : "rtg index $truth_vcf" def query_index = query_vcf_tbi ? "" : "rtg index $query_vcf" - + sdf_basename = sdf.getBaseName().replace(".tar","") tar_decomp = "" if((sdf =~ /.tar.gz\b/).find() == true) { - tar_decomp = "tar -xzf $sdf" + tar_decomp = "tar -xzf $sdf" } """ From 67481c6d543c8d84940376cb3b258354bb66f988 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Fri, 6 May 2022 15:04:04 +0000 Subject: [PATCH 477/592] Start Meryl count --- modules/meryl/count/main.nf | 45 ++++++++++++++++++++ modules/meryl/count/meta.yml | 51 +++++++++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/meryl/count/main.nf | 15 +++++++ tests/modules/meryl/count/nextflow.config | 7 ++++ tests/modules/meryl/count/test.yml | 8 ++++ 6 files changed, 130 insertions(+) create mode 100644 modules/meryl/count/main.nf create mode 100644 modules/meryl/count/meta.yml create mode 100644 tests/modules/meryl/count/main.nf create mode 100644 tests/modules/meryl/count/nextflow.config create mode 100644 tests/modules/meryl/count/test.yml diff --git a/modules/meryl/count/main.nf b/modules/meryl/count/main.nf new file mode 100644 index 00000000..80491242 --- /dev/null +++ b/modules/meryl/count/main.nf @@ -0,0 +1,45 @@ +process MERYL_COUNT { + tag "$meta.id" + label 'process_medium' + + conda (params.enable_conda ? "bioconda::meryl=1.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/meryl:1.3--h87f3376_1': + 'quay.io/biocontainers/meryl:1.3--h87f3376_1' }" + + input: + tuple val(meta), path(reads) + + output: + tuple val(meta), path("*.meryl"), emit: meryl + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + for READ in $reads; do + meryl count \\ + threads=$task.cpus \\ + $args \\ + $reads \\ + output read.\${READ%.f*}.meryl + done + meryl union-sum \\ + threads=$task.cpus \\ + $args2 \\ + output ${prefix}.meryl + + # clean up + rm -rf read.*.meryl + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + meryl: \$( meryl --version |& sed 's/meryl //' ) + END_VERSIONS + """ +} diff --git a/modules/meryl/count/meta.yml b/modules/meryl/count/meta.yml new file mode 100644 index 00000000..885267ec --- /dev/null +++ b/modules/meryl/count/meta.yml @@ -0,0 +1,51 @@ +name: "meryl_count" +## TODO nf-core: Add a description of the module and list keywords +description: write your description here +keywords: + - sort +tools: + - "meryl": + ## TODO nf-core: Add a description and other details for the software below + description: "" + homepage: "{}" + documentation: "{}" + tool_dev_url: "{}" + doi: "" + licence: "['GPL']" + +## TODO nf-core: Add a description of all of the variables used as input +input: + # Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + # + ## TODO nf-core: Delete / customise this example input + - bam: + type: file + description: BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +## TODO nf-core: Add a description of all of the variables used as output +output: + #Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + # + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + ## TODO nf-core: Delete / customise this example output + - bam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +authors: + - "@mahesh-panchal" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 62816c50..82c2de61 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1214,6 +1214,10 @@ meningotype: - modules/meningotype/** - tests/modules/meningotype/** +meryl/count: + - modules/meryl/count/** + - tests/modules/meryl/count/** + metabat2/jgisummarizebamcontigdepths: - modules/metabat2/jgisummarizebamcontigdepths/** - tests/modules/metabat2/jgisummarizebamcontigdepths/** diff --git a/tests/modules/meryl/count/main.nf b/tests/modules/meryl/count/main.nf new file mode 100644 index 00000000..8706046a --- /dev/null +++ b/tests/modules/meryl/count/main.nf @@ -0,0 +1,15 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MERYL_COUNT } from '../../../../modules/meryl/count/main.nf' + +workflow test_meryl_count_single_end { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + + MERYL_COUNT ( input ) +} diff --git a/tests/modules/meryl/count/nextflow.config b/tests/modules/meryl/count/nextflow.config new file mode 100644 index 00000000..99e1f846 --- /dev/null +++ b/tests/modules/meryl/count/nextflow.config @@ -0,0 +1,7 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + ext.args = 'k=21' + ext.args2 = 'k=21' + +} diff --git a/tests/modules/meryl/count/test.yml b/tests/modules/meryl/count/test.yml new file mode 100644 index 00000000..0565bd1a --- /dev/null +++ b/tests/modules/meryl/count/test.yml @@ -0,0 +1,8 @@ +- name: meryl count test_meryl_count_single_end + command: nextflow run tests/modules/meryl/count -entry test_meryl_count_single_end -c tests/config/nextflow.config + tags: + - meryl/count + - meryl + files: + - path: output/meryl/versions.yml + md5sum: 5fe537d873925ccbcc4edf0983e9eda0 From ed09978222ca8fba9b4f9a872b84d8a75acdfc5c Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Fri, 6 May 2022 14:16:15 +0200 Subject: [PATCH 478/592] chore: update build number --- modules/sratools/prefetch/main.nf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/sratools/prefetch/main.nf b/modules/sratools/prefetch/main.nf index 2233d0aa..75fa17a1 100644 --- a/modules/sratools/prefetch/main.nf +++ b/modules/sratools/prefetch/main.nf @@ -5,8 +5,8 @@ process SRATOOLS_PREFETCH { conda (params.enable_conda ? 'bioconda::sra-tools=2.11.0' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/sra-tools:2.11.0--pl5262h314213e_0' : - 'quay.io/biocontainers/sra-tools:2.11.0--pl5262h314213e_0' }" + 'https://depot.galaxyproject.org/singularity/sra-tools:2.11.0--pl5321ha49a11a_3' : + 'quay.io/biocontainers/sra-tools:2.11.0--pl5321ha49a11a_3' }" input: tuple val(meta), val(id) @@ -30,7 +30,6 @@ process SRATOOLS_PREFETCH { prefetch \\ $args \\ - --progress \\ $id vdb-validate $id From dd1c66783ae5fd2cd8b416687e465d9f1b558282 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Fri, 6 May 2022 17:09:01 +0200 Subject: [PATCH 479/592] refactor: use a template to add retrying --- modules/sratools/prefetch/main.nf | 27 ++------- .../prefetch/templates/retry_with_backoff.sh | 59 +++++++++++++++++++ 2 files changed, 65 insertions(+), 21 deletions(-) create mode 100755 modules/sratools/prefetch/templates/retry_with_backoff.sh diff --git a/modules/sratools/prefetch/main.nf b/modules/sratools/prefetch/main.nf index 75fa17a1..92a66616 100644 --- a/modules/sratools/prefetch/main.nf +++ b/modules/sratools/prefetch/main.nf @@ -12,31 +12,16 @@ process SRATOOLS_PREFETCH { tuple val(meta), val(id) output: - tuple val(meta), path("$id"), emit: sra + tuple val(meta), path(id), emit: sra path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when - script: - def args = task.ext.args ?: '' - def config = "/LIBS/GUID = \"${UUID.randomUUID().toString()}\"\\n/libs/cloud/report_instance_identity = \"true\"\\n" - """ - eval "\$(vdb-config -o n NCBI_SETTINGS | sed 's/[" ]//g')" - if [[ ! -f "\${NCBI_SETTINGS}" ]]; then - mkdir -p "\$(dirname "\${NCBI_SETTINGS}")" - printf '${config}' > "\${NCBI_SETTINGS}" - fi + shell: + args = task.ext.args ?: '' + args2 = task.ext.args2 ?: '5 1 100' // + config = "/LIBS/GUID = \"${UUID.randomUUID().toString()}\"\\n/libs/cloud/report_instance_identity = \"true\"\\n" - prefetch \\ - $args \\ - $id - - vdb-validate $id - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - sratools: \$(prefetch --version 2>&1 | grep -Eo '[0-9.]+') - END_VERSIONS - """ + template 'retry_with_backoff.sh' } diff --git a/modules/sratools/prefetch/templates/retry_with_backoff.sh b/modules/sratools/prefetch/templates/retry_with_backoff.sh new file mode 100755 index 00000000..fbcb6532 --- /dev/null +++ b/modules/sratools/prefetch/templates/retry_with_backoff.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +set -u + +retry_with_backoff() { + local max_attempts=${1} + local delay=${2} + local max_time=${3} + local attempt=1 + local output= + local status= + + # Remove the first three arguments to this function in order to access + # the 'real' command with `${@}`. + shift 3 + + while [ ${attempt} -le ${max_attempts} ]; do + output=$("${@}") + status=${?} + + if [ ${status} -eq 0 ]; then + break + fi + + if [ ${attempt} -lt ${max_attempts} ]; then + echo "Failed attempt ${attempt} of ${max_attempts}. Retrying in ${delay} s." >&2 + sleep ${delay} + elif [ ${attempt} -eq ${max_attempts} ]; then + echo "Failed after ${attempt} attempts." >&2 + return ${status} + fi + + attempt=$(( ${attempt} + 1 )) + delay=$(( ${delay} * 2 )) + if [ ${delay} -ge ${max_time} ]; then + delay=${max_time} + fi + done + + echo "${output}" +} + +eval "$(vdb-config -o n NCBI_SETTINGS | sed 's/[" ]//g')" +if [[ ! -f "${NCBI_SETTINGS}" ]]; then + mkdir -p "$(dirname "${NCBI_SETTINGS}")" + printf '!{config}' > "${NCBI_SETTINGS}" +fi + +retry_with_backoff !{args2} \ + prefetch \ + !{args} \ + !{id} + +vdb-validate !{id} + +cat <<-END_VERSIONS > versions.yml +"!{task.process}": + sratools: $(prefetch --version 2>&1 | grep -Eo '[0-9.]+') +END_VERSIONS From ea41c753c0d8348260dd552f58dc0aca7bdd4d51 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Fri, 6 May 2022 17:28:56 +0200 Subject: [PATCH 480/592] fix: remove retry label Call gets retried by bash script --- modules/sratools/prefetch/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/sratools/prefetch/main.nf b/modules/sratools/prefetch/main.nf index 92a66616..3408c3e9 100644 --- a/modules/sratools/prefetch/main.nf +++ b/modules/sratools/prefetch/main.nf @@ -1,7 +1,6 @@ process SRATOOLS_PREFETCH { tag "$id" label 'process_low' - label 'error_retry' conda (params.enable_conda ? 'bioconda::sra-tools=2.11.0' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? From ec7b460fa4a5ed50d7b0e4c73f984a9710bb703d Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Fri, 6 May 2022 17:54:35 +0200 Subject: [PATCH 481/592] add missing file --- tests/config/test_data.config | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index e9a5f4ab..516e6238 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -125,6 +125,7 @@ params { genome_gff3 = "${test_data_dir}/genomics/homo_sapiens/genome/genome.gff3" genome_gtf = "${test_data_dir}/genomics/homo_sapiens/genome/genome.gtf" genome_interval_list = "${test_data_dir}/genomics/homo_sapiens/genome/genome.interval_list" + genome_multi_interval_bed = "${test_data_dir}/genomics/homo_sapiens/genome/multi_intervals.bed" genome_sizes = "${test_data_dir}/genomics/homo_sapiens/genome/genome.sizes" genome_bed = "${test_data_dir}/genomics/homo_sapiens/genome/genome.bed" genome_header = "${test_data_dir}/genomics/homo_sapiens/genome/genome.header" From ac217479e9cb4579060a6631405619f6dc8e6a92 Mon Sep 17 00:00:00 2001 From: "Maxime U. Garcia" Date: Fri, 6 May 2022 18:18:32 +0200 Subject: [PATCH 482/592] Update tests/config/test_data.config Co-authored-by: Jose Espinosa-Carrasco --- tests/config/test_data.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 516e6238..6fd65ab7 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -125,7 +125,7 @@ params { genome_gff3 = "${test_data_dir}/genomics/homo_sapiens/genome/genome.gff3" genome_gtf = "${test_data_dir}/genomics/homo_sapiens/genome/genome.gtf" genome_interval_list = "${test_data_dir}/genomics/homo_sapiens/genome/genome.interval_list" - genome_multi_interval_bed = "${test_data_dir}/genomics/homo_sapiens/genome/multi_intervals.bed" + genome_multi_interval_bed = "${test_data_dir}/genomics/homo_sapiens/genome/genome.multi_intervals.bed" genome_sizes = "${test_data_dir}/genomics/homo_sapiens/genome/genome.sizes" genome_bed = "${test_data_dir}/genomics/homo_sapiens/genome/genome.bed" genome_header = "${test_data_dir}/genomics/homo_sapiens/genome/genome.header" From dd458e3388d50212e447e85794f1b027abda5c93 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 6 May 2022 18:57:17 +0200 Subject: [PATCH 483/592] fix tags --- tests/modules/snapaligner/align/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/snapaligner/align/test.yml b/tests/modules/snapaligner/align/test.yml index 9cc7e230..4e4fae61 100644 --- a/tests/modules/snapaligner/align/test.yml +++ b/tests/modules/snapaligner/align/test.yml @@ -1,7 +1,7 @@ - name: snapaligner align test_snapaligner_single command: nextflow run tests/modules/snapaligner/align -entry test_snapaligner_single -c tests/config/nextflow.config tags: - - snapaligner/single + - snapaligner/align - snapaligner files: - path: output/snapaligner/test.bam @@ -11,7 +11,7 @@ - name: snapaligner align test_snapaligner_paired command: nextflow run tests/modules/snapaligner/align -entry test_snapaligner_paired -c tests/config/nextflow.config tags: - - snapaligner/paired + - snapaligner/align - snapaligner files: - path: output/snapaligner/test.bam From 1013be2623c074dc3b0e6ed7a37185188c5305f0 Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Sat, 7 May 2022 15:22:52 +0200 Subject: [PATCH 484/592] fix path to script --- tests/subworkflows/nf-core/annotation/snpeff/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/subworkflows/nf-core/annotation/snpeff/main.nf b/tests/subworkflows/nf-core/annotation/snpeff/main.nf index 4aee20ee..bb56b46b 100644 --- a/tests/subworkflows/nf-core/annotation/snpeff/main.nf +++ b/tests/subworkflows/nf-core/annotation/snpeff/main.nf @@ -2,7 +2,7 @@ nextflow.enable.dsl = 2 -include { ANNOTATION_SNPEFF } from '../../../../../subworkflows/nf-core/annotation_snpeff/main' +include { ANNOTATION_SNPEFF } from '../../../../../subworkflows/nf-core/annotation/snpeff/main' workflow annotation_snpeff { input = [ From 3d428e29332f1b332b7ffa1f36f8838a6fd90f0b Mon Sep 17 00:00:00 2001 From: MaxUlysse Date: Sat, 7 May 2022 15:28:40 +0200 Subject: [PATCH 485/592] fix spacing --- tests/config/test_data.config | 254 +++++++++++++++++----------------- 1 file changed, 127 insertions(+), 127 deletions(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 6fd65ab7..4ff6efd9 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -125,7 +125,7 @@ params { genome_gff3 = "${test_data_dir}/genomics/homo_sapiens/genome/genome.gff3" genome_gtf = "${test_data_dir}/genomics/homo_sapiens/genome/genome.gtf" genome_interval_list = "${test_data_dir}/genomics/homo_sapiens/genome/genome.interval_list" - genome_multi_interval_bed = "${test_data_dir}/genomics/homo_sapiens/genome/genome.multi_intervals.bed" + genome_multi_interval_bed = "${test_data_dir}/genomics/homo_sapiens/genome/genome.multi_intervals.bed" genome_sizes = "${test_data_dir}/genomics/homo_sapiens/genome/genome.sizes" genome_bed = "${test_data_dir}/genomics/homo_sapiens/genome/genome.bed" genome_header = "${test_data_dir}/genomics/homo_sapiens/genome/genome.header" @@ -182,16 +182,16 @@ params { vcfanno_toml = "${test_data_dir}/genomics/homo_sapiens/genome/vcf/vcfanno/vcfanno.toml" } 'pangenome' { - pangenome_fa = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.fa" - pangenome_fa_gz = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.fa.gz" - pangenome_paf = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.paf" - pangenome_paf_gz = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.paf.gz" - pangenome_seqwish_gfa = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.seqwish.gfa" - pangenome_smoothxg_gfa = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.smoothxg.gfa" - pangenome_gfaffix_gfa = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.gfaffix.gfa" + pangenome_fa = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.fa" + pangenome_fa_gz = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.fa.gz" + pangenome_paf = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.paf" + pangenome_paf_gz = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.paf.gz" + pangenome_seqwish_gfa = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.seqwish.gfa" + pangenome_smoothxg_gfa = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.smoothxg.gfa" + pangenome_gfaffix_gfa = "${test_data_dir}/pangenomics/homo_sapiens/pangenome.gfaffix.gfa" 'odgi' { - pangenome_og = "${test_data_dir}/pangenomics/homo_sapiens/odgi/pangenome.og" - pangenome_lay = "${test_data_dir}/pangenomics/homo_sapiens/odgi/pangenome.lay" + pangenome_og = "${test_data_dir}/pangenomics/homo_sapiens/odgi/pangenome.og" + pangenome_lay = "${test_data_dir}/pangenomics/homo_sapiens/odgi/pangenome.lay" } } 'illumina' { @@ -212,131 +212,131 @@ params { test_paired_end_hla = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/example_hla_pe.bam" test_paired_end_hla_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/example_hla_pe.sorted.bam" test_paired_end_hla_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/example_hla_pe.sorted.bam.bai" - test2_paired_end_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam" - test2_paired_end_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam.bai" - test2_paired_end_name_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.name.sorted.bam" - test2_paired_end_markduplicates_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.markduplicates.sorted.bam" - test2_paired_end_markduplicates_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.markduplicates.sorted.bam.bai" - test2_paired_end_recalibrated_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam" - test2_paired_end_recalibrated_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam.bai" - test2_paired_end_umi_consensus_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_consensus.bam" - test2_paired_end_umi_converted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_converted.bam" - test2_paired_end_umi_grouped_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_grouped.bam" - test2_paired_end_umi_histogram_txt = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_histogram.txt" - test2_paired_end_umi_unsorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_unsorted.bam" - test2_paired_end_umi_unsorted_tagged_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.unsorted_tagged.bam" + test2_paired_end_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam" + test2_paired_end_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.sorted.bam.bai" + test2_paired_end_name_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.name.sorted.bam" + test2_paired_end_markduplicates_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.markduplicates.sorted.bam" + test2_paired_end_markduplicates_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.markduplicates.sorted.bam.bai" + test2_paired_end_recalibrated_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam" + test2_paired_end_recalibrated_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/test2.paired_end.recalibrated.sorted.bam.bai" + test2_paired_end_umi_consensus_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_consensus.bam" + test2_paired_end_umi_converted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_converted.bam" + test2_paired_end_umi_grouped_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_grouped.bam" + test2_paired_end_umi_histogram_txt = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_histogram.txt" + test2_paired_end_umi_unsorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.umi_unsorted.bam" + test2_paired_end_umi_unsorted_tagged_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/umi/test2.paired_end.unsorted_tagged.bam" - mitochon_standin_recalibrated_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/mitochon_standin.recalibrated.sorted.bam" - mitochon_standin_recalibrated_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/mitochon_standin.recalibrated.sorted.bam.bai" + mitochon_standin_recalibrated_sorted_bam = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/mitochon_standin.recalibrated.sorted.bam" + mitochon_standin_recalibrated_sorted_bam_bai = "${test_data_dir}/genomics/homo_sapiens/illumina/bam/mitochon_standin.recalibrated.sorted.bam.bai" - test_paired_end_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram" - test_paired_end_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai" - test_paired_end_markduplicates_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.markduplicates.sorted.cram" - test_paired_end_markduplicates_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.markduplicates.sorted.cram.crai" - test_paired_end_recalibrated_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.recalibrated.sorted.cram" - test_paired_end_recalibrated_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.recalibrated.sorted.cram.crai" + test_paired_end_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram" + test_paired_end_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram.crai" + test_paired_end_markduplicates_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.markduplicates.sorted.cram" + test_paired_end_markduplicates_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.markduplicates.sorted.cram.crai" + test_paired_end_recalibrated_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.recalibrated.sorted.cram" + test_paired_end_recalibrated_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test.paired_end.recalibrated.sorted.cram.crai" - test2_paired_end_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram" - test2_paired_end_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram.crai" - test2_paired_end_markduplicates_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.markduplicates.sorted.cram" - test2_paired_end_markduplicates_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.markduplicates.sorted.cram.crai" - test2_paired_end_recalibrated_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram" - test2_paired_end_recalibrated_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram.crai" + test2_paired_end_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram" + test2_paired_end_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.sorted.cram.crai" + test2_paired_end_markduplicates_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.markduplicates.sorted.cram" + test2_paired_end_markduplicates_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.markduplicates.sorted.cram.crai" + test2_paired_end_recalibrated_sorted_cram = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram" + test2_paired_end_recalibrated_sorted_cram_crai = "${test_data_dir}/genomics/homo_sapiens/illumina/cram/test2.paired_end.recalibrated.sorted.cram.crai" - test_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz" - test_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz" - test_umi_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test.umi_1.fastq.gz" - test_umi_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test.umi_2.fastq.gz" - test2_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2_1.fastq.gz" - test2_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2_2.fastq.gz" - test2_umi_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2.umi_1.fastq.gz" - test2_umi_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2.umi_2.fastq.gz" - test_rnaseq_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz" - test_rnaseq_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz" + test_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_1.fastq.gz" + test_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_2.fastq.gz" + test_umi_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test.umi_1.fastq.gz" + test_umi_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test.umi_2.fastq.gz" + test2_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2_1.fastq.gz" + test2_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2_2.fastq.gz" + test2_umi_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2.umi_1.fastq.gz" + test2_umi_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test2.umi_2.fastq.gz" + test_rnaseq_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_rnaseq_1.fastq.gz" + test_rnaseq_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/fastq/test_rnaseq_2.fastq.gz" - test_baserecalibrator_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test.baserecalibrator.table" - test2_baserecalibrator_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test2.baserecalibrator.table" - test_pileups_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test.pileups.table" - test2_pileups_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test2.pileups.table" + test_baserecalibrator_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test.baserecalibrator.table" + test2_baserecalibrator_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test2.baserecalibrator.table" + test_pileups_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test.pileups.table" + test2_pileups_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test2.pileups.table" - test_genomicsdb_tar_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_genomicsdb.tar.gz" - test_pon_genomicsdb_tar_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_pon_genomicsdb.tar.gz" + test_genomicsdb_tar_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_genomicsdb.tar.gz" + test_pon_genomicsdb_tar_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_pon_genomicsdb.tar.gz" - test2_haplotc_ann_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz" - test2_haplotc_ann_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz.tbi" + test2_haplotc_ann_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz" + test2_haplotc_ann_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/haplotypecaller_calls/test2_haplotc.ann.vcf.gz.tbi" - test2_recal = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal" - test2_recal_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal.idx" - test2_tranches = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.tranches" - test2_allele_specific_recal = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2_allele_specific.recal" - test2_allele_specific_recal_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2_allele_specific.recal.idx" - test2_allele_specific_tranches = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2_allele_specific.tranches" + test2_recal = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal" + test2_recal_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.recal.idx" + test2_tranches = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2.tranches" + test2_allele_specific_recal = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2_allele_specific.recal" + test2_allele_specific_recal_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2_allele_specific.recal.idx" + test2_allele_specific_tranches = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/variantrecalibrator/test2_allele_specific.tranches" - test_test2_paired_mutect2_calls_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.vcf.gz" - test_test2_paired_mutect2_calls_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.vcf.gz.tbi" - test_test2_paired_mutect2_calls_vcf_gz_stats = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.vcf.gz.stats" - test_test2_paired_mutect2_calls_f1r2_tar_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.f1r2.tar.gz" - test_test2_paired_mutect2_calls_artifact_prior_tar_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_test2_paired_mutect2_calls.artifact-prior.tar.gz" - test_test2_paired_segmentation_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_test2_paired.segmentation.table" - test_test2_paired_contamination_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_test2_paired.contamination.table" + test_test2_paired_mutect2_calls_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.vcf.gz" + test_test2_paired_mutect2_calls_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.vcf.gz.tbi" + test_test2_paired_mutect2_calls_vcf_gz_stats = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.vcf.gz.stats" + test_test2_paired_mutect2_calls_f1r2_tar_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/paired_mutect2_calls/test_test2_paired_mutect2_calls.f1r2.tar.gz" + test_test2_paired_mutect2_calls_artifact_prior_tar_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_test2_paired_mutect2_calls.artifact-prior.tar.gz" + test_test2_paired_segmentation_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_test2_paired.segmentation.table" + test_test2_paired_contamination_table = "${test_data_dir}/genomics/homo_sapiens/illumina/gatk/test_test2_paired.contamination.table" - test_genome_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf" - test_genome_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz" - test_genome_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz.tbi" - test_genome_vcf_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.idx" + test_genome_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf" + test_genome_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz" + test_genome_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.gz.tbi" + test_genome_vcf_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test.genome.vcf.idx" - test2_genome_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf" - test2_genome_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.gz" - test2_genome_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.gz.tbi" - test2_genome_vcf_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.idx" + test2_genome_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf" + test2_genome_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.gz" + test2_genome_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.gz.tbi" + test2_genome_vcf_idx = "${test_data_dir}/genomics/homo_sapiens/illumina/gvcf/test2.genome.vcf.idx" - test_genome21_indels_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz" - test_genome21_indels_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz.tbi" + test_genome21_indels_vcf_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz" + test_genome21_indels_vcf_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.genome_21.somatic_sv.vcf.gz.tbi" - test_mpileup = "${test_data_dir}/genomics/homo_sapiens/illumina/mpileup/test.mpileup.gz" - test2_mpileup = "${test_data_dir}/genomics/homo_sapiens/illumina/mpileup/test2.mpileup.gz" + test_mpileup = "${test_data_dir}/genomics/homo_sapiens/illumina/mpileup/test.mpileup.gz" + test2_mpileup = "${test_data_dir}/genomics/homo_sapiens/illumina/mpileup/test2.mpileup.gz" - test_broadpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/broadpeak/test.broadPeak" - test2_broadpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/broadpeak/test2.broadPeak" + test_broadpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/broadpeak/test.broadPeak" + test2_broadpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/broadpeak/test2.broadPeak" - test_narrowpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/narrowpeak/test.narrowPeak" - test2_narrowpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/narrowpeak/test2.narrowPeak" + test_narrowpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/narrowpeak/test.narrowPeak" + test2_narrowpeak = "${test_data_dir}/genomics/homo_sapiens/illumina/narrowpeak/test2.narrowPeak" - test_10x_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/10xgenomics/test_10x_S1_L001_R1_001.fastq.gz" - test_10x_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/10xgenomics/test_10x_S1_L001_R2_001.fastq.gz" + test_10x_1_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/10xgenomics/test_10x_S1_L001_R1_001.fastq.gz" + test_10x_2_fastq_gz = "${test_data_dir}/genomics/homo_sapiens/illumina/10xgenomics/test_10x_S1_L001_R2_001.fastq.gz" - test_yak = "${test_data_dir}/genomics/homo_sapiens/illumina/yak/test.yak" - test2_yak = "${test_data_dir}/genomics/homo_sapiens/illumina/yak/test2.yak" + test_yak = "${test_data_dir}/genomics/homo_sapiens/illumina/yak/test.yak" + test2_yak = "${test_data_dir}/genomics/homo_sapiens/illumina/yak/test2.yak" - cutandrun_bedgraph_test_1 = "${test_data_dir}/genomics/homo_sapiens/illumina/bedgraph/cutandtag_h3k27me3_test_1.bedGraph" - cutandrun_bedgraph_test_2 = "${test_data_dir}/genomics/homo_sapiens/illumina/bedgraph/cutandtag_igg_test_1.bedGraph" + cutandrun_bedgraph_test_1 = "${test_data_dir}/genomics/homo_sapiens/illumina/bedgraph/cutandtag_h3k27me3_test_1.bedGraph" + cutandrun_bedgraph_test_2 = "${test_data_dir}/genomics/homo_sapiens/illumina/bedgraph/cutandtag_igg_test_1.bedGraph" - test_rnaseq_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf" - test_sv_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/sv_query.vcf.gz" + test_rnaseq_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/test.rnaseq.vcf" + test_sv_vcf = "${test_data_dir}/genomics/homo_sapiens/illumina/vcf/sv_query.vcf.gz" - test_pytor = "${test_data_dir}/genomics/homo_sapiens/illumina/pytor/test.pytor" + test_pytor = "${test_data_dir}/genomics/homo_sapiens/illumina/pytor/test.pytor" } 'pacbio' { - primers = "${test_data_dir}/genomics/homo_sapiens/pacbio/fasta/primers.fasta" - alz = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.bam" - alzpbi = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.bam.pbi" - ccs = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.bam" - ccs_fa = "${test_data_dir}/genomics/homo_sapiens/pacbio/fasta/alz.ccs.fasta" - ccs_fa_gz = "${test_data_dir}/genomics/homo_sapiens/pacbio/fasta/alz.ccs.fasta.gz" - ccs_fq = "${test_data_dir}/genomics/homo_sapiens/pacbio/fastq/alz.ccs.fastq" - ccs_fq_gz = "${test_data_dir}/genomics/homo_sapiens/pacbio/fastq/alz.ccs.fastq.gz" - ccs_xml = "${test_data_dir}/genomics/homo_sapiens/pacbio/xml/alz.ccs.consensusreadset.xml" - hifi = "${test_data_dir}/genomics/homo_sapiens/pacbio/fastq/test_hifi.fastq.gz" - lima = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.bam" - refine = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.bam" - cluster = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.bam" - singletons = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.bam" - aligned = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned.bam" - alignedbai = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned.bam.bai" - genemodel1 = "${test_data_dir}/genomics/homo_sapiens/pacbio/bed/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned_tc.bed" - genemodel2 = "${test_data_dir}/genomics/homo_sapiens/pacbio/bed/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned_tc.2.bed" - filelist = "${test_data_dir}/genomics/homo_sapiens/pacbio/txt/filelist.txt" + primers = "${test_data_dir}/genomics/homo_sapiens/pacbio/fasta/primers.fasta" + alz = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.bam" + alzpbi = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.bam.pbi" + ccs = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.bam" + ccs_fa = "${test_data_dir}/genomics/homo_sapiens/pacbio/fasta/alz.ccs.fasta" + ccs_fa_gz = "${test_data_dir}/genomics/homo_sapiens/pacbio/fasta/alz.ccs.fasta.gz" + ccs_fq = "${test_data_dir}/genomics/homo_sapiens/pacbio/fastq/alz.ccs.fastq" + ccs_fq_gz = "${test_data_dir}/genomics/homo_sapiens/pacbio/fastq/alz.ccs.fastq.gz" + ccs_xml = "${test_data_dir}/genomics/homo_sapiens/pacbio/xml/alz.ccs.consensusreadset.xml" + hifi = "${test_data_dir}/genomics/homo_sapiens/pacbio/fastq/test_hifi.fastq.gz" + lima = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.bam" + refine = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.bam" + cluster = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.bam" + singletons = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.bam" + aligned = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned.bam" + alignedbai = "${test_data_dir}/genomics/homo_sapiens/pacbio/bam/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned.bam.bai" + genemodel1 = "${test_data_dir}/genomics/homo_sapiens/pacbio/bed/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned_tc.bed" + genemodel2 = "${test_data_dir}/genomics/homo_sapiens/pacbio/bed/alz.ccs.fl.NEB_5p--NEB_Clontech_3p.flnc.clustered.singletons.merged.aligned_tc.2.bed" + filelist = "${test_data_dir}/genomics/homo_sapiens/pacbio/txt/filelist.txt" } } 'bacteroides_fragilis' { @@ -394,31 +394,31 @@ params { } 'generic' { 'csv' { - test_csv = "${test_data_dir}/generic/csv/test.csv" + test_csv = "${test_data_dir}/generic/csv/test.csv" } 'notebooks' { - rmarkdown = "${test_data_dir}/generic/notebooks/rmarkdown/rmarkdown_notebook.Rmd" - ipython_md = "${test_data_dir}/generic/notebooks/jupyter/ipython_notebook.md" - ipython_ipynb = "${test_data_dir}/generic/notebooks/jupyter/ipython_notebook.ipynb" + rmarkdown = "${test_data_dir}/generic/notebooks/rmarkdown/rmarkdown_notebook.Rmd" + ipython_md = "${test_data_dir}/generic/notebooks/jupyter/ipython_notebook.md" + ipython_ipynb = "${test_data_dir}/generic/notebooks/jupyter/ipython_notebook.ipynb" } 'tsv' { - test_tsv = "${test_data_dir}/generic/tsv/test.tsv" + test_tsv = "${test_data_dir}/generic/tsv/test.tsv" } 'txt' { - hello = "${test_data_dir}/generic/txt/hello.txt" + hello = "${test_data_dir}/generic/txt/hello.txt" } 'cnn' { - reference = "${test_data_dir}/generic/cnn/reference.cnn" + reference = "${test_data_dir}/generic/cnn/reference.cnn" } 'cooler'{ - test_pairix_pair_gz = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.blksrt.txt.gz" - test_pairix_pair_gz_px2 = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.blksrt.txt.gz.px2" - test_pairs_pair = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.sample1.pairs" - test_tabix_pair_gz = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.sorted.possrt.txt.gz" - test_tabix_pair_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.sorted.possrt.txt.gz.tbi" - hg19_chrom_sizes = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.chrom.sizes" - test_merge_cool = "${test_data_dir}/genomics/homo_sapiens/cooler/merge/toy/toy.symm.upper.2.cool" - test_merge_cool_cp2 = "${test_data_dir}/genomics/homo_sapiens/cooler/merge/toy/toy.symm.upper.2.cp2.cool" + test_pairix_pair_gz = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.blksrt.txt.gz" + test_pairix_pair_gz_px2 = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.blksrt.txt.gz.px2" + test_pairs_pair = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.sample1.pairs" + test_tabix_pair_gz = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.sorted.possrt.txt.gz" + test_tabix_pair_gz_tbi = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.GM12878-MboI.pairs.subsample.sorted.possrt.txt.gz.tbi" + hg19_chrom_sizes = "${test_data_dir}/genomics/homo_sapiens/cooler/cload/hg19/hg19.chrom.sizes" + test_merge_cool = "${test_data_dir}/genomics/homo_sapiens/cooler/merge/toy/toy.symm.upper.2.cool" + test_merge_cool_cp2 = "${test_data_dir}/genomics/homo_sapiens/cooler/merge/toy/toy.symm.upper.2.cp2.cool" } } From 6fd9246aef346ba9975db049fcdbc9de7d6074f9 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Mon, 9 May 2022 08:07:33 +0200 Subject: [PATCH 486/592] Update modules/rtgtools/vcfeval/main.nf Co-authored-by: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> --- modules/rtgtools/vcfeval/main.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 9daadd05..97d96d89 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -8,7 +8,8 @@ process RTGTOOLS_VCFEVAL { 'quay.io/biocontainers/rtg-tools:3.12.1--hdfd78af_0' }" input: - tuple val(meta), path(truth_vcf), path(truth_vcf_tbi), path(query_vcf), path(query_vcf_tbi), path(bed) + tuple val(meta), path(query_vcf), path(query_vcf_tbi), path(bed) + tuple path(truth_vcf), path(truth_vcf_tbi), path(sdf) output: From d18af7358a7b3cebb59a81a5b71414e40fc39256 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Mon, 9 May 2022 09:20:42 +0200 Subject: [PATCH 487/592] Moved untarring the genome sdf folder to the test itself --- modules/rtgtools/vcfeval/main.nf | 14 ++------ tests/modules/rtgtools/vcfeval/main.nf | 46 +++++++++++++++++++------- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 97d96d89..83895b64 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -8,8 +8,8 @@ process RTGTOOLS_VCFEVAL { 'quay.io/biocontainers/rtg-tools:3.12.1--hdfd78af_0' }" input: - tuple val(meta), path(query_vcf), path(query_vcf_tbi), path(bed) - tuple path(truth_vcf), path(truth_vcf_tbi), + tuple val(meta), path(query_vcf), path(query_vcf_tbi), path(bed) + tuple path(truth_vcf), path(truth_vcf_tbi) path(sdf) output: @@ -26,15 +26,7 @@ process RTGTOOLS_VCFEVAL { def truth_index = truth_vcf_tbi ? "" : "rtg index $truth_vcf" def query_index = query_vcf_tbi ? "" : "rtg index $query_vcf" - sdf_basename = sdf.getBaseName().replace(".tar","") - tar_decomp = "" - if((sdf =~ /.tar.gz\b/).find() == true) { - tar_decomp = "tar -xzf $sdf" - } - """ - $tar_decomp - $truth_index $query_index @@ -44,7 +36,7 @@ process RTGTOOLS_VCFEVAL { $regions \\ --calls=$query_vcf \\ --output=$prefix \\ - --template=$sdf_basename \\ + --template=$sdf \\ --threads=$task.cpus \\ > ${prefix}_results.txt diff --git a/tests/modules/rtgtools/vcfeval/main.nf b/tests/modules/rtgtools/vcfeval/main.nf index baf3c54d..35a2206b 100644 --- a/tests/modules/rtgtools/vcfeval/main.nf +++ b/tests/modules/rtgtools/vcfeval/main.nf @@ -3,39 +3,61 @@ nextflow.enable.dsl = 2 include { RTGTOOLS_VCFEVAL } from '../../../../modules/rtgtools/vcfeval/main.nf' +include { UNTAR } from '../../../modules/untar/main.nf' workflow test_rtgtools_vcfeval { input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz_tbi'], checkIfExists: true), file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) ] - sdf = Channel.value( - file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) - ) + truth = [ + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true) + ] - RTGTOOLS_VCFEVAL ( input, sdf ) + compressed_sdf = [ + [], + file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) + ] + + sdf = UNTAR( compressed_sdf ).untar + .map({ + meta, folder -> + folder + }) + + + RTGTOOLS_VCFEVAL ( input, truth, sdf ) } workflow test_rtgtools_vcfeval_no_index { input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), - [], file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), [], file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) ] - sdf = Channel.value( - file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) - ) + truth = [ + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz'], checkIfExists: true), + [] + ] - RTGTOOLS_VCFEVAL ( input, sdf ) + compressed_sdf = [ + [], + file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) + ] + + sdf = UNTAR( compressed_sdf ).untar + .map({ + meta, folder -> + [folder] + }) + + RTGTOOLS_VCFEVAL ( input, truth, sdf ) } From 4591ea2205d305d6bf27511571eb98ff7e4b9052 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 07:58:58 +0000 Subject: [PATCH 488/592] atomize --- modules/meryl/count/main.nf | 14 ++------- modules/meryl/count/meta.yml | 37 +++++++++-------------- tests/modules/meryl/count/main.nf | 2 +- tests/modules/meryl/count/nextflow.config | 1 - 4 files changed, 18 insertions(+), 36 deletions(-) diff --git a/modules/meryl/count/main.nf b/modules/meryl/count/main.nf index 80491242..f7a2811d 100644 --- a/modules/meryl/count/main.nf +++ b/modules/meryl/count/main.nf @@ -11,15 +11,14 @@ process MERYL_COUNT { tuple val(meta), path(reads) output: - tuple val(meta), path("*.meryl"), emit: meryl - path "versions.yml" , emit: versions + tuple val(meta), path("*.meryldb"), emit: meryl_db + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' - def args2 = task.ext.args2 ?: '' def prefix = task.ext.prefix ?: "${meta.id}" """ for READ in $reads; do @@ -27,15 +26,8 @@ process MERYL_COUNT { threads=$task.cpus \\ $args \\ $reads \\ - output read.\${READ%.f*}.meryl + output read.\${READ%.f*}.meryldb done - meryl union-sum \\ - threads=$task.cpus \\ - $args2 \\ - output ${prefix}.meryl - - # clean up - rm -rf read.*.meryl cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/meryl/count/meta.yml b/modules/meryl/count/meta.yml index 885267ec..dd59decd 100644 --- a/modules/meryl/count/meta.yml +++ b/modules/meryl/count/meta.yml @@ -1,51 +1,42 @@ name: "meryl_count" -## TODO nf-core: Add a description of the module and list keywords -description: write your description here +description: A genomic k-mer counter (and sequence utility) with nice features. keywords: - - sort + - k-mer + - count tools: - "meryl": - ## TODO nf-core: Add a description and other details for the software below - description: "" - homepage: "{}" - documentation: "{}" - tool_dev_url: "{}" + description: "A genomic k-mer counter (and sequence utility) with nice features. " + homepage: "https://github.com/marbl/meryl" + documentation: "https://meryl.readthedocs.io/en/latest/quick-start.html" + tool_dev_url: "https://github.com/marbl/meryl" doi: "" licence: "['GPL']" -## TODO nf-core: Add a description of all of the variables used as input input: - # Only when we have meta - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - # - ## TODO nf-core: Delete / customise this example input - - bam: + - reads: type: file - description: BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. -## TODO nf-core: Add a description of all of the variables used as output output: - #Only when we have meta - meta: type: map description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - # - versions: type: file description: File containing software versions pattern: "versions.yml" - ## TODO nf-core: Delete / customise this example output - - bam: - type: file - description: Sorted BAM/CRAM/SAM file - pattern: "*.{bam,cram,sam}" + - meryl_db: + type: directory + description: A Meryl k-mer database authors: - "@mahesh-panchal" diff --git a/tests/modules/meryl/count/main.nf b/tests/modules/meryl/count/main.nf index 8706046a..7d65b7dd 100644 --- a/tests/modules/meryl/count/main.nf +++ b/tests/modules/meryl/count/main.nf @@ -4,7 +4,7 @@ nextflow.enable.dsl = 2 include { MERYL_COUNT } from '../../../../modules/meryl/count/main.nf' -workflow test_meryl_count_single_end { +workflow test_meryl_count { input = [ [ id:'test' ], // meta map diff --git a/tests/modules/meryl/count/nextflow.config b/tests/modules/meryl/count/nextflow.config index 99e1f846..6d899c50 100644 --- a/tests/modules/meryl/count/nextflow.config +++ b/tests/modules/meryl/count/nextflow.config @@ -2,6 +2,5 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } ext.args = 'k=21' - ext.args2 = 'k=21' } From 9ebeb6a702650f88906ce8d0cbf98bed158832a8 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 08:05:07 +0000 Subject: [PATCH 489/592] Update test --- tests/modules/meryl/count/test.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/modules/meryl/count/test.yml b/tests/modules/meryl/count/test.yml index 0565bd1a..5437966c 100644 --- a/tests/modules/meryl/count/test.yml +++ b/tests/modules/meryl/count/test.yml @@ -1,8 +1,8 @@ -- name: meryl count test_meryl_count_single_end - command: nextflow run tests/modules/meryl/count -entry test_meryl_count_single_end -c tests/config/nextflow.config +- name: meryl count test_meryl_count + command: nextflow run tests/modules/meryl/count -entry test_meryl_count -c tests/config/nextflow.config tags: - - meryl/count - meryl + - meryl/count files: - path: output/meryl/versions.yml - md5sum: 5fe537d873925ccbcc4edf0983e9eda0 + md5sum: 9bc9470c2eff996026781d5ff8c2b369 From ad4f8389cb419a3d23fb4cd4fdbe3b3c77bbc7ad Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 08:33:21 +0000 Subject: [PATCH 490/592] Add meryl unionsum --- modules/meryl/unionsum/main.nf | 35 +++++++++++++++++ modules/meryl/unionsum/meta.yml | 40 ++++++++++++++++++++ tests/config/pytest_modules.yml | 12 ++++-- tests/modules/meryl/unionsum/main.nf | 20 ++++++++++ tests/modules/meryl/unionsum/nextflow.config | 6 +++ tests/modules/meryl/unionsum/test.yml | 14 +++++++ 6 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 modules/meryl/unionsum/main.nf create mode 100644 modules/meryl/unionsum/meta.yml create mode 100644 tests/modules/meryl/unionsum/main.nf create mode 100644 tests/modules/meryl/unionsum/nextflow.config create mode 100644 tests/modules/meryl/unionsum/test.yml diff --git a/modules/meryl/unionsum/main.nf b/modules/meryl/unionsum/main.nf new file mode 100644 index 00000000..0d7b80b6 --- /dev/null +++ b/modules/meryl/unionsum/main.nf @@ -0,0 +1,35 @@ +process MERYL_UNIONSUM { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::meryl=1.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/meryl:1.3--h87f3376_1': + 'quay.io/biocontainers/meryl:1.3--h87f3376_1' }" + + input: + tuple val(meta), path(meryl_dbs) + + output: + tuple val(meta), path("*.meryldb"), emit: meryl_db + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + meryl union-sum \\ + threads=$task.cpus \\ + $args \\ + output ${prefix}.meryl \\ + $meryl_dbs + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + meryl: \$( meryl --version |& sed 's/meryl //' ) + END_VERSIONS + """ +} diff --git a/modules/meryl/unionsum/meta.yml b/modules/meryl/unionsum/meta.yml new file mode 100644 index 00000000..04dabac1 --- /dev/null +++ b/modules/meryl/unionsum/meta.yml @@ -0,0 +1,40 @@ +name: "meryl_unionsum" +description: A genomic k-mer counter (and sequence utility) with nice features. +keywords: + - k-mer + - unionsum +tools: + - "meryl": + description: "A genomic k-mer counter (and sequence utility) with nice features. " + homepage: "https://github.com/marbl/meryl" + documentation: "https://meryl.readthedocs.io/en/latest/quick-start.html" + tool_dev_url: "https://github.com/marbl/meryl" + doi: "" + licence: "['GPL']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - meryl_dbs: + type: directory + description: Meryl k-mer databases + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - meryl_db: + type: directory + description: A Meryl k-mer database that is the union sum of the input databases + +authors: + - "@mahesh-panchal" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index b9c67363..1122c060 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1214,6 +1214,10 @@ meningotype: - modules/meningotype/** - tests/modules/meningotype/** +meryl/unionsum: + - modules/meryl/unionsum/** + - tests/modules/meryl/unionsum/** + metabat2/jgisummarizebamcontigdepths: - modules/metabat2/jgisummarizebamcontigdepths/** - tests/modules/metabat2/jgisummarizebamcontigdepths/** @@ -1763,14 +1767,14 @@ slimfastq: - modules/slimfastq/** - tests/modules/slimfastq/** -snapaligner/index: - - modules/snapaligner/index/** - - tests/modules/snapaligner/index/** - snapaligner/align: - modules/snapaligner/align/** - tests/modules/snapaligner/align/** +snapaligner/index: + - modules/snapaligner/index/** + - tests/modules/snapaligner/index/** + snpdists: - modules/snpdists/** - tests/modules/snpdists/** diff --git a/tests/modules/meryl/unionsum/main.nf b/tests/modules/meryl/unionsum/main.nf new file mode 100644 index 00000000..7cffe046 --- /dev/null +++ b/tests/modules/meryl/unionsum/main.nf @@ -0,0 +1,20 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MERYL_COUNT } from '../../../../modules/meryl/count/main.nf' +include { MERYL_UNIONSUM } from '../../../../modules/meryl/unionsum/main.nf' + +workflow test_meryl_unionsum { + + input = [ + [ id:'test' ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + + MERYL_COUNT ( input ) + MERYL_UNIONSUM ( MERYL_COUNT.out.meryl_db ) +} diff --git a/tests/modules/meryl/unionsum/nextflow.config b/tests/modules/meryl/unionsum/nextflow.config new file mode 100644 index 00000000..6d899c50 --- /dev/null +++ b/tests/modules/meryl/unionsum/nextflow.config @@ -0,0 +1,6 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + ext.args = 'k=21' + +} diff --git a/tests/modules/meryl/unionsum/test.yml b/tests/modules/meryl/unionsum/test.yml new file mode 100644 index 00000000..f495e946 --- /dev/null +++ b/tests/modules/meryl/unionsum/test.yml @@ -0,0 +1,14 @@ +## TODO nf-core: Please run the following command to build this file: +# nf-core modules create-test-yml meryl/unionsum +- name: "meryl unionsum" + command: nextflow run ./tests/modules/meryl/unionsum -entry test_meryl_unionsum -c ./tests/config/nextflow.config -c ./tests/modules/meryl/unionsum/nextflow.config + tags: + - "meryl" + # + - "meryl/unionsum" + # + files: + - path: "output/meryl/test.bam" + md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/meryl/versions.yml + md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b From 129f57ccd9adc9016aaa3f2e2e6ab556ba8de7b6 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 08:50:28 +0000 Subject: [PATCH 491/592] Add meryl histogram --- modules/meryl/histogram/main.nf | 34 +++++++++++++++ modules/meryl/histogram/meta.yml | 41 +++++++++++++++++++ tests/config/pytest_modules.yml | 12 ++++-- tests/modules/meryl/histogram/main.nf | 17 ++++++++ tests/modules/meryl/histogram/nextflow.config | 5 +++ tests/modules/meryl/histogram/test.yml | 14 +++++++ 6 files changed, 119 insertions(+), 4 deletions(-) create mode 100644 modules/meryl/histogram/main.nf create mode 100644 modules/meryl/histogram/meta.yml create mode 100644 tests/modules/meryl/histogram/main.nf create mode 100644 tests/modules/meryl/histogram/nextflow.config create mode 100644 tests/modules/meryl/histogram/test.yml diff --git a/modules/meryl/histogram/main.nf b/modules/meryl/histogram/main.nf new file mode 100644 index 00000000..a1f18f05 --- /dev/null +++ b/modules/meryl/histogram/main.nf @@ -0,0 +1,34 @@ +process MERYL_HISTOGRAM { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::meryl=1.3" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/meryl:1.3--h87f3376_1': + 'quay.io/biocontainers/meryl:1.3--h87f3376_1' }" + + input: + tuple val(meta), path(meryl_db) + + output: + tuple val(meta), path("*.hist"), emit: hist + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + meryl histogram \\ + threads=$task.cpus \\ + $args \\ + $meryl_db > ${prefix}.hist + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + meryl: \$( meryl --version |& sed 's/meryl //' ) + END_VERSIONS + """ +} diff --git a/modules/meryl/histogram/meta.yml b/modules/meryl/histogram/meta.yml new file mode 100644 index 00000000..b786e076 --- /dev/null +++ b/modules/meryl/histogram/meta.yml @@ -0,0 +1,41 @@ +name: "meryl_histogram" +description: A genomic k-mer counter (and sequence utility) with nice features. +keywords: + - k-mer + - histogram +tools: + - "meryl": + description: "A genomic k-mer counter (and sequence utility) with nice features. " + homepage: "https://github.com/marbl/meryl" + documentation: "https://meryl.readthedocs.io/en/latest/quick-start.html" + tool_dev_url: "https://github.com/marbl/meryl" + doi: "" + licence: "['GPL']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - meryl_dbs: + type: directory + description: Meryl k-mer database + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - hist: + type: file + description: Histogram of k-mers + pattern: "*.hist" + +authors: + - "@mahesh-panchal" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index b9c67363..2aa9a20d 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1214,6 +1214,10 @@ meningotype: - modules/meningotype/** - tests/modules/meningotype/** +meryl/histogram: + - modules/meryl/histogram/** + - tests/modules/meryl/histogram/** + metabat2/jgisummarizebamcontigdepths: - modules/metabat2/jgisummarizebamcontigdepths/** - tests/modules/metabat2/jgisummarizebamcontigdepths/** @@ -1763,14 +1767,14 @@ slimfastq: - modules/slimfastq/** - tests/modules/slimfastq/** -snapaligner/index: - - modules/snapaligner/index/** - - tests/modules/snapaligner/index/** - snapaligner/align: - modules/snapaligner/align/** - tests/modules/snapaligner/align/** +snapaligner/index: + - modules/snapaligner/index/** + - tests/modules/snapaligner/index/** + snpdists: - modules/snpdists/** - tests/modules/snpdists/** diff --git a/tests/modules/meryl/histogram/main.nf b/tests/modules/meryl/histogram/main.nf new file mode 100644 index 00000000..697a12ef --- /dev/null +++ b/tests/modules/meryl/histogram/main.nf @@ -0,0 +1,17 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MERYL_COUNT } from '../../../../modules/meryl/count/main.nf' +include { MERYL_HISTOGRAM } from '../../../../modules/meryl/histogram/main.nf' + +workflow test_meryl_histogram { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + + MERYL_COUNT ( input ) + MERYL_HISTOGRAM ( MERYL_COUNT.out.meryl_db ) +} diff --git a/tests/modules/meryl/histogram/nextflow.config b/tests/modules/meryl/histogram/nextflow.config new file mode 100644 index 00000000..50f50a7a --- /dev/null +++ b/tests/modules/meryl/histogram/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} \ No newline at end of file diff --git a/tests/modules/meryl/histogram/test.yml b/tests/modules/meryl/histogram/test.yml new file mode 100644 index 00000000..ef358943 --- /dev/null +++ b/tests/modules/meryl/histogram/test.yml @@ -0,0 +1,14 @@ +## TODO nf-core: Please run the following command to build this file: +# nf-core modules create-test-yml meryl/histogram +- name: "meryl histogram" + command: nextflow run ./tests/modules/meryl/histogram -entry test_meryl_histogram -c ./tests/config/nextflow.config -c ./tests/modules/meryl/histogram/nextflow.config + tags: + - "meryl" + # + - "meryl/histogram" + # + files: + - path: "output/meryl/test.bam" + md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/meryl/versions.yml + md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b From a43bc940d6aaeaa755b34484cffeb5b41bce92eb Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 11:15:14 +0000 Subject: [PATCH 492/592] Add suggestions from code review --- modules/meryl/count/meta.yml | 1 + tests/modules/meryl/count/main.nf | 17 +++++++++++++++-- tests/modules/meryl/count/test.yml | 17 +++++++++++++---- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/modules/meryl/count/meta.yml b/modules/meryl/count/meta.yml index dd59decd..854f8759 100644 --- a/modules/meryl/count/meta.yml +++ b/modules/meryl/count/meta.yml @@ -37,6 +37,7 @@ output: - meryl_db: type: directory description: A Meryl k-mer database + pattern: "*.meryldb" authors: - "@mahesh-panchal" diff --git a/tests/modules/meryl/count/main.nf b/tests/modules/meryl/count/main.nf index 7d65b7dd..3c9a64c7 100644 --- a/tests/modules/meryl/count/main.nf +++ b/tests/modules/meryl/count/main.nf @@ -4,12 +4,25 @@ nextflow.enable.dsl = 2 include { MERYL_COUNT } from '../../../../modules/meryl/count/main.nf' -workflow test_meryl_count { +workflow test_meryl_count_single_end { input = [ - [ id:'test' ], // meta map + [ id:'test' , single_end: true ], // meta map file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ] MERYL_COUNT ( input ) } + +workflow test_meryl_count_paired_end { + + input = [ + [ id:'test' , single_end: false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + + MERYL_COUNT ( input ) +} diff --git a/tests/modules/meryl/count/test.yml b/tests/modules/meryl/count/test.yml index 5437966c..6291a62f 100644 --- a/tests/modules/meryl/count/test.yml +++ b/tests/modules/meryl/count/test.yml @@ -1,8 +1,17 @@ -- name: meryl count test_meryl_count - command: nextflow run tests/modules/meryl/count -entry test_meryl_count -c tests/config/nextflow.config +- name: meryl count test_meryl_count_single_end + command: nextflow run tests/modules/meryl/count -entry test_meryl_count_single_end -c tests/config/nextflow.config tags: - - meryl - meryl/count + - meryl files: - path: output/meryl/versions.yml - md5sum: 9bc9470c2eff996026781d5ff8c2b369 + md5sum: 5fe537d873925ccbcc4edf0983e9eda0 + +- name: meryl count test_meryl_count_paired_end + command: nextflow run tests/modules/meryl/count -entry test_meryl_count_paired_end -c tests/config/nextflow.config + tags: + - meryl/count + - meryl + files: + - path: output/meryl/versions.yml + md5sum: 4961f13cfb60ba8764ed666e70dbf12c From 453d5b66a47b0a1e3e06c254a01699703eced3a6 Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Mon, 9 May 2022 14:46:18 +0200 Subject: [PATCH 493/592] Add Bacteroides fragilis GFF file --- tests/config/test_data.config | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 4ff6efd9..c4f470a4 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -345,6 +345,7 @@ params { genome_gbff_gz = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.gbff.gz" genome_paf = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.paf" genome_mapping_potential_arg = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.mapping.potential.ARG" + genome_gff_gz = "${test_data_dir}/genomics/prokaryotes/bacteroides_fragilis/genome/genome.gff.gz" } 'illumina' { From 662176855055f6f9698fa4754d01803e6465ff54 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 12:54:31 +0000 Subject: [PATCH 494/592] Update pytest outputs --- modules/meryl/unionsum/main.nf | 6 +++--- tests/modules/meryl/unionsum/main.nf | 2 +- tests/modules/meryl/unionsum/test.yml | 16 +++++----------- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/modules/meryl/unionsum/main.nf b/modules/meryl/unionsum/main.nf index 0d7b80b6..98baa870 100644 --- a/modules/meryl/unionsum/main.nf +++ b/modules/meryl/unionsum/main.nf @@ -11,8 +11,8 @@ process MERYL_UNIONSUM { tuple val(meta), path(meryl_dbs) output: - tuple val(meta), path("*.meryldb"), emit: meryl_db - path "versions.yml" , emit: versions + tuple val(meta), path("*.unionsum.meryldb"), emit: meryl_db + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -24,7 +24,7 @@ process MERYL_UNIONSUM { meryl union-sum \\ threads=$task.cpus \\ $args \\ - output ${prefix}.meryl \\ + output ${prefix}.unionsum.meryldb \\ $meryl_dbs cat <<-END_VERSIONS > versions.yml diff --git a/tests/modules/meryl/unionsum/main.nf b/tests/modules/meryl/unionsum/main.nf index 7cffe046..e861cceb 100644 --- a/tests/modules/meryl/unionsum/main.nf +++ b/tests/modules/meryl/unionsum/main.nf @@ -8,7 +8,7 @@ include { MERYL_UNIONSUM } from '../../../../modules/meryl/unionsum/main.nf' workflow test_meryl_unionsum { input = [ - [ id:'test' ], // meta map + [ id:'test', single_end: false ], // meta map [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) diff --git a/tests/modules/meryl/unionsum/test.yml b/tests/modules/meryl/unionsum/test.yml index f495e946..1ba33a93 100644 --- a/tests/modules/meryl/unionsum/test.yml +++ b/tests/modules/meryl/unionsum/test.yml @@ -1,14 +1,8 @@ -## TODO nf-core: Please run the following command to build this file: -# nf-core modules create-test-yml meryl/unionsum -- name: "meryl unionsum" - command: nextflow run ./tests/modules/meryl/unionsum -entry test_meryl_unionsum -c ./tests/config/nextflow.config -c ./tests/modules/meryl/unionsum/nextflow.config +- name: meryl unionsum test_meryl_unionsum + command: nextflow run tests/modules/meryl/unionsum -entry test_meryl_unionsum -c tests/config/nextflow.config tags: - - "meryl" - # - - "meryl/unionsum" - # + - meryl + - meryl/unionsum files: - - path: "output/meryl/test.bam" - md5sum: e667c7caad0bc4b7ac383fd023c654fc - path: output/meryl/versions.yml - md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b + md5sum: c864aa98f55b9ec7fa1fb2716ec736dd From bf91f9dd9b62c98175d962bd51dbe2d0b7f91d4c Mon Sep 17 00:00:00 2001 From: Annick Renevey <47788523+rannick@users.noreply.github.com> Date: Mon, 9 May 2022 14:54:52 +0200 Subject: [PATCH 495/592] update arriba module --- modules/arriba/main.nf | 32 ++++++++++++++++++++++++++++---- modules/arriba/meta.yml | 22 +++++++++++++++++++++- 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/modules/arriba/main.nf b/modules/arriba/main.nf index e0d30b45..b7883acd 100644 --- a/modules/arriba/main.nf +++ b/modules/arriba/main.nf @@ -2,15 +2,20 @@ process ARRIBA { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::arriba=2.1.0" : null) + conda (params.enable_conda ? "bioconda::arriba=2.2.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/arriba:2.1.0--h3198e80_1' : - 'quay.io/biocontainers/arriba:2.1.0--h3198e80_1' }" + 'https://depot.galaxyproject.org/singularity/arriba:2.2.1--hecb563c_2' : + 'quay.io/biocontainers/arriba:2.2.1--hecb563c_2' }" input: tuple val(meta), path(bam) path fasta path gtf + path blacklist + path known_fusions + path structural_variants + path tags + path protein_domains output: tuple val(meta), path("*.fusions.tsv") , emit: fusions @@ -23,7 +28,12 @@ process ARRIBA { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def blacklist = (args.contains('-b')) ? '' : '-f blacklist' + def blacklist = blacklist ? "-b $blacklist" : "-f blacklist" + def known_fusions = known_fusions ? "-k $known_fusions" : "" + def structural_variants = structural_variants ? "-d $structual_variants" : "" + def tags = tags ? "-t $tags" : "" + def protein_domains = protein_domains ? "-p $protein_domains" : "" + """ arriba \\ -x $bam \\ @@ -32,6 +42,10 @@ process ARRIBA { -o ${prefix}.fusions.tsv \\ -O ${prefix}.fusions.discarded.tsv \\ $blacklist \\ + $known_fusions \\ + $structural_variants \\ + $tags \\ + $protein_domains \\ $args cat <<-END_VERSIONS > versions.yml @@ -39,4 +53,14 @@ process ARRIBA { arriba: \$(arriba -h | grep 'Version:' 2>&1 | sed 's/Version:\s//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + echo stub > ${prefix}.fusions.tsv + echo stub > ${prefix}.fusions.discarded.tsv + + echo "${task.process}:" > versions.yml + echo ' arriba: 2.2.1' >> versions.yml + """ } diff --git a/modules/arriba/meta.yml b/modules/arriba/meta.yml index 4bde2f08..119dd912 100644 --- a/modules/arriba/meta.yml +++ b/modules/arriba/meta.yml @@ -30,6 +30,26 @@ input: type: file description: Annotation GTF file pattern: "*.{gtf}" + - blacklist: + type: file + description: Blacklist file + pattern: "*.{tsv}" + - known_fusions: + type: file + description: Known fusions file + pattern: "*.{tsv}" + - structural_variants: + type: file + description: Structural variants file + pattern: "*.{tsv}" + - tags: + type: file + description: Tags file + pattern: "*.{tsv}" + - protein_domains: + type: file + description: Protein domains file + pattern: "*.{gff3}" output: - meta: @@ -51,4 +71,4 @@ output: pattern: "*.{fusions.discarded.tsv}" authors: - - "@praveenraj2018" + - "@praveenraj2018,@rannick" From eed874ace79a40a3ce1a50b7d1df560cefecfed4 Mon Sep 17 00:00:00 2001 From: Annick Renevey <47788523+rannick@users.noreply.github.com> Date: Mon, 9 May 2022 14:55:18 +0200 Subject: [PATCH 496/592] update arriba tests --- tests/modules/arriba/main.nf | 4 ++-- tests/modules/arriba/test.yml | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/modules/arriba/main.nf b/tests/modules/arriba/main.nf index 60741275..205adf0f 100644 --- a/tests/modules/arriba/main.nf +++ b/tests/modules/arriba/main.nf @@ -20,7 +20,7 @@ workflow test_arriba_single_end { STAR_GENOMEGENERATE ( fasta, gtf ) STAR_ALIGN ( input, STAR_GENOMEGENERATE.out.index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center ) - ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf ) + ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf , [], [], [], [], []) } workflow test_arriba_paired_end { @@ -38,5 +38,5 @@ workflow test_arriba_paired_end { STAR_GENOMEGENERATE ( fasta, gtf ) STAR_ALIGN ( input, STAR_GENOMEGENERATE.out.index, gtf, star_ignore_sjdbgtf, seq_platform, seq_center ) - ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf ) + ARRIBA ( STAR_ALIGN.out.bam, fasta, gtf, [], [], [], [], []) } diff --git a/tests/modules/arriba/test.yml b/tests/modules/arriba/test.yml index 52743167..c2032df3 100644 --- a/tests/modules/arriba/test.yml +++ b/tests/modules/arriba/test.yml @@ -13,7 +13,7 @@ - path: output/star/star/SA md5sum: 8c3edc46697b72c9e92440d4cf43506c - path: output/star/star/SAindex - md5sum: 9f085c626553b1c52f2827421972ac10 + md5sum: 2a0c675d8b91d8e5e8c1826d3500482e - path: output/star/star/chrLength.txt md5sum: c81f40f27e72606d7d07097c1d56a5b5 - path: output/star/star/chrName.txt @@ -29,7 +29,7 @@ - path: output/star/star/geneInfo.tab md5sum: 8b608537307443ffaee4927d2b428805 - path: output/star/star/genomeParameters.txt - md5sum: 9e42067b1ec70b773257529230dd7b3a + md5sum: 3097677f4d8b2cb66770b9e55d343a7f - path: output/star/star/sjdbInfo.txt md5sum: 5690ea9d9f09f7ff85b7fd47bd234903 - path: output/star/star/sjdbList.fromGTF.out.tab @@ -39,6 +39,7 @@ - path: output/star/star/transcriptInfo.tab md5sum: 0c3a5adb49d15e5feff81db8e29f2e36 - path: output/star/test.Aligned.out.bam + md5sum: b9f5e2f6a624b64c300fe25dc3ac801f - path: output/star/test.Log.final.out - path: output/star/test.Log.out - path: output/star/test.Log.progress.out From 57fee2b3d6759c36f2a3e9181ab5f309cf62b6f1 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 12:56:22 +0000 Subject: [PATCH 497/592] Add description pattern --- modules/meryl/unionsum/meta.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/meryl/unionsum/meta.yml b/modules/meryl/unionsum/meta.yml index 04dabac1..cea7f0f6 100644 --- a/modules/meryl/unionsum/meta.yml +++ b/modules/meryl/unionsum/meta.yml @@ -35,6 +35,7 @@ output: - meryl_db: type: directory description: A Meryl k-mer database that is the union sum of the input databases + pattern: "*.unionsum.meryldb" authors: - "@mahesh-panchal" From f0f414d5192aaf3fa913608b387a073a5fd58b90 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 13:00:10 +0000 Subject: [PATCH 498/592] Update pytests --- tests/modules/meryl/unionsum/main.nf | 13 ++++++++++++- tests/modules/meryl/unionsum/test.yml | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/tests/modules/meryl/unionsum/main.nf b/tests/modules/meryl/unionsum/main.nf index e861cceb..6dd40c82 100644 --- a/tests/modules/meryl/unionsum/main.nf +++ b/tests/modules/meryl/unionsum/main.nf @@ -5,7 +5,18 @@ nextflow.enable.dsl = 2 include { MERYL_COUNT } from '../../../../modules/meryl/count/main.nf' include { MERYL_UNIONSUM } from '../../../../modules/meryl/unionsum/main.nf' -workflow test_meryl_unionsum { +workflow test_meryl_unionsum_single_end { + + input = [ + [ id:'test', single_end: true ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + + MERYL_COUNT ( input ) + MERYL_UNIONSUM ( MERYL_COUNT.out.meryl_db ) +} + +workflow test_meryl_unionsum_paired_end { input = [ [ id:'test', single_end: false ], // meta map diff --git a/tests/modules/meryl/unionsum/test.yml b/tests/modules/meryl/unionsum/test.yml index 1ba33a93..10a1a155 100644 --- a/tests/modules/meryl/unionsum/test.yml +++ b/tests/modules/meryl/unionsum/test.yml @@ -1,8 +1,17 @@ -- name: meryl unionsum test_meryl_unionsum - command: nextflow run tests/modules/meryl/unionsum -entry test_meryl_unionsum -c tests/config/nextflow.config +- name: meryl unionsum test_meryl_unionsum_single_end + command: nextflow run tests/modules/meryl/unionsum -entry test_meryl_unionsum_single_end -c tests/config/nextflow.config tags: - meryl - meryl/unionsum files: - path: output/meryl/versions.yml - md5sum: c864aa98f55b9ec7fa1fb2716ec736dd + md5sum: 7de859c6d3a29d72f6c9c976609d0913 + +- name: meryl unionsum test_meryl_unionsum_paired_end + command: nextflow run tests/modules/meryl/unionsum -entry test_meryl_unionsum_paired_end -c tests/config/nextflow.config + tags: + - meryl + - meryl/unionsum + files: + - path: output/meryl/versions.yml + md5sum: a16decdec014ccb9bdab69a4a1d30818 From ac3034696bba9adb98841bda8e9f085ded059c68 Mon Sep 17 00:00:00 2001 From: Annick Renevey <47788523+rannick@users.noreply.github.com> Date: Mon, 9 May 2022 15:19:16 +0200 Subject: [PATCH 499/592] update md5sum --- tests/modules/arriba/test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/modules/arriba/test.yml b/tests/modules/arriba/test.yml index c2032df3..b1e34db0 100644 --- a/tests/modules/arriba/test.yml +++ b/tests/modules/arriba/test.yml @@ -4,7 +4,7 @@ - arriba files: - path: output/arriba/test.fusions.discarded.tsv - md5sum: cad8c215b938d1e45b747a5b7898a4c2 + md5sum: 7602ab4ccbbb0c54fbca12a942877e6d - path: output/arriba/test.fusions.tsv md5sum: 7c3383f7eb6d79b84b0bd30a7ef02d70 - path: output/star/star/Genome @@ -13,7 +13,7 @@ - path: output/star/star/SA md5sum: 8c3edc46697b72c9e92440d4cf43506c - path: output/star/star/SAindex - md5sum: 2a0c675d8b91d8e5e8c1826d3500482e + md5sum: 9f085c626553b1c52f2827421972ac10 - path: output/star/star/chrLength.txt md5sum: c81f40f27e72606d7d07097c1d56a5b5 - path: output/star/star/chrName.txt @@ -29,7 +29,7 @@ - path: output/star/star/geneInfo.tab md5sum: 8b608537307443ffaee4927d2b428805 - path: output/star/star/genomeParameters.txt - md5sum: 3097677f4d8b2cb66770b9e55d343a7f + md5sum: 9e42067b1ec70b773257529230dd7b3a - path: output/star/star/sjdbInfo.txt md5sum: 5690ea9d9f09f7ff85b7fd47bd234903 - path: output/star/star/sjdbList.fromGTF.out.tab @@ -39,7 +39,7 @@ - path: output/star/star/transcriptInfo.tab md5sum: 0c3a5adb49d15e5feff81db8e29f2e36 - path: output/star/test.Aligned.out.bam - md5sum: b9f5e2f6a624b64c300fe25dc3ac801f + md5sum: 4fa079d11f8938e51015e3e477fa7149 - path: output/star/test.Log.final.out - path: output/star/test.Log.out - path: output/star/test.Log.progress.out @@ -51,7 +51,7 @@ - arriba files: - path: output/arriba/test.fusions.discarded.tsv - md5sum: 85e36c887464e4deaa65f45174d3b8fd + md5sum: cdc6cfbc75e68ce29a766f50f390274d - path: output/arriba/test.fusions.tsv md5sum: 7c3383f7eb6d79b84b0bd30a7ef02d70 - path: output/star/star/Genome From ef5f145342cb0f25be6867f9ac17fe460b11571c Mon Sep 17 00:00:00 2001 From: Rike Date: Mon, 9 May 2022 15:22:54 +0200 Subject: [PATCH 500/592] Generalize Bam2Cram do either conversion --- .../samtools/{bamtocram => convert}/main.nf | 20 ++++++++---- .../samtools/{bamtocram => convert}/meta.yml | 12 +++---- tests/config/pytest_modules.yml | 6 ++-- tests/modules/samtools/bamtocram/main.nf | 17 ---------- .../samtools/bamtocram/nextflow.config | 5 --- tests/modules/samtools/bamtocram/test.yml | 9 ------ tests/modules/samtools/convert/main.nf | 31 +++++++++++++++++++ .../modules/samtools/convert/nextflow.config | 12 +++++++ tests/modules/samtools/convert/test.yml | 21 +++++++++++++ 9 files changed, 87 insertions(+), 46 deletions(-) rename modules/samtools/{bamtocram => convert}/main.nf (59%) rename modules/samtools/{bamtocram => convert}/meta.yml (84%) delete mode 100644 tests/modules/samtools/bamtocram/main.nf delete mode 100644 tests/modules/samtools/bamtocram/nextflow.config delete mode 100644 tests/modules/samtools/bamtocram/test.yml create mode 100644 tests/modules/samtools/convert/main.nf create mode 100644 tests/modules/samtools/convert/nextflow.config create mode 100644 tests/modules/samtools/convert/test.yml diff --git a/modules/samtools/bamtocram/main.nf b/modules/samtools/convert/main.nf similarity index 59% rename from modules/samtools/bamtocram/main.nf rename to modules/samtools/convert/main.nf index b49c308f..a7ec1bda 100644 --- a/modules/samtools/bamtocram/main.nf +++ b/modules/samtools/convert/main.nf @@ -1,5 +1,4 @@ -//There is a -L option to only output alignments in interval, might be an option for exons/panel data? -process SAMTOOLS_BAMTOCRAM { +process SAMTOOLS_CONVERT { tag "$meta.id" label 'process_medium' @@ -14,8 +13,9 @@ process SAMTOOLS_BAMTOCRAM { path fai output: - tuple val(meta), path("*.cram"), path("*.crai"), emit: cram_crai - path "versions.yml" , emit: versions + tuple val(meta), path("*.cram"), path("*.crai") , emit: cram_crai, optional: true + tuple val(meta), path("*.bam"), path("*.bai") , emit: bam_bai, optional:true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -23,9 +23,17 @@ process SAMTOOLS_BAMTOCRAM { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" + def file_type = input.getExtension() == "bam" ? "cram" : "bam" + """ - samtools view --threads ${task.cpus} --reference ${fasta} -C $args $input > ${prefix}.cram - samtools index -@${task.cpus} ${prefix}.cram + samtools view \\ + --threads ${task.cpus} \\ + --reference ${fasta} \\ + $args \\ + $input \\ + -o ${prefix}.${file_type} + + samtools index -@${task.cpus} ${prefix}.${file_type} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/samtools/bamtocram/meta.yml b/modules/samtools/convert/meta.yml similarity index 84% rename from modules/samtools/bamtocram/meta.yml rename to modules/samtools/convert/meta.yml index 037704c6..506febb6 100644 --- a/modules/samtools/bamtocram/meta.yml +++ b/modules/samtools/convert/meta.yml @@ -1,5 +1,5 @@ -name: samtools_bamtocram -description: filter/convert and then index CRAM file +name: samtools_convert +description: convert and then index CRAM -> BAM or BAM -> CRAM file keywords: - view - index @@ -23,12 +23,12 @@ input: e.g. [ id:'test', single_end:false ] - input: type: file - description: BAM/SAM file - pattern: "*.{bam,sam}" + description: BAM/CRAM file + pattern: "*.{bam,cram}" - index: type: file - description: BAM/SAM index file - pattern: "*.{bai,sai}" + description: BAM/CRAM index file + pattern: "*.{bai,crai}" - fasta: type: file description: Reference file to create the CRAM file diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index ec7fc321..53aa44b9 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1631,9 +1631,9 @@ samtools/bam2fq: - modules/samtools/bam2fq/** - tests/modules/samtools/bam2fq/** -samtools/bamtocram: - - modules/samtools/bamtocram/** - - tests/modules/samtools/bamtocram/** +samtools/convert: + - modules/samtools/convert/** + - tests/modules/samtools/convert/** samtools/collatefastq: - modules/samtools/collatefastq/** diff --git a/tests/modules/samtools/bamtocram/main.nf b/tests/modules/samtools/bamtocram/main.nf deleted file mode 100644 index b1743310..00000000 --- a/tests/modules/samtools/bamtocram/main.nf +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { SAMTOOLS_BAMTOCRAM } from '../../../../modules/samtools/bamtocram/main.nf' - -workflow test_samtools_bamtocram { - - input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), - file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true)] - - fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) - fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) - - SAMTOOLS_BAMTOCRAM ( input, fasta, fai ) -} \ No newline at end of file diff --git a/tests/modules/samtools/bamtocram/nextflow.config b/tests/modules/samtools/bamtocram/nextflow.config deleted file mode 100644 index 8730f1c4..00000000 --- a/tests/modules/samtools/bamtocram/nextflow.config +++ /dev/null @@ -1,5 +0,0 @@ -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - -} diff --git a/tests/modules/samtools/bamtocram/test.yml b/tests/modules/samtools/bamtocram/test.yml deleted file mode 100644 index 3cb82902..00000000 --- a/tests/modules/samtools/bamtocram/test.yml +++ /dev/null @@ -1,9 +0,0 @@ -- name: samtools bamtocram test_samtools_bamtocram - command: nextflow run ./tests/modules/samtools/bamtocram -entry test_samtools_bamtocram -c ./tests/config/nextflow.config -c ./tests/modules/samtools/bamtocram/nextflow.config - tags: - - samtools/bamtocram - - samtools - files: - - path: output/samtools/test.cram - - path: output/samtools/test.cram.crai - - path: output/samtools/versions.yml diff --git a/tests/modules/samtools/convert/main.nf b/tests/modules/samtools/convert/main.nf new file mode 100644 index 00000000..01bdfe7f --- /dev/null +++ b/tests/modules/samtools/convert/main.nf @@ -0,0 +1,31 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SAMTOOLS_CONVERT as SAMTOOLS_BAMTOCRAM } from '../../../../modules/samtools/convert/main.nf' +include { SAMTOOLS_CONVERT as SAMTOOLS_CRAMTOBAM } from '../../../../modules/samtools/convert/main.nf' + +workflow test_samtools_convert_bamtocram { + + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_paired_end_sorted_bam_bai'], checkIfExists: true)] + + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['sarscov2']['genome']['genome_fasta_fai'], checkIfExists: true) + + SAMTOOLS_BAMTOCRAM ( input, fasta, fai ) +} + +workflow test_samtools_convert_cramtobam { + + input = [ [ id:'test', single_end:false ], // meta map + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram'], checkIfExists: true), + file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_cram_crai'], checkIfExists: true) + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + + SAMTOOLS_CRAMTOBAM ( input, fasta, fai ) +} diff --git a/tests/modules/samtools/convert/nextflow.config b/tests/modules/samtools/convert/nextflow.config new file mode 100644 index 00000000..4f1e83f6 --- /dev/null +++ b/tests/modules/samtools/convert/nextflow.config @@ -0,0 +1,12 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName:SAMTOOLS_BAMTOCRAM{ + ext.args = "-C" + } + + withName:SAMTOOLS_CRAMTOBAM{ + ext.args = "-b" + } +} diff --git a/tests/modules/samtools/convert/test.yml b/tests/modules/samtools/convert/test.yml new file mode 100644 index 00000000..979f36ca --- /dev/null +++ b/tests/modules/samtools/convert/test.yml @@ -0,0 +1,21 @@ +- name: samtools convert test_samtools_convert_bamtocram + command: nextflow run tests/modules/samtools/convert -entry test_samtools_convert_bamtocram -c tests/config/nextflow.config + tags: + - samtools + - samtools/convert + files: + - path: output/samtools/test.cram + - path: output/samtools/test.cram.crai + - path: output/samtools/versions.yml + +- name: samtools convert test_samtools_convert_cramtobam + command: nextflow run tests/modules/samtools/convert -entry test_samtools_convert_cramtobam -c tests/config/nextflow.config + tags: + - samtools + - samtools/convert + files: + - path: output/samtools/test.bam + md5sum: c262b6dc15f9b480bdb47d6d018b4b56 + - path: output/samtools/test.bam.bai + md5sum: 6e8f5034f728401bfa841c8e70c62463 + - path: output/samtools/versions.yml From d6dd4c2e2d094b18c2027bc636eaa88358381fb4 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Mon, 9 May 2022 15:35:16 +0200 Subject: [PATCH 501/592] Update tests/modules/rtgtools/vcfeval/test.yml Co-authored-by: FriederikeHanssen --- tests/modules/rtgtools/vcfeval/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index 73ed8cc6..025581a6 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -18,4 +18,3 @@ - path: output/rtgtools/test_results.txt md5sum: 2e011aa6e54d258fcc3b45b2dda02ae4 - path: output/rtgtools/versions.yml - md5sum: 8d0407000988c78fa43fe5cfe3d4449d From 24d5e7feedfe0eaefe1293f5e233c79fa63a3f9a Mon Sep 17 00:00:00 2001 From: Rike Date: Mon, 9 May 2022 15:42:55 +0200 Subject: [PATCH 502/592] Code review suggestions --- modules/samtools/convert/meta.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/samtools/convert/meta.yml b/modules/samtools/convert/meta.yml index 506febb6..2396f0b3 100644 --- a/modules/samtools/convert/meta.yml +++ b/modules/samtools/convert/meta.yml @@ -43,6 +43,10 @@ output: type: file description: filtered/converted CRAM file + index pattern: "*{.cram,.crai}" + - bam_bai: + type: file + description: filtered/converted BAM file + index + pattern: "*{.bam,.bai}" - version: type: file description: File containing software version From f6262b4a103124c6ebf1bd650a297e6942f437ec Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Mon, 9 May 2022 15:47:07 +0200 Subject: [PATCH 503/592] fixed some issues --- modules/rtgtools/vcfeval/main.nf | 3 ++- modules/rtgtools/vcfeval/meta.yml | 6 +++--- tests/modules/rtgtools/vcfeval/main.nf | 12 +++++++----- tests/modules/rtgtools/vcfeval/test.yml | 1 - 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 83895b64..c7e8a12e 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -8,8 +8,9 @@ process RTGTOOLS_VCFEVAL { 'quay.io/biocontainers/rtg-tools:3.12.1--hdfd78af_0' }" input: - tuple val(meta), path(query_vcf), path(query_vcf_tbi), path(bed) + tuple val(meta), path(query_vcf), path(query_vcf_tbi) tuple path(truth_vcf), path(truth_vcf_tbi) + path(bed) path(sdf) output: diff --git a/modules/rtgtools/vcfeval/meta.yml b/modules/rtgtools/vcfeval/meta.yml index 061ea876..36e1b290 100644 --- a/modules/rtgtools/vcfeval/meta.yml +++ b/modules/rtgtools/vcfeval/meta.yml @@ -40,9 +40,9 @@ input: description: The BED file of the called VCF pattern: "*.bed" - sdf: - type: folder/file - description: The SDF (RTG Sequence Data File) of the reference genome. Can be a folder or a tar-zipped folder. - pattern: "*.{,tar.gz}" + type: file + description: The SDF (RTG Sequence Data File) folder of the reference genome + pattern: "*" output: - meta: diff --git a/tests/modules/rtgtools/vcfeval/main.nf b/tests/modules/rtgtools/vcfeval/main.nf index 35a2206b..9a28e2d7 100644 --- a/tests/modules/rtgtools/vcfeval/main.nf +++ b/tests/modules/rtgtools/vcfeval/main.nf @@ -10,8 +10,7 @@ workflow test_rtgtools_vcfeval { input = [ [ id:'test' ], // meta map file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz_tbi'], checkIfExists: true), ] truth = [ @@ -19,6 +18,8 @@ workflow test_rtgtools_vcfeval { file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true) ] + bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + compressed_sdf = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) @@ -31,7 +32,7 @@ workflow test_rtgtools_vcfeval { }) - RTGTOOLS_VCFEVAL ( input, truth, sdf ) + RTGTOOLS_VCFEVAL ( input, truth, bed, sdf ) } workflow test_rtgtools_vcfeval_no_index { @@ -40,7 +41,6 @@ workflow test_rtgtools_vcfeval_no_index { [ id:'test' ], // meta map file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_vcf_gz'], checkIfExists: true), [], - file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) ] truth = [ @@ -48,6 +48,8 @@ workflow test_rtgtools_vcfeval_no_index { [] ] + bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + compressed_sdf = [ [], file(params.test_data['homo_sapiens']['genome']['genome_21_sdf']) @@ -59,5 +61,5 @@ workflow test_rtgtools_vcfeval_no_index { [folder] }) - RTGTOOLS_VCFEVAL ( input, truth, sdf ) + RTGTOOLS_VCFEVAL ( input, truth, bed, sdf ) } diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index 025581a6..86252c68 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -7,7 +7,6 @@ - path: output/rtgtools/test_results.txt md5sum: 2e011aa6e54d258fcc3b45b2dda02ae4 - path: output/rtgtools/versions.yml - md5sum: 270ed7a5a8e347b251eb4aa2198f98e8 - name: rtgtools vcfeval test_rtgtools_vcfeval_no_index command: nextflow run tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval_no_index -c tests/config/nextflow.config From da93beaf606a9f4ea7ae335ed3e25afdeac2bc26 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 13:50:49 +0000 Subject: [PATCH 504/592] Update pytests --- tests/modules/meryl/histogram/nextflow.config | 5 +++-- tests/modules/meryl/histogram/test.yml | 18 +++++++----------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/tests/modules/meryl/histogram/nextflow.config b/tests/modules/meryl/histogram/nextflow.config index 50f50a7a..6d899c50 100644 --- a/tests/modules/meryl/histogram/nextflow.config +++ b/tests/modules/meryl/histogram/nextflow.config @@ -1,5 +1,6 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - -} \ No newline at end of file + ext.args = 'k=21' + +} diff --git a/tests/modules/meryl/histogram/test.yml b/tests/modules/meryl/histogram/test.yml index ef358943..dce26b65 100644 --- a/tests/modules/meryl/histogram/test.yml +++ b/tests/modules/meryl/histogram/test.yml @@ -1,14 +1,10 @@ -## TODO nf-core: Please run the following command to build this file: -# nf-core modules create-test-yml meryl/histogram -- name: "meryl histogram" - command: nextflow run ./tests/modules/meryl/histogram -entry test_meryl_histogram -c ./tests/config/nextflow.config -c ./tests/modules/meryl/histogram/nextflow.config +- name: meryl histogram test_meryl_histogram + command: nextflow run tests/modules/meryl/histogram -entry test_meryl_histogram -c tests/config/nextflow.config tags: - - "meryl" - # - - "meryl/histogram" - # + - meryl/histogram + - meryl files: - - path: "output/meryl/test.bam" - md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/meryl/test.hist + md5sum: 4bfdc8b287ee0cfd9922bbfa8cd64650 - path: output/meryl/versions.yml - md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b + md5sum: 050038f1b1df79977a393cce1b4b2ddb From 1b63d03f8e6d5b964c3f5215cb3c99f5604098ed Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Mon, 9 May 2022 15:51:19 +0200 Subject: [PATCH 505/592] adjusted the bed variable name --- modules/rtgtools/vcfeval/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index c7e8a12e..a2f5244f 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -10,7 +10,7 @@ process RTGTOOLS_VCFEVAL { input: tuple val(meta), path(query_vcf), path(query_vcf_tbi) tuple path(truth_vcf), path(truth_vcf_tbi) - path(bed) + path(truth_regions) path(sdf) output: @@ -23,7 +23,7 @@ process RTGTOOLS_VCFEVAL { script: def args = task.ext.args ?: '' def prefix = task.ext.prefix ?: "${meta.id}" - def regions = bed ? "--bed-regions=$bed" : "" + def regions = truth_regions ? "--bed-regions=$truth_regions" : "" def truth_index = truth_vcf_tbi ? "" : "rtg index $truth_vcf" def query_index = query_vcf_tbi ? "" : "rtg index $query_vcf" From bd7e1414a453af7605a67dcc166e3a98aeec3689 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Mon, 9 May 2022 15:55:48 +0200 Subject: [PATCH 506/592] Fixed meta.yml --- modules/rtgtools/vcfeval/main.nf | 2 +- modules/rtgtools/vcfeval/meta.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index a2f5244f..1d981204 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -8,7 +8,7 @@ process RTGTOOLS_VCFEVAL { 'quay.io/biocontainers/rtg-tools:3.12.1--hdfd78af_0' }" input: - tuple val(meta), path(query_vcf), path(query_vcf_tbi) + tuple val(meta), path(query_vcf), path(query_vcf_tbi) tuple path(truth_vcf), path(truth_vcf_tbi) path(truth_regions) path(sdf) diff --git a/modules/rtgtools/vcfeval/meta.yml b/modules/rtgtools/vcfeval/meta.yml index 36e1b290..baf9e87a 100644 --- a/modules/rtgtools/vcfeval/meta.yml +++ b/modules/rtgtools/vcfeval/meta.yml @@ -35,9 +35,9 @@ input: type: file description: The index of the called VCF (optional) pattern: "*.tbi" - - bed: + - truth_regions: type: file - description: The BED file of the called VCF + description: The BED file containing the truth regions pattern: "*.bed" - sdf: type: file From 1de1c2253e2d5c6bc37ebeda5500120f6f023750 Mon Sep 17 00:00:00 2001 From: Rike Date: Mon, 9 May 2022 16:04:58 +0200 Subject: [PATCH 507/592] Combine output after code review --- modules/samtools/convert/main.nf | 7 +++---- modules/samtools/convert/meta.yml | 10 +++------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/modules/samtools/convert/main.nf b/modules/samtools/convert/main.nf index a7ec1bda..b20f2b93 100644 --- a/modules/samtools/convert/main.nf +++ b/modules/samtools/convert/main.nf @@ -13,16 +13,15 @@ process SAMTOOLS_CONVERT { path fai output: - tuple val(meta), path("*.cram"), path("*.crai") , emit: cram_crai, optional: true - tuple val(meta), path("*.bam"), path("*.bai") , emit: bam_bai, optional:true - path "versions.yml" , emit: versions + tuple val(meta), path("*.{cram,bam}"), path("*.{crai,bai}") , emit: aligned_index + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}" def file_type = input.getExtension() == "bam" ? "cram" : "bam" """ diff --git a/modules/samtools/convert/meta.yml b/modules/samtools/convert/meta.yml index 2396f0b3..87727255 100644 --- a/modules/samtools/convert/meta.yml +++ b/modules/samtools/convert/meta.yml @@ -39,14 +39,10 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - cram_crai: + - aligned_index: type: file - description: filtered/converted CRAM file + index - pattern: "*{.cram,.crai}" - - bam_bai: - type: file - description: filtered/converted BAM file + index - pattern: "*{.bam,.bai}" + description: filtered/converted BAM/CRAM file + index + pattern: "*{.bam/cram,.bai/crai}" - version: type: file description: File containing software version From 5bd456e5e8cdc9cf8a34ce9bc5fc1f949714e0fe Mon Sep 17 00:00:00 2001 From: Rike Date: Mon, 9 May 2022 16:06:22 +0200 Subject: [PATCH 508/592] rename file_type to output extension --- modules/samtools/convert/main.nf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/samtools/convert/main.nf b/modules/samtools/convert/main.nf index b20f2b93..4638d360 100644 --- a/modules/samtools/convert/main.nf +++ b/modules/samtools/convert/main.nf @@ -21,8 +21,8 @@ process SAMTOOLS_CONVERT { script: def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}" - def file_type = input.getExtension() == "bam" ? "cram" : "bam" + def prefix = task.ext.prefix ?: "${meta.id}" + def output_extension = input.getExtension() == "bam" ? "cram" : "bam" """ samtools view \\ @@ -30,9 +30,9 @@ process SAMTOOLS_CONVERT { --reference ${fasta} \\ $args \\ $input \\ - -o ${prefix}.${file_type} + -o ${prefix}.${output_extension} - samtools index -@${task.cpus} ${prefix}.${file_type} + samtools index -@${task.cpus} ${prefix}.${output_extension} cat <<-END_VERSIONS > versions.yml "${task.process}": From da79396f066a96450d9cc9f115c17c9d738595fd Mon Sep 17 00:00:00 2001 From: Rike Date: Mon, 9 May 2022 16:07:49 +0200 Subject: [PATCH 509/592] rename aligned to alignment --- modules/samtools/convert/main.nf | 2 +- modules/samtools/convert/meta.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/samtools/convert/main.nf b/modules/samtools/convert/main.nf index 4638d360..e0e7d725 100644 --- a/modules/samtools/convert/main.nf +++ b/modules/samtools/convert/main.nf @@ -13,7 +13,7 @@ process SAMTOOLS_CONVERT { path fai output: - tuple val(meta), path("*.{cram,bam}"), path("*.{crai,bai}") , emit: aligned_index + tuple val(meta), path("*.{cram,bam}"), path("*.{crai,bai}") , emit: alignment_index path "versions.yml" , emit: versions when: diff --git a/modules/samtools/convert/meta.yml b/modules/samtools/convert/meta.yml index 87727255..937b1403 100644 --- a/modules/samtools/convert/meta.yml +++ b/modules/samtools/convert/meta.yml @@ -39,7 +39,7 @@ output: description: | Groovy Map containing sample information e.g. [ id:'test', single_end:false ] - - aligned_index: + - alignment_index: type: file description: filtered/converted BAM/CRAM file + index pattern: "*{.bam/cram,.bai/crai}" From f65d896f57a5564a40278f4df7f627e8f8a17d6b Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Mon, 9 May 2022 15:09:15 +0000 Subject: [PATCH 510/592] create genomescope2 module --- modules/genomescope2/main.nf | 42 +++++++++++++++++++++ modules/genomescope2/meta.yml | 43 ++++++++++++++++++++++ tests/config/pytest_modules.yml | 12 ++++-- tests/modules/genomescope2/main.nf | 19 ++++++++++ tests/modules/genomescope2/nextflow.config | 13 +++++++ tests/modules/genomescope2/test.yml | 12 ++++++ 6 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 modules/genomescope2/main.nf create mode 100644 modules/genomescope2/meta.yml create mode 100644 tests/modules/genomescope2/main.nf create mode 100644 tests/modules/genomescope2/nextflow.config create mode 100644 tests/modules/genomescope2/test.yml diff --git a/modules/genomescope2/main.nf b/modules/genomescope2/main.nf new file mode 100644 index 00000000..d81ed27a --- /dev/null +++ b/modules/genomescope2/main.nf @@ -0,0 +1,42 @@ +process GENOMESCOPE2 { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::genomescope2=2.0" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/genomescope2:2.0--py310r41hdfd78af_5': + 'quay.io/biocontainers/genomescope2:2.0--py310r41hdfd78af_5' }" + + input: + tuple val(meta), path(histogram) + + output: + tuple val(meta), path("$prefix-linear_plot.png") , emit: linear_plot_png + tuple val(meta), path("$prefix-transformed_linear_plot.png"), emit: transformed_linear_plot_png + tuple val(meta), path("$prefix-log_plot.png") , emit: log_plot_png + tuple val(meta), path("$prefix-transformed_log_plot.png") , emit: transformed_log_plot_png + tuple val(meta), path("$prefix-model.txt") , emit: model + tuple val(meta), path("$prefix-summary.txt") , emit: summary + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + prefix = task.ext.prefix ?: "${meta.id}" + """ + genomescope2 \\ + --input $histogram \\ + $args \\ + --output . \\ + --name_prefix $prefix + + ls -l + + cat <<-END_VERSIONS > versions.yml + '${task.process}': + genomescope2: \$( genomescope2 -v | sed 's/GenomeScope //' ) + END_VERSIONS + """ +} diff --git a/modules/genomescope2/meta.yml b/modules/genomescope2/meta.yml new file mode 100644 index 00000000..b680bb8f --- /dev/null +++ b/modules/genomescope2/meta.yml @@ -0,0 +1,43 @@ +name: "genomescope2" +description: Estimate genome heterozygosity, repeat content, and size from sequencing reads using a kmer-based statistical approach +keywords: + - "genome size" + - "genome heterozygosity" + - "repeat content" +tools: + - "genomescope2": + description: "Reference-free profiling of polyploid genomes" + homepage: "http://qb.cshl.edu/genomescope/genomescope2.0/" + documentation: "https://github.com/tbenavi1/genomescope2.0/blob/master/README.md" + tool_dev_url: "https://github.com/tbenavi1/genomescope2.0" + doi: "https://doi.org/10.1038/s41467-020-14998-3" + licence: "['Apache License, Version 2.0 (Apache-2.0)']" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - histogram: + type: file + description: A K-mer histogram file + pattern: "*.hist" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - linear_plot_png: + type: file + description: A genomescope2 linear plot in PNG format + pattern: "*.png" + +authors: + - "@mahesh-panchal" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index ba292bce..286bd8b8 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -835,6 +835,10 @@ genmap/mappability: - modules/genmap/mappability/** - tests/modules/genmap/mappability/** +genomescope2: + - modules/genomescope2/** + - tests/modules/genomescope2/** + genrich: - modules/genrich/** - tests/modules/genrich/** @@ -1639,14 +1643,14 @@ samtools/bam2fq: - modules/samtools/bam2fq/** - tests/modules/samtools/bam2fq/** -samtools/convert: - - modules/samtools/convert/** - - tests/modules/samtools/convert/** - samtools/collatefastq: - modules/samtools/collatefastq/** - tests/modules/samtools/collatefastq/** +samtools/convert: + - modules/samtools/convert/** + - tests/modules/samtools/convert/** + samtools/depth: - modules/samtools/depth/** - tests/modules/samtools/depth/** diff --git a/tests/modules/genomescope2/main.nf b/tests/modules/genomescope2/main.nf new file mode 100644 index 00000000..9f15be88 --- /dev/null +++ b/tests/modules/genomescope2/main.nf @@ -0,0 +1,19 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { MERYL_COUNT } from '../../../modules/meryl/count/main.nf' +include { MERYL_HISTOGRAM } from '../../../modules/meryl/histogram/main.nf' +include { GENOMESCOPE2 } from '../../../modules/genomescope2/main.nf' + +workflow test_genomescope2 { + + input = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + + MERYL_COUNT ( input ) + MERYL_HISTOGRAM ( MERYL_COUNT.out.meryl_db ) + GENOMESCOPE2 ( MERYL_HISTOGRAM.out.hist ) +} diff --git a/tests/modules/genomescope2/nextflow.config b/tests/modules/genomescope2/nextflow.config new file mode 100644 index 00000000..29a0be3a --- /dev/null +++ b/tests/modules/genomescope2/nextflow.config @@ -0,0 +1,13 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: 'MERYL.*' { + ext.args = 'k=21' + } + + withName: 'GENOMESCOPE2' { + ext.args = '-k 21 -p 1' + } + +} diff --git a/tests/modules/genomescope2/test.yml b/tests/modules/genomescope2/test.yml new file mode 100644 index 00000000..d2a664d9 --- /dev/null +++ b/tests/modules/genomescope2/test.yml @@ -0,0 +1,12 @@ +## TODO nf-core: Please run the following command to build this file: +# nf-core modules create-test-yml genomescope2 +- name: "genomescope2" + command: nextflow run ./tests/modules/genomescope2 -entry test_genomescope2 -c ./tests/config/nextflow.config -c ./tests/modules/genomescope2/nextflow.config + tags: + - "genomescope2" + # + files: + - path: "output/genomescope2/test.bam" + md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/genomescope2/versions.yml + md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b From c69d5cc23e76d5560b763111a167a15d8cd08424 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 09:35:42 +0200 Subject: [PATCH 511/592] Added evaluation-regions and adjusted the output to now contain all output (and not only the summary) --- modules/rtgtools/vcfeval/main.nf | 14 ++--- modules/rtgtools/vcfeval/meta.yml | 10 ++-- tests/modules/rtgtools/vcfeval/main.nf | 14 +++-- tests/modules/rtgtools/vcfeval/test.yml | 69 ++++++++++++++++++++++--- 4 files changed, 87 insertions(+), 20 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 1d981204..4e27ed6b 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -11,19 +11,21 @@ process RTGTOOLS_VCFEVAL { tuple val(meta), path(query_vcf), path(query_vcf_tbi) tuple path(truth_vcf), path(truth_vcf_tbi) path(truth_regions) + path(evaluation_regions) path(sdf) output: - tuple val(meta), path("*.txt"), emit: results - path "versions.yml" , emit: versions + tuple val(meta), path("${task.ext.prefix ?: meta.id}/*") , emit: results + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' + def args = task.ext.args ?: "" def prefix = task.ext.prefix ?: "${meta.id}" - def regions = truth_regions ? "--bed-regions=$truth_regions" : "" + def bed_regions = truth_regions ? "--bed-regions=$truth_regions" : "" + def eval_regions = evaluation_regions ? "--evaluation-regions=$evaluation_regions" : "" def truth_index = truth_vcf_tbi ? "" : "rtg index $truth_vcf" def query_index = query_vcf_tbi ? "" : "rtg index $query_vcf" @@ -34,12 +36,12 @@ process RTGTOOLS_VCFEVAL { rtg vcfeval \\ $args \\ --baseline=$truth_vcf \\ - $regions \\ + $bed_regions \\ + $eval_regions \\ --calls=$query_vcf \\ --output=$prefix \\ --template=$sdf \\ --threads=$task.cpus \\ - > ${prefix}_results.txt cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/rtgtools/vcfeval/meta.yml b/modules/rtgtools/vcfeval/meta.yml index baf9e87a..1f448fdc 100644 --- a/modules/rtgtools/vcfeval/meta.yml +++ b/modules/rtgtools/vcfeval/meta.yml @@ -37,7 +37,11 @@ input: pattern: "*.tbi" - truth_regions: type: file - description: The BED file containing the truth regions + description: A BED file containining the strict regions where VCFeval should only evaluate the fully overlapping variants (optional) + pattern: "*.bed" + - evaluation_regions: + type: file + description: A BED file containing the regions where VCFeval will evaluate every fully and partially overlapping variant (optional) pattern: "*.bed" - sdf: type: file @@ -56,8 +60,8 @@ output: pattern: "versions.yml" - results: type: file - description: A text file containing the results of the benchmark - pattern: "*.txt" + description: A folder containing all results of the evaluation + pattern: "*" authors: - "@nvnieuwk" diff --git a/tests/modules/rtgtools/vcfeval/main.nf b/tests/modules/rtgtools/vcfeval/main.nf index 9a28e2d7..9a1c3c71 100644 --- a/tests/modules/rtgtools/vcfeval/main.nf +++ b/tests/modules/rtgtools/vcfeval/main.nf @@ -18,7 +18,9 @@ workflow test_rtgtools_vcfeval { file(params.test_data['homo_sapiens']['illumina']['test2_haplotc_ann_vcf_gz_tbi'], checkIfExists: true) ] - bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + truth_regions = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + + evaluation_regions = file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) compressed_sdf = [ [], @@ -32,10 +34,10 @@ workflow test_rtgtools_vcfeval { }) - RTGTOOLS_VCFEVAL ( input, truth, bed, sdf ) + RTGTOOLS_VCFEVAL ( input, truth, truth_regions, evaluation_regions, sdf ) } -workflow test_rtgtools_vcfeval_no_index { +workflow test_rtgtools_vcfeval_no_optional_inputs { input = [ [ id:'test' ], // meta map @@ -48,7 +50,9 @@ workflow test_rtgtools_vcfeval_no_index { [] ] - bed = file(params.test_data['homo_sapiens']['genome']['genome_21_multi_interval_bed'], checkIfExists: true) + truth_regions = [] + + evaluation_regions = [] compressed_sdf = [ [], @@ -61,5 +65,5 @@ workflow test_rtgtools_vcfeval_no_index { [folder] }) - RTGTOOLS_VCFEVAL ( input, truth, bed, sdf ) + RTGTOOLS_VCFEVAL ( input, truth, truth_regions, evaluation_regions, sdf ) } diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index 86252c68..06d39701 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -4,16 +4,73 @@ - rtgtools - rtgtools/vcfeval files: - - path: output/rtgtools/test_results.txt - md5sum: 2e011aa6e54d258fcc3b45b2dda02ae4 + - path: output/rtgtools/test/done + md5sum: 8b5623b26ee9b8722816afbec270bff0 + - path: output/rtgtools/test/fn.vcf.gz + md5sum: 4577a8c3226b9f8ed9e260c3bd4b1259 + - path: output/rtgtools/test/fn.vcf.gz.tbi + md5sum: 092a7a3162e7cff25d273525751eb284 + - path: output/rtgtools/test/fp.vcf.gz + md5sum: 1417bb8ac7a0e202df660291a74de0db + - path: output/rtgtools/test/fp.vcf.gz.tbi + md5sum: 092a7a3162e7cff25d273525751eb284 + - path: output/rtgtools/test/non_snp_roc.tsv.gz + md5sum: 8fd51a1e5084d15d43880cb1e31a0180 + - path: output/rtgtools/test/phasing.txt + md5sum: 133677dbd8be657439ea2b03fdfb8795 + - path: output/rtgtools/test/progress + - path: output/rtgtools/test/snp_roc.tsv.gz + md5sum: ff2ece544adfcefaa06da054876a9ae3 + - path: output/rtgtools/test/summary.txt + md5sum: f4c8df93c8bdab603036bbc27b4a28c3 + - path: output/rtgtools/test/tp-baseline.vcf.gz + md5sum: 4577a8c3226b9f8ed9e260c3bd4b1259 + - path: output/rtgtools/test/tp-baseline.vcf.gz.tbi + md5sum: 092a7a3162e7cff25d273525751eb284 + - path: output/rtgtools/test/tp.vcf.gz + md5sum: 1417bb8ac7a0e202df660291a74de0db + - path: output/rtgtools/test/tp.vcf.gz.tbi + md5sum: 092a7a3162e7cff25d273525751eb284 + - path: output/rtgtools/test/vcfeval.log + - path: output/rtgtools/test/weighted_roc.tsv.gz + md5sum: 5209f1bdeb03704714ae92b183d08e0f - path: output/rtgtools/versions.yml -- name: rtgtools vcfeval test_rtgtools_vcfeval_no_index - command: nextflow run tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval_no_index -c tests/config/nextflow.config +- name: rtgtools vcfeval test_rtgtools_vcfeval_no_optional_inputs + command: nextflow run tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval_no_optional_inputs -c tests/config/nextflow.config tags: - rtgtools - rtgtools/vcfeval files: - - path: output/rtgtools/test_results.txt - md5sum: 2e011aa6e54d258fcc3b45b2dda02ae4 + - path: output/rtgtools/test/done + md5sum: 8b5623b26ee9b8722816afbec270bff0 + - path: output/rtgtools/test/fn.vcf.gz + md5sum: e51420e4be520ae309a2384830bf4c15 + - path: output/rtgtools/test/fn.vcf.gz.tbi + md5sum: 092a7a3162e7cff25d273525751eb284 + - path: output/rtgtools/test/fp.vcf.gz + md5sum: 7d818cf526983de6cbb5cf517c44a8f7 + - path: output/rtgtools/test/fp.vcf.gz.tbi + md5sum: 092a7a3162e7cff25d273525751eb284 + - path: output/rtgtools/test/non_snp_roc.tsv.gz + md5sum: a535fb80081b43b19788347152b6b8b4 + - path: output/rtgtools/test/phasing.txt + md5sum: 133677dbd8be657439ea2b03fdfb8795 + - path: output/rtgtools/test/progress + - path: output/rtgtools/test/snp_roc.tsv.gz + md5sum: 6006656c4a534935c7873398287bc110 + - path: output/rtgtools/test/summary.txt + md5sum: f33feb32f84958fb931063044fba369b + - path: output/rtgtools/test/tp-baseline.vcf.gz + md5sum: ed68ea567a26d3b864ada79e9253bc97 + - path: output/rtgtools/test/tp-baseline.vcf.gz.tbi + md5sum: 3518deff814eed340b0f5386294b5879 + - path: output/rtgtools/test/tp.vcf.gz + md5sum: 92fd51021d101c99da066324655d24c9 + - path: output/rtgtools/test/tp.vcf.gz.tbi + md5sum: 169063c1f570f0055059f3cb3518a8b4 + - path: output/rtgtools/test/vcfeval.log + - path: output/rtgtools/test/weighted_roc.tsv.gz + md5sum: 0ba825084bd6b94accdf54fff23ea18c - path: output/rtgtools/versions.yml + From f0e8f6ce4d748c3eacceedc1f2821d885df47f70 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 09:36:54 +0200 Subject: [PATCH 512/592] Linting --- tests/modules/rtgtools/vcfeval/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index 06d39701..c1cbf236 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -73,4 +73,3 @@ - path: output/rtgtools/test/weighted_roc.tsv.gz md5sum: 0ba825084bd6b94accdf54fff23ea18c - path: output/rtgtools/versions.yml - From 42fbf80c7273050a1c6de3e1d179bf1c8704ad15 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 09:57:49 +0200 Subject: [PATCH 513/592] Fixed a test issue with wrong md5sum --- tests/modules/rtgtools/vcfeval/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index c1cbf236..ea76cb15 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -5,7 +5,7 @@ - rtgtools/vcfeval files: - path: output/rtgtools/test/done - md5sum: 8b5623b26ee9b8722816afbec270bff0 + contains: - Finished Succesfully in - path: output/rtgtools/test/fn.vcf.gz md5sum: 4577a8c3226b9f8ed9e260c3bd4b1259 - path: output/rtgtools/test/fn.vcf.gz.tbi @@ -43,7 +43,7 @@ - rtgtools/vcfeval files: - path: output/rtgtools/test/done - md5sum: 8b5623b26ee9b8722816afbec270bff0 + contains: - Finished Succesfully in - path: output/rtgtools/test/fn.vcf.gz md5sum: e51420e4be520ae309a2384830bf4c15 - path: output/rtgtools/test/fn.vcf.gz.tbi From 96c3f895b9c8bba0ea629bb31869a14aaf2e9c83 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 10:19:13 +0200 Subject: [PATCH 514/592] test issue fix? --- tests/modules/rtgtools/vcfeval/test.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index ea76cb15..299fe91c 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -5,7 +5,8 @@ - rtgtools/vcfeval files: - path: output/rtgtools/test/done - contains: - Finished Succesfully in + contains: + - Finished Succesfully in - path: output/rtgtools/test/fn.vcf.gz md5sum: 4577a8c3226b9f8ed9e260c3bd4b1259 - path: output/rtgtools/test/fn.vcf.gz.tbi @@ -43,7 +44,8 @@ - rtgtools/vcfeval files: - path: output/rtgtools/test/done - contains: - Finished Succesfully in + contains: + - Finished Succesfully in - path: output/rtgtools/test/fn.vcf.gz md5sum: e51420e4be520ae309a2384830bf4c15 - path: output/rtgtools/test/fn.vcf.gz.tbi From 60086196038fd5e0cf9006a9aa6d797cb9c4380a Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 10:20:54 +0200 Subject: [PATCH 515/592] test issue fix? --- tests/modules/rtgtools/vcfeval/test.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index 299fe91c..194e0cac 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -5,8 +5,6 @@ - rtgtools/vcfeval files: - path: output/rtgtools/test/done - contains: - - Finished Succesfully in - path: output/rtgtools/test/fn.vcf.gz md5sum: 4577a8c3226b9f8ed9e260c3bd4b1259 - path: output/rtgtools/test/fn.vcf.gz.tbi @@ -44,8 +42,6 @@ - rtgtools/vcfeval files: - path: output/rtgtools/test/done - contains: - - Finished Succesfully in - path: output/rtgtools/test/fn.vcf.gz md5sum: e51420e4be520ae309a2384830bf4c15 - path: output/rtgtools/test/fn.vcf.gz.tbi From 3a064b0a9952e6e0f00cc8570d2fd72b11aff449 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 12:05:42 +0200 Subject: [PATCH 516/592] Split the output to different channels --- modules/rtgtools/vcfeval/main.nf | 10 +++- modules/rtgtools/vcfeval/meta.yml | 66 ++++++++++++++++++++++-- tests/modules/rtgtools/vcfeval/test.yml | 68 ++++++++++++------------- 3 files changed, 105 insertions(+), 39 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 4e27ed6b..1963bfe0 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -15,8 +15,12 @@ process RTGTOOLS_VCFEVAL { path(sdf) output: - tuple val(meta), path("${task.ext.prefix ?: meta.id}/*") , emit: results - path "versions.yml" , emit: versions + tuple val(meta), path("done"), path("progress"), path("*.log") , emit: logs + tuple val(meta), path("*{tp,fn,fp,baseline}.vcf.gz.tbi"), path("*{tp,fn,fp,baseline}.vcf.gz") , emit: vcf + tuple val(meta), path("*.tsv.gz") , emit: roc + tuple val(meta), path("summary.txt") , emit: summary + tuple val(meta), path("phasing.txt") , emit: phasing + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -43,6 +47,8 @@ process RTGTOOLS_VCFEVAL { --template=$sdf \\ --threads=$task.cpus \\ + mv ${prefix}/* . + cat <<-END_VERSIONS > versions.yml "${task.process}": rtg-tools: \$(echo \$(rtg version | head -n 1 | awk '{print \$4}')) diff --git a/modules/rtgtools/vcfeval/meta.yml b/modules/rtgtools/vcfeval/meta.yml index 1f448fdc..e568852c 100644 --- a/modules/rtgtools/vcfeval/meta.yml +++ b/modules/rtgtools/vcfeval/meta.yml @@ -58,10 +58,70 @@ output: type: file description: File containing software versions pattern: "versions.yml" - - results: + - done: type: file - description: A folder containing all results of the evaluation - pattern: "*" + description: A file containing the message on succesful completion + pattern: "done" + - progress: + type: file + description: A file containing the simplified logging of the process + pattern: "progress" + - vcfeval_log: + type: file + description: A file containing the extended logging of the process + pattern: "*.log" + - false_negatives_vcf: + type: file + description: A VCF file containing the false negative variants + pattern: "fn.vcf.gz" + - false_negatives_index: + type: file + description: The index file for the false negatives' VCF file + pattern: "fn.vcf.gz.tbi" + - false_positive_vcf: + type: file + description: A VCF file containing the false positive variants + pattern: "fp.vcf.gz" + - false_positives_index: + type: file + description: The index file for the false positives' VCF file + pattern: "fp.vcf.gz.tbi" + - true_positive_vcf: + type: file + description: A VCF file containing the true positive variants + pattern: "tp.vcf.gz" + - true_positives_index: + type: file + description: The index file for the true positives' VCF file + pattern: "tp.vcf.gz.tbi" + - true_positive_baseline_vcf: + type: file + description: A VCF file containing the true positive baseline variants + pattern: "tp-baseline.vcf.gz" + - true_positives_baseline_index: + type: file + description: The index file for the baseline true positives' VCF file + pattern: "tp-baseline.vcf.gz.tbi" + - non_snp_roc: + type: file + description: A TSV file containing the ROC data for the non-SNP variants + pattern: "non_snp_roc.tsv.gz" + - snp_roc: + type: file + description: A TSV file containing the ROC data for the SNP variants + pattern: "snp_roc.tsv.gz" + - weighted_roc: + type: file + description: A TSV file containing the weighted ROC data + pattern: "weighted_roc.tsv.gz" + - summary: + type: file + description: A TXT file containing the summary of the evaluation + pattern: "summary.txt" + - phasing: + type: file + description: A TXT file containing the data on the phasing + pattern: "phasing.txt" authors: - "@nvnieuwk" diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index 194e0cac..70d014bf 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -4,36 +4,36 @@ - rtgtools - rtgtools/vcfeval files: - - path: output/rtgtools/test/done - - path: output/rtgtools/test/fn.vcf.gz + - path: output/rtgtools/done + - path: output/rtgtools/fn.vcf.gz md5sum: 4577a8c3226b9f8ed9e260c3bd4b1259 - - path: output/rtgtools/test/fn.vcf.gz.tbi + - path: output/rtgtools/fn.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test/fp.vcf.gz + - path: output/rtgtools/fp.vcf.gz md5sum: 1417bb8ac7a0e202df660291a74de0db - - path: output/rtgtools/test/fp.vcf.gz.tbi + - path: output/rtgtools/fp.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test/non_snp_roc.tsv.gz + - path: output/rtgtools/non_snp_roc.tsv.gz md5sum: 8fd51a1e5084d15d43880cb1e31a0180 - - path: output/rtgtools/test/phasing.txt + - path: output/rtgtools/phasing.txt md5sum: 133677dbd8be657439ea2b03fdfb8795 - - path: output/rtgtools/test/progress - - path: output/rtgtools/test/snp_roc.tsv.gz + - path: output/rtgtools/progress + - path: output/rtgtools/snp_roc.tsv.gz md5sum: ff2ece544adfcefaa06da054876a9ae3 - - path: output/rtgtools/test/summary.txt + - path: output/rtgtools/summary.txt md5sum: f4c8df93c8bdab603036bbc27b4a28c3 - - path: output/rtgtools/test/tp-baseline.vcf.gz + - path: output/rtgtools/tp-baseline.vcf.gz md5sum: 4577a8c3226b9f8ed9e260c3bd4b1259 - - path: output/rtgtools/test/tp-baseline.vcf.gz.tbi + - path: output/rtgtools/tp-baseline.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test/tp.vcf.gz + - path: output/rtgtools/tp.vcf.gz md5sum: 1417bb8ac7a0e202df660291a74de0db - - path: output/rtgtools/test/tp.vcf.gz.tbi + - path: output/rtgtools/tp.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test/vcfeval.log - - path: output/rtgtools/test/weighted_roc.tsv.gz - md5sum: 5209f1bdeb03704714ae92b183d08e0f + - path: output/rtgtools/vcfeval.log - path: output/rtgtools/versions.yml + - path: output/rtgtools/weighted_roc.tsv.gz + md5sum: 5209f1bdeb03704714ae92b183d08e0f - name: rtgtools vcfeval test_rtgtools_vcfeval_no_optional_inputs command: nextflow run tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval_no_optional_inputs -c tests/config/nextflow.config @@ -41,33 +41,33 @@ - rtgtools - rtgtools/vcfeval files: - - path: output/rtgtools/test/done - - path: output/rtgtools/test/fn.vcf.gz + - path: output/rtgtools/done + - path: output/rtgtools/fn.vcf.gz md5sum: e51420e4be520ae309a2384830bf4c15 - - path: output/rtgtools/test/fn.vcf.gz.tbi + - path: output/rtgtools/fn.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test/fp.vcf.gz + - path: output/rtgtools/fp.vcf.gz md5sum: 7d818cf526983de6cbb5cf517c44a8f7 - - path: output/rtgtools/test/fp.vcf.gz.tbi + - path: output/rtgtools/fp.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/test/non_snp_roc.tsv.gz + - path: output/rtgtools/non_snp_roc.tsv.gz md5sum: a535fb80081b43b19788347152b6b8b4 - - path: output/rtgtools/test/phasing.txt + - path: output/rtgtools/phasing.txt md5sum: 133677dbd8be657439ea2b03fdfb8795 - - path: output/rtgtools/test/progress - - path: output/rtgtools/test/snp_roc.tsv.gz + - path: output/rtgtools/progress + - path: output/rtgtools/snp_roc.tsv.gz md5sum: 6006656c4a534935c7873398287bc110 - - path: output/rtgtools/test/summary.txt + - path: output/rtgtools/summary.txt md5sum: f33feb32f84958fb931063044fba369b - - path: output/rtgtools/test/tp-baseline.vcf.gz + - path: output/rtgtools/tp-baseline.vcf.gz md5sum: ed68ea567a26d3b864ada79e9253bc97 - - path: output/rtgtools/test/tp-baseline.vcf.gz.tbi + - path: output/rtgtools/tp-baseline.vcf.gz.tbi md5sum: 3518deff814eed340b0f5386294b5879 - - path: output/rtgtools/test/tp.vcf.gz + - path: output/rtgtools/tp.vcf.gz md5sum: 92fd51021d101c99da066324655d24c9 - - path: output/rtgtools/test/tp.vcf.gz.tbi + - path: output/rtgtools/tp.vcf.gz.tbi md5sum: 169063c1f570f0055059f3cb3518a8b4 - - path: output/rtgtools/test/vcfeval.log - - path: output/rtgtools/test/weighted_roc.tsv.gz - md5sum: 0ba825084bd6b94accdf54fff23ea18c + - path: output/rtgtools/vcfeval.log - path: output/rtgtools/versions.yml + - path: output/rtgtools/weighted_roc.tsv.gz + md5sum: 0ba825084bd6b94accdf54fff23ea18c From 5db26f9f3588a1934d64690c0627a22adee57d76 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 12:07:11 +0200 Subject: [PATCH 517/592] Linting --- modules/rtgtools/vcfeval/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 1963bfe0..b32d544b 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -17,7 +17,7 @@ process RTGTOOLS_VCFEVAL { output: tuple val(meta), path("done"), path("progress"), path("*.log") , emit: logs tuple val(meta), path("*{tp,fn,fp,baseline}.vcf.gz.tbi"), path("*{tp,fn,fp,baseline}.vcf.gz") , emit: vcf - tuple val(meta), path("*.tsv.gz") , emit: roc + tuple val(meta), path("*.tsv.gz") , emit: roc tuple val(meta), path("summary.txt") , emit: summary tuple val(meta), path("phasing.txt") , emit: phasing path "versions.yml" , emit: versions From f3d5584ab0e277310a147ff5ed165c3a9203c6f4 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 12:08:23 +0200 Subject: [PATCH 518/592] Linting --- modules/rtgtools/vcfeval/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index b32d544b..826fec43 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -17,7 +17,7 @@ process RTGTOOLS_VCFEVAL { output: tuple val(meta), path("done"), path("progress"), path("*.log") , emit: logs tuple val(meta), path("*{tp,fn,fp,baseline}.vcf.gz.tbi"), path("*{tp,fn,fp,baseline}.vcf.gz") , emit: vcf - tuple val(meta), path("*.tsv.gz") , emit: roc + tuple val(meta), path("*.tsv.gz") , emit: roc tuple val(meta), path("summary.txt") , emit: summary tuple val(meta), path("phasing.txt") , emit: phasing path "versions.yml" , emit: versions From 46a9aabfa3f41a70b21def6b441d8759aa3870d2 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Sun, 8 May 2022 16:05:25 +0200 Subject: [PATCH 519/592] chore: improve license description --- modules/sratools/prefetch/meta.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/sratools/prefetch/meta.yml b/modules/sratools/prefetch/meta.yml index e08b708c..2ca53af3 100644 --- a/modules/sratools/prefetch/meta.yml +++ b/modules/sratools/prefetch/meta.yml @@ -10,7 +10,7 @@ tools: homepage: https://github.com/ncbi/sra-tools documentation: https://github.com/ncbi/sra-tools/wiki tool_dev_url: https://github.com/ncbi/sra-tools - licence: ["US-Government-Work"] + licence: ["Public Domain"] input: - meta: From f6936e5270477bd3c62a54c17ed2966b61c1705a Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Sun, 8 May 2022 16:05:51 +0200 Subject: [PATCH 520/592] refactor: accept settings as input --- modules/sratools/prefetch/main.nf | 5 ++--- modules/sratools/prefetch/templates/retry_with_backoff.sh | 6 ++---- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/modules/sratools/prefetch/main.nf b/modules/sratools/prefetch/main.nf index 3408c3e9..889fef52 100644 --- a/modules/sratools/prefetch/main.nf +++ b/modules/sratools/prefetch/main.nf @@ -9,10 +9,11 @@ process SRATOOLS_PREFETCH { input: tuple val(meta), val(id) + path(ncbi_settings) output: tuple val(meta), path(id), emit: sra - path "versions.yml" , emit: versions + path 'versions.yml' , emit: versions when: task.ext.when == null || task.ext.when @@ -20,7 +21,5 @@ process SRATOOLS_PREFETCH { shell: args = task.ext.args ?: '' args2 = task.ext.args2 ?: '5 1 100' // - config = "/LIBS/GUID = \"${UUID.randomUUID().toString()}\"\\n/libs/cloud/report_instance_identity = \"true\"\\n" - template 'retry_with_backoff.sh' } diff --git a/modules/sratools/prefetch/templates/retry_with_backoff.sh b/modules/sratools/prefetch/templates/retry_with_backoff.sh index fbcb6532..17395ef1 100755 --- a/modules/sratools/prefetch/templates/retry_with_backoff.sh +++ b/modules/sratools/prefetch/templates/retry_with_backoff.sh @@ -40,10 +40,8 @@ retry_with_backoff() { echo "${output}" } -eval "$(vdb-config -o n NCBI_SETTINGS | sed 's/[" ]//g')" -if [[ ! -f "${NCBI_SETTINGS}" ]]; then - mkdir -p "$(dirname "${NCBI_SETTINGS}")" - printf '!{config}' > "${NCBI_SETTINGS}" +if [[ "!{ncbi_settings.name}" != "EXISTS" ]]; then + export NCBI_SETTINGS="$PWD/!{ncbi_settings}" fi retry_with_backoff !{args2} \ From 145e2f80e9165759d8a2994c415378882cdda9a2 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Sun, 8 May 2022 16:34:18 +0200 Subject: [PATCH 521/592] tests: run prefetch with and without given settings --- tests/modules/sratools/prefetch/main.nf | 25 ++++++++++++++++--- .../modules/sratools/prefetch/nextflow.config | 3 +++ .../sratools/prefetch/nextflow_mount.config | 17 +++++++++++++ tests/modules/sratools/prefetch/test.yml | 23 ++++++++++++++--- 4 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 tests/modules/sratools/prefetch/nextflow_mount.config diff --git a/tests/modules/sratools/prefetch/main.nf b/tests/modules/sratools/prefetch/main.nf index aa6252a1..eb579920 100644 --- a/tests/modules/sratools/prefetch/main.nf +++ b/tests/modules/sratools/prefetch/main.nf @@ -4,12 +4,31 @@ nextflow.enable.dsl = 2 include { SRATOOLS_PREFETCH } from '../../../../modules/sratools/prefetch/main.nf' -workflow test_sratools_prefetch { +workflow test_sratools_prefetch_with_settings_input { + + file(params.settings_path).mkdirs() + def settings = file(params.settings_file) + settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" input = [ [ id:'test', single_end:false ], // meta map - 'ERR2815334' + 'DRR000774' ] - SRATOOLS_PREFETCH ( input ) + SRATOOLS_PREFETCH(input, settings) } + +workflow test_sratools_prefetch_without_settings_input { + + file(params.settings_path).mkdirs() + def settings = file(params.settings_file) + settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" + + input = [ + [ id:'test', single_end:false ], // meta map + 'DRR000774' + ] + + SRATOOLS_PREFETCH(input, file('EXISTS')) +} + diff --git a/tests/modules/sratools/prefetch/nextflow.config b/tests/modules/sratools/prefetch/nextflow.config index 8730f1c4..a6c70bd3 100644 --- a/tests/modules/sratools/prefetch/nextflow.config +++ b/tests/modules/sratools/prefetch/nextflow.config @@ -1,3 +1,6 @@ +params.settings_path = '/tmp/.ncbi' +params.settings_file = "${params.settings_path}/user-settings.mkfg" + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/sratools/prefetch/nextflow_mount.config b/tests/modules/sratools/prefetch/nextflow_mount.config new file mode 100644 index 00000000..1a0eed2a --- /dev/null +++ b/tests/modules/sratools/prefetch/nextflow_mount.config @@ -0,0 +1,17 @@ +params.settings_path = '/tmp/.ncbi' +params.settings_file = "${params.settings_path}/user-settings.mkfg" + +env.NCBI_SETTINGS = params.settings_file + +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: SRATOOLS_PREFETCH { + containerOptions = { + (workflow.containerEngine == 'singularity') ? + "-B ${params.settings_path}:${params.settings_path}" : + "-v ${params.settings_path}:${params.settings_path}" + } + } +} diff --git a/tests/modules/sratools/prefetch/test.yml b/tests/modules/sratools/prefetch/test.yml index a2efef77..d747b9a6 100644 --- a/tests/modules/sratools/prefetch/test.yml +++ b/tests/modules/sratools/prefetch/test.yml @@ -1,8 +1,23 @@ -- name: sratools prefetch test_sratools_prefetch - command: nextflow run ./tests/modules/sratools/prefetch -entry test_sratools_prefetch -c ./tests/config/nextflow.config -c ./tests/modules/sratools/prefetch/nextflow.config +- name: sratools prefetch test_sratools_prefetch_with_settings_input + command: nextflow run ./tests/modules/sratools/prefetch -entry test_sratools_prefetch_with_settings_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/prefetch/nextflow.config tags: - sratools/prefetch - sratools files: - - path: output/sratools/ERR2815334/ERR2815334.sra - md5sum: 9a98c7f6f4774b7ef94aa915b92a54ea + - path: output/sratools/DRR000774/DRR000774.sra + md5sum: 7647dba20c89c0e3d7ad13842f060eb0 + - path: output/sratools/versions.yml + contains: + - "sratools: 2.11.0" + +- name: sratools prefetch test_sratools_prefetch_without_settings_input + command: nextflow run ./tests/modules/sratools/prefetch -entry test_sratools_prefetch_without_settings_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/prefetch/nextflow_mount.config + tags: + - sratools/prefetch + - sratools + files: + - path: output/sratools/DRR000774/DRR000774.sra + md5sum: 7647dba20c89c0e3d7ad13842f060eb0 + - path: output/sratools/versions.yml + contains: + - "sratools: 2.11.0" From b1e134fdd765b1c5dfeaa9433c1c11ba481c803e Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Sun, 8 May 2022 16:43:30 +0200 Subject: [PATCH 522/592] docs: describe new file input --- modules/sratools/prefetch/meta.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/sratools/prefetch/meta.yml b/modules/sratools/prefetch/meta.yml index 2ca53af3..f8c50a0d 100644 --- a/modules/sratools/prefetch/meta.yml +++ b/modules/sratools/prefetch/meta.yml @@ -22,6 +22,12 @@ input: type: val description: > A string denoting an SRA id. + - ncbi_settings: + type: file + description: > + Either a proper NCBI settings file or in case an existing file should be used, + a file with name EXISTS. + pattern: "*.mkfg | EXISTS" output: - meta: From 09bfe3c6182addc683d15620fa7d07db42b38946 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Mon, 9 May 2022 12:28:58 +0200 Subject: [PATCH 523/592] Apply suggestions from code review Co-authored-by: Harshil Patel --- modules/sratools/prefetch/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/sratools/prefetch/main.nf b/modules/sratools/prefetch/main.nf index 889fef52..3426ae12 100644 --- a/modules/sratools/prefetch/main.nf +++ b/modules/sratools/prefetch/main.nf @@ -9,7 +9,7 @@ process SRATOOLS_PREFETCH { input: tuple val(meta), val(id) - path(ncbi_settings) + path ncbi_settings output: tuple val(meta), path(id), emit: sra From a303904eb00c814132c5192c86ab6a1aa7f7cc17 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Tue, 10 May 2022 12:19:25 +0200 Subject: [PATCH 524/592] chore: add settings file to test data config --- tests/config/test_data.config | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index c4f470a4..7082c5ab 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -422,6 +422,9 @@ params { test_merge_cool_cp2 = "${test_data_dir}/genomics/homo_sapiens/cooler/merge/toy/toy.symm.upper.2.cp2.cool" } + 'config' { + ncbi_user_settings = "${test_data_dir}/generic/config/ncbi_user_settings.mkfg" + } } } } From ef4857ec541864f41d9068a2a31b20e9b24953fb Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 12:20:01 +0200 Subject: [PATCH 525/592] Updated meta.yml --- modules/rtgtools/vcfeval/meta.yml | 62 +++++-------------------------- 1 file changed, 9 insertions(+), 53 deletions(-) diff --git a/modules/rtgtools/vcfeval/meta.yml b/modules/rtgtools/vcfeval/meta.yml index e568852c..587c2d3e 100644 --- a/modules/rtgtools/vcfeval/meta.yml +++ b/modules/rtgtools/vcfeval/meta.yml @@ -58,62 +58,18 @@ output: type: file description: File containing software versions pattern: "versions.yml" - - done: + - logging: type: file - description: A file containing the message on succesful completion - pattern: "done" - - progress: + description: Files containing logging from vcfeval + pattern: "*{done,progress,.log}" + - vcf: type: file - description: A file containing the simplified logging of the process - pattern: "progress" - - vcfeval_log: + description: VCF files containing the false negatives, false positives and true positives with their index files + pattern: "*.vcf{.gz,.gz.tbi}" + - roc: type: file - description: A file containing the extended logging of the process - pattern: "*.log" - - false_negatives_vcf: - type: file - description: A VCF file containing the false negative variants - pattern: "fn.vcf.gz" - - false_negatives_index: - type: file - description: The index file for the false negatives' VCF file - pattern: "fn.vcf.gz.tbi" - - false_positive_vcf: - type: file - description: A VCF file containing the false positive variants - pattern: "fp.vcf.gz" - - false_positives_index: - type: file - description: The index file for the false positives' VCF file - pattern: "fp.vcf.gz.tbi" - - true_positive_vcf: - type: file - description: A VCF file containing the true positive variants - pattern: "tp.vcf.gz" - - true_positives_index: - type: file - description: The index file for the true positives' VCF file - pattern: "tp.vcf.gz.tbi" - - true_positive_baseline_vcf: - type: file - description: A VCF file containing the true positive baseline variants - pattern: "tp-baseline.vcf.gz" - - true_positives_baseline_index: - type: file - description: The index file for the baseline true positives' VCF file - pattern: "tp-baseline.vcf.gz.tbi" - - non_snp_roc: - type: file - description: A TSV file containing the ROC data for the non-SNP variants - pattern: "non_snp_roc.tsv.gz" - - snp_roc: - type: file - description: A TSV file containing the ROC data for the SNP variants - pattern: "snp_roc.tsv.gz" - - weighted_roc: - type: file - description: A TSV file containing the weighted ROC data - pattern: "weighted_roc.tsv.gz" + description: TSV files containing ROC data for the evaluated variants + pattern: "*.tsv.gz" - summary: type: file description: A TXT file containing the summary of the evaluation From 29f2d3c28417f935a2688bf5ea9ad8f0e25da679 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 10 May 2022 12:22:49 +0200 Subject: [PATCH 526/592] Update modules/rtgtools/vcfeval/main.nf Co-authored-by: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> --- modules/rtgtools/vcfeval/main.nf | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 826fec43..a34f3514 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -15,11 +15,14 @@ process RTGTOOLS_VCFEVAL { path(sdf) output: - tuple val(meta), path("done"), path("progress"), path("*.log") , emit: logs - tuple val(meta), path("*{tp,fn,fp,baseline}.vcf.gz.tbi"), path("*{tp,fn,fp,baseline}.vcf.gz") , emit: vcf - tuple val(meta), path("*.tsv.gz") , emit: roc - tuple val(meta), path("summary.txt") , emit: summary - tuple val(meta), path("phasing.txt") , emit: phasing + tuple val(meta), path("**{done,progress,.log}") , emit: logs + tuple val(meta), path("**tp.vcf.gz"), path("**tp.vcf.gz.tbi") , emit: tp + tuple val(meta), path("**fn.vcf.gz"), path("**fn.vcf.gz.tbi") , emit: fn + tuple val(meta), path("**fp.vcf.gz"), path("**fp.vcf.gz.tbi") , emit: fp + tuple val(meta), path("**baseline.vcf.gz"), path("**baseline.vcf.gz.tbi") , emit: baseline + tuple val(meta), path("**.tsv.gz") , emit: roc + tuple val(meta), path("**summary.txt") , emit: summary + tuple val(meta), path("**phasing.txt") , emit: phasing path "versions.yml" , emit: versions when: From 2eb77bd64e62f6c050fb95cc7bbc402240c3e7d8 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 10 May 2022 12:22:56 +0200 Subject: [PATCH 527/592] Update modules/rtgtools/vcfeval/main.nf Co-authored-by: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> --- modules/rtgtools/vcfeval/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index a34f3514..8ab73dec 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -50,7 +50,6 @@ process RTGTOOLS_VCFEVAL { --template=$sdf \\ --threads=$task.cpus \\ - mv ${prefix}/* . cat <<-END_VERSIONS > versions.yml "${task.process}": From c18391aa4983cd801211c34b4493f330ffab1a07 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 12:26:13 +0200 Subject: [PATCH 528/592] Updated meta.yml --- modules/rtgtools/vcfeval/meta.yml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/modules/rtgtools/vcfeval/meta.yml b/modules/rtgtools/vcfeval/meta.yml index 587c2d3e..c2d286c8 100644 --- a/modules/rtgtools/vcfeval/meta.yml +++ b/modules/rtgtools/vcfeval/meta.yml @@ -62,10 +62,22 @@ output: type: file description: Files containing logging from vcfeval pattern: "*{done,progress,.log}" - - vcf: + - true_positives: type: file - description: VCF files containing the false negatives, false positives and true positives with their index files - pattern: "*.vcf{.gz,.gz.tbi}" + description: VCF files containing true positives with their index files + pattern: "tp.vcf{.gz,.gz.tbi}" + - true_positives_baseline: + type: file + description: VCF files containing baseline true positives with their index files + pattern: "tp-baseline.vcf{.gz,.gz.tbi}" + - false_positives: + type: file + description: VCF files containing false positives with their index files + pattern: "fp.vcf{.gz,.gz.tbi}" + - false_negatives: + type: file + description: VCF files containing false negatives with their index files + pattern: "fn.vcf{.gz,.gz.tbi}" - roc: type: file description: TSV files containing ROC data for the evaluated variants From 1b228835e9525990db99243cb4f0d07aa6e01bc3 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Tue, 10 May 2022 12:29:42 +0200 Subject: [PATCH 529/592] refactor: require settings input always --- modules/sratools/prefetch/meta.yml | 5 ++-- .../prefetch/templates/retry_with_backoff.sh | 4 +--- tests/modules/sratools/prefetch/main.nf | 23 ++----------------- .../modules/sratools/prefetch/nextflow.config | 3 --- .../sratools/prefetch/nextflow_mount.config | 17 -------------- tests/modules/sratools/prefetch/test.yml | 16 ++----------- 6 files changed, 7 insertions(+), 61 deletions(-) delete mode 100644 tests/modules/sratools/prefetch/nextflow_mount.config diff --git a/modules/sratools/prefetch/meta.yml b/modules/sratools/prefetch/meta.yml index f8c50a0d..a3a26522 100644 --- a/modules/sratools/prefetch/meta.yml +++ b/modules/sratools/prefetch/meta.yml @@ -25,9 +25,8 @@ input: - ncbi_settings: type: file description: > - Either a proper NCBI settings file or in case an existing file should be used, - a file with name EXISTS. - pattern: "*.mkfg | EXISTS" + An NCBI user settings file. + pattern: "*.mkfg" output: - meta: diff --git a/modules/sratools/prefetch/templates/retry_with_backoff.sh b/modules/sratools/prefetch/templates/retry_with_backoff.sh index 17395ef1..cec0ab43 100755 --- a/modules/sratools/prefetch/templates/retry_with_backoff.sh +++ b/modules/sratools/prefetch/templates/retry_with_backoff.sh @@ -40,9 +40,7 @@ retry_with_backoff() { echo "${output}" } -if [[ "!{ncbi_settings.name}" != "EXISTS" ]]; then - export NCBI_SETTINGS="$PWD/!{ncbi_settings}" -fi +export NCBI_SETTINGS="$PWD/!{ncbi_settings}" retry_with_backoff !{args2} \ prefetch \ diff --git a/tests/modules/sratools/prefetch/main.nf b/tests/modules/sratools/prefetch/main.nf index eb579920..cf9794ab 100644 --- a/tests/modules/sratools/prefetch/main.nf +++ b/tests/modules/sratools/prefetch/main.nf @@ -4,31 +4,12 @@ nextflow.enable.dsl = 2 include { SRATOOLS_PREFETCH } from '../../../../modules/sratools/prefetch/main.nf' -workflow test_sratools_prefetch_with_settings_input { - - file(params.settings_path).mkdirs() - def settings = file(params.settings_file) - settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" +workflow test_sratools_prefetch { input = [ [ id:'test', single_end:false ], // meta map 'DRR000774' ] - SRATOOLS_PREFETCH(input, settings) + SRATOOLS_PREFETCH(input, file(params.test_data['generic']['config']['ncbi_user_settings'], checkIfExists: true)) } - -workflow test_sratools_prefetch_without_settings_input { - - file(params.settings_path).mkdirs() - def settings = file(params.settings_file) - settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" - - input = [ - [ id:'test', single_end:false ], // meta map - 'DRR000774' - ] - - SRATOOLS_PREFETCH(input, file('EXISTS')) -} - diff --git a/tests/modules/sratools/prefetch/nextflow.config b/tests/modules/sratools/prefetch/nextflow.config index a6c70bd3..8730f1c4 100644 --- a/tests/modules/sratools/prefetch/nextflow.config +++ b/tests/modules/sratools/prefetch/nextflow.config @@ -1,6 +1,3 @@ -params.settings_path = '/tmp/.ncbi' -params.settings_file = "${params.settings_path}/user-settings.mkfg" - process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/sratools/prefetch/nextflow_mount.config b/tests/modules/sratools/prefetch/nextflow_mount.config deleted file mode 100644 index 1a0eed2a..00000000 --- a/tests/modules/sratools/prefetch/nextflow_mount.config +++ /dev/null @@ -1,17 +0,0 @@ -params.settings_path = '/tmp/.ncbi' -params.settings_file = "${params.settings_path}/user-settings.mkfg" - -env.NCBI_SETTINGS = params.settings_file - -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: SRATOOLS_PREFETCH { - containerOptions = { - (workflow.containerEngine == 'singularity') ? - "-B ${params.settings_path}:${params.settings_path}" : - "-v ${params.settings_path}:${params.settings_path}" - } - } -} diff --git a/tests/modules/sratools/prefetch/test.yml b/tests/modules/sratools/prefetch/test.yml index d747b9a6..a6c213f8 100644 --- a/tests/modules/sratools/prefetch/test.yml +++ b/tests/modules/sratools/prefetch/test.yml @@ -1,17 +1,5 @@ -- name: sratools prefetch test_sratools_prefetch_with_settings_input - command: nextflow run ./tests/modules/sratools/prefetch -entry test_sratools_prefetch_with_settings_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/prefetch/nextflow.config - tags: - - sratools/prefetch - - sratools - files: - - path: output/sratools/DRR000774/DRR000774.sra - md5sum: 7647dba20c89c0e3d7ad13842f060eb0 - - path: output/sratools/versions.yml - contains: - - "sratools: 2.11.0" - -- name: sratools prefetch test_sratools_prefetch_without_settings_input - command: nextflow run ./tests/modules/sratools/prefetch -entry test_sratools_prefetch_without_settings_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/prefetch/nextflow_mount.config +- name: sratools prefetch test_sratools_prefetch + command: nextflow run ./tests/modules/sratools/prefetch -entry test_sratools_prefetch -c ./tests/config/nextflow.config -c ./tests/modules/sratools/prefetch/nextflow.config tags: - sratools/prefetch - sratools From b7134855e41d77b0fee9349c9b5eb43687e74925 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 12:34:52 +0200 Subject: [PATCH 530/592] Small update on the output channels --- modules/rtgtools/vcfeval/main.nf | 8 +- tests/modules/rtgtools/vcfeval/test.yml | 98 +++++++++++++------------ 2 files changed, 54 insertions(+), 52 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 8ab73dec..dd50c54c 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -15,14 +15,14 @@ process RTGTOOLS_VCFEVAL { path(sdf) output: - tuple val(meta), path("**{done,progress,.log}") , emit: logs + tuple val(meta), path("**results/{done,progress,*.log}") , emit: logs tuple val(meta), path("**tp.vcf.gz"), path("**tp.vcf.gz.tbi") , emit: tp tuple val(meta), path("**fn.vcf.gz"), path("**fn.vcf.gz.tbi") , emit: fn tuple val(meta), path("**fp.vcf.gz"), path("**fp.vcf.gz.tbi") , emit: fp tuple val(meta), path("**baseline.vcf.gz"), path("**baseline.vcf.gz.tbi") , emit: baseline tuple val(meta), path("**.tsv.gz") , emit: roc - tuple val(meta), path("**summary.txt") , emit: summary - tuple val(meta), path("**phasing.txt") , emit: phasing + tuple val(meta), path("**results/summary.txt") , emit: summary + tuple val(meta), path("**results/phasing.txt") , emit: phasing path "versions.yml" , emit: versions when: @@ -46,7 +46,7 @@ process RTGTOOLS_VCFEVAL { $bed_regions \\ $eval_regions \\ --calls=$query_vcf \\ - --output=$prefix \\ + --output=${prefix}_results \\ --template=$sdf \\ --threads=$task.cpus \\ diff --git a/tests/modules/rtgtools/vcfeval/test.yml b/tests/modules/rtgtools/vcfeval/test.yml index 70d014bf..33720f66 100644 --- a/tests/modules/rtgtools/vcfeval/test.yml +++ b/tests/modules/rtgtools/vcfeval/test.yml @@ -4,36 +4,37 @@ - rtgtools - rtgtools/vcfeval files: - - path: output/rtgtools/done - - path: output/rtgtools/fn.vcf.gz - md5sum: 4577a8c3226b9f8ed9e260c3bd4b1259 - - path: output/rtgtools/fn.vcf.gz.tbi + - path: output/rtgtools/test_results/done + - path: output/rtgtools/test_results/fn.vcf.gz + md5sum: be9c9106055bfad4c5985bc0d33efd56 + - path: output/rtgtools/test_results/fn.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/fp.vcf.gz - md5sum: 1417bb8ac7a0e202df660291a74de0db - - path: output/rtgtools/fp.vcf.gz.tbi + - path: output/rtgtools/test_results/fp.vcf.gz + md5sum: e0f0ff841dc63e9fb61fd3a5db137ced + - path: output/rtgtools/test_results/fp.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/non_snp_roc.tsv.gz - md5sum: 8fd51a1e5084d15d43880cb1e31a0180 - - path: output/rtgtools/phasing.txt + - path: output/rtgtools/test_results/non_snp_roc.tsv.gz + md5sum: ad5bad32c48f05aef232e2c0e708877a + - path: output/rtgtools/test_results/phasing.txt md5sum: 133677dbd8be657439ea2b03fdfb8795 - - path: output/rtgtools/progress - - path: output/rtgtools/snp_roc.tsv.gz - md5sum: ff2ece544adfcefaa06da054876a9ae3 - - path: output/rtgtools/summary.txt + - path: output/rtgtools/test_results/progress + - path: output/rtgtools/test_results/snp_roc.tsv.gz + md5sum: 6785b83d66486e7e6c75c5a5b1574c09 + - path: output/rtgtools/test_results/summary.txt md5sum: f4c8df93c8bdab603036bbc27b4a28c3 - - path: output/rtgtools/tp-baseline.vcf.gz - md5sum: 4577a8c3226b9f8ed9e260c3bd4b1259 - - path: output/rtgtools/tp-baseline.vcf.gz.tbi + - path: output/rtgtools/test_results/tp-baseline.vcf.gz + md5sum: be9c9106055bfad4c5985bc0d33efd56 + - path: output/rtgtools/test_results/tp-baseline.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/tp.vcf.gz - md5sum: 1417bb8ac7a0e202df660291a74de0db - - path: output/rtgtools/tp.vcf.gz.tbi + - path: output/rtgtools/test_results/tp.vcf.gz + md5sum: e0f0ff841dc63e9fb61fd3a5db137ced + - path: output/rtgtools/test_results/tp.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/vcfeval.log + - path: output/rtgtools/test_results/vcfeval.log + - path: output/rtgtools/test_results/weighted_roc.tsv.gz + md5sum: fa7c046ea0084172f1ef91f19de07b2b - path: output/rtgtools/versions.yml - - path: output/rtgtools/weighted_roc.tsv.gz - md5sum: 5209f1bdeb03704714ae92b183d08e0f + md5sum: 270ed7a5a8e347b251eb4aa2198f98e8 - name: rtgtools vcfeval test_rtgtools_vcfeval_no_optional_inputs command: nextflow run tests/modules/rtgtools/vcfeval -entry test_rtgtools_vcfeval_no_optional_inputs -c tests/config/nextflow.config @@ -41,33 +42,34 @@ - rtgtools - rtgtools/vcfeval files: - - path: output/rtgtools/done - - path: output/rtgtools/fn.vcf.gz - md5sum: e51420e4be520ae309a2384830bf4c15 - - path: output/rtgtools/fn.vcf.gz.tbi + - path: output/rtgtools/test_results/done + - path: output/rtgtools/test_results/fn.vcf.gz + md5sum: c11c889a4f42c8ea325748bd768ea34d + - path: output/rtgtools/test_results/fn.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/fp.vcf.gz - md5sum: 7d818cf526983de6cbb5cf517c44a8f7 - - path: output/rtgtools/fp.vcf.gz.tbi + - path: output/rtgtools/test_results/fp.vcf.gz + md5sum: 138e85c1cd79f8fea9a33e81ce0c734c + - path: output/rtgtools/test_results/fp.vcf.gz.tbi md5sum: 092a7a3162e7cff25d273525751eb284 - - path: output/rtgtools/non_snp_roc.tsv.gz - md5sum: a535fb80081b43b19788347152b6b8b4 - - path: output/rtgtools/phasing.txt + - path: output/rtgtools/test_results/non_snp_roc.tsv.gz + md5sum: 34fb78a008dfc0bef02807b8a7012b07 + - path: output/rtgtools/test_results/phasing.txt md5sum: 133677dbd8be657439ea2b03fdfb8795 - - path: output/rtgtools/progress - - path: output/rtgtools/snp_roc.tsv.gz - md5sum: 6006656c4a534935c7873398287bc110 - - path: output/rtgtools/summary.txt + - path: output/rtgtools/test_results/progress + - path: output/rtgtools/test_results/snp_roc.tsv.gz + md5sum: a4c5761c2653e2d04fc84c1cea13b1f0 + - path: output/rtgtools/test_results/summary.txt md5sum: f33feb32f84958fb931063044fba369b - - path: output/rtgtools/tp-baseline.vcf.gz - md5sum: ed68ea567a26d3b864ada79e9253bc97 - - path: output/rtgtools/tp-baseline.vcf.gz.tbi - md5sum: 3518deff814eed340b0f5386294b5879 - - path: output/rtgtools/tp.vcf.gz - md5sum: 92fd51021d101c99da066324655d24c9 - - path: output/rtgtools/tp.vcf.gz.tbi - md5sum: 169063c1f570f0055059f3cb3518a8b4 - - path: output/rtgtools/vcfeval.log + - path: output/rtgtools/test_results/tp-baseline.vcf.gz + md5sum: d1c2d990899edf127ea5fcca8866fcb0 + - path: output/rtgtools/test_results/tp-baseline.vcf.gz.tbi + md5sum: 3307008fea47adb75c46d395c5567bc0 + - path: output/rtgtools/test_results/tp.vcf.gz + md5sum: e35b4dab82894eee9b77c81f9bc89cca + - path: output/rtgtools/test_results/tp.vcf.gz.tbi + md5sum: 45d8f8793140944f129e728299918c88 + - path: output/rtgtools/test_results/vcfeval.log + - path: output/rtgtools/test_results/weighted_roc.tsv.gz + md5sum: 5b8efc9e9381f604880412800f58e4e9 - path: output/rtgtools/versions.yml - - path: output/rtgtools/weighted_roc.tsv.gz - md5sum: 0ba825084bd6b94accdf54fff23ea18c + md5sum: 55568e4bbe5ab7e634a1f392abb89cc4 From 7fc4cc5a382214c86ec3577da0cb59823d9becb7 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 10 May 2022 13:23:22 +0200 Subject: [PATCH 531/592] Update modules/rtgtools/vcfeval/main.nf Co-authored-by: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> --- modules/rtgtools/vcfeval/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index dd50c54c..67640e87 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -33,8 +33,8 @@ process RTGTOOLS_VCFEVAL { def prefix = task.ext.prefix ?: "${meta.id}" def bed_regions = truth_regions ? "--bed-regions=$truth_regions" : "" def eval_regions = evaluation_regions ? "--evaluation-regions=$evaluation_regions" : "" - def truth_index = truth_vcf_tbi ? "" : "rtg index $truth_vcf" - def query_index = query_vcf_tbi ? "" : "rtg index $query_vcf" + def truth_index = truth_vcf_tbi ?: "rtg index $truth_vcf" + def query_index = query_vcf_tbi ?: "rtg index $query_vcf" """ $truth_index From d3927aae995dbccc4c55d93d96cb4d3fd9e5c6f2 Mon Sep 17 00:00:00 2001 From: nvnieuwk <101190534+nvnieuwk@users.noreply.github.com> Date: Tue, 10 May 2022 13:26:14 +0200 Subject: [PATCH 532/592] Update modules/rtgtools/vcfeval/main.nf Co-authored-by: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> --- modules/rtgtools/vcfeval/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 67640e87..dd50c54c 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -33,8 +33,8 @@ process RTGTOOLS_VCFEVAL { def prefix = task.ext.prefix ?: "${meta.id}" def bed_regions = truth_regions ? "--bed-regions=$truth_regions" : "" def eval_regions = evaluation_regions ? "--evaluation-regions=$evaluation_regions" : "" - def truth_index = truth_vcf_tbi ?: "rtg index $truth_vcf" - def query_index = query_vcf_tbi ?: "rtg index $query_vcf" + def truth_index = truth_vcf_tbi ? "" : "rtg index $truth_vcf" + def query_index = query_vcf_tbi ? "" : "rtg index $query_vcf" """ $truth_index From fa7c947c35b153ce58ca4806b208b382ecb9a712 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Tue, 10 May 2022 13:33:37 +0200 Subject: [PATCH 533/592] Adjusted meta --- modules/rtgtools/vcfeval/main.nf | 4 ++-- modules/rtgtools/vcfeval/meta.yml | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index dd50c54c..1bad4231 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -20,10 +20,10 @@ process RTGTOOLS_VCFEVAL { tuple val(meta), path("**fn.vcf.gz"), path("**fn.vcf.gz.tbi") , emit: fn tuple val(meta), path("**fp.vcf.gz"), path("**fp.vcf.gz.tbi") , emit: fp tuple val(meta), path("**baseline.vcf.gz"), path("**baseline.vcf.gz.tbi") , emit: baseline - tuple val(meta), path("**.tsv.gz") , emit: roc + tuple val(meta), path("**.tsv.gz") , emit: roc tuple val(meta), path("**results/summary.txt") , emit: summary tuple val(meta), path("**results/phasing.txt") , emit: phasing - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/rtgtools/vcfeval/meta.yml b/modules/rtgtools/vcfeval/meta.yml index c2d286c8..5a5f452e 100644 --- a/modules/rtgtools/vcfeval/meta.yml +++ b/modules/rtgtools/vcfeval/meta.yml @@ -62,21 +62,21 @@ output: type: file description: Files containing logging from vcfeval pattern: "*{done,progress,.log}" - - true_positives: + - tp: type: file - description: VCF files containing true positives with their index files + description: A tuple containing the VCF and TBI file for the true positive variants pattern: "tp.vcf{.gz,.gz.tbi}" - - true_positives_baseline: + - baseline: type: file - description: VCF files containing baseline true positives with their index files + description: A tuple containing the VCF and TBI file for the baseline true positive variants pattern: "tp-baseline.vcf{.gz,.gz.tbi}" - - false_positives: + - fp: type: file - description: VCF files containing false positives with their index files + description: A tuple containing the VCF and TBI file for the false positive variants pattern: "fp.vcf{.gz,.gz.tbi}" - - false_negatives: + - fn: type: file - description: VCF files containing false negatives with their index files + description: A tuple containing the VCF and TBI file for the false negative variants pattern: "fn.vcf{.gz,.gz.tbi}" - roc: type: file From 5d76f1c7ff26a84b590c339c9569e468655066af Mon Sep 17 00:00:00 2001 From: jasmezz Date: Wed, 11 May 2022 12:06:02 +0200 Subject: [PATCH 534/592] Add fasta/gff input option --- modules/antismash/antismashlite/main.nf | 84 ++++++++++++++-- modules/antismash/antismashlite/meta.yml | 7 +- tests/modules/antismash/antismashlite/main.nf | 95 ++++++++++++++++--- .../modules/antismash/antismashlite/test.yml | 19 +++- 4 files changed, 178 insertions(+), 27 deletions(-) diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf index 006852d9..fb8def97 100644 --- a/modules/antismash/antismashlite/main.nf +++ b/modules/antismash/antismashlite/main.nf @@ -1,3 +1,76 @@ +// process ANTISMASH_ANTISMASHLITE { +// tag "$meta.id" +// label 'process_medium' + +// conda (params.enable_conda ? "bioconda::antismash-lite=6.0.1" : null) +// container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? +// 'https://depot.galaxyproject.org/singularity/antismash-lite:6.0.1--pyhdfd78af_1' : +// 'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }" + +// containerOptions { +// workflow.containerEngine == 'singularity' ? +// "-B $antismash_dir:/usr/local/lib/python3.8/site-packages/antismash" : +// workflow.containerEngine == 'docker' ? +// "-v \$PWD/$antismash_dir:/usr/local/lib/python3.8/site-packages/antismash" : +// '' +// } + +// input: +// tuple val(meta), path(sequence_input) +// path(databases) +// path(antismash_dir) // Optional input: AntiSMASH installation folder. It is not needed for using this module with conda, but required for docker/singularity (see meta.yml). + +// output: +// tuple val(meta), path("${prefix}/clusterblast/*_c*.txt") , optional: true, emit: clusterblast_file +// tuple val(meta), path("${prefix}/css/*.css") , emit: css_file +// tuple val(meta), path("${prefix}/images") , emit: image_directory +// tuple val(meta), path("${prefix}/js/*.js") , emit: javascript +// tuple val(meta), path("${prefix}/knownclusterblast/region*/ctg*.html") , optional: true, emit: knownclusterblast_html +// tuple val(meta), path("${prefix}/knownclusterblast/*_c*.txt") , optional: true, emit: knownclusterblast_txt +// tuple val(meta), path("${prefix}/svg/clusterblast*.svg") , optional: true, emit: svg_files_clusterblast +// tuple val(meta), path("${prefix}/svg/knownclusterblast*.svg") , optional: true, emit: svg_files_knownclusterblast +// tuple val(meta), path("${prefix}/*.gbk") , emit: gbk_input +// tuple val(meta), path("${prefix}/*.json") , emit: json_results +// tuple val(meta), path("${prefix}/*.log") , emit: log +// tuple val(meta), path("${prefix}/*.zip") , emit: zip +// tuple val(meta), path("${prefix}/*region*.gbk") , emit: gbk_results +// tuple val(meta), path("${prefix}/clusterblastoutput.txt") , optional: true, emit: clusterblastoutput +// tuple val(meta), path("${prefix}/index.html") , emit: html +// tuple val(meta), path("${prefix}/knownclusterblastoutput.txt") , optional: true, emit: knownclusterblastoutput +// tuple val(meta), path("${prefix}/regions.js") , emit: json_sideloading +// path "versions.yml" , emit: versions + +// when: +// task.ext.when == null || task.ext.when + +// script: +// def args = task.ext.args ?: '' +// prefix = task.ext.suffix ? "${meta.id}${task.ext.suffix}" : "${meta.id}" +// // if ( sequence_input.getExtension != 'fasta' && sequence_input.getExtension != 'fna' && gff ) +// // log.warn "GFF input to antiSMASH can only be used if FASTA sequence input is supplied. GFF will be ignored for sample ${meta.id}" +// // if ( (sequence_input.getExtension == 'fasta' || sequence_input.getExtension == 'fna') && gff ) +// // gff_flag = "--genefinding-gff3 ${gff}" +// // else +// // gff_flag = "" + +// """ +// ## We specifically do not include annotations (--genefinding-tool none) as +// ## this should be run as a separate module for versioning purposes +// antismash \\ +// $args \\ +// -c $task.cpus \\ +// --output-dir $prefix \\ +// --genefinding-tool none \\ +// --logfile $prefix/${prefix}.log \\ +// --databases $databases \\ +// $sequence_input + +// cat <<-END_VERSIONS > versions.yml +// "${task.process}": +// antismash-lite: \$(antismash --version | sed 's/antiSMASH //') +// END_VERSIONS +// """ +// } process ANTISMASH_ANTISMASHLITE { tag "$meta.id" label 'process_medium' @@ -17,9 +90,9 @@ process ANTISMASH_ANTISMASHLITE { input: tuple val(meta), path(sequence_input) - path(gff) path(databases) path(antismash_dir) // Optional input: AntiSMASH installation folder. It is not needed for using this module with conda, but required for docker/singularity (see meta.yml). + path(gff) output: tuple val(meta), path("${prefix}/clusterblast/*_c*.txt") , optional: true, emit: clusterblast_file @@ -47,24 +120,19 @@ process ANTISMASH_ANTISMASHLITE { script: def args = task.ext.args ?: '' prefix = task.ext.suffix ? "${meta.id}${task.ext.suffix}" : "${meta.id}" - if ( sequence_input.getExtension != 'fasta' && sequence_input.getExtension != 'fna' && gff ) - log.warn "GFF input to antiSMASH can only be used if FASTA sequence input is supplied. GFF will be ignored for sample ${meta.id}" - if ( (sequence_input.getExtension == 'fasta' || sequence_input.getExtension == 'fna') && gff ) - gff_flag = "--genefinding-gff3 ${gff}" - else - gff_flag = "" + gff_flag = "--genefinding-gff3 ${gff}" """ ## We specifically do not include annotations (--genefinding-tool none) as ## this should be run as a separate module for versioning purposes antismash \\ $args \\ + $gff_flag \\ -c $task.cpus \\ --output-dir $prefix \\ --genefinding-tool none \\ --logfile $prefix/${prefix}.log \\ --databases $databases \\ - $gff_flag \\ $sequence_input cat <<-END_VERSIONS > versions.yml diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml index f47dbad0..91e73709 100644 --- a/modules/antismash/antismashlite/meta.yml +++ b/modules/antismash/antismashlite/meta.yml @@ -35,10 +35,6 @@ input: type: file description: nucleotide sequence file (annotated) pattern: "*.{gbk, gb, gbff, genbank, embl, fasta, fna}" - - gff: - type: file - description: GFF3 file to extract annotated features from (only needed if sequence_input is in FASTA format) - pattern: "*.{gff, GFF}" - databases: type: directory description: downloaded AntiSMASH databases e.g. data/databases @@ -53,6 +49,9 @@ input: directory needs to be mounted (including all modified files from the downloading step) to the container as a workaround. pattern: "*" + - gff: + type: file + pattern: "*.gff" output: - meta: diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index 44d28129..02f9e0f9 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -2,35 +2,106 @@ nextflow.enable.dsl = 2 +include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' +include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/antismash/antismashlitedownloaddatabases/main.nf' +include { GUNZIP as GUNZIP1 } from '../../../../modules/gunzip/main.nf' +include { GUNZIP as GUNZIP2 } from '../../../../modules/gunzip/main.nf' include { UNTAR as UNTAR1 } from '../../../../modules/untar/main.nf' include { UNTAR as UNTAR2 } from '../../../../modules/untar/main.nf' include { UNTAR as UNTAR3 } from '../../../../modules/untar/main.nf' -include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/antismash/antismashlitedownloaddatabases/main.nf' -include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' workflow test_antismashlite { - input_genome = [ - [ id:'test' ], // meta map - file(params.test_data['bacteroides_fragilis']['genome']['genome_gbff_gz'], checkIfExists: true) ] + genome_fna = [ + [ id:'test' ], + file(params.test_data['bacteroides_fragilis']['genome']['genome_fna_gz'], checkIfExists: true) + ] - input_antismash_db1 = [ + genome_gff = [ + [], + file(params.test_data['bacteroides_fragilis']['genome']['genome_gff_gz'], checkIfExists: true) + ] + + antismash_db1 = [ [], file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) ] - input_antismash_db2 = [ + antismash_db2 = [ [], file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) ] - input_antismash_db3 = [ + antismash_db3 = [ [], file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) ] - UNTAR1 ( input_antismash_db1 ) - UNTAR2 ( input_antismash_db2 ) - UNTAR3 ( input_antismash_db3 ) + // input_db = [ + // file('/home/jasmin/antismash_db/', checkIfExists: true) + // ] + + // input_dir = [ + // file('/home/jasmin/antismash_dir/', checkIfExists: true) + // ] + + GUNZIP1 ( genome_fna ) + GUNZIP2 ( genome_gff ) + UNTAR1 ( antismash_db1 ) + UNTAR2 ( antismash_db2 ) + UNTAR3 ( antismash_db3 ) ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) - ANTISMASH_ANTISMASHLITE ( input_genome, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir, [] ) + ANTISMASH_ANTISMASHLITE ( GUNZIP1.out.gunzip, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir, GUNZIP2.out.gunzip.map{ it[1] } ) + // ANTISMASH_ANTISMASHLITE ( GUNZIP1.out.gunzip, input_db, input_dir, GUNZIP2.out.gunzip.map{ it[1] } ) + } +// #!/usr/bin/env nextflow + +// nextflow.enable.dsl = 2 + +// // include { UNTAR as UNTAR1 } from '../../../../modules/untar/main.nf' +// // include { UNTAR as UNTAR2 } from '../../../../modules/untar/main.nf' +// // include { UNTAR as UNTAR3 } from '../../../../modules/untar/main.nf' +// // // include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/antismash/antismashlitedownloaddatabases/main.nf' +// include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' + +// workflow test_antismashlite { +// input_genome = [ +// [ id:'test' ], // meta map +// file('/home/jasmin/Downloads/BAN001-megahit.gbk', checkIfExists: true) ] + +// // input_antismash_db1 = [ +// // [], +// // file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) +// // ] + +// // input_antismash_db2 = [ +// // [], +// // file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) +// // ] + +// // input_antismash_db3 = [ +// // [], +// // file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) +// // ] + +// input_db = [ +// [], +// file('/home/jasmin/antismash_db/', checkIfExists: true) +// ] + +// input_dir = [ +// [], +// file('/home/jasmin/antismash_dir', checkIfExists: true) +// ] + +// // input_gff = [ +// // [], +// // file('/home/jasmin/Downloads/BAN001.gff', checkIfExists: true) +// // ] + +// // UNTAR1 ( input_antismash_db1 ) +// // UNTAR2 ( input_antismash_db2 ) +// // UNTAR3 ( input_antismash_db3 ) +// // ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) +// ANTISMASH_ANTISMASHLITE ( input_genome, input_db, input_dir ) +// } diff --git a/tests/modules/antismash/antismashlite/test.yml b/tests/modules/antismash/antismashlite/test.yml index b1365414..bd255b41 100644 --- a/tests/modules/antismash/antismashlite/test.yml +++ b/tests/modules/antismash/antismashlite/test.yml @@ -13,11 +13,10 @@ - path: output/antismash/test/genome.gbk contains: ['/tool="antismash"'] - path: output/antismash/test/genome.json - contains: - ['{"version": "6.0.1", "input_file": "genome.gbff.gz", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] + contains: ['{"version": "6.0.1", "input_file": "genome.fna.gz", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] - path: output/antismash/test/genome.zip - path: output/antismash/test/index.html - md5sum: 32aaf51315258af3b300d9a5bafd7bdc + md5sum: de787e865c3a1eec143a19d2facb4de4 - path: output/antismash/test/js/antismash.js md5sum: 58e90c3d783ae014cc3d51849bcb50a2 - path: output/antismash/test/js/jquery.js @@ -30,3 +29,17 @@ contains: ["antiSMASH version: 6.0.1"] - path: output/antismash/versions.yml md5sum: 759431a43da33e2ef8e2d0ebd79a439b + - path: output/gunzip1/genome.fna + md5sum: dafd38f5454b54fbea38245d773062a5 + - path: output/gunzip1/versions.yml + md5sum: 854e3d45d43d2bc3bedf4bd6586e3e1f + - path: output/gunzip2/genome.gff + md5sum: 9b9c848b1946d43fa68128f4d6316052 + - path: output/gunzip2/versions.yml + md5sum: 67bdab99aaaf1edfc0869bd2e6808036 + - path: output/untar1/versions.yml + md5sum: 1e4721017721c45370996318e6b807e5 + - path: output/untar2/versions.yml + md5sum: a6ae4977a432f3c5ef26687cec8622de + - path: output/untar3/versions.yml + md5sum: a5ee00c1c426ed601ff654891ba0f645 From 2b746abfbe6944261f01828de57a8eb74f94853d Mon Sep 17 00:00:00 2001 From: jasmezz Date: Wed, 11 May 2022 12:09:52 +0200 Subject: [PATCH 535/592] Fix Prettier linting issue --- tests/modules/antismash/antismashlite/test.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/modules/antismash/antismashlite/test.yml b/tests/modules/antismash/antismashlite/test.yml index bd255b41..6822152d 100644 --- a/tests/modules/antismash/antismashlite/test.yml +++ b/tests/modules/antismash/antismashlite/test.yml @@ -13,7 +13,8 @@ - path: output/antismash/test/genome.gbk contains: ['/tool="antismash"'] - path: output/antismash/test/genome.json - contains: ['{"version": "6.0.1", "input_file": "genome.fna.gz", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] + contains: + ['{"version": "6.0.1", "input_file": "genome.fna.gz", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] - path: output/antismash/test/genome.zip - path: output/antismash/test/index.html md5sum: de787e865c3a1eec143a19d2facb4de4 From d54cf467f47461e8304e6fc4a4a1192869bfd792 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Wed, 11 May 2022 10:42:17 +0000 Subject: [PATCH 536/592] Update outputs and test data set --- modules/genomescope2/main.nf | 16 +++++++--------- modules/genomescope2/meta.yml | 26 +++++++++++++++++++++++++- tests/modules/genomescope2/main.nf | 2 +- tests/modules/genomescope2/test.yml | 29 ++++++++++++++++++++--------- 4 files changed, 53 insertions(+), 20 deletions(-) diff --git a/modules/genomescope2/main.nf b/modules/genomescope2/main.nf index d81ed27a..2ddf9e43 100644 --- a/modules/genomescope2/main.nf +++ b/modules/genomescope2/main.nf @@ -11,13 +11,13 @@ process GENOMESCOPE2 { tuple val(meta), path(histogram) output: - tuple val(meta), path("$prefix-linear_plot.png") , emit: linear_plot_png - tuple val(meta), path("$prefix-transformed_linear_plot.png"), emit: transformed_linear_plot_png - tuple val(meta), path("$prefix-log_plot.png") , emit: log_plot_png - tuple val(meta), path("$prefix-transformed_log_plot.png") , emit: transformed_log_plot_png - tuple val(meta), path("$prefix-model.txt") , emit: model - tuple val(meta), path("$prefix-summary.txt") , emit: summary - path "versions.yml" , emit: versions + tuple val(meta), path("*_linear_plot.png") , emit: linear_plot_png + tuple val(meta), path("*_transformed_linear_plot.png"), emit: transformed_linear_plot_png + tuple val(meta), path("*_log_plot.png") , emit: log_plot_png + tuple val(meta), path("*_transformed_log_plot.png") , emit: transformed_log_plot_png + tuple val(meta), path("*_model.txt") , emit: model + tuple val(meta), path("*_summary.txt") , emit: summary + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -32,8 +32,6 @@ process GENOMESCOPE2 { --output . \\ --name_prefix $prefix - ls -l - cat <<-END_VERSIONS > versions.yml '${task.process}': genomescope2: \$( genomescope2 -v | sed 's/GenomeScope //' ) diff --git a/modules/genomescope2/meta.yml b/modules/genomescope2/meta.yml index b680bb8f..505daafe 100644 --- a/modules/genomescope2/meta.yml +++ b/modules/genomescope2/meta.yml @@ -37,7 +37,31 @@ output: - linear_plot_png: type: file description: A genomescope2 linear plot in PNG format - pattern: "*.png" + pattern: "*_linear_plot.png" + - linear_plot_png: + type: file + description: A genomescope2 linear plot in PNG format + pattern: "*_linear_plot.png" + - transformed_linear_plot_png: + type: file + description: A genomescope2 transformed linear plot in PNG format + pattern: "*_transformed_linear_plot.png" + - log_plot_png: + type: file + description: A genomescope2 log plot in PNG format + pattern: "*_log_plot.png" + - transformed_log_plot_png: + type: file + description: A genomescope2 transformed log plot in PNG format + pattern: "*_transformed_log_plot.png" + - model: + type: file + description: Genomescope2 model fit summary + pattern: "*_model.txt" + - summary: + type: file + description: Genomescope2 histogram summary + pattern: "*_summary.txt" authors: - "@mahesh-panchal" diff --git a/tests/modules/genomescope2/main.nf b/tests/modules/genomescope2/main.nf index 9f15be88..5ceebfd6 100644 --- a/tests/modules/genomescope2/main.nf +++ b/tests/modules/genomescope2/main.nf @@ -10,7 +10,7 @@ workflow test_genomescope2 { input = [ [ id:'test', single_end:false ], // meta map - file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + file(params.test_data['bacteroides_fragilis']['illumina']['test1_1_fastq_gz'], checkIfExists: true) ] MERYL_COUNT ( input ) diff --git a/tests/modules/genomescope2/test.yml b/tests/modules/genomescope2/test.yml index d2a664d9..accd2a14 100644 --- a/tests/modules/genomescope2/test.yml +++ b/tests/modules/genomescope2/test.yml @@ -1,12 +1,23 @@ -## TODO nf-core: Please run the following command to build this file: -# nf-core modules create-test-yml genomescope2 -- name: "genomescope2" - command: nextflow run ./tests/modules/genomescope2 -entry test_genomescope2 -c ./tests/config/nextflow.config -c ./tests/modules/genomescope2/nextflow.config +- name: genomescope2 test_genomescope2 + command: nextflow run tests/modules/genomescope2 -entry test_genomescope2 -c tests/config/nextflow.config tags: - - "genomescope2" - # + - genomescope2 files: - - path: "output/genomescope2/test.bam" - md5sum: e667c7caad0bc4b7ac383fd023c654fc + - path: output/genomescope2/test_linear_plot.png + md5sum: 94c165c5028156299a1d4d05766cac51 + - path: output/genomescope2/test_log_plot.png + md5sum: 9d25ca463d92a0c73a893da7fd3979ba + - path: output/genomescope2/test_model.txt + md5sum: 3caf62f715f64a2f2b8fdff5d079cb84 + - path: output/genomescope2/test_summary.txt + md5sum: 7452860e2cea99b85f3ff60daeac77f5 + - path: output/genomescope2/test_transformed_linear_plot.png + md5sum: 99a64c1c18d8670f64cb863d4334abbb + - path: output/genomescope2/test_transformed_log_plot.png + md5sum: b4e029c9fb9987ca33b17392a691c1b4 - path: output/genomescope2/versions.yml - md5sum: a01fe51bc4c6a3a6226fbf77b2c7cf3b + md5sum: 18afeb26f62a47f680b2bb3e27da9cbc + - path: output/meryl/test.hist + md5sum: f75362ab9cd70d96621b3690e952085f + - path: output/meryl/versions.yml + md5sum: 944b7ea81a82bd20174c5042857003fc From 5d593bdb45eb241e65c9c7b1a4ffb2cf48ce695d Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Sun, 8 May 2022 16:44:33 +0200 Subject: [PATCH 537/592] docs: correct license and input description --- modules/sratools/fasterqdump/meta.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/sratools/fasterqdump/meta.yml b/modules/sratools/fasterqdump/meta.yml index ec5f69a5..ac62bc61 100644 --- a/modules/sratools/fasterqdump/meta.yml +++ b/modules/sratools/fasterqdump/meta.yml @@ -10,7 +10,7 @@ tools: homepage: https://github.com/ncbi/sra-tools documentation: https://github.com/ncbi/sra-tools/wiki tool_dev_url: https://github.com/ncbi/sra-tools - licence: ["US-Government-Work"] + licence: ["Public Domain"] input: - meta: @@ -22,6 +22,12 @@ input: type: directory description: Directory containing ETL data for the given SRA. pattern: "*/*.sra" + - ncbi_settings: + type: file + description: > + Either a proper NCBI settings file or in case an existing file should be used, + a file with name EXISTS. + pattern: "*.mkfg | EXISTS" output: - meta: From d4f13ebfff9b421bd36dbc6001669078adc2369a Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Sun, 8 May 2022 16:46:52 +0200 Subject: [PATCH 538/592] refactor: create new settings input --- modules/sratools/fasterqdump/main.nf | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/sratools/fasterqdump/main.nf b/modules/sratools/fasterqdump/main.nf index 1980ffeb..6351efd2 100644 --- a/modules/sratools/fasterqdump/main.nf +++ b/modules/sratools/fasterqdump/main.nf @@ -9,6 +9,7 @@ process SRATOOLS_FASTERQDUMP { input: tuple val(meta), path(sra) + path(ncbi_settings) output: tuple val(meta), path(output), emit: reads @@ -20,16 +21,13 @@ process SRATOOLS_FASTERQDUMP { script: def args = task.ext.args ?: '' def args2 = task.ext.args2 ?: '' - def config = "/LIBS/GUID = \"${UUID.randomUUID().toString()}\"\\n/libs/cloud/report_instance_identity = \"true\"\\n" // Paired-end data extracted by fasterq-dump (--split-3 the default) always creates // *_1.fastq *_2.fastq files but sometimes also an additional *.fastq file // for unpaired reads which we ignore here. output = meta.single_end ? '*.fastq.gz' : '*_{1,2}.fastq.gz' """ - eval "\$(vdb-config -o n NCBI_SETTINGS | sed 's/[" ]//g')" - if [[ ! -f "\${NCBI_SETTINGS}" ]]; then - mkdir -p "\$(dirname "\${NCBI_SETTINGS}")" - printf '${config}' > "\${NCBI_SETTINGS}" + if [[ "${ncbi_settings.name}" != "EXISTS" ]]; then + export NCBI_SETTINGS="\$PWD/${ncbi_settings}" fi fasterq-dump \\ From eae7161a3213117c3ec6dfb37ee071cbbf896fc8 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Sun, 8 May 2022 17:00:28 +0200 Subject: [PATCH 539/592] tests: add settings input or not and test all branches --- tests/modules/sratools/fasterqdump/main.nf | 46 +++++++++++++++++-- .../sratools/fasterqdump/nextflow.config | 3 ++ .../fasterqdump/nextflow_mount.config | 18 ++++++++ tests/modules/sratools/fasterqdump/test.yml | 44 ++++++++++++++++-- 4 files changed, 103 insertions(+), 8 deletions(-) create mode 100644 tests/modules/sratools/fasterqdump/nextflow_mount.config diff --git a/tests/modules/sratools/fasterqdump/main.nf b/tests/modules/sratools/fasterqdump/main.nf index c2b98526..2bf9daed 100644 --- a/tests/modules/sratools/fasterqdump/main.nf +++ b/tests/modules/sratools/fasterqdump/main.nf @@ -5,7 +5,11 @@ nextflow.enable.dsl = 2 include { UNTAR } from '../../../../modules/untar/main.nf' include { SRATOOLS_FASTERQDUMP } from '../../../../modules/sratools/fasterqdump/main.nf' -workflow test_sratools_fasterqdump_single_end { +workflow test_sratools_fasterqdump_single_end_with_input { + + file(params.settings_path).mkdirs() + def settings = file(params.settings_file) + settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR13255544_tar_gz'], checkIfExists: true) ] UNTAR ( archive ) @@ -13,10 +17,14 @@ workflow test_sratools_fasterqdump_single_end { def input = Channel.of([ id:'test_single_end', single_end:true ]) .combine(UNTAR.out.untar.map{ it[1] }) - SRATOOLS_FASTERQDUMP ( input ) + SRATOOLS_FASTERQDUMP(input, settings) } -workflow test_sratools_fasterqdump_paired_end { +workflow test_sratools_fasterqdump_paired_end_with_input { + + file(params.settings_path).mkdirs() + def settings = file(params.settings_file) + settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR11140744_tar_gz'], checkIfExists: true) ] UNTAR ( archive ) @@ -24,5 +32,35 @@ workflow test_sratools_fasterqdump_paired_end { def input = Channel.of([ id:'test_paired_end', single_end:false ]) .combine(UNTAR.out.untar.map{ it[1] }) - SRATOOLS_FASTERQDUMP ( input ) + SRATOOLS_FASTERQDUMP(input, settings) +} + +workflow test_sratools_fasterqdump_single_end_without_input { + + file(params.settings_path).mkdirs() + def settings = file(params.settings_file) + settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" + + archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR13255544_tar_gz'], checkIfExists: true) ] + UNTAR ( archive ) + + def input = Channel.of([ id:'test_single_end', single_end:true ]) + .combine(UNTAR.out.untar.map{ it[1] }) + + SRATOOLS_FASTERQDUMP(input, file('EXISTS')) +} + +workflow test_sratools_fasterqdump_paired_end_without_input { + + file(params.settings_path).mkdirs() + def settings = file(params.settings_file) + settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" + + archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR11140744_tar_gz'], checkIfExists: true) ] + UNTAR ( archive ) + + def input = Channel.of([ id:'test_paired_end', single_end:false ]) + .combine(UNTAR.out.untar.map{ it[1] }) + + SRATOOLS_FASTERQDUMP(input, file('EXISTS')) } diff --git a/tests/modules/sratools/fasterqdump/nextflow.config b/tests/modules/sratools/fasterqdump/nextflow.config index 8730f1c4..a6c70bd3 100644 --- a/tests/modules/sratools/fasterqdump/nextflow.config +++ b/tests/modules/sratools/fasterqdump/nextflow.config @@ -1,3 +1,6 @@ +params.settings_path = '/tmp/.ncbi' +params.settings_file = "${params.settings_path}/user-settings.mkfg" + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/sratools/fasterqdump/nextflow_mount.config b/tests/modules/sratools/fasterqdump/nextflow_mount.config new file mode 100644 index 00000000..b79d1a82 --- /dev/null +++ b/tests/modules/sratools/fasterqdump/nextflow_mount.config @@ -0,0 +1,18 @@ + +params.settings_path = '/tmp/.ncbi' +params.settings_file = "${params.settings_path}/user-settings.mkfg" + +env.NCBI_SETTINGS = params.settings_file + +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: SRATOOLS_FASTERQDUMP { + containerOptions = { + (workflow.containerEngine == 'singularity') ? + "-B ${params.settings_path}:${params.settings_path}" : + "-v ${params.settings_path}:${params.settings_path}" + } + } +} diff --git a/tests/modules/sratools/fasterqdump/test.yml b/tests/modules/sratools/fasterqdump/test.yml index 64cf2404..73f9a0aa 100644 --- a/tests/modules/sratools/fasterqdump/test.yml +++ b/tests/modules/sratools/fasterqdump/test.yml @@ -1,5 +1,5 @@ -- name: sratools fasterqdump test_sratools_fasterqdump_single_end - command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_single_end -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow.config +- name: sratools fasterqdump test_sratools_fasterqdump_single_end_with_input + command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_single_end_with_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow.config tags: - sratools - sratools/fasterqdump @@ -8,9 +8,12 @@ md5sum: 1054c7b71884acdb5eed8a378f18be82 - path: output/untar/SRR13255544/SRR13255544.sra md5sum: 466d05dafb2eec672150754168010b4d + - path: output/sratools/versions.yml + contains: + - "sratools: 2.11.0" -- name: sratools fasterqdump test_sratools_fasterqdump_paired_end - command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow.config +- name: sratools fasterqdump test_sratools_fasterqdump_paired_end_with_input + command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_paired_end_with_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow.config tags: - sratools - sratools/fasterqdump @@ -21,3 +24,36 @@ md5sum: 3e3b3af3413f50a1685fd7b3f1456d4e - path: output/untar/SRR11140744/SRR11140744.sra md5sum: 065666caf5b2d5dfb0cb25d5f3abe659 + - path: output/sratools/versions.yml + contains: + - "sratools: 2.11.0" + +- name: sratools fasterqdump test_sratools_fasterqdump_single_end_without_input + command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_single_end_without_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow_mount.config + tags: + - sratools + - sratools/fasterqdump + files: + - path: output/sratools/SRR13255544.fastq.gz + md5sum: 1054c7b71884acdb5eed8a378f18be82 + - path: output/untar/SRR13255544/SRR13255544.sra + md5sum: 466d05dafb2eec672150754168010b4d + - path: output/sratools/versions.yml + contains: + - "sratools: 2.11.0" + +- name: sratools fasterqdump test_sratools_fasterqdump_paired_end_without_input + command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_paired_end_without_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow_mount.config + tags: + - sratools + - sratools/fasterqdump + files: + - path: output/sratools/SRR11140744_1.fastq.gz + md5sum: 193809c784a4ea132ab2a253fa4f55b6 + - path: output/sratools/SRR11140744_2.fastq.gz + md5sum: 3e3b3af3413f50a1685fd7b3f1456d4e + - path: output/untar/SRR11140744/SRR11140744.sra + md5sum: 065666caf5b2d5dfb0cb25d5f3abe659 + - path: output/sratools/versions.yml + contains: + - "sratools: 2.11.0" From 0cdf7767a79faf424645beeff83ecfa5528b6a7c Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 11 May 2022 13:02:52 +0200 Subject: [PATCH 540/592] refactor: require NCBI user settings always --- modules/sratools/fasterqdump/main.nf | 6 +-- modules/sratools/fasterqdump/meta.yml | 5 +- tests/modules/sratools/fasterqdump/main.nf | 46 ++----------------- .../sratools/fasterqdump/nextflow.config | 3 -- .../fasterqdump/nextflow_mount.config | 18 -------- tests/modules/sratools/fasterqdump/test.yml | 38 ++------------- 6 files changed, 12 insertions(+), 104 deletions(-) delete mode 100644 tests/modules/sratools/fasterqdump/nextflow_mount.config diff --git a/modules/sratools/fasterqdump/main.nf b/modules/sratools/fasterqdump/main.nf index 6351efd2..18f46e51 100644 --- a/modules/sratools/fasterqdump/main.nf +++ b/modules/sratools/fasterqdump/main.nf @@ -9,7 +9,7 @@ process SRATOOLS_FASTERQDUMP { input: tuple val(meta), path(sra) - path(ncbi_settings) + path ncbi_settings output: tuple val(meta), path(output), emit: reads @@ -26,9 +26,7 @@ process SRATOOLS_FASTERQDUMP { // for unpaired reads which we ignore here. output = meta.single_end ? '*.fastq.gz' : '*_{1,2}.fastq.gz' """ - if [[ "${ncbi_settings.name}" != "EXISTS" ]]; then - export NCBI_SETTINGS="\$PWD/${ncbi_settings}" - fi + export NCBI_SETTINGS="\$PWD/${ncbi_settings}" fasterq-dump \\ $args \\ diff --git a/modules/sratools/fasterqdump/meta.yml b/modules/sratools/fasterqdump/meta.yml index ac62bc61..d6fbd444 100644 --- a/modules/sratools/fasterqdump/meta.yml +++ b/modules/sratools/fasterqdump/meta.yml @@ -25,9 +25,8 @@ input: - ncbi_settings: type: file description: > - Either a proper NCBI settings file or in case an existing file should be used, - a file with name EXISTS. - pattern: "*.mkfg | EXISTS" + An NCBI user settings file. + pattern: "*.mkfg" output: - meta: diff --git a/tests/modules/sratools/fasterqdump/main.nf b/tests/modules/sratools/fasterqdump/main.nf index 2bf9daed..daa7a5ae 100644 --- a/tests/modules/sratools/fasterqdump/main.nf +++ b/tests/modules/sratools/fasterqdump/main.nf @@ -5,11 +5,7 @@ nextflow.enable.dsl = 2 include { UNTAR } from '../../../../modules/untar/main.nf' include { SRATOOLS_FASTERQDUMP } from '../../../../modules/sratools/fasterqdump/main.nf' -workflow test_sratools_fasterqdump_single_end_with_input { - - file(params.settings_path).mkdirs() - def settings = file(params.settings_file) - settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" +workflow test_sratools_fasterqdump_single_end { archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR13255544_tar_gz'], checkIfExists: true) ] UNTAR ( archive ) @@ -17,14 +13,10 @@ workflow test_sratools_fasterqdump_single_end_with_input { def input = Channel.of([ id:'test_single_end', single_end:true ]) .combine(UNTAR.out.untar.map{ it[1] }) - SRATOOLS_FASTERQDUMP(input, settings) + SRATOOLS_FASTERQDUMP(input, file(params.test_data['generic']['config']['ncbi_user_settings'], checkIfExists: true)) } -workflow test_sratools_fasterqdump_paired_end_with_input { - - file(params.settings_path).mkdirs() - def settings = file(params.settings_file) - settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" +workflow test_sratools_fasterqdump_paired_end { archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR11140744_tar_gz'], checkIfExists: true) ] UNTAR ( archive ) @@ -32,35 +24,5 @@ workflow test_sratools_fasterqdump_paired_end_with_input { def input = Channel.of([ id:'test_paired_end', single_end:false ]) .combine(UNTAR.out.untar.map{ it[1] }) - SRATOOLS_FASTERQDUMP(input, settings) -} - -workflow test_sratools_fasterqdump_single_end_without_input { - - file(params.settings_path).mkdirs() - def settings = file(params.settings_file) - settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" - - archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR13255544_tar_gz'], checkIfExists: true) ] - UNTAR ( archive ) - - def input = Channel.of([ id:'test_single_end', single_end:true ]) - .combine(UNTAR.out.untar.map{ it[1] }) - - SRATOOLS_FASTERQDUMP(input, file('EXISTS')) -} - -workflow test_sratools_fasterqdump_paired_end_without_input { - - file(params.settings_path).mkdirs() - def settings = file(params.settings_file) - settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" - - archive = [ [], file(params.test_data['sarscov2']['illumina']['SRR11140744_tar_gz'], checkIfExists: true) ] - UNTAR ( archive ) - - def input = Channel.of([ id:'test_paired_end', single_end:false ]) - .combine(UNTAR.out.untar.map{ it[1] }) - - SRATOOLS_FASTERQDUMP(input, file('EXISTS')) + SRATOOLS_FASTERQDUMP(input, file(params.test_data['generic']['config']['ncbi_user_settings'], checkIfExists: true)) } diff --git a/tests/modules/sratools/fasterqdump/nextflow.config b/tests/modules/sratools/fasterqdump/nextflow.config index a6c70bd3..8730f1c4 100644 --- a/tests/modules/sratools/fasterqdump/nextflow.config +++ b/tests/modules/sratools/fasterqdump/nextflow.config @@ -1,6 +1,3 @@ -params.settings_path = '/tmp/.ncbi' -params.settings_file = "${params.settings_path}/user-settings.mkfg" - process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } diff --git a/tests/modules/sratools/fasterqdump/nextflow_mount.config b/tests/modules/sratools/fasterqdump/nextflow_mount.config deleted file mode 100644 index b79d1a82..00000000 --- a/tests/modules/sratools/fasterqdump/nextflow_mount.config +++ /dev/null @@ -1,18 +0,0 @@ - -params.settings_path = '/tmp/.ncbi' -params.settings_file = "${params.settings_path}/user-settings.mkfg" - -env.NCBI_SETTINGS = params.settings_file - -process { - - publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - - withName: SRATOOLS_FASTERQDUMP { - containerOptions = { - (workflow.containerEngine == 'singularity') ? - "-B ${params.settings_path}:${params.settings_path}" : - "-v ${params.settings_path}:${params.settings_path}" - } - } -} diff --git a/tests/modules/sratools/fasterqdump/test.yml b/tests/modules/sratools/fasterqdump/test.yml index 73f9a0aa..6fbf608c 100644 --- a/tests/modules/sratools/fasterqdump/test.yml +++ b/tests/modules/sratools/fasterqdump/test.yml @@ -1,5 +1,5 @@ -- name: sratools fasterqdump test_sratools_fasterqdump_single_end_with_input - command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_single_end_with_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow.config +- name: sratools fasterqdump test_sratools_fasterqdump_single_end + command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_single_end -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow.config tags: - sratools - sratools/fasterqdump @@ -12,38 +12,8 @@ contains: - "sratools: 2.11.0" -- name: sratools fasterqdump test_sratools_fasterqdump_paired_end_with_input - command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_paired_end_with_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow.config - tags: - - sratools - - sratools/fasterqdump - files: - - path: output/sratools/SRR11140744_1.fastq.gz - md5sum: 193809c784a4ea132ab2a253fa4f55b6 - - path: output/sratools/SRR11140744_2.fastq.gz - md5sum: 3e3b3af3413f50a1685fd7b3f1456d4e - - path: output/untar/SRR11140744/SRR11140744.sra - md5sum: 065666caf5b2d5dfb0cb25d5f3abe659 - - path: output/sratools/versions.yml - contains: - - "sratools: 2.11.0" - -- name: sratools fasterqdump test_sratools_fasterqdump_single_end_without_input - command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_single_end_without_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow_mount.config - tags: - - sratools - - sratools/fasterqdump - files: - - path: output/sratools/SRR13255544.fastq.gz - md5sum: 1054c7b71884acdb5eed8a378f18be82 - - path: output/untar/SRR13255544/SRR13255544.sra - md5sum: 466d05dafb2eec672150754168010b4d - - path: output/sratools/versions.yml - contains: - - "sratools: 2.11.0" - -- name: sratools fasterqdump test_sratools_fasterqdump_paired_end_without_input - command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_paired_end_without_input -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow_mount.config +- name: sratools fasterqdump test_sratools_fasterqdump_paired_end + command: nextflow run ./tests/modules/sratools/fasterqdump -entry test_sratools_fasterqdump_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/sratools/fasterqdump/nextflow.config tags: - sratools - sratools/fasterqdump From 3ae8cbfad754dc45cae7fb42315f2873a7e9e417 Mon Sep 17 00:00:00 2001 From: CMGG ICT Team Date: Wed, 11 May 2022 13:32:56 +0200 Subject: [PATCH 541/592] bowtie2: remove code duplication --- modules/bowtie2/align/main.nf | 112 +++++++++++++-------------- tests/modules/bowtie2/align/test.yml | 88 ++++----------------- 2 files changed, 65 insertions(+), 135 deletions(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index c233f955..18209bdf 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -1,11 +1,11 @@ process BOWTIE2_ALIGN { tag "$meta.id" - label 'process_high' + label "process_high" - conda (params.enable_conda ? 'bioconda::bowtie2=2.4.4 bioconda::samtools=1.15.1 conda-forge::pigz=2.6' : null) - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0' : - 'quay.io/biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0' }" + conda (params.enable_conda ? "bioconda::bowtie2=2.4.4 bioconda::samtools=1.15.1 conda-forge::pigz=2.6" : null) + container "${ workflow.containerEngine == "singularity" && !task.ext.singularity_pull_docker_container ? + "https://depot.galaxyproject.org/singularity/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0" : + "quay.io/biocontainers/mulled-v2-ac74a7f02cebcfcc07d8e8d1d750af9c83b4d45a:1744f68fe955578c63054b55309e05b41c37a80d-0" }" input: tuple val(meta), path(reads) @@ -13,69 +13,61 @@ process BOWTIE2_ALIGN { val save_unaligned output: - tuple val(meta), path('*.bam') , emit: bam - tuple val(meta), path('*.log') , emit: log - tuple val(meta), path('*fastq.gz'), emit: fastq, optional:true + tuple val(meta), path("*.bam") , emit: bam + tuple val(meta), path("*.log") , emit: log + tuple val(meta), path("*fastq.gz"), emit: fastq, optional:true path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - def args2 = task.ext.args2 ?: '' + def args = task.ext.args ?: "" + def args2 = task.ext.args2 ?: "" def prefix = task.ext.prefix ?: "${meta.id}" + + def unaligned = "" + def reads_args = "" + if (meta.single_end) { - def unaligned = save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : '' - """ - INDEX=`find -L ./ -name "*.rev.1.bt2" | sed 's/.rev.1.bt2//'` - [ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed 's/.rev.1.bt2l//'` - [ -z "\$INDEX" ] && echo "BT2 index files not found" 1>&2 && exit 1 - bowtie2 \\ - -x \$INDEX \\ - -U $reads \\ - --threads $task.cpus \\ - $unaligned \\ - $args \\ - 2> ${prefix}.bowtie2.log \\ - | samtools view -@ $task.cpus $args2 -bhS -o ${prefix}.bam - - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bowtie2: \$(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 - """ + unaligned = save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : "" + reads_args = "-U ${reads}" } else { - def unaligned = save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : '' - """ - INDEX=`find -L ./ -name "*.rev.1.bt2" | sed 's/.rev.1.bt2//'` - [ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed 's/.rev.1.bt2l//'` - [ -z "\$INDEX" ] && echo "BT2 index files not found" 1>&2 && exit 1 - bowtie2 \\ - -x \$INDEX \\ - -1 ${reads[0]} \\ - -2 ${reads[1]} \\ - --threads $task.cpus \\ - $unaligned \\ - $args \\ - 2> ${prefix}.bowtie2.log \\ - | samtools view -@ $task.cpus $args2 -bhS -o ${prefix}.bam - - - if [ -f ${prefix}.unmapped.fastq.1.gz ]; then - mv ${prefix}.unmapped.fastq.1.gz ${prefix}.unmapped_1.fastq.gz - fi - if [ -f ${prefix}.unmapped.fastq.2.gz ]; then - mv ${prefix}.unmapped.fastq.2.gz ${prefix}.unmapped_2.fastq.gz - fi - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bowtie2: \$(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 - """ + unaligned = save_unaligned ? "--un-conc-gz ${prefix}.unmapped.fastq.gz" : "" + reads_args = "-1 ${reads[0]} -2 ${reads[1]}" } + + def samtools = "samtools view -@ $task.cpus --fast --with-header ${args2} > ${prefix}.bam" + + + """ + INDEX=`find -L ./ -name "*.rev.1.bt2" | sed "s/.rev.1.bt2//"` + [ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed "s/.rev.1.bt2l//"` + [ -z "\$INDEX" ] && echo "BT2 index files not found" 1>&2 && exit 1 + + bowtie2 \\ + -x \$INDEX \\ + ${reads_args} \\ + --threads $task.cpus \\ + ${unaligned} \\ + $args \\ + 2> ${prefix}.bowtie2.log \\ + | ${samtools} + + if [ -f ${prefix}.unmapped.fastq.1.gz ]; then + mv ${prefix}.unmapped.fastq.1.gz ${prefix}.unmapped_1.fastq.gz + fi + + if [ -f ${prefix}.unmapped.fastq.2.gz ]; then + mv ${prefix}.unmapped.fastq.2.gz ${prefix}.unmapped_2.fastq.gz + fi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bowtie2: \$(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/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index ea9aa72a..b3cb8330 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -1,83 +1,21 @@ -- name: bowtie2 align single-end - command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config +- name: bowtie2 align test_bowtie2_align_single_end + command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c tests/config/nextflow.config tags: - - bowtie2 - bowtie2/align + - bowtie2 files: - - path: ./output/bowtie2/test.bam - - path: ./output/bowtie2/test.bowtie2.log - - path: ./output/bowtie2/bowtie2/genome.3.bt2 - md5sum: 4ed93abba181d8dfab2e303e33114777 - - path: ./output/bowtie2/bowtie2/genome.2.bt2 - md5sum: 47b153cd1319abc88dda532462651fcf - - path: ./output/bowtie2/bowtie2/genome.1.bt2 - md5sum: cbe3d0bbea55bc57c99b4bfa25b5fbdf - - path: ./output/bowtie2/bowtie2/genome.4.bt2 - md5sum: c25be5f8b0378abf7a58c8a880b87626 - - path: ./output/bowtie2/bowtie2/genome.rev.1.bt2 - md5sum: 52be6950579598a990570fbcf5372184 - - path: ./output/bowtie2/bowtie2/genome.rev.2.bt2 - md5sum: e3b4ef343dea4dd571642010a7d09597 + - path: output/bowtie2/test.bam + - path: output/bowtie2/test.bowtie2.log + md5sum: 7b8a9e61b7646da1089b041333c41a87 + - path: output/bowtie2/versions.yml -- name: bowtie2 align paired-end - command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config +- name: bowtie2 align test_bowtie2_align_paired_end + command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c tests/config/nextflow.config tags: - - bowtie2 - bowtie2/align - files: - - path: ./output/bowtie2/test.bam - - path: ./output/bowtie2/test.bowtie2.log - - path: ./output/bowtie2/bowtie2/genome.3.bt2 - md5sum: 4ed93abba181d8dfab2e303e33114777 - - path: ./output/bowtie2/bowtie2/genome.2.bt2 - md5sum: 47b153cd1319abc88dda532462651fcf - - path: ./output/bowtie2/bowtie2/genome.1.bt2 - md5sum: cbe3d0bbea55bc57c99b4bfa25b5fbdf - - path: ./output/bowtie2/bowtie2/genome.4.bt2 - md5sum: c25be5f8b0378abf7a58c8a880b87626 - - path: ./output/bowtie2/bowtie2/genome.rev.1.bt2 - md5sum: 52be6950579598a990570fbcf5372184 - - path: ./output/bowtie2/bowtie2/genome.rev.2.bt2 - md5sum: e3b4ef343dea4dd571642010a7d09597 - -- name: bowtie2 align single-end large-index - command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config --force_large_index - tags: - bowtie2 - - bowtie2/align files: - - path: ./output/bowtie2/test.bam - - path: ./output/bowtie2/test.bowtie2.log - - path: ./output/bowtie2/bowtie2/genome.3.bt2l - md5sum: 8952b3e0b1ce9a7a5916f2e147180853 - - path: ./output/bowtie2/bowtie2/genome.2.bt2l - md5sum: 22c284084784a0720989595e0c9461fd - - path: ./output/bowtie2/bowtie2/genome.1.bt2l - md5sum: 07d811cd4e350d56267183d2ac7023a5 - - path: ./output/bowtie2/bowtie2/genome.4.bt2l - md5sum: c25be5f8b0378abf7a58c8a880b87626 - - path: ./output/bowtie2/bowtie2/genome.rev.1.bt2l - md5sum: fda48e35925fb24d1c0785f021981e25 - - path: ./output/bowtie2/bowtie2/genome.rev.2.bt2l - md5sum: 802c26d32b970e1b105032b7ce7348b4 - -- name: bowtie2 align paired-end large-index - command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config --force_large_index - tags: - - bowtie2 - - bowtie2/align - files: - - path: ./output/bowtie2/test.bam - - path: ./output/bowtie2/test.bowtie2.log - - path: ./output/bowtie2/bowtie2/genome.3.bt2l - md5sum: 8952b3e0b1ce9a7a5916f2e147180853 - - path: ./output/bowtie2/bowtie2/genome.2.bt2l - md5sum: 22c284084784a0720989595e0c9461fd - - path: ./output/bowtie2/bowtie2/genome.1.bt2l - md5sum: 07d811cd4e350d56267183d2ac7023a5 - - path: ./output/bowtie2/bowtie2/genome.4.bt2l - md5sum: c25be5f8b0378abf7a58c8a880b87626 - - path: ./output/bowtie2/bowtie2/genome.rev.1.bt2l - md5sum: fda48e35925fb24d1c0785f021981e25 - - path: ./output/bowtie2/bowtie2/genome.rev.2.bt2l - md5sum: 802c26d32b970e1b105032b7ce7348b4 + - path: output/bowtie2/test.bam + - path: output/bowtie2/test.bowtie2.log + md5sum: bd89ce1b28c93bf822bae391ffcedd19 + - path: output/bowtie2/versions.yml From 0d00452ecaff35d83ce931f57be9ab6244245c36 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 11 May 2022 13:55:45 +0200 Subject: [PATCH 542/592] Update tests/modules/bowtie2/align/test.yml Co-authored-by: Harshil Patel --- tests/modules/bowtie2/align/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index b3cb8330..9aec709c 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -1,5 +1,5 @@ - name: bowtie2 align test_bowtie2_align_single_end - command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c tests/config/nextflow.config + command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config tags: - bowtie2/align - bowtie2 From 9dd083fa9480fd03b4995e364d2634e78b572049 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 11 May 2022 13:55:55 +0200 Subject: [PATCH 543/592] Update modules/bowtie2/align/main.nf Co-authored-by: Harshil Patel --- modules/bowtie2/align/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index 18209bdf..605aae34 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -28,7 +28,6 @@ process BOWTIE2_ALIGN { def unaligned = "" def reads_args = "" - if (meta.single_end) { unaligned = save_unaligned ? "--un-gz ${prefix}.unmapped.fastq.gz" : "" reads_args = "-U ${reads}" From 94e8c3a882b7c03e7c24ee9a710a28511e31611f Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 11 May 2022 13:56:03 +0200 Subject: [PATCH 544/592] Update tests/modules/bowtie2/align/test.yml Co-authored-by: Harshil Patel --- tests/modules/bowtie2/align/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index 9aec709c..ef05d70d 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -10,7 +10,7 @@ - path: output/bowtie2/versions.yml - name: bowtie2 align test_bowtie2_align_paired_end - command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c tests/config/nextflow.config + command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config tags: - bowtie2/align - bowtie2 From ff4b297827d3a78ea66172241a4ed414ea1148da Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 11 May 2022 13:57:11 +0200 Subject: [PATCH 545/592] Update modules/bowtie2/align/main.nf Co-authored-by: Harshil Patel --- modules/bowtie2/align/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index 605aae34..8ee198bb 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -48,7 +48,7 @@ process BOWTIE2_ALIGN { -x \$INDEX \\ ${reads_args} \\ --threads $task.cpus \\ - ${unaligned} \\ + $unaligned \\ $args \\ 2> ${prefix}.bowtie2.log \\ | ${samtools} From b456d8fa0aa797258ea9a308120be45e5b7b9667 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 11 May 2022 13:57:19 +0200 Subject: [PATCH 546/592] Update modules/bowtie2/align/main.nf Co-authored-by: Harshil Patel --- modules/bowtie2/align/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index 8ee198bb..b7334614 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -46,7 +46,7 @@ process BOWTIE2_ALIGN { bowtie2 \\ -x \$INDEX \\ - ${reads_args} \\ + $reads_args \\ --threads $task.cpus \\ $unaligned \\ $args \\ From 971a889e2a8adce2c8831f296ac37d335c5f93c7 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 11 May 2022 13:57:27 +0200 Subject: [PATCH 547/592] Update modules/bowtie2/align/main.nf Co-authored-by: Harshil Patel --- modules/bowtie2/align/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index b7334614..6d65aa50 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -42,7 +42,7 @@ process BOWTIE2_ALIGN { """ INDEX=`find -L ./ -name "*.rev.1.bt2" | sed "s/.rev.1.bt2//"` [ -z "\$INDEX" ] && INDEX=`find -L ./ -name "*.rev.1.bt2l" | sed "s/.rev.1.bt2l//"` - [ -z "\$INDEX" ] && echo "BT2 index files not found" 1>&2 && exit 1 + [ -z "\$INDEX" ] && echo "Bowtie2 index files not found" 1>&2 && exit 1 bowtie2 \\ -x \$INDEX \\ From 9097abf277f25b34bd41480c35bd7deac6f9a7c2 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 11 May 2022 13:58:58 +0200 Subject: [PATCH 548/592] Update modules/bowtie2/align/main.nf Co-authored-by: Harshil Patel --- modules/bowtie2/align/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index 6d65aa50..126c93ae 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -36,7 +36,7 @@ process BOWTIE2_ALIGN { reads_args = "-1 ${reads[0]} -2 ${reads[1]}" } - def samtools = "samtools view -@ $task.cpus --fast --with-header ${args2} > ${prefix}.bam" + def samtools_command = "samtools view -@ $task.cpus --fast --with-header ${args2} > ${prefix}.bam" """ From bcd7fe55b171e4532cd19312c091258ee7ccc26a Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 11 May 2022 13:59:03 +0200 Subject: [PATCH 549/592] Update modules/bowtie2/align/main.nf Co-authored-by: Harshil Patel --- modules/bowtie2/align/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index 126c93ae..9fd19469 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -51,7 +51,7 @@ process BOWTIE2_ALIGN { $unaligned \\ $args \\ 2> ${prefix}.bowtie2.log \\ - | ${samtools} + | $samtools_command if [ -f ${prefix}.unmapped.fastq.1.gz ]; then mv ${prefix}.unmapped.fastq.1.gz ${prefix}.unmapped_1.fastq.gz From fbe2f85e7b9a047c6deed6155c145422524959ee Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Wed, 11 May 2022 13:53:38 +0000 Subject: [PATCH 550/592] Fix path --- tests/config/test_data.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 63c3ac16..aaab2243 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -382,7 +382,7 @@ params { test3_gff = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/genome/gff/test3.gff" } 'illumina' { - test_1_fastq_gz = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fasta/test_1.fastq.gz" + test_1_fastq_gz = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_1.fastq.gz" test_2_fastq_gz = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_2.fastq.gz" test_se_fastq_gz = "${test_data_dir}/genomics/prokaryotes/candidatus_portiera_aleyrodidarum/illumina/fastq/test_se.fastq.gz" } From 853e3ec08775da7b178d65cc82209058e696888a Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Wed, 11 May 2022 15:56:10 +0200 Subject: [PATCH 551/592] Remove commented code Co-authored-by: Moritz E. Beber --- modules/antismash/antismashlite/main.nf | 73 ------------------- tests/modules/antismash/antismashlite/main.nf | 58 --------------- 2 files changed, 131 deletions(-) diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf index fb8def97..6f43c6d7 100644 --- a/modules/antismash/antismashlite/main.nf +++ b/modules/antismash/antismashlite/main.nf @@ -1,76 +1,3 @@ -// process ANTISMASH_ANTISMASHLITE { -// tag "$meta.id" -// label 'process_medium' - -// conda (params.enable_conda ? "bioconda::antismash-lite=6.0.1" : null) -// container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? -// 'https://depot.galaxyproject.org/singularity/antismash-lite:6.0.1--pyhdfd78af_1' : -// 'quay.io/biocontainers/antismash-lite:6.0.1--pyhdfd78af_1' }" - -// containerOptions { -// workflow.containerEngine == 'singularity' ? -// "-B $antismash_dir:/usr/local/lib/python3.8/site-packages/antismash" : -// workflow.containerEngine == 'docker' ? -// "-v \$PWD/$antismash_dir:/usr/local/lib/python3.8/site-packages/antismash" : -// '' -// } - -// input: -// tuple val(meta), path(sequence_input) -// path(databases) -// path(antismash_dir) // Optional input: AntiSMASH installation folder. It is not needed for using this module with conda, but required for docker/singularity (see meta.yml). - -// output: -// tuple val(meta), path("${prefix}/clusterblast/*_c*.txt") , optional: true, emit: clusterblast_file -// tuple val(meta), path("${prefix}/css/*.css") , emit: css_file -// tuple val(meta), path("${prefix}/images") , emit: image_directory -// tuple val(meta), path("${prefix}/js/*.js") , emit: javascript -// tuple val(meta), path("${prefix}/knownclusterblast/region*/ctg*.html") , optional: true, emit: knownclusterblast_html -// tuple val(meta), path("${prefix}/knownclusterblast/*_c*.txt") , optional: true, emit: knownclusterblast_txt -// tuple val(meta), path("${prefix}/svg/clusterblast*.svg") , optional: true, emit: svg_files_clusterblast -// tuple val(meta), path("${prefix}/svg/knownclusterblast*.svg") , optional: true, emit: svg_files_knownclusterblast -// tuple val(meta), path("${prefix}/*.gbk") , emit: gbk_input -// tuple val(meta), path("${prefix}/*.json") , emit: json_results -// tuple val(meta), path("${prefix}/*.log") , emit: log -// tuple val(meta), path("${prefix}/*.zip") , emit: zip -// tuple val(meta), path("${prefix}/*region*.gbk") , emit: gbk_results -// tuple val(meta), path("${prefix}/clusterblastoutput.txt") , optional: true, emit: clusterblastoutput -// tuple val(meta), path("${prefix}/index.html") , emit: html -// tuple val(meta), path("${prefix}/knownclusterblastoutput.txt") , optional: true, emit: knownclusterblastoutput -// tuple val(meta), path("${prefix}/regions.js") , emit: json_sideloading -// path "versions.yml" , emit: versions - -// when: -// task.ext.when == null || task.ext.when - -// script: -// def args = task.ext.args ?: '' -// prefix = task.ext.suffix ? "${meta.id}${task.ext.suffix}" : "${meta.id}" -// // if ( sequence_input.getExtension != 'fasta' && sequence_input.getExtension != 'fna' && gff ) -// // log.warn "GFF input to antiSMASH can only be used if FASTA sequence input is supplied. GFF will be ignored for sample ${meta.id}" -// // if ( (sequence_input.getExtension == 'fasta' || sequence_input.getExtension == 'fna') && gff ) -// // gff_flag = "--genefinding-gff3 ${gff}" -// // else -// // gff_flag = "" - -// """ -// ## We specifically do not include annotations (--genefinding-tool none) as -// ## this should be run as a separate module for versioning purposes -// antismash \\ -// $args \\ -// -c $task.cpus \\ -// --output-dir $prefix \\ -// --genefinding-tool none \\ -// --logfile $prefix/${prefix}.log \\ -// --databases $databases \\ -// $sequence_input - -// cat <<-END_VERSIONS > versions.yml -// "${task.process}": -// antismash-lite: \$(antismash --version | sed 's/antiSMASH //') -// END_VERSIONS -// """ -// } process ANTISMASH_ANTISMASHLITE { tag "$meta.id" label 'process_medium' diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index 02f9e0f9..50627590 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -36,13 +36,6 @@ workflow test_antismashlite { file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) ] - // input_db = [ - // file('/home/jasmin/antismash_db/', checkIfExists: true) - // ] - - // input_dir = [ - // file('/home/jasmin/antismash_dir/', checkIfExists: true) - // ] GUNZIP1 ( genome_fna ) GUNZIP2 ( genome_gff ) @@ -54,54 +47,3 @@ workflow test_antismashlite { // ANTISMASH_ANTISMASHLITE ( GUNZIP1.out.gunzip, input_db, input_dir, GUNZIP2.out.gunzip.map{ it[1] } ) } -// #!/usr/bin/env nextflow - -// nextflow.enable.dsl = 2 - -// // include { UNTAR as UNTAR1 } from '../../../../modules/untar/main.nf' -// // include { UNTAR as UNTAR2 } from '../../../../modules/untar/main.nf' -// // include { UNTAR as UNTAR3 } from '../../../../modules/untar/main.nf' -// // // include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/antismash/antismashlitedownloaddatabases/main.nf' -// include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' - -// workflow test_antismashlite { -// input_genome = [ -// [ id:'test' ], // meta map -// file('/home/jasmin/Downloads/BAN001-megahit.gbk', checkIfExists: true) ] - -// // input_antismash_db1 = [ -// // [], -// // file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) -// // ] - -// // input_antismash_db2 = [ -// // [], -// // file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) -// // ] - -// // input_antismash_db3 = [ -// // [], -// // file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) -// // ] - -// input_db = [ -// [], -// file('/home/jasmin/antismash_db/', checkIfExists: true) -// ] - -// input_dir = [ -// [], -// file('/home/jasmin/antismash_dir', checkIfExists: true) -// ] - -// // input_gff = [ -// // [], -// // file('/home/jasmin/Downloads/BAN001.gff', checkIfExists: true) -// // ] - -// // UNTAR1 ( input_antismash_db1 ) -// // UNTAR2 ( input_antismash_db2 ) -// // UNTAR3 ( input_antismash_db3 ) -// // ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) -// ANTISMASH_ANTISMASHLITE ( input_genome, input_db, input_dir ) -// } From c8d3de2ad965bfd8e165f6f6d91249eea3436854 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Wed, 11 May 2022 16:17:30 +0200 Subject: [PATCH 552/592] restore samtools cmd to defaults --- modules/bowtie2/align/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index 9fd19469..38242fcb 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -36,7 +36,7 @@ process BOWTIE2_ALIGN { reads_args = "-1 ${reads[0]} -2 ${reads[1]}" } - def samtools_command = "samtools view -@ $task.cpus --fast --with-header ${args2} > ${prefix}.bam" + def samtools_command = "samtools view -@ $task.cpus --bam --with-header ${args2} > ${prefix}.bam" """ From 64ff23f3c1d26e22742e13e93da29b52a82da8d2 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Sun, 8 May 2022 15:44:13 +0200 Subject: [PATCH 553/592] feat: add module that verifies NCBI settings --- modules/sratools/ncbisettings/main.nf | 20 ++++++++ modules/sratools/ncbisettings/meta.yml | 28 +++++++++++ .../templates/detect_ncbi_settings.sh | 39 ++++++++++++++++ tests/config/pytest_modules.yml | 4 ++ tests/modules/sratools/ncbisettings/main.nf | 46 +++++++++++++++++++ .../sratools/ncbisettings/nextflow.config | 17 +++++++ tests/modules/sratools/ncbisettings/test.yml | 44 ++++++++++++++++++ 7 files changed, 198 insertions(+) create mode 100644 modules/sratools/ncbisettings/main.nf create mode 100644 modules/sratools/ncbisettings/meta.yml create mode 100644 modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh create mode 100644 tests/modules/sratools/ncbisettings/main.nf create mode 100644 tests/modules/sratools/ncbisettings/nextflow.config create mode 100644 tests/modules/sratools/ncbisettings/test.yml diff --git a/modules/sratools/ncbisettings/main.nf b/modules/sratools/ncbisettings/main.nf new file mode 100644 index 00000000..9d905f8b --- /dev/null +++ b/modules/sratools/ncbisettings/main.nf @@ -0,0 +1,20 @@ +process SRATOOLS_NCBISETTINGS { + tag 'ncbi-settings' + label 'process_low' + + conda (params.enable_conda ? 'bioconda::sra-tools=2.11.0' : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/sra-tools:2.11.0--pl5321ha49a11a_3' : + 'quay.io/biocontainers/sra-tools:2.11.0--pl5321ha49a11a_3' }" + + output: + path('user-settings.mkfg'), optional: true, emit: ncbi_settings + path 'versions.yml' , emit: versions + + when: + task.ext.when == null || task.ext.when + + shell: + config = "/LIBS/GUID = \"${UUID.randomUUID().toString()}\"\\n/libs/cloud/report_instance_identity = \"true\"\\n" + template 'detect_ncbi_settings.sh' +} diff --git a/modules/sratools/ncbisettings/meta.yml b/modules/sratools/ncbisettings/meta.yml new file mode 100644 index 00000000..29bcfe34 --- /dev/null +++ b/modules/sratools/ncbisettings/meta.yml @@ -0,0 +1,28 @@ +name: "sratools_ncbisettings" +description: Test for the presence of suitable NCBI settings or create them on the fly. +keywords: + - NCBI + - settings + - sra-tools + - prefetch + - fasterq-dump +tools: + - "sratools": + description: "SRA Toolkit and SDK from NCBI" + homepage: https://github.com/ncbi/sra-tools + documentation: https://github.com/ncbi/sra-tools/wiki + tool_dev_url: https://github.com/ncbi/sra-tools + licence: "['Public Domain']" + +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - ncbi_settings: + type: file + description: An optional, minimal NCBI settings file. + pattern: "user-settings.mkfg" + +authors: + - "@Midnighter" diff --git a/modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh b/modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh new file mode 100644 index 00000000..b1b51c1f --- /dev/null +++ b/modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +set -u + + +# Get the expected NCBI settings path and define the environment variable +# `NCBI_SETTINGS`. +eval "$(vdb-config -o n NCBI_SETTINGS | sed 's/[" ]//g')" + +# If the user settings do not exist yet, create a file suitable for `prefetch` +# and `fasterq-dump`. If an existing settings file does not contain the required +# values, error out with a helpful message. +if [[ ! -f "${NCBI_SETTINGS}" ]]; then + printf '!{config}' > 'user-settings.mkfg' +else + prefetch --help &> /dev/null + if [[ $? = 78 ]]; then + echo "You have an existing vdb-config at '${NCBI_SETTINGS}' but it is"\ + "missing the required entries for /LIBS/GUID and"\ + "/libs/cloud/report_instance_identity."\ + "Feel free to add the following to your settings file:" >&2 + echo "$(printf '!{config}')" >&2 + exit 1 + fi + fasterq-dump --help &> /dev/null + if [[ $? = 78 ]]; then + echo "You have an existing vdb-config at '${NCBI_SETTINGS}' but it is"\ + "missing the required entries for /LIBS/GUID and"\ + "/libs/cloud/report_instance_identity."\ + "Feel free to add the following to your settings file:" >&2 + echo "$(printf '!{config}')" >&2 + exit 1 + fi +fi + +cat <<-END_VERSIONS > versions.yml +"!{task.process}": + sratools: $(vdb-config --version 2>&1 | grep -Eo '[0-9.]+') +END_VERSIONS diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 9afe83fd..4a922a4d 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -1819,6 +1819,10 @@ sratools/fasterqdump: - modules/sratools/fasterqdump/** - tests/modules/sratools/fasterqdump/** +sratools/ncbisettings: + - modules/sratools/ncbisettings/** + - tests/modules/sratools/ncbisettings/** + sratools/prefetch: - modules/sratools/prefetch/** - tests/modules/sratools/prefetch/** diff --git a/tests/modules/sratools/ncbisettings/main.nf b/tests/modules/sratools/ncbisettings/main.nf new file mode 100644 index 00000000..08968bb9 --- /dev/null +++ b/tests/modules/sratools/ncbisettings/main.nf @@ -0,0 +1,46 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SRATOOLS_NCBISETTINGS } from '../../../../modules/sratools/ncbisettings/main.nf' + +workflow test_sratools_ncbisettings_with_good_existing { + + file(params.settings_path).mkdirs() + def settings = file(params.settings_file) + settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" + + SRATOOLS_NCBISETTINGS() +} + +workflow test_sratools_ncbisettings_with_bad_existing { + + file(params.settings_path).mkdirs() + def settings = file(params.settings_file) + settings.text = ''' + ## auto-generated configuration file - DO NOT EDIT ## + + config/default = "false" + /repository/remote/main/CGI/resolver-cgi = "https://trace.ncbi.nlm.nih.gov/Traces/names/names.fcgi" + /repository/remote/protected/CGI/resolver-cgi = "https://trace.ncbi.nlm.nih.gov/Traces/names/names.fcgi" + /repository/user/ad/public/apps/file/volumes/flatAd = "." + /repository/user/ad/public/apps/refseq/volumes/refseqAd = "." + /repository/user/ad/public/apps/sra/volumes/sraAd = "." + /repository/user/ad/public/apps/sraPileup/volumes/ad = "." + /repository/user/ad/public/apps/sraRealign/volumes/ad = "." + /repository/user/ad/public/apps/wgs/volumes/wgsAd = "." + /repository/user/ad/public/root = "." + /repository/user/default-path = "/root/ncbi" + '''.stripIndent() + + SRATOOLS_NCBISETTINGS() +} + +workflow test_sratools_ncbisettings_with_nonexisting { + + file(params.settings_path).mkdirs() + def settings = file(params.settings_file) + settings.delete() + + SRATOOLS_NCBISETTINGS() +} diff --git a/tests/modules/sratools/ncbisettings/nextflow.config b/tests/modules/sratools/ncbisettings/nextflow.config new file mode 100644 index 00000000..823082c0 --- /dev/null +++ b/tests/modules/sratools/ncbisettings/nextflow.config @@ -0,0 +1,17 @@ +params.settings_path = '/tmp/.ncbi' +params.settings_file = "${params.settings_path}/user-settings.mkfg" + +env.NCBI_SETTINGS = params.settings_file + +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: SRATOOLS_NCBISETTINGS { + containerOptions = { + (workflow.containerEngine == 'singularity') ? + "-B ${params.settings_path}:${params.settings_path}" : + "-v ${params.settings_path}:${params.settings_path}" + } + } +} diff --git a/tests/modules/sratools/ncbisettings/test.yml b/tests/modules/sratools/ncbisettings/test.yml new file mode 100644 index 00000000..07c45dc7 --- /dev/null +++ b/tests/modules/sratools/ncbisettings/test.yml @@ -0,0 +1,44 @@ +- name: "sratools ncbisettings test_sratools_ncbisettings_with_good_existing" + command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_good_existing -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow.config + tags: + - "sratools" + - "sratools/ncbisettings" + files: + - path: "output/sratools/user-settings.mkfg" + should_exist: false + - path: output/sratools/versions.yml + contains: + - "sratools: 2.11.0" + +- name: "sratools ncbisettings test_sratools_ncbisettings_with_bad_existing" + command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_bad_existing -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow.config + tags: + - "sratools" + - "sratools/ncbisettings" + exit_code: 1 + stdout: + contains: + - "Command error:" + - "missing the required entries" + - "/LIBS/GUID" + - "/libs/cloud/report_instance_identity" + - "Feel free to add the following" + files: + - path: "output/sratools/user-settings.mkfg" + should_exist: false + - path: output/sratools/versions.yml + should_exist: false + +- name: "sratools ncbisettings test_sratools_ncbisettings_with_nonexisting" + command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_nonexisting -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow.config + tags: + - "sratools" + - "sratools/ncbisettings" + files: + - path: "output/sratools/user-settings.mkfg" + contains: + - "/LIBS/GUID" + - "/libs/cloud/report_instance_identity" + - path: output/sratools/versions.yml + contains: + - "sratools: 2.11.0" From e4551a9ab3bf4317a485ddfe0cd867b1a9baabb0 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 11 May 2022 14:07:18 +0200 Subject: [PATCH 554/592] refactor: always output settings --- modules/sratools/ncbisettings/main.nf | 4 ++-- modules/sratools/ncbisettings/meta.yml | 4 ++-- .../templates/detect_ncbi_settings.sh | 6 ++++++ tests/modules/sratools/ncbisettings/main.nf | 5 ----- .../sratools/ncbisettings/nextflow.config | 12 ------------ .../sratools/ncbisettings/nextflow_mount.config | 17 +++++++++++++++++ tests/modules/sratools/ncbisettings/test.yml | 6 +++--- 7 files changed, 30 insertions(+), 24 deletions(-) create mode 100644 tests/modules/sratools/ncbisettings/nextflow_mount.config diff --git a/modules/sratools/ncbisettings/main.nf b/modules/sratools/ncbisettings/main.nf index 9d905f8b..f3015c74 100644 --- a/modules/sratools/ncbisettings/main.nf +++ b/modules/sratools/ncbisettings/main.nf @@ -8,8 +8,8 @@ process SRATOOLS_NCBISETTINGS { 'quay.io/biocontainers/sra-tools:2.11.0--pl5321ha49a11a_3' }" output: - path('user-settings.mkfg'), optional: true, emit: ncbi_settings - path 'versions.yml' , emit: versions + path('*.mkfg') , emit: ncbi_settings + path 'versions.yml', emit: versions when: task.ext.when == null || task.ext.when diff --git a/modules/sratools/ncbisettings/meta.yml b/modules/sratools/ncbisettings/meta.yml index 29bcfe34..6043ece4 100644 --- a/modules/sratools/ncbisettings/meta.yml +++ b/modules/sratools/ncbisettings/meta.yml @@ -21,8 +21,8 @@ output: pattern: "versions.yml" - ncbi_settings: type: file - description: An optional, minimal NCBI settings file. - pattern: "user-settings.mkfg" + description: An NCBI user settings file. + pattern: "*.mkfg" authors: - "@Midnighter" diff --git a/modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh b/modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh index b1b51c1f..cfe3a324 100644 --- a/modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh +++ b/modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh @@ -31,6 +31,12 @@ else echo "$(printf '!{config}')" >&2 exit 1 fi + if [[ "${NCBI_SETTINGS}" != *.mkfg ]]; then + echo "The detected settings '${NCBI_SETTINGS}' do not have the required"\ + "file extension '.mkfg'." >&2 + exit 1 + fi + cp "${NCBI_SETTINGS}" ./ fi cat <<-END_VERSIONS > versions.yml diff --git a/tests/modules/sratools/ncbisettings/main.nf b/tests/modules/sratools/ncbisettings/main.nf index 08968bb9..e52c993e 100644 --- a/tests/modules/sratools/ncbisettings/main.nf +++ b/tests/modules/sratools/ncbisettings/main.nf @@ -37,10 +37,5 @@ workflow test_sratools_ncbisettings_with_bad_existing { } workflow test_sratools_ncbisettings_with_nonexisting { - - file(params.settings_path).mkdirs() - def settings = file(params.settings_file) - settings.delete() - SRATOOLS_NCBISETTINGS() } diff --git a/tests/modules/sratools/ncbisettings/nextflow.config b/tests/modules/sratools/ncbisettings/nextflow.config index 823082c0..8730f1c4 100644 --- a/tests/modules/sratools/ncbisettings/nextflow.config +++ b/tests/modules/sratools/ncbisettings/nextflow.config @@ -1,17 +1,5 @@ -params.settings_path = '/tmp/.ncbi' -params.settings_file = "${params.settings_path}/user-settings.mkfg" - -env.NCBI_SETTINGS = params.settings_file - process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: SRATOOLS_NCBISETTINGS { - containerOptions = { - (workflow.containerEngine == 'singularity') ? - "-B ${params.settings_path}:${params.settings_path}" : - "-v ${params.settings_path}:${params.settings_path}" - } - } } diff --git a/tests/modules/sratools/ncbisettings/nextflow_mount.config b/tests/modules/sratools/ncbisettings/nextflow_mount.config new file mode 100644 index 00000000..823082c0 --- /dev/null +++ b/tests/modules/sratools/ncbisettings/nextflow_mount.config @@ -0,0 +1,17 @@ +params.settings_path = '/tmp/.ncbi' +params.settings_file = "${params.settings_path}/user-settings.mkfg" + +env.NCBI_SETTINGS = params.settings_file + +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + withName: SRATOOLS_NCBISETTINGS { + containerOptions = { + (workflow.containerEngine == 'singularity') ? + "-B ${params.settings_path}:${params.settings_path}" : + "-v ${params.settings_path}:${params.settings_path}" + } + } +} diff --git a/tests/modules/sratools/ncbisettings/test.yml b/tests/modules/sratools/ncbisettings/test.yml index 07c45dc7..891ebb58 100644 --- a/tests/modules/sratools/ncbisettings/test.yml +++ b/tests/modules/sratools/ncbisettings/test.yml @@ -1,17 +1,17 @@ - name: "sratools ncbisettings test_sratools_ncbisettings_with_good_existing" - command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_good_existing -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow.config + command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_good_existing -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow_mount.config tags: - "sratools" - "sratools/ncbisettings" files: - path: "output/sratools/user-settings.mkfg" - should_exist: false + md5sum: 955e27aff2c277c2f1f0943a098888c1 - path: output/sratools/versions.yml contains: - "sratools: 2.11.0" - name: "sratools ncbisettings test_sratools_ncbisettings_with_bad_existing" - command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_bad_existing -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow.config + command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_bad_existing -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow_mount.config tags: - "sratools" - "sratools/ncbisettings" From a83dd33a7ef63a362786c3943bb02d3cc43eb8d3 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 11 May 2022 14:13:50 +0200 Subject: [PATCH 555/592] tests: use remove settings file --- tests/modules/sratools/ncbisettings/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/modules/sratools/ncbisettings/main.nf b/tests/modules/sratools/ncbisettings/main.nf index e52c993e..f4d1fcfd 100644 --- a/tests/modules/sratools/ncbisettings/main.nf +++ b/tests/modules/sratools/ncbisettings/main.nf @@ -7,8 +7,8 @@ include { SRATOOLS_NCBISETTINGS } from '../../../../modules/sratools/ncbisetting workflow test_sratools_ncbisettings_with_good_existing { file(params.settings_path).mkdirs() - def settings = file(params.settings_file) - settings.text = "/LIBS/GUID = \"5b0d4b7d-88c7-4802-98fd-e3afd06feb32\"\n/libs/cloud/report_instance_identity = \"true\"\n" + def settings = file(params.test_data['generic']['config']['ncbi_user_settings'], checkIfExists: true) + settings.copyTo(params.settings_file) SRATOOLS_NCBISETTINGS() } From 23091aabdaa8815ed86e57e7aa40dd4a44593745 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 11 May 2022 17:07:59 +0200 Subject: [PATCH 556/592] refactor: move files to custom section --- modules/{sratools => custom}/ncbisettings/main.nf | 0 modules/{sratools => custom}/ncbisettings/meta.yml | 0 .../ncbisettings/templates/detect_ncbi_settings.sh | 0 tests/modules/{sratools => custom}/ncbisettings/main.nf | 0 tests/modules/{sratools => custom}/ncbisettings/nextflow.config | 0 .../{sratools => custom}/ncbisettings/nextflow_mount.config | 0 tests/modules/{sratools => custom}/ncbisettings/test.yml | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename modules/{sratools => custom}/ncbisettings/main.nf (100%) rename modules/{sratools => custom}/ncbisettings/meta.yml (100%) rename modules/{sratools => custom}/ncbisettings/templates/detect_ncbi_settings.sh (100%) rename tests/modules/{sratools => custom}/ncbisettings/main.nf (100%) rename tests/modules/{sratools => custom}/ncbisettings/nextflow.config (100%) rename tests/modules/{sratools => custom}/ncbisettings/nextflow_mount.config (100%) rename tests/modules/{sratools => custom}/ncbisettings/test.yml (100%) diff --git a/modules/sratools/ncbisettings/main.nf b/modules/custom/ncbisettings/main.nf similarity index 100% rename from modules/sratools/ncbisettings/main.nf rename to modules/custom/ncbisettings/main.nf diff --git a/modules/sratools/ncbisettings/meta.yml b/modules/custom/ncbisettings/meta.yml similarity index 100% rename from modules/sratools/ncbisettings/meta.yml rename to modules/custom/ncbisettings/meta.yml diff --git a/modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh b/modules/custom/ncbisettings/templates/detect_ncbi_settings.sh similarity index 100% rename from modules/sratools/ncbisettings/templates/detect_ncbi_settings.sh rename to modules/custom/ncbisettings/templates/detect_ncbi_settings.sh diff --git a/tests/modules/sratools/ncbisettings/main.nf b/tests/modules/custom/ncbisettings/main.nf similarity index 100% rename from tests/modules/sratools/ncbisettings/main.nf rename to tests/modules/custom/ncbisettings/main.nf diff --git a/tests/modules/sratools/ncbisettings/nextflow.config b/tests/modules/custom/ncbisettings/nextflow.config similarity index 100% rename from tests/modules/sratools/ncbisettings/nextflow.config rename to tests/modules/custom/ncbisettings/nextflow.config diff --git a/tests/modules/sratools/ncbisettings/nextflow_mount.config b/tests/modules/custom/ncbisettings/nextflow_mount.config similarity index 100% rename from tests/modules/sratools/ncbisettings/nextflow_mount.config rename to tests/modules/custom/ncbisettings/nextflow_mount.config diff --git a/tests/modules/sratools/ncbisettings/test.yml b/tests/modules/custom/ncbisettings/test.yml similarity index 100% rename from tests/modules/sratools/ncbisettings/test.yml rename to tests/modules/custom/ncbisettings/test.yml From b2dbaa99309a2057efc32ef9d029ed91140068df Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 11 May 2022 17:32:50 +0200 Subject: [PATCH 557/592] refactor: rename module --- .../main.nf | 2 +- .../meta.yml | 2 +- .../templates/detect_ncbi_settings.sh | 0 tests/config/pytest_modules.yml | 8 ++-- tests/modules/custom/ncbisettings/test.yml | 44 ------------------- .../main.nf | 14 +++--- .../nextflow.config | 0 .../nextflow_mount.config | 2 +- .../custom/sratoolsncbisettings/test.yml | 44 +++++++++++++++++++ 9 files changed, 58 insertions(+), 58 deletions(-) rename modules/custom/{ncbisettings => sratoolsncbisettings}/main.nf (94%) rename modules/custom/{ncbisettings => sratoolsncbisettings}/meta.yml (95%) rename modules/custom/{ncbisettings => sratoolsncbisettings}/templates/detect_ncbi_settings.sh (100%) delete mode 100644 tests/modules/custom/ncbisettings/test.yml rename tests/modules/custom/{ncbisettings => sratoolsncbisettings}/main.nf (75%) rename tests/modules/custom/{ncbisettings => sratoolsncbisettings}/nextflow.config (100%) rename tests/modules/custom/{ncbisettings => sratoolsncbisettings}/nextflow_mount.config (91%) create mode 100644 tests/modules/custom/sratoolsncbisettings/test.yml diff --git a/modules/custom/ncbisettings/main.nf b/modules/custom/sratoolsncbisettings/main.nf similarity index 94% rename from modules/custom/ncbisettings/main.nf rename to modules/custom/sratoolsncbisettings/main.nf index f3015c74..21bf3005 100644 --- a/modules/custom/ncbisettings/main.nf +++ b/modules/custom/sratoolsncbisettings/main.nf @@ -1,4 +1,4 @@ -process SRATOOLS_NCBISETTINGS { +process CUSTOM_SRATOOLSNCBISETTINGS { tag 'ncbi-settings' label 'process_low' diff --git a/modules/custom/ncbisettings/meta.yml b/modules/custom/sratoolsncbisettings/meta.yml similarity index 95% rename from modules/custom/ncbisettings/meta.yml rename to modules/custom/sratoolsncbisettings/meta.yml index 6043ece4..01e98856 100644 --- a/modules/custom/ncbisettings/meta.yml +++ b/modules/custom/sratoolsncbisettings/meta.yml @@ -1,4 +1,4 @@ -name: "sratools_ncbisettings" +name: "sratoolsncbisettings" description: Test for the presence of suitable NCBI settings or create them on the fly. keywords: - NCBI diff --git a/modules/custom/ncbisettings/templates/detect_ncbi_settings.sh b/modules/custom/sratoolsncbisettings/templates/detect_ncbi_settings.sh similarity index 100% rename from modules/custom/ncbisettings/templates/detect_ncbi_settings.sh rename to modules/custom/sratoolsncbisettings/templates/detect_ncbi_settings.sh diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 4a922a4d..428c3652 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -495,6 +495,10 @@ custom/getchromsizes: - modules/custom/getchromsizes/** - tests/modules/custom/getchromsizes/** +custom/sratoolsncbisettings: + - modules/custom/sratoolsncbisettings/** + - tests/modules/custom/sratoolsncbisettings/** + cutadapt: - modules/cutadapt/** - tests/modules/cutadapt/** @@ -1819,10 +1823,6 @@ sratools/fasterqdump: - modules/sratools/fasterqdump/** - tests/modules/sratools/fasterqdump/** -sratools/ncbisettings: - - modules/sratools/ncbisettings/** - - tests/modules/sratools/ncbisettings/** - sratools/prefetch: - modules/sratools/prefetch/** - tests/modules/sratools/prefetch/** diff --git a/tests/modules/custom/ncbisettings/test.yml b/tests/modules/custom/ncbisettings/test.yml deleted file mode 100644 index 891ebb58..00000000 --- a/tests/modules/custom/ncbisettings/test.yml +++ /dev/null @@ -1,44 +0,0 @@ -- name: "sratools ncbisettings test_sratools_ncbisettings_with_good_existing" - command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_good_existing -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow_mount.config - tags: - - "sratools" - - "sratools/ncbisettings" - files: - - path: "output/sratools/user-settings.mkfg" - md5sum: 955e27aff2c277c2f1f0943a098888c1 - - path: output/sratools/versions.yml - contains: - - "sratools: 2.11.0" - -- name: "sratools ncbisettings test_sratools_ncbisettings_with_bad_existing" - command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_bad_existing -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow_mount.config - tags: - - "sratools" - - "sratools/ncbisettings" - exit_code: 1 - stdout: - contains: - - "Command error:" - - "missing the required entries" - - "/LIBS/GUID" - - "/libs/cloud/report_instance_identity" - - "Feel free to add the following" - files: - - path: "output/sratools/user-settings.mkfg" - should_exist: false - - path: output/sratools/versions.yml - should_exist: false - -- name: "sratools ncbisettings test_sratools_ncbisettings_with_nonexisting" - command: nextflow run ./tests/modules/sratools/ncbisettings -entry test_sratools_ncbisettings_with_nonexisting -c ./tests/config/nextflow.config -c ./tests/modules/sratools/ncbisettings/nextflow.config - tags: - - "sratools" - - "sratools/ncbisettings" - files: - - path: "output/sratools/user-settings.mkfg" - contains: - - "/LIBS/GUID" - - "/libs/cloud/report_instance_identity" - - path: output/sratools/versions.yml - contains: - - "sratools: 2.11.0" diff --git a/tests/modules/custom/ncbisettings/main.nf b/tests/modules/custom/sratoolsncbisettings/main.nf similarity index 75% rename from tests/modules/custom/ncbisettings/main.nf rename to tests/modules/custom/sratoolsncbisettings/main.nf index f4d1fcfd..be316a39 100644 --- a/tests/modules/custom/ncbisettings/main.nf +++ b/tests/modules/custom/sratoolsncbisettings/main.nf @@ -2,18 +2,18 @@ nextflow.enable.dsl = 2 -include { SRATOOLS_NCBISETTINGS } from '../../../../modules/sratools/ncbisettings/main.nf' +include { CUSTOM_SRATOOLSNCBISETTINGS } from '../../../../modules/custom/sratoolsncbisettings/main.nf' -workflow test_sratools_ncbisettings_with_good_existing { +workflow test_sratoolsncbisettings_with_good_existing { file(params.settings_path).mkdirs() def settings = file(params.test_data['generic']['config']['ncbi_user_settings'], checkIfExists: true) settings.copyTo(params.settings_file) - SRATOOLS_NCBISETTINGS() + CUSTOM_SRATOOLSNCBISETTINGS() } -workflow test_sratools_ncbisettings_with_bad_existing { +workflow test_sratoolsncbisettings_with_bad_existing { file(params.settings_path).mkdirs() def settings = file(params.settings_file) @@ -33,9 +33,9 @@ workflow test_sratools_ncbisettings_with_bad_existing { /repository/user/default-path = "/root/ncbi" '''.stripIndent() - SRATOOLS_NCBISETTINGS() + CUSTOM_SRATOOLSNCBISETTINGS() } -workflow test_sratools_ncbisettings_with_nonexisting { - SRATOOLS_NCBISETTINGS() +workflow test_sratoolsncbisettings_with_nonexisting { + CUSTOM_SRATOOLSNCBISETTINGS() } diff --git a/tests/modules/custom/ncbisettings/nextflow.config b/tests/modules/custom/sratoolsncbisettings/nextflow.config similarity index 100% rename from tests/modules/custom/ncbisettings/nextflow.config rename to tests/modules/custom/sratoolsncbisettings/nextflow.config diff --git a/tests/modules/custom/ncbisettings/nextflow_mount.config b/tests/modules/custom/sratoolsncbisettings/nextflow_mount.config similarity index 91% rename from tests/modules/custom/ncbisettings/nextflow_mount.config rename to tests/modules/custom/sratoolsncbisettings/nextflow_mount.config index 823082c0..853844c5 100644 --- a/tests/modules/custom/ncbisettings/nextflow_mount.config +++ b/tests/modules/custom/sratoolsncbisettings/nextflow_mount.config @@ -7,7 +7,7 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - withName: SRATOOLS_NCBISETTINGS { + withName: CUSTOM_SRATOOLSNCBISETTINGS { containerOptions = { (workflow.containerEngine == 'singularity') ? "-B ${params.settings_path}:${params.settings_path}" : diff --git a/tests/modules/custom/sratoolsncbisettings/test.yml b/tests/modules/custom/sratoolsncbisettings/test.yml new file mode 100644 index 00000000..df3cd936 --- /dev/null +++ b/tests/modules/custom/sratoolsncbisettings/test.yml @@ -0,0 +1,44 @@ +- name: "custom sratoolsncbisettings test_sratoolsncbisettings_with_good_existing" + command: nextflow run ./tests/modules/custom/sratoolsncbisettings -entry test_sratoolsncbisettings_with_good_existing -c ./tests/config/nextflow.config -c ./tests/modules/custom/sratoolsncbisettings/nextflow_mount.config + tags: + - "custom" + - "custom/sratoolsncbisettings" + files: + - path: "output/custom/user-settings.mkfg" + md5sum: 955e27aff2c277c2f1f0943a098888c1 + - path: output/custom/versions.yml + contains: + - "sratools: 2.11.0" + +- name: "custom sratoolsncbisettings test_sratoolsncbisettings_with_bad_existing" + command: nextflow run ./tests/modules/custom/sratoolsncbisettings -entry test_sratoolsncbisettings_with_bad_existing -c ./tests/config/nextflow.config -c ./tests/modules/custom/sratoolsncbisettings/nextflow_mount.config + tags: + - "custom" + - "custom/sratoolsncbisettings" + exit_code: 1 + stdout: + contains: + - "Command error:" + - "missing the required entries" + - "/LIBS/GUID" + - "/libs/cloud/report_instance_identity" + - "Feel free to add the following" + files: + - path: "output/custom/user-settings.mkfg" + should_exist: false + - path: output/custom/versions.yml + should_exist: false + +- name: "custom sratoolsncbisettings test_sratoolsncbisettings_with_nonexisting" + command: nextflow run ./tests/modules/custom/sratoolsncbisettings -entry test_sratoolsncbisettings_with_nonexisting -c ./tests/config/nextflow.config -c ./tests/modules/custom/sratoolsncbisettings/nextflow.config + tags: + - "custom" + - "custom/sratoolsncbisettings" + files: + - path: "output/custom/user-settings.mkfg" + contains: + - "/LIBS/GUID" + - "/libs/cloud/report_instance_identity" + - path: output/custom/versions.yml + contains: + - "sratools: 2.11.0" From 888620063bb67a1645b54de1dba022a409f9a44f Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 11 May 2022 17:44:49 +0200 Subject: [PATCH 558/592] tests: delete settings for conda --- tests/modules/custom/sratoolsncbisettings/main.nf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/modules/custom/sratoolsncbisettings/main.nf b/tests/modules/custom/sratoolsncbisettings/main.nf index be316a39..9f49f20e 100644 --- a/tests/modules/custom/sratoolsncbisettings/main.nf +++ b/tests/modules/custom/sratoolsncbisettings/main.nf @@ -37,5 +37,8 @@ workflow test_sratoolsncbisettings_with_bad_existing { } workflow test_sratoolsncbisettings_with_nonexisting { + def settings = file(params.settings_file) + settings.delete() + CUSTOM_SRATOOLSNCBISETTINGS() } From 98d8a741ec574823a799e9c375ec2c62da654cf5 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 11 May 2022 18:17:27 +0200 Subject: [PATCH 559/592] tests: add missing paths to config --- tests/modules/custom/sratoolsncbisettings/nextflow.config | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/modules/custom/sratoolsncbisettings/nextflow.config b/tests/modules/custom/sratoolsncbisettings/nextflow.config index 8730f1c4..a6c70bd3 100644 --- a/tests/modules/custom/sratoolsncbisettings/nextflow.config +++ b/tests/modules/custom/sratoolsncbisettings/nextflow.config @@ -1,3 +1,6 @@ +params.settings_path = '/tmp/.ncbi' +params.settings_file = "${params.settings_path}/user-settings.mkfg" + process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } From 74b11ccc4431caf5bc2daffb52629799927fee86 Mon Sep 17 00:00:00 2001 From: "Moritz E. Beber" Date: Wed, 11 May 2022 19:21:32 +0200 Subject: [PATCH 560/592] refactor: rename and update subworkflow --- subworkflows/nf-core/sra_fastq/main.nf | 34 ----------------- subworkflows/nf-core/srafastq/main.nf | 38 +++++++++++++++++++ .../nf-core/{sra_fastq => srafastq}/meta.yml | 7 +++- .../{sra_fastq => srafastq}/nextflow.config | 0 tests/subworkflows/nf-core/sra_fastq/main.nf | 23 ----------- tests/subworkflows/nf-core/sra_fastq/test.yml | 27 ------------- tests/subworkflows/nf-core/srafastq/main.nf | 29 ++++++++++++++ .../nf-core/srafastq/nextflow.config | 5 +++ tests/subworkflows/nf-core/srafastq/test.yml | 29 ++++++++++++++ 9 files changed, 106 insertions(+), 86 deletions(-) delete mode 100644 subworkflows/nf-core/sra_fastq/main.nf create mode 100644 subworkflows/nf-core/srafastq/main.nf rename subworkflows/nf-core/{sra_fastq => srafastq}/meta.yml (90%) rename subworkflows/nf-core/{sra_fastq => srafastq}/nextflow.config (100%) delete mode 100644 tests/subworkflows/nf-core/sra_fastq/main.nf delete mode 100644 tests/subworkflows/nf-core/sra_fastq/test.yml create mode 100644 tests/subworkflows/nf-core/srafastq/main.nf create mode 100644 tests/subworkflows/nf-core/srafastq/nextflow.config create mode 100644 tests/subworkflows/nf-core/srafastq/test.yml diff --git a/subworkflows/nf-core/sra_fastq/main.nf b/subworkflows/nf-core/sra_fastq/main.nf deleted file mode 100644 index ffa380d9..00000000 --- a/subworkflows/nf-core/sra_fastq/main.nf +++ /dev/null @@ -1,34 +0,0 @@ -// -// Download FASTQ sequencing reads from the NCBI's Sequence Read Archive (SRA). -// - -params.prefetch_options = [:] -params.fasterqdump_options = [:] - -include { SRATOOLS_PREFETCH } from '../../../modules/sratools/prefetch/main' addParams( options: params.prefetch_options ) -include { SRATOOLS_FASTERQDUMP } from '../../../modules/sratools/fasterqdump/main' addParams( options: params.fasterqdump_options ) - -workflow SRA_FASTQ { - take: - sra_ids // channel: [ val(meta), val(id) ] - - main: - - ch_versions = Channel.empty() - - // - // Prefetch sequencing reads in SRA format. - // - SRATOOLS_PREFETCH ( sra_ids ) - ch_versions = ch_versions.mix( SRATOOLS_PREFETCH.out.versions.first() ) - - // - // Convert the SRA format into one or more compressed FASTQ files. - // - SRATOOLS_FASTERQDUMP ( SRATOOLS_PREFETCH.out.sra ) - ch_versions = ch_versions.mix( SRATOOLS_FASTERQDUMP.out.versions.first() ) - - emit: - reads = SRATOOLS_FASTERQDUMP.out.reads // channel: [ val(meta), [ reads ] ] - versions = ch_versions // channel: [ versions.yml ] -} diff --git a/subworkflows/nf-core/srafastq/main.nf b/subworkflows/nf-core/srafastq/main.nf new file mode 100644 index 00000000..26e8105e --- /dev/null +++ b/subworkflows/nf-core/srafastq/main.nf @@ -0,0 +1,38 @@ +include { CUSTOM_SRATOOLSNCBISETTINGS } from '../../../modules/custom/sratoolsncbisettings/main' +include { SRATOOLS_PREFETCH } from '../../../modules/sratools/prefetch/main' +include { SRATOOLS_FASTERQDUMP } from '../../../modules/sratools/fasterqdump/main' + +/** + * Download FASTQ sequencing reads from the NCBI's Sequence Read Archive (SRA). + */ +workflow SRAFASTQ { + take: + sra_ids // channel: [ val(meta), val(id) ] + + main: + + ch_versions = Channel.empty() + + // + // Detect existing NCBI user settings or create new ones. + // + CUSTOM_SRATOOLSNCBISETTINGS() + def settings = CUSTOM_SRATOOLSNCBISETTINGS.out.ncbi_settings + ch_versions = ch_versions.mix( CUSTOM_SRATOOLSNCBISETTINGS.out.versions ) + + // + // Prefetch sequencing reads in SRA format. + // + SRATOOLS_PREFETCH ( sra_ids, settings ) + ch_versions = ch_versions.mix( SRATOOLS_PREFETCH.out.versions.first() ) + + // + // Convert the SRA format into one or more compressed FASTQ files. + // + SRATOOLS_FASTERQDUMP ( SRATOOLS_PREFETCH.out.sra, settings ) + ch_versions = ch_versions.mix( SRATOOLS_FASTERQDUMP.out.versions.first() ) + + emit: + reads = SRATOOLS_FASTERQDUMP.out.reads // channel: [ val(meta), [ reads ] ] + versions = ch_versions // channel: [ versions.yml ] +} diff --git a/subworkflows/nf-core/sra_fastq/meta.yml b/subworkflows/nf-core/srafastq/meta.yml similarity index 90% rename from subworkflows/nf-core/sra_fastq/meta.yml rename to subworkflows/nf-core/srafastq/meta.yml index 5114bce5..873ccaca 100644 --- a/subworkflows/nf-core/sra_fastq/meta.yml +++ b/subworkflows/nf-core/srafastq/meta.yml @@ -1,11 +1,14 @@ name: sra_fastq description: Download FASTQ sequencing reads from the NCBI's Sequence Read Archive (SRA). keywords: + - SRA + - NCBI - sequencing - FASTQ - prefetch - - dump + - fasterq-dump modules: + - custom/sratoolsncbisettings - sratools/prefetch - sratools/fasterqdump input: @@ -17,7 +20,7 @@ input: - id: type: string description: > - SRA identifier. + SRA run identifier. # TODO Update when we decide on a standard for subworkflow docs output: - meta: diff --git a/subworkflows/nf-core/sra_fastq/nextflow.config b/subworkflows/nf-core/srafastq/nextflow.config similarity index 100% rename from subworkflows/nf-core/sra_fastq/nextflow.config rename to subworkflows/nf-core/srafastq/nextflow.config diff --git a/tests/subworkflows/nf-core/sra_fastq/main.nf b/tests/subworkflows/nf-core/sra_fastq/main.nf deleted file mode 100644 index 988758f3..00000000 --- a/tests/subworkflows/nf-core/sra_fastq/main.nf +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env nextflow - -nextflow.enable.dsl = 2 - -include { SRA_FASTQ } from '../../../../subworkflows/nf-core/sra_fastq/main.nf' addParams( [:] ) - -workflow test_sra_fastq_single_end { - input = [ - [ id:'test_single_end', single_end:true ], // meta map - 'SRR13255544' - ] - - SRA_FASTQ ( input ) -} - -workflow test_sra_fastq_paired_end { - input = [ - [ id:'test_paired_end', single_end:false ], // meta map - 'SRR11140744' - ] - - SRA_FASTQ ( input ) -} diff --git a/tests/subworkflows/nf-core/sra_fastq/test.yml b/tests/subworkflows/nf-core/sra_fastq/test.yml deleted file mode 100644 index 4b75431f..00000000 --- a/tests/subworkflows/nf-core/sra_fastq/test.yml +++ /dev/null @@ -1,27 +0,0 @@ -- name: sra fastq single-end - command: nextflow run ./tests/subworkflows/nf-core/sra_fastq -entry test_sra_fastq_single_end -c tests/config/nextflow.config - tags: - - subworkflows - # - subworkflows/sra_fastq - # Modules - # - sratools - # - sratools/prefetch - # - sratools/fasterqdump - files: - - path: output/sratools/SRR13255544.fastq.gz - md5sum: 1054c7b71884acdb5eed8a378f18be82 - -- name: sra fastq paired-end - command: nextflow run ./tests/subworkflows/nf-core/sra_fastq -entry test_sra_fastq_paired_end -c tests/config/nextflow.config - tags: - - subworkflows - # - subworkflows/sra_fastq - # Modules - # - sratools - # - sratools/prefetch - # - sratools/fasterqdump - files: - - path: output/sratools/SRR11140744_1.fastq.gz - md5sum: 193809c784a4ea132ab2a253fa4f55b6 - - path: output/sratools/SRR11140744_2.fastq.gz - md5sum: 3e3b3af3413f50a1685fd7b3f1456d4e diff --git a/tests/subworkflows/nf-core/srafastq/main.nf b/tests/subworkflows/nf-core/srafastq/main.nf new file mode 100644 index 00000000..82c8f29d --- /dev/null +++ b/tests/subworkflows/nf-core/srafastq/main.nf @@ -0,0 +1,29 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { SRAFASTQ } from '../../../../subworkflows/nf-core/srafastq/main.nf' + +workflow test_srafastq_single_end { + input = Channel.of( + [ + [ id:'test_single_end1', single_end:true ], // meta map + 'DRR000774' + ], + [ + [ id:'test_single_end2', single_end:true ], // meta map + 'DRR000775' + ] + ) + + SRAFASTQ ( input ) +} + +workflow test_srafastq_paired_end { + input = [ + [ id:'test_paired_end', single_end:false ], // meta map + 'SRR11140744' + ] + + SRAFASTQ ( input ) +} diff --git a/tests/subworkflows/nf-core/srafastq/nextflow.config b/tests/subworkflows/nf-core/srafastq/nextflow.config new file mode 100644 index 00000000..8730f1c4 --- /dev/null +++ b/tests/subworkflows/nf-core/srafastq/nextflow.config @@ -0,0 +1,5 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + +} diff --git a/tests/subworkflows/nf-core/srafastq/test.yml b/tests/subworkflows/nf-core/srafastq/test.yml new file mode 100644 index 00000000..73424171 --- /dev/null +++ b/tests/subworkflows/nf-core/srafastq/test.yml @@ -0,0 +1,29 @@ +- name: srafastq single-end + command: nextflow run ./tests/subworkflows/nf-core/srafastq -entry test_srafastq_single_end -c tests/config/nextflow.config -c tests/subworkflows/nf-core/srafastq/nextflow.config + tags: + - subworkflows + # - subworkflows/srafastq + # Modules + # - sratools + # - sratools/prefetch + # - sratools/fasterqdump + files: + - path: output/sratools/DRR000774.fastq.gz + md5sum: 19029a1132115b55277a0d79ee089b49 + - path: output/sratools/DRR000775.fastq.gz + md5sum: 59ff24c86ecb260752668c059c2a1eaf + +- name: srafastq paired-end + command: nextflow run ./tests/subworkflows/nf-core/srafastq -entry test_srafastq_paired_end -c tests/config/nextflow.config -c tests/subworkflows/nf-core/srafastq/nextflow.config + tags: + - subworkflows + # - subworkflows/srafastq + # Modules + # - sratools + # - sratools/prefetch + # - sratools/fasterqdump + files: + - path: output/sratools/SRR11140744_1.fastq.gz + md5sum: 193809c784a4ea132ab2a253fa4f55b6 + - path: output/sratools/SRR11140744_2.fastq.gz + md5sum: 3e3b3af3413f50a1685fd7b3f1456d4e From bd4b70439b41e8a4e02dced451ee605fc5d727ee Mon Sep 17 00:00:00 2001 From: jasmezz Date: Thu, 12 May 2022 10:56:48 +0200 Subject: [PATCH 561/592] Streamlined some output channels, formatted tests main.nf --- modules/antismash/antismashlite/main.nf | 4 +--- modules/antismash/antismashlite/meta.yml | 14 +++----------- tests/modules/antismash/antismashlite/main.nf | 3 --- 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/modules/antismash/antismashlite/main.nf b/modules/antismash/antismashlite/main.nf index 6f43c6d7..fb003a30 100644 --- a/modules/antismash/antismashlite/main.nf +++ b/modules/antismash/antismashlite/main.nf @@ -23,9 +23,7 @@ process ANTISMASH_ANTISMASHLITE { output: tuple val(meta), path("${prefix}/clusterblast/*_c*.txt") , optional: true, emit: clusterblast_file - tuple val(meta), path("${prefix}/css/*.css") , emit: css_file - tuple val(meta), path("${prefix}/images") , emit: image_directory - tuple val(meta), path("${prefix}/js/*.js") , emit: javascript + tuple val(meta), path("${prefix}/{css,images,js}") , emit: html_accessory_files tuple val(meta), path("${prefix}/knownclusterblast/region*/ctg*.html") , optional: true, emit: knownclusterblast_html tuple val(meta), path("${prefix}/knownclusterblast/*_c*.txt") , optional: true, emit: knownclusterblast_txt tuple val(meta), path("${prefix}/svg/clusterblast*.svg") , optional: true, emit: svg_files_clusterblast diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml index 91e73709..d054e02a 100644 --- a/modules/antismash/antismashlite/meta.yml +++ b/modules/antismash/antismashlite/meta.yml @@ -67,18 +67,10 @@ output: type: file description: Output of ClusterBlast algorithm pattern: "clusterblast/*_c*.txt" - - css_file: - type: file - description: Style sheet containing the formatting of HTML output - pattern: "css/*.css" - - image_directory: + - html_accessory_files: type: directory - description: image files for web view of antiSMASH results - pattern: "images" - - javascript: - type: file - description: JavaScript files - pattern: "js/*.js" + description: Accessory files for the HTML output + pattern: "{css/,images/,js/}" - knownclusterblast_html: type: file description: Tables with MIBiG hits in HTML format diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index 50627590..0f0439da 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -36,7 +36,6 @@ workflow test_antismashlite { file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) ] - GUNZIP1 ( genome_fna ) GUNZIP2 ( genome_gff ) UNTAR1 ( antismash_db1 ) @@ -44,6 +43,4 @@ workflow test_antismashlite { UNTAR3 ( antismash_db3 ) ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) ANTISMASH_ANTISMASHLITE ( GUNZIP1.out.gunzip, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir, GUNZIP2.out.gunzip.map{ it[1] } ) - // ANTISMASH_ANTISMASHLITE ( GUNZIP1.out.gunzip, input_db, input_dir, GUNZIP2.out.gunzip.map{ it[1] } ) - } From 90c67794bfe33cd82954ca482979d5e8d5d3fc12 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Thu, 12 May 2022 10:01:33 +0100 Subject: [PATCH 562/592] Added extra tests but error with collection --- modules/bowtie2/align/main.nf | 1 - tests/modules/bowtie2/align/main.nf | 29 +++++++++++ tests/modules/bowtie2/align/nextflow.config | 1 + tests/modules/bowtie2/align/test.yml | 56 +++++++++++++++------ 4 files changed, 71 insertions(+), 16 deletions(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index 38242fcb..e4bb4327 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -69,4 +69,3 @@ process BOWTIE2_ALIGN { END_VERSIONS """ } - diff --git a/tests/modules/bowtie2/align/main.nf b/tests/modules/bowtie2/align/main.nf index f91394ff..42e2306a 100644 --- a/tests/modules/bowtie2/align/main.nf +++ b/tests/modules/bowtie2/align/main.nf @@ -30,6 +30,35 @@ workflow test_bowtie2_align_paired_end { fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) save_unaligned = false + BOWTIE2_BUILD ( fasta ) + BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned ) +} + +workflow test_bowtie2_align_single_end_large_index { + input = [ + [ id:'test', single_end:true ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + save_unaligned = false + + BOWTIE2_BUILD ( fasta ) + BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned ) +} + +workflow test_bowtie2_align_paired_end_large_index { + input = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + save_unaligned = false + BOWTIE2_BUILD ( fasta ) BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned ) } \ No newline at end of file diff --git a/tests/modules/bowtie2/align/nextflow.config b/tests/modules/bowtie2/align/nextflow.config index b4640de7..08f7bed0 100644 --- a/tests/modules/bowtie2/align/nextflow.config +++ b/tests/modules/bowtie2/align/nextflow.config @@ -5,6 +5,7 @@ params { process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + } if (params.force_large_index) { diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index ef05d70d..8a33c928 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -1,21 +1,47 @@ - name: bowtie2 align test_bowtie2_align_single_end command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config tags: - - bowtie2/align - bowtie2 + - bowtie2/align files: - - path: output/bowtie2/test.bam - - path: output/bowtie2/test.bowtie2.log - md5sum: 7b8a9e61b7646da1089b041333c41a87 - - path: output/bowtie2/versions.yml + - path: ./output/bowtie2/test.bam + # - path: output/bowtie2/test.bowtie2.log + # md5sum: 7b8a9e61b7646da1089b041333c41a87 + # - path: output/bowtie2/versions.yml + # md5sum: 24621c58884fe90c2255ccd1fe4352ae -- name: bowtie2 align test_bowtie2_align_paired_end - command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config - tags: - - bowtie2/align - - bowtie2 - files: - - path: output/bowtie2/test.bam - - path: output/bowtie2/test.bowtie2.log - md5sum: bd89ce1b28c93bf822bae391ffcedd19 - - path: output/bowtie2/versions.yml +# - name: bowtie2 align test_bowtie2_align_paired_end +# command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config +# tags: +# - bowtie2 +# - bowtie2/align +# files: +# - path: output/bowtie2/test.bam +# - path: output/bowtie2/test.bowtie2.log +# md5sum: bd89ce1b28c93bf822bae391ffcedd19 +# - path: output/bowtie2/versions.yml +# md5sum: f9712ca6d75393ad5c1781a2dcf82d32 + +# - name: bowtie2 align test_bowtie2_align_single_end_large_index +# command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_single_end_large_index -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config --force_large_index +# tags: +# - bowtie2 +# - bowtie2/align +# files: +# - path: output/bowtie2/test.bam +# - path: output/bowtie2/test.bowtie2.log +# md5sum: 7b8a9e61b7646da1089b041333c41a87 +# - path: output/bowtie2/versions.yml +# md5sum: bf0537964a85ce9461ae1b0e2f260211 + +# - name: bowtie2 align test_bowtie2_align_paired_end_large_index +# command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end_large_index -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config --force_large_index +# tags: +# - bowtie2 +# - bowtie2/align +# files: +# - path: output/bowtie2/test.bam +# - path: output/bowtie2/test.bowtie2.log +# md5sum: bd89ce1b28c93bf822bae391ffcedd19 +# - path: output/bowtie2/versions.yml +# md5sum: c0a88953500eaf46de7ff378a7de4a37 From 37cc6f250b8b471af40c56d22efb39bfbb65e0ed Mon Sep 17 00:00:00 2001 From: jasmezz Date: Thu, 12 May 2022 12:14:19 +0200 Subject: [PATCH 563/592] Fixed test.yml --- tests/modules/antismash/antismashlite/test.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/tests/modules/antismash/antismashlite/test.yml b/tests/modules/antismash/antismashlite/test.yml index 6822152d..aa04c514 100644 --- a/tests/modules/antismash/antismashlite/test.yml +++ b/tests/modules/antismash/antismashlite/test.yml @@ -14,7 +14,7 @@ contains: ['/tool="antismash"'] - path: output/antismash/test/genome.json contains: - ['{"version": "6.0.1", "input_file": "genome.fna.gz", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] + ['{"version": "6.0.1", "input_file": "genome.fna", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] - path: output/antismash/test/genome.zip - path: output/antismash/test/index.html md5sum: de787e865c3a1eec143a19d2facb4de4 @@ -32,15 +32,5 @@ md5sum: 759431a43da33e2ef8e2d0ebd79a439b - path: output/gunzip1/genome.fna md5sum: dafd38f5454b54fbea38245d773062a5 - - path: output/gunzip1/versions.yml - md5sum: 854e3d45d43d2bc3bedf4bd6586e3e1f - path: output/gunzip2/genome.gff md5sum: 9b9c848b1946d43fa68128f4d6316052 - - path: output/gunzip2/versions.yml - md5sum: 67bdab99aaaf1edfc0869bd2e6808036 - - path: output/untar1/versions.yml - md5sum: 1e4721017721c45370996318e6b807e5 - - path: output/untar2/versions.yml - md5sum: a6ae4977a432f3c5ef26687cec8622de - - path: output/untar3/versions.yml - md5sum: a5ee00c1c426ed601ff654891ba0f645 From d2ef4763215dd8bd9f34761871a49d0800a7a6e9 Mon Sep 17 00:00:00 2001 From: jasmezz Date: Thu, 12 May 2022 12:19:50 +0200 Subject: [PATCH 564/592] Fix Prettier linting error --- tests/modules/antismash/antismashlite/test.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/modules/antismash/antismashlite/test.yml b/tests/modules/antismash/antismashlite/test.yml index aa04c514..4642319c 100644 --- a/tests/modules/antismash/antismashlite/test.yml +++ b/tests/modules/antismash/antismashlite/test.yml @@ -13,8 +13,7 @@ - path: output/antismash/test/genome.gbk contains: ['/tool="antismash"'] - path: output/antismash/test/genome.json - contains: - ['{"version": "6.0.1", "input_file": "genome.fna", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] + contains: ['{"version": "6.0.1", "input_file": "genome.fna", "records": [{"id": "NZ_CP069563.1", "seq": {"data":'] - path: output/antismash/test/genome.zip - path: output/antismash/test/index.html md5sum: de787e865c3a1eec143a19d2facb4de4 From 85b3c2bcf28efef4de8ae8d5244cccafccd77548 Mon Sep 17 00:00:00 2001 From: Jasmin F <73216762+jasmezz@users.noreply.github.com> Date: Thu, 12 May 2022 15:28:19 +0200 Subject: [PATCH 565/592] Apply suggestions from code review Co-authored-by: James A. Fellows Yates --- modules/antismash/antismashlite/meta.yml | 12 ++++++------ tests/modules/antismash/antismashlite/main.nf | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/modules/antismash/antismashlite/meta.yml b/modules/antismash/antismashlite/meta.yml index d054e02a..b3e8564e 100644 --- a/modules/antismash/antismashlite/meta.yml +++ b/modules/antismash/antismashlite/meta.yml @@ -48,10 +48,10 @@ input: be done in immutable docker/singularity containers. Therefore, a local installation directory needs to be mounted (including all modified files from the downloading step) to the container as a workaround. - pattern: "*" + pattern: "*/" - gff: - type: file - pattern: "*.gff" + type: file + pattern: "*.gff" output: - meta: @@ -89,11 +89,11 @@ output: pattern: "svg/knownclusterblast*.svg" - gbk_input: type: file - description: Nucleotide sequence + annotations in GenBank format; converted from input file + description: Nucleotide sequence and annotations in GenBank format; converted from input file pattern: "*.gbk" - json_results: type: file - description: Nucleotide sequence + annotations in JSON format; converted from GenBank file (gbk_input) + description: Nucleotide sequence and annotations in JSON format; converted from GenBank file (gbk_input) pattern: "*.json" - log: type: file @@ -105,7 +105,7 @@ output: pattern: "*.zip" - gbk_results: type: file - description: Nucleotide sequence + annotations in GenBank format; one file per antiSMASH hit + description: Nucleotide sequence and annotations in GenBank format; one file per antiSMASH hit pattern: "*region*.gbk" - clusterblastoutput: type: file diff --git a/tests/modules/antismash/antismashlite/main.nf b/tests/modules/antismash/antismashlite/main.nf index 0f0439da..2b23c400 100644 --- a/tests/modules/antismash/antismashlite/main.nf +++ b/tests/modules/antismash/antismashlite/main.nf @@ -2,7 +2,7 @@ nextflow.enable.dsl = 2 -include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' +include { ANTISMASH_ANTISMASHLITE } from '../../../../modules/antismash/antismashlite/main.nf' include { ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES } from '../../../modules/antismash/antismashlitedownloaddatabases/main.nf' include { GUNZIP as GUNZIP1 } from '../../../../modules/gunzip/main.nf' include { GUNZIP as GUNZIP2 } from '../../../../modules/gunzip/main.nf' @@ -21,26 +21,26 @@ workflow test_antismashlite { file(params.test_data['bacteroides_fragilis']['genome']['genome_gff_gz'], checkIfExists: true) ] - antismash_db1 = [ + antismash_css = [ [], file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/css.tar.gz', checkIfExists: true) ] - antismash_db2 = [ + antismash_detection = [ [], file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/detection.tar.gz', checkIfExists: true) ] - antismash_db3 = [ + antismash_modules = [ [], file('https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/antismash/modules.tar.gz', checkIfExists: true) ] GUNZIP1 ( genome_fna ) GUNZIP2 ( genome_gff ) - UNTAR1 ( antismash_db1 ) - UNTAR2 ( antismash_db2 ) - UNTAR3 ( antismash_db3 ) + UNTAR1 ( antismash_css ) + UNTAR2 ( antismash_detection ) + UNTAR3 ( antismash_modules ) ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES ( UNTAR1.out.untar.map{ it[1] }, UNTAR2.out.untar.map{ it[1] }, UNTAR3.out.untar.map{ it[1] } ) ANTISMASH_ANTISMASHLITE ( GUNZIP1.out.gunzip, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.database, ANTISMASH_ANTISMASHLITEDOWNLOADDATABASES.out.antismash_dir, GUNZIP2.out.gunzip.map{ it[1] } ) } From 169b2b96c1167f89ab07127b7057c1d90a6996c7 Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 15:45:21 +0200 Subject: [PATCH 566/592] update gatk version --- modules/gatk4/applybqsr/main.nf | 6 +++--- modules/gatk4/applybqsrspark/main.nf | 6 +++--- modules/gatk4/applyvqsr/main.nf | 6 +++--- modules/gatk4/baserecalibrator/main.nf | 6 +++--- modules/gatk4/bedtointervallist/main.nf | 6 +++--- modules/gatk4/calculatecontamination/main.nf | 6 +++--- modules/gatk4/combinegvcfs/main.nf | 6 +++--- modules/gatk4/createsequencedictionary/main.nf | 6 +++--- modules/gatk4/createsomaticpanelofnormals/main.nf | 6 +++--- modules/gatk4/estimatelibrarycomplexity/main.nf | 6 +++--- modules/gatk4/fastqtosam/main.nf | 6 +++--- modules/gatk4/filtermutectcalls/main.nf | 6 +++--- modules/gatk4/gatherbqsrreports/main.nf | 6 +++--- modules/gatk4/gatherpileupsummaries/main.nf | 6 +++--- modules/gatk4/genomicsdbimport/main.nf | 6 +++--- modules/gatk4/genotypegvcfs/main.nf | 6 +++--- modules/gatk4/getpileupsummaries/main.nf | 6 +++--- modules/gatk4/haplotypecaller/main.nf | 6 +++--- modules/gatk4/indexfeaturefile/main.nf | 6 +++--- modules/gatk4/intervallisttobed/main.nf | 6 +++--- modules/gatk4/intervallisttools/main.nf | 6 +++--- modules/gatk4/learnreadorientationmodel/main.nf | 6 +++--- modules/gatk4/markduplicates/main.nf | 6 +++--- modules/gatk4/mergebamalignment/main.nf | 6 +++--- modules/gatk4/mergemutectstats/main.nf | 6 +++--- modules/gatk4/mergevcfs/main.nf | 6 +++--- modules/gatk4/mutect2/main.nf | 6 +++--- modules/gatk4/revertsam/main.nf | 6 +++--- modules/gatk4/samtofastq/main.nf | 6 +++--- modules/gatk4/selectvariants/main.nf | 6 +++--- modules/gatk4/splitncigarreads/main.nf | 6 +++--- modules/gatk4/variantfiltration/main.nf | 6 +++--- modules/gatk4/variantrecalibrator/main.nf | 6 +++--- 33 files changed, 99 insertions(+), 99 deletions(-) diff --git a/modules/gatk4/applybqsr/main.nf b/modules/gatk4/applybqsr/main.nf index 7a64dab2..a0e2c45c 100644 --- a/modules/gatk4/applybqsr/main.nf +++ b/modules/gatk4/applybqsr/main.nf @@ -2,10 +2,10 @@ process GATK4_APPLYBQSR { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(bqsr_table), path(intervals) diff --git a/modules/gatk4/applybqsrspark/main.nf b/modules/gatk4/applybqsrspark/main.nf index 04303c09..9d7891ba 100644 --- a/modules/gatk4/applybqsrspark/main.nf +++ b/modules/gatk4/applybqsrspark/main.nf @@ -2,10 +2,10 @@ process GATK4_APPLYBQSR_SPARK { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.3.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.3.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.3.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(bqsr_table), path(intervals) diff --git a/modules/gatk4/applyvqsr/main.nf b/modules/gatk4/applyvqsr/main.nf index 8b235809..d3da8332 100644 --- a/modules/gatk4/applyvqsr/main.nf +++ b/modules/gatk4/applyvqsr/main.nf @@ -2,10 +2,10 @@ process GATK4_APPLYVQSR { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(vcf_tbi), path(recal), path(recal_index), path(tranches) diff --git a/modules/gatk4/baserecalibrator/main.nf b/modules/gatk4/baserecalibrator/main.nf index 766a8338..fb26d3da 100644 --- a/modules/gatk4/baserecalibrator/main.nf +++ b/modules/gatk4/baserecalibrator/main.nf @@ -2,10 +2,10 @@ process GATK4_BASERECALIBRATOR { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(intervals) diff --git a/modules/gatk4/bedtointervallist/main.nf b/modules/gatk4/bedtointervallist/main.nf index 118f535b..6224d9b3 100644 --- a/modules/gatk4/bedtointervallist/main.nf +++ b/modules/gatk4/bedtointervallist/main.nf @@ -2,10 +2,10 @@ process GATK4_BEDTOINTERVALLIST { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(bed) diff --git a/modules/gatk4/calculatecontamination/main.nf b/modules/gatk4/calculatecontamination/main.nf index 197fe6c2..c289684e 100644 --- a/modules/gatk4/calculatecontamination/main.nf +++ b/modules/gatk4/calculatecontamination/main.nf @@ -2,10 +2,10 @@ process GATK4_CALCULATECONTAMINATION { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(pileup), path(matched) diff --git a/modules/gatk4/combinegvcfs/main.nf b/modules/gatk4/combinegvcfs/main.nf index 45bf4372..db4d9cdb 100644 --- a/modules/gatk4/combinegvcfs/main.nf +++ b/modules/gatk4/combinegvcfs/main.nf @@ -2,10 +2,10 @@ process GATK4_COMBINEGVCFS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(vcf_idx) diff --git a/modules/gatk4/createsequencedictionary/main.nf b/modules/gatk4/createsequencedictionary/main.nf index dbf37048..13fa9e81 100644 --- a/modules/gatk4/createsequencedictionary/main.nf +++ b/modules/gatk4/createsequencedictionary/main.nf @@ -2,10 +2,10 @@ process GATK4_CREATESEQUENCEDICTIONARY { tag "$fasta" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: path fasta diff --git a/modules/gatk4/createsomaticpanelofnormals/main.nf b/modules/gatk4/createsomaticpanelofnormals/main.nf index 3df29947..653a9497 100644 --- a/modules/gatk4/createsomaticpanelofnormals/main.nf +++ b/modules/gatk4/createsomaticpanelofnormals/main.nf @@ -2,10 +2,10 @@ process GATK4_CREATESOMATICPANELOFNORMALS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(genomicsdb) diff --git a/modules/gatk4/estimatelibrarycomplexity/main.nf b/modules/gatk4/estimatelibrarycomplexity/main.nf index caa34630..46e09a95 100644 --- a/modules/gatk4/estimatelibrarycomplexity/main.nf +++ b/modules/gatk4/estimatelibrarycomplexity/main.nf @@ -2,10 +2,10 @@ process GATK4_ESTIMATELIBRARYCOMPLEXITY { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(input) diff --git a/modules/gatk4/fastqtosam/main.nf b/modules/gatk4/fastqtosam/main.nf index 199058d0..326d4d58 100644 --- a/modules/gatk4/fastqtosam/main.nf +++ b/modules/gatk4/fastqtosam/main.nf @@ -2,10 +2,10 @@ process GATK4_FASTQTOSAM { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(reads) diff --git a/modules/gatk4/filtermutectcalls/main.nf b/modules/gatk4/filtermutectcalls/main.nf index c1c82e0b..91f6defa 100644 --- a/modules/gatk4/filtermutectcalls/main.nf +++ b/modules/gatk4/filtermutectcalls/main.nf @@ -2,10 +2,10 @@ process GATK4_FILTERMUTECTCALLS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(vcf_tbi), path(stats), path(orientationbias), path(segmentation), path(table), val(estimate) diff --git a/modules/gatk4/gatherbqsrreports/main.nf b/modules/gatk4/gatherbqsrreports/main.nf index 1f5f2e1b..231bd39e 100644 --- a/modules/gatk4/gatherbqsrreports/main.nf +++ b/modules/gatk4/gatherbqsrreports/main.nf @@ -2,10 +2,10 @@ process GATK4_GATHERBQSRREPORTS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(table) diff --git a/modules/gatk4/gatherpileupsummaries/main.nf b/modules/gatk4/gatherpileupsummaries/main.nf index f5e9cf22..0b763f41 100644 --- a/modules/gatk4/gatherpileupsummaries/main.nf +++ b/modules/gatk4/gatherpileupsummaries/main.nf @@ -2,10 +2,10 @@ process GATK4_GATHERPILEUPSUMMARIES { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: diff --git a/modules/gatk4/genomicsdbimport/main.nf b/modules/gatk4/genomicsdbimport/main.nf index d2b78899..810f2b63 100644 --- a/modules/gatk4/genomicsdbimport/main.nf +++ b/modules/gatk4/genomicsdbimport/main.nf @@ -2,10 +2,10 @@ process GATK4_GENOMICSDBIMPORT { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(tbi), path(interval_file), val(interval_value), path(wspace) diff --git a/modules/gatk4/genotypegvcfs/main.nf b/modules/gatk4/genotypegvcfs/main.nf index 0df88d66..11024b1b 100644 --- a/modules/gatk4/genotypegvcfs/main.nf +++ b/modules/gatk4/genotypegvcfs/main.nf @@ -2,10 +2,10 @@ process GATK4_GENOTYPEGVCFS { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(gvcf), path(gvcf_index), path(intervals), path(intervals_index) diff --git a/modules/gatk4/getpileupsummaries/main.nf b/modules/gatk4/getpileupsummaries/main.nf index c0946f71..67e9276c 100644 --- a/modules/gatk4/getpileupsummaries/main.nf +++ b/modules/gatk4/getpileupsummaries/main.nf @@ -2,10 +2,10 @@ process GATK4_GETPILEUPSUMMARIES { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(input), path(index), path(intervals) diff --git a/modules/gatk4/haplotypecaller/main.nf b/modules/gatk4/haplotypecaller/main.nf index 2cd9e7d4..6dd3f69e 100644 --- a/modules/gatk4/haplotypecaller/main.nf +++ b/modules/gatk4/haplotypecaller/main.nf @@ -2,10 +2,10 @@ process GATK4_HAPLOTYPECALLER { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(intervals) diff --git a/modules/gatk4/indexfeaturefile/main.nf b/modules/gatk4/indexfeaturefile/main.nf index 90ff94e6..264f71ef 100644 --- a/modules/gatk4/indexfeaturefile/main.nf +++ b/modules/gatk4/indexfeaturefile/main.nf @@ -2,10 +2,10 @@ process GATK4_INDEXFEATUREFILE { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(feature_file) diff --git a/modules/gatk4/intervallisttobed/main.nf b/modules/gatk4/intervallisttobed/main.nf index c0f9df63..84f3c472 100644 --- a/modules/gatk4/intervallisttobed/main.nf +++ b/modules/gatk4/intervallisttobed/main.nf @@ -2,10 +2,10 @@ process GATK4_INTERVALLISTTOBED { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(intervals) diff --git a/modules/gatk4/intervallisttools/main.nf b/modules/gatk4/intervallisttools/main.nf index 1b9b37f4..7ab26c15 100644 --- a/modules/gatk4/intervallisttools/main.nf +++ b/modules/gatk4/intervallisttools/main.nf @@ -2,10 +2,10 @@ process GATK4_INTERVALLISTTOOLS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(intervals) diff --git a/modules/gatk4/learnreadorientationmodel/main.nf b/modules/gatk4/learnreadorientationmodel/main.nf index 717cf211..8c4ac94e 100644 --- a/modules/gatk4/learnreadorientationmodel/main.nf +++ b/modules/gatk4/learnreadorientationmodel/main.nf @@ -2,10 +2,10 @@ process GATK4_LEARNREADORIENTATIONMODEL { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(f1r2) diff --git a/modules/gatk4/markduplicates/main.nf b/modules/gatk4/markduplicates/main.nf index 2650925b..97a8c3e1 100644 --- a/modules/gatk4/markduplicates/main.nf +++ b/modules/gatk4/markduplicates/main.nf @@ -2,10 +2,10 @@ process GATK4_MARKDUPLICATES { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/gatk4/mergebamalignment/main.nf b/modules/gatk4/mergebamalignment/main.nf index 5c36b4ba..ff51de06 100644 --- a/modules/gatk4/mergebamalignment/main.nf +++ b/modules/gatk4/mergebamalignment/main.nf @@ -2,10 +2,10 @@ process GATK4_MERGEBAMALIGNMENT { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(aligned), path(unmapped) diff --git a/modules/gatk4/mergemutectstats/main.nf b/modules/gatk4/mergemutectstats/main.nf index 409e06f6..54311df7 100644 --- a/modules/gatk4/mergemutectstats/main.nf +++ b/modules/gatk4/mergemutectstats/main.nf @@ -2,10 +2,10 @@ process GATK4_MERGEMUTECTSTATS { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(stats) diff --git a/modules/gatk4/mergevcfs/main.nf b/modules/gatk4/mergevcfs/main.nf index 06ff3acb..964c1a3b 100644 --- a/modules/gatk4/mergevcfs/main.nf +++ b/modules/gatk4/mergevcfs/main.nf @@ -2,10 +2,10 @@ process GATK4_MERGEVCFS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(vcf) diff --git a/modules/gatk4/mutect2/main.nf b/modules/gatk4/mutect2/main.nf index 9969ad70..abec0d73 100644 --- a/modules/gatk4/mutect2/main.nf +++ b/modules/gatk4/mutect2/main.nf @@ -2,10 +2,10 @@ process GATK4_MUTECT2 { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(intervals) diff --git a/modules/gatk4/revertsam/main.nf b/modules/gatk4/revertsam/main.nf index 3084658d..959c3e79 100644 --- a/modules/gatk4/revertsam/main.nf +++ b/modules/gatk4/revertsam/main.nf @@ -2,10 +2,10 @@ process GATK4_REVERTSAM { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/gatk4/samtofastq/main.nf b/modules/gatk4/samtofastq/main.nf index d8d94d69..de83293a 100644 --- a/modules/gatk4/samtofastq/main.nf +++ b/modules/gatk4/samtofastq/main.nf @@ -2,10 +2,10 @@ process GATK4_SAMTOFASTQ { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(bam) diff --git a/modules/gatk4/selectvariants/main.nf b/modules/gatk4/selectvariants/main.nf index 22779211..633c21f2 100644 --- a/modules/gatk4/selectvariants/main.nf +++ b/modules/gatk4/selectvariants/main.nf @@ -2,10 +2,10 @@ process GATK4_SELECTVARIANTS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0': - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(vcf_idx) diff --git a/modules/gatk4/splitncigarreads/main.nf b/modules/gatk4/splitncigarreads/main.nf index 85e5daa8..456ec055 100644 --- a/modules/gatk4/splitncigarreads/main.nf +++ b/modules/gatk4/splitncigarreads/main.nf @@ -2,10 +2,10 @@ process GATK4_SPLITNCIGARREADS { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(bam), path(bai), path(intervals) diff --git a/modules/gatk4/variantfiltration/main.nf b/modules/gatk4/variantfiltration/main.nf index 6beb87ef..cda06e11 100644 --- a/modules/gatk4/variantfiltration/main.nf +++ b/modules/gatk4/variantfiltration/main.nf @@ -2,10 +2,10 @@ process GATK4_VARIANTFILTRATION { tag "$meta.id" label 'process_medium' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(tbi) diff --git a/modules/gatk4/variantrecalibrator/main.nf b/modules/gatk4/variantrecalibrator/main.nf index cdcc1221..120aeade 100644 --- a/modules/gatk4/variantrecalibrator/main.nf +++ b/modules/gatk4/variantrecalibrator/main.nf @@ -2,10 +2,10 @@ process GATK4_VARIANTRECALIBRATOR { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.5.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.5.0--hdfd78af_0' : - 'quay.io/biocontainers/gatk4:4.2.5.0--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(vcf), path(tbi) From fd7ee6799abf1bd5228b4b59ce541f3aeaa2280b Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 15:55:11 +0200 Subject: [PATCH 567/592] update version also for spark containers --- modules/gatk4/baserecalibratorspark/main.nf | 6 +++--- modules/gatk4/markduplicatesspark/main.nf | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/gatk4/baserecalibratorspark/main.nf b/modules/gatk4/baserecalibratorspark/main.nf index 70c70181..79988b72 100644 --- a/modules/gatk4/baserecalibratorspark/main.nf +++ b/modules/gatk4/baserecalibratorspark/main.nf @@ -2,10 +2,10 @@ process GATK4_BASERECALIBRATOR_SPARK { tag "$meta.id" label 'process_low' - conda (params.enable_conda ? "bioconda::gatk4=4.2.3.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.3.0--hdfd78af_0' : - 'broadinstitute/gatk:4.2.3.0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(input), path(input_index), path(intervals) diff --git a/modules/gatk4/markduplicatesspark/main.nf b/modules/gatk4/markduplicatesspark/main.nf index 77e135db..e3872c6e 100644 --- a/modules/gatk4/markduplicatesspark/main.nf +++ b/modules/gatk4/markduplicatesspark/main.nf @@ -2,10 +2,10 @@ process GATK4_MARKDUPLICATES_SPARK { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::gatk4=4.2.3.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.3.0--hdfd78af_0' : - 'broadinstitute/gatk:4.2.3.0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(bam) From fef5434c4cfdc8a7637b9b430298963574290128 Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 16:07:12 +0200 Subject: [PATCH 568/592] Update md5sums --- tests/modules/gatk4/applybqsr/test.yml | 6 +++--- tests/modules/gatk4/applybqsrspark/test.yml | 6 +++--- tests/modules/gatk4/intervallisttools/test.yml | 8 ++++---- tests/modules/gatk4/markduplicates/test.yml | 6 +++--- tests/modules/gatk4/splitncigarreads/test.yml | 4 ++-- tests/modules/gatk4/variantrecalibrator/test.yml | 4 ++-- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/modules/gatk4/applybqsr/test.yml b/tests/modules/gatk4/applybqsr/test.yml index eaf1a08e..c3dd4eef 100644 --- a/tests/modules/gatk4/applybqsr/test.yml +++ b/tests/modules/gatk4/applybqsr/test.yml @@ -5,7 +5,7 @@ - gatk4/applybqsr files: - path: output/gatk4/test.bam - md5sum: d088422be886dc8507ff97fcc7dd968a + md5sum: e11b7eaf2034740a953626518e3c3d6e - path: output/gatk4/versions.yml - name: gatk4 applybqsr test_gatk4_applybqsr_intervals @@ -15,7 +15,7 @@ - gatk4/applybqsr files: - path: output/gatk4/test.bam - md5sum: 4bfa18d651abd945e240b05e70107716 + md5sum: e9e9aa753c106e43f936ad573e23d2e6 - path: output/gatk4/versions.yml - name: gatk4 applybqsr test_gatk4_applybqsr_cram @@ -25,5 +25,5 @@ - gatk4/applybqsr files: - path: output/gatk4/test.cram - md5sum: 2e0bca197af4f043a4a85152e6edbe04 + md5sum: bca9d234a5d484ce2a6f4826ca2ea308 - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/applybqsrspark/test.yml b/tests/modules/gatk4/applybqsrspark/test.yml index d230c000..1e4f8b47 100644 --- a/tests/modules/gatk4/applybqsrspark/test.yml +++ b/tests/modules/gatk4/applybqsrspark/test.yml @@ -5,7 +5,7 @@ - gatk4/applybqsrspark files: - path: output/gatk4/test.bam - md5sum: d088422be886dc8507ff97fcc7dd968a + md5sum: 1901c819fcba0fdd5e2482e6dc8285ef - path: output/gatk4/versions.yml - name: gatk4 applybqsr test_gatk4_applybqsr_spark_intervals @@ -15,7 +15,7 @@ - gatk4/applybqsrspark files: - path: output/gatk4/test.bam - md5sum: 4bfa18d651abd945e240b05e70107716 + md5sum: 2ca2446f0125890280056fd7da822732 - path: output/gatk4/versions.yml - name: gatk4 applybqsr test_gatk4_applybqsr_spark_cram @@ -25,5 +25,5 @@ - gatk4/applybqsrspark files: - path: output/gatk4/test.cram - md5sum: 2e0bca197af4f043a4a85152e6edbe04 + md5sum: 60f7c822a9f2833e11eb7bfd16e4421f - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/intervallisttools/test.yml b/tests/modules/gatk4/intervallisttools/test.yml index 5542714b..89367a09 100644 --- a/tests/modules/gatk4/intervallisttools/test.yml +++ b/tests/modules/gatk4/intervallisttools/test.yml @@ -7,11 +7,11 @@ - path: output/gatk4/test.interval_list md5sum: e51101c9357fb2d59fd30e370eefa39c - path: output/gatk4/test_split/temp_0001_of_6/1scattered.interval_list - md5sum: b8ba8a387200df76a0d1c577626dc265 + md5sum: 39385d38ac6cb7c05190026fc3b81411 - path: output/gatk4/test_split/temp_0002_of_6/2scattered.interval_list - md5sum: 0728d164666d9264ef442a493e008dee + md5sum: 59f1978c5f4ef3fce3b110816283d9f5 - path: output/gatk4/test_split/temp_0003_of_6/3scattered.interval_list - md5sum: 55da0f3c69504148f4e7002a0e072cfe + md5sum: 709fe81bfcf700bd80d96c62a71629fd - path: output/gatk4/test_split/temp_0004_of_6/4scattered.interval_list - md5sum: d29ca4447f32547f2936567fa902796a + md5sum: c24044490cfedbcba61dbc646d3aa570 - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/markduplicates/test.yml b/tests/modules/gatk4/markduplicates/test.yml index 1fbd768e..d3a9f269 100644 --- a/tests/modules/gatk4/markduplicates/test.yml +++ b/tests/modules/gatk4/markduplicates/test.yml @@ -5,9 +5,9 @@ - gatk4/markduplicates files: - path: output/gatk4/test.bai - md5sum: e9c125e82553209933883b4fe2b8d7c2 + md5sum: c8f7a9e426c768577f88f59cb1336bf3 - path: output/gatk4/test.bam - md5sum: 2efd50b2e6b7fd9bdf242cd9e266cfa9 + md5sum: 58533ddab47f7ac07f7b10e7f4aac234 - path: output/gatk4/test.metrics - path: output/gatk4/versions.yml @@ -20,6 +20,6 @@ - path: output/gatk4/test.bai md5sum: bad71df9c876e72a5bc0a3e0fd755f92 - path: output/gatk4/test.bam - md5sum: 8187febc6108ffef7f907e89b9c091a4 + md5sum: 112580c24b43331950f24f9adea30788 - path: output/gatk4/test.metrics - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/splitncigarreads/test.yml b/tests/modules/gatk4/splitncigarreads/test.yml index d9a58901..261f7bc3 100644 --- a/tests/modules/gatk4/splitncigarreads/test.yml +++ b/tests/modules/gatk4/splitncigarreads/test.yml @@ -5,7 +5,7 @@ - gatk4/splitncigarreads files: - path: output/gatk4/test.bam - md5sum: 436d8e31285c6b588bdd1c7f1d07f6f2 + md5sum: 37e5dbce8692b54c3292b539c91dfbd7 - path: output/gatk4/versions.yml - name: gatk4 splitncigarreads test_gatk4_splitncigarreads_intervals command: nextflow run tests/modules/gatk4/splitncigarreads -entry test_gatk4_splitncigarreads_intervals -c tests/config/nextflow.config @@ -14,5 +14,5 @@ - gatk4/splitncigarreads files: - path: output/gatk4/test.bam - md5sum: cd56e3225950f519fd47164cca60a0bb + md5sum: e5cd2fd1822298a9bf7bc8b8d42146af - path: output/gatk4/versions.yml diff --git a/tests/modules/gatk4/variantrecalibrator/test.yml b/tests/modules/gatk4/variantrecalibrator/test.yml index bc84bfb3..39931137 100644 --- a/tests/modules/gatk4/variantrecalibrator/test.yml +++ b/tests/modules/gatk4/variantrecalibrator/test.yml @@ -9,7 +9,7 @@ - "#CHROM POS ID REF ALT QUAL FILTER INFO" - path: output/gatk4/test.recal.idx - path: output/gatk4/test.tranches - md5sum: d238e97bf996863969dac7751e345549 + md5sum: c029e52fd63a893e1154cc9144a19eeb - path: output/gatk4/versions.yml - name: gatk4 variantrecalibrator test_gatk4_variantrecalibrator_allele_specific @@ -23,5 +23,5 @@ - "#CHROM POS ID REF ALT QUAL FILTER INFO" - path: output/gatk4/test.recal.idx - path: output/gatk4/test.tranches - md5sum: 444438d46716593634a6817958099292 + md5sum: ad52fa69325c758f458a30ee5b43d6b5 - path: output/gatk4/versions.yml From 15fbf21b28a13cfaa043cfbdc12a9538c87ff4f4 Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 16:16:53 +0200 Subject: [PATCH 569/592] double tmpdir args removed, porb leftover after massive refactor where we decided to make it mandatory everywhere --- tests/modules/gatk4/combinegvcfs/nextflow.config | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/modules/gatk4/combinegvcfs/nextflow.config b/tests/modules/gatk4/combinegvcfs/nextflow.config index 573cc13e..8730f1c4 100644 --- a/tests/modules/gatk4/combinegvcfs/nextflow.config +++ b/tests/modules/gatk4/combinegvcfs/nextflow.config @@ -1,6 +1,5 @@ process { - ext.args = "--tmp-dir ." publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - -} \ No newline at end of file + +} From f40cfefc0899fd6bb6adc300142ca6c3a35573ff Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 16:47:17 +0200 Subject: [PATCH 570/592] leftover fixes from refactoring --- modules/gatk4/getpileupsummaries/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gatk4/getpileupsummaries/main.nf b/modules/gatk4/getpileupsummaries/main.nf index 67e9276c..1c056170 100644 --- a/modules/gatk4/getpileupsummaries/main.nf +++ b/modules/gatk4/getpileupsummaries/main.nf @@ -40,7 +40,7 @@ process GATK4_GETPILEUPSUMMARIES { --variant $variants \\ --output ${prefix}.pileups.table \\ $reference_command \\ - $sites_command \\ + $interval_command \\ --tmp-dir . \\ $args From b3bd55da7635eee872e748676614464067c33f75 Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 16:51:17 +0200 Subject: [PATCH 571/592] getpileupsummaries requires intervals files --- tests/modules/gatk4/getpileupsummaries/main.nf | 15 --------------- tests/modules/gatk4/getpileupsummaries/test.yml | 10 ---------- 2 files changed, 25 deletions(-) diff --git a/tests/modules/gatk4/getpileupsummaries/main.nf b/tests/modules/gatk4/getpileupsummaries/main.nf index b0de9d6e..2a53e35e 100644 --- a/tests/modules/gatk4/getpileupsummaries/main.nf +++ b/tests/modules/gatk4/getpileupsummaries/main.nf @@ -4,21 +4,6 @@ nextflow.enable.dsl = 2 include { GATK4_GETPILEUPSUMMARIES } from '../../../../modules/gatk4/getpileupsummaries/main.nf' -workflow test_gatk4_getpileupsummaries_just_variants { - - input = [ [ id:'test' ], // meta map - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam'], checkIfExists: true) , - file(params.test_data['homo_sapiens']['illumina']['test_paired_end_recalibrated_sorted_bam_bai'], checkIfExists: true), - [] - ] - - variants = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz'], checkIfExists: true) - variants_tbi = file(params.test_data['homo_sapiens']['genome']['gnomad_r2_1_1_21_vcf_gz_tbi'], checkIfExists: true) - fasta = [] - fai = [] - dict = [] - GATK4_GETPILEUPSUMMARIES ( input , fasta, fai, dict, variants , variants_tbi ) -} workflow test_gatk4_getpileupsummaries_separate_sites { diff --git a/tests/modules/gatk4/getpileupsummaries/test.yml b/tests/modules/gatk4/getpileupsummaries/test.yml index 2e4acce9..2529fbc5 100644 --- a/tests/modules/gatk4/getpileupsummaries/test.yml +++ b/tests/modules/gatk4/getpileupsummaries/test.yml @@ -1,13 +1,3 @@ -- name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_just_variants - command: nextflow run tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_just_variants -c tests/config/nextflow.config - tags: - - gatk4/getpileupsummaries - - gatk4 - files: - - path: output/gatk4/test.pileups.table - md5sum: 8e0ca6f66e112bd2f7ec1d31a2d62469 - - path: output/gatk4/versions.yml - - name: gatk4 getpileupsummaries test_gatk4_getpileupsummaries_separate_sites command: nextflow run tests/modules/gatk4/getpileupsummaries -entry test_gatk4_getpileupsummaries_separate_sites -c tests/config/nextflow.config tags: From a694267b4b138e4da4c98f17fcc4e4d0feff0056 Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 17:01:03 +0200 Subject: [PATCH 572/592] fix empty index input --- tests/modules/gatk4/genotypegvcfs/main.nf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/modules/gatk4/genotypegvcfs/main.nf b/tests/modules/gatk4/genotypegvcfs/main.nf index 75990958..4caba697 100644 --- a/tests/modules/gatk4/genotypegvcfs/main.nf +++ b/tests/modules/gatk4/genotypegvcfs/main.nf @@ -65,7 +65,9 @@ workflow test_gatk4_genotypegvcfs_gz_input_intervals { input = [ [ id:'test' ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) ] + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) , + [] + ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) From 8792d102ee9377ab6886033e3b821dc70df8e5ab Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 17:37:06 +0200 Subject: [PATCH 573/592] fix test input --- tests/modules/gatk4/genotypegvcfs/main.nf | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/modules/gatk4/genotypegvcfs/main.nf b/tests/modules/gatk4/genotypegvcfs/main.nf index 4caba697..cd7d3a03 100644 --- a/tests/modules/gatk4/genotypegvcfs/main.nf +++ b/tests/modules/gatk4/genotypegvcfs/main.nf @@ -82,7 +82,8 @@ workflow test_gatk4_genotypegvcfs_gz_input_dbsnp_intervals { input = [ [ id:'test' ], // meta map file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz'], checkIfExists: true), file(params.test_data['homo_sapiens']['illumina']['test_genome_vcf_gz_tbi'], checkIfExists: true), - file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true) + file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true), + [] ] fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) @@ -108,6 +109,7 @@ workflow test_gatk4_genotypegvcfs_gendb_input { gendb = UNTAR.out.untar.map{ it[1] }.collect() gendb.add([]) gendb.add([]) + gendb.add([]) input = Channel.of([ id:'test' ]).combine(gendb) @@ -130,6 +132,7 @@ workflow test_gatk4_genotypegvcfs_gendb_input_dbsnp { gendb = UNTAR.out.untar.map{ it[1] }.collect() gendb.add([]) gendb.add([]) + gendb.add([]) input = Channel.of([ id:'test' ]).combine(gendb) GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, dbsnp, dbsnp_tbi) @@ -148,6 +151,8 @@ workflow test_gatk4_genotypegvcfs_gendb_input_intervals { gendb = UNTAR.out.untar.map{ it[1] }.collect() gendb.add([]) gendb.add([file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)]) + gendb.add([]) + input = Channel.of([ id:'test' ]).combine(gendb) GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, [], [] ) @@ -169,6 +174,8 @@ workflow test_gatk4_genotypegvcfs_gendb_input_dbsnp_intervals { gendb = UNTAR.out.untar.map{ it[1] }.collect() gendb.add([]) gendb.add([file(params.test_data['homo_sapiens']['genome']['genome_bed'], checkIfExists: true)]) + gendb.add([]) + input = Channel.of([ id:'test' ]).combine(gendb) GATK4_GENOTYPEGVCFS ( input, fasta, fai, dict, dbsnp, dbsnp_tbi ) From 3fda3903dc255460fddbc730d7e5f103f7119df5 Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 17:40:42 +0200 Subject: [PATCH 574/592] revert markduplciatespark container --- modules/gatk4/markduplicatesspark/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/gatk4/markduplicatesspark/main.nf b/modules/gatk4/markduplicatesspark/main.nf index e3872c6e..77e135db 100644 --- a/modules/gatk4/markduplicatesspark/main.nf +++ b/modules/gatk4/markduplicatesspark/main.nf @@ -2,10 +2,10 @@ process GATK4_MARKDUPLICATES_SPARK { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.3.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': - 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.3.0--hdfd78af_0' : + 'broadinstitute/gatk:4.2.3.0' }" input: tuple val(meta), path(bam) From 99880654bfab2ad611195a6e0d757eb1b2b12f88 Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 18:06:15 +0200 Subject: [PATCH 575/592] add output default bam --- modules/gatk4/markduplicatesspark/main.nf | 2 +- tests/modules/gatk4/markduplicatesspark/nextflow.config | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/gatk4/markduplicatesspark/main.nf b/modules/gatk4/markduplicatesspark/main.nf index 77e135db..a086cd7a 100644 --- a/modules/gatk4/markduplicatesspark/main.nf +++ b/modules/gatk4/markduplicatesspark/main.nf @@ -22,7 +22,7 @@ process GATK4_MARKDUPLICATES_SPARK { script: def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}" + prefix = task.ext.prefix ?: "${meta.id}.bam" def input_list = bam.collect{"--input $it"}.join(' ') def avail_mem = 3 diff --git a/tests/modules/gatk4/markduplicatesspark/nextflow.config b/tests/modules/gatk4/markduplicatesspark/nextflow.config index 8730f1c4..83411693 100644 --- a/tests/modules/gatk4/markduplicatesspark/nextflow.config +++ b/tests/modules/gatk4/markduplicatesspark/nextflow.config @@ -1,5 +1,4 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } - } From e3a17b699e5b93a25ebd8ec4cc71ae4b7eb70285 Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 18:19:33 +0200 Subject: [PATCH 576/592] update version --- modules/gatk4/markduplicatesspark/main.nf | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/gatk4/markduplicatesspark/main.nf b/modules/gatk4/markduplicatesspark/main.nf index a086cd7a..2ef91111 100644 --- a/modules/gatk4/markduplicatesspark/main.nf +++ b/modules/gatk4/markduplicatesspark/main.nf @@ -2,10 +2,10 @@ process GATK4_MARKDUPLICATES_SPARK { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::gatk4=4.2.3.0" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.3.0--hdfd78af_0' : - 'broadinstitute/gatk:4.2.3.0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" input: tuple val(meta), path(bam) @@ -32,8 +32,6 @@ process GATK4_MARKDUPLICATES_SPARK { avail_mem = task.memory.giga } """ - export SPARK_USER=spark3 - gatk --java-options "-Xmx${avail_mem}g" MarkDuplicatesSpark \\ $input_list \\ --output $prefix \\ From 5f7b02189ad35cb84fe595560894610986ea7f3d Mon Sep 17 00:00:00 2001 From: Rike Date: Thu, 12 May 2022 18:35:51 +0200 Subject: [PATCH 577/592] reverse again, why did tests pass before --- modules/gatk4/markduplicatesspark/main.nf | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/gatk4/markduplicatesspark/main.nf b/modules/gatk4/markduplicatesspark/main.nf index 2ef91111..4e01cccf 100644 --- a/modules/gatk4/markduplicatesspark/main.nf +++ b/modules/gatk4/markduplicatesspark/main.nf @@ -2,10 +2,10 @@ process GATK4_MARKDUPLICATES_SPARK { tag "$meta.id" label 'process_high' - conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) + conda (params.enable_conda ? "bioconda::gatk4=4.2.3.0" : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': - 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.3.0--hdfd78af_0' : + 'broadinstitute/gatk:4.2.3.0' }" input: tuple val(meta), path(bam) @@ -22,7 +22,7 @@ process GATK4_MARKDUPLICATES_SPARK { script: def args = task.ext.args ?: '' - prefix = task.ext.prefix ?: "${meta.id}.bam" + prefix = task.ext.prefix ?: "${meta.id}" def input_list = bam.collect{"--input $it"}.join(' ') def avail_mem = 3 @@ -32,6 +32,10 @@ process GATK4_MARKDUPLICATES_SPARK { avail_mem = task.memory.giga } """ + export SPARK_USER=spark3 + + + gatk --java-options "-Xmx${avail_mem}g" MarkDuplicatesSpark \\ $input_list \\ --output $prefix \\ From 6fa1c8089afe83e612dbc14e4b85f277166c4a2b Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 13 May 2022 10:03:20 +0200 Subject: [PATCH 578/592] Added memory allocation to VCFeval --- modules/rtgtools/vcfeval/main.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/rtgtools/vcfeval/main.nf b/modules/rtgtools/vcfeval/main.nf index 1bad4231..27a488f7 100644 --- a/modules/rtgtools/vcfeval/main.nf +++ b/modules/rtgtools/vcfeval/main.nf @@ -35,12 +35,13 @@ process RTGTOOLS_VCFEVAL { def eval_regions = evaluation_regions ? "--evaluation-regions=$evaluation_regions" : "" def truth_index = truth_vcf_tbi ? "" : "rtg index $truth_vcf" def query_index = query_vcf_tbi ? "" : "rtg index $query_vcf" + def avail_mem = task.memory.toGiga() + "G" """ $truth_index $query_index - rtg vcfeval \\ + rtg RTG_MEM=$avail_mem vcfeval \\ $args \\ --baseline=$truth_vcf \\ $bed_regions \\ From 5df0bcf1bed5e5fd4e2d1850694e386e0b85b240 Mon Sep 17 00:00:00 2001 From: Mahesh Binzer-Panchal Date: Fri, 13 May 2022 11:27:42 +0200 Subject: [PATCH 579/592] Update tests/modules/genomescope2/test.yml Co-authored-by: FriederikeHanssen --- tests/modules/genomescope2/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/modules/genomescope2/test.yml b/tests/modules/genomescope2/test.yml index accd2a14..5b03f545 100644 --- a/tests/modules/genomescope2/test.yml +++ b/tests/modules/genomescope2/test.yml @@ -20,4 +20,3 @@ - path: output/meryl/test.hist md5sum: f75362ab9cd70d96621b3690e952085f - path: output/meryl/versions.yml - md5sum: 944b7ea81a82bd20174c5042857003fc From d816f2bc5d5338526919d7e1eea42ca6143513fb Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Fri, 13 May 2022 12:01:16 +0100 Subject: [PATCH 580/592] Reactivated all tests --- tests/modules/bowtie2/align/test.yml | 70 +++++++++++++--------------- 1 file changed, 33 insertions(+), 37 deletions(-) diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index 8a33c928..56a8bf53 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -5,43 +5,39 @@ - bowtie2/align files: - path: ./output/bowtie2/test.bam - # - path: output/bowtie2/test.bowtie2.log - # md5sum: 7b8a9e61b7646da1089b041333c41a87 - # - path: output/bowtie2/versions.yml - # md5sum: 24621c58884fe90c2255ccd1fe4352ae + - path: ./output/bowtie2/test.bowtie2.log + - path: ./output/bowtie2/versions.yml + md5sum: 24621c58884fe90c2255ccd1fe4352ae -# - name: bowtie2 align test_bowtie2_align_paired_end -# command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config -# tags: -# - bowtie2 -# - bowtie2/align -# files: -# - path: output/bowtie2/test.bam -# - path: output/bowtie2/test.bowtie2.log -# md5sum: bd89ce1b28c93bf822bae391ffcedd19 -# - path: output/bowtie2/versions.yml -# md5sum: f9712ca6d75393ad5c1781a2dcf82d32 +- name: bowtie2 align test_bowtie2_align_paired_end + command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config + tags: + - bowtie2 + - bowtie2/align + files: + - path: ./output/bowtie2/test.bam + - path: ./output/bowtie2/test.bowtie2.log + - path: ./output/bowtie2/versions.yml + md5sum: f9712ca6d75393ad5c1781a2dcf82d32 -# - name: bowtie2 align test_bowtie2_align_single_end_large_index -# command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_single_end_large_index -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config --force_large_index -# tags: -# - bowtie2 -# - bowtie2/align -# files: -# - path: output/bowtie2/test.bam -# - path: output/bowtie2/test.bowtie2.log -# md5sum: 7b8a9e61b7646da1089b041333c41a87 -# - path: output/bowtie2/versions.yml -# md5sum: bf0537964a85ce9461ae1b0e2f260211 +- name: bowtie2 align test_bowtie2_align_single_end_large_index + command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_single_end_large_index -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config --force_large_index + tags: + - bowtie2 + - bowtie2/align + files: + - path: ./output/bowtie2/test.bam + - path: ./output/bowtie2/test.bowtie2.log + - path: ./output/bowtie2/versions.yml + md5sum: bf0537964a85ce9461ae1b0e2f260211 -# - name: bowtie2 align test_bowtie2_align_paired_end_large_index -# command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end_large_index -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config --force_large_index -# tags: -# - bowtie2 -# - bowtie2/align -# files: -# - path: output/bowtie2/test.bam -# - path: output/bowtie2/test.bowtie2.log -# md5sum: bd89ce1b28c93bf822bae391ffcedd19 -# - path: output/bowtie2/versions.yml -# md5sum: c0a88953500eaf46de7ff378a7de4a37 +- name: bowtie2 align test_bowtie2_align_paired_end_large_index + command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end_large_index -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config --force_large_index + tags: + - bowtie2 + - bowtie2/align + files: + - path: ./output/bowtie2/test.bam + - path: ./output/bowtie2/test.bowtie2.log + - path: ./output/bowtie2/versions.yml + md5sum: c0a88953500eaf46de7ff378a7de4a37 From ea55129ba3e3cef1a38df236c95d3d4daca63265 Mon Sep 17 00:00:00 2001 From: Chris Cheshire Date: Fri, 13 May 2022 12:20:41 +0100 Subject: [PATCH 581/592] Removed version file checksums --- tests/modules/bowtie2/align/test.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index 56a8bf53..103d65e9 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -7,7 +7,6 @@ - path: ./output/bowtie2/test.bam - path: ./output/bowtie2/test.bowtie2.log - path: ./output/bowtie2/versions.yml - md5sum: 24621c58884fe90c2255ccd1fe4352ae - name: bowtie2 align test_bowtie2_align_paired_end command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config @@ -18,7 +17,6 @@ - path: ./output/bowtie2/test.bam - path: ./output/bowtie2/test.bowtie2.log - path: ./output/bowtie2/versions.yml - md5sum: f9712ca6d75393ad5c1781a2dcf82d32 - name: bowtie2 align test_bowtie2_align_single_end_large_index command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_single_end_large_index -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config --force_large_index @@ -29,7 +27,6 @@ - path: ./output/bowtie2/test.bam - path: ./output/bowtie2/test.bowtie2.log - path: ./output/bowtie2/versions.yml - md5sum: bf0537964a85ce9461ae1b0e2f260211 - name: bowtie2 align test_bowtie2_align_paired_end_large_index command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end_large_index -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config --force_large_index @@ -40,4 +37,3 @@ - path: ./output/bowtie2/test.bam - path: ./output/bowtie2/test.bowtie2.log - path: ./output/bowtie2/versions.yml - md5sum: c0a88953500eaf46de7ff378a7de4a37 From 8a17b6dd0e247746cee97e7dc6fa0761534f13ec Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 13 May 2022 13:46:34 +0200 Subject: [PATCH 582/592] added gatk4/splitintervals --- modules/gatk4/splitintervals/main.nf | 47 +++++++++++++++++++ modules/gatk4/splitintervals/meta.yml | 41 ++++++++++++++++ tests/config/pytest_modules.yml | 12 +++-- tests/modules/gatk4/splitintervals/main.nf | 33 +++++++++++++ .../gatk4/splitintervals/nextflow.config | 9 ++++ tests/modules/gatk4/splitintervals/test.yml | 25 ++++++++++ 6 files changed, 163 insertions(+), 4 deletions(-) create mode 100644 modules/gatk4/splitintervals/main.nf create mode 100644 modules/gatk4/splitintervals/meta.yml create mode 100644 tests/modules/gatk4/splitintervals/main.nf create mode 100644 tests/modules/gatk4/splitintervals/nextflow.config create mode 100644 tests/modules/gatk4/splitintervals/test.yml diff --git a/modules/gatk4/splitintervals/main.nf b/modules/gatk4/splitintervals/main.nf new file mode 100644 index 00000000..d9407b95 --- /dev/null +++ b/modules/gatk4/splitintervals/main.nf @@ -0,0 +1,47 @@ +process GATK4_SPLITINTERVALS { + tag "$meta.id" + label 'process_low' + + conda (params.enable_conda ? "bioconda::gatk4=4.2.6.1" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/gatk4:4.2.6.1--hdfd78af_0': + 'quay.io/biocontainers/gatk4:4.2.6.1--hdfd78af_0' }" + + input: + tuple val(meta), path(intervals) + path(fasta) + path(fasta_fai) + path(fasta_dict) + + output: + tuple val(meta), path("**.interval_list"), emit: split_intervals + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def reference = fasta ? "--reference $fasta" : "" + + def avail_mem = 3 + if (!task.memory) { + log.info '[GATK IntervalListToBed] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + } else { + avail_mem = task.memory.giga + } + + """ + gatk --java-options "-Xmx${avail_mem}g" SplitIntervals \\ + --output ${prefix} \\ + --intervals $intervals \\ + $reference \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gatk4: \$(echo \$(gatk --version 2>&1) | sed 's/^.*(GATK) v//; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/gatk4/splitintervals/meta.yml b/modules/gatk4/splitintervals/meta.yml new file mode 100644 index 00000000..6cf7cedc --- /dev/null +++ b/modules/gatk4/splitintervals/meta.yml @@ -0,0 +1,41 @@ +name: gatk4_splitintervals +keywords: + - interval + - bed +tools: + - gatk4: + description: Genome Analysis Toolkit (GATK4) + homepage: https://gatk.broadinstitute.org/hc/en-us + documentation: https://gatk.broadinstitute.org/hc/en-us/categories/360002369672s + tool_dev_url: https://github.com/broadinstitute/gatk + doi: "10.1158/1538-7445.AM2017-3590" + licence: ["BSD-3-clause"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - interval: + type: file + description: Interval list or BED + pattern: "*.{interval,interval_list,bed}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test' ] + - bed: + type: file + description: A list of scattered interval lists + pattern: "*.interval_list" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@nvnieuwk" diff --git a/tests/config/pytest_modules.yml b/tests/config/pytest_modules.yml index 428c3652..bfd8554a 100644 --- a/tests/config/pytest_modules.yml +++ b/tests/config/pytest_modules.yml @@ -819,6 +819,10 @@ gatk4/selectvariants: - modules/gatk4/selectvariants/** - tests/modules/gatk4/selectvariants/** +gatk4/splitintervals: + - modules/gatk4/splitintervals/** + - tests/modules/gatk4/splitintervals/** + gatk4/splitncigarreads: - modules/gatk4/splitncigarreads/** - tests/modules/gatk4/splitncigarreads/** @@ -1647,14 +1651,14 @@ samtools/bam2fq: - modules/samtools/bam2fq/** - tests/modules/samtools/bam2fq/** -samtools/convert: - - modules/samtools/convert/** - - tests/modules/samtools/convert/** - samtools/collatefastq: - modules/samtools/collatefastq/** - tests/modules/samtools/collatefastq/** +samtools/convert: + - modules/samtools/convert/** + - tests/modules/samtools/convert/** + samtools/depth: - modules/samtools/depth/** - tests/modules/samtools/depth/** diff --git a/tests/modules/gatk4/splitintervals/main.nf b/tests/modules/gatk4/splitintervals/main.nf new file mode 100644 index 00000000..f507ece5 --- /dev/null +++ b/tests/modules/gatk4/splitintervals/main.nf @@ -0,0 +1,33 @@ +#!/usr/bin/env nextflow + +nextflow.enable.dsl = 2 + +include { GATK4_SPLITINTERVALS } from '../../../../modules/gatk4/splitintervals/main.nf' + +workflow test_gatk4_splitintervals_bed { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_multi_interval_bed'], checkIfExists: true) + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fasta_fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + fasta_dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + + GATK4_SPLITINTERVALS ( input, fasta, fasta_fai, fasta_dict) +} + +workflow test_gatk4_splitintervals_intervals { + + input = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_interval_list'], checkIfExists: true) + ] + + fasta = file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + fasta_fai = file(params.test_data['homo_sapiens']['genome']['genome_fasta_fai'], checkIfExists: true) + fasta_dict = file(params.test_data['homo_sapiens']['genome']['genome_dict'], checkIfExists: true) + + GATK4_SPLITINTERVALS ( input, fasta, fasta_fai, fasta_dict) +} \ No newline at end of file diff --git a/tests/modules/gatk4/splitintervals/nextflow.config b/tests/modules/gatk4/splitintervals/nextflow.config new file mode 100644 index 00000000..10fda96c --- /dev/null +++ b/tests/modules/gatk4/splitintervals/nextflow.config @@ -0,0 +1,9 @@ +process { + + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + + + withName: GATK4_SPLITINTERVALS { + ext.args = "--scatter-count 2" + } +} \ No newline at end of file diff --git a/tests/modules/gatk4/splitintervals/test.yml b/tests/modules/gatk4/splitintervals/test.yml new file mode 100644 index 00000000..dc0ea6ba --- /dev/null +++ b/tests/modules/gatk4/splitintervals/test.yml @@ -0,0 +1,25 @@ +- name: gatk4 splitintervals test_gatk4_splitintervals_bed + command: nextflow run tests/modules/gatk4/splitintervals -entry test_gatk4_splitintervals_bed -c tests/config/nextflow.config + tags: + - gatk4/splitintervals + - gatk4 + files: + - path: output/gatk4/test/0000-scattered.interval_list + md5sum: c8d6b19e7a92535b6ce9608eae558faa + - path: output/gatk4/test/0001-scattered.interval_list + md5sum: b1877ad96aec308906594c50ebbe3ded + - path: output/gatk4/versions.yml + md5sum: c7b9068d84e0e05412f50e86d5b87078 + +- name: gatk4 splitintervals test_gatk4_splitintervals_intervals + command: nextflow run tests/modules/gatk4/splitintervals -entry test_gatk4_splitintervals_intervals -c tests/config/nextflow.config + tags: + - gatk4/splitintervals + - gatk4 + files: + - path: output/gatk4/test/0000-scattered.interval_list + md5sum: ebd6b34a335efc6732ff541936c6d2d5 + - path: output/gatk4/test/0001-scattered.interval_list + md5sum: 9459b0e124fa84ec1e64ac4615bc9af7 + - path: output/gatk4/versions.yml + md5sum: 4eec8245944ad3be4cc22403c6ffb877 From 9d53577282ecb9d683ba93f9741dd4e721b2fcba Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 13 May 2022 13:48:33 +0200 Subject: [PATCH 583/592] linting --- modules/gatk4/splitintervals/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gatk4/splitintervals/main.nf b/modules/gatk4/splitintervals/main.nf index d9407b95..d575191f 100644 --- a/modules/gatk4/splitintervals/main.nf +++ b/modules/gatk4/splitintervals/main.nf @@ -37,7 +37,7 @@ process GATK4_SPLITINTERVALS { --output ${prefix} \\ --intervals $intervals \\ $reference \\ - $args + $args cat <<-END_VERSIONS > versions.yml "${task.process}": From d1f824ae66f432301bf1325ab8fa48825aa43bac Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 13 May 2022 14:21:48 +0200 Subject: [PATCH 584/592] updated meta.yml --- modules/gatk4/splitintervals/main.nf | 2 +- modules/gatk4/splitintervals/meta.yml | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/gatk4/splitintervals/main.nf b/modules/gatk4/splitintervals/main.nf index d575191f..adb72dfb 100644 --- a/modules/gatk4/splitintervals/main.nf +++ b/modules/gatk4/splitintervals/main.nf @@ -11,7 +11,7 @@ process GATK4_SPLITINTERVALS { tuple val(meta), path(intervals) path(fasta) path(fasta_fai) - path(fasta_dict) + path(dict) output: tuple val(meta), path("**.interval_list"), emit: split_intervals diff --git a/modules/gatk4/splitintervals/meta.yml b/modules/gatk4/splitintervals/meta.yml index 6cf7cedc..ba557544 100644 --- a/modules/gatk4/splitintervals/meta.yml +++ b/modules/gatk4/splitintervals/meta.yml @@ -21,6 +21,18 @@ input: type: file description: Interval list or BED pattern: "*.{interval,interval_list,bed}" + - fasta: + type: file + description: Reference FASTA + pattern: "*.{fa,fasta}" + - fasta_fai: + type: file + description: Reference FASTA index + pattern: "*.fai" + - dict: + type: file + description: Reference sequence dictionary + pattern: "*.dict" output: - meta: From 1c2a99142928c6ba2d32226168e6755263784474 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 13 May 2022 14:25:53 +0200 Subject: [PATCH 585/592] fixed memory warning --- modules/gatk4/splitintervals/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/gatk4/splitintervals/main.nf b/modules/gatk4/splitintervals/main.nf index adb72dfb..3ab5a71b 100644 --- a/modules/gatk4/splitintervals/main.nf +++ b/modules/gatk4/splitintervals/main.nf @@ -27,7 +27,7 @@ process GATK4_SPLITINTERVALS { def avail_mem = 3 if (!task.memory) { - log.info '[GATK IntervalListToBed] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' + log.info '[GATK SplitIntervals] Available memory not known - defaulting to 3GB. Specify process memory requirements to change this.' } else { avail_mem = task.memory.giga } From a72f06dfe8ce6f29d90f3f952bf5700019ff4d14 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 13 May 2022 14:27:59 +0200 Subject: [PATCH 586/592] removed versions checksum --- tests/modules/gatk4/splitintervals/test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/modules/gatk4/splitintervals/test.yml b/tests/modules/gatk4/splitintervals/test.yml index dc0ea6ba..741c6bec 100644 --- a/tests/modules/gatk4/splitintervals/test.yml +++ b/tests/modules/gatk4/splitintervals/test.yml @@ -9,7 +9,6 @@ - path: output/gatk4/test/0001-scattered.interval_list md5sum: b1877ad96aec308906594c50ebbe3ded - path: output/gatk4/versions.yml - md5sum: c7b9068d84e0e05412f50e86d5b87078 - name: gatk4 splitintervals test_gatk4_splitintervals_intervals command: nextflow run tests/modules/gatk4/splitintervals -entry test_gatk4_splitintervals_intervals -c tests/config/nextflow.config @@ -22,4 +21,3 @@ - path: output/gatk4/test/0001-scattered.interval_list md5sum: 9459b0e124fa84ec1e64ac4615bc9af7 - path: output/gatk4/versions.yml - md5sum: 4eec8245944ad3be4cc22403c6ffb877 From 6427eeeca04790574303b13ba473594fdf725821 Mon Sep 17 00:00:00 2001 From: Nicolas Vannieuwkerke Date: Fri, 13 May 2022 14:35:22 +0200 Subject: [PATCH 587/592] added tmp-dir + alignment correction --- modules/gatk4/splitintervals/main.nf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/gatk4/splitintervals/main.nf b/modules/gatk4/splitintervals/main.nf index 3ab5a71b..9df66c21 100644 --- a/modules/gatk4/splitintervals/main.nf +++ b/modules/gatk4/splitintervals/main.nf @@ -15,7 +15,7 @@ process GATK4_SPLITINTERVALS { output: tuple val(meta), path("**.interval_list"), emit: split_intervals - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -37,6 +37,7 @@ process GATK4_SPLITINTERVALS { --output ${prefix} \\ --intervals $intervals \\ $reference \\ + --tmp-dir . \\ $args cat <<-END_VERSIONS > versions.yml From cbc47767f7bb4751a9d178395bd66f051401a0c1 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 13 May 2022 15:26:41 +0200 Subject: [PATCH 588/592] add sort option to bowtie2 --- modules/bowtie2/align/main.nf | 6 +++--- modules/bowtie2/align/meta.yml | 9 +++++++++ tests/modules/bowtie2/align/main.nf | 29 +++++++++++++++++++++++----- tests/modules/bowtie2/align/test.yml | 10 ++++++++++ 4 files changed, 46 insertions(+), 8 deletions(-) diff --git a/modules/bowtie2/align/main.nf b/modules/bowtie2/align/main.nf index e4bb4327..c74e376f 100644 --- a/modules/bowtie2/align/main.nf +++ b/modules/bowtie2/align/main.nf @@ -11,6 +11,7 @@ process BOWTIE2_ALIGN { tuple val(meta), path(reads) path index val save_unaligned + val sort_bam output: tuple val(meta), path("*.bam") , emit: bam @@ -36,8 +37,7 @@ process BOWTIE2_ALIGN { reads_args = "-1 ${reads[0]} -2 ${reads[1]}" } - def samtools_command = "samtools view -@ $task.cpus --bam --with-header ${args2} > ${prefix}.bam" - + def samtools_command = sort_bam ? 'sort' : 'view' """ INDEX=`find -L ./ -name "*.rev.1.bt2" | sed "s/.rev.1.bt2//"` @@ -51,7 +51,7 @@ process BOWTIE2_ALIGN { $unaligned \\ $args \\ 2> ${prefix}.bowtie2.log \\ - | $samtools_command + | samtools $samtools_command $args2 --threads $task.cpus -o ${prefix}.bam - if [ -f ${prefix}.unmapped.fastq.1.gz ]; then mv ${prefix}.unmapped.fastq.1.gz ${prefix}.unmapped_1.fastq.gz diff --git a/modules/bowtie2/align/meta.yml b/modules/bowtie2/align/meta.yml index f80421ec..c99fa4e3 100644 --- a/modules/bowtie2/align/meta.yml +++ b/modules/bowtie2/align/meta.yml @@ -29,6 +29,15 @@ input: type: file description: Bowtie2 genome index files pattern: "*.ebwt" + - save_unaligned: + type: boolean + description: | + Save reads that do not map to the reference (true) or discard them (false) + (default: false) + - sort_bam: + type: boolean + description: use samtools sort (true) or samtools view (false) + pattern: "true or false" output: - bam: type: file diff --git a/tests/modules/bowtie2/align/main.nf b/tests/modules/bowtie2/align/main.nf index 42e2306a..75ab33ac 100644 --- a/tests/modules/bowtie2/align/main.nf +++ b/tests/modules/bowtie2/align/main.nf @@ -14,9 +14,25 @@ workflow test_bowtie2_align_single_end { ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) save_unaligned = false + sort = false BOWTIE2_BUILD ( fasta ) - BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned ) + BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned, sort ) +} + +workflow test_bowtie2_align_single_end_sorted { + input = [ + [ id:'test', single_end:true ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) + ] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + save_unaligned = false + sort = true + + BOWTIE2_BUILD ( fasta ) + BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned, sort ) } workflow test_bowtie2_align_paired_end { @@ -29,9 +45,10 @@ workflow test_bowtie2_align_paired_end { ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) save_unaligned = false + sort = false BOWTIE2_BUILD ( fasta ) - BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned ) + BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned, sort ) } workflow test_bowtie2_align_single_end_large_index { @@ -43,9 +60,10 @@ workflow test_bowtie2_align_single_end_large_index { ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) save_unaligned = false + sort = false BOWTIE2_BUILD ( fasta ) - BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned ) + BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned, sort ) } workflow test_bowtie2_align_paired_end_large_index { @@ -58,7 +76,8 @@ workflow test_bowtie2_align_paired_end_large_index { ] fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) save_unaligned = false + sort = false BOWTIE2_BUILD ( fasta ) - BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned ) -} \ No newline at end of file + BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned, sort ) +} diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index 103d65e9..4f8e4ff1 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -8,6 +8,16 @@ - path: ./output/bowtie2/test.bowtie2.log - path: ./output/bowtie2/versions.yml +- name: bowtie2 align test_bowtie2_align_single_end + command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end_sorted -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config + tags: + - bowtie2 + - bowtie2/align + files: + - path: ./output/bowtie2/test.bam + - path: ./output/bowtie2/test.bowtie2.log + - path: ./output/bowtie2/versions.yml + - name: bowtie2 align test_bowtie2_align_paired_end command: nextflow run tests/modules/bowtie2/align -entry test_bowtie2_align_paired_end -c tests/config/nextflow.config -c tests/modules/bowtie2/align/nextflow.config tags: From 04f82d4d349573813964ff74ddddc79a4323e88a Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 13 May 2022 15:32:14 +0200 Subject: [PATCH 589/592] fix test name --- tests/modules/bowtie2/align/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/modules/bowtie2/align/test.yml b/tests/modules/bowtie2/align/test.yml index 4f8e4ff1..9c9ff7a1 100644 --- a/tests/modules/bowtie2/align/test.yml +++ b/tests/modules/bowtie2/align/test.yml @@ -8,7 +8,7 @@ - path: ./output/bowtie2/test.bowtie2.log - path: ./output/bowtie2/versions.yml -- name: bowtie2 align test_bowtie2_align_single_end +- name: bowtie2 align test_bowtie2_align_single_end_sorted command: nextflow run ./tests/modules/bowtie2/align -entry test_bowtie2_align_single_end_sorted -c ./tests/config/nextflow.config -c ./tests/modules/bowtie2/align/nextflow.config tags: - bowtie2 From 5a2e3035220f30ab2d6fec5ded5a365e327248e4 Mon Sep 17 00:00:00 2001 From: Matthias De Smet <11850640+matthdsm@users.noreply.github.com> Date: Fri, 13 May 2022 19:16:50 +0200 Subject: [PATCH 590/592] add PE sorted test --- tests/modules/bowtie2/align/main.nf | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/modules/bowtie2/align/main.nf b/tests/modules/bowtie2/align/main.nf index 75ab33ac..4f08b533 100644 --- a/tests/modules/bowtie2/align/main.nf +++ b/tests/modules/bowtie2/align/main.nf @@ -51,6 +51,22 @@ workflow test_bowtie2_align_paired_end { BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned, sort ) } +workflow test_bowtie2_align_paired_end_sorted { + input = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true), + file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) + ] + ] + fasta = file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + save_unaligned = false + sort = true + + BOWTIE2_BUILD ( fasta ) + BOWTIE2_ALIGN ( input, BOWTIE2_BUILD.out.index, save_unaligned, sort ) +} + workflow test_bowtie2_align_single_end_large_index { input = [ [ id:'test', single_end:true ], // meta map From ba14355891706c985cc17e62427f419db1a3472c Mon Sep 17 00:00:00 2001 From: Rike Date: Mon, 16 May 2022 09:54:40 +0200 Subject: [PATCH 591/592] revert markduplciatespark changes --- modules/gatk4/markduplicatesspark/main.nf | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/gatk4/markduplicatesspark/main.nf b/modules/gatk4/markduplicatesspark/main.nf index 4e01cccf..77e135db 100644 --- a/modules/gatk4/markduplicatesspark/main.nf +++ b/modules/gatk4/markduplicatesspark/main.nf @@ -34,8 +34,6 @@ process GATK4_MARKDUPLICATES_SPARK { """ export SPARK_USER=spark3 - - gatk --java-options "-Xmx${avail_mem}g" MarkDuplicatesSpark \\ $input_list \\ --output $prefix \\ From eb841d4ea0b3a1d259b02d4b434921de5c32a019 Mon Sep 17 00:00:00 2001 From: Rike Date: Mon, 16 May 2022 10:33:01 +0200 Subject: [PATCH 592/592] revert markduplciatespark changes --- tests/modules/gatk4/markduplicatesspark/nextflow.config | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/modules/gatk4/markduplicatesspark/nextflow.config b/tests/modules/gatk4/markduplicatesspark/nextflow.config index 83411693..8730f1c4 100644 --- a/tests/modules/gatk4/markduplicatesspark/nextflow.config +++ b/tests/modules/gatk4/markduplicatesspark/nextflow.config @@ -1,4 +1,5 @@ process { publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + }