From 8acf634c5745fe78a5c688787547d27692dfffed Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Thu, 20 Jun 2024 16:30:25 +0100 Subject: [PATCH 01/12] Update all nf-core modules and subworkflows --- modules.json | 38 +- modules/nf-core/cat/fastq/tests/main.nf.test | 2 + .../custom/catadditionalfasta/environment.yml | 2 +- .../nf-core/custom/catadditionalfasta/main.nf | 2 +- .../catadditionalfasta/templates/fasta2gtf.py | 12 +- .../custom/getchromsizes/environment.yml | 3 +- modules/nf-core/custom/getchromsizes/main.nf | 4 +- .../getchromsizes/tests/main.nf.test.snap | 20 +- .../custom/tx2gene/templates/tx2gene.py | 24 +- modules/nf-core/fastp/main.nf | 17 +- modules/nf-core/fastp/meta.yml | 6 +- modules/nf-core/fastp/tests/main.nf.test | 712 ++++-------- modules/nf-core/fastp/tests/main.nf.test.snap | 1018 +++++++++++++---- modules/nf-core/gffread/environment.yml | 2 +- modules/nf-core/gffread/main.nf | 49 +- modules/nf-core/gffread/meta.yml | 21 +- modules/nf-core/gffread/tests/main.nf.test | 178 ++- .../nf-core/gffread/tests/main.nf.test.snap | 276 ++++- .../gffread/tests/nextflow-fasta.config | 5 + modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 4 +- .../nf-core/multiqc/tests/main.nf.test.snap | 18 +- modules/nf-core/preseq/lcextrap/main.nf | 3 +- .../nf-core/samtools/flagstat/environment.yml | 4 +- modules/nf-core/samtools/flagstat/main.nf | 4 +- .../samtools/flagstat/tests/main.nf.test.snap | 6 +- .../nf-core/samtools/idxstats/environment.yml | 4 +- modules/nf-core/samtools/idxstats/main.nf | 4 +- .../samtools/idxstats/tests/main.nf.test.snap | 6 +- .../nf-core/samtools/index/environment.yml | 4 +- modules/nf-core/samtools/index/main.nf | 4 +- .../samtools/index/tests/main.nf.test.snap | 18 +- modules/nf-core/samtools/sort/environment.yml | 4 +- modules/nf-core/samtools/sort/main.nf | 4 +- .../nf-core/samtools/sort/tests/main.nf.test | 16 +- .../samtools/sort/tests/main.nf.test.snap | 198 ++-- .../nf-core/samtools/stats/environment.yml | 4 +- modules/nf-core/samtools/stats/main.nf | 4 +- .../samtools/stats/tests/main.nf.test.snap | 24 +- modules/nf-core/trimgalore/environment.yml | 4 +- .../bam_dedup_stats_samtools_umitools/main.nf | 1 + .../meta.yml | 4 + .../tests/main.nf.test | 1 + .../tests/main.nf.test.snap | 6 +- .../tests/main.nf.test.snap | 8 +- .../tests/main.nf.test.snap | 12 +- .../tests/main.nf.test.snap | 18 +- .../fastq_fastqc_umitools_fastp/main.nf | 1 + .../tests/main.nf.test.snap | 32 +- 49 files changed, 1833 insertions(+), 980 deletions(-) create mode 100644 modules/nf-core/gffread/tests/nextflow-fasta.config diff --git a/modules.json b/modules.json index 0279448ce..774428c8b 100644 --- a/modules.json +++ b/modules.json @@ -17,22 +17,22 @@ }, "cat/fastq": { "branch": "master", - "git_sha": "0997b47c93c06b49aa7b3fefda87e728312cf2ca", + "git_sha": "4fc983ad0b30e6e32696fa7d980c76c7bfe1c03e", "installed_by": ["modules"] }, "custom/catadditionalfasta": { "branch": "master", - "git_sha": "ba6ec49354837595649acd84e7a867d59bf11ad0", + "git_sha": "13c7a1b7a70c13e723a9aeff5aa8438268c09a0f", "installed_by": ["modules"] }, "custom/getchromsizes": { "branch": "master", - "git_sha": "1b0ffa4e5aed5b7e3cd4311af31bd3b2c8345051", + "git_sha": "41a4135c502b42ede663af87efa70a96ecbd7cb9", "installed_by": ["modules"] }, "custom/tx2gene": { "branch": "master", - "git_sha": "ec155021a9104441bf6a9bae3b55d1b5b0bfdb3a", + "git_sha": "82024cf6325d2ee194e7f056d841ecad2f6856e9", "installed_by": ["modules", "quantify_pseudo_alignment"] }, "dupradar": { @@ -42,7 +42,7 @@ }, "fastp": { "branch": "master", - "git_sha": "95cf5fe0194c7bf5cb0e3027a2eb7e7c89385080", + "git_sha": "b90b5cd93149a1b3be263d916c7234fe0708a71c", "installed_by": ["fastq_fastqc_umitools_fastp", "modules"] }, "fastqc": { @@ -57,7 +57,7 @@ }, "gffread": { "branch": "master", - "git_sha": "b1b959609bda44341120aed1766329909f54b8d0", + "git_sha": "6c996d7fbe0816dcbb68ce587ad5f873313682a1", "installed_by": ["modules"] }, "gunzip": { @@ -92,7 +92,7 @@ }, "multiqc": { "branch": "master", - "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", + "git_sha": "8f2062e7b4185590fb9f43c275381a31a6544fc0", "installed_by": ["modules"] }, "picard/markduplicates": { @@ -102,7 +102,7 @@ }, "preseq/lcextrap": { "branch": "master", - "git_sha": "9a88058962c0ee1715f2ad0e017c37e0cd75e532", + "git_sha": "4d178c536f91d022a3bff078bb84037e866c7da4", "installed_by": ["modules"] }, "qualimap/rnaseq": { @@ -172,17 +172,17 @@ }, "samtools/flagstat": { "branch": "master", - "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", + "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", "installed_by": ["bam_stats_samtools"] }, "samtools/idxstats": { "branch": "master", - "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", + "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", "installed_by": ["bam_stats_samtools"] }, "samtools/index": { "branch": "master", - "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", + "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", "installed_by": [ "bam_dedup_stats_samtools_umitools", "bam_markduplicates_picard", @@ -191,12 +191,12 @@ }, "samtools/sort": { "branch": "master", - "git_sha": "4352dbdb09ec40db71e9b172b97a01dcf5622c26", + "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", "installed_by": ["bam_sort_stats_samtools"] }, "samtools/stats": { "branch": "master", - "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", + "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", "installed_by": ["bam_stats_samtools"] }, "sortmerna": { @@ -231,7 +231,7 @@ }, "trimgalore": { "branch": "master", - "git_sha": "d2c5e76f291379f3dd403e48e46ed7e6ba5da744", + "git_sha": "a98418419ae6c9df3cf6cf108d1e1aba71037d5a", "installed_by": ["fastq_fastqc_umitools_trimgalore"] }, "tximeta/tximport": { @@ -275,12 +275,12 @@ "nf-core": { "bam_dedup_stats_samtools_umitools": { "branch": "master", - "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", + "git_sha": "8f2062e7b4185590fb9f43c275381a31a6544fc0", "installed_by": ["subworkflows"] }, "bam_markduplicates_picard": { "branch": "master", - "git_sha": "1943aa60f7490c3d6740e8872e6e69122ccc8087", + "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", "installed_by": ["subworkflows"] }, "bam_rseqc": { @@ -290,12 +290,12 @@ }, "bam_sort_stats_samtools": { "branch": "master", - "git_sha": "4352dbdb09ec40db71e9b172b97a01dcf5622c26", + "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", "installed_by": ["fastq_align_hisat2"] }, "bam_stats_samtools": { "branch": "master", - "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", + "git_sha": "04fbbc7c43cebc0b95d5b126f6d9fe4effa33519", "installed_by": [ "bam_dedup_stats_samtools_umitools", "bam_markduplicates_picard", @@ -314,7 +314,7 @@ }, "fastq_fastqc_umitools_fastp": { "branch": "master", - "git_sha": "e98edb838fb0072c0783139ed16723bbc5d48d23", + "git_sha": "b90b5cd93149a1b3be263d916c7234fe0708a71c", "installed_by": ["subworkflows"] }, "fastq_fastqc_umitools_trimgalore": { diff --git a/modules/nf-core/cat/fastq/tests/main.nf.test b/modules/nf-core/cat/fastq/tests/main.nf.test index ab7cdada9..7236c6cd9 100644 --- a/modules/nf-core/cat/fastq/tests/main.nf.test +++ b/modules/nf-core/cat/fastq/tests/main.nf.test @@ -1,3 +1,5 @@ +// NOTE The version snaps may not be consistant +// https://github.com/nf-core/modules/pull/4087#issuecomment-1767948035 nextflow_process { name "Test Process CAT_FASTQ" diff --git a/modules/nf-core/custom/catadditionalfasta/environment.yml b/modules/nf-core/custom/catadditionalfasta/environment.yml index 5e757bf4c..e587338b5 100644 --- a/modules/nf-core/custom/catadditionalfasta/environment.yml +++ b/modules/nf-core/custom/catadditionalfasta/environment.yml @@ -6,4 +6,4 @@ channels: - bioconda - defaults dependencies: - - conda-forge::python=3.9.5" + - conda-forge::python=3.9.5 diff --git a/modules/nf-core/custom/catadditionalfasta/main.nf b/modules/nf-core/custom/catadditionalfasta/main.nf index 7289976e0..076d7bd08 100644 --- a/modules/nf-core/custom/catadditionalfasta/main.nf +++ b/modules/nf-core/custom/catadditionalfasta/main.nf @@ -1,7 +1,7 @@ process CUSTOM_CATADDITIONALFASTA { tag "$meta.id" - conda "conda-forge::python=3.9.5" + conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'https://depot.galaxyproject.org/singularity/python:3.9--1' : 'biocontainers/python:3.9--1' }" diff --git a/modules/nf-core/custom/catadditionalfasta/templates/fasta2gtf.py b/modules/nf-core/custom/catadditionalfasta/templates/fasta2gtf.py index 39b1d4b2f..194a04160 100755 --- a/modules/nf-core/custom/catadditionalfasta/templates/fasta2gtf.py +++ b/modules/nf-core/custom/catadditionalfasta/templates/fasta2gtf.py @@ -114,16 +114,8 @@ def main() -> None: fasta_to_gtf("$add_fasta", f"{add_name}.gtf", "$biotype") # Concatenate new fasta to existing fasta, and the GTF we just generated to the GTF - genome_name = ( - "$params.genome" - if "$params.genome" != "null" - else os.path.splitext(os.path.basename("$fasta"))[0] - ) - output_prefix = ( - "$task.ext.prefix" - if "$task.ext.prefix" != "null" - else f"{genome_name}_{add_name}" - ) + genome_name = "$params.genome" if "$params.genome" != "null" else os.path.splitext(os.path.basename("$fasta"))[0] + output_prefix = "$task.ext.prefix" if "$task.ext.prefix" != "null" else f"{genome_name}_{add_name}" os.mkdir("out") os.system(f"cat $fasta $add_fasta > out/{output_prefix}.fasta") diff --git a/modules/nf-core/custom/getchromsizes/environment.yml b/modules/nf-core/custom/getchromsizes/environment.yml index 2a01695f1..2ecd0128f 100644 --- a/modules/nf-core/custom/getchromsizes/environment.yml +++ b/modules/nf-core/custom/getchromsizes/environment.yml @@ -4,4 +4,5 @@ channels: - bioconda - defaults dependencies: - - bioconda::samtools=1.16.1 + - bioconda::samtools=1.20 + - bioconda::htslib=1.20 diff --git a/modules/nf-core/custom/getchromsizes/main.nf b/modules/nf-core/custom/getchromsizes/main.nf index e8084ea2c..581f4b77d 100644 --- a/modules/nf-core/custom/getchromsizes/main.nf +++ b/modules/nf-core/custom/getchromsizes/main.nf @@ -4,8 +4,8 @@ process CUSTOM_GETCHROMSIZES { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.16.1--h6899075_1' : - 'biocontainers/samtools:1.16.1--h6899075_1' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.20--h50ea8bc_0' : + 'biocontainers/samtools:1.20--h50ea8bc_0' }" input: tuple val(meta), path(fasta) diff --git a/modules/nf-core/custom/getchromsizes/tests/main.nf.test.snap b/modules/nf-core/custom/getchromsizes/tests/main.nf.test.snap index 2e560bd32..3c53d4624 100644 --- a/modules/nf-core/custom/getchromsizes/tests/main.nf.test.snap +++ b/modules/nf-core/custom/getchromsizes/tests/main.nf.test.snap @@ -22,7 +22,7 @@ ], "3": [ - "versions.yml:md5,45a83c5f3dddbc5dcab30035169f7ce8" + "versions.yml:md5,0d5a7c33bddcb1edad6bf0705b258e6f" ], "fai": [ [ @@ -44,11 +44,15 @@ ] ], "versions": [ - "versions.yml:md5,45a83c5f3dddbc5dcab30035169f7ce8" + "versions.yml:md5,0d5a7c33bddcb1edad6bf0705b258e6f" ] } ], - "timestamp": "2024-01-17T17:48:35.562918" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T13:22:34.14237" }, "test_custom_getchromsizes_bgzip": { "content": [ @@ -78,7 +82,7 @@ ] ], "3": [ - "versions.yml:md5,45a83c5f3dddbc5dcab30035169f7ce8" + "versions.yml:md5,0d5a7c33bddcb1edad6bf0705b258e6f" ], "fai": [ [ @@ -105,10 +109,14 @@ ] ], "versions": [ - "versions.yml:md5,45a83c5f3dddbc5dcab30035169f7ce8" + "versions.yml:md5,0d5a7c33bddcb1edad6bf0705b258e6f" ] } ], - "timestamp": "2024-01-17T17:49:02.562311" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T13:23:06.241379" } } \ No newline at end of file diff --git a/modules/nf-core/custom/tx2gene/templates/tx2gene.py b/modules/nf-core/custom/tx2gene/templates/tx2gene.py index 7fd0de64e..8c2e3b1f4 100755 --- a/modules/nf-core/custom/tx2gene/templates/tx2gene.py +++ b/modules/nf-core/custom/tx2gene/templates/tx2gene.py @@ -17,6 +17,7 @@ logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) + def format_yaml_like(data: dict, indent: int = 0) -> str: """Formats a dictionary to a YAML-like string. @@ -36,6 +37,7 @@ def format_yaml_like(data: dict, indent: int = 0) -> str: yaml_str += f"{spaces}{key}: {value}\\n" return yaml_str + def read_top_transcripts(quant_dir: str, file_pattern: str) -> Set[str]: """ Read the top 100 transcripts from the quantification file. @@ -123,7 +125,12 @@ def parse_attributes(attributes_text: str) -> Dict[str, str]: def map_transcripts_to_gene( - quant_type: str, gtf_file: str, quant_dir: str, gene_id: str, extra_id_field: str, output_file: str + quant_type: str, + gtf_file: str, + quant_dir: str, + gene_id: str, + extra_id_field: str, + output_file: str, ) -> bool: """ Map transcripts to gene names and write the output to a file. @@ -156,7 +163,10 @@ def map_transcripts_to_gene( attr_dict = parse_attributes(cols[8]) if gene_id in attr_dict and transcript_attribute in attr_dict: # Create a unique identifier for the transcript-gene combination - transcript_gene_pair = (attr_dict[transcript_attribute], attr_dict[gene_id]) + transcript_gene_pair = ( + attr_dict[transcript_attribute], + attr_dict[gene_id], + ) # Check if the combination has already been seen if transcript_gene_pair not in seen: @@ -170,14 +180,14 @@ def map_transcripts_to_gene( # Main function to parse arguments and call the mapping function if __name__ == "__main__": - if '${task.ext.prefix}' != "null": + if "${task.ext.prefix}" != "null": prefix = "${task.ext.prefix}." - elif '$meta.id' != "null": - prefix = '${meta.id}.' + elif "$meta.id" != "null": + prefix = "${meta.id}." else: - prefix = '' + prefix = "" - if not map_transcripts_to_gene('$quant_type', '$gtf', 'quants', '$id', '$extra', f"{prefix}tx2gene.tsv"): + if not map_transcripts_to_gene("$quant_type", "$gtf", "quants", "$id", "$extra", f"{prefix}tx2gene.tsv"): logger.error("Failed to map transcripts to genes.") # Write the versions diff --git a/modules/nf-core/fastp/main.nf b/modules/nf-core/fastp/main.nf index 4fc19b744..df60ff61e 100644 --- a/modules/nf-core/fastp/main.nf +++ b/modules/nf-core/fastp/main.nf @@ -10,6 +10,7 @@ process FASTP { input: tuple val(meta), path(reads) path adapter_fasta + val discard_trimmed_pass val save_trimmed_fail val save_merged @@ -18,9 +19,9 @@ process FASTP { tuple val(meta), path('*.json') , emit: json tuple val(meta), path('*.html') , emit: html tuple val(meta), path('*.log') , emit: log - path "versions.yml" , emit: versions tuple val(meta), path('*.fail.fastq.gz') , optional:true, emit: reads_fail tuple val(meta), path('*.merged.fastq.gz'), optional:true, emit: reads_merged + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -30,6 +31,8 @@ process FASTP { def prefix = task.ext.prefix ?: "${meta.id}" def adapter_list = adapter_fasta ? "--adapter_fasta ${adapter_fasta}" : "" def fail_fastq = save_trimmed_fail && meta.single_end ? "--failed_out ${prefix}.fail.fastq.gz" : save_trimmed_fail && !meta.single_end ? "--failed_out ${prefix}.paired.fail.fastq.gz --unpaired1 ${prefix}_1.fail.fastq.gz --unpaired2 ${prefix}_2.fail.fastq.gz" : '' + def out_fq1 = discard_trimmed_pass ?: ( meta.single_end ? "--out1 ${prefix}.fastp.fastq.gz" : "--out1 ${prefix}_1.fastp.fastq.gz" ) + def out_fq2 = discard_trimmed_pass ?: "--out2 ${prefix}_2.fastp.fastq.gz" // Added soft-links to original fastqs for consistent naming in MultiQC // Use single ended for interleaved. Add --interleaved_in in config. if ( task.ext.args?.contains('--interleaved_in') ) { @@ -59,7 +62,7 @@ process FASTP { fastp \\ --in1 ${prefix}.fastq.gz \\ - --out1 ${prefix}.fastp.fastq.gz \\ + $out_fq1 \\ --thread $task.cpus \\ --json ${prefix}.fastp.json \\ --html ${prefix}.fastp.html \\ @@ -81,8 +84,8 @@ process FASTP { fastp \\ --in1 ${prefix}_1.fastq.gz \\ --in2 ${prefix}_2.fastq.gz \\ - --out1 ${prefix}_1.fastp.fastq.gz \\ - --out2 ${prefix}_2.fastp.fastq.gz \\ + $out_fq1 \\ + $out_fq2 \\ --json ${prefix}.fastp.json \\ --html ${prefix}.fastp.html \\ $adapter_list \\ @@ -103,10 +106,10 @@ process FASTP { stub: def prefix = task.ext.prefix ?: "${meta.id}" def is_single_output = task.ext.args?.contains('--interleaved_in') || meta.single_end - def touch_reads = is_single_output ? "${prefix}.fastp.fastq.gz" : "${prefix}_1.fastp.fastq.gz ${prefix}_2.fastp.fastq.gz" - def touch_merged = (!is_single_output && save_merged) ? "touch ${prefix}.merged.fastq.gz" : "" + def touch_reads = (is_single_output && !discard_trimmed_pass) ? "echo '' | gzip > ${prefix}.fastp.fastq.gz" : "echo '' | gzip > ${prefix}_1.fastp.fastq.gz ; echo '' | gzip > ${prefix}_2.fastp.fastq.gz" + def touch_merged = (!is_single_output && save_merged) ? "echo '' | gzip > ${prefix}.merged.fastq.gz" : "" """ - touch $touch_reads + $touch_reads touch "${prefix}.fastp.json" touch "${prefix}.fastp.html" touch "${prefix}.fastp.log" diff --git a/modules/nf-core/fastp/meta.yml b/modules/nf-core/fastp/meta.yml index c22a16abd..8dfecc184 100644 --- a/modules/nf-core/fastp/meta.yml +++ b/modules/nf-core/fastp/meta.yml @@ -27,12 +27,16 @@ input: type: file description: File in FASTA format containing possible adapters to remove. pattern: "*.{fasta,fna,fas,fa}" + - discard_trimmed_pass: + type: boolean + description: Specify true to not write any reads that pass trimming thresholds. | + This can be used to use fastp for the output report only. - save_trimmed_fail: type: boolean description: Specify true to save files that failed to pass trimming thresholds ending in `*.fail.fastq.gz` - save_merged: type: boolean - description: Specify true to save all merged reads to the a file ending in `*.merged.fastq.gz` + description: Specify true to save all merged reads to a file ending in `*.merged.fastq.gz` output: - meta: type: map diff --git a/modules/nf-core/fastp/tests/main.nf.test b/modules/nf-core/fastp/tests/main.nf.test index 1ffdd75f8..ed5fa5ed6 100644 --- a/modules/nf-core/fastp/tests/main.nf.test +++ b/modules/nf-core/fastp/tests/main.nf.test @@ -7,66 +7,32 @@ nextflow_process { test("test_fastp_single_end") { when { - params { - outdir = "$outputDir" - } + process { """ - adapter_fasta = [] - save_trimmed_fail = false - save_merged = false - input[0] = Channel.of([ [ id:'test', single_end:true ], [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] ]) - input[1] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = false + input[4] = false """ } } 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.reads[0][0].toString()] + // meta - process.out.reads.collect { file(it[1]).getName() } + - process.out.json.collect { file(it[1]).getName() } + - process.out.html.collect { file(it[1]).getName() } + - process.out.log.collect { file(it[1]).getName() } + - process.out.reads_fail.collect { file(it[1]).getName() } + - process.out.reads_merged.collect { file(it[1]).getName() } - ).sort() - ).match("test_fastp_single_end-_match") - }, - { assert snapshot(process.out.versions).match("versions_single_end") } + { assert snapshot( + process.out.reads, + process.out.json, + process.out.versions).match() }, + { assert process.out.reads_fail == [] }, + { assert process.out.reads_merged == [] }, + { assert path(process.out.log.get(0).get(1)).getText().contains("reads passed filter: 99") }, + { assert path(process.out.html.get(0).get(1)).getText().contains("single end (151 cycles)") } ) } } @@ -76,22 +42,16 @@ nextflow_process { options '-stub' when { - params { - outdir = "$outputDir" - } process { """ - adapter_fasta = [] - save_trimmed_fail = false - save_merged = false - input[0] = Channel.of([ [ id:'test', single_end:true ], [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] ]) - input[1] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = false + input[4] = false """ } } @@ -100,20 +60,7 @@ nextflow_process { assertAll( { assert process.success }, - { - assert snapshot( - ( - [process.out.reads[0][0].toString()] + // meta - process.out.reads.collect { file(it[1]).getName() } + - process.out.json.collect { file(it[1]).getName() } + - process.out.html.collect { file(it[1]).getName() } + - process.out.log.collect { file(it[1]).getName() } + - process.out.reads_fail.collect { file(it[1]).getName() } + - process.out.reads_merged.collect { file(it[1]).getName() } - ).sort() - ).match("test_fastp_single_end-for_stub_match") - }, - { assert snapshot(process.out.versions).match("versions_single_end_stub") } + { assert snapshot(process.out).match() } ) } } @@ -121,12 +68,11 @@ nextflow_process { test("test_fastp_paired_end") { when { - params { - outdir = "$outputDir" - } + process { """ adapter_fasta = [] + save_trimmed_pass = true save_trimmed_fail = false save_merged = false @@ -135,93 +81,46 @@ nextflow_process { [ 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] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = false + input[4] = false """ } } 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.reads[0][0].toString()] + // meta - process.out.reads.collect { it[1].collect { item -> file(item).getName() } } + - process.out.json.collect { file(it[1]).getName() } + - process.out.html.collect { file(it[1]).getName() } + - process.out.log.collect { file(it[1]).getName() } + - process.out.reads_fail.collect { file(it[1]).getName() } + - process.out.reads_merged.collect { file(it[1]).getName() } - ).sort() - ).match("test_fastp_paired_end_match") - }, - { assert snapshot(process.out.versions).match("versions_paired_end") } + { assert snapshot( + process.out.reads, + process.out.json, + process.out.versions).match() }, + { assert process.out.reads_fail == [] }, + { assert process.out.reads_merged == [] }, + { assert path(process.out.log.get(0).get(1)).getText().contains("Q30 bases: 12281(88.3716%)") }, + { assert path(process.out.html.get(0).get(1)).getText().contains("The input has little adapter percentage (~0.000000%), probably it's trimmed before.") } ) } } - test("test_fastp_paired_end-stub") { + test("test_fastp_paired_end - stub") { options '-stub' when { - params { - outdir = "$outputDir" - } + process { """ - adapter_fasta = [] - save_trimmed_fail = false - save_merged = false - 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] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = false + input[4] = false """ } } @@ -229,20 +128,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { - assert snapshot( - ( - [process.out.reads[0][0].toString()] + // meta - process.out.reads.collect { it[1].collect { item -> file(item).getName() } } + - process.out.json.collect { file(it[1]).getName() } + - process.out.html.collect { file(it[1]).getName() } + - process.out.log.collect { file(it[1]).getName() } + - process.out.reads_fail.collect { file(it[1]).getName() } + - process.out.reads_merged.collect { file(it[1]).getName() } - ).sort() - ).match("test_fastp_paired_end-for_stub_match") - }, - { assert snapshot(process.out.versions).match("versions_paired_end-stub") } + { assert snapshot(process.out).match() }, ) } } @@ -251,92 +137,52 @@ nextflow_process { config './nextflow.interleaved.config' when { - params { - outdir = "$outputDir" - } process { """ - adapter_fasta = [] - save_trimmed_fail = false - save_merged = false - input[0] = Channel.of([ [ id:'test', single_end:true ], // meta map [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_interleaved.fastq.gz', checkIfExists: true) ] ]) - input[1] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = false + input[4] = false """ } } 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: 162"] - 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.reads[0][0].toString()] + // meta - process.out.reads.collect { file(it[1]).getName() } + - process.out.json.collect { file(it[1]).getName() } + - process.out.html.collect { file(it[1]).getName() } + - process.out.log.collect { file(it[1]).getName() } + - process.out.reads_fail.collect { file(it[1]).getName() } + - process.out.reads_merged.collect { file(it[1]).getName() } - ).sort() - ).match("test_fastp_interleaved-_match") - }, - { assert snapshot(process.out.versions).match("versions_interleaved") } + { assert snapshot( + process.out.reads, + process.out.json, + process.out.versions).match() }, + { assert process.out.reads_fail == [] }, + { assert process.out.reads_merged == [] }, + { assert path(process.out.log.get(0).get(1)).getText().contains("reads passed filter: 162") }, + { assert path(process.out.html.get(0).get(1)).getText().contains("paired end (151 cycles + 151 cycles)") } ) } } - test("fastp test_fastp_interleaved-stub") { + test("fastp test_fastp_interleaved - stub") { options '-stub' config './nextflow.interleaved.config' when { - params { - outdir = "$outputDir" - } + process { """ - adapter_fasta = [] - save_trimmed_fail = false - save_merged = false - input[0] = Channel.of([ [ id:'test', single_end:true ], // meta map [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_interleaved.fastq.gz', checkIfExists: true) ] ]) - input[1] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = false + input[4] = false """ } } @@ -344,20 +190,7 @@ nextflow_process { then { assertAll( { assert process.success }, - { - assert snapshot( - ( - [process.out.reads[0][0].toString()] + // meta - process.out.reads.collect { file(it[1]).getName() } + - process.out.json.collect { file(it[1]).getName() } + - process.out.html.collect { file(it[1]).getName() } + - process.out.log.collect { file(it[1]).getName() } + - process.out.reads_fail.collect { file(it[1]).getName() } + - process.out.reads_merged.collect { file(it[1]).getName() } - ).sort() - ).match("test_fastp_interleaved-for_stub_match") - }, - { assert snapshot(process.out.versions).match("versions_interleaved-stub") } + { assert snapshot(process.out).match() }, ) } } @@ -365,60 +198,32 @@ nextflow_process { test("test_fastp_single_end_trim_fail") { when { - params { - outdir = "$outputDir" - } + process { """ - adapter_fasta = [] - save_trimmed_fail = true - save_merged = false - 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] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = true + input[4] = false """ } } 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_single_end_trim_fail") } + { assert snapshot( + process.out.reads, + process.out.reads_fail, + process.out.json, + process.out.versions).match() }, + { assert process.out.reads_merged == [] }, + { assert path(process.out.log.get(0).get(1)).getText().contains("reads passed filter: 99") }, + { assert path(process.out.html.get(0).get(1)).getText().contains("single end (151 cycles)") }, ) } } @@ -427,77 +232,32 @@ nextflow_process { config './nextflow.save_failed.config' when { - params { - outdir = "$outputDir" - } process { """ - adapter_fasta = [] - save_trimmed_fail = true - save_merged = false - 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] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = true + input[4] = false """ } } 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": 162'] - 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(2)).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_paired_end_trim_fail") } + { assert snapshot( + process.out.reads, + process.out.reads_fail, + process.out.json, + process.out.versions).match() }, + { assert process.out.reads_merged == [] }, + { assert path(process.out.log.get(0).get(1)).getText().contains("reads passed filter: 162") }, + { assert path(process.out.html.get(0).get(1)).getText().contains("The input has little adapter percentage (~0.000000%), probably it's trimmed before.") } ) } } @@ -505,90 +265,32 @@ nextflow_process { test("test_fastp_paired_end_merged") { when { - params { - outdir = "$outputDir" - } process { """ - adapter_fasta = [] - save_trimmed_fail = false - save_merged = true 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] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = false + input[4] = true """ } } 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.reads[0][0].toString()] + // meta - process.out.reads.collect { it[1].collect { item -> file(item).getName() } } + - process.out.json.collect { file(it[1]).getName() } + - process.out.html.collect { file(it[1]).getName() } + - process.out.log.collect { file(it[1]).getName() } + - process.out.reads_fail.collect { file(it[1]).getName() } + - process.out.reads_merged.collect { file(it[1]).getName() } - ).sort() - ).match("test_fastp_paired_end_merged_match") - }, - { assert snapshot(process.out.versions).match("versions_paired_end_merged") } + { assert snapshot( + process.out.reads, + process.out.reads_merged, + process.out.json, + process.out.versions).match() }, + { assert process.out.reads_fail == [] }, + { assert path(process.out.log.get(0).get(1)).getText().contains("total reads: 75") }, + { assert path(process.out.html.get(0).get(1)).getText().contains("The input has little adapter percentage (~0.000000%), probably it's trimmed before.") } ) } } @@ -598,23 +300,17 @@ nextflow_process { options '-stub' when { - params { - outdir = "$outputDir" - } process { """ - adapter_fasta = [] - save_trimmed_fail = false - save_merged = true - 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] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = false + input[3] = false + input[4] = true """ } } @@ -622,101 +318,171 @@ nextflow_process { then { assertAll( { assert process.success }, - { - assert snapshot( - ( - [process.out.reads[0][0].toString()] + // meta - process.out.reads.collect { it[1].collect { item -> file(item).getName() } } + - process.out.json.collect { file(it[1]).getName() } + - process.out.html.collect { file(it[1]).getName() } + - process.out.log.collect { file(it[1]).getName() } + - process.out.reads_fail.collect { file(it[1]).getName() } + - process.out.reads_merged.collect { file(it[1]).getName() } - ).sort() - ).match("test_fastp_paired_end_merged-for_stub_match") - }, - { assert snapshot(process.out.versions).match("versions_paired_end_merged_stub") } + { assert snapshot(process.out).match() }, ) } } test("test_fastp_paired_end_merged_adapterlist") { + when { + process { + """ + 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] = Channel.of([ file(params.modules_testdata_base_path + 'delete_me/fastp/adapters.fasta', checkIfExists: true) ]) + input[2] = false + input[3] = false + input[4] = true + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.reads, + process.out.reads_merged, + process.out.json, + process.out.versions).match() }, + { assert process.out.reads_fail == [] }, + { assert path(process.out.log.get(0).get(1)).getText().contains("total bases: 13683") }, + { assert path(process.out.html.get(0).get(1)).getText().contains("
") } + ) + } + } + + test("test_fastp_single_end_qc_only") { + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:true ], + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] + ]) + input[1] = [] + input[2] = true + input[3] = false + input[4] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + process.out.reads, + process.out.reads_fail, + process.out.reads_merged, + process.out.json, + process.out.versions).match() }, + { assert process.out.reads == [] }, + { assert process.out.reads_fail == [] }, + { assert process.out.reads_merged == [] }, + { assert path(process.out.log.get(0).get(1)).getText().contains("reads passed filter: 99") }, + { assert path(process.out.html.get(0).get(1)).getText().contains("single end (151 cycles)") }, + ) + } + } + + test("test_fastp_single_end_qc_only-stub") { + + options '-stub' + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:true ], + [ file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) ] + ]) + input[1] = [] + input[2] = true + input[3] = false + input[4] = false + """ + } + } + + then { + + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() }, + ) + } + } + + test("test_fastp_paired_end_qc_only") { + when { params { outdir = "$outputDir" } process { """ - adapter_fasta = Channel.of([ file(params.modules_testdata_base_path + 'delete_me/fastp/adapters.fasta', checkIfExists: true) ]) - save_trimmed_fail = false - save_merged = true - 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] = adapter_fasta - input[2] = save_trimmed_fail - input[3] = save_merged + input[1] = [] + input[2] = true + input[3] = false + input[4] = false """ } } 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_paired_end_merged_adapterlist") } + { assert snapshot(process.out).match() }, ) } } -} +} \ No newline at end of file diff --git a/modules/nf-core/fastp/tests/main.nf.test.snap b/modules/nf-core/fastp/tests/main.nf.test.snap index 3e8762889..b609b9a2a 100644 --- a/modules/nf-core/fastp/tests/main.nf.test.snap +++ b/modules/nf-core/fastp/tests/main.nf.test.snap @@ -1,330 +1,966 @@ { - "fastp test_fastp_interleaved_json": { + "test_fastp_paired_end_qc_only-stub": { "content": [ - [ - [ - { - "id": "test", - "single_end": true - }, - "test.fastp.json:md5,b24e0624df5cc0b11cd5ba21b726fb22" + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ], + "html": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "json": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "reads": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "reads_fail": [ + + ], + "reads_merged": [ + + ], + "versions": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] - ] + } ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T16:19:15.063001" + "timestamp": "2024-06-08T05:42:26.603745039" }, - "test_fastp_paired_end_merged-for_stub_match": { + "test_fastp_paired_end": { "content": [ [ [ - "test_1.fastp.fastq.gz", - "test_2.fastp.fastq.gz" - ], - "test.fastp.html", - "test.fastp.json", - "test.fastp.log", - "test.merged.fastq.gz", - "{id=test, single_end=false}" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-01-17T18:10:13.467574" - }, - "versions_interleaved": { - "content": [ - [ - "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-01T11:56:24.615634793" - }, - "test_fastp_single_end_json": { - "content": [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,67b2bbae47f073e05a97a9c2edce23c7", + "test_2.fastp.fastq.gz:md5,25cbdca08e2083dbd4f0502de6b62f39" + ] + ] + ], [ [ { "id": "test", - "single_end": true + "single_end": false }, - "test.fastp.json:md5,c852d7a6dba5819e4ac8d9673bedcacc" + "test.fastp.json:md5,1e0f8e27e71728e2b63fc64086be95cd" ] - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-03-18T16:18:43.526412" - }, - "versions_paired_end": { - "content": [ + ], [ "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T11:55:42.333545689" + "timestamp": "2024-06-10T13:02:09.747686552" }, - "test_fastp_paired_end_match": { + "fastp test_fastp_interleaved - stub": { "content": [ - [ - [ - "test_1.fastp.fastq.gz", - "test_2.fastp.fastq.gz" + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] ], - "test.fastp.html", - "test.fastp.json", - "test.fastp.log", - "{id=test, single_end=false}" - ] + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ], + "html": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "json": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "reads": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "reads_fail": [ + + ], + "reads_merged": [ + + ], + "versions": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ] + } ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T12:03:06.431833729" + "timestamp": "2024-06-10T13:03:09.374379128" }, - "test_fastp_interleaved-_match": { + "test_fastp_paired_end_merged_adapterlist": { "content": [ [ - "test.fastp.fastq.gz", - "test.fastp.html", - "test.fastp.json", - "test.fastp.log", - "{id=test, single_end=true}" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-03-18T16:19:15.111894" - }, - "test_fastp_paired_end_merged_match": { - "content": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,54b726a55e992a869fd3fa778afe1672", + "test_2.fastp.fastq.gz:md5,29d3b33b869f7b63417b8ff07bb128ba" + ] + ] + ], [ [ - "test_1.fastp.fastq.gz", - "test_2.fastp.fastq.gz" - ], - "test.fastp.html", - "test.fastp.json", - "test.fastp.log", - "test.merged.fastq.gz", - "{id=test, single_end=false}" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-01T12:08:44.496251446" - }, - "versions_single_end_stub": { - "content": [ + { + "id": "test", + "single_end": false + }, + "test.merged.fastq.gz:md5,c873bb1ab3fa859dcc47306465e749d5" + ] + ], [ - "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-02-01T11:55:27.354051299" - }, - "versions_interleaved-stub": { - "content": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.json:md5,5914ca3f21ce162123a824e33e8564f6" + ] + ], [ "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T11:56:46.535528418" + "timestamp": "2024-06-10T13:04:47.637461379" }, - "versions_single_end_trim_fail": { + "test_fastp_single_end_qc_only": { "content": [ + [ + + ], + [ + + ], + [ + + ], + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,5cc5f01e449309e0e689ed6f51a2294a" + ] + ], [ "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T11:59:03.724591407" + "timestamp": "2024-06-10T20:11:50.885505279" }, - "test_fastp_paired_end-for_stub_match": { + "test_fastp_single_end-stub": { "content": [ - [ - [ - "test_1.fastp.fastq.gz", - "test_2.fastp.fastq.gz" + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] ], - "test.fastp.html", - "test.fastp.json", - "test.fastp.log", - "{id=test, single_end=false}" - ] + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ], + "html": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "json": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "reads": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "reads_fail": [ + + ], + "reads_merged": [ + + ], + "versions": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ] + } ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-01-17T18:07:15.398827" + "timestamp": "2024-06-10T13:01:55.987280865" }, - "versions_paired_end-stub": { + "test_fastp_paired_end_trim_fail": { "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,6ff32a64c5188b9a9192be1398c262c7", + "test_2.fastp.fastq.gz:md5,db0cb7c9977e94ac2b4b446ebd017a8a" + ] + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test.paired.fail.fastq.gz:md5,409b687c734cedd7a1fec14d316e1366", + "test_1.fail.fastq.gz:md5,4f273cf3159c13f79e8ffae12f5661f6", + "test_2.fail.fastq.gz:md5,f97b9edefb5649aab661fbc9e71fc995" + ] + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.json:md5,4c3268ddb50ea5b33125984776aa3519" + ] + ], [ "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T11:56:06.50017282" + "timestamp": "2024-06-10T13:03:46.458766801" }, - "versions_single_end": { + "test_fastp_paired_end - stub": { "content": [ - [ - "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" - ] + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ], + "html": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "json": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "reads": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "reads_fail": [ + + ], + "reads_merged": [ + + ], + "versions": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ] + } ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T11:55:07.67921647" + "timestamp": "2024-06-08T05:36:36.446112695" }, - "versions_paired_end_merged_stub": { + "test_fastp_paired_end_merged": { "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,54b726a55e992a869fd3fa778afe1672", + "test_2.fastp.fastq.gz:md5,29d3b33b869f7b63417b8ff07bb128ba" + ] + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.merged.fastq.gz:md5,c873bb1ab3fa859dcc47306465e749d5" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.json:md5,b712fd68ed0322f4bec49ff2a5237fcc" + ] + ], [ "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T11:59:47.350653154" + "timestamp": "2024-06-10T13:04:09.964580373" }, - "test_fastp_interleaved-for_stub_match": { + "test_fastp_single_end": { "content": [ [ - "test.fastp.fastq.gz", - "test.fastp.html", - "test.fastp.json", - "test.fastp.log", - "{id=test, single_end=true}" - ] - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-01-17T18:08:06.127974" - }, - "versions_paired_end_trim_fail": { - "content": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.fastq.gz:md5,67b2bbae47f073e05a97a9c2edce23c7" + ] + ], + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,c852d7a6dba5819e4ac8d9673bedcacc" + ] + ], [ "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T11:59:18.140484878" + "timestamp": "2024-06-10T13:01:34.044931225" }, - "test_fastp_single_end-for_stub_match": { + "test_fastp_paired_end_merged-stub": { "content": [ - [ - "test.fastp.fastq.gz", - "test.fastp.html", - "test.fastp.json", - "test.fastp.log", - "{id=test, single_end=true}" - ] + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + + ], + "5": [ + [ + { + "id": "test", + "single_end": false + }, + "test.merged.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "6": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ], + "html": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "json": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": false + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "reads": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_1.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "reads_fail": [ + + ], + "reads_merged": [ + [ + { + "id": "test", + "single_end": false + }, + "test.merged.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ], + "versions": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ] + } ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-01-17T18:06:00.244202" + "timestamp": "2024-06-08T05:39:42.022707162" }, - "test_fastp_single_end-_match": { + "test_fastp_single_end_qc_only-stub": { "content": [ - [ - "test.fastp.fastq.gz", - "test.fastp.html", - "test.fastp.json", - "test.fastp.log", - "{id=test, single_end=true}" - ] + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test_1.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + + ], + "5": [ + + ], + "6": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ], + "html": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.html:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "json": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "reads": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test_1.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_2.fastp.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "reads_fail": [ + + ], + "reads_merged": [ + + ], + "versions": [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" + ] + } ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T16:18:43.580336" + "timestamp": "2024-06-10T13:05:31.722431847" }, - "versions_paired_end_merged_adapterlist": { + "fastp test_fastp_interleaved": { "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.fastq.gz:md5,217d62dc13a23e92513a1bd8e1bcea39" + ] + ], + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,b24e0624df5cc0b11cd5ba21b726fb22" + ] + ], [ "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T12:05:37.845370554" + "timestamp": "2024-06-07T22:35:04.608948751" }, - "versions_paired_end_merged": { + "test_fastp_single_end_trim_fail": { "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.fastq.gz:md5,67b2bbae47f073e05a97a9c2edce23c7" + ] + ], + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fail.fastq.gz:md5,3e4aaadb66a5b8fc9b881bf39c227abd" + ] + ], + [ + [ + { + "id": "test", + "single_end": true + }, + "test.fastp.json:md5,9a7ee180f000e8d00c7fb67f06293eb5" + ] + ], [ "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-01T11:59:32.860543858" + "timestamp": "2024-06-10T13:03:23.130471376" }, - "test_fastp_single_end_trim_fail_json": { + "test_fastp_paired_end_qc_only": { "content": [ + [ + + ], + [ + + ], + [ + + ], [ [ { "id": "test", - "single_end": true + "single_end": false }, - "test.fastp.json:md5,9a7ee180f000e8d00c7fb67f06293eb5" + "test.fastp.json:md5,623064a45912dac6f2b64e3f2e9901df" ] + ], + [ + "versions.yml:md5,48ffc994212fb1fc9f83a74fa69c9f02" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-01-17T18:08:41.942317" + "timestamp": "2024-06-10T20:12:14.00927619" } } \ No newline at end of file diff --git a/modules/nf-core/gffread/environment.yml b/modules/nf-core/gffread/environment.yml index 5398f71c5..c6df58ad0 100644 --- a/modules/nf-core/gffread/environment.yml +++ b/modules/nf-core/gffread/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::gffread=0.12.1 + - bioconda::gffread=0.12.7 diff --git a/modules/nf-core/gffread/main.nf b/modules/nf-core/gffread/main.nf index d8a473e0a..da55cbab7 100644 --- a/modules/nf-core/gffread/main.nf +++ b/modules/nf-core/gffread/main.nf @@ -1,32 +1,57 @@ process GFFREAD { - tag "$gff" + tag "$meta.id" label 'process_low' conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/gffread:0.12.1--h8b12597_0' : - 'biocontainers/gffread:0.12.1--h8b12597_0' }" + 'https://depot.galaxyproject.org/singularity/gffread:0.12.7--hdcf5f25_4' : + 'biocontainers/gffread:0.12.7--hdcf5f25_4' }" input: - path gff + tuple val(meta), path(gff) + path fasta output: - path "*.gtf" , emit: gtf , optional: true - path "*.gff3" , emit: gffread_gff , optional: true - path "versions.yml" , emit: versions + tuple val(meta), path("*.gtf") , emit: gtf , optional: true + tuple val(meta), path("*.gff3") , emit: gffread_gff , optional: true + tuple val(meta), path("*.fasta"), emit: gffread_fasta , optional: true + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${gff.baseName}" - def extension = args.contains("-T") ? 'gtf' : 'gffread.gff3' + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = args.contains("-T") ? 'gtf' : ( ( ['-w', '-x', '-y' ].any { args.contains(it) } ) ? 'fasta' : 'gff3' ) + def fasta_arg = fasta ? "-g $fasta" : '' + def output_name = "${prefix}.${extension}" + def output = extension == "fasta" ? "$output_name" : "-o $output_name" + def args_sorted = args.replaceAll(/(.*)(-[wxy])(.*)/) { all, pre, param, post -> "$pre $post $param" }.trim() + // args_sorted = Move '-w', '-x', and '-y' to the end of the args string as gffread expects the file name after these parameters + if ( "$output_name" in [ "$gff", "$fasta" ] ) error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" """ gffread \\ $gff \\ - $args \\ - -o ${prefix}.${extension} + $fasta_arg \\ + $args_sorted \\ + $output + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + gffread: \$(gffread --version 2>&1) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def extension = args.contains("-T") ? 'gtf' : ( ( ['-w', '-x', '-y' ].any { args.contains(it) } ) ? 'fasta' : 'gff3' ) + def output_name = "${prefix}.${extension}" + if ( "$output_name" in [ "$gff", "$fasta" ] ) error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + """ + touch $output_name + cat <<-END_VERSIONS > versions.yml "${task.process}": gffread: \$(gffread --version 2>&1) diff --git a/modules/nf-core/gffread/meta.yml b/modules/nf-core/gffread/meta.yml index d38cbcda9..c06028208 100644 --- a/modules/nf-core/gffread/meta.yml +++ b/modules/nf-core/gffread/meta.yml @@ -13,11 +13,25 @@ tools: doi: 10.12688/f1000research.23297.1 licence: ["MIT"] input: + - meta: + type: map + description: | + Groovy Map containing meta data + e.g. [ id:'test' ] - gff: type: file description: A reference file in either the GFF3, GFF2 or GTF format. pattern: "*.{gff, gtf}" + - fasta: + type: file + description: A multi-fasta file with the genomic sequences + pattern: "*.{fasta,fa,faa,fas,fsa}" output: + - meta: + type: map + description: | + Groovy Map containing meta data + e.g. [ id:'test' ] - gtf: type: file description: GTF file resulting from the conversion of the GFF input file if '-T' argument is present @@ -25,7 +39,11 @@ output: - gffread_gff: type: file description: GFF3 file resulting from the conversion of the GFF input file if '-T' argument is absent - pattern: "*.{gff3}" + pattern: "*.gff3" + - gffread_fasta: + type: file + description: Fasta file produced when either of '-w', '-x', '-y' parameters is present + pattern: "*.fasta" - versions: type: file description: File containing software versions @@ -34,3 +52,4 @@ authors: - "@edmundmiller" maintainers: - "@edmundmiller" + - "@gallvp" diff --git a/modules/nf-core/gffread/tests/main.nf.test b/modules/nf-core/gffread/tests/main.nf.test index 82bb66925..e03820f4d 100644 --- a/modules/nf-core/gffread/tests/main.nf.test +++ b/modules/nf-core/gffread/tests/main.nf.test @@ -14,7 +14,11 @@ nextflow_process { } process { """ - input[0] = file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = [] """ } } @@ -22,11 +26,40 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert snapshot( - process.out.gtf, - process.out.versions - ).match() }, - { assert process.out.gffread_gff == [] } + { assert snapshot(process.out).match() }, + { assert process.out.gffread_gff == [] }, + { assert process.out.gffread_fasta == [] } + ) + } + + } + + test("sarscov2-gff3-gtf-stub") { + + options '-stub' + config "./nextflow.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gffread_gff == [] }, + { assert process.out.gffread_fasta == [] } ) } @@ -42,7 +75,42 @@ nextflow_process { } process { """ - input[0] = file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = [] + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gtf == [] }, + { assert process.out.gffread_fasta == [] } + ) + } + + } + + test("sarscov2-gff3-gff3-stub") { + + options '-stub' + config "./nextflow-gff3.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = [] """ } } @@ -50,11 +118,99 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert snapshot( - process.out.gffread_gff, - process.out.versions - ).match() }, + { assert snapshot(process.out).match() }, { assert process.out.gtf == [] }, + { assert process.out.gffread_fasta == [] } + ) + } + + } + + test("sarscov2-gff3-fasta") { + + config "./nextflow-fasta.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.fasta", checkIfExists: true) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gtf == [] }, + { assert process.out.gffread_gff == [] } + ) + } + + } + + test("sarscov2-gff3-fasta-stub") { + + options '-stub' + config "./nextflow-fasta.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.fasta", checkIfExists: true) + """ + } + } + + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() }, + { assert process.out.gtf == [] }, + { assert process.out.gffread_gff == [] } + ) + } + + } + + test("sarscov2-gff3-fasta-fail-catch") { + + options '-stub' + config "./nextflow-fasta.config" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ + [id: 'genome'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gff3", checkIfExists: true) + ] + input[1] = file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.fasta", checkIfExists: true) + """ + } + } + + then { + assertAll ( + { assert ! process.success }, + { assert process.stdout.toString().contains("Input and output names are the same") } ) } diff --git a/modules/nf-core/gffread/tests/main.nf.test.snap b/modules/nf-core/gffread/tests/main.nf.test.snap index 00a11a406..15262320d 100644 --- a/modules/nf-core/gffread/tests/main.nf.test.snap +++ b/modules/nf-core/gffread/tests/main.nf.test.snap @@ -1,24 +1,272 @@ { "sarscov2-gff3-gtf": { "content": [ - [ - "genome.gtf:md5,2394072d7d31530dfd590c4a117bf6e3" - ], - [ - "versions.yml:md5,a71b6cdfa528dd206a238ec64bae13d6" - ] + { + "0": [ + [ + { + "id": "test" + }, + "test.gtf:md5,1ea0ae98d3388e0576407dc4a24ef428" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + + ], + "gffread_gff": [ + + ], + "gtf": [ + [ + { + "id": "test" + }, + "test.gtf:md5,1ea0ae98d3388e0576407dc4a24ef428" + ] + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } ], - "timestamp": "2024-01-23T20:00:32.688779117" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T10:48:56.496187" }, "sarscov2-gff3-gff3": { "content": [ - [ - "genome.gffread.gff3:md5,a7d40d99dcddac23ac673c473279ea2d" - ], - [ - "versions.yml:md5,a71b6cdfa528dd206a238ec64bae13d6" - ] + { + "0": [ + + ], + "1": [ + [ + { + "id": "test" + }, + "test.gff3:md5,c4e5da6267c6bee5899a2c204ae1ad91" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + + ], + "gffread_gff": [ + [ + { + "id": "test" + }, + "test.gff3:md5,c4e5da6267c6bee5899a2c204ae1ad91" + ] + ], + "gtf": [ + + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } ], - "timestamp": "2024-01-23T20:07:11.457356625" + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T10:49:00.892782" + }, + "sarscov2-gff3-gtf-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + + ], + "gffread_gff": [ + + ], + "gtf": [ + [ + { + "id": "test" + }, + "test.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T11:11:26.975666" + }, + "sarscov2-gff3-fasta-stub": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "2": [ + [ + { + "id": "test" + }, + "test.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + [ + { + "id": "test" + }, + "test.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "gffread_gff": [ + + ], + "gtf": [ + + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T11:11:44.34792" + }, + "sarscov2-gff3-gff3-stub": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test" + }, + "test.gff3:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + + ], + "gffread_gff": [ + [ + { + "id": "test" + }, + "test.gff3:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "gtf": [ + + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T11:11:35.221671" + }, + "sarscov2-gff3-fasta": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "2": [ + [ + { + "id": "test" + }, + "test.fasta:md5,5f8108fb51739a0588ccf0a251de919a" + ] + ], + "3": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ], + "gffread_fasta": [ + [ + { + "id": "test" + }, + "test.fasta:md5,5f8108fb51739a0588ccf0a251de919a" + ] + ], + "gffread_gff": [ + + ], + "gtf": [ + + ], + "versions": [ + "versions.yml:md5,05f671c6c6e530acedad0af0a5948dbd" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-09T10:54:02.88143" } } \ No newline at end of file diff --git a/modules/nf-core/gffread/tests/nextflow-fasta.config b/modules/nf-core/gffread/tests/nextflow-fasta.config new file mode 100644 index 000000000..ac6cb1484 --- /dev/null +++ b/modules/nf-core/gffread/tests/nextflow-fasta.config @@ -0,0 +1,5 @@ +process { + withName: GFFREAD { + ext.args = '-w -S' + } +} diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index ca39fb67e..72e598b67 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::multiqc=1.21 + - bioconda::multiqc=1.22.2 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 47ac352f9..e59efef9d 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.21--pyhdfd78af_0' : - 'biocontainers/multiqc:1.21--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.22.2--pyhdfd78af_0' : + 'biocontainers/multiqc:1.22.2--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index bfebd8029..a170c31dd 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" + "versions.yml:md5,ddbc971a8307f9b9b7b973714cde29d0" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-29T08:48:55.657331" + "timestamp": "2024-06-10T11:50:10.874341679" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" + "versions.yml:md5,ddbc971a8307f9b9b7b973714cde29d0" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-29T08:49:49.071937" + "timestamp": "2024-06-10T11:50:49.271943761" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,21f35ee29416b9b3073c28733efe4b7d" + "versions.yml:md5,ddbc971a8307f9b9b7b973714cde29d0" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-29T08:49:25.457567" + "timestamp": "2024-06-10T11:50:34.046706025" } } \ No newline at end of file diff --git a/modules/nf-core/preseq/lcextrap/main.nf b/modules/nf-core/preseq/lcextrap/main.nf index ebbf215f0..0f8a1e9ec 100644 --- a/modules/nf-core/preseq/lcextrap/main.nf +++ b/modules/nf-core/preseq/lcextrap/main.nf @@ -1,7 +1,7 @@ process PRESEQ_LCEXTRAP { tag "$meta.id" label 'process_single' - label 'error_ignore' + label 'error_retry' conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? @@ -21,6 +21,7 @@ process PRESEQ_LCEXTRAP { script: def args = task.ext.args ?: '' + args = task.attempt > 1 ? args.join(' -defects') : args // Disable testing for defects def prefix = task.ext.prefix ?: "${meta.id}" def paired_end = meta.single_end ? '' : '-pe' """ diff --git a/modules/nf-core/samtools/flagstat/environment.yml b/modules/nf-core/samtools/flagstat/environment.yml index bd57cb54d..68b81558e 100644 --- a/modules/nf-core/samtools/flagstat/environment.yml +++ b/modules/nf-core/samtools/flagstat/environment.yml @@ -4,5 +4,5 @@ channels: - bioconda - defaults dependencies: - - bioconda::samtools=1.19.2 - - bioconda::htslib=1.19.1 + - bioconda::samtools=1.20 + - bioconda::htslib=1.20 diff --git a/modules/nf-core/samtools/flagstat/main.nf b/modules/nf-core/samtools/flagstat/main.nf index eb5f52523..754d84b73 100644 --- a/modules/nf-core/samtools/flagstat/main.nf +++ b/modules/nf-core/samtools/flagstat/main.nf @@ -4,8 +4,8 @@ process SAMTOOLS_FLAGSTAT { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.19.2--h50ea8bc_0' : - 'biocontainers/samtools:1.19.2--h50ea8bc_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.20--h50ea8bc_0' : + 'biocontainers/samtools:1.20--h50ea8bc_0' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/samtools/flagstat/tests/main.nf.test.snap b/modules/nf-core/samtools/flagstat/tests/main.nf.test.snap index a76fc27e4..e9f85efa9 100644 --- a/modules/nf-core/samtools/flagstat/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/flagstat/tests/main.nf.test.snap @@ -20,13 +20,13 @@ "versions": { "content": [ [ - "versions.yml:md5,fd0030ce49ab3a92091ad80260226452" + "versions.yml:md5,f606681ef971cbb548a4d9e3fbabdbc2" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:11:44.299617452" + "timestamp": "2024-05-28T15:41:52.516253882" } } \ No newline at end of file diff --git a/modules/nf-core/samtools/idxstats/environment.yml b/modules/nf-core/samtools/idxstats/environment.yml index 174973b88..eb6c88099 100644 --- a/modules/nf-core/samtools/idxstats/environment.yml +++ b/modules/nf-core/samtools/idxstats/environment.yml @@ -4,5 +4,5 @@ channels: - bioconda - defaults dependencies: - - bioconda::samtools=1.19.2 - - bioconda::htslib=1.19.1 + - bioconda::samtools=1.20 + - bioconda::htslib=1.20 diff --git a/modules/nf-core/samtools/idxstats/main.nf b/modules/nf-core/samtools/idxstats/main.nf index a544026f3..2ea2a5ccd 100644 --- a/modules/nf-core/samtools/idxstats/main.nf +++ b/modules/nf-core/samtools/idxstats/main.nf @@ -4,8 +4,8 @@ process SAMTOOLS_IDXSTATS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.19.2--h50ea8bc_0' : - 'biocontainers/samtools:1.19.2--h50ea8bc_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.20--h50ea8bc_0' : + 'biocontainers/samtools:1.20--h50ea8bc_0' }" input: tuple val(meta), path(bam), path(bai) diff --git a/modules/nf-core/samtools/idxstats/tests/main.nf.test.snap b/modules/nf-core/samtools/idxstats/tests/main.nf.test.snap index a7050bdc8..4eacdb90f 100644 --- a/modules/nf-core/samtools/idxstats/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/idxstats/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "versions": { "content": [ [ - "versions.yml:md5,613dde56f108418039ffcdeeddba397a" + "versions.yml:md5,7acbcb2a8ec6436ba7b2916d3ff13351" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:16:50.147462763" + "timestamp": "2024-05-28T15:46:46.617989517" }, "idxstats": { "content": [ diff --git a/modules/nf-core/samtools/index/environment.yml b/modules/nf-core/samtools/index/environment.yml index a5e506498..260d516be 100644 --- a/modules/nf-core/samtools/index/environment.yml +++ b/modules/nf-core/samtools/index/environment.yml @@ -4,5 +4,5 @@ channels: - bioconda - defaults dependencies: - - bioconda::samtools=1.19.2 - - bioconda::htslib=1.19.1 + - bioconda::samtools=1.20 + - bioconda::htslib=1.20 diff --git a/modules/nf-core/samtools/index/main.nf b/modules/nf-core/samtools/index/main.nf index dc14f98d6..b523c21b4 100644 --- a/modules/nf-core/samtools/index/main.nf +++ b/modules/nf-core/samtools/index/main.nf @@ -4,8 +4,8 @@ process SAMTOOLS_INDEX { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.19.2--h50ea8bc_0' : - 'biocontainers/samtools:1.19.2--h50ea8bc_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.20--h50ea8bc_0' : + 'biocontainers/samtools:1.20--h50ea8bc_0' }" input: tuple val(meta), path(input) diff --git a/modules/nf-core/samtools/index/tests/main.nf.test.snap b/modules/nf-core/samtools/index/tests/main.nf.test.snap index 3dc8e7de8..52756e85c 100644 --- a/modules/nf-core/samtools/index/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/index/tests/main.nf.test.snap @@ -2,26 +2,26 @@ "crai_versions": { "content": [ [ - "versions.yml:md5,cc4370091670b64bba7c7206403ffb3e" + "versions.yml:md5,802c9776d9c5e95314e888cf18e96d77" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:12:00.324667957" + "timestamp": "2024-05-28T15:42:04.203740976" }, "csi_versions": { "content": [ [ - "versions.yml:md5,cc4370091670b64bba7c7206403ffb3e" + "versions.yml:md5,802c9776d9c5e95314e888cf18e96d77" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:12:07.885103162" + "timestamp": "2024-05-28T15:42:09.57475878" }, "crai": { "content": [ @@ -62,13 +62,13 @@ "bai_versions": { "content": [ [ - "versions.yml:md5,cc4370091670b64bba7c7206403ffb3e" + "versions.yml:md5,802c9776d9c5e95314e888cf18e96d77" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:11:51.641425452" + "timestamp": "2024-05-28T15:41:57.929287369" } } \ No newline at end of file diff --git a/modules/nf-core/samtools/sort/environment.yml b/modules/nf-core/samtools/sort/environment.yml index 4d898e486..36a12eab0 100644 --- a/modules/nf-core/samtools/sort/environment.yml +++ b/modules/nf-core/samtools/sort/environment.yml @@ -4,5 +4,5 @@ channels: - bioconda - defaults dependencies: - - bioconda::samtools=1.19.2 - - bioconda::htslib=1.19.1 + - bioconda::samtools=1.20 + - bioconda::htslib=1.20 diff --git a/modules/nf-core/samtools/sort/main.nf b/modules/nf-core/samtools/sort/main.nf index fc374f980..596c6f7e9 100644 --- a/modules/nf-core/samtools/sort/main.nf +++ b/modules/nf-core/samtools/sort/main.nf @@ -4,8 +4,8 @@ process SAMTOOLS_SORT { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.19.2--h50ea8bc_0' : - 'biocontainers/samtools:1.19.2--h50ea8bc_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.20--h50ea8bc_0' : + 'biocontainers/samtools:1.20--h50ea8bc_0' }" input: tuple val(meta) , path(bam) diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test b/modules/nf-core/samtools/sort/tests/main.nf.test index 728201ded..cb97ca66b 100644 --- a/modules/nf-core/samtools/sort/tests/main.nf.test +++ b/modules/nf-core/samtools/sort/tests/main.nf.test @@ -26,7 +26,11 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out.bam, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } } + ).match("test_bam") + } ) } } @@ -40,11 +44,11 @@ nextflow_process { """ input[0] = Channel.of([ [ id:'test', single_end:false ], // meta map - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/bam/test.paired_end.bam', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/cram/test.paired_end.sorted.cram', checkIfExists: true) ]) input[1] = Channel.of([ [ id:'fasta' ], // meta map - file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/genome.fasta', checkIfExists: true) ]) """ } @@ -53,7 +57,11 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert snapshot(process.out).match() } + { assert snapshot( + process.out.bam, + process.out.csi.collect { it.collect { it instanceof Map ? it : file(it).name } } + ).match("test_cram") + } ) } } diff --git a/modules/nf-core/samtools/sort/tests/main.nf.test.snap b/modules/nf-core/samtools/sort/tests/main.nf.test.snap index 384776564..5a27de1d1 100644 --- a/modules/nf-core/samtools/sort/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/sort/tests/main.nf.test.snap @@ -1,68 +1,21 @@ { "cram": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test.sorted.bam:md5,bc0b7c25da26384a006ed84cc9e4da23" - ] - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - [ - { - "id": "test", - "single_end": false - }, - "test.sorted.bam.csi:md5,8d4e836c2fed6c0bf874d5e8cdba5831" - ] - ], - "4": [ - "versions.yml:md5,e6d43fefc9a8bff91c2ce6e3a1716eca" - ], - "bam": [ - [ - { - "id": "test", - "single_end": false - }, - "test.sorted.bam:md5,bc0b7c25da26384a006ed84cc9e4da23" - ] - ], - "crai": [ - - ], - "cram": [ - - ], - "csi": [ - [ - { - "id": "test", - "single_end": false - }, - "test.sorted.bam.csi:md5,8d4e836c2fed6c0bf874d5e8cdba5831" - ] - ], - "versions": [ - "versions.yml:md5,e6d43fefc9a8bff91c2ce6e3a1716eca" + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,21c992d59615936b99f2ad008aa54400" ] - } + ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-04T15:08:00.830294" + "timestamp": "2024-05-31T08:13:54.512837189" }, "bam_stub_bam": { "content": [ @@ -70,85 +23,92 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.04.3" + "nextflow": "24.04.2" + }, + "timestamp": "2024-05-31T07:29:00.761845507" + }, + "test_cram": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,22b2093be34a7637f5fbc84272b89d06" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi" + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" }, - "timestamp": "2024-02-12T19:21:04.364044" + "timestamp": "2024-05-31T09:16:51.924951855" + }, + "test_bam": { + "content": [ + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,21c992d59615936b99f2ad008aa54400" + ] + ], + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam.csi" + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-05-31T08:28:12.15952312" }, "bam_stub_versions": { "content": [ [ - "versions.yml:md5,e6d43fefc9a8bff91c2ce6e3a1716eca" + "versions.yml:md5,7a360de20e1d7a6f15a5e8fbe0a9c062" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-13T16:15:00.20800281" + "timestamp": "2024-05-31T07:29:00.765038811" }, "bam": { "content": [ - { - "0": [ - [ - { - "id": "test", - "single_end": false - }, - "test.sorted.bam:md5,bc0b7c25da26384a006ed84cc9e4da23" - ] - ], - "1": [ - - ], - "2": [ - - ], - "3": [ - [ - { - "id": "test", - "single_end": false - }, - "test.sorted.bam.csi:md5,8d4e836c2fed6c0bf874d5e8cdba5831" - ] - ], - "4": [ - "versions.yml:md5,e6d43fefc9a8bff91c2ce6e3a1716eca" - ], - "bam": [ - [ - { - "id": "test", - "single_end": false - }, - "test.sorted.bam:md5,bc0b7c25da26384a006ed84cc9e4da23" - ] - ], - "crai": [ - - ], - "cram": [ - - ], - "csi": [ - [ - { - "id": "test", - "single_end": false - }, - "test.sorted.bam.csi:md5,8d4e836c2fed6c0bf874d5e8cdba5831" - ] - ], - "versions": [ - "versions.yml:md5,e6d43fefc9a8bff91c2ce6e3a1716eca" + [ + [ + { + "id": "test", + "single_end": false + }, + "test.sorted.bam:md5,21c992d59615936b99f2ad008aa54400" ] - } + ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-04T15:07:48.773803" + "timestamp": "2024-05-31T08:13:48.538030517" } } \ No newline at end of file diff --git a/modules/nf-core/samtools/stats/environment.yml b/modules/nf-core/samtools/stats/environment.yml index 67bb0ca40..1cc83bd95 100644 --- a/modules/nf-core/samtools/stats/environment.yml +++ b/modules/nf-core/samtools/stats/environment.yml @@ -4,5 +4,5 @@ channels: - bioconda - defaults dependencies: - - bioconda::samtools=1.19.2 - - bioconda::htslib=1.19.1 + - bioconda::samtools=1.20 + - bioconda::htslib=1.20 diff --git a/modules/nf-core/samtools/stats/main.nf b/modules/nf-core/samtools/stats/main.nf index 52b00f4b6..982bc28e7 100644 --- a/modules/nf-core/samtools/stats/main.nf +++ b/modules/nf-core/samtools/stats/main.nf @@ -4,8 +4,8 @@ process SAMTOOLS_STATS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/samtools:1.19.2--h50ea8bc_0' : - 'biocontainers/samtools:1.19.2--h50ea8bc_0' }" + 'https://depot.galaxyproject.org/singularity/samtools:1.20--h50ea8bc_0' : + 'biocontainers/samtools:1.20--h50ea8bc_0' }" input: tuple val(meta), path(input), path(input_index) diff --git a/modules/nf-core/samtools/stats/tests/main.nf.test.snap b/modules/nf-core/samtools/stats/tests/main.nf.test.snap index 1b7c9ba44..2747fd6c6 100644 --- a/modules/nf-core/samtools/stats/tests/main.nf.test.snap +++ b/modules/nf-core/samtools/stats/tests/main.nf.test.snap @@ -8,11 +8,11 @@ "id": "test", "single_end": false }, - "test.stats:md5,01812900aa4027532906c5d431114233" + "test.stats:md5,c9d39b38c22de2057fc2f89949090975" ] ], "1": [ - "versions.yml:md5,0514ceb1769b2a88843e08c1f82624a9" + "versions.yml:md5,b3b70b126f867fdbb7dcea5e36e49d4a" ], "stats": [ [ @@ -20,19 +20,19 @@ "id": "test", "single_end": false }, - "test.stats:md5,01812900aa4027532906c5d431114233" + "test.stats:md5,c9d39b38c22de2057fc2f89949090975" ] ], "versions": [ - "versions.yml:md5,0514ceb1769b2a88843e08c1f82624a9" + "versions.yml:md5,b3b70b126f867fdbb7dcea5e36e49d4a" ] } ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:15:25.562429714" + "timestamp": "2024-05-28T15:45:24.403941966" }, "bam": { "content": [ @@ -43,11 +43,11 @@ "id": "test", "single_end": false }, - "test.stats:md5,5d8681bf541199898c042bf400391d59" + "test.stats:md5,d522a1fa016b259d6a55620ae53dcd63" ] ], "1": [ - "versions.yml:md5,0514ceb1769b2a88843e08c1f82624a9" + "versions.yml:md5,b3b70b126f867fdbb7dcea5e36e49d4a" ], "stats": [ [ @@ -55,18 +55,18 @@ "id": "test", "single_end": false }, - "test.stats:md5,5d8681bf541199898c042bf400391d59" + "test.stats:md5,d522a1fa016b259d6a55620ae53dcd63" ] ], "versions": [ - "versions.yml:md5,0514ceb1769b2a88843e08c1f82624a9" + "versions.yml:md5,b3b70b126f867fdbb7dcea5e36e49d4a" ] } ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:15:07.857611509" + "timestamp": "2024-05-28T15:45:06.711251947" } } \ No newline at end of file diff --git a/modules/nf-core/trimgalore/environment.yml b/modules/nf-core/trimgalore/environment.yml index 17b39f4a5..0981320c1 100644 --- a/modules/nf-core/trimgalore/environment.yml +++ b/modules/nf-core/trimgalore/environment.yml @@ -1,8 +1,10 @@ name: trimgalore + channels: - conda-forge - bioconda - defaults + dependencies: - - bioconda::trim-galore=0.6.7 - bioconda::cutadapt=3.4 + - bioconda::trim-galore=0.6.7 diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/main.nf b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/main.nf index 7c07084ff..fe6ff312f 100644 --- a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/main.nf +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/main.nf @@ -44,6 +44,7 @@ workflow BAM_DEDUP_STATS_SAMTOOLS_UMITOOLS { emit: bam = UMITOOLS_DEDUP.out.bam // channel: [ val(meta), path(bam) ] + deduplog = UMITOOLS_DEDUP.out.log // channel: [ val(meta), path(log) ] bai = SAMTOOLS_INDEX.out.bai // channel: [ val(meta), path(bai) ] csi = SAMTOOLS_INDEX.out.csi // channel: [ val(meta), path(csi) ] diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/meta.yml b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/meta.yml index e655484e7..93e1238b4 100644 --- a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/meta.yml +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/meta.yml @@ -37,6 +37,10 @@ output: description: | CSI samtools index Structure: [ val(meta), path(csi) ] + - deduplog: + description: | + UMI-tools deduplication log + Structure: [ val(meta), path(log) ] - stats: description: | File containing samtools stats output diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test index 1ef1f7fe7..1a95c0bb5 100644 --- a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test @@ -27,6 +27,7 @@ nextflow_workflow { then { assertAll( { assert workflow.success}, + { assert workflow.out.deduplog.get(0).get(1) ==~ ".*.log"}, { assert workflow.out.bam.get(0).get(1) ==~ ".*.bam"}, { assert workflow.out.bai.get(0).get(1) ==~ ".*.bai"}, { assert snapshot(workflow.out.stats).match("test_bam_dedup_stats_samtools_umitools_stats") }, diff --git a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test.snap b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test.snap index 5a3e80b4a..442776f69 100644 --- a/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test.snap +++ b/subworkflows/nf-core/bam_dedup_stats_samtools_umitools/tests/main.nf.test.snap @@ -40,14 +40,14 @@ { "id": "test" }, - "test.stats:md5,02342d307779941001376ff5d19e941a" + "test.stats:md5,09d1bd8f10e000921202f7ea1cd0679e" ] ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:45:33.563016651" + "timestamp": "2024-05-29T07:36:18.573909434" } } \ No newline at end of file diff --git a/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap index caf4ac8ad..94f8f29c4 100644 --- a/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap +++ b/subworkflows/nf-core/bam_markduplicates_picard/tests/main.nf.test.snap @@ -5,13 +5,13 @@ "test.cram.crai:md5,78d47ba01ac4e05f3ae1e353902a989e", "test.flagstat:md5,93b0ef463df947ede1f42ff60396c34d", "test.idxstats:md5,e179601fa7b8ebce81ac3765206f6c15", - "test.stats:md5,c2f74a4d9b2377bcf4f4f184da3801af" + "test.stats:md5,372a7d9d9081aa009b21343a913beb14" ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-20T20:45:38.364189" + "timestamp": "2024-05-29T07:39:18.809130196" }, "sarscov2 - bam": { "content": [ @@ -19,12 +19,12 @@ "test.bam.bai:md5,4d3ae8d013444b55e17aa0149a2ab404", "test.flagstat:md5,4f7ffd1e6a5e85524d443209ac97d783", "test.idxstats:md5,df60a8c8d6621100d05178c93fb053a2", - "test.stats:md5,d7796222a087b9bb97f631f1c21b9c95" + "test.stats:md5,cca83e4fc9406fc3875b5e60055d6574" ], "meta": { "nf-test": "0.8.4", "nextflow": "23.10.1" }, - "timestamp": "2024-03-21T11:38:08.434529" + "timestamp": "2024-05-29T07:39:07.280687689" } } \ No newline at end of file diff --git a/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap index 6645a0920..db063837f 100644 --- a/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap +++ b/subworkflows/nf-core/bam_sort_stats_samtools/tests/main.nf.test.snap @@ -43,15 +43,15 @@ "id": "test", "single_end": false }, - "test.stats:md5,cb0bf2b79de52fdf0c61e80efcdb0bb4" + "test.stats:md5,d32de3b3716a11039cef2367c3c1a56e" ] ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:44:38.553256801" + "timestamp": "2024-05-29T07:47:44.044172487" }, "test_bam_sort_stats_samtools_paired_end_stats": { "content": [ @@ -61,15 +61,15 @@ "id": "test", "single_end": false }, - "test.stats:md5,d7796222a087b9bb97f631f1c21b9c95" + "test.stats:md5,cca83e4fc9406fc3875b5e60055d6574" ] ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:44:48.355870518" + "timestamp": "2024-05-29T07:47:51.426232891" }, "test_bam_sort_stats_samtools_single_end_idxstats": { "content": [ diff --git a/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap index bf0b0c696..c2cb4dec0 100644 --- a/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap +++ b/subworkflows/nf-core/bam_stats_samtools/tests/main.nf.test.snap @@ -25,15 +25,15 @@ "id": "test", "single_end": true }, - "test.stats:md5,ddaf8f33fe9c1ebe9b06933213aec8ed" + "test.stats:md5,7afd486ad6abb9a2a3dac90c99e1d87b" ] ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:45:06.230091746" + "timestamp": "2024-05-29T07:46:05.502831991" }, "test_bam_stats_samtools_paired_end_flagstats": { "content": [ @@ -97,15 +97,15 @@ "id": "test", "single_end": true }, - "test.stats:md5,dc178e1a4956043aba8abc83e203521b" + "test.stats:md5,4a0c429c661d6aa0b60acb9309da642d" ] ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:44:57.442208382" + "timestamp": "2024-05-29T07:45:59.612412212" }, "test_bam_stats_samtools_paired_end_idxstats": { "content": [ @@ -151,14 +151,14 @@ "id": "test", "single_end": false }, - "test.stats:md5,d3345c4887f4a9ea4f7f56405b495db0" + "test.stats:md5,16b59a1f2c99d9fe30f711adc3ebe32d" ] ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "23.10.1" }, - "timestamp": "2024-02-13T16:45:14.997164209" + "timestamp": "2024-05-29T07:46:11.96999343" } } \ No newline at end of file diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf index 764ce013f..c472d7116 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf +++ b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/main.nf @@ -91,6 +91,7 @@ workflow FASTQ_FASTQC_UMITOOLS_FASTP { FASTP ( umi_reads, adapter_fasta, + false, // don't want to set discard_trimmed_pass, else there will be no reads output save_trimmed_fail, save_merged ) diff --git a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/tests/main.nf.test.snap index 3e11d9ec3..4a6689f67 100644 --- a/subworkflows/nf-core/fastq_fastqc_umitools_fastp/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fastq_fastqc_umitools_fastp/tests/main.nf.test.snap @@ -55,9 +55,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T16:53:49.315194" + "timestamp": "2024-06-10T15:08:06.209854813" }, "save_trimmed_fail": { "content": [ @@ -127,9 +127,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T16:51:45.34934" + "timestamp": "2024-06-10T15:09:56.338504908" }, "skip_umi_extract": { "content": [ @@ -189,9 +189,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T12:07:40.34249" + "timestamp": "2024-06-10T15:08:51.174735433" }, "umi_discard_read = 2": { "content": [ @@ -251,9 +251,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T12:08:24.141938" + "timestamp": "2024-06-10T15:09:14.145250471" }, "save_merged": { "content": [ @@ -319,9 +319,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T12:10:18.546963" + "timestamp": "2024-06-10T15:10:16.25526763" }, "skip_trimming": { "content": [ @@ -417,9 +417,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T16:53:39.139038" + "timestamp": "2024-06-10T15:07:52.031579846" }, "min_trimmed_reads = 26": { "content": [ @@ -485,9 +485,9 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T11:52:23.849945" + "timestamp": "2024-06-10T15:10:34.68796644" }, "with_umi": { "content": [ @@ -542,8 +542,8 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.2" }, - "timestamp": "2024-03-18T17:31:09.193212" + "timestamp": "2024-06-10T15:08:32.267769943" } } \ No newline at end of file From 961c9b67606fbf9a665831e17ee4621f3cdeae3b Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Thu, 20 Jun 2024 16:56:46 +0100 Subject: [PATCH 02/12] Fix pipeline after updates to GFFREAD module --- subworkflows/local/prepare_genome/main.nf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/subworkflows/local/prepare_genome/main.nf b/subworkflows/local/prepare_genome/main.nf index 9b7d9c597..1e4ee46fd 100644 --- a/subworkflows/local/prepare_genome/main.nf +++ b/subworkflows/local/prepare_genome/main.nf @@ -89,12 +89,12 @@ workflow PREPARE_GENOME { } } else if (gff) { if (gff.endsWith('.gz')) { - ch_gff = GUNZIP_GFF ( [ [:], file(gff, checkIfExists: true) ] ).gunzip.map { it[1] } + ch_gff = GUNZIP_GFF ( [ [:], file(gff, checkIfExists: true) ] ).gunzip ch_versions = ch_versions.mix(GUNZIP_GFF.out.versions) } else { - ch_gff = Channel.value(file(gff, checkIfExists: true)) + ch_gff = Channel.value(file(gff, checkIfExists: true)).map { [ [:], it ] } } - ch_gtf = GFFREAD ( ch_gff ).gtf + ch_gtf = GFFREAD ( ch_gff, [] ).gtf.map { it[1] } ch_versions = ch_versions.mix(GFFREAD.out.versions) } From 51939f258eae16197476018b8a28af746f6cd987 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Thu, 20 Jun 2024 16:58:01 +0100 Subject: [PATCH 03/12] Update CHANGELOG --- CHANGELOG.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfeded678..ab5b1c006 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -95,6 +95,7 @@ Thank you to everyone else that has contributed by reporting bugs, enhancements - [PR #1326](https://github.com/nf-core/rnaseq/pull/1326) - Move Conda dependencies for local modules to individual environment file - [PR #1328](https://github.com/nf-core/rnaseq/pull/1328) - Add pipeline level test for STAR-RSEM and HISAT2 - [PR #1329](https://github.com/nf-core/rnaseq/pull/1329) - Remove tags from all nf-test files +- [PR #1330](https://github.com/nf-core/rnaseq/pull/1330) - Update all nf-core/modules and subworkflows ### Parameters @@ -114,9 +115,10 @@ Thank you to everyone else that has contributed by reporting bugs, enhancements | `bioconductor-dupradar` | 1.28.0 | 1.32.0 | | `bioconductor-summarizedexperiment` | 1.24.0 | 1.32.0 | | `bioconductor-tximeta` | 1.12.0 | 1.20.1 | -| `multiqc` | 1.20 | 1.21 | +| `gffread` | 0.12.1 | 0.12.7 | +| `multiqc` | 1.20 | 1.22.2 | | `picard` | 3.0.0 | 3.1.1 | -| `samtools` | 1.17 | 1.19.2 | +| `samtools` | 1.17 | 1.20 | | `sortmerna` | 4.3.4 | 4.3.6 | | `umi_tools` | 1.14 | 1.15 | From 133334238e04d87c9ea4231d3cf9364a36a88881 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Thu, 20 Jun 2024 18:19:14 +0100 Subject: [PATCH 04/12] Update snapshots for prepare_genome subworkflow --- .../prepare_genome/tests/main.nf.test.snap | 164 +++++++++--------- 1 file changed, 82 insertions(+), 82 deletions(-) diff --git a/subworkflows/local/prepare_genome/tests/main.nf.test.snap b/subworkflows/local/prepare_genome/tests/main.nf.test.snap index 2121a7ee5..2741bb23d 100644 --- a/subworkflows/local/prepare_genome/tests/main.nf.test.snap +++ b/subworkflows/local/prepare_genome/tests/main.nf.test.snap @@ -43,17 +43,17 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", - "versions.yml:md5,961ab91198c4e6ec9d795b95e3f61fda" + "versions.yml:md5,961ab91198c4e6ec9d795b95e3f61fda", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:39:26.998916" + "timestamp": "2024-06-20T18:17:05.661629" }, "hisat2_index = false": { "content": [ @@ -99,16 +99,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:38:55.160854" + "timestamp": "2024-06-20T18:16:45.642259" }, "featurecounts_group_type = 'gene_type'": { "content": [ @@ -154,16 +154,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:39:58.190328" + "timestamp": "2024-06-20T18:17:22.714024" }, "skip_gtf_filter": { "content": [ @@ -209,15 +209,15 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", - "versions.yml:md5,71252f1a221be05593361acccb99506b" + "versions.yml:md5,71252f1a221be05593361acccb99506b", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:33:22.688771" + "timestamp": "2024-06-20T18:13:30.196042" }, "gtf = false": { "content": [ @@ -231,7 +231,7 @@ "genome_gfp.fasta:md5,e23e302af63736a199985a169fdac055" ], [ - "genome_gfp.gtf:md5,34da4da0a8f3412d763db7853210d7c1" + "genome_gfp.gtf:md5,68b68c059ba170af3f9d0a5dc1e0c8b8" ], [ "genome_gfp.fasta.fai:md5,8fa54c6bd2ea6a369efbb8ab4f30156a" @@ -261,20 +261,20 @@ ], [ - "versions.yml:md5,0a23f0be65eb55b48ae71fe6e69a25a9", "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", + "versions.yml:md5,2a3ed31ad34b8864fb9278dcdef596ec", "versions.yml:md5,71252f1a221be05593361acccb99506b", "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", - "versions.yml:md5,961ab91198c4e6ec9d795b95e3f61fda" + "versions.yml:md5,961ab91198c4e6ec9d795b95e3f61fda", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:35:18.49994" + "timestamp": "2024-06-20T18:14:42.913968" }, "gfp = false": { "content": [ @@ -319,16 +319,16 @@ ], [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T17:43:51.41041" + "timestamp": "2024-06-20T18:15:16.551347" }, "skip_bbsplit": { "content": [ @@ -373,16 +373,16 @@ ], [ "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:12:46.345567" + "timestamp": "2024-06-20T18:13:46.28042" }, "skip_bbsplit = true": { "content": [ @@ -427,16 +427,16 @@ ], [ "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:23:38.303812" + "timestamp": "2024-06-20T18:17:57.14732" }, "with bed": { "content": [ @@ -482,15 +482,15 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:37:21.338219" + "timestamp": "2024-06-20T18:15:52.284517" }, "skip_alignment": { "content": [ @@ -536,16 +536,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:34:12.785475" + "timestamp": "2024-06-20T18:14:04.612027" }, "gencode = false": { "content": [ @@ -591,16 +591,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:32:54.452919" + "timestamp": "2024-06-20T18:13:13.483047" }, "gff = false": { "content": [ @@ -646,16 +646,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T17:43:27.87968" + "timestamp": "2024-06-20T18:15:00.759762" }, "default options": { "content": [ @@ -701,16 +701,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:32:22.525706" + "timestamp": "2024-06-20T18:12:54.779065" }, "salmon_index = false": { "content": [ @@ -756,16 +756,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:38:24.083134" + "timestamp": "2024-06-20T18:16:27.229869" }, "rsem_index = false": { "content": [ @@ -811,16 +811,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:37:52.068391" + "timestamp": "2024-06-20T18:16:09.968836" }, "skip_psuedo_alignment": { "content": [ @@ -866,16 +866,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:34:43.261537" + "timestamp": "2024-06-20T18:14:22.598093" }, "transcriptome = false": { "content": [ @@ -921,17 +921,17 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", - "versions.yml:md5,918fe0b59c0986eb602ace85841c5ab3" + "versions.yml:md5,918fe0b59c0986eb602ace85841c5ab3", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T17:44:23.836038" + "timestamp": "2024-06-20T18:15:34.269049" }, "skip_pseudoalignment = true": { "content": [ @@ -977,16 +977,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:41:45.834084" + "timestamp": "2024-06-20T18:18:35.783312" }, "skip_alignment = true": { "content": [ @@ -1032,16 +1032,16 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", "versions.yml:md5,71252f1a221be05593361acccb99506b", - "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a" + "versions.yml:md5,80e9dd350be8cd4c11909d75c914757a", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:41:15.442241" + "timestamp": "2024-06-20T18:18:16.883006" }, "skip_gtf_filter = true": { "content": [ @@ -1087,14 +1087,14 @@ [ "versions.yml:md5,0bc25597acf1d50abf7070d19d311cd7", "versions.yml:md5,1cd265cb86a23a27f683ffb2459f37f5", - "versions.yml:md5,58fa668eeacb984c10df6f856f2c9291", - "versions.yml:md5,71252f1a221be05593361acccb99506b" + "versions.yml:md5,71252f1a221be05593361acccb99506b", + "versions.yml:md5,bc99889446f02427c166b3219b793672" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-13T11:40:24.672206" + "timestamp": "2024-06-20T18:17:39.358651" } } \ No newline at end of file From b8cf404f2a6e0ad61778a2279b72c9f73a38f7f1 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Thu, 20 Jun 2024 18:43:44 +0100 Subject: [PATCH 05/12] Remove problem multiqc setting --- workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt b/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt index 04e10efa5..a745d2ff2 100644 --- a/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt +++ b/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt @@ -8,5 +8,4 @@ #anchor: 'deseq2_clustering' #pconfig: # title: 'DESeq2: Heatmap of the sample-to-sample distances' -# xlab: True # reverseColors: True From d338f007384c8cd8e341c75d2e4448f8041c96b0 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Fri, 21 Jun 2024 09:41:27 +0100 Subject: [PATCH 06/12] Revert "Remove problem multiqc setting" This reverts commit b8cf404f2a6e0ad61778a2279b72c9f73a38f7f1. --- workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt b/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt index a745d2ff2..04e10efa5 100644 --- a/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt +++ b/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt @@ -8,4 +8,5 @@ #anchor: 'deseq2_clustering' #pconfig: # title: 'DESeq2: Heatmap of the sample-to-sample distances' +# xlab: True # reverseColors: True From e640eeaae309bdae813945e0a928913c6df63b27 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Thu, 27 Jun 2024 11:17:05 +0100 Subject: [PATCH 07/12] Update all nf-core/modules again --- CHANGELOG.md | 2 +- modules.json | 20 +- modules/nf-core/bbmap/bbsplit/main.nf | 19 + .../nf-core/bbmap/bbsplit/tests/main.nf.test | 97 +++++ .../bbmap/bbsplit/tests/main.nf.test.snap | 228 +++++++++++- .../nf-core/custom/catadditionalfasta/main.nf | 13 + .../catadditionalfasta/tests/main.nf.test | 32 +- .../tests/main.nf.test.snap | 65 ++++ modules/nf-core/fq/subsample/main.nf | 12 + .../nf-core/fq/subsample/tests/main.nf.test | 89 ++++- .../fq/subsample/tests/main.nf.test.snap | 266 ++++++++++++++ modules/nf-core/gunzip/main.nf | 13 +- modules/nf-core/gunzip/meta.yml | 1 + modules/nf-core/gunzip/tests/main.nf.test | 85 +++++ .../nf-core/gunzip/tests/main.nf.test.snap | 103 ++++++ modules/nf-core/gunzip/tests/nextflow.config | 5 + modules/nf-core/hisat2/align/main.nf | 19 + .../nf-core/hisat2/align/tests/main.nf.test | 202 +++++++++++ .../hisat2/align/tests/main.nf.test.snap | 338 ++++++++++++++++-- modules/nf-core/hisat2/build/main.nf | 11 + .../nf-core/hisat2/build/tests/main.nf.test | 47 ++- .../hisat2/build/tests/main.nf.test.snap | 66 +++- .../nf-core/hisat2/extractsplicesites/main.nf | 11 + .../extractsplicesites/tests/main.nf.test | 26 ++ .../tests/main.nf.test.snap | 37 ++ modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 4 +- .../nf-core/multiqc/tests/main.nf.test.snap | 12 +- modules/nf-core/preseq/lcextrap/main.nf | 12 + .../preseq/lcextrap/tests/main.nf.test | 50 +++ .../preseq/lcextrap/tests/main.nf.test.snap | 130 +++++++ .../fastq_align_hisat2/tests/main.nf.test | 52 +-- .../tests/main.nf.test.snap | 44 +-- 33 files changed, 2002 insertions(+), 111 deletions(-) create mode 100644 modules/nf-core/gunzip/tests/nextflow.config diff --git a/CHANGELOG.md b/CHANGELOG.md index ab5b1c006..cafb32598 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -116,7 +116,7 @@ Thank you to everyone else that has contributed by reporting bugs, enhancements | `bioconductor-summarizedexperiment` | 1.24.0 | 1.32.0 | | `bioconductor-tximeta` | 1.12.0 | 1.20.1 | | `gffread` | 0.12.1 | 0.12.7 | -| `multiqc` | 1.20 | 1.22.2 | +| `multiqc` | 1.20 | 1.22.3 | | `picard` | 3.0.0 | 3.1.1 | | `samtools` | 1.17 | 1.20 | | `sortmerna` | 4.3.4 | 4.3.6 | diff --git a/modules.json b/modules.json index 774428c8b..c7d899894 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "bbmap/bbsplit": { "branch": "master", - "git_sha": "ecc2139bc014be1d0117d6c69458d82fbfa3328f", + "git_sha": "2c6b1144ed58b6184ad58fc4e6b6a90219b4bf4f", "installed_by": ["modules"] }, "bedtools/genomecov": { @@ -22,7 +22,7 @@ }, "custom/catadditionalfasta": { "branch": "master", - "git_sha": "13c7a1b7a70c13e723a9aeff5aa8438268c09a0f", + "git_sha": "2c6b1144ed58b6184ad58fc4e6b6a90219b4bf4f", "installed_by": ["modules"] }, "custom/getchromsizes": { @@ -52,7 +52,7 @@ }, "fq/subsample": { "branch": "master", - "git_sha": "59d1faf07ace4f7a00f7fa7778bce4e1f1dcdd63", + "git_sha": "2c6b1144ed58b6184ad58fc4e6b6a90219b4bf4f", "installed_by": ["fastq_subsample_fq_salmon", "modules"] }, "gffread": { @@ -62,22 +62,22 @@ }, "gunzip": { "branch": "master", - "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208", + "git_sha": "a7231cbccb86535529e33859e05d19ac93f3ea04", "installed_by": ["modules"] }, "hisat2/align": { "branch": "master", - "git_sha": "400037f54de4b0c42712ec5a499d9fd9e66250d1", + "git_sha": "2c6b1144ed58b6184ad58fc4e6b6a90219b4bf4f", "installed_by": ["fastq_align_hisat2"] }, "hisat2/build": { "branch": "master", - "git_sha": "400037f54de4b0c42712ec5a499d9fd9e66250d1", + "git_sha": "2c6b1144ed58b6184ad58fc4e6b6a90219b4bf4f", "installed_by": ["modules"] }, "hisat2/extractsplicesites": { "branch": "master", - "git_sha": "400037f54de4b0c42712ec5a499d9fd9e66250d1", + "git_sha": "2c6b1144ed58b6184ad58fc4e6b6a90219b4bf4f", "installed_by": ["modules"] }, "kallisto/index": { @@ -92,7 +92,7 @@ }, "multiqc": { "branch": "master", - "git_sha": "8f2062e7b4185590fb9f43c275381a31a6544fc0", + "git_sha": "314d742bdb357a1df5f9b88427b3b6ac78aa33f7", "installed_by": ["modules"] }, "picard/markduplicates": { @@ -102,7 +102,7 @@ }, "preseq/lcextrap": { "branch": "master", - "git_sha": "4d178c536f91d022a3bff078bb84037e866c7da4", + "git_sha": "2c6b1144ed58b6184ad58fc4e6b6a90219b4bf4f", "installed_by": ["modules"] }, "qualimap/rnaseq": { @@ -309,7 +309,7 @@ }, "fastq_align_hisat2": { "branch": "master", - "git_sha": "701ae347c4508fba1b7d65262596f278b6a11cb6", + "git_sha": "2c6b1144ed58b6184ad58fc4e6b6a90219b4bf4f", "installed_by": ["subworkflows"] }, "fastq_fastqc_umitools_fastp": { diff --git a/modules/nf-core/bbmap/bbsplit/main.nf b/modules/nf-core/bbmap/bbsplit/main.nf index 1abb608c2..57bf6398a 100644 --- a/modules/nf-core/bbmap/bbsplit/main.nf +++ b/modules/nf-core/bbmap/bbsplit/main.nf @@ -105,4 +105,23 @@ process BBMAP_BBSPLIT { END_VERSIONS """ + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def other_refs = '' + other_ref_names.eachWithIndex { name, index -> + other_refs += "echo '' | gzip > ${prefix}_primary_${name}.fastq.gz" + } + """ + mkdir bbsplit + + echo '' | gzip > ${prefix}_primary.fastq.gz + ${other_refs} + touch ${prefix}.stats.txt + touch ${prefix}.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bbmap: \$(bbversion.sh | grep -v "Duplicate cpuset") + END_VERSIONS + """ } diff --git a/modules/nf-core/bbmap/bbsplit/tests/main.nf.test b/modules/nf-core/bbmap/bbsplit/tests/main.nf.test index 0257fedac..b878366b3 100644 --- a/modules/nf-core/bbmap/bbsplit/tests/main.nf.test +++ b/modules/nf-core/bbmap/bbsplit/tests/main.nf.test @@ -3,6 +3,70 @@ nextflow_process { name "Test Process BBMAP_BBSPLIT" script "../main.nf" process "BBMAP_BBSPLIT" + tag "modules" + tag "modules_nfcore" + tag "bbmap" + tag "bbmap/bbsplit" + + test("sarscov2_se_fastq_fasta_chr22_fasta - index") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [[:],[]] + input[1] = [] + input[2] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)) + input[3] = Channel.of([ + [ 'human' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr22/sequence/chr22_23800000-23980000.fa', checkIfExists: true) + ]) + input[4] = true + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert path("${process.out.index[0]}").exists() }, + { assert path(process.out.log[0][1]).text.contains("No index available") }, + { assert snapshot(process.out.versions).match() } + ) + } + } + + test("sarscov2_se_fastq_fasta_chr22_fasta - index - stub") { + + options "-stub" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [[:],[]] + input[1] = [] + input[2] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)) + input[3] = Channel.of([ + [ 'human' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr22/sequence/chr22_23800000-23980000.fa', checkIfExists: true) + ]) + input[4] = true + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } test("sarscov2_se_fastq_fasta_chr22_fasta") { @@ -84,4 +148,37 @@ nextflow_process { ) } } + + test("sarscov2_se_fastq_fasta_chr22_fasta - stub") { + + options "-stub" + + when { + params { + outdir = "$outputDir" + } + process { + """ + 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] = [] + input[2] = Channel.of(file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true)) + input[3] = Channel.of([ + [ 'human' ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/genome/chr22/sequence/chr22_23800000-23980000.fa', checkIfExists: true) + ]) + input[4] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } } diff --git a/modules/nf-core/bbmap/bbsplit/tests/main.nf.test.snap b/modules/nf-core/bbmap/bbsplit/tests/main.nf.test.snap index 51b3bee1f..6a4889aaa 100644 --- a/modules/nf-core/bbmap/bbsplit/tests/main.nf.test.snap +++ b/modules/nf-core/bbmap/bbsplit/tests/main.nf.test.snap @@ -26,5 +26,231 @@ "nextflow": "23.10.1" }, "timestamp": "2024-02-01T17:11:22.441753642" + }, + "sarscov2_se_fastq_fasta_chr22_fasta - index": { + "content": [ + [ + "versions.yml:md5,cb7f0e697ab2537f8ced951bfade90d4" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T16:41:29.784895" + }, + "sarscov2_se_fastq_fasta_chr22_fasta - index - stub": { + "content": [ + { + "0": [ + [ + + ] + ], + "1": [ + [ + { + + }, + [ + "null_primary.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "null_primary_human.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "2": [ + [ + { + + }, + [ + "null_primary.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "null_primary_human.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "3": [ + [ + { + + }, + "null.stats.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + + }, + "null.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + "versions.yml:md5,cb7f0e697ab2537f8ced951bfade90d4" + ], + "all_fastq": [ + [ + { + + }, + [ + "null_primary.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "null_primary_human.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "index": [ + [ + + ] + ], + "log": [ + [ + { + + }, + "null.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "primary_fastq": [ + [ + { + + }, + [ + "null_primary.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "null_primary_human.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "stats": [ + [ + { + + }, + "null.stats.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,cb7f0e697ab2537f8ced951bfade90d4" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T18:49:27.280432" + }, + "sarscov2_se_fastq_fasta_chr22_fasta - stub": { + "content": [ + { + "0": [ + [ + + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test_primary.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_primary_human.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test_primary.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_primary_human.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "3": [ + [ + { + "id": "test", + "single_end": true + }, + "test.stats.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + [ + { + "id": "test", + "single_end": true + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "5": [ + "versions.yml:md5,cb7f0e697ab2537f8ced951bfade90d4" + ], + "all_fastq": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test_primary.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_primary_human.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "index": [ + [ + + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": true + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "primary_fastq": [ + [ + { + "id": "test", + "single_end": true + }, + [ + "test_primary.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_primary_human.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "stats": [ + [ + { + "id": "test", + "single_end": true + }, + "test.stats.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,cb7f0e697ab2537f8ced951bfade90d4" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T16:16:05.793544" } -} +} \ No newline at end of file diff --git a/modules/nf-core/custom/catadditionalfasta/main.nf b/modules/nf-core/custom/catadditionalfasta/main.nf index 076d7bd08..88ce4954b 100644 --- a/modules/nf-core/custom/catadditionalfasta/main.nf +++ b/modules/nf-core/custom/catadditionalfasta/main.nf @@ -21,4 +21,17 @@ process CUSTOM_CATADDITIONALFASTA { script: template 'fasta2gtf.py' + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + mkdir out + touch out/genome_transcriptome.fasta + touch out/genome_transcriptome.gtf + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python --version | grep -v "Python ") + END_VERSIONS + """ } diff --git a/modules/nf-core/custom/catadditionalfasta/tests/main.nf.test b/modules/nf-core/custom/catadditionalfasta/tests/main.nf.test index 7cf230bd7..70227f1c5 100644 --- a/modules/nf-core/custom/catadditionalfasta/tests/main.nf.test +++ b/modules/nf-core/custom/catadditionalfasta/tests/main.nf.test @@ -31,7 +31,37 @@ nextflow_process { { assert snapshot(process.out.versions).match("versions") } ) } - } + test("sarscov2 - fastq - gtf - stub") { + + options "-stub" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.gtf', checkIfExists: true) + ]) + input[1] = Channel.of([ + [ id:'test', single_end:false ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/transcriptome.fasta', checkIfExists: true) + ]) + input[2] = 'test_biotype' + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } } diff --git a/modules/nf-core/custom/catadditionalfasta/tests/main.nf.test.snap b/modules/nf-core/custom/catadditionalfasta/tests/main.nf.test.snap index 8f63d9b47..9e49a90c9 100644 --- a/modules/nf-core/custom/catadditionalfasta/tests/main.nf.test.snap +++ b/modules/nf-core/custom/catadditionalfasta/tests/main.nf.test.snap @@ -5,6 +5,10 @@ "versions.yml:md5,26f47339777a265af57338ac7f0f8798" ] ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-12-20T20:52:55.242485" }, "gtf": { @@ -19,6 +23,10 @@ ] ] ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-12-20T19:46:31.839377" }, "fasta": { @@ -33,6 +41,63 @@ ] ] ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-12-20T19:42:47.12194" + }, + "sarscov2 - fastq - gtf - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "genome_transcriptome.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "genome_transcriptome.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,451e5a1afee71b2b916b6f2ccc47e508" + ], + "fasta": [ + [ + { + "id": "test", + "single_end": false + }, + "genome_transcriptome.fasta:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "gtf": [ + [ + { + "id": "test", + "single_end": false + }, + "genome_transcriptome.gtf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,451e5a1afee71b2b916b6f2ccc47e508" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T17:10:38.966949" } } \ No newline at end of file diff --git a/modules/nf-core/fq/subsample/main.nf b/modules/nf-core/fq/subsample/main.nf index f3d8cc78d..a8e647bb1 100644 --- a/modules/nf-core/fq/subsample/main.nf +++ b/modules/nf-core/fq/subsample/main.nf @@ -52,4 +52,16 @@ process FQ_SUBSAMPLE { fq: \$(echo \$(fq subsample --version | sed 's/fq-subsample //g')) END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + echo '' | gzip > ${prefix}_R1.fastq.gz + echo '' | gzip > ${prefix}_R2.fastq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fq: \$(echo \$(fq subsample --version | sed 's/fq-subsample //g')) + END_VERSIONS + """ } diff --git a/modules/nf-core/fq/subsample/tests/main.nf.test b/modules/nf-core/fq/subsample/tests/main.nf.test index c2817748c..13bb75945 100644 --- a/modules/nf-core/fq/subsample/tests/main.nf.test +++ b/modules/nf-core/fq/subsample/tests/main.nf.test @@ -24,10 +24,9 @@ nextflow_process { then { assertAll ( { assert !process.success }, - { assert snapshot(process.out).match() }, + { assert snapshot(process.out).match() } ) } - } test("test_fq_subsample_probability") { @@ -50,10 +49,35 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert snapshot(process.out).match() }, + { assert snapshot(process.out).match() } ) } + } + + test("test_fq_subsample_probability - stub") { + config "./nextflow_probability.config" + options "-stub" + when { + params { + outdir = "$outputDir" + } + process { + """ + 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)] + ]) + """ + } + } + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } } test("test_fq_subsample_record_count") { @@ -76,10 +100,35 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert snapshot(process.out).match() }, + { assert snapshot(process.out).match() } ) } + } + + test("test_fq_subsample_record_count - stub") { + config "./nextflow_record_count.config" + options "-stub" + when { + params { + outdir = "$outputDir" + } + process { + """ + 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)] + ]) + """ + } + } + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } } test("test_fq_subsample_single") { @@ -101,10 +150,34 @@ nextflow_process { then { assertAll ( { assert process.success }, - { assert snapshot(process.out).match() }, + { assert snapshot(process.out).match() } ) } + } + + test("test_fq_subsample_single - stub") { + config "./nextflow.config" + options "-stub" + when { + params { + outdir = "$outputDir" + } + process { + """ + 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) + ]) + """ + } + } + then { + assertAll ( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } } test("test_fq_subsample_no_input") { @@ -117,7 +190,7 @@ nextflow_process { """ input[0] = Channel.of([ [ id:'test', single_end:false ], // meta map - [ ] + [] ]) """ } @@ -126,10 +199,8 @@ nextflow_process { then { assertAll ( { assert !process.success }, - { assert snapshot(process.out).match() }, + { assert snapshot(process.out).match() } ) } - } - } \ No newline at end of file diff --git a/modules/nf-core/fq/subsample/tests/main.nf.test.snap b/modules/nf-core/fq/subsample/tests/main.nf.test.snap index 1e47918a8..739c626d7 100644 --- a/modules/nf-core/fq/subsample/tests/main.nf.test.snap +++ b/modules/nf-core/fq/subsample/tests/main.nf.test.snap @@ -1,4 +1,45 @@ { + "test_fq_subsample_probability - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "versions": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T08:26:12.163153" + }, "test_fq_subsample_probability": { "content": [ { @@ -34,8 +75,94 @@ ] } ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2024-01-17T17:57:15.446336" }, + "test_fq_subsample_single - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "versions": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T08:26:55.736374" + }, + "test_fq_subsample_no_args - sub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "versions": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T08:25:42.190405" + }, "test_fq_subsample_record_count": { "content": [ { @@ -71,8 +198,53 @@ ] } ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2024-01-17T17:57:23.920058" }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "versions": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T17:16:10.090213" + }, "test_fq_subsample_single": { "content": [ { @@ -102,6 +274,10 @@ ] } ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2024-01-17T17:57:31.908993" }, "test_fq_subsample_no_args": { @@ -121,6 +297,10 @@ ] } ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-10-17T11:17:09.761156" }, "test_fq_subsample_no_input": { @@ -140,6 +320,92 @@ ] } ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-10-17T11:17:37.555824" + }, + "test_fq_subsample_record_count - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "versions": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T08:26:33.873553" + }, + "test_fq_subsample_no_input - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "1": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ], + "fastq": [ + [ + { + "id": "test", + "single_end": false + }, + [ + "test_R1.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940", + "test_R2.fastq.gz:md5,68b329da9893e34099c7d8ad5cb9c940" + ] + ] + ], + "versions": [ + "versions.yml:md5,ffbf935bd0de512fbc9e83b187bf924f" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T08:27:21.793136" } } \ No newline at end of file diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf index 468a6f287..4ae609fb1 100644 --- a/modules/nf-core/gunzip/main.nf +++ b/modules/nf-core/gunzip/main.nf @@ -18,8 +18,11 @@ process GUNZIP { task.ext.when == null || task.ext.when script: - def args = task.ext.args ?: '' - gunzip = archive.toString() - '.gz' + def args = task.ext.args ?: '' + def extension = ( archive.toString() - '.gz' ).tokenize('.')[-1] + def name = archive.toString() - '.gz' - ".$extension" + def prefix = task.ext.prefix ?: name + gunzip = prefix + ".$extension" """ # Not calling gunzip itself because it creates files # with the original group ownership rather than the @@ -37,7 +40,11 @@ process GUNZIP { """ stub: - gunzip = archive.toString() - '.gz' + def args = task.ext.args ?: '' + def extension = ( archive.toString() - '.gz' ).tokenize('.')[-1] + def name = archive.toString() - '.gz' - ".$extension" + def prefix = task.ext.prefix ?: name + gunzip = prefix + ".$extension" """ touch $gunzip cat <<-END_VERSIONS > versions.yml diff --git a/modules/nf-core/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml index 231034f2f..f32973a0a 100644 --- a/modules/nf-core/gunzip/meta.yml +++ b/modules/nf-core/gunzip/meta.yml @@ -37,3 +37,4 @@ maintainers: - "@joseespinosa" - "@drpatelh" - "@jfy133" + - "@gallvp" diff --git a/modules/nf-core/gunzip/tests/main.nf.test b/modules/nf-core/gunzip/tests/main.nf.test index 5ebf7ca24..384edf226 100644 --- a/modules/nf-core/gunzip/tests/main.nf.test +++ b/modules/nf-core/gunzip/tests/main.nf.test @@ -30,4 +30,89 @@ nextflow_process { } + test("Should run without failures - prefix") { + + config './nextflow.config' + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = Channel.of([ + [ id: 'test' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + ) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("Should run without failures - stub") { + + options '-stub' + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = Channel.of([ + [], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + ) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("Should run without failures - prefix - stub") { + + options '-stub' + config './nextflow.config' + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = Channel.of([ + [ id: 'test' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/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 index 720fd9ff4..069967e76 100644 --- a/modules/nf-core/gunzip/tests/main.nf.test.snap +++ b/modules/nf-core/gunzip/tests/main.nf.test.snap @@ -1,4 +1,70 @@ { + "Should run without failures - prefix - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.xyz.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + ], + "gunzip": [ + [ + { + "id": "test" + }, + "test.xyz.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-25T11:35:10.861293" + }, + "Should run without failures - stub": { + "content": [ + { + "0": [ + [ + [ + + ], + "test_1.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + ], + "gunzip": [ + [ + [ + + ], + "test_1.fastq:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-25T11:35:05.857145" + }, "Should run without failures": { "content": [ { @@ -26,6 +92,43 @@ ] } ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-10-17T15:35:37.690477896" + }, + "Should run without failures - prefix": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.xyz.fastq:md5,4161df271f9bfcd25d5845a1e220dbec" + ] + ], + "1": [ + "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + ], + "gunzip": [ + [ + { + "id": "test" + }, + "test.xyz.fastq:md5,4161df271f9bfcd25d5845a1e220dbec" + ] + ], + "versions": [ + "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-25T11:33:32.921739" } } \ No newline at end of file diff --git a/modules/nf-core/gunzip/tests/nextflow.config b/modules/nf-core/gunzip/tests/nextflow.config new file mode 100644 index 000000000..dec776425 --- /dev/null +++ b/modules/nf-core/gunzip/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: GUNZIP { + ext.prefix = { "${meta.id}.xyz" } + } +} diff --git a/modules/nf-core/hisat2/align/main.nf b/modules/nf-core/hisat2/align/main.nf index 2289a9fc0..ea186f62a 100644 --- a/modules/nf-core/hisat2/align/main.nf +++ b/modules/nf-core/hisat2/align/main.nf @@ -90,4 +90,23 @@ process HISAT2_ALIGN { END_VERSIONS """ } + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def unaligned = params.save_unaligned ? "echo '' | gzip > ${prefix}.unmapped_1.fastq.gz \n echo '' | gzip > ${prefix}.unmapped_2.fastq.gz" : '' + def VERSION = '2.2.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + ${unaligned} + + touch ${prefix}.hisat2.summary.log + touch ${prefix}.bam + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + hisat2: $VERSION + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ + + } diff --git a/modules/nf-core/hisat2/align/tests/main.nf.test b/modules/nf-core/hisat2/align/tests/main.nf.test index 251fd711e..8193c82d8 100644 --- a/modules/nf-core/hisat2/align/tests/main.nf.test +++ b/modules/nf-core/hisat2/align/tests/main.nf.test @@ -62,6 +62,63 @@ nextflow_process { } } + test("Single-End - stub") { + options "-stub" + + setup { + run("HISAT2_EXTRACTSPLICESITES") { + script "../../extractsplicesites/main.nf" + process { + """ + input[0] = Channel.of([ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.gtf', checkIfExists: true) + ]) + """ + } + } + + run("HISAT2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = Channel.of([ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[1] = Channel.of([ [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.gtf', checkIfExists: true) + ]) + input[2] = HISAT2_EXTRACTSPLICESITES.out.txt + """ + } + } + } + + when { + params { + outdir = "$outputDir" + } + process { + """ + 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] = HISAT2_BUILD.out.index + input[2] = HISAT2_EXTRACTSPLICESITES.out.txt + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + test("Paired-End") { setup { @@ -121,6 +178,64 @@ nextflow_process { } } + test("Paired-End - stub") { + options "-stub" + + setup { + run("HISAT2_EXTRACTSPLICESITES") { + script "../../extractsplicesites/main.nf" + process { + """ + input[0] = Channel.of([ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.gtf', checkIfExists: true) + ]) + """ + } + } + + run("HISAT2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = Channel.of([ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[1] = Channel.of([ [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.gtf', checkIfExists: true) + ]) + input[2] = HISAT2_EXTRACTSPLICESITES.out.txt + """ + } + } + } + + when { + params { + outdir = "$outputDir" + } + process { + """ + 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] = HISAT2_BUILD.out.index + input[2] = HISAT2_EXTRACTSPLICESITES.out.txt + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + test("Single-End No Splice Sites") { setup { @@ -165,6 +280,49 @@ nextflow_process { } } + test("Single-End No Splice Sites - stub") { + options "-stub" + + setup { + run("HISAT2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = Channel.of([ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[1] = [[:],[]] + input[2] = [[:],[]] + """ + } + } + } + + when { + params { + outdir = "$outputDir" + } + process { + """ + 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] = HISAT2_BUILD.out.index + input[2] = [[:],[]] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + test("Paired-End No Splice Sites") { setup { @@ -209,4 +367,48 @@ nextflow_process { ) } } + + test("Paired-End No Splice Sites - stub") { + options "-stub" + + setup { + run("HISAT2_BUILD") { + script "../../build/main.nf" + process { + """ + input[0] = Channel.of([ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[1] = [[:],[]] + input[2] = [[:],[]] + """ + } + } + } + + when { + params { + outdir = "$outputDir" + } + process { + """ + 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] = HISAT2_BUILD.out.index + input[2] = [[:],[]] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } } diff --git a/modules/nf-core/hisat2/align/tests/main.nf.test.snap b/modules/nf-core/hisat2/align/tests/main.nf.test.snap index a80fa3c50..ff670d452 100644 --- a/modules/nf-core/hisat2/align/tests/main.nf.test.snap +++ b/modules/nf-core/hisat2/align/tests/main.nf.test.snap @@ -5,21 +5,129 @@ "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" ] ], - "timestamp": "2023-10-16T15:14:50.269895296" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:08:33.735489" }, - "se_no_ss_summary": { + "Paired-End - stub": { "content": [ - [ - [ - { - "id": "test", - "single_end": true - }, - "test.hisat2.summary.log:md5,7b8a9e61b7646da1089b041333c41a87" + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.hisat2.summary.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fastq": [ + + ], + "summary": [ + [ + { + "id": "test", + "single_end": false + }, + "test.hisat2.summary.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" ] - ] + } ], - "timestamp": "2023-10-16T15:15:22.897386626" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:14.35626" + }, + "Single-End - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.hisat2.summary.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fastq": [ + + ], + "summary": [ + [ + { + "id": "test", + "single_end": true + }, + "test.hisat2.summary.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:08:47.404885" }, "pe_no_ss_versions": { "content": [ @@ -27,15 +135,70 @@ "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" ] ], - "timestamp": "2023-10-16T15:15:42.583699978" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:52.076955" }, - "se_no_ss_versions": { + "Paired-End No Splice Sites - stub": { "content": [ - [ - "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" - ] + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.hisat2.summary.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" + ], + "bam": [ + [ + { + "id": "test", + "single_end": false + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fastq": [ + + ], + "summary": [ + [ + { + "id": "test", + "single_end": false + }, + "test.hisat2.summary.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" + ] + } ], - "timestamp": "2023-10-16T15:15:22.909407356" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:10:03.739697" }, "pe_no_ss_summary": { "content": [ @@ -49,7 +212,11 @@ ] ] ], - "timestamp": "2023-10-16T15:15:42.569775538" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:52.068244" }, "pe_no_ss_fastq": { "content": [ @@ -57,7 +224,11 @@ ] ], - "timestamp": "2023-10-16T15:15:42.576881608" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:52.072985" }, "se_summary": { "content": [ @@ -71,7 +242,11 @@ ] ] ], - "timestamp": "2023-10-16T15:14:50.252466896" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:08:33.727355" }, "pe_summary": { "content": [ @@ -85,7 +260,11 @@ ] ] ], - "timestamp": "2023-10-16T15:15:09.881690889" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:01.495439" }, "pe_fastq": { "content": [ @@ -93,23 +272,124 @@ ] ], - "timestamp": "2023-10-16T15:15:09.888696129" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:01.500755" }, - "se_no_ss_fastq": { + "se_fastq": { "content": [ [ ] ], - "timestamp": "2023-10-16T15:15:22.904010016" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:08:33.732523" }, - "se_fastq": { + "se_no_ss_summary": { + "content": [ + [ + [ + { + "id": "test", + "single_end": true + }, + "test.hisat2.summary.log:md5,7b8a9e61b7646da1089b041333c41a87" + ] + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:26.851884" + }, + "se_no_ss_versions": { + "content": [ + [ + "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:26.89234" + }, + "se_no_ss_fastq": { "content": [ [ ] ], - "timestamp": "2023-10-16T15:14:50.264366105" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:26.871369" + }, + "Single-End No Splice Sites - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.hisat2.summary.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "fastq": [ + + ], + "summary": [ + [ + { + "id": "test", + "single_end": true + }, + "test.hisat2.summary.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:39.544807" }, "pe_versions": { "content": [ @@ -117,6 +397,10 @@ "versions.yml:md5,ceb638f44ebdaf09ba1f5c5c409585e2" ] ], - "timestamp": "2023-10-16T15:15:09.894683308" + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-21T09:09:01.506346" } } \ No newline at end of file diff --git a/modules/nf-core/hisat2/build/main.nf b/modules/nf-core/hisat2/build/main.nf index 766e8731d..17d8fdd5b 100644 --- a/modules/nf-core/hisat2/build/main.nf +++ b/modules/nf-core/hisat2/build/main.nf @@ -61,4 +61,15 @@ process HISAT2_BUILD { hisat2: $VERSION END_VERSIONS """ + + stub: + def VERSION = '2.2.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + mkdir hisat2 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + hisat2: $VERSION + END_VERSIONS + """ } diff --git a/modules/nf-core/hisat2/build/tests/main.nf.test b/modules/nf-core/hisat2/build/tests/main.nf.test index 240b73de1..bd8e9dae0 100644 --- a/modules/nf-core/hisat2/build/tests/main.nf.test +++ b/modules/nf-core/hisat2/build/tests/main.nf.test @@ -45,4 +45,49 @@ nextflow_process { ) } } -} + + test("Should run without failures - stub") { + + options "-stub" + + setup { + run("HISAT2_EXTRACTSPLICESITES") { + script "../../extractsplicesites/main.nf" + process { + """ + input[0] = Channel.of([ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.gtf', checkIfExists: true) + ]) + """ + } + } + } + + when { + params { + outdir = "$outputDir" + } + + process { + """ + input[0] = Channel.of([ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ]) + input[1] = Channel.of([ [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.gtf', checkIfExists: true) + ]) + input[2] = HISAT2_EXTRACTSPLICESITES.out.txt + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } +} \ No newline at end of file diff --git a/modules/nf-core/hisat2/build/tests/main.nf.test.snap b/modules/nf-core/hisat2/build/tests/main.nf.test.snap index c7d364dbc..0e3b5c57f 100644 --- a/modules/nf-core/hisat2/build/tests/main.nf.test.snap +++ b/modules/nf-core/hisat2/build/tests/main.nf.test.snap @@ -1,4 +1,64 @@ { + "test - stub": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "index": [ + + ], + "versions": [ + + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T17:29:31.567024" + }, + "Should run without failures - stub": { + "content": [ + { + "0": [ + [ + { + "id": "genome" + }, + [ + + ] + ] + ], + "1": [ + "versions.yml:md5,e36ef3cd73d19ccf2378c9358fe942c0" + ], + "index": [ + [ + { + "id": "genome" + }, + [ + + ] + ] + ], + "versions": [ + "versions.yml:md5,e36ef3cd73d19ccf2378c9358fe942c0" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T18:18:08.896422" + }, "Should run without failures": { "content": [ { @@ -44,6 +104,10 @@ ] } ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-10-16T14:42:22.381609786" } -} \ No newline at end of file +} diff --git a/modules/nf-core/hisat2/extractsplicesites/main.nf b/modules/nf-core/hisat2/extractsplicesites/main.nf index b0c8513aa..588a9947a 100644 --- a/modules/nf-core/hisat2/extractsplicesites/main.nf +++ b/modules/nf-core/hisat2/extractsplicesites/main.nf @@ -28,4 +28,15 @@ process HISAT2_EXTRACTSPLICESITES { hisat2: $VERSION END_VERSIONS """ + + stub: + def VERSION = '2.2.1' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + touch ${gtf.baseName}.splice_sites.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + hisat2: $VERSION + END_VERSIONS + """ } diff --git a/modules/nf-core/hisat2/extractsplicesites/tests/main.nf.test b/modules/nf-core/hisat2/extractsplicesites/tests/main.nf.test index 10b8cf8e8..a9f93ec52 100644 --- a/modules/nf-core/hisat2/extractsplicesites/tests/main.nf.test +++ b/modules/nf-core/hisat2/extractsplicesites/tests/main.nf.test @@ -28,4 +28,30 @@ nextflow_process { ) } } + + test("test - stub") { + + options "-stub" + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = Channel.of([ + [id:'genome'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.gtf', checkIfExists: true) + ]) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } } diff --git a/modules/nf-core/hisat2/extractsplicesites/tests/main.nf.test.snap b/modules/nf-core/hisat2/extractsplicesites/tests/main.nf.test.snap index 17f1c8ebf..1dcd8af23 100644 --- a/modules/nf-core/hisat2/extractsplicesites/tests/main.nf.test.snap +++ b/modules/nf-core/hisat2/extractsplicesites/tests/main.nf.test.snap @@ -1,10 +1,47 @@ { + "test - stub": { + "content": [ + { + "0": [ + [ + { + "id": "genome" + }, + "genome.splice_sites.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + "versions.yml:md5,eeea7231fe197810659b8bad4133aff2" + ], + "txt": [ + [ + { + "id": "genome" + }, + "genome.splice_sites.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,eeea7231fe197810659b8bad4133aff2" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T17:34:13.229903" + }, "Should run without failures": { "content": [ [ "versions.yml:md5,eeea7231fe197810659b8bad4133aff2" ] ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2024-01-18T20:56:30.71763" } } \ No newline at end of file diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index 72e598b67..ecb7dd7b2 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -4,4 +4,4 @@ channels: - bioconda - defaults dependencies: - - bioconda::multiqc=1.22.2 + - bioconda::multiqc=1.22.3 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index e59efef9d..2581a4963 100644 --- a/modules/nf-core/multiqc/main.nf +++ b/modules/nf-core/multiqc/main.nf @@ -3,8 +3,8 @@ process MULTIQC { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.22.2--pyhdfd78af_0' : - 'biocontainers/multiqc:1.22.2--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.22.3--pyhdfd78af_0' : + 'biocontainers/multiqc:1.22.3--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index a170c31dd..0a4760e42 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,14 +2,14 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,ddbc971a8307f9b9b7b973714cde29d0" + "versions.yml:md5,bf3b209659477254bb8fa5a9405f9984" ] ], "meta": { "nf-test": "0.8.4", "nextflow": "24.04.2" }, - "timestamp": "2024-06-10T11:50:10.874341679" + "timestamp": "2024-06-25T12:31:21.878452033" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,ddbc971a8307f9b9b7b973714cde29d0" + "versions.yml:md5,bf3b209659477254bb8fa5a9405f9984" ] ], "meta": { "nf-test": "0.8.4", "nextflow": "24.04.2" }, - "timestamp": "2024-06-10T11:50:49.271943761" + "timestamp": "2024-06-25T12:32:02.322196503" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,ddbc971a8307f9b9b7b973714cde29d0" + "versions.yml:md5,bf3b209659477254bb8fa5a9405f9984" ] ], "meta": { "nf-test": "0.8.4", "nextflow": "24.04.2" }, - "timestamp": "2024-06-10T11:50:34.046706025" + "timestamp": "2024-06-25T12:31:50.064227638" } } \ No newline at end of file diff --git a/modules/nf-core/preseq/lcextrap/main.nf b/modules/nf-core/preseq/lcextrap/main.nf index 0f8a1e9ec..3fec468e9 100644 --- a/modules/nf-core/preseq/lcextrap/main.nf +++ b/modules/nf-core/preseq/lcextrap/main.nf @@ -38,4 +38,16 @@ process PRESEQ_LCEXTRAP { preseq: \$(echo \$(preseq 2>&1) | sed 's/^.*Version: //; s/Usage:.*\$//') END_VERSIONS """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch ${prefix}.lc_extrap.txt + touch ${prefix}.command.log + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + preseq: \$(echo \$(preseq 2>&1) | sed 's/^.*Version: //; s/Usage:.*\$//') + END_VERSIONS + """ } diff --git a/modules/nf-core/preseq/lcextrap/tests/main.nf.test b/modules/nf-core/preseq/lcextrap/tests/main.nf.test index 92750c9ed..d1af1f0ed 100644 --- a/modules/nf-core/preseq/lcextrap/tests/main.nf.test +++ b/modules/nf-core/preseq/lcextrap/tests/main.nf.test @@ -3,6 +3,10 @@ nextflow_process { name "Test Process PRESEQ_LCEXTRAP" script "../main.nf" process "PRESEQ_LCEXTRAP" + tag "modules" + tag "modules_nfcore" + tag "preseq" + tag "preseq/lcextrap" test("sarscov2 - single_end") { when { @@ -26,6 +30,29 @@ nextflow_process { } } + test("sarscov2 - single_end - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:true ], // meta map + [ file(params.modules_testdata_base_path + 'delete_me/preseq/SRR1003759_5M_subset.mr', checkIfExists: true) ] + ]) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + test("sarscov2 - paired_end") { when { process { @@ -47,4 +74,27 @@ nextflow_process { ) } } + + test("sarscov2 - paired_end - stub") { + + options "-stub" + + when { + process { + """ + input[0] = Channel.of([ + [ id:'test', single_end:false ], // meta map + [ file(params.modules_testdata_base_path + 'delete_me/preseq/SRR1003759_5M_subset.mr', checkIfExists: true) ] + ]) + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } } \ No newline at end of file diff --git a/modules/nf-core/preseq/lcextrap/tests/main.nf.test.snap b/modules/nf-core/preseq/lcextrap/tests/main.nf.test.snap index c59dea7fe..3f95cd498 100644 --- a/modules/nf-core/preseq/lcextrap/tests/main.nf.test.snap +++ b/modules/nf-core/preseq/lcextrap/tests/main.nf.test.snap @@ -11,12 +11,20 @@ ] ] ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-11-23T17:20:40.735535" }, "paired_end - log": { "content": [ "test.command.log" ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-11-23T17:20:51.981746" }, "single_end - versions": { @@ -25,20 +33,85 @@ "versions.yml:md5,9a62ff1c212c53573808ccd2137b8922" ] ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-11-23T17:20:40.74601" }, + "sarscov2 - single_end - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.lc_extrap.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.command.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,9a62ff1c212c53573808ccd2137b8922" + ], + "lc_extrap": [ + [ + { + "id": "test", + "single_end": true + }, + "test.lc_extrap.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": true + }, + "test.command.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,9a62ff1c212c53573808ccd2137b8922" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T18:43:12.689062" + }, "paired_end - versions": { "content": [ [ "versions.yml:md5,9a62ff1c212c53573808ccd2137b8922" ] ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-11-23T17:20:52.02843" }, "single_end - log": { "content": [ "test.command.log" ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-11-23T17:20:40.72985" }, "paired_end - lc_extrap": { @@ -53,6 +126,63 @@ ] ] ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, "timestamp": "2023-11-23T17:20:51.998533" + }, + "sarscov2 - paired_end - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "test.lc_extrap.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test", + "single_end": false + }, + "test.command.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + "versions.yml:md5,9a62ff1c212c53573808ccd2137b8922" + ], + "lc_extrap": [ + [ + { + "id": "test", + "single_end": false + }, + "test.lc_extrap.txt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "log": [ + [ + { + "id": "test", + "single_end": false + }, + "test.command.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,9a62ff1c212c53573808ccd2137b8922" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-20T18:43:32.569811" } } \ No newline at end of file diff --git a/subworkflows/nf-core/fastq_align_hisat2/tests/main.nf.test b/subworkflows/nf-core/fastq_align_hisat2/tests/main.nf.test index b04fc1162..884d130a2 100644 --- a/subworkflows/nf-core/fastq_align_hisat2/tests/main.nf.test +++ b/subworkflows/nf-core/fastq_align_hisat2/tests/main.nf.test @@ -5,35 +5,35 @@ nextflow_workflow { workflow "FASTQ_ALIGN_HISAT2" config "./nextflow.config" - setup { - run("HISAT2_EXTRACTSPLICESITES") { - script "../../../../modules/nf-core/hisat2/extractsplicesites/main.nf" - process { - """ - input[0] = Channel.of([ - [id: 'test'], - file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gtf", checkIfExists: true) - ]) - """ + setup { + run("HISAT2_EXTRACTSPLICESITES") { + script "../../../../modules/nf-core/hisat2/extractsplicesites/main.nf" + process { + """ + input[0] = Channel.of([ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gtf", checkIfExists: true) + ]) + """ + } } - } - run("HISAT2_BUILD") { - script "../../../../modules/nf-core/hisat2/build/main.nf" - process { - """ - input[0] = Channel.of([ - [id: 'test'], - file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.fasta", checkIfExists: true) - ]) - input[1] = Channel.of([ - [id: 'test'], - file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gtf", checkIfExists: true) - ]) - input[2] = HISAT2_EXTRACTSPLICESITES.out.txt - """ + run("HISAT2_BUILD") { + script "../../../../modules/nf-core/hisat2/build/main.nf" + process { + """ + input[0] = Channel.of([ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.fasta", checkIfExists: true) + ]) + input[1] = Channel.of([ + [id: 'test'], + file(params.modules_testdata_base_path + "genomics/sarscov2/genome/genome.gtf", checkIfExists: true) + ]) + input[2] = HISAT2_EXTRACTSPLICESITES.out.txt + """ + } } } - } test("sarscov2 - bam - single_end") { diff --git a/subworkflows/nf-core/fastq_align_hisat2/tests/main.nf.test.snap b/subworkflows/nf-core/fastq_align_hisat2/tests/main.nf.test.snap index d3f669275..6a24fc922 100644 --- a/subworkflows/nf-core/fastq_align_hisat2/tests/main.nf.test.snap +++ b/subworkflows/nf-core/fastq_align_hisat2/tests/main.nf.test.snap @@ -7,15 +7,15 @@ "id": "test", "single_end": false }, - "test.stats:md5,ed4e2ba437f4819b7ab93a6df8dd5348" + "test.stats:md5,603fa8c9e0e9eb3769498fc989a29250" ] ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-29T13:28:06.091982" + "timestamp": "2024-06-20T17:49:22.610136" }, "pe - csi": { "content": [ @@ -108,19 +108,19 @@ "se - versions": { "content": [ [ - "versions.yml:md5,34be144fb97a11f1c581b39301f6f0d1", - "versions.yml:md5,4392ca9e255d9137e74a73a8d1e1559d", - "versions.yml:md5,651e735a2754f3be76b516f5fbf099b5", - "versions.yml:md5,912e1daa1e432f6b5ca601ab2294e37f", - "versions.yml:md5,9b7dd7f9a173fbf92f5e476451c840c1", - "versions.yml:md5,b4ccce0351e5718d36600858452dd4b1" + "versions.yml:md5,2d9432e15956fe71fe0ba811547acea6", + "versions.yml:md5,5fcbed7fee2404be4ecee6efab5914b8", + "versions.yml:md5,6b9d9eed13bf074965d1623a7e8a1741", + "versions.yml:md5,7767a57d88fff540ce475902df2e9e0a", + "versions.yml:md5,b4ccce0351e5718d36600858452dd4b1", + "versions.yml:md5,bb6710ee58b84a1ed212f9c599d84066" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-29T13:27:50.826601" + "timestamp": "2024-06-20T17:49:02.049644" }, "pe - idxstats": { "content": [ @@ -235,19 +235,19 @@ "pe - versions": { "content": [ [ - "versions.yml:md5,34be144fb97a11f1c581b39301f6f0d1", - "versions.yml:md5,4392ca9e255d9137e74a73a8d1e1559d", - "versions.yml:md5,651e735a2754f3be76b516f5fbf099b5", - "versions.yml:md5,912e1daa1e432f6b5ca601ab2294e37f", - "versions.yml:md5,9b7dd7f9a173fbf92f5e476451c840c1", - "versions.yml:md5,b4ccce0351e5718d36600858452dd4b1" + "versions.yml:md5,2d9432e15956fe71fe0ba811547acea6", + "versions.yml:md5,5fcbed7fee2404be4ecee6efab5914b8", + "versions.yml:md5,6b9d9eed13bf074965d1623a7e8a1741", + "versions.yml:md5,7767a57d88fff540ce475902df2e9e0a", + "versions.yml:md5,b4ccce0351e5718d36600858452dd4b1", + "versions.yml:md5,bb6710ee58b84a1ed212f9c599d84066" ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-29T13:28:06.098801" + "timestamp": "2024-06-20T17:49:22.664338" }, "se - flagstat": { "content": [ @@ -275,14 +275,14 @@ "id": "test", "single_end": true }, - "test.stats:md5,f712acf6108a70c3fb06ac51e5e76f15" + "test.stats:md5,845655ccfd1fd701b9f692f8db9508af" ] ] ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "24.04.2" }, - "timestamp": "2024-02-29T13:27:50.804219" + "timestamp": "2024-06-20T17:49:01.982358" } } \ No newline at end of file From 6035f5b81435f31fcdc4ff0758736b96f1eed54b Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Thu, 27 Jun 2024 13:27:06 +0100 Subject: [PATCH 08/12] Rename custom content keys as required in MultiQC v1.22.3 --- bin/mqc_features_stat.py | 3 +-- modules/nf-core/dupradar/templates/dupradar.r | 9 ++++----- .../rnaseq/assets/multiqc/deseq2_clustering_header.txt | 3 +-- workflows/rnaseq/assets/multiqc/multiqc_config.yml | 9 +++------ 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/bin/mqc_features_stat.py b/bin/mqc_features_stat.py index fa69b231c..b0577cd5f 100755 --- a/bin/mqc_features_stat.py +++ b/bin/mqc_features_stat.py @@ -21,8 +21,7 @@ # description: '% reads overlapping {ft} features' # max: 100 # min: 0 -# scale: 'RdYlGn-rev' -# format: '{{:.2f}}%'""" +# scale: 'RdYlGn-rev'""" def mqc_feature_stat(bfile, features, outfile, sname=None): diff --git a/modules/nf-core/dupradar/templates/dupradar.r b/modules/nf-core/dupradar/templates/dupradar.r index ec20cb851..95e7b4d88 100755 --- a/modules/nf-core/dupradar/templates/dupradar.r +++ b/modules/nf-core/dupradar/templates/dupradar.r @@ -88,7 +88,6 @@ line="#id: DupInt # max: 100 # min: 0 # scale: 'RdYlGn-rev' -# format: '{:.2f}%' Sample dupRadar_intercept" write(line,file=paste0(output_prefix, "_dup_intercept_mqc.txt"),append=TRUE) @@ -115,15 +114,15 @@ line="#id: dupradar # This plot shows the general linear models - a summary of the gene duplication distributions. \" #pconfig: # title: 'DupRadar General Linear Model' -# xLog: True +# xlog: True # xlab: 'expression (reads/kbp)' # ylab: '% duplicate reads' # ymax: 100 # ymin: 0 # tt_label: '{point.x:.1f} reads/kbp: {point.y:,.2f}% duplicates' -# xPlotLines: +# x_lines: # - color: 'green' -# dashStyle: 'LongDash' +# dash: 'LongDash' # label: # style: {color: 'green'} # text: '0.5 RPKM' @@ -132,7 +131,7 @@ line="#id: dupradar # value: 0.5 # width: 1 # - color: 'red' -# dashStyle: 'LongDash' +# dash: 'LongDash' # label: # style: {color: 'red'} # text: '1 read/bp' diff --git a/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt b/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt index 04e10efa5..c7bef7392 100644 --- a/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt +++ b/workflows/rnaseq/assets/multiqc/deseq2_clustering_header.txt @@ -8,5 +8,4 @@ #anchor: 'deseq2_clustering' #pconfig: # title: 'DESeq2: Heatmap of the sample-to-sample distances' -# xlab: True -# reverseColors: True +# reverse_colors: True diff --git a/workflows/rnaseq/assets/multiqc/multiqc_config.yml b/workflows/rnaseq/assets/multiqc/multiqc_config.yml index 0a977e733..47bd0a770 100644 --- a/workflows/rnaseq/assets/multiqc/multiqc_config.yml +++ b/workflows/rnaseq/assets/multiqc/multiqc_config.yml @@ -155,27 +155,24 @@ custom_data: plot_type: "table" pconfig: id: "fail_trimmed_samples_table" - table_title: "Samples failed trimming threshold" + title: "Samples failed trimming threshold" namespace: "Samples failed trimming threshold" - format: "{:.0f}" fail_mapped_samples: section_name: "WARNING: Fail Alignment Check" description: "List of samples that failed the STAR minimum mapped reads threshold specified via the '--min_mapped_reads' parameter, and hence were ignored for the downstream processing steps." plot_type: "table" pconfig: id: "fail_mapped_samples_table" - table_title: "Samples failed mapping threshold" + title: "Samples failed mapping threshold" namespace: "Samples failed mapping threshold" - format: "{:.2f}" fail_strand_check: section_name: "Strandedness Checks" description: "

The strandedness used for analysis in this workflow can either be provided by the user or automatically inferred by Salmon using a sample of reads. In both cases, strandedness is verified at the end of the workflow using RSeQC's infer_experiment.py on genomic alignments. In this table, a pass indicates a match between the supplied strandedness (or that inferred by Salmon) and RSeQC results. A fail indicates a mismatch or 'undetermined' strandedness. 'Undetermined' strandedness can signal QC issues, including potential genomic DNA contamination.

Note: Rows are duplicated for an 'auto' setting to allow comparison of statistics between inference methods.

" plot_type: "table" pconfig: id: "fail_strand_check_table" - table_title: "Samples strandedness check" + title: "Samples strandedness check" namespace: "Samples strandedness check" - format: "{:.2f}" headers: Status: description: Pass if the strandedness inferred by RSeQC matches that provided by the user or predicted by Salmon. Fail otherwise. From 0aaf228ece7c91c065df077df8ea23b9c7435ece Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Thu, 27 Jun 2024 15:39:41 +0100 Subject: [PATCH 09/12] Update snapshots for default pipeline test --- tests/default.nf.test.snap | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index c221fd786..83b22815a 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -17,18 +17,18 @@ ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.1" + "nextflow": "24.04.1" }, - "timestamp": "2024-04-11T14:39:58.637279952" + "timestamp": "2024-06-27T15:38:12.586958" }, "software_versions": { "content": [ - "{BBMAP_BBSPLIT={bbmap=39.01}, BEDTOOLS_GENOMECOV_FW={bedtools=2.31.1}, CAT_FASTQ={cat=8.3}, CUSTOM_CATADDITIONALFASTA={python=3.9.5}, CUSTOM_GETCHROMSIZES={getchromsizes=1.16.1}, CUSTOM_TX2GENE={python=3.9.5}, DESEQ2_QC_PSEUDO={r-base=4.0.3, bioconductor-deseq2=1.28.0}, DESEQ2_QC_STAR_SALMON={r-base=4.0.3, bioconductor-deseq2=1.28.0}, DUPRADAR={bioconductor-dupradar=1.32.0}, FASTQC={fastqc=0.12.1}, FQ_SUBSAMPLE={fq=0.9.1 (2022-02-22)}, GTF2BED={perl=5.26.2}, GTF_FILTER={python=3.9.5}, GUNZIP_ADDITIONAL_FASTA={gunzip=1.1}, GUNZIP_GTF={gunzip=1.1}, MULTIQC_CUSTOM_BIOTYPE={python=3.9.5}, PICARD_MARKDUPLICATES={picard=3.1.1}, QUALIMAP_RNASEQ={qualimap=2.3}, RSEQC_BAMSTAT={rseqc=5.0.2}, RSEQC_INFEREXPERIMENT={rseqc=5.0.2}, RSEQC_INNERDISTANCE={rseqc=5.0.2}, RSEQC_JUNCTIONANNOTATION={rseqc=5.0.2}, RSEQC_JUNCTIONSATURATION={rseqc=5.0.2}, RSEQC_READDISTRIBUTION={rseqc=5.0.2}, RSEQC_READDUPLICATION={rseqc=5.0.2}, SALMON_QUANT={salmon=1.10.1}, SAMTOOLS_FLAGSTAT={samtools=1.19.2}, SAMTOOLS_IDXSTATS={samtools=1.19.2}, SAMTOOLS_INDEX={samtools=1.19.2}, SAMTOOLS_SORT={samtools=1.19.2}, SAMTOOLS_STATS={samtools=1.19.2}, SE_GENE={bioconductor-summarizedexperiment=1.32.0}, STAR_ALIGN={star=2.7.10a, samtools=1.18, gawk=5.1.0}, STAR_GENOMEGENERATE={star=2.7.10a, samtools=1.18, gawk=5.1.0}, STRINGTIE_STRINGTIE={stringtie=2.2.1}, SUBREAD_FEATURECOUNTS={subread=2.0.1}, TRIMGALORE={trimgalore=0.6.7, cutadapt=3.4}, TXIMETA_TXIMPORT={bioconductor-tximeta=1.20.1}, UCSC_BEDCLIP={ucsc=377}, UCSC_BEDGRAPHTOBIGWIG={ucsc=445}, UNTAR_SALMON_INDEX={untar=1.3}, Workflow={nf-core/rnaseq=v3.15.0dev}}" + "{BBMAP_BBSPLIT={bbmap=39.01}, BEDTOOLS_GENOMECOV_FW={bedtools=2.31.1}, CAT_FASTQ={cat=8.3}, CUSTOM_CATADDITIONALFASTA={python=3.9.5}, CUSTOM_GETCHROMSIZES={getchromsizes=1.2}, CUSTOM_TX2GENE={python=3.9.5}, DESEQ2_QC_PSEUDO={r-base=4.0.3, bioconductor-deseq2=1.28.0}, DESEQ2_QC_STAR_SALMON={r-base=4.0.3, bioconductor-deseq2=1.28.0}, DUPRADAR={bioconductor-dupradar=1.32.0}, FASTQC={fastqc=0.12.1}, FQ_SUBSAMPLE={fq=0.9.1 (2022-02-22)}, GTF2BED={perl=5.26.2}, GTF_FILTER={python=3.9.5}, GUNZIP_ADDITIONAL_FASTA={gunzip=1.1}, GUNZIP_GTF={gunzip=1.1}, MULTIQC_CUSTOM_BIOTYPE={python=3.9.5}, PICARD_MARKDUPLICATES={picard=3.1.1}, QUALIMAP_RNASEQ={qualimap=2.3}, RSEQC_BAMSTAT={rseqc=5.0.2}, RSEQC_INFEREXPERIMENT={rseqc=5.0.2}, RSEQC_INNERDISTANCE={rseqc=5.0.2}, RSEQC_JUNCTIONANNOTATION={rseqc=5.0.2}, RSEQC_JUNCTIONSATURATION={rseqc=5.0.2}, RSEQC_READDISTRIBUTION={rseqc=5.0.2}, RSEQC_READDUPLICATION={rseqc=5.0.2}, SALMON_QUANT={salmon=1.10.1}, SAMTOOLS_FLAGSTAT={samtools=1.2}, SAMTOOLS_IDXSTATS={samtools=1.2}, SAMTOOLS_INDEX={samtools=1.2}, SAMTOOLS_SORT={samtools=1.2}, SAMTOOLS_STATS={samtools=1.2}, SE_GENE={bioconductor-summarizedexperiment=1.32.0}, STAR_ALIGN={star=2.7.10a, samtools=1.18, gawk=5.1.0}, STAR_GENOMEGENERATE={star=2.7.10a, samtools=1.18, gawk=5.1.0}, STRINGTIE_STRINGTIE={stringtie=2.2.1}, SUBREAD_FEATURECOUNTS={subread=2.0.1}, TRIMGALORE={trimgalore=0.6.7, cutadapt=3.4}, TXIMETA_TXIMPORT={bioconductor-tximeta=1.20.1}, UCSC_BEDCLIP={ucsc=377}, UCSC_BEDGRAPHTOBIGWIG={ucsc=445}, UNTAR_SALMON_INDEX={untar=1.3}, Workflow={nf-core/rnaseq=v3.15.0dev}}" ], "meta": { "nf-test": "0.8.4", - "nextflow": "24.01.0" + "nextflow": "24.04.1" }, - "timestamp": "2024-03-04T12:40:26.161319" + "timestamp": "2024-06-27T15:38:12.576022" } } \ No newline at end of file From 489e7fd343285751450f8ef66f9043ef65433be9 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Thu, 27 Jun 2024 16:35:39 +0100 Subject: [PATCH 10/12] patch dupradar --- modules.json | 1 + modules/nf-core/dupradar/dupradar.diff | 100 +++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 modules/nf-core/dupradar/dupradar.diff diff --git a/modules.json b/modules.json index c7d899894..38f622bef 100644 --- a/modules.json +++ b/modules.json @@ -39,6 +39,7 @@ "branch": "master", "git_sha": "f632a6e25b05497477920183cff33ba72ab7b6fc", "installed_by": ["modules"] + "patch": "modules/nf-core/dupradar/dupradar.diff" }, "fastp": { "branch": "master", diff --git a/modules/nf-core/dupradar/dupradar.diff b/modules/nf-core/dupradar/dupradar.diff new file mode 100644 index 000000000..b56db2599 --- /dev/null +++ b/modules/nf-core/dupradar/dupradar.diff @@ -0,0 +1,100 @@ +Changes in module 'nf-core/dupradar' +--- /dev/null ++++ modules/nf-core/dupradar/nextflow.config +@@ -0,0 +1,35 @@ ++if (!params.skip_alignment && !params.skip_qc) { ++ if (!params.skip_dupradar) { ++ process { ++ withName: 'DUPRADAR' { ++ publishDir = [ ++ [ ++ path: { "${params.outdir}/${params.aligner}/dupradar/scatter_plot" }, ++ mode: params.publish_dir_mode, ++ pattern: "*Dens.pdf" ++ ], ++ [ ++ path: { "${params.outdir}/${params.aligner}/dupradar/box_plot" }, ++ mode: params.publish_dir_mode, ++ pattern: "*Boxplot.pdf" ++ ], ++ [ ++ path: { "${params.outdir}/${params.aligner}/dupradar/histogram" }, ++ mode: params.publish_dir_mode, ++ pattern: "*Hist.pdf" ++ ], ++ [ ++ path: { "${params.outdir}/${params.aligner}/dupradar/gene_data" }, ++ mode: params.publish_dir_mode, ++ pattern: "*Matrix.txt" ++ ], ++ [ ++ path: { "${params.outdir}/${params.aligner}/dupradar/intercepts_slope" }, ++ mode: params.publish_dir_mode, ++ pattern: "*slope.txt" ++ ] ++ ] ++ } ++ } ++ } ++} + +--- modules/nf-core/dupradar/tests/main.nf.test ++++ modules/nf-core/dupradar/tests/main.nf.test +@@ -3,10 +3,6 @@ + name "Test Process DUPRADAR" + script "../main.nf" + process "DUPRADAR" +- +- tag "modules" +- tag "modules_nfcore" +- tag "dupradar" + + test("sarscov2 - bam - single_end") { + + +--- modules/nf-core/dupradar/templates/dupradar.r ++++ modules/nf-core/dupradar/templates/dupradar.r +@@ -88,7 +88,6 @@ + # max: 100 + # min: 0 + # scale: 'RdYlGn-rev' +-# format: '{:.2f}%' + Sample dupRadar_intercept" + + write(line,file=paste0(output_prefix, "_dup_intercept_mqc.txt"),append=TRUE) +@@ -115,15 +114,15 @@ + # This plot shows the general linear models - a summary of the gene duplication distributions. \" + #pconfig: + # title: 'DupRadar General Linear Model' +-# xLog: True ++# xlog: True + # xlab: 'expression (reads/kbp)' + # ylab: '% duplicate reads' + # ymax: 100 + # ymin: 0 + # tt_label: '{point.x:.1f} reads/kbp: {point.y:,.2f}% duplicates' +-# xPlotLines: ++# x_lines: + # - color: 'green' +-# dashStyle: 'LongDash' ++# dash: 'LongDash' + # label: + # style: {color: 'green'} + # text: '0.5 RPKM' +@@ -132,7 +131,7 @@ + # value: 0.5 + # width: 1 + # - color: 'red' +-# dashStyle: 'LongDash' ++# dash: 'LongDash' + # label: + # style: {color: 'red'} + # text: '1 read/bp' + +--- modules/nf-core/dupradar/tests/tags.yml ++++ /dev/null +@@ -1,2 +0,0 @@ +-dupradar: +- - "modules/nf-core/dupradar/**" + +************************************************************ From 2d314bf7bf2886d1613493164c8b62ce0702249b Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Thu, 27 Jun 2024 17:25:14 +0100 Subject: [PATCH 11/12] Fix syntax --- modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules.json b/modules.json index 38f622bef..4ee9cf73f 100644 --- a/modules.json +++ b/modules.json @@ -38,7 +38,7 @@ "dupradar": { "branch": "master", "git_sha": "f632a6e25b05497477920183cff33ba72ab7b6fc", - "installed_by": ["modules"] + "installed_by": ["modules"], "patch": "modules/nf-core/dupradar/dupradar.diff" }, "fastp": { From e7ba0cfaf377e1c7b3b50bcdbaed0e89d8d11734 Mon Sep 17 00:00:00 2001 From: Jonathan Manning Date: Fri, 28 Jun 2024 17:01:29 +0100 Subject: [PATCH 12/12] update snapshot --- modules/nf-core/dupradar/dupradar.diff | 30 +++++++++++++++++++ .../nf-core/dupradar/tests/main.nf.test.snap | 10 +++---- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/modules/nf-core/dupradar/dupradar.diff b/modules/nf-core/dupradar/dupradar.diff index b56db2599..c24bc6570 100644 --- a/modules/nf-core/dupradar/dupradar.diff +++ b/modules/nf-core/dupradar/dupradar.diff @@ -38,6 +38,36 @@ Changes in module 'nf-core/dupradar' + } +} +--- modules/nf-core/dupradar/tests/main.nf.test.snap ++++ modules/nf-core/dupradar/tests/main.nf.test.snap +@@ -50,8 +50,8 @@ + "strandedness": "forward" + }, + [ +- "test_dup_intercept_mqc.txt:md5,d69369924aeb9695b0e97e755e0d9ea3", +- "test_duprateExpDensCurve_mqc.txt:md5,f4a50dc09de81219ed4449c11153ba6e" ++ "test_dup_intercept_mqc.txt:md5,002855b42a71aa0f407ef7fa19df9ac3", ++ "test_duprateExpDensCurve_mqc.txt:md5,5c6ab345e3e0089d409624d6a4bf4e40" + ] + ] + ] +@@ -150,8 +150,8 @@ + "strandedness": "forward" + }, + [ +- "test_dup_intercept_mqc.txt:md5,7b6fb70cbede0d20ffa576a0cc0b249d", +- "test_duprateExpDensCurve_mqc.txt:md5,49b44937123c14b622f346cb6156dd4f" ++ "test_dup_intercept_mqc.txt:md5,11961f0962ffc70e42aa57a12984e0fc", ++ "test_duprateExpDensCurve_mqc.txt:md5,eb742e354c8d5d6bed8d2ebac087f0ac" + ] + ] + ] +@@ -357,4 +357,4 @@ + }, + "timestamp": "2024-03-07T13:07:43.344100132" + } +-}+} + --- modules/nf-core/dupradar/tests/main.nf.test +++ modules/nf-core/dupradar/tests/main.nf.test @@ -3,10 +3,6 @@ diff --git a/modules/nf-core/dupradar/tests/main.nf.test.snap b/modules/nf-core/dupradar/tests/main.nf.test.snap index e64aa7298..79587a439 100644 --- a/modules/nf-core/dupradar/tests/main.nf.test.snap +++ b/modules/nf-core/dupradar/tests/main.nf.test.snap @@ -50,8 +50,8 @@ "strandedness": "forward" }, [ - "test_dup_intercept_mqc.txt:md5,d69369924aeb9695b0e97e755e0d9ea3", - "test_duprateExpDensCurve_mqc.txt:md5,f4a50dc09de81219ed4449c11153ba6e" + "test_dup_intercept_mqc.txt:md5,002855b42a71aa0f407ef7fa19df9ac3", + "test_duprateExpDensCurve_mqc.txt:md5,5c6ab345e3e0089d409624d6a4bf4e40" ] ] ] @@ -150,8 +150,8 @@ "strandedness": "forward" }, [ - "test_dup_intercept_mqc.txt:md5,7b6fb70cbede0d20ffa576a0cc0b249d", - "test_duprateExpDensCurve_mqc.txt:md5,49b44937123c14b622f346cb6156dd4f" + "test_dup_intercept_mqc.txt:md5,11961f0962ffc70e42aa57a12984e0fc", + "test_duprateExpDensCurve_mqc.txt:md5,eb742e354c8d5d6bed8d2ebac087f0ac" ] ] ] @@ -357,4 +357,4 @@ }, "timestamp": "2024-03-07T13:07:43.344100132" } -} \ No newline at end of file +}