diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml
index b66e8e95..179510d0 100644
--- a/assets/multiqc_config.yml
+++ b/assets/multiqc_config.yml
@@ -1,5 +1,5 @@
report_comment: >
- This report has been generated by the genomic-medicine-sweden/tomte
+ This report has been generated by the genomic-medicine-sweden/tomte
analysis pipeline. For information about how to interpret these results, please see the
documentation.
report_section_order:
diff --git a/modules.json b/modules.json
index 8b34a89d..24b93745 100644
--- a/modules.json
+++ b/modules.json
@@ -7,153 +7,153 @@
"nf-core": {
"bcftools/index": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"bcftools/mpileup": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"],
"patch": "modules/nf-core/bcftools/mpileup/bcftools-mpileup.diff"
},
"bcftools/stats": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"bcftools/view": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"cat/fastq": {
"branch": "master",
- "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"custom/dumpsoftwareversions": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "fc6caedab1c71113aa440900e5989dd1c03ec58f",
"installed_by": ["modules"]
},
"fastp": {
"branch": "master",
- "git_sha": "d497a4868ace3302016ea8ed4b395072d5e833cd",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"fastqc": {
"branch": "master",
- "git_sha": "a33464f205fa15305bfe268546f6607b6f4d4753",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"gatk4/asereadcounter": {
"branch": "master",
- "git_sha": "541811d779026c5d395925895fa5ed35e7216cc0",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"gatk4/bedtointervallist": {
"branch": "master",
- "git_sha": "2df2a11d5b12f2a73bca74f103691bc35d83c5fd",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"gatk4/createsequencedictionary": {
"branch": "master",
- "git_sha": "541811d779026c5d395925895fa5ed35e7216cc0",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"gatk4/haplotypecaller": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"gatk4/splitncigarreads": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"gatk4/variantfiltration": {
"branch": "master",
- "git_sha": "2df2a11d5b12f2a73bca74f103691bc35d83c5fd",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"gffcompare": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"gunzip": {
"branch": "master",
- "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"multiqc": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"picard/collectrnaseqmetrics": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"salmon/index": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"salmon/quant": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"samtools/faidx": {
"branch": "master",
- "git_sha": "fd742419940e01ba1c5ecb172c3e32ec840662fe",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"samtools/index": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"samtools/view": {
"branch": "master",
- "git_sha": "3ffae3598260a99e8db3207dead9f73f87f90d1f",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"star/align": {
"branch": "master",
- "git_sha": "57d75dbac06812c59798a48585032f6e50bb1914",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"star/genomegenerate": {
"branch": "master",
- "git_sha": "603ecbd9f45300c9788f197d2a15a005685b4220",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"stringtie/stringtie": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"tabix/bgziptabix": {
"branch": "master",
- "git_sha": "591b71642820933dcb3c954c934b397bd00d8e5e",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"tabix/tabix": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"ucsc/wigtobigwig": {
"branch": "master",
- "git_sha": "911696ea0b62df80e900ef244d7867d177971f73",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
},
"untar": {
"branch": "master",
- "git_sha": "5c460c5a4736974abde2843294f35307ee2b0e5e",
+ "git_sha": "8fc1d24c710ebe1d5de0f2447ec9439fd3d9d66a",
"installed_by": ["modules"]
}
}
diff --git a/modules/nf-core/bcftools/index/environment.yml b/modules/nf-core/bcftools/index/environment.yml
new file mode 100644
index 00000000..57631f42
--- /dev/null
+++ b/modules/nf-core/bcftools/index/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bcftools=1.17
diff --git a/modules/nf-core/bcftools/index/main.nf b/modules/nf-core/bcftools/index/main.nf
index 43360aab..b94e9b4e 100644
--- a/modules/nf-core/bcftools/index/main.nf
+++ b/modules/nf-core/bcftools/index/main.nf
@@ -2,7 +2,7 @@ process BCFTOOLS_INDEX {
tag "$meta.id"
label 'process_low'
- conda "bioconda::bcftools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0':
'biocontainers/bcftools:1.17--haef29d1_0' }"
@@ -34,4 +34,18 @@ process BCFTOOLS_INDEX {
bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//')
END_VERSIONS
"""
+
+ stub:
+ def args = task.ext.args ?: ''
+ def prefix = task.ext.prefix ?: "${meta.id}"
+ def extension = args.contains("--tsi") || args.contains("-t") ? "tbi" :
+ "csi"
+ """
+ touch ${vcf}.${extension}
+
+ cat <<-END_VERSIONS > versions.yml
+ "${task.process}":
+ bcftools: \$(bcftools --version 2>&1 | head -n1 | sed 's/^.*bcftools //; s/ .*\$//')
+ END_VERSIONS
+ """
}
diff --git a/modules/nf-core/bcftools/index/meta.yml b/modules/nf-core/bcftools/index/meta.yml
index b883fa5f..fc340cbc 100644
--- a/modules/nf-core/bcftools/index/meta.yml
+++ b/modules/nf-core/bcftools/index/meta.yml
@@ -14,7 +14,6 @@ tools:
tool_dev_url: https://github.com/samtools/bcftools
doi: "10.1093/gigascience/giab008"
licence: ["MIT", "GPL-3.0-or-later"]
-
input:
- meta:
type: map
@@ -25,7 +24,6 @@ input:
type: file
description: VCF file (optionally GZIPPED)
pattern: "*.{vcf,vcf.gz}"
-
output:
- meta:
type: map
@@ -44,6 +42,7 @@ output:
type: file
description: Alternative VCF file index file for larger files (activated with -t parameter)
pattern: "*.tbi"
-
authors:
- "@jfy133"
+maintainers:
+ - "@jfy133"
diff --git a/modules/nf-core/bcftools/mpileup/environment.yml b/modules/nf-core/bcftools/mpileup/environment.yml
new file mode 100644
index 00000000..57631f42
--- /dev/null
+++ b/modules/nf-core/bcftools/mpileup/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bcftools=1.17
diff --git a/modules/nf-core/bcftools/mpileup/main.nf b/modules/nf-core/bcftools/mpileup/main.nf
index e5c769d8..796713c1 100644
--- a/modules/nf-core/bcftools/mpileup/main.nf
+++ b/modules/nf-core/bcftools/mpileup/main.nf
@@ -2,14 +2,14 @@ process BCFTOOLS_MPILEUP {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::bcftools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0':
'biocontainers/bcftools:1.17--haef29d1_0' }"
input:
tuple val(meta), path(bam), path(intervals)
- path fasta
+ tuple val(meta2), path(fasta)
val save_mpileup
output:
diff --git a/modules/nf-core/bcftools/mpileup/meta.yml b/modules/nf-core/bcftools/mpileup/meta.yml
index 5619a6f5..65410ddd 100644
--- a/modules/nf-core/bcftools/mpileup/meta.yml
+++ b/modules/nf-core/bcftools/mpileup/meta.yml
@@ -25,6 +25,10 @@ input:
- intervals:
type: file
description: Input intervals file. A file (commonly '.bed') containing regions to subset
+ - meta:
+ type: map
+ description: |
+ Groovy Map containing information about the genome fasta, e.g. [ id: 'sarscov2' ]
- fasta:
type: file
description: FASTA reference file
@@ -61,3 +65,6 @@ output:
authors:
- "@joseespinosa"
- "@drpatelh"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
diff --git a/modules/nf-core/bcftools/stats/environment.yml b/modules/nf-core/bcftools/stats/environment.yml
new file mode 100644
index 00000000..57631f42
--- /dev/null
+++ b/modules/nf-core/bcftools/stats/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bcftools=1.17
diff --git a/modules/nf-core/bcftools/stats/main.nf b/modules/nf-core/bcftools/stats/main.nf
index 46ce4ba6..b3a5f23b 100644
--- a/modules/nf-core/bcftools/stats/main.nf
+++ b/modules/nf-core/bcftools/stats/main.nf
@@ -2,16 +2,18 @@ process BCFTOOLS_STATS {
tag "$meta.id"
label 'process_single'
- conda "bioconda::bcftools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0':
'biocontainers/bcftools:1.17--haef29d1_0' }"
input:
- tuple val(meta), path(vcf), path(tbi)
- path regions
- path targets
- path samples
+ tuple val(meta), path(vcf), path(tbi)
+ tuple val(meta2), path(regions)
+ tuple val(meta3), path(targets)
+ tuple val(meta4), path(samples)
+ tuple val(meta5), path(exons)
+ tuple val(meta6), path(fasta)
output:
tuple val(meta), path("*stats.txt"), emit: stats
@@ -26,12 +28,16 @@ process BCFTOOLS_STATS {
def regions_file = regions ? "--regions-file ${regions}" : ""
def targets_file = targets ? "--targets-file ${targets}" : ""
def samples_file = samples ? "--samples-file ${samples}" : ""
+ def reference_fasta = fasta ? "--fasta-ref ${fasta}" : ""
+ def exons_file = exons ? "--exons ${exons}" : ""
"""
bcftools stats \\
$args \\
$regions_file \\
$targets_file \\
$samples_file \\
+ $reference_fasta \\
+ $exons_file \\
$vcf > ${prefix}.bcftools_stats.txt
cat <<-END_VERSIONS > versions.yml
diff --git a/modules/nf-core/bcftools/stats/meta.yml b/modules/nf-core/bcftools/stats/meta.yml
index f7afcd50..7ea2103e 100644
--- a/modules/nf-core/bcftools/stats/meta.yml
+++ b/modules/nf-core/bcftools/stats/meta.yml
@@ -41,6 +41,16 @@ input:
description: |
Optional, file of sample names to be included or excluded.
e.g. 'file.tsv'
+ - exons:
+ type: file
+ description: |
+ Tab-delimited file with exons for indel frameshifts (chr,beg,end; 1-based, inclusive, optionally bgzip compressed).
+ e.g. 'exons.tsv.gz'
+ - fasta:
+ type: file
+ description: |
+ Faidx indexed reference sequence file to determine INDEL context.
+ e.g. 'reference.fa'
output:
- meta:
type: map
@@ -59,3 +69,9 @@ authors:
- "@joseespinosa"
- "@drpatelh"
- "@SusiJo"
+ - "@TCLamnidis"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
+ - "@SusiJo"
+ - "@TCLamnidis"
diff --git a/modules/nf-core/bcftools/view/environment.yml b/modules/nf-core/bcftools/view/environment.yml
new file mode 100644
index 00000000..57631f42
--- /dev/null
+++ b/modules/nf-core/bcftools/view/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::bcftools=1.17
diff --git a/modules/nf-core/bcftools/view/main.nf b/modules/nf-core/bcftools/view/main.nf
index 86f807d3..6afdd134 100644
--- a/modules/nf-core/bcftools/view/main.nf
+++ b/modules/nf-core/bcftools/view/main.nf
@@ -2,7 +2,7 @@ process BCFTOOLS_VIEW {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::bcftools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/bcftools:1.17--haef29d1_0':
'biocontainers/bcftools:1.17--haef29d1_0' }"
diff --git a/modules/nf-core/bcftools/view/meta.yml b/modules/nf-core/bcftools/view/meta.yml
index 326fd1fa..eaa12b56 100644
--- a/modules/nf-core/bcftools/view/meta.yml
+++ b/modules/nf-core/bcftools/view/meta.yml
@@ -5,7 +5,6 @@ keywords:
- view
- bcftools
- VCF
-
tools:
- view:
description: |
@@ -61,3 +60,5 @@ output:
pattern: "versions.yml"
authors:
- "@abhi18av"
+maintainers:
+ - "@abhi18av"
diff --git a/modules/nf-core/cat/fastq/environment.yml b/modules/nf-core/cat/fastq/environment.yml
new file mode 100644
index 00000000..222b301f
--- /dev/null
+++ b/modules/nf-core/cat/fastq/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - conda-forge::sed=4.7
diff --git a/modules/nf-core/cat/fastq/main.nf b/modules/nf-core/cat/fastq/main.nf
index 5021e6fc..3d963784 100644
--- a/modules/nf-core/cat/fastq/main.nf
+++ b/modules/nf-core/cat/fastq/main.nf
@@ -2,7 +2,7 @@ process CAT_FASTQ {
tag "$meta.id"
label 'process_single'
- conda "conda-forge::sed=4.7"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/ubuntu:20.04' :
'nf-core/ubuntu:20.04' }"
diff --git a/modules/nf-core/cat/fastq/meta.yml b/modules/nf-core/cat/fastq/meta.yml
index 8a39e309..db4ac3c7 100644
--- a/modules/nf-core/cat/fastq/meta.yml
+++ b/modules/nf-core/cat/fastq/meta.yml
@@ -34,7 +34,9 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@joseespinosa"
- "@drpatelh"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
diff --git a/modules/nf-core/cat/fastq/tests/main.nf.test b/modules/nf-core/cat/fastq/tests/main.nf.test
new file mode 100644
index 00000000..f5f94182
--- /dev/null
+++ b/modules/nf-core/cat/fastq/tests/main.nf.test
@@ -0,0 +1,143 @@
+nextflow_process {
+
+ name "Test Process CAT_FASTQ"
+ script "../main.nf"
+ process "CAT_FASTQ"
+ tag "modules"
+ tag "modules_nfcore"
+ tag "cat"
+ tag "cat/fastq"
+
+ test("test_cat_fastq_single_end") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ input[0] = [
+ [ id:'test', single_end:true ], // meta map
+ [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true) ]
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out.reads).match() },
+ { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ )
+ }
+ }
+
+ test("test_cat_fastq_paired_end") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ input[0] = [
+ [ 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),
+ file(params.test_data['sarscov2']['illumina']['test2_1_fastq_gz'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test2_2_fastq_gz'], checkIfExists: true) ]
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out.reads).match() },
+ { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ )
+ }
+ }
+
+ test("test_cat_fastq_single_end_same_name") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ input[0] = [
+ [ id:'test', single_end:true ], // meta map
+ [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ]
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out.reads).match() },
+ { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ )
+ }
+ }
+
+ test("test_cat_fastq_paired_end_same_name") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ input[0] = [
+ [ 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),
+ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true),
+ file(params.test_data['sarscov2']['illumina']['test_2_fastq_gz'], checkIfExists: true) ]
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out.reads).match() },
+ { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ )
+ }
+ }
+
+ test("test_cat_fastq_single_end_single_file") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ input[0] = [
+ [ id:'test', single_end:true ], // meta map
+ [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)]
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out.reads).match() },
+ { assert path(process.out.versions.get(0)).getText().contains("cat") }
+ )
+ }
+ }
+}
diff --git a/modules/nf-core/cat/fastq/tests/main.nf.test.snap b/modules/nf-core/cat/fastq/tests/main.nf.test.snap
new file mode 100644
index 00000000..ec2342e5
--- /dev/null
+++ b/modules/nf-core/cat/fastq/tests/main.nf.test.snap
@@ -0,0 +1,78 @@
+{
+ "test_cat_fastq_single_end": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.merged.fastq.gz:md5,f9cf5e375f7de81a406144a2c70cc64d"
+ ]
+ ]
+ ],
+ "timestamp": "2023-10-17T23:19:12.990284837"
+ },
+ "test_cat_fastq_single_end_same_name": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.merged.fastq.gz:md5,63f817db7a29a03eb538104495556f66"
+ ]
+ ]
+ ],
+ "timestamp": "2023-10-17T23:19:31.554568147"
+ },
+ "test_cat_fastq_single_end_single_file": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.merged.fastq.gz:md5,e325ef7deb4023447a1f074e285761af"
+ ]
+ ]
+ ],
+ "timestamp": "2023-10-17T23:19:49.629360033"
+ },
+ "test_cat_fastq_paired_end_same_name": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ [
+ "test_1.merged.fastq.gz:md5,63f817db7a29a03eb538104495556f66",
+ "test_2.merged.fastq.gz:md5,fe9f266f43a6fc3dcab690a18419a56e"
+ ]
+ ]
+ ]
+ ],
+ "timestamp": "2023-10-17T23:19:40.711617539"
+ },
+ "test_cat_fastq_paired_end": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ [
+ "test_1.merged.fastq.gz:md5,f9cf5e375f7de81a406144a2c70cc64d",
+ "test_2.merged.fastq.gz:md5,77c8e966e130d8c6b6ec9be52fcb2bda"
+ ]
+ ]
+ ]
+ ],
+ "timestamp": "2023-10-18T07:53:20.923560211"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/cat/fastq/tests/tags.yml b/modules/nf-core/cat/fastq/tests/tags.yml
new file mode 100644
index 00000000..6ac43614
--- /dev/null
+++ b/modules/nf-core/cat/fastq/tests/tags.yml
@@ -0,0 +1,2 @@
+cat/fastq:
+ - modules/nf-core/cat/fastq/**
diff --git a/modules/nf-core/custom/dumpsoftwareversions/environment.yml b/modules/nf-core/custom/dumpsoftwareversions/environment.yml
new file mode 100644
index 00000000..9d0e6b20
--- /dev/null
+++ b/modules/nf-core/custom/dumpsoftwareversions/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::multiqc=1.17
diff --git a/modules/nf-core/custom/dumpsoftwareversions/main.nf b/modules/nf-core/custom/dumpsoftwareversions/main.nf
index ebc87273..7685b33c 100644
--- a/modules/nf-core/custom/dumpsoftwareversions/main.nf
+++ b/modules/nf-core/custom/dumpsoftwareversions/main.nf
@@ -2,10 +2,10 @@ process CUSTOM_DUMPSOFTWAREVERSIONS {
label 'process_single'
// Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container
- conda "bioconda::multiqc=1.14"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' :
- 'biocontainers/multiqc:1.14--pyhdfd78af_0' }"
+ 'https://depot.galaxyproject.org/singularity/multiqc:1.17--pyhdfd78af_0' :
+ 'biocontainers/multiqc:1.17--pyhdfd78af_0' }"
input:
path versions
diff --git a/modules/nf-core/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/custom/dumpsoftwareversions/meta.yml
index c32657de..9414c32d 100644
--- a/modules/nf-core/custom/dumpsoftwareversions/meta.yml
+++ b/modules/nf-core/custom/dumpsoftwareversions/meta.yml
@@ -16,7 +16,6 @@ input:
type: file
description: YML file containing software versions
pattern: "*.yml"
-
output:
- yml:
type: file
@@ -30,7 +29,9 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@drpatelh"
- "@grst"
+maintainers:
+ - "@drpatelh"
+ - "@grst"
diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test
new file mode 100644
index 00000000..eec1db10
--- /dev/null
+++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test
@@ -0,0 +1,38 @@
+nextflow_process {
+
+ name "Test Process CUSTOM_DUMPSOFTWAREVERSIONS"
+ script "../main.nf"
+ process "CUSTOM_DUMPSOFTWAREVERSIONS"
+ tag "modules"
+ tag "modules_nfcore"
+ tag "custom"
+ tag "dumpsoftwareversions"
+ tag "custom/dumpsoftwareversions"
+
+ test("Should run without failures") {
+ when {
+ process {
+ """
+ def tool1_version = '''
+ TOOL1:
+ tool1: 0.11.9
+ '''.stripIndent()
+
+ def tool2_version = '''
+ TOOL2:
+ tool2: 1.9
+ '''.stripIndent()
+
+ input[0] = Channel.of(tool1_version, tool2_version).collectFile()
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+ }
+}
diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap
new file mode 100644
index 00000000..4274ed57
--- /dev/null
+++ b/modules/nf-core/custom/dumpsoftwareversions/tests/main.nf.test.snap
@@ -0,0 +1,27 @@
+{
+ "Should run without failures": {
+ "content": [
+ {
+ "0": [
+ "software_versions.yml:md5,1c851188476409cda5752ce971b20b58"
+ ],
+ "1": [
+ "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d"
+ ],
+ "2": [
+ "versions.yml:md5,3843ac526e762117eedf8825b40683df"
+ ],
+ "mqc_yml": [
+ "software_versions_mqc.yml:md5,2570f4ba271ad08357b0d3d32a9cf84d"
+ ],
+ "versions": [
+ "versions.yml:md5,3843ac526e762117eedf8825b40683df"
+ ],
+ "yml": [
+ "software_versions.yml:md5,1c851188476409cda5752ce971b20b58"
+ ]
+ }
+ ],
+ "timestamp": "2023-11-03T14:43:22.157011"
+ }
+}
diff --git a/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml
new file mode 100644
index 00000000..405aa24a
--- /dev/null
+++ b/modules/nf-core/custom/dumpsoftwareversions/tests/tags.yml
@@ -0,0 +1,2 @@
+custom/dumpsoftwareversions:
+ - modules/nf-core/custom/dumpsoftwareversions/**
diff --git a/modules/nf-core/fastp/environment.yml b/modules/nf-core/fastp/environment.yml
new file mode 100644
index 00000000..19ccec25
--- /dev/null
+++ b/modules/nf-core/fastp/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::fastp=0.23.4
diff --git a/modules/nf-core/fastp/main.nf b/modules/nf-core/fastp/main.nf
index 831b7f12..c8e815ae 100644
--- a/modules/nf-core/fastp/main.nf
+++ b/modules/nf-core/fastp/main.nf
@@ -2,7 +2,7 @@ process FASTP {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::fastp=0.23.4"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/fastp:0.23.4--h5f740d0_0' :
'biocontainers/fastp:0.23.4--h5f740d0_0' }"
diff --git a/modules/nf-core/fastp/meta.yml b/modules/nf-core/fastp/meta.yml
index 197ea7ca..c22a16ab 100644
--- a/modules/nf-core/fastp/meta.yml
+++ b/modules/nf-core/fastp/meta.yml
@@ -33,7 +33,6 @@ input:
- save_merged:
type: boolean
description: Specify true to save all merged reads to the a file ending in `*.merged.fastq.gz`
-
output:
- meta:
type: map
@@ -71,3 +70,6 @@ output:
authors:
- "@drpatelh"
- "@kevinmenden"
+maintainers:
+ - "@drpatelh"
+ - "@kevinmenden"
diff --git a/modules/nf-core/fastp/tests/main.nf.test b/modules/nf-core/fastp/tests/main.nf.test
new file mode 100644
index 00000000..f610b735
--- /dev/null
+++ b/modules/nf-core/fastp/tests/main.nf.test
@@ -0,0 +1,485 @@
+nextflow_process {
+
+ name "Test Process FASTP"
+ script "../main.nf"
+ process "FASTP"
+ tag "modules"
+ tag "modules_nfcore"
+ tag "fastp"
+
+ test("test_fastp_single_end") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ adapter_fasta = []
+ save_trimmed_fail = false
+ save_merged = false
+
+ input[0] = [
+ [ id:'test', single_end:true ],
+ [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ]
+ ]
+
+ input[1] = adapter_fasta
+ input[2] = save_trimmed_fail
+ input[3] = save_merged
+ """
+ }
+ }
+
+ then {
+ def html_text = [ "Q20 bases:
12.922000 K (92.984097%)",
+ "single end (151 cycles)" ]
+ def log_text = [ "Q20 bases: 12922(92.9841%)",
+ "reads passed filter: 99" ]
+ def read_lines = ["@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1",
+ "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT",
+ "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE
+ { assert path(process.out.reads.get(0).get(1)).linesGzip.contains(read_line) }
+ }
+ },
+ { html_text.each { html_part ->
+ { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) }
+ }
+ },
+ { assert snapshot(process.out.json).match("test_fastp_single_end_json") },
+ { log_text.each { log_part ->
+ { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) }
+ }
+ },
+ { assert snapshot(process.out.versions).match("versions") }
+ )
+ }
+ }
+
+ test("test_fastp_paired_end") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ adapter_fasta = []
+ save_trimmed_fail = false
+ save_merged = false
+
+ input[0] = [
+ [ 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) ]
+ ]
+
+ input[1] = adapter_fasta
+ input[2] = save_trimmed_fail
+ input[3] = save_merged
+ """
+ }
+ }
+
+ then {
+ def html_text = [ "Q20 bases: | 25.719000 K (93.033098%)",
+ "The input has little adapter percentage (~0.000000%), probably it's trimmed before."]
+ def log_text = [ "No adapter detected for read1",
+ "Q30 bases: 12281(88.3716%)"]
+ def json_text = ['"passed_filter_reads": 198']
+ def read1_lines = ["@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1",
+ "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT",
+ "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE
+ { assert path(process.out.reads.get(0).get(1).get(0)).linesGzip.contains(read1_line) }
+ }
+ },
+ { read2_lines.each { read2_line ->
+ { assert path(process.out.reads.get(0).get(1).get(1)).linesGzip.contains(read2_line) }
+ }
+ },
+ { html_text.each { html_part ->
+ { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) }
+ }
+ },
+ { json_text.each { json_part ->
+ { assert path(process.out.json.get(0).get(1)).getText().contains(json_part) }
+ }
+ },
+ { log_text.each { log_part ->
+ { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) }
+ }
+ },
+ { assert snapshot(process.out.versions).match("versions") }
+ )
+ }
+ }
+
+ test("fastp test_fastp_interleaved") {
+ config './nextflow.config'
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ adapter_fasta = []
+ save_trimmed_fail = false
+ save_merged = false
+
+ input[0] = [ [ id:'test', single_end:true ], // meta map
+ [ file(params.test_data['sarscov2']['illumina']['test_interleaved_fastq_gz'], checkIfExists: true) ]
+ ]
+
+ input[1] = adapter_fasta
+ input[2] = save_trimmed_fail
+ input[3] = save_merged
+ """
+ }
+ }
+
+ then {
+ def html_text = [ "Q20 bases: | 25.719000 K (93.033098%)",
+ "paired end (151 cycles + 151 cycles)"]
+ def log_text = [ "Q20 bases: 12922(92.9841%)",
+ "reads passed filter: 198"]
+ def read_lines = [ "@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1",
+ "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT",
+ "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE
+ { assert path(process.out.reads.get(0).get(1)).linesGzip.contains(read_line) }
+ }
+ },
+ { html_text.each { html_part ->
+ { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) }
+ }
+ },
+ { assert snapshot(process.out.json).match("fastp test_fastp_interleaved_json") },
+ { log_text.each { log_part ->
+ { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) }
+ }
+ },
+ { assert snapshot(process.out.versions).match("versions") }
+ )
+ }
+ }
+
+ test("test_fastp_single_end_trim_fail") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ adapter_fasta = []
+ save_trimmed_fail = true
+ save_merged = false
+
+ input[0] = [ [ id:'test', single_end:true ], // meta map
+ [ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true) ]
+ ]
+ input[1] = adapter_fasta
+ input[2] = save_trimmed_fail
+ input[3] = save_merged
+ """
+ }
+ }
+
+ then {
+ def html_text = [ "Q20 bases: | 12.922000 K (92.984097%)",
+ "single end (151 cycles)"]
+ def log_text = [ "Q20 bases: 12922(92.9841%)",
+ "reads passed filter: 99" ]
+ def read_lines = [ "@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1",
+ "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT",
+ "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE
+ { assert path(process.out.reads.get(0).get(1)).linesGzip.contains(read_line) }
+ }
+ },
+ { failed_read_lines.each { failed_read_line ->
+ { assert path(process.out.reads_fail.get(0).get(1)).linesGzip.contains(failed_read_line) }
+ }
+ },
+ { html_text.each { html_part ->
+ { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) }
+ }
+ },
+ { assert snapshot(process.out.json).match("test_fastp_single_end_trim_fail_json") },
+ { log_text.each { log_part ->
+ { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) }
+ }
+ },
+ { assert snapshot(process.out.versions).match("versions") }
+ )
+ }
+ }
+
+ test("test_fastp_paired_end_trim_fail") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ adapter_fasta = []
+ save_trimmed_fail = true
+ save_merged = false
+
+ input[0] = [
+ [ 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)
+ ]
+ ]
+ input[1] = adapter_fasta
+ input[2] = save_trimmed_fail
+ input[3] = save_merged
+ """
+ }
+ }
+
+ then {
+ def html_text = [ "Q20 bases: | 25.719000 K (93.033098%)",
+ "The input has little adapter percentage (~0.000000%), probably it's trimmed before."]
+ def log_text = [ "No adapter detected for read1",
+ "Q30 bases: 12281(88.3716%)"]
+ def json_text = ['"passed_filter_reads": 198']
+ def read1_lines = ["@ERR5069949.2151832 NS500628:121:HK3MMAFX2:2:21208:10793:15304/1",
+ "TCATAAACCAAAGCACTCACAGTGTCAACAATTTCAGCAGGACAACGCCGACAAGTTCCGAGGAACATGTCTGGACCTATAGTTTTCATAAGTCTACACACTGAATTGAAATATTCTGGTTCTAGTGTGCCCTTAGTTAGCAATGTGCGT",
+ "AAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAEEEEE
+ { assert path(process.out.reads.get(0).get(1).get(0)).linesGzip.contains(read1_line) }
+ }
+ },
+ { read2_lines.each { read2_line ->
+ { assert path(process.out.reads.get(0).get(1).get(1)).linesGzip.contains(read2_line) }
+ }
+ },
+ { failed_read2_lines.each { failed_read2_line ->
+ { assert path(process.out.reads_fail.get(0).get(1).get(1)).linesGzip.contains(failed_read2_line) }
+ }
+ },
+ { html_text.each { html_part ->
+ { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) }
+ }
+ },
+ { json_text.each { json_part ->
+ { assert path(process.out.json.get(0).get(1)).getText().contains(json_part) }
+ }
+ },
+ { log_text.each { log_part ->
+ { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) }
+ }
+ },
+ { assert snapshot(process.out.versions).match("versions") }
+ )
+ }
+ }
+
+ test("test_fastp_paired_end_merged") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ adapter_fasta = []
+ save_trimmed_fail = false
+ save_merged = true
+
+ input[0] = [ [ 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) ]
+ ]
+ input[1] = adapter_fasta
+ input[2] = save_trimmed_fail
+ input[3] = save_merged
+ """
+ }
+ }
+
+ then {
+ def html_text = [ ""]
+ def log_text = [ "Merged and filtered:",
+ "total reads: 75",
+ "total bases: 13683"]
+ def json_text = ['"merged_and_filtered": {', '"total_reads": 75', '"total_bases": 13683']
+ def read1_lines = [ "@ERR5069949.1066259 NS500628:121:HK3MMAFX2:1:11312:18369:8333/1",
+ "CCTTATGACAGCAAGAACTGTGTATGATGATGGTGCTAGGAGAGTGTGGACACTTATGAATGTCTTGACACTCGTTTATAAAGTTTATTATGGTAATGCTTTAGATCAAGCCATTTCCATGTGGGCTCTTATAATCTCTGTTACTTC",
+ "AAAAAEAEEAEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEAEEEEEEEEEEEEEEEEE/EAEEEEEE/6EEEEEEEEEEAEEAEEE/EE/AEEAEEEEEAEEEA/EEAAEAE
+ { assert path(process.out.reads.get(0).get(1).get(0)).linesGzip.contains(read1_line) }
+ }
+ },
+ { read2_lines.each { read2_line ->
+ { assert path(process.out.reads.get(0).get(1).get(1)).linesGzip.contains(read2_line) }
+ }
+ },
+ { read_merged_lines.each { read_merged_line ->
+ { assert path(process.out.reads_merged.get(0).get(1)).linesGzip.contains(read_merged_line) }
+ }
+ },
+ { html_text.each { html_part ->
+ { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) }
+ }
+ },
+ { json_text.each { json_part ->
+ { assert path(process.out.json.get(0).get(1)).getText().contains(json_part) }
+ }
+ },
+ { log_text.each { log_part ->
+ { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) }
+ }
+ },
+ { assert snapshot(process.out.versions).match("versions") }
+ )
+ }
+ }
+
+ test("test_fastp_paired_end_merged_adapterlist") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ adapter_fasta = file("https://github.com/nf-core/test-datasets/raw/modules/data/delete_me/fastp/adapters.fasta", checkIfExists: true)
+ save_trimmed_fail = false
+ save_merged = true
+
+ input[0] = [ [ 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) ]
+ ]
+ input[1] = adapter_fasta
+ input[2] = save_trimmed_fail
+ input[3] = save_merged
+ """
+ }
+ }
+
+ then {
+ def html_text = [ ""]
+ def log_text = [ "Merged and filtered:",
+ "total reads: 75",
+ "total bases: 13683"]
+ def json_text = ['"merged_and_filtered": {', '"total_reads": 75', '"total_bases": 13683',"--adapter_fasta"]
+ def read1_lines = ["@ERR5069949.1066259 NS500628:121:HK3MMAFX2:1:11312:18369:8333/1",
+ "CCTTATGACAGCAAGAACTGTGTATGATGATGGTGCTAGGAGAGTGTGGACACTTATGAATGTCTTGACACTCGTTTATAAAGTTTATTATGGTAATGCTTTAGATCAAGCCATTTCCATGTGGGCTCTTATAATCTCTGTTACTTC",
+ "AAAAAEAEEAEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEAEEEEEEEEEEEEEEEEE/EAEEEEEE/6EEEEEEEEEEAEEAEEE/EE/AEEAEEEEEAEEEA/EEAAEAE
+ { assert path(process.out.reads.get(0).get(1).get(0)).linesGzip.contains(read1_line) }
+ }
+ },
+ { read2_lines.each { read2_line ->
+ { assert path(process.out.reads.get(0).get(1).get(1)).linesGzip.contains(read2_line) }
+ }
+ },
+ { read_merged_lines.each { read_merged_line ->
+ { assert path(process.out.reads_merged.get(0).get(1)).linesGzip.contains(read_merged_line) }
+ }
+ },
+ { html_text.each { html_part ->
+ { assert path(process.out.html.get(0).get(1)).getText().contains(html_part) }
+ }
+ },
+ { json_text.each { json_part ->
+ { assert path(process.out.json.get(0).get(1)).getText().contains(json_part) }
+ }
+ },
+ { log_text.each { log_part ->
+ { assert path(process.out.log.get(0).get(1)).getText().contains(log_part) }
+ }
+ },
+ { assert snapshot(process.out.versions).match("versions") }
+ )
+ }
+ }
+}
diff --git a/modules/nf-core/fastp/tests/main.nf.test.snap b/modules/nf-core/fastp/tests/main.nf.test.snap
new file mode 100644
index 00000000..0fa68c7d
--- /dev/null
+++ b/modules/nf-core/fastp/tests/main.nf.test.snap
@@ -0,0 +1,52 @@
+{
+ "fastp test_fastp_interleaved_json": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.fastp.json:md5,168f516f7bd4b7b6c32da7cba87299a4"
+ ]
+ ]
+ ],
+ "timestamp": "2023-10-17T11:04:45.794175881"
+ },
+ "test_fastp_single_end_json": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.fastp.json:md5,c852d7a6dba5819e4ac8d9673bedcacc"
+ ]
+ ]
+ ],
+ "timestamp": "2023-10-17T11:04:10.566343705"
+ },
+ "versions": {
+ "content": [
+ [
+ "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02"
+ ]
+ ],
+ "timestamp": "2023-10-17T11:04:10.582076024"
+ },
+ "test_fastp_single_end_trim_fail_json": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test.fastp.json:md5,9a7ee180f000e8d00c7fb67f06293eb5"
+ ]
+ ]
+ ],
+ "timestamp": "2023-10-17T11:05:00.379878948"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/fastp/tests/nextflow.config b/modules/nf-core/fastp/tests/nextflow.config
new file mode 100644
index 00000000..0f7849ad
--- /dev/null
+++ b/modules/nf-core/fastp/tests/nextflow.config
@@ -0,0 +1,6 @@
+process {
+
+ withName: FASTP {
+ ext.args = "--interleaved_in"
+ }
+}
diff --git a/modules/nf-core/fastp/tests/tags.yml b/modules/nf-core/fastp/tests/tags.yml
new file mode 100644
index 00000000..c1afcce7
--- /dev/null
+++ b/modules/nf-core/fastp/tests/tags.yml
@@ -0,0 +1,2 @@
+fastp:
+ - modules/nf-core/fastp/**
diff --git a/modules/nf-core/fastqc/environment.yml b/modules/nf-core/fastqc/environment.yml
new file mode 100644
index 00000000..f52a53a0
--- /dev/null
+++ b/modules/nf-core/fastqc/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::fastqc=0.12.1
diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf
index 249f9064..50e59f2b 100644
--- a/modules/nf-core/fastqc/main.nf
+++ b/modules/nf-core/fastqc/main.nf
@@ -2,10 +2,10 @@ process FASTQC {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::fastqc=0.11.9"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0' :
- 'biocontainers/fastqc:0.11.9--0' }"
+ 'https://depot.galaxyproject.org/singularity/fastqc:0.12.1--hdfd78af_0' :
+ 'biocontainers/fastqc:0.12.1--hdfd78af_0' }"
input:
tuple val(meta), path(reads)
diff --git a/modules/nf-core/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml
index 4da5bb5a..ee5507e0 100644
--- a/modules/nf-core/fastqc/meta.yml
+++ b/modules/nf-core/fastqc/meta.yml
@@ -50,3 +50,8 @@ authors:
- "@grst"
- "@ewels"
- "@FelixKrueger"
+maintainers:
+ - "@drpatelh"
+ - "@grst"
+ - "@ewels"
+ - "@FelixKrueger"
diff --git a/modules/nf-core/fastqc/tests/main.nf.test b/modules/nf-core/fastqc/tests/main.nf.test
index badb6716..6437a144 100644
--- a/modules/nf-core/fastqc/tests/main.nf.test
+++ b/modules/nf-core/fastqc/tests/main.nf.test
@@ -1,10 +1,11 @@
nextflow_process {
name "Test Process FASTQC"
- script "modules/nf-core/fastqc/main.nf"
+ script "../main.nf"
process "FASTQC"
- tag "fastqc"
+ tag "modules"
tag "modules_nfcore"
+ tag "fastqc"
test("Single-Read") {
diff --git a/modules/nf-core/fastqc/tests/main.nf.test.snap b/modules/nf-core/fastqc/tests/main.nf.test.snap
index 9e5e3379..636a32ce 100644
--- a/modules/nf-core/fastqc/tests/main.nf.test.snap
+++ b/modules/nf-core/fastqc/tests/main.nf.test.snap
@@ -2,9 +2,9 @@
"versions": {
"content": [
[
- "versions.yml:md5,fe97b802cfb90f1f335e8a77f6258e30"
+ "versions.yml:md5,e1cc25ca8af856014824abd842e93978"
]
],
- "timestamp": "2023-10-02T15:26:43+0000"
+ "timestamp": "2023-10-09T23:40:54+0000"
}
}
\ No newline at end of file
diff --git a/modules/nf-core/fastqc/tests/tags.yml b/modules/nf-core/fastqc/tests/tags.yml
new file mode 100644
index 00000000..7834294b
--- /dev/null
+++ b/modules/nf-core/fastqc/tests/tags.yml
@@ -0,0 +1,2 @@
+fastqc:
+ - modules/nf-core/fastqc/**
diff --git a/modules/nf-core/gatk4/asereadcounter/environment.yml b/modules/nf-core/gatk4/asereadcounter/environment.yml
new file mode 100644
index 00000000..16241b6d
--- /dev/null
+++ b/modules/nf-core/gatk4/asereadcounter/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::gatk4=4.4.0.0
diff --git a/modules/nf-core/gatk4/asereadcounter/main.nf b/modules/nf-core/gatk4/asereadcounter/main.nf
index e64d2697..1be36cab 100644
--- a/modules/nf-core/gatk4/asereadcounter/main.nf
+++ b/modules/nf-core/gatk4/asereadcounter/main.nf
@@ -2,7 +2,7 @@ process GATK4_ASEREADCOUNTER {
tag "$meta.id"
label 'process_single'
- conda "bioconda::gatk4=4.4.0.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0':
'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }"
@@ -36,7 +36,8 @@ process GATK4_ASEREADCOUNTER {
avail_mem = (task.memory.mega*0.8).intValue()
}
"""
- gatk --java-options "-Xmx${avail_mem}M" ASEReadCounter \\
+ gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\
+ ASEReadCounter \\
--output ${prefix}_ase.csv \\
--input ${input} \\
--variant ${vcf} \\
diff --git a/modules/nf-core/gatk4/asereadcounter/meta.yml b/modules/nf-core/gatk4/asereadcounter/meta.yml
index f3a9bfa1..2282322d 100644
--- a/modules/nf-core/gatk4/asereadcounter/meta.yml
+++ b/modules/nf-core/gatk4/asereadcounter/meta.yml
@@ -1,9 +1,10 @@
name: "gatk4_asereadcounter"
description: Calculates the allele-specific read counts for alle-specific expression analysis of RNAseq data
keywords:
+ - allele-specific
- asereadcounter
- gatk4
- - allele-specific
+ - vcf
tools:
- "gatk4":
description: |
@@ -14,7 +15,6 @@ tools:
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
@@ -44,7 +44,6 @@ input:
- intervals:
type: file
description: interval file
-
output:
- meta:
type: map
@@ -59,6 +58,7 @@ output:
type: file
description: output file
pattern: "*.{csv}"
-
authors:
- "@Lucpen"
+maintainers:
+ - "@Lucpen"
diff --git a/modules/nf-core/gatk4/bedtointervallist/environment.yml b/modules/nf-core/gatk4/bedtointervallist/environment.yml
new file mode 100644
index 00000000..16241b6d
--- /dev/null
+++ b/modules/nf-core/gatk4/bedtointervallist/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::gatk4=4.4.0.0
diff --git a/modules/nf-core/gatk4/bedtointervallist/main.nf b/modules/nf-core/gatk4/bedtointervallist/main.nf
index a23abd06..88b24b1a 100644
--- a/modules/nf-core/gatk4/bedtointervallist/main.nf
+++ b/modules/nf-core/gatk4/bedtointervallist/main.nf
@@ -2,7 +2,7 @@ process GATK4_BEDTOINTERVALLIST {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::gatk4=4.4.0.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0':
'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }"
@@ -29,7 +29,8 @@ process GATK4_BEDTOINTERVALLIST {
avail_mem = (task.memory.mega*0.8).intValue()
}
"""
- gatk --java-options "-Xmx${avail_mem}M" BedToIntervalList \\
+ gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\
+ BedToIntervalList \\
--INPUT $bed \\
--OUTPUT ${prefix}.interval_list \\
--SEQUENCE_DICTIONARY $dict \\
diff --git a/modules/nf-core/gatk4/bedtointervallist/meta.yml b/modules/nf-core/gatk4/bedtointervallist/meta.yml
index 40daf752..187da885 100644
--- a/modules/nf-core/gatk4/bedtointervallist/meta.yml
+++ b/modules/nf-core/gatk4/bedtointervallist/meta.yml
@@ -2,8 +2,9 @@ name: gatk4_bedtointervallist
description: Creates an interval list from a bed file and a reference dict
keywords:
- bed
- - interval list
- bedtointervallist
+ - gatk4
+ - interval list
tools:
- gatk4:
description: |
@@ -45,3 +46,6 @@ output:
authors:
- "@kevinmenden"
- "@ramprasadn"
+maintainers:
+ - "@kevinmenden"
+ - "@ramprasadn"
diff --git a/modules/nf-core/gatk4/createsequencedictionary/environment.yml b/modules/nf-core/gatk4/createsequencedictionary/environment.yml
new file mode 100644
index 00000000..16241b6d
--- /dev/null
+++ b/modules/nf-core/gatk4/createsequencedictionary/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::gatk4=4.4.0.0
diff --git a/modules/nf-core/gatk4/createsequencedictionary/main.nf b/modules/nf-core/gatk4/createsequencedictionary/main.nf
index 15a86bea..b47ad162 100644
--- a/modules/nf-core/gatk4/createsequencedictionary/main.nf
+++ b/modules/nf-core/gatk4/createsequencedictionary/main.nf
@@ -2,7 +2,7 @@ process GATK4_CREATESEQUENCEDICTIONARY {
tag "$fasta"
label 'process_medium'
- conda "bioconda::gatk4=4.4.0.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0':
'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }"
@@ -27,7 +27,8 @@ process GATK4_CREATESEQUENCEDICTIONARY {
avail_mem = (task.memory.mega*0.8).intValue()
}
"""
- gatk --java-options "-Xmx${avail_mem}M" CreateSequenceDictionary \\
+ gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\
+ CreateSequenceDictionary \\
--REFERENCE $fasta \\
--URI $fasta \\
--TMP_DIR . \\
diff --git a/modules/nf-core/gatk4/createsequencedictionary/meta.yml b/modules/nf-core/gatk4/createsequencedictionary/meta.yml
index a421e681..f9d70be0 100644
--- a/modules/nf-core/gatk4/createsequencedictionary/meta.yml
+++ b/modules/nf-core/gatk4/createsequencedictionary/meta.yml
@@ -1,9 +1,10 @@
name: gatk4_createsequencedictionary
description: Creates a sequence dictionary for a reference sequence
keywords:
+ - createsequencedictionary
- dictionary
- fasta
- - createsequencedictionary
+ - gatk4
tools:
- gatk:
description: |
@@ -14,7 +15,6 @@ tools:
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
@@ -37,3 +37,6 @@ output:
authors:
- "@maxulysse"
- "@ramprasadn"
+maintainers:
+ - "@maxulysse"
+ - "@ramprasadn"
diff --git a/modules/nf-core/gatk4/haplotypecaller/environment.yml b/modules/nf-core/gatk4/haplotypecaller/environment.yml
new file mode 100644
index 00000000..16241b6d
--- /dev/null
+++ b/modules/nf-core/gatk4/haplotypecaller/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::gatk4=4.4.0.0
diff --git a/modules/nf-core/gatk4/haplotypecaller/main.nf b/modules/nf-core/gatk4/haplotypecaller/main.nf
index 478681bd..fdecf5f8 100644
--- a/modules/nf-core/gatk4/haplotypecaller/main.nf
+++ b/modules/nf-core/gatk4/haplotypecaller/main.nf
@@ -2,7 +2,7 @@ process GATK4_HAPLOTYPECALLER {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::gatk4=4.4.0.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0':
'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }"
@@ -39,7 +39,8 @@ process GATK4_HAPLOTYPECALLER {
avail_mem = (task.memory.mega*0.8).intValue()
}
"""
- gatk --java-options "-Xmx${avail_mem}M" HaplotypeCaller \\
+ gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\
+ HaplotypeCaller \\
--input $input \\
--output ${prefix}.vcf.gz \\
--reference $fasta \\
diff --git a/modules/nf-core/gatk4/haplotypecaller/meta.yml b/modules/nf-core/gatk4/haplotypecaller/meta.yml
index 27633cca..f38dc37d 100644
--- a/modules/nf-core/gatk4/haplotypecaller/meta.yml
+++ b/modules/nf-core/gatk4/haplotypecaller/meta.yml
@@ -2,8 +2,8 @@ name: gatk4_haplotypecaller
description: Call germline SNPs and indels via local re-assembly of haplotypes
keywords:
- gatk4
- - haplotypecaller
- haplotype
+ - haplotypecaller
tools:
- gatk4:
description: |
@@ -14,7 +14,6 @@ tools:
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
@@ -54,7 +53,6 @@ input:
- dbsnp_tbi:
type: file
description: VCF index of dbsnp (optional)
-
output:
- meta:
type: map
@@ -77,7 +75,9 @@ output:
type: file
description: Assembled haplotypes and locally realigned reads
pattern: "*.realigned.bam"
-
authors:
- "@suzannejin"
- "@FriederikeHanssen"
+maintainers:
+ - "@suzannejin"
+ - "@FriederikeHanssen"
diff --git a/modules/nf-core/gatk4/splitncigarreads/environment.yml b/modules/nf-core/gatk4/splitncigarreads/environment.yml
new file mode 100644
index 00000000..16241b6d
--- /dev/null
+++ b/modules/nf-core/gatk4/splitncigarreads/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::gatk4=4.4.0.0
diff --git a/modules/nf-core/gatk4/splitncigarreads/main.nf b/modules/nf-core/gatk4/splitncigarreads/main.nf
index 0178976c..9d32e748 100644
--- a/modules/nf-core/gatk4/splitncigarreads/main.nf
+++ b/modules/nf-core/gatk4/splitncigarreads/main.nf
@@ -2,7 +2,7 @@ process GATK4_SPLITNCIGARREADS {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::gatk4=4.4.0.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0':
'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }"
@@ -32,7 +32,8 @@ process GATK4_SPLITNCIGARREADS {
avail_mem = (task.memory.mega*0.8).intValue()
}
"""
- gatk --java-options "-Xmx${avail_mem}M" SplitNCigarReads \\
+ gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\
+ SplitNCigarReads \\
--input $bam \\
--output ${prefix}.bam \\
--reference $fasta \\
diff --git a/modules/nf-core/gatk4/splitncigarreads/meta.yml b/modules/nf-core/gatk4/splitncigarreads/meta.yml
index 76bfdcd3..e1efde0c 100644
--- a/modules/nf-core/gatk4/splitncigarreads/meta.yml
+++ b/modules/nf-core/gatk4/splitncigarreads/meta.yml
@@ -1,8 +1,9 @@
name: gatk4_splitncigarreads
description: Splits reads that contain Ns in their cigar string
keywords:
- - vcf
+ - gatk4
- merge
+ - vcf
tools:
- gatk4:
description: |
@@ -53,3 +54,5 @@ output:
pattern: "versions.yml"
authors:
- "@kevinmenden"
+maintainers:
+ - "@kevinmenden"
diff --git a/modules/nf-core/gatk4/variantfiltration/environment.yml b/modules/nf-core/gatk4/variantfiltration/environment.yml
new file mode 100644
index 00000000..16241b6d
--- /dev/null
+++ b/modules/nf-core/gatk4/variantfiltration/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::gatk4=4.4.0.0
diff --git a/modules/nf-core/gatk4/variantfiltration/main.nf b/modules/nf-core/gatk4/variantfiltration/main.nf
index 387ff8ca..1c4d8ad0 100644
--- a/modules/nf-core/gatk4/variantfiltration/main.nf
+++ b/modules/nf-core/gatk4/variantfiltration/main.nf
@@ -2,7 +2,7 @@ process GATK4_VARIANTFILTRATION {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::gatk4=4.4.0.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/gatk4:4.4.0.0--py36hdfd78af_0':
'biocontainers/gatk4:4.4.0.0--py36hdfd78af_0' }"
@@ -32,7 +32,8 @@ process GATK4_VARIANTFILTRATION {
avail_mem = (task.memory.mega*0.8).intValue()
}
"""
- gatk --java-options "-Xmx${avail_mem}M" VariantFiltration \\
+ gatk --java-options "-Xmx${avail_mem}M -XX:-UsePerfData" \\
+ VariantFiltration \\
--variant $vcf \\
--output ${prefix}.vcf.gz \\
--reference $fasta \\
diff --git a/modules/nf-core/gatk4/variantfiltration/meta.yml b/modules/nf-core/gatk4/variantfiltration/meta.yml
index 2260f37b..11915a94 100644
--- a/modules/nf-core/gatk4/variantfiltration/meta.yml
+++ b/modules/nf-core/gatk4/variantfiltration/meta.yml
@@ -1,9 +1,10 @@
name: gatk4_variantfiltration
description: Filter variants
keywords:
- - vcf
- filter
+ - gatk4
- variantfiltration
+ - vcf
tools:
- gatk4:
description: |
@@ -71,3 +72,6 @@ output:
authors:
- "@kevinmenden"
- "@ramprasadn"
+maintainers:
+ - "@kevinmenden"
+ - "@ramprasadn"
diff --git a/modules/nf-core/gffcompare/environment.yml b/modules/nf-core/gffcompare/environment.yml
new file mode 100644
index 00000000..6213dde8
--- /dev/null
+++ b/modules/nf-core/gffcompare/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::gffcompare=0.12.6
diff --git a/modules/nf-core/gffcompare/main.nf b/modules/nf-core/gffcompare/main.nf
index 509799a8..edca0f25 100644
--- a/modules/nf-core/gffcompare/main.nf
+++ b/modules/nf-core/gffcompare/main.nf
@@ -2,7 +2,7 @@ process GFFCOMPARE {
tag "$meta.id"
label 'process_single'
- conda "bioconda::gffcompare=0.12.6"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/gffcompare:0.12.6--h9f5acd7_0' :
'biocontainers/gffcompare:0.12.6--h9f5acd7_0' }"
diff --git a/modules/nf-core/gffcompare/meta.yml b/modules/nf-core/gffcompare/meta.yml
index de80cad8..674f08c5 100644
--- a/modules/nf-core/gffcompare/meta.yml
+++ b/modules/nf-core/gffcompare/meta.yml
@@ -13,7 +13,6 @@ tools:
tool_dev_url: "https://github.com/gpertea/gffcompare"
doi: "10.12688/f1000research.23297.1"
licence: ["MIT"]
-
input:
- meta:
type: map
@@ -86,6 +85,7 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@jemten"
+maintainers:
+ - "@jemten"
diff --git a/modules/nf-core/gunzip/environment.yml b/modules/nf-core/gunzip/environment.yml
new file mode 100644
index 00000000..222b301f
--- /dev/null
+++ b/modules/nf-core/gunzip/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - conda-forge::sed=4.7
diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf
index e7189d2f..468a6f28 100644
--- a/modules/nf-core/gunzip/main.nf
+++ b/modules/nf-core/gunzip/main.nf
@@ -2,7 +2,7 @@ process GUNZIP {
tag "$archive"
label 'process_single'
- conda "conda-forge::sed=4.7"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/ubuntu:20.04' :
'nf-core/ubuntu:20.04' }"
@@ -21,10 +21,14 @@ process GUNZIP {
def args = task.ext.args ?: ''
gunzip = archive.toString() - '.gz'
"""
- gunzip \\
- -f \\
+ # Not calling gunzip itself because it creates files
+ # with the original group ownership rather than the
+ # default one for that user / the work directory
+ gzip \\
+ -cd \\
$args \\
- $archive
+ $archive \\
+ > $gunzip
cat <<-END_VERSIONS > versions.yml
"${task.process}":
diff --git a/modules/nf-core/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml
index 4cdcdf4c..231034f2 100644
--- a/modules/nf-core/gunzip/meta.yml
+++ b/modules/nf-core/gunzip/meta.yml
@@ -33,3 +33,7 @@ authors:
- "@joseespinosa"
- "@drpatelh"
- "@jfy133"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
+ - "@jfy133"
diff --git a/modules/nf-core/gunzip/tests/main.nf.test b/modules/nf-core/gunzip/tests/main.nf.test
new file mode 100644
index 00000000..d0317922
--- /dev/null
+++ b/modules/nf-core/gunzip/tests/main.nf.test
@@ -0,0 +1,35 @@
+nextflow_process {
+
+ name "Test Process GUNZIP"
+ script "../main.nf"
+ process "GUNZIP"
+ tag "gunzip"
+ tag "modules_nfcore"
+ tag "modules"
+
+ test("Should run without failures") {
+
+ when {
+ params {
+ outdir = "$outputDir"
+ }
+ process {
+ """
+ input[0] = [
+ [],
+ file(params.test_data['sarscov2']['illumina']['test_1_fastq_gz'], checkIfExists: true)
+ ]
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert process.success },
+ { assert snapshot(process.out).match() }
+ )
+ }
+
+ }
+
+}
diff --git a/modules/nf-core/gunzip/tests/main.nf.test.snap b/modules/nf-core/gunzip/tests/main.nf.test.snap
new file mode 100644
index 00000000..720fd9ff
--- /dev/null
+++ b/modules/nf-core/gunzip/tests/main.nf.test.snap
@@ -0,0 +1,31 @@
+{
+ "Should run without failures": {
+ "content": [
+ {
+ "0": [
+ [
+ [
+
+ ],
+ "test_1.fastq:md5,4161df271f9bfcd25d5845a1e220dbec"
+ ]
+ ],
+ "1": [
+ "versions.yml:md5,54376d32aca20e937a4ec26dac228e84"
+ ],
+ "gunzip": [
+ [
+ [
+
+ ],
+ "test_1.fastq:md5,4161df271f9bfcd25d5845a1e220dbec"
+ ]
+ ],
+ "versions": [
+ "versions.yml:md5,54376d32aca20e937a4ec26dac228e84"
+ ]
+ }
+ ],
+ "timestamp": "2023-10-17T15:35:37.690477896"
+ }
+}
\ No newline at end of file
diff --git a/modules/nf-core/gunzip/tests/tags.yml b/modules/nf-core/gunzip/tests/tags.yml
new file mode 100644
index 00000000..fd3f6915
--- /dev/null
+++ b/modules/nf-core/gunzip/tests/tags.yml
@@ -0,0 +1,2 @@
+gunzip:
+ - modules/nf-core/gunzip/**
diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml
new file mode 100644
index 00000000..9d0e6b20
--- /dev/null
+++ b/modules/nf-core/multiqc/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::multiqc=1.17
diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf
index 1fc387be..2bbc3983 100644
--- a/modules/nf-core/multiqc/main.nf
+++ b/modules/nf-core/multiqc/main.nf
@@ -1,10 +1,10 @@
process MULTIQC {
label 'process_single'
- conda "bioconda::multiqc=1.14"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/multiqc:1.14--pyhdfd78af_0' :
- 'biocontainers/multiqc:1.14--pyhdfd78af_0' }"
+ 'https://depot.galaxyproject.org/singularity/multiqc:1.17--pyhdfd78af_0' :
+ 'biocontainers/multiqc:1.17--pyhdfd78af_0' }"
input:
path multiqc_files, stageAs: "?/*"
diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml
index f93b5ee5..a61223ed 100644
--- a/modules/nf-core/multiqc/meta.yml
+++ b/modules/nf-core/multiqc/meta.yml
@@ -13,7 +13,6 @@ tools:
homepage: https://multiqc.info/
documentation: https://multiqc.info/docs/
licence: ["GPL-3.0-or-later"]
-
input:
- multiqc_files:
type: file
@@ -31,7 +30,6 @@ input:
type: file
description: Optional logo file for MultiQC
pattern: "*.{png}"
-
output:
- report:
type: file
@@ -54,3 +52,8 @@ authors:
- "@bunop"
- "@drpatelh"
- "@jfy133"
+maintainers:
+ - "@abhi18av"
+ - "@bunop"
+ - "@drpatelh"
+ - "@jfy133"
diff --git a/modules/nf-core/picard/collectrnaseqmetrics/environment.yml b/modules/nf-core/picard/collectrnaseqmetrics/environment.yml
new file mode 100644
index 00000000..be923a32
--- /dev/null
+++ b/modules/nf-core/picard/collectrnaseqmetrics/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::picard=3.1.0
diff --git a/modules/nf-core/picard/collectrnaseqmetrics/main.nf b/modules/nf-core/picard/collectrnaseqmetrics/main.nf
index 329938b9..af735a41 100644
--- a/modules/nf-core/picard/collectrnaseqmetrics/main.nf
+++ b/modules/nf-core/picard/collectrnaseqmetrics/main.nf
@@ -2,10 +2,10 @@ process PICARD_COLLECTRNASEQMETRICS {
tag "$meta.id"
label 'process_single'
- conda "bioconda::picard=3.0.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/picard:3.0.0--hdfd78af_1' :
- 'biocontainers/picard:3.0.0--hdfd78af_1' }"
+ 'https://depot.galaxyproject.org/singularity/picard:3.1.0--hdfd78af_0' :
+ 'biocontainers/picard:3.1.0--hdfd78af_0' }"
input:
tuple val(meta), path(bam)
diff --git a/modules/nf-core/picard/collectrnaseqmetrics/meta.yml b/modules/nf-core/picard/collectrnaseqmetrics/meta.yml
index f4cf55cb..9df9267b 100644
--- a/modules/nf-core/picard/collectrnaseqmetrics/meta.yml
+++ b/modules/nf-core/picard/collectrnaseqmetrics/meta.yml
@@ -16,7 +16,6 @@ tools:
documentation: "https://broadinstitute.github.io/picard/"
tool_dev_url: "https://github.com/broadinstitute/picard"
licence: "['MIT']"
-
input:
- meta:
type: map
@@ -39,7 +38,6 @@ input:
- rrna_intervals:
type: file
description: Interval file of ribosomal RNA regions
-
output:
- meta:
type: map
@@ -57,6 +55,7 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@anoronh4"
+maintainers:
+ - "@anoronh4"
diff --git a/modules/nf-core/salmon/index/environment.yml b/modules/nf-core/salmon/index/environment.yml
new file mode 100644
index 00000000..a0519dd2
--- /dev/null
+++ b/modules/nf-core/salmon/index/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::salmon=1.10.1
diff --git a/modules/nf-core/salmon/index/main.nf b/modules/nf-core/salmon/index/main.nf
index 118ee670..88d9cf14 100644
--- a/modules/nf-core/salmon/index/main.nf
+++ b/modules/nf-core/salmon/index/main.nf
@@ -2,7 +2,7 @@ process SALMON_INDEX {
tag "$transcript_fasta"
label "process_medium"
- conda "bioconda::salmon=1.10.1"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/salmon:1.10.1--h7e5ed60_0' :
'biocontainers/salmon:1.10.1--h7e5ed60_0' }"
diff --git a/modules/nf-core/salmon/index/meta.yml b/modules/nf-core/salmon/index/meta.yml
index 53c64152..fd94dd27 100644
--- a/modules/nf-core/salmon/index/meta.yml
+++ b/modules/nf-core/salmon/index/meta.yml
@@ -20,7 +20,6 @@ input:
- transcriptome_fasta:
type: file
description: Fasta file of the reference transcriptome
-
output:
- index:
type: directory
@@ -30,7 +29,9 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@kevinmenden"
- "@drpatelh"
+maintainers:
+ - "@kevinmenden"
+ - "@drpatelh"
diff --git a/modules/nf-core/salmon/quant/environment.yml b/modules/nf-core/salmon/quant/environment.yml
new file mode 100644
index 00000000..a0519dd2
--- /dev/null
+++ b/modules/nf-core/salmon/quant/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::salmon=1.10.1
diff --git a/modules/nf-core/salmon/quant/main.nf b/modules/nf-core/salmon/quant/main.nf
index e356af26..e115d39c 100644
--- a/modules/nf-core/salmon/quant/main.nf
+++ b/modules/nf-core/salmon/quant/main.nf
@@ -2,7 +2,7 @@ process SALMON_QUANT {
tag "$meta.id"
label "process_medium"
- conda "bioconda::salmon=1.10.1"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/salmon:1.10.1--h7e5ed60_0' :
'biocontainers/salmon:1.10.1--h7e5ed60_0' }"
@@ -28,7 +28,9 @@ process SALMON_QUANT {
prefix = task.ext.prefix ?: "${meta.id}"
def reference = "--index $index"
- def input_reads = meta.single_end ? "-r $reads" : "-1 ${reads[0]} -2 ${reads[1]}"
+ def reads1 = [], reads2 = []
+ meta.single_end ? [reads].flatten().each{reads1 << it} : reads.eachWithIndex{ v, ix -> ( ix & 1 ? reads2 : reads1) << v }
+ def input_reads = meta.single_end ? "-r ${reads1.join(" ")}" : "-1 ${reads1.join(" ")} -2 ${reads2.join(" ")}"
if (alignment_mode) {
reference = "-t $transcript_fasta"
input_reads = "-a $reads"
diff --git a/modules/nf-core/salmon/quant/meta.yml b/modules/nf-core/salmon/quant/meta.yml
index ea01e0df..49d7137b 100644
--- a/modules/nf-core/salmon/quant/meta.yml
+++ b/modules/nf-core/salmon/quant/meta.yml
@@ -22,8 +22,9 @@ input:
- 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 for single-end or paired-end data.
+ Multiple single-end fastqs or pairs of paired-end fastqs are
+ handled.
- index:
type: directory
description: Folder containing the star index files
@@ -40,7 +41,6 @@ input:
type: string
description: |
Override library type inferred based on strandedness defined in meta object
-
output:
- results:
type: directory
@@ -54,7 +54,9 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@kevinmenden"
- "@drpatelh"
+maintainers:
+ - "@kevinmenden"
+ - "@drpatelh"
diff --git a/modules/nf-core/samtools/faidx/environment.yml b/modules/nf-core/samtools/faidx/environment.yml
new file mode 100644
index 00000000..04c82f14
--- /dev/null
+++ b/modules/nf-core/samtools/faidx/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.17
diff --git a/modules/nf-core/samtools/faidx/main.nf b/modules/nf-core/samtools/faidx/main.nf
index 59ed3088..3aa98822 100644
--- a/modules/nf-core/samtools/faidx/main.nf
+++ b/modules/nf-core/samtools/faidx/main.nf
@@ -2,7 +2,7 @@ process SAMTOOLS_FAIDX {
tag "$fasta"
label 'process_single'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
'biocontainers/samtools:1.17--h00cdaf9_0' }"
diff --git a/modules/nf-core/samtools/faidx/meta.yml b/modules/nf-core/samtools/faidx/meta.yml
index 957b25e5..e189af28 100644
--- a/modules/nf-core/samtools/faidx/meta.yml
+++ b/modules/nf-core/samtools/faidx/meta.yml
@@ -55,3 +55,7 @@ authors:
- "@drpatelh"
- "@ewels"
- "@phue"
+maintainers:
+ - "@drpatelh"
+ - "@ewels"
+ - "@phue"
diff --git a/modules/nf-core/samtools/index/environment.yml b/modules/nf-core/samtools/index/environment.yml
new file mode 100644
index 00000000..04c82f14
--- /dev/null
+++ b/modules/nf-core/samtools/index/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.17
diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf
index 0b20aa4b..256bd7c4 100644
--- a/modules/nf-core/samtools/index/main.nf
+++ b/modules/nf-core/samtools/index/main.nf
@@ -2,7 +2,7 @@ process SAMTOOLS_INDEX {
tag "$meta.id"
label 'process_low'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
'biocontainers/samtools:1.17--h00cdaf9_0' }"
diff --git a/modules/nf-core/samtools/index/meta.yml b/modules/nf-core/samtools/index/meta.yml
index 8bd2fa6f..01a4ee03 100644
--- a/modules/nf-core/samtools/index/meta.yml
+++ b/modules/nf-core/samtools/index/meta.yml
@@ -51,3 +51,7 @@ authors:
- "@drpatelh"
- "@ewels"
- "@maxulysse"
+maintainers:
+ - "@drpatelh"
+ - "@ewels"
+ - "@maxulysse"
diff --git a/modules/nf-core/samtools/view/environment.yml b/modules/nf-core/samtools/view/environment.yml
new file mode 100644
index 00000000..04c82f14
--- /dev/null
+++ b/modules/nf-core/samtools/view/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::samtools=1.17
diff --git a/modules/nf-core/samtools/view/main.nf b/modules/nf-core/samtools/view/main.nf
index cb91facf..ddf3f88a 100644
--- a/modules/nf-core/samtools/view/main.nf
+++ b/modules/nf-core/samtools/view/main.nf
@@ -2,7 +2,7 @@ process SAMTOOLS_VIEW {
tag "$meta.id"
label 'process_low'
- conda "bioconda::samtools=1.17"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/samtools:1.17--h00cdaf9_0' :
'biocontainers/samtools:1.17--h00cdaf9_0' }"
diff --git a/modules/nf-core/samtools/view/meta.yml b/modules/nf-core/samtools/view/meta.yml
index 3b05450b..3dadafae 100644
--- a/modules/nf-core/samtools/view/meta.yml
+++ b/modules/nf-core/samtools/view/meta.yml
@@ -82,3 +82,8 @@ authors:
- "@joseespinosa"
- "@FriederikeHanssen"
- "@priyanka-surana"
+maintainers:
+ - "@drpatelh"
+ - "@joseespinosa"
+ - "@FriederikeHanssen"
+ - "@priyanka-surana"
diff --git a/modules/nf-core/star/align/environment.yml b/modules/nf-core/star/align/environment.yml
new file mode 100644
index 00000000..a61d2f6d
--- /dev/null
+++ b/modules/nf-core/star/align/environment.yml
@@ -0,0 +1,8 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::star=2.7.10a
+ - bioconda::samtools=1.16.1
+ - conda-forge::gawk=5.1.0
diff --git a/modules/nf-core/star/align/main.nf b/modules/nf-core/star/align/main.nf
index 8cb8e9a4..fa645a6d 100644
--- a/modules/nf-core/star/align/main.nf
+++ b/modules/nf-core/star/align/main.nf
@@ -2,15 +2,15 @@ process STAR_ALIGN {
tag "$meta.id"
label 'process_high'
- conda "bioconda::star=2.7.10a bioconda::samtools=1.16.1 conda-forge::gawk=5.1.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:1df389393721fc66f3fd8778ad938ac711951107-0' :
'biocontainers/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:1df389393721fc66f3fd8778ad938ac711951107-0' }"
input:
tuple val(meta), path(reads, stageAs: "input*/*")
- path index
- path gtf
+ tuple val(meta2), path(index)
+ tuple val(meta3), path(gtf)
val star_ignore_sjdbgtf
val seq_platform
val seq_center
diff --git a/modules/nf-core/star/align/meta.yml b/modules/nf-core/star/align/meta.yml
index bce16d36..e80dbb7d 100644
--- a/modules/nf-core/star/align/meta.yml
+++ b/modules/nf-core/star/align/meta.yml
@@ -25,10 +25,33 @@ input:
description: |
List of input FastQ files of size 1 and 2 for single-end and paired-end data,
respectively.
+ - meta2:
+ type: map
+ description: |
+ Groovy Map containing reference information
+ e.g. [ id:'test' ]
- index:
type: directory
description: STAR genome index
pattern: "star"
+ - meta3:
+ type: map
+ description: |
+ Groovy Map containing reference information
+ e.g. [ id:'test' ]
+ - gtf:
+ type: file
+ description: Annotation GTF file
+ pattern: "*.{gtf}"
+ - star_ignore_sjdbgtf:
+ type: boolean
+ description: Ignore annotation GTF file
+ - seq_platform:
+ type: string
+ description: Sequencing platform
+ - seq_center:
+ type: string
+ description: Sequencing center
output:
- bam:
type: file
@@ -82,8 +105,11 @@ output:
type: file
description: STAR output bedGraph format file(s) (optional)
pattern: "*.bg"
-
authors:
- "@kevinmenden"
- "@drpatelh"
- "@praveenraj2018"
+maintainers:
+ - "@kevinmenden"
+ - "@drpatelh"
+ - "@praveenraj2018"
diff --git a/modules/nf-core/star/genomegenerate/environment.yml b/modules/nf-core/star/genomegenerate/environment.yml
new file mode 100644
index 00000000..a61d2f6d
--- /dev/null
+++ b/modules/nf-core/star/genomegenerate/environment.yml
@@ -0,0 +1,8 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::star=2.7.10a
+ - bioconda::samtools=1.16.1
+ - conda-forge::gawk=5.1.0
diff --git a/modules/nf-core/star/genomegenerate/main.nf b/modules/nf-core/star/genomegenerate/main.nf
index 2407d006..473e62a6 100644
--- a/modules/nf-core/star/genomegenerate/main.nf
+++ b/modules/nf-core/star/genomegenerate/main.nf
@@ -2,18 +2,18 @@ process STAR_GENOMEGENERATE {
tag "$fasta"
label 'process_high'
- conda "bioconda::star=2.7.10a bioconda::samtools=1.16.1 conda-forge::gawk=5.1.0"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:1df389393721fc66f3fd8778ad938ac711951107-0' :
'biocontainers/mulled-v2-1fa26d1ce03c295fe2fdcf85831a92fbcbd7e8c2:1df389393721fc66f3fd8778ad938ac711951107-0' }"
input:
- path fasta
- path gtf
+ tuple val(meta), path(fasta)
+ tuple val(meta2), path(gtf)
output:
- path "star" , emit: index
- path "versions.yml", emit: versions
+ tuple val(meta), path("star") , emit: index
+ path "versions.yml" , emit: versions
when:
task.ext.when == null || task.ext.when
diff --git a/modules/nf-core/star/genomegenerate/meta.yml b/modules/nf-core/star/genomegenerate/meta.yml
index 8181157a..1061e1b8 100644
--- a/modules/nf-core/star/genomegenerate/meta.yml
+++ b/modules/nf-core/star/genomegenerate/meta.yml
@@ -15,14 +15,28 @@ tools:
doi: 10.1093/bioinformatics/bts635
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 of the reference genome
+ - meta2:
+ type: map
+ description: |
+ Groovy Map containing reference information
+ e.g. [ id:'test' ]
- gtf:
type: file
description: GTF file of the reference genome
-
output:
+ - meta:
+ type: map
+ description: |
+ Groovy Map containing sample information
+ e.g. [ id:'test', single_end:false ]
- index:
type: directory
description: Folder containing the star index files
@@ -31,7 +45,9 @@ output:
type: file
description: File containing software versions
pattern: "versions.yml"
-
authors:
- "@kevinmenden"
- "@drpatelh"
+maintainers:
+ - "@kevinmenden"
+ - "@drpatelh"
diff --git a/modules/nf-core/stringtie/stringtie/environment.yml b/modules/nf-core/stringtie/stringtie/environment.yml
new file mode 100644
index 00000000..376fba8c
--- /dev/null
+++ b/modules/nf-core/stringtie/stringtie/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::stringtie=2.2.1
diff --git a/modules/nf-core/stringtie/stringtie/main.nf b/modules/nf-core/stringtie/stringtie/main.nf
index d0f8b563..6e25ba27 100644
--- a/modules/nf-core/stringtie/stringtie/main.nf
+++ b/modules/nf-core/stringtie/stringtie/main.nf
@@ -2,7 +2,7 @@ process STRINGTIE_STRINGTIE {
tag "$meta.id"
label 'process_medium'
- conda "bioconda::stringtie=2.2.1"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/stringtie:2.2.1--hecb563c_2' :
'biocontainers/stringtie:2.2.1--hecb563c_2' }"
diff --git a/modules/nf-core/stringtie/stringtie/meta.yml b/modules/nf-core/stringtie/stringtie/meta.yml
index 75518470..d8ebdd88 100644
--- a/modules/nf-core/stringtie/stringtie/meta.yml
+++ b/modules/nf-core/stringtie/stringtie/meta.yml
@@ -5,7 +5,6 @@ keywords:
- assembly
- quantification
- gtf
-
tools:
- stringtie2:
description: |
@@ -55,3 +54,5 @@ output:
pattern: "versions.yml"
authors:
- "@drpatelh"
+maintainers:
+ - "@drpatelh"
diff --git a/modules/nf-core/tabix/bgziptabix/environment.yml b/modules/nf-core/tabix/bgziptabix/environment.yml
new file mode 100644
index 00000000..fdd84057
--- /dev/null
+++ b/modules/nf-core/tabix/bgziptabix/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::tabix=1.11
diff --git a/modules/nf-core/tabix/bgziptabix/main.nf b/modules/nf-core/tabix/bgziptabix/main.nf
index d6c5a760..f9482690 100644
--- a/modules/nf-core/tabix/bgziptabix/main.nf
+++ b/modules/nf-core/tabix/bgziptabix/main.nf
@@ -2,7 +2,7 @@ process TABIX_BGZIPTABIX {
tag "$meta.id"
label 'process_single'
- conda "bioconda::tabix=1.11"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/tabix:1.11--hdfd78af_0' :
'biocontainers/tabix:1.11--hdfd78af_0' }"
diff --git a/modules/nf-core/tabix/bgziptabix/meta.yml b/modules/nf-core/tabix/bgziptabix/meta.yml
index 2761e271..438aba4d 100644
--- a/modules/nf-core/tabix/bgziptabix/meta.yml
+++ b/modules/nf-core/tabix/bgziptabix/meta.yml
@@ -48,3 +48,6 @@ output:
authors:
- "@maxulysse"
- "@DLBPointon"
+maintainers:
+ - "@maxulysse"
+ - "@DLBPointon"
diff --git a/modules/nf-core/tabix/tabix/environment.yml b/modules/nf-core/tabix/tabix/environment.yml
new file mode 100644
index 00000000..fdd84057
--- /dev/null
+++ b/modules/nf-core/tabix/tabix/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::tabix=1.11
diff --git a/modules/nf-core/tabix/tabix/main.nf b/modules/nf-core/tabix/tabix/main.nf
index 5bf332ef..c304a8a3 100644
--- a/modules/nf-core/tabix/tabix/main.nf
+++ b/modules/nf-core/tabix/tabix/main.nf
@@ -2,7 +2,7 @@ process TABIX_TABIX {
tag "$meta.id"
label 'process_single'
- conda "bioconda::tabix=1.11"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/tabix:1.11--hdfd78af_0' :
'biocontainers/tabix:1.11--hdfd78af_0' }"
diff --git a/modules/nf-core/tabix/tabix/meta.yml b/modules/nf-core/tabix/tabix/meta.yml
index fcc6e524..ae5b4f43 100644
--- a/modules/nf-core/tabix/tabix/meta.yml
+++ b/modules/nf-core/tabix/tabix/meta.yml
@@ -43,3 +43,7 @@ authors:
- "@joseespinosa"
- "@drpatelh"
- "@maxulysse"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
+ - "@maxulysse"
diff --git a/modules/nf-core/ucsc/wigtobigwig/environment.yml b/modules/nf-core/ucsc/wigtobigwig/environment.yml
new file mode 100644
index 00000000..51bcac63
--- /dev/null
+++ b/modules/nf-core/ucsc/wigtobigwig/environment.yml
@@ -0,0 +1,6 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - bioconda::ucsc-wigtobigwig=447
diff --git a/modules/nf-core/ucsc/wigtobigwig/main.nf b/modules/nf-core/ucsc/wigtobigwig/main.nf
index 493cf578..4b7adb62 100644
--- a/modules/nf-core/ucsc/wigtobigwig/main.nf
+++ b/modules/nf-core/ucsc/wigtobigwig/main.nf
@@ -3,10 +3,10 @@ process UCSC_WIGTOBIGWIG {
label 'process_single'
// WARN: Version information not provided by tool on CLI. Please update version string below when bumping container versions.
- conda "bioconda::ucsc-wigtobigwig=377"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
- 'https://depot.galaxyproject.org/singularity/ucsc-wigtobigwig:377--h0b8a92a_2' :
- 'biocontainers/ucsc-wigtobigwig:377--h0b8a92a_2' }"
+ 'https://depot.galaxyproject.org/singularity/ucsc-wigtobigwig:447--h2a80c09_1' :
+ 'biocontainers/ucsc-wigtobigwig:447--h2a80c09_1' }"
input:
tuple val(meta), path(wig)
@@ -22,7 +22,7 @@ process UCSC_WIGTOBIGWIG {
script:
def args = task.ext.args ?: ''
def prefix = task.ext.prefix ?: "${meta.id}"
- def VERSION = '377' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
+ def VERSION = '447' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
"""
wigToBigWig \\
$args \\
@@ -38,7 +38,7 @@ process UCSC_WIGTOBIGWIG {
stub:
def prefix = task.ext.prefix ?: "${meta.id}"
- def VERSION = '377' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
+ def VERSION = '447' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions.
"""
touch ${prefix}.bw
diff --git a/modules/nf-core/ucsc/wigtobigwig/meta.yml b/modules/nf-core/ucsc/wigtobigwig/meta.yml
index a597fde0..f7476480 100644
--- a/modules/nf-core/ucsc/wigtobigwig/meta.yml
+++ b/modules/nf-core/ucsc/wigtobigwig/meta.yml
@@ -3,6 +3,7 @@ description: Convert ascii format wig file to binary big wig format
keywords:
- wig
- bigwig
+ - ucsc
tools:
- ucsc:
description: |
@@ -10,7 +11,6 @@ tools:
or bedGraph format) to binary big wig format
homepage: http://www.genome.ucsc.edu/goldenPath/help/bigWig.html
licence: ["varies; see http://genome.ucsc.edu/license"]
-
input:
- meta:
type: map
@@ -24,7 +24,6 @@ input:
- chromsizes:
type: file
description: chromosome sizes file
-
output:
- versions:
type: file
@@ -34,7 +33,9 @@ output:
type: file
description: bigwig file
pattern: "*.{bw}"
-
authors:
- "@jianhong"
- "@projectoriented"
+maintainers:
+ - "@jianhong"
+ - "@projectoriented"
diff --git a/modules/nf-core/untar/environment.yml b/modules/nf-core/untar/environment.yml
new file mode 100644
index 00000000..2d52ce64
--- /dev/null
+++ b/modules/nf-core/untar/environment.yml
@@ -0,0 +1,8 @@
+channels:
+ - conda-forge
+ - bioconda
+ - defaults
+dependencies:
+ - conda-forge::sed=4.7
+ - conda-forge::grep=3.11
+ - conda-forge::tar=1.34
diff --git a/modules/nf-core/untar/main.nf b/modules/nf-core/untar/main.nf
index 8cd1856c..8a75bb95 100644
--- a/modules/nf-core/untar/main.nf
+++ b/modules/nf-core/untar/main.nf
@@ -2,7 +2,7 @@ process UNTAR {
tag "$archive"
label 'process_single'
- conda "conda-forge::sed=4.7 bioconda::grep=3.4 conda-forge::tar=1.34"
+ conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/ubuntu:20.04' :
'nf-core/ubuntu:20.04' }"
diff --git a/modules/nf-core/untar/meta.yml b/modules/nf-core/untar/meta.yml
index db241a6e..a9a2110f 100644
--- a/modules/nf-core/untar/meta.yml
+++ b/modules/nf-core/untar/meta.yml
@@ -39,3 +39,8 @@ authors:
- "@drpatelh"
- "@matthdsm"
- "@jfy133"
+maintainers:
+ - "@joseespinosa"
+ - "@drpatelh"
+ - "@matthdsm"
+ - "@jfy133"
diff --git a/nextflow.config b/nextflow.config
index 578e2b37..cbedd9f3 100644
--- a/nextflow.config
+++ b/nextflow.config
@@ -252,7 +252,7 @@ manifest {
description = """Pipeline to analyse RNAseq from raredisease patients"""
mainScript = 'main.nf'
nextflowVersion = '!>=23.04.0'
- version = '1.0dev'
+ version = '1.0.0'
doi = ''
}
diff --git a/subworkflows/local/alignment.nf b/subworkflows/local/alignment.nf
index 54a6bda0..b6f26f72 100644
--- a/subworkflows/local/alignment.nf
+++ b/subworkflows/local/alignment.nf
@@ -36,7 +36,8 @@ workflow ALIGNMENT {
FASTP(ch_cat_fastq, [], false, false)
- STAR_ALIGN(FASTP.out.reads, star_index, gtf, false, 'illumina', false)
+ ch_gtf = gtf.map { it -> [[:], it] }
+ STAR_ALIGN(FASTP.out.reads, star_index, ch_gtf, false, platform, false)
SAMTOOLS_INDEX( STAR_ALIGN.out.bam )
diff --git a/subworkflows/local/call_variants.nf b/subworkflows/local/call_variants.nf
index 9b525e3a..35a4ab6e 100644
--- a/subworkflows/local/call_variants.nf
+++ b/subworkflows/local/call_variants.nf
@@ -44,7 +44,7 @@ workflow CALL_VARIANTS {
BCFTOOLS_MPILEUP(
ch_bam_bai.map{ meta, bam, bai -> [ meta, bam, [] ]},
- ch_fasta,
+ ch_fasta.map { it -> [[:], it] },
false
)
diff --git a/subworkflows/local/prepare_references.nf b/subworkflows/local/prepare_references.nf
index 05097380..12492991 100644
--- a/subworkflows/local/prepare_references.nf
+++ b/subworkflows/local/prepare_references.nf
@@ -52,8 +52,9 @@ workflow PREPARE_REFERENCES {
ch_fasta_no_meta = ch_fasta.map{ meta, fasta -> [ fasta ] }
+ ch_gtf=ch_gtf_no_meta.map { it -> [[:], it] }
ch_star = star_index ? Channel.fromPath(star_index).collect() : Channel.empty()
- BUILD_STAR_GENOME (ch_fasta_no_meta, ch_gtf_no_meta)
+ BUILD_STAR_GENOME (ch_fasta, ch_gtf )
UNTAR_STAR_INDEX( ch_star.map { it -> [[:], it] } )
ch_star_index = (!star_index) ? BUILD_STAR_GENOME.out.index.collect() :
(star_index.endsWith(".gz") ? UNTAR_STAR_INDEX.out.untar.map { it[1] } : star_index)
|