diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9ca177595..01af5ada6 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -199,7 +199,6 @@ jobs:
exclude:
- tags: "GFFREAD"
- tags: "PIPELINE"
- - tags: "SUBREAD_FEATURECOUNTS"
- tags: "STRINGTIE_STRINGTIE"
- tags: "UMITOOLS_PREPAREFORRSEM"
diff --git a/modules.json b/modules.json
index 0191de343..4b0d5ed9e 100644
--- a/modules.json
+++ b/modules.json
@@ -221,7 +221,7 @@
},
"trimgalore": {
"branch": "master",
- "git_sha": "2e6c468e0ad43b23df71d7a7f130d5c0e0aa89e3",
+ "git_sha": "d2c5e76f291379f3dd403e48e46ed7e6ba5da744",
"installed_by": ["fastq_fastqc_umitools_trimgalore"]
},
"tximeta/tximport": {
@@ -246,7 +246,7 @@
},
"umitools/extract": {
"branch": "master",
- "git_sha": "ff7e93715a2acecf3f143ec78c9858deba2984d0",
+ "git_sha": "d2c5e76f291379f3dd403e48e46ed7e6ba5da744",
"installed_by": ["fastq_fastqc_umitools_fastp", "fastq_fastqc_umitools_trimgalore"]
},
"umitools/prepareforrsem": {
@@ -309,7 +309,7 @@
},
"fastq_fastqc_umitools_trimgalore": {
"branch": "master",
- "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f",
+ "git_sha": "d2c5e76f291379f3dd403e48e46ed7e6ba5da744",
"installed_by": ["subworkflows"]
},
"fastq_subsample_fq_salmon": {
diff --git a/modules/nf-core/trimgalore/environment.yml b/modules/nf-core/trimgalore/environment.yml
index 6cd0f51b3..17b39f4a5 100644
--- a/modules/nf-core/trimgalore/environment.yml
+++ b/modules/nf-core/trimgalore/environment.yml
@@ -5,3 +5,4 @@ channels:
- defaults
dependencies:
- bioconda::trim-galore=0.6.7
+ - bioconda::cutadapt=3.4
diff --git a/modules/nf-core/trimgalore/tests/main.nf.test b/modules/nf-core/trimgalore/tests/main.nf.test
index 3e3819b6d..43904ac32 100644
--- a/modules/nf-core/trimgalore/tests/main.nf.test
+++ b/modules/nf-core/trimgalore/tests/main.nf.test
@@ -10,9 +10,6 @@ nextflow_process {
test("test_trimgalore_single_end") {
when {
- params {
- outdir = "$outputDir"
- }
process {
"""
input[0] = [ [ id:'test', single_end:true ], // meta map
@@ -41,7 +38,8 @@ nextflow_process {
{ report1_lines.each { report1_line ->
{ assert path(process.out.log.get(0).get(1)).getText().contains(report1_line) }
}
- }
+ },
+ { assert snapshot(process.out.versions).match() }
)
}
}
@@ -49,13 +47,10 @@ nextflow_process {
test("test_trimgalore_paired_end") {
when {
- params {
- outdir = "$outputDir"
- }
process {
"""
input[0] = [ [ id:'test', single_end:false ], // meta map
- [
+ [
file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/fastq/test_1.fastq.gz", checkIfExists: true),
file(params.modules_testdata_base_path + "genomics/sarscov2/illumina/fastq/test_2.fastq.gz", checkIfExists: true)
]
@@ -100,7 +95,8 @@ nextflow_process {
{ report2_lines.each { report2_line ->
{ assert path(process.out.log.get(0).get(1).get(1)).getText().contains(report2_line) }
}
- }
+ },
+ { assert snapshot(process.out.versions).match() }
)
}
}
diff --git a/modules/nf-core/trimgalore/tests/main.nf.test.snap b/modules/nf-core/trimgalore/tests/main.nf.test.snap
index 84feacca2..082c55004 100644
--- a/modules/nf-core/trimgalore/tests/main.nf.test.snap
+++ b/modules/nf-core/trimgalore/tests/main.nf.test.snap
@@ -1,148 +1,26 @@
{
"test_trimgalore_single_end": {
"content": [
- {
- "0": [
- [
- {
- "id": "test",
- "single_end": true
- },
- "test_trimmed.fq.gz:md5,e0a7516b8ea8d6467d6306acb2cd13c4"
- ]
- ],
- "1": [
- [
- {
- "id": "test",
- "single_end": true
- },
- "test.fastq.gz_trimming_report.txt:md5,a1ab3958205f1ddf48af623242b5b429"
- ]
- ],
- "2": [
-
- ],
- "3": [
-
- ],
- "4": [
-
- ],
- "5": [
- "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7"
- ],
- "html": [
-
- ],
- "log": [
- [
- {
- "id": "test",
- "single_end": true
- },
- "test.fastq.gz_trimming_report.txt:md5,a1ab3958205f1ddf48af623242b5b429"
- ]
- ],
- "reads": [
- [
- {
- "id": "test",
- "single_end": true
- },
- "test_trimmed.fq.gz:md5,e0a7516b8ea8d6467d6306acb2cd13c4"
- ]
- ],
- "unpaired": [
-
- ],
- "versions": [
- "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7"
- ],
- "zip": [
-
- ]
- }
+ [
+ "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7"
+ ]
],
- "timestamp": "2023-10-17T15:24:57.782141441"
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T16:33:20.401347"
},
"test_trimgalore_paired_end": {
"content": [
- {
- "0": [
- [
- {
- "id": "test",
- "single_end": false
- },
- [
- "test_1_val_1.fq.gz:md5,e0a7516b8ea8d6467d6306acb2cd13c4",
- "test_2_val_2.fq.gz:md5,f3d61189e6d10202da7b8686f1dbb71b"
- ]
- ]
- ],
- "1": [
- [
- {
- "id": "test",
- "single_end": false
- },
- [
- "test_1.fastq.gz_trimming_report.txt:md5,315d40465412f9909bbaabf52269274d",
- "test_2.fastq.gz_trimming_report.txt:md5,34436303da1c78811103427a2fb57f7b"
- ]
- ]
- ],
- "2": [
-
- ],
- "3": [
-
- ],
- "4": [
-
- ],
- "5": [
- "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7"
- ],
- "html": [
-
- ],
- "log": [
- [
- {
- "id": "test",
- "single_end": false
- },
- [
- "test_1.fastq.gz_trimming_report.txt:md5,315d40465412f9909bbaabf52269274d",
- "test_2.fastq.gz_trimming_report.txt:md5,34436303da1c78811103427a2fb57f7b"
- ]
- ]
- ],
- "reads": [
- [
- {
- "id": "test",
- "single_end": false
- },
- [
- "test_1_val_1.fq.gz:md5,e0a7516b8ea8d6467d6306acb2cd13c4",
- "test_2_val_2.fq.gz:md5,f3d61189e6d10202da7b8686f1dbb71b"
- ]
- ]
- ],
- "unpaired": [
-
- ],
- "versions": [
- "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7"
- ],
- "zip": [
-
- ]
- }
+ [
+ "versions.yml:md5,47d966cbb31c80eb8f7fe860d55659b7"
+ ]
],
- "timestamp": "2023-10-17T15:25:08.513589909"
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T16:33:28.960497"
}
}
\ No newline at end of file
diff --git a/modules/nf-core/umitools/extract/tests/main.nf.test b/modules/nf-core/umitools/extract/tests/main.nf.test
index 83a77a1b1..2a8eba150 100644
--- a/modules/nf-core/umitools/extract/tests/main.nf.test
+++ b/modules/nf-core/umitools/extract/tests/main.nf.test
@@ -12,9 +12,6 @@ nextflow_process {
test("Should run without failures") {
when {
- params {
- outdir = "$outputDir"
- }
process {
"""
input[0] = [ [ id:'test', single_end:true ], // meta map
@@ -26,10 +23,9 @@ nextflow_process {
then {
assertAll (
- { assert process.success },
- { assert snapshot(process.out.versions).match("versions") }
+ { assert process.success },
+ { assert snapshot(process.out.versions).match("versions") }
)
}
-
}
}
\ No newline at end of file
diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test
new file mode 100644
index 000000000..3a6cae860
--- /dev/null
+++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test
@@ -0,0 +1,147 @@
+nextflow_workflow {
+
+ name "Test Subworkflow FASTQ_FASTQC_UMITOOLS_TRIMGALORE"
+ script "../main.nf"
+ workflow "FASTQ_FASTQC_UMITOOLS_TRIMGALORE"
+ config './nextflow.config'
+
+ tag "subworkflows"
+ tag "subworkflows_nfcore"
+ tag "subworkflows/fastq_fastqc_umitools_trimgalore"
+ tag "fastqc"
+ tag "umitools/extract"
+ tag "trimgalore"
+
+ tag "FASTQC"
+ tag "UMITOOLS_EXTRACT"
+ tag "TRIMGALORE"
+
+ test("test single end read with UMI") {
+
+ when {
+ workflow {
+ """
+ input[0] = Channel.of([
+ [ id:'test', single_end:true ], // meta map
+ [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ]
+ ])
+ input[1] = false // skip_fastqc
+ input[2] = true // with_umi
+ input[3] = false // skip_umi_extract
+ input[4] = false // skip_trimming
+ input[5] = 1 // umi_discard_read
+ input[6] = 1 // min_trimmed_reads
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert workflow.success},
+ { assert path(workflow.out.fastqc_html[0][1]).text.contains("
File type | Conventional base calls |
") },
+ { assert snapshot(workflow.out.reads).match("se - reads") },
+ { assert snapshot(workflow.out.trim_read_count).match("se - trim_read_count") },
+ { assert snapshot(workflow.out.trim_unpaired).match("se - trim_unpaired") },
+ { assert snapshot(workflow.out.versions).match("se - versions") }
+ )
+ }
+ }
+
+ test("test paired end read with UMI") {
+
+ when {
+ workflow {
+ """
+ input[0] = Channel.of([
+ [ id:'test', single_end:false ], // meta map
+ [
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true)
+ ]
+ ])
+ input[1] = false // skip_fastqc
+ input[2] = true // with_umi
+ input[3] = false // skip_umi_extract
+ input[4] = false // skip_trimming
+ input[5] = 1 // umi_discard_read
+ input[6] = 1 // min_trimmed_reads
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert workflow.success},
+ { assert snapshot(workflow.out.reads).match("pe - reads") },
+ { assert snapshot(workflow.out.trim_read_count).match("pe - trim_read_count") },
+ { assert snapshot(workflow.out.trim_unpaired).match("pe - trim_unpaired") },
+ { assert snapshot(workflow.out.versions).match("pe - versions") }
+ )
+ }
+ }
+ test("test paired end read without UMI") {
+
+ when {
+ workflow {
+ """
+ input[0] = Channel.of([
+ [ id:'test', single_end:false ], // meta map
+ [
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true)
+ ]
+ ])
+ input[1] = false // skip_fastqc
+ input[2] = false // with_umi
+ input[3] = false // skip_umi_extract
+ input[4] = false // skip_trimming
+ input[5] = 1 // umi_discard_read
+ input[6] = 1 // min_trimmed_reads
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert workflow.success},
+ { assert snapshot(workflow.out.reads).match("pe no umi - reads") },
+ { assert snapshot(workflow.out.trim_read_count).match("pe no umi - trim_read_count") },
+ { assert snapshot(workflow.out.trim_unpaired).match("pe no umi - trim_unpaired") },
+ { assert snapshot(workflow.out.versions).match("pe no umi - versions") }
+ )
+ }
+ }
+
+ test("test skip all steps") {
+
+ when {
+ workflow {
+ """
+ input[0] = Channel.of([
+ [ id:'test', single_end:false ], // meta map
+ [
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true),
+ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true)
+ ]
+ ])
+ input[1] = true // skip_fastqc
+ input[2] = true // with_umi
+ input[3] = true // skip_umi_extract
+ input[4] = true // skip_trimming
+ input[5] = 0 // umi_discard_read
+ input[6] = 1 // min_trimmed_reads
+ """
+ }
+ }
+
+ then {
+ assertAll(
+ { assert workflow.success},
+ { assert snapshot(workflow.out.reads).match("pe skip all - reads") },
+ { assert snapshot(workflow.out.trim_read_count).match("pe skip all - trim_read_count") },
+ { assert snapshot(workflow.out.trim_unpaired).match("pe skip all - trim_unpaired") },
+ { assert snapshot(workflow.out.versions).match("pe skip all - versions") }
+ )
+ }
+ }
+}
diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap
new file mode 100644
index 000000000..f7379500e
--- /dev/null
+++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/main.nf.test.snap
@@ -0,0 +1,247 @@
+{
+ "pe no umi - reads": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ [
+ "test_1_val_1.fq.gz:md5,566d44cca0d22c522d6cf0e50c7165dc",
+ "test_2_val_2.fq.gz:md5,3c023e8e890b897821df3dc98f48c2b3"
+ ]
+ ]
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:48.470766"
+ },
+ "pe skip all - trim_unpaired": {
+ "content": [
+ [
+
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:59.820606"
+ },
+ "pe skip all - versions": {
+ "content": [
+ [
+
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:59.831239"
+ },
+ "pe - trim_read_count": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ 100.0
+ ]
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:28.817321"
+ },
+ "se - trim_read_count": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ 100.0
+ ]
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:05.520435"
+ },
+ "se - trim_unpaired": {
+ "content": [
+ [
+
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:05.535593"
+ },
+ "pe no umi - trim_unpaired": {
+ "content": [
+ [
+
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:48.49149"
+ },
+ "pe - reads": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test_trimmed.fq.gz:md5,9c58b78ac2c7b5ce9ca6b090eee1d39c"
+ ]
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:28.810693"
+ },
+ "se - reads": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": true
+ },
+ "test_trimmed.fq.gz:md5,faae784affdd7d84e2fa9da9e9425229"
+ ]
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:05.481086"
+ },
+ "se - versions": {
+ "content": [
+ [
+ "versions.yml:md5,0a5b8fa83ba29cf645bf9e9471cca150",
+ "versions.yml:md5,3e4b7f058c0aa96ba41c3e4d6df6e839",
+ "versions.yml:md5,7e740129a23c5ac21c27476e30f8a6d2"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:05.551084"
+ },
+ "pe skip all - reads": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ [
+ "/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/fastq/test_1.fastq.gz",
+ "/nf-core/test-datasets/modules/data/genomics/sarscov2/illumina/fastq/test_2.fastq.gz"
+ ]
+ ]
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:59.799159"
+ },
+ "pe no umi - versions": {
+ "content": [
+ [
+ "versions.yml:md5,0a5b8fa83ba29cf645bf9e9471cca150",
+ "versions.yml:md5,7e740129a23c5ac21c27476e30f8a6d2"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:48.50189"
+ },
+ "pe no umi - trim_read_count": {
+ "content": [
+ [
+ [
+ {
+ "id": "test",
+ "single_end": false
+ },
+ 100.0
+ ]
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:48.482197"
+ },
+ "pe - versions": {
+ "content": [
+ [
+ "versions.yml:md5,0a5b8fa83ba29cf645bf9e9471cca150",
+ "versions.yml:md5,3e4b7f058c0aa96ba41c3e4d6df6e839",
+ "versions.yml:md5,7e740129a23c5ac21c27476e30f8a6d2"
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:28.837523"
+ },
+ "pe skip all - trim_read_count": {
+ "content": [
+ [
+
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:59.808588"
+ },
+ "pe - trim_unpaired": {
+ "content": [
+ [
+
+ ]
+ ],
+ "meta": {
+ "nf-test": "0.8.4",
+ "nextflow": "24.01.0"
+ },
+ "timestamp": "2024-02-29T14:41:28.824011"
+ }
+}
\ No newline at end of file
diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/nextflow.config b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/nextflow.config
new file mode 100644
index 000000000..06a7d07a7
--- /dev/null
+++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/nextflow.config
@@ -0,0 +1,5 @@
+process {
+ withName: UMITOOLS_EXTRACT {
+ ext.args = '--bc-pattern="NNNN"'
+ }
+}
diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/tags.yml b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/tags.yml
new file mode 100644
index 000000000..5bf59db41
--- /dev/null
+++ b/subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/tests/tags.yml
@@ -0,0 +1,2 @@
+subworkflows/fastq_fastqc_umitools_trimgalore:
+ - subworkflows/nf-core/fastq_fastqc_umitools_trimgalore/**