From 9bad81cec6b564aa4663c70429502b11abe68159 Mon Sep 17 00:00:00 2001 From: atrigila <18577080+atrigila@users.noreply.github.com> Date: Thu, 19 Sep 2024 18:04:27 +0000 Subject: [PATCH 1/5] replace local modules for nf-core bowtie --- conf/modules.config | 11 +++ modules.json | 16 ++++ modules/local/bowtie_contaminants.nf | 29 ------ modules/local/bowtie_genome.nf | 36 ------- modules/local/bowtie_mirna.nf | 29 ------ modules/nf-core/bioawk/bioawk.diff | 25 +++++ modules/nf-core/bioawk/environment.yml | 5 + modules/nf-core/bioawk/main.nf | 36 +++++++ modules/nf-core/bioawk/meta.yml | 46 +++++++++ modules/nf-core/bioawk/tests/main.nf.test | 35 +++++++ .../nf-core/bioawk/tests/main.nf.test.snap | 37 +++++++ modules/nf-core/bioawk/tests/nextflow.config | 6 ++ modules/nf-core/bowtie/build/environment.yml | 5 + modules/nf-core/bowtie/build/main.nf | 50 ++++++++++ modules/nf-core/bowtie/build/meta.yml | 45 +++++++++ .../nf-core/bowtie/build/tests/main.nf.test | 57 +++++++++++ .../bowtie/build/tests/main.nf.test.snap | 96 +++++++++++++++++++ modules/nf-core/bowtie/build/tests/tags.yml | 2 + modules/nf-core/bowtie2/build/environment.yml | 5 + modules/nf-core/bowtie2/build/main.nf | 42 ++++++++ modules/nf-core/bowtie2/build/meta.yml | 46 +++++++++ .../nf-core/bowtie2/build/tests/main.nf.test | 31 ++++++ .../bowtie2/build/tests/main.nf.test.snap | 45 +++++++++ modules/nf-core/bowtie2/build/tests/tags.yml | 2 + subworkflows/local/contaminant_filter/main.nf | 36 +++---- subworkflows/local/mirna_quant.nf | 10 +- subworkflows/local/prepare_genome/main.nf | 22 +++-- 27 files changed, 680 insertions(+), 125 deletions(-) delete mode 100644 modules/local/bowtie_contaminants.nf delete mode 100644 modules/local/bowtie_genome.nf delete mode 100644 modules/local/bowtie_mirna.nf create mode 100644 modules/nf-core/bioawk/bioawk.diff create mode 100644 modules/nf-core/bioawk/environment.yml create mode 100644 modules/nf-core/bioawk/main.nf create mode 100644 modules/nf-core/bioawk/meta.yml create mode 100644 modules/nf-core/bioawk/tests/main.nf.test create mode 100644 modules/nf-core/bioawk/tests/main.nf.test.snap create mode 100644 modules/nf-core/bioawk/tests/nextflow.config create mode 100644 modules/nf-core/bowtie/build/environment.yml create mode 100644 modules/nf-core/bowtie/build/main.nf create mode 100644 modules/nf-core/bowtie/build/meta.yml create mode 100644 modules/nf-core/bowtie/build/tests/main.nf.test create mode 100644 modules/nf-core/bowtie/build/tests/main.nf.test.snap create mode 100644 modules/nf-core/bowtie/build/tests/tags.yml create mode 100644 modules/nf-core/bowtie2/build/environment.yml create mode 100644 modules/nf-core/bowtie2/build/main.nf create mode 100644 modules/nf-core/bowtie2/build/meta.yml create mode 100644 modules/nf-core/bowtie2/build/tests/main.nf.test create mode 100644 modules/nf-core/bowtie2/build/tests/main.nf.test.snap create mode 100644 modules/nf-core/bowtie2/build/tests/tags.yml diff --git a/conf/modules.config b/conf/modules.config index f27533af..540f8426 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -176,6 +176,17 @@ process { ] } + withName: 'CLEAN_FASTA' { + ext.args = "-c fastx '{gsub(/[^ATGCatgc]/, \"N\", \$seq); sub(/ .*/, \"\", \$name); print \">\"\$name\"\\n\"\$seq}'" + ext.prefix = {"${meta.id}_clean.fa"} + publishDir = [ + path: { "${params.outdir}/bowtie_index/genome" }, + mode: params.publish_dir_mode, + enabled: params.save_intermediates, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + // // UMI deduplication // diff --git a/modules.json b/modules.json index c2b1cf32..97b0b79a 100644 --- a/modules.json +++ b/modules.json @@ -5,11 +5,27 @@ "https://github.com/nf-core/modules.git": { "modules": { "nf-core": { + "bioawk": { + "branch": "master", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "installed_by": ["modules"], + "patch": "modules/nf-core/bioawk/bioawk.diff" + }, "blat": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", "installed_by": ["modules"] }, + "bowtie/build": { + "branch": "master", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "installed_by": ["modules"] + }, + "bowtie2/build": { + "branch": "master", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "installed_by": ["modules"] + }, "cat/cat": { "branch": "master", "git_sha": "5bb8ca085e17549e185e1823495ab8d20727a805", diff --git a/modules/local/bowtie_contaminants.nf b/modules/local/bowtie_contaminants.nf deleted file mode 100644 index cf02de31..00000000 --- a/modules/local/bowtie_contaminants.nf +++ /dev/null @@ -1,29 +0,0 @@ -process INDEX_CONTAMINANTS { - label 'process_medium' - - conda 'bowtie2=2.4.5' - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bowtie2:2.4.5--py39hd2f7db1_2' : - 'biocontainers/bowtie2:2.4.5--py39hd2f7db1_2'}" - - input: - path fasta - - output: - path 'fasta_bidx*' , emit: index - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - """ - bowtie2-build ${fasta} fasta_bidx --threads ${task.cpus} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') - END_VERSIONS - """ - -} diff --git a/modules/local/bowtie_genome.nf b/modules/local/bowtie_genome.nf deleted file mode 100644 index 17ea9253..00000000 --- a/modules/local/bowtie_genome.nf +++ /dev/null @@ -1,36 +0,0 @@ -process INDEX_GENOME { - tag "$fasta" - label 'process_medium' - - conda 'bioconda::bowtie=1.3.1' - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bowtie:1.3.1--py310h7b97f60_6' : - 'biocontainers/bowtie:1.3.1--py310h7b97f60_6' }" - - input: - tuple val(meta2), path(fasta) - - output: - path 'genome*ebwt' , emit: index - path 'genome.edited.fa', emit: fasta - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - """ - # Remove any special base characters from reference genome FASTA file - sed '/^[^>]/s/[^ATGCatgc]/N/g' $fasta > genome.edited.fa - sed -i 's/ .*//' genome.edited.fa - - # Build bowtie index - bowtie-build genome.edited.fa genome --threads ${task.cpus} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bowtie: \$(echo \$(bowtie --version 2>&1) | sed 's/^.*bowtie-align-s version //; s/ .*\$//') - END_VERSIONS - """ - -} diff --git a/modules/local/bowtie_mirna.nf b/modules/local/bowtie_mirna.nf deleted file mode 100644 index 733d816e..00000000 --- a/modules/local/bowtie_mirna.nf +++ /dev/null @@ -1,29 +0,0 @@ -process INDEX_MIRNA { - label 'process_medium' - - conda 'bioconda::bowtie=1.3.1' - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/bowtie:1.3.1--py310h7b97f60_6' : - 'biocontainers/bowtie:1.3.1--py310h7b97f60_6' }" - - input: - tuple val(meta2), path(fasta) - - output: - path 'fasta_bidx*' , emit: index - path "versions.yml", emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - """ - bowtie-build ${fasta} fasta_bidx --threads ${task.cpus} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - bowtie: \$(echo \$(bowtie --version 2>&1) | sed 's/^.*bowtie-align-s version //; s/ .*\$//') - END_VERSIONS - """ - -} diff --git a/modules/nf-core/bioawk/bioawk.diff b/modules/nf-core/bioawk/bioawk.diff new file mode 100644 index 00000000..bd9ed322 --- /dev/null +++ b/modules/nf-core/bioawk/bioawk.diff @@ -0,0 +1,25 @@ +Changes in module 'nf-core/bioawk' +--- modules/nf-core/bioawk/main.nf ++++ modules/nf-core/bioawk/main.nf +@@ -11,7 +11,7 @@ + tuple val(meta), path(input) + + output: +- tuple val(meta), path("*.gz"), emit: output ++ tuple val(meta), path("*.fasta"), emit: output + path "versions.yml" , emit: versions + + when: +@@ -26,9 +26,7 @@ + bioawk \\ + $args \\ + $input \\ +- > ${prefix} +- +- gzip ${prefix} ++ > ${prefix}.fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + +************************************************************ diff --git a/modules/nf-core/bioawk/environment.yml b/modules/nf-core/bioawk/environment.yml new file mode 100644 index 00000000..527f6cd4 --- /dev/null +++ b/modules/nf-core/bioawk/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::bioawk=1.0 diff --git a/modules/nf-core/bioawk/main.nf b/modules/nf-core/bioawk/main.nf new file mode 100644 index 00000000..3ae62108 --- /dev/null +++ b/modules/nf-core/bioawk/main.nf @@ -0,0 +1,36 @@ +process BIOAWK { + tag "$meta.id" + label 'process_single' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bioawk:1.0--h5bf99c6_6': + 'biocontainers/bioawk:1.0--h5bf99c6_6' }" + + input: + tuple val(meta), path(input) + + output: + tuple val(meta), path("*.fasta"), emit: output + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' // args is used for the main arguments of the tool + prefix = task.ext.prefix ?: "${meta.id}" + if ("${input}" == "${prefix}") error "Input and output names are the same, use \"task.ext.prefix\" to disambiguate!" + def VERSION = '1.0' // WARN: Version information not provided by tool on CLI. Please update this string when bumping container versions. + """ + bioawk \\ + $args \\ + $input \\ + > ${prefix}.fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bioawk: $VERSION + END_VERSIONS + """ +} diff --git a/modules/nf-core/bioawk/meta.yml b/modules/nf-core/bioawk/meta.yml new file mode 100644 index 00000000..7af01582 --- /dev/null +++ b/modules/nf-core/bioawk/meta.yml @@ -0,0 +1,46 @@ +name: "bioawk" +description: Bioawk is an extension to Brian Kernighan's awk, adding the support of several common biological data formats. +keywords: + - bioawk + - fastq + - fasta + - sam + - file manipulation + - awk +tools: + - "bioawk": + description: "BWK awk modified for biological data" + homepage: "https://github.com/lh3/bioawk" + documentation: "https://github.com/lh3/bioawk" + tool_dev_url: "https://github.com/lh3/bioawk" + licence: ["Free software license (https://github.com/lh3/bioawk/blob/master/README.awk#L1)"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - input: + type: file + description: Input sequence biological sequence file (optionally gzipped) to be manipulated via program specified in `$args`. + pattern: "*.{bed,gff,sam,vcf,fastq,fasta,tab,bed.gz,gff.gz,sam.gz,vcf.gz,fastq.gz,fasta.gz,tab.gz}" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - output: + type: file + description: | + Manipulated and gzipped version of input sequence file following program specified in `args`. + File name will be what is specified in `$prefix`. Do not include `.gz` suffix in `$prefix`! Output files` will be gzipped for you! + pattern: "*.gz" +authors: + - "@jfy133" +maintainers: + - "@jfy133" diff --git a/modules/nf-core/bioawk/tests/main.nf.test b/modules/nf-core/bioawk/tests/main.nf.test new file mode 100644 index 00000000..270ff1ef --- /dev/null +++ b/modules/nf-core/bioawk/tests/main.nf.test @@ -0,0 +1,35 @@ + +nextflow_process { + + name "Test Process BIOAWK" + script "../main.nf" + process "BIOAWK" + config "./nextflow.config" + + tag "modules" + tag "modules_nfcore" + tag "bioawk" + + test("test-bioawk") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + +} diff --git a/modules/nf-core/bioawk/tests/main.nf.test.snap b/modules/nf-core/bioawk/tests/main.nf.test.snap new file mode 100644 index 00000000..fa9b5930 --- /dev/null +++ b/modules/nf-core/bioawk/tests/main.nf.test.snap @@ -0,0 +1,37 @@ +{ + "test-bioawk": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "sample_1.fa.gz:md5,b558dd15d8940373a032a827d490e693" + ] + ], + "1": [ + "versions.yml:md5,5fe88e58a71f10551df56518c35ba91a" + ], + "output": [ + [ + { + "id": "test", + "single_end": false + }, + "sample_1.fa.gz:md5,b558dd15d8940373a032a827d490e693" + ] + ], + "versions": [ + "versions.yml:md5,5fe88e58a71f10551df56518c35ba91a" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.4" + }, + "timestamp": "2024-08-28T10:24:46.397249" + } +} \ No newline at end of file diff --git a/modules/nf-core/bioawk/tests/nextflow.config b/modules/nf-core/bioawk/tests/nextflow.config new file mode 100644 index 00000000..5ef017d9 --- /dev/null +++ b/modules/nf-core/bioawk/tests/nextflow.config @@ -0,0 +1,6 @@ +process { + withName: BIOAWK { + ext.args = "-c fastx \'{print \">\" \$name ORS length(\$seq)}\'" + ext.prefix = "sample_1.fa" + } +} diff --git a/modules/nf-core/bowtie/build/environment.yml b/modules/nf-core/bowtie/build/environment.yml new file mode 100644 index 00000000..ab5a8422 --- /dev/null +++ b/modules/nf-core/bowtie/build/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::bowtie=1.3.0 diff --git a/modules/nf-core/bowtie/build/main.nf b/modules/nf-core/bowtie/build/main.nf new file mode 100644 index 00000000..d5b4c690 --- /dev/null +++ b/modules/nf-core/bowtie/build/main.nf @@ -0,0 +1,50 @@ +process BOWTIE_BUILD { + tag "${meta.id}" + label 'process_high' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bowtie:1.3.0--py38hed8969a_1' : + 'biocontainers/bowtie:1.3.0--py38hed8969a_1' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path('bowtie') , emit: index + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + mkdir -p bowtie + bowtie-build --threads $task.cpus $fasta bowtie/${prefix} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bowtie: \$(echo \$(bowtie --version 2>&1) | sed 's/^.*bowtie-align-s version //; s/ .*\$//') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + mkdir -p bowtie + touch bowtie/${prefix}.1.ebwt + touch bowtie/${prefix}.2.ebwt + touch bowtie/${prefix}.3.ebwt + touch bowtie/${prefix}.4.ebwt + touch bowtie/${prefix}.rev.1.ebwt + touch bowtie/${prefix}.rev.2.ebwt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bowtie: \$(echo \$(bowtie --version 2>&1) | sed 's/^.*bowtie-align-s version //; s/ .*\$//') + END_VERSIONS + """ + +} diff --git a/modules/nf-core/bowtie/build/meta.yml b/modules/nf-core/bowtie/build/meta.yml new file mode 100644 index 00000000..dd48004f --- /dev/null +++ b/modules/nf-core/bowtie/build/meta.yml @@ -0,0 +1,45 @@ +name: bowtie_build +description: Create bowtie index for reference genome +keywords: + - index + - fasta + - genome + - reference +tools: + - bowtie: + description: | + bowtie is a software package for mapping DNA sequences against + a large reference genome, such as the human genome. + homepage: http://bowtie-bio.sourceforge.net/index.shtml + documentation: http://bowtie-bio.sourceforge.net/manual.shtml + arxiv: arXiv:1303.3997 + licence: ["Artistic-2.0"] +input: + - meta: + type: map + description: | + Groovy Map containing information about the genome fasta + e.g. [ id:'test' ] + - fasta: + type: file + description: Input genome fasta file +output: + - meta: + type: map + description: | + Groovy Map containing nformation about the genome fasta + e.g. [ id:'test' ] + - index: + type: file + description: Folder containing bowtie genome index files + pattern: "*.ebwt" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@kevinmenden" + - "@drpatelh" +maintainers: + - "@kevinmenden" + - "@drpatelh" diff --git a/modules/nf-core/bowtie/build/tests/main.nf.test b/modules/nf-core/bowtie/build/tests/main.nf.test new file mode 100644 index 00000000..25fb3dad --- /dev/null +++ b/modules/nf-core/bowtie/build/tests/main.nf.test @@ -0,0 +1,57 @@ +nextflow_process { + + name "Test Process BOWTIE_BUILD" + script "../main.nf" + process "BOWTIE_BUILD" + + tag "modules" + tag "modules_nfcore" + tag "bowtie" + tag "bowtie/build" + + test("sarscov2 - fasta") { + + when { + process { + """ + input[0] = [ + [id: 'sarscov2'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fasta - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [[id: 'sarscov2'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/nf-core/bowtie/build/tests/main.nf.test.snap b/modules/nf-core/bowtie/build/tests/main.nf.test.snap new file mode 100644 index 00000000..e8061756 --- /dev/null +++ b/modules/nf-core/bowtie/build/tests/main.nf.test.snap @@ -0,0 +1,96 @@ +{ + "sarscov2 - fasta - stub": { + "content": [ + { + "0": [ + [ + { + "id": "sarscov2" + }, + [ + "sarscov2.1.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.2.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.3.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.4.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.rev.1.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.rev.2.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "1": [ + "versions.yml:md5,afbd066e1dd5ae4a30b21c49149ea09a" + ], + "index": [ + [ + { + "id": "sarscov2" + }, + [ + "sarscov2.1.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.2.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.3.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.4.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.rev.1.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e", + "sarscov2.rev.2.ebwt:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ] + ], + "versions": [ + "versions.yml:md5,afbd066e1dd5ae4a30b21c49149ea09a" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-18T08:38:14.852528155" + }, + "sarscov2 - fasta": { + "content": [ + { + "0": [ + [ + { + "id": "sarscov2" + }, + [ + "sarscov2.1.ebwt:md5,d9b76ecf9fd0413240173273b38d8199", + "sarscov2.2.ebwt:md5,02b44af9f94c62ecd3c583048e25d4cf", + "sarscov2.3.ebwt:md5,4ed93abba181d8dfab2e303e33114777", + "sarscov2.4.ebwt:md5,c25be5f8b0378abf7a58c8a880b87626", + "sarscov2.rev.1.ebwt:md5,b37aaf11853e65a3b13561f27a912b06", + "sarscov2.rev.2.ebwt:md5,9e6b0c4c1ddb99ae71ff8a4fe5ec6459" + ] + ] + ], + "1": [ + "versions.yml:md5,afbd066e1dd5ae4a30b21c49149ea09a" + ], + "index": [ + [ + { + "id": "sarscov2" + }, + [ + "sarscov2.1.ebwt:md5,d9b76ecf9fd0413240173273b38d8199", + "sarscov2.2.ebwt:md5,02b44af9f94c62ecd3c583048e25d4cf", + "sarscov2.3.ebwt:md5,4ed93abba181d8dfab2e303e33114777", + "sarscov2.4.ebwt:md5,c25be5f8b0378abf7a58c8a880b87626", + "sarscov2.rev.1.ebwt:md5,b37aaf11853e65a3b13561f27a912b06", + "sarscov2.rev.2.ebwt:md5,9e6b0c4c1ddb99ae71ff8a4fe5ec6459" + ] + ] + ], + "versions": [ + "versions.yml:md5,afbd066e1dd5ae4a30b21c49149ea09a" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-18T08:37:53.65689025" + } +} \ No newline at end of file diff --git a/modules/nf-core/bowtie/build/tests/tags.yml b/modules/nf-core/bowtie/build/tests/tags.yml new file mode 100644 index 00000000..1ccfa30c --- /dev/null +++ b/modules/nf-core/bowtie/build/tests/tags.yml @@ -0,0 +1,2 @@ +bowtie/build: + - "modules/nf-core/bowtie/build/**" diff --git a/modules/nf-core/bowtie2/build/environment.yml b/modules/nf-core/bowtie2/build/environment.yml new file mode 100644 index 00000000..e590f7ce --- /dev/null +++ b/modules/nf-core/bowtie2/build/environment.yml @@ -0,0 +1,5 @@ +channels: + - conda-forge + - bioconda +dependencies: + - bioconda::bowtie2=2.5.2 diff --git a/modules/nf-core/bowtie2/build/main.nf b/modules/nf-core/bowtie2/build/main.nf new file mode 100644 index 00000000..9e2e0e5e --- /dev/null +++ b/modules/nf-core/bowtie2/build/main.nf @@ -0,0 +1,42 @@ +process BOWTIE2_BUILD { + tag "$fasta" + label 'process_high' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/bowtie2:2.5.2--py39h6fed5c7_0' : + 'biocontainers/bowtie2:2.5.2--py39h6fed5c7_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path('bowtie2') , emit: index + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + mkdir bowtie2 + bowtie2-build $args --threads $task.cpus $fasta bowtie2/${fasta.baseName} + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') + END_VERSIONS + """ + + stub: + """ + mkdir bowtie2 + touch bowtie2/${fasta.baseName}.{1..4}.bt2 + touch bowtie2/${fasta.baseName}.rev.{1,2}.bt2 + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + bowtie2: \$(echo \$(bowtie2 --version 2>&1) | sed 's/^.*bowtie2-align-s version //; s/ .*\$//') + END_VERSIONS + """ +} diff --git a/modules/nf-core/bowtie2/build/meta.yml b/modules/nf-core/bowtie2/build/meta.yml new file mode 100644 index 00000000..2d687991 --- /dev/null +++ b/modules/nf-core/bowtie2/build/meta.yml @@ -0,0 +1,46 @@ +name: bowtie2_build +description: Builds bowtie index for reference genome +keywords: + - build + - index + - fasta + - genome + - reference +tools: + - bowtie2: + description: | + Bowtie 2 is an ultrafast and memory-efficient tool for aligning + sequencing reads to long reference sequences. + homepage: http://bowtie-bio.sourceforge.net/bowtie2/index.shtml + documentation: http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml + doi: 10.1038/nmeth.1923 + licence: ["GPL-3.0-or-later"] +input: + - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: Input genome fasta file +output: + - meta: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test', single_end:false ] + - index: + type: file + description: Bowtie2 genome index files + pattern: "*.bt2" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@joseespinosa" + - "@drpatelh" +maintainers: + - "@joseespinosa" + - "@drpatelh" diff --git a/modules/nf-core/bowtie2/build/tests/main.nf.test b/modules/nf-core/bowtie2/build/tests/main.nf.test new file mode 100644 index 00000000..16376025 --- /dev/null +++ b/modules/nf-core/bowtie2/build/tests/main.nf.test @@ -0,0 +1,31 @@ +nextflow_process { + + name "Test Process BOWTIE2_BUILD" + script "modules/nf-core/bowtie2/build/main.nf" + process "BOWTIE2_BUILD" + tag "modules" + tag "modules_nfcore" + tag "bowtie2" + tag "bowtie2/build" + + test("Should run without failures") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.test_data['sarscov2']['genome']['genome_fasta'], checkIfExists: true) + ] + """ + } + } + + then { + assert process.success + assert snapshot(process.out).match() + } + + } + +} diff --git a/modules/nf-core/bowtie2/build/tests/main.nf.test.snap b/modules/nf-core/bowtie2/build/tests/main.nf.test.snap new file mode 100644 index 00000000..6875e021 --- /dev/null +++ b/modules/nf-core/bowtie2/build/tests/main.nf.test.snap @@ -0,0 +1,45 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + [ + "genome.1.bt2:md5,cbe3d0bbea55bc57c99b4bfa25b5fbdf", + "genome.2.bt2:md5,47b153cd1319abc88dda532462651fcf", + "genome.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", + "genome.4.bt2:md5,c25be5f8b0378abf7a58c8a880b87626", + "genome.rev.1.bt2:md5,52be6950579598a990570fbcf5372184", + "genome.rev.2.bt2:md5,e3b4ef343dea4dd571642010a7d09597" + ] + ] + ], + "1": [ + "versions.yml:md5,1df11e9b82891527271c889c880d3974" + ], + "index": [ + [ + { + "id": "test" + }, + [ + "genome.1.bt2:md5,cbe3d0bbea55bc57c99b4bfa25b5fbdf", + "genome.2.bt2:md5,47b153cd1319abc88dda532462651fcf", + "genome.3.bt2:md5,4ed93abba181d8dfab2e303e33114777", + "genome.4.bt2:md5,c25be5f8b0378abf7a58c8a880b87626", + "genome.rev.1.bt2:md5,52be6950579598a990570fbcf5372184", + "genome.rev.2.bt2:md5,e3b4ef343dea4dd571642010a7d09597" + ] + ] + ], + "versions": [ + "versions.yml:md5,1df11e9b82891527271c889c880d3974" + ] + } + ], + "timestamp": "2023-11-23T11:51:01.107681997" + } +} \ No newline at end of file diff --git a/modules/nf-core/bowtie2/build/tests/tags.yml b/modules/nf-core/bowtie2/build/tests/tags.yml new file mode 100644 index 00000000..81aa61da --- /dev/null +++ b/modules/nf-core/bowtie2/build/tests/tags.yml @@ -0,0 +1,2 @@ +bowtie2/build: + - modules/nf-core/bowtie2/build/** diff --git a/subworkflows/local/contaminant_filter/main.nf b/subworkflows/local/contaminant_filter/main.nf index 59ec34f2..58c51620 100644 --- a/subworkflows/local/contaminant_filter/main.nf +++ b/subworkflows/local/contaminant_filter/main.nf @@ -17,12 +17,12 @@ include { SEQKIT_GREP as SEQKIT_GREP_NCRNA } from '../../../modules/nf-core/seqk include { SEQKIT_GREP as SEQKIT_GREP_PIRNA } from '../../../modules/nf-core/seqkit/grep/main' include { SEQKIT_GREP as SEQKIT_GREP_OTHER } from '../../../modules/nf-core/seqkit/grep/main' -include { INDEX_CONTAMINANTS as INDEX_RRNA - INDEX_CONTAMINANTS as INDEX_TRNA - INDEX_CONTAMINANTS as INDEX_CDNA - INDEX_CONTAMINANTS as INDEX_NCRNA - INDEX_CONTAMINANTS as INDEX_PIRNA - INDEX_CONTAMINANTS as INDEX_OTHER } from '../../../modules/local/bowtie_contaminants' +include { BOWTIE2_BUILD as INDEX_TRNA } from '../../../modules/nf-core/bowtie2/build/main' +include { BOWTIE2_BUILD as INDEX_CDNA } from '../../../modules/nf-core/bowtie2/build/main' +include { BOWTIE2_BUILD as INDEX_NCRNA } from '../../../modules/nf-core/bowtie2/build/main' +include { BOWTIE2_BUILD as INDEX_PIRNA } from '../../../modules/nf-core/bowtie2/build/main' +include { BOWTIE2_BUILD as INDEX_OTHER } from '../../../modules/nf-core/bowtie2/build/main' +include { BOWTIE2_BUILD as INDEX_RRNA } from '../../../modules/nf-core/bowtie2/build/main' include { BOWTIE_MAP_CONTAMINANTS as MAP_RRNA BOWTIE_MAP_CONTAMINANTS as MAP_TRNA @@ -54,9 +54,9 @@ workflow CONTAMINANT_FILTER { if (params.rrna) { // Index DB and filter $reads emit: $rrna_reads - INDEX_RRNA ( ch_rrna ) + INDEX_RRNA ( ch_rrna.map{it -> return [[id:"rRNA"], it]} ) ch_versions = ch_versions.mix(INDEX_RRNA.out.versions) - MAP_RRNA ( ch_reads_for_mirna, INDEX_RRNA.out.index.first(), Channel.value('rRNA') ) + MAP_RRNA ( ch_reads_for_mirna, INDEX_RRNA.out.index.map{meta, it -> return [it]}, Channel.value('rRNA') ) ch_versions = ch_versions.mix(MAP_RRNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_RRNA.out.stats.ifEmpty(null)) MAP_RRNA.out.unmapped.set { rrna_reads } @@ -66,9 +66,9 @@ workflow CONTAMINANT_FILTER { if (params.trna) { // Index DB and filter $rrna_reads emit: $trna_reads - INDEX_TRNA ( ch_trna ) + INDEX_TRNA ( ch_trna.map{it -> return [[id:"tRNA"], it]} ) ch_versions = ch_versions.mix(INDEX_TRNA.out.versions) - MAP_TRNA ( rrna_reads, INDEX_TRNA.out.index.first(), Channel.value("tRNA") ) + MAP_TRNA ( rrna_reads, INDEX_TRNA.out.index.map{meta, it -> return [it]}, Channel.value("tRNA") ) ch_versions = ch_versions.mix(MAP_TRNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_TRNA.out.stats.ifEmpty(null)) MAP_TRNA.out.unmapped.set { trna_reads } @@ -103,9 +103,9 @@ workflow CONTAMINANT_FILTER { ch_filtered_cdna = SEQKIT_GREP_CDNA.out.filter.map{meta, file -> [file]} // Previous original code: - INDEX_CDNA ( ch_filtered_cdna ) + INDEX_CDNA ( SEQKIT_GREP_CDNA.out.filter ) ch_versions = ch_versions.mix(INDEX_CDNA.out.versions) - MAP_CDNA ( trna_reads, INDEX_CDNA.out.index.first(), Channel.value('cDNA')) + MAP_CDNA ( trna_reads, INDEX_CDNA.out.index.map{meta, it -> return [it]}, Channel.value('cDNA')) ch_versions = ch_versions.mix(MAP_CDNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_CDNA.out.stats.ifEmpty(null)) MAP_CDNA.out.unmapped.set { cdna_reads } @@ -137,9 +137,9 @@ workflow CONTAMINANT_FILTER { ch_filtered_ncrna = SEQKIT_GREP_NCRNA.out.filter.map{meta, file -> [file]} // Previous original code: - INDEX_NCRNA ( ch_filtered_ncrna ) + INDEX_NCRNA ( SEQKIT_GREP_NCRNA.out.filter ) ch_versions = ch_versions.mix(INDEX_NCRNA.out.versions) - MAP_NCRNA ( cdna_reads, INDEX_NCRNA.out.index.first(), Channel.value('ncRNA') ) + MAP_NCRNA ( cdna_reads, INDEX_NCRNA.out.index.map{meta, it -> return [it]}, Channel.value('ncRNA') ) ch_versions = ch_versions.mix(MAP_NCRNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_NCRNA.out.stats.ifEmpty(null)) MAP_NCRNA.out.unmapped.set { ncrna_reads } @@ -171,9 +171,9 @@ workflow CONTAMINANT_FILTER { ch_filtered_pirna = SEQKIT_GREP_PIRNA.out.filter.map{meta, file -> [file]} // Previous original code: - INDEX_PIRNA ( ch_filtered_pirna ) + INDEX_PIRNA ( SEQKIT_GREP_PIRNA.out.filter ) ch_versions = ch_versions.mix(INDEX_PIRNA.out.versions) - MAP_PIRNA ( ncrna_reads, INDEX_PIRNA.out.index.first(), Channel.value('piRNA')) + MAP_PIRNA ( ncrna_reads, INDEX_PIRNA.out.index.map{meta, it -> return [it]}, Channel.value('piRNA')) ch_versions = ch_versions.mix(MAP_PIRNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_PIRNA.out.stats.ifEmpty(null)) MAP_PIRNA.out.unmapped.set { pirna_reads } @@ -205,9 +205,9 @@ workflow CONTAMINANT_FILTER { ch_filtered_other = SEQKIT_GREP_OTHER.out.filter.map{meta, file -> [file]} // Previous original code: - INDEX_OTHER ( ch_filtered_other ) + INDEX_OTHER ( SEQKIT_GREP_OTHER.out.filter ) ch_versions = ch_versions.mix(INDEX_OTHER.out.versions) - MAP_OTHER ( ncrna_reads, INDEX_OTHER.out.index.first(), Channel.value('other')) + MAP_OTHER ( ncrna_reads, INDEX_OTHER.out.index.map{meta, it -> return [it]}, Channel.value('other')) ch_versions = ch_versions.mix(MAP_OTHER.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_OTHER.out.stats.ifEmpty(null)) MAP_OTHER.out.unmapped.set { other_cont_reads } diff --git a/subworkflows/local/mirna_quant.nf b/subworkflows/local/mirna_quant.nf index cbca7956..f4c00e5c 100644 --- a/subworkflows/local/mirna_quant.nf +++ b/subworkflows/local/mirna_quant.nf @@ -8,8 +8,8 @@ include { PARSE_FASTA_MIRNA as PARSE_MATURE include { FORMAT_FASTA_MIRNA as FORMAT_MATURE FORMAT_FASTA_MIRNA as FORMAT_HAIRPIN } from '../../modules/local/format_fasta_mirna' -include { INDEX_MIRNA as INDEX_MATURE - INDEX_MIRNA as INDEX_HAIRPIN } from '../../modules/local/bowtie_mirna' +include { BOWTIE_BUILD as INDEX_MATURE } from '../../modules/nf-core/bowtie/build/main' +include { BOWTIE_BUILD as INDEX_HAIRPIN } from '../../modules/nf-core/bowtie/build/main' include { BOWTIE_MAP_SEQ as BOWTIE_MAP_MATURE BOWTIE_MAP_SEQ as BOWTIE_MAP_HAIRPIN @@ -49,7 +49,7 @@ workflow MIRNA_QUANT { ch_reads_mirna = ch_reads_for_mirna .map { add_suffix(it, "mature") } - BOWTIE_MAP_MATURE ( ch_reads_mirna, ch_mature_bowtie.collect() ) + BOWTIE_MAP_MATURE ( ch_reads_mirna, INDEX_MATURE.out.index.map{meta, it -> return [it]} ) ch_versions = ch_versions.mix(BOWTIE_MAP_MATURE.out.versions) ch_reads_hairpin = BOWTIE_MAP_MATURE.out.unmapped @@ -69,7 +69,7 @@ workflow MIRNA_QUANT { hairpin_bowtie = INDEX_HAIRPIN.out.index ch_versions = ch_versions.mix(INDEX_HAIRPIN.out.versions) - BOWTIE_MAP_HAIRPIN ( ch_reads_hairpin, hairpin_bowtie.collect() ) + BOWTIE_MAP_HAIRPIN ( ch_reads_hairpin, INDEX_HAIRPIN.out.index.map{meta, it -> return [it]} ) ch_versions = ch_versions.mix(BOWTIE_MAP_HAIRPIN.out.versions) BAM_STATS_HAIRPIN ( BOWTIE_MAP_HAIRPIN.out.bam, FORMAT_HAIRPIN.out.formatted_fasta ) @@ -88,7 +88,7 @@ workflow MIRNA_QUANT { ch_reads_collapsed = SEQCLUSTER_COLLAPSE.out.fastq - BOWTIE_MAP_SEQCLUSTER ( ch_reads_collapsed, hairpin_bowtie.collect() ) + BOWTIE_MAP_SEQCLUSTER ( ch_reads_collapsed, INDEX_HAIRPIN.out.index.map{meta, it -> return [it]} ) ch_versions = ch_versions.mix(BOWTIE_MAP_SEQCLUSTER.out.versions) ch_mirtop_logs = Channel.empty() diff --git a/subworkflows/local/prepare_genome/main.nf b/subworkflows/local/prepare_genome/main.nf index 9c1906ea..5a6053b7 100644 --- a/subworkflows/local/prepare_genome/main.nf +++ b/subworkflows/local/prepare_genome/main.nf @@ -3,9 +3,9 @@ // // nf-core modules -include { UNTARFILES as UNTAR_BOWTIE_INDEX } from '../../../modules/nf-core/untarfiles' -// local modules -include { INDEX_GENOME } from '../../../modules/local/bowtie_genome' +include { UNTARFILES as UNTAR_BOWTIE_INDEX } from '../../../modules/nf-core/untarfiles' +include { BOWTIE_BUILD as INDEX_GENOME } from '../../../modules/nf-core/bowtie/build/main' +include { BIOAWK as CLEAN_FASTA } from '../../../modules/nf-core/bioawk/main' workflow PREPARE_GENOME { @@ -60,11 +60,17 @@ workflow PREPARE_GENOME { .filter { it != null } } } else { - INDEX_GENOME ( ch_fasta ) - ch_versions = ch_versions.mix(INDEX_GENOME.out.versions) - ch_bowtie_index = INDEX_GENOME.out.index - // set to reformatted fasta as generated by `bowtie index` - ch_fasta = INDEX_GENOME.out.fasta.map{ it -> [ [id:it.baseName], it ] }.collect() + // Clean fasta (replace non-ATCGs with Ns, remove whitespaces from headers) + CLEAN_FASTA ( ch_fasta ) + ch_versions = ch_versions.mix(CLEAN_FASTA.out.versions) + + // Index FASTA with nf-core Bowtie1 + INDEX_GENOME ( CLEAN_FASTA.out.output ) + ch_versions = ch_versions.mix(INDEX_GENOME.out.versions) + + // Set channels: clean fasta and its index + ch_fasta = CLEAN_FASTA.out.output + ch_bowtie_index = INDEX_GENOME.out.index.map{ meta, it -> [ it ] }.collect() } } From b357dda5373c3b0497d340afbf56f507165a8695 Mon Sep 17 00:00:00 2001 From: atrigila <18577080+atrigila@users.noreply.github.com> Date: Thu, 19 Sep 2024 19:05:52 +0000 Subject: [PATCH 2/5] change to value channels --- subworkflows/local/contaminant_filter/main.nf | 12 ++++++------ subworkflows/local/mirna_quant.nf | 12 +++++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/subworkflows/local/contaminant_filter/main.nf b/subworkflows/local/contaminant_filter/main.nf index 58c51620..31ef812b 100644 --- a/subworkflows/local/contaminant_filter/main.nf +++ b/subworkflows/local/contaminant_filter/main.nf @@ -56,7 +56,7 @@ workflow CONTAMINANT_FILTER { // Index DB and filter $reads emit: $rrna_reads INDEX_RRNA ( ch_rrna.map{it -> return [[id:"rRNA"], it]} ) ch_versions = ch_versions.mix(INDEX_RRNA.out.versions) - MAP_RRNA ( ch_reads_for_mirna, INDEX_RRNA.out.index.map{meta, it -> return [it]}, Channel.value('rRNA') ) + MAP_RRNA ( ch_reads_for_mirna, INDEX_RRNA.out.index.map{meta, it -> return [it]}.first(), Channel.value('rRNA') ) ch_versions = ch_versions.mix(MAP_RRNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_RRNA.out.stats.ifEmpty(null)) MAP_RRNA.out.unmapped.set { rrna_reads } @@ -68,7 +68,7 @@ workflow CONTAMINANT_FILTER { // Index DB and filter $rrna_reads emit: $trna_reads INDEX_TRNA ( ch_trna.map{it -> return [[id:"tRNA"], it]} ) ch_versions = ch_versions.mix(INDEX_TRNA.out.versions) - MAP_TRNA ( rrna_reads, INDEX_TRNA.out.index.map{meta, it -> return [it]}, Channel.value("tRNA") ) + MAP_TRNA ( rrna_reads, INDEX_TRNA.out.index.map{meta, it -> return [it]}.first(), Channel.value("tRNA") ) ch_versions = ch_versions.mix(MAP_TRNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_TRNA.out.stats.ifEmpty(null)) MAP_TRNA.out.unmapped.set { trna_reads } @@ -105,7 +105,7 @@ workflow CONTAMINANT_FILTER { // Previous original code: INDEX_CDNA ( SEQKIT_GREP_CDNA.out.filter ) ch_versions = ch_versions.mix(INDEX_CDNA.out.versions) - MAP_CDNA ( trna_reads, INDEX_CDNA.out.index.map{meta, it -> return [it]}, Channel.value('cDNA')) + MAP_CDNA ( trna_reads, INDEX_CDNA.out.index.map{meta, it -> return [it]}.first(), Channel.value('cDNA')) ch_versions = ch_versions.mix(MAP_CDNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_CDNA.out.stats.ifEmpty(null)) MAP_CDNA.out.unmapped.set { cdna_reads } @@ -139,7 +139,7 @@ workflow CONTAMINANT_FILTER { // Previous original code: INDEX_NCRNA ( SEQKIT_GREP_NCRNA.out.filter ) ch_versions = ch_versions.mix(INDEX_NCRNA.out.versions) - MAP_NCRNA ( cdna_reads, INDEX_NCRNA.out.index.map{meta, it -> return [it]}, Channel.value('ncRNA') ) + MAP_NCRNA ( cdna_reads, INDEX_NCRNA.out.index.map{meta, it -> return [it]}.first(), Channel.value('ncRNA') ) ch_versions = ch_versions.mix(MAP_NCRNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_NCRNA.out.stats.ifEmpty(null)) MAP_NCRNA.out.unmapped.set { ncrna_reads } @@ -173,7 +173,7 @@ workflow CONTAMINANT_FILTER { // Previous original code: INDEX_PIRNA ( SEQKIT_GREP_PIRNA.out.filter ) ch_versions = ch_versions.mix(INDEX_PIRNA.out.versions) - MAP_PIRNA ( ncrna_reads, INDEX_PIRNA.out.index.map{meta, it -> return [it]}, Channel.value('piRNA')) + MAP_PIRNA ( ncrna_reads, INDEX_PIRNA.out.index.map{meta, it -> return [it]}.first(), Channel.value('piRNA')) ch_versions = ch_versions.mix(MAP_PIRNA.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_PIRNA.out.stats.ifEmpty(null)) MAP_PIRNA.out.unmapped.set { pirna_reads } @@ -207,7 +207,7 @@ workflow CONTAMINANT_FILTER { // Previous original code: INDEX_OTHER ( SEQKIT_GREP_OTHER.out.filter ) ch_versions = ch_versions.mix(INDEX_OTHER.out.versions) - MAP_OTHER ( ncrna_reads, INDEX_OTHER.out.index.map{meta, it -> return [it]}, Channel.value('other')) + MAP_OTHER ( ncrna_reads, INDEX_OTHER.out.index.map{meta, it -> return [it]}.first(), Channel.value('other')) ch_versions = ch_versions.mix(MAP_OTHER.out.versions) ch_filter_stats = ch_filter_stats.mix(MAP_OTHER.out.stats.ifEmpty(null)) MAP_OTHER.out.unmapped.set { other_cont_reads } diff --git a/subworkflows/local/mirna_quant.nf b/subworkflows/local/mirna_quant.nf index f4c00e5c..b9f6a542 100644 --- a/subworkflows/local/mirna_quant.nf +++ b/subworkflows/local/mirna_quant.nf @@ -43,13 +43,13 @@ workflow MIRNA_QUANT { ch_versions = ch_versions.mix(FORMAT_MATURE.out.versions) INDEX_MATURE ( FORMAT_MATURE.out.formatted_fasta ) - ch_mature_bowtie = INDEX_MATURE.out.index + ch_mature_bowtie = INDEX_MATURE.out.index.map{meta, it -> return [it]}.collect().first() ch_versions = ch_versions.mix(INDEX_MATURE.out.versions) ch_reads_mirna = ch_reads_for_mirna .map { add_suffix(it, "mature") } - BOWTIE_MAP_MATURE ( ch_reads_mirna, INDEX_MATURE.out.index.map{meta, it -> return [it]} ) + BOWTIE_MAP_MATURE ( ch_reads_mirna, ch_mature_bowtie ) ch_versions = ch_versions.mix(BOWTIE_MAP_MATURE.out.versions) ch_reads_hairpin = BOWTIE_MAP_MATURE.out.unmapped @@ -57,6 +57,8 @@ workflow MIRNA_QUANT { BAM_STATS_MATURE ( BOWTIE_MAP_MATURE.out.bam, FORMAT_MATURE.out.formatted_fasta ) ch_versions = ch_versions.mix(BAM_STATS_MATURE.out.versions) + BAM_STATS_MATURE.out.stats.dump(tag:"BAM_STATS_MATURE") + PARSE_HAIRPIN ( ch_reference_hairpin, ch_parse_species_input ) ch_hairpin_parsed = PARSE_HAIRPIN.out.parsed_fasta @@ -66,10 +68,10 @@ workflow MIRNA_QUANT { ch_versions = ch_versions.mix(FORMAT_HAIRPIN.out.versions) INDEX_HAIRPIN ( FORMAT_HAIRPIN.out.formatted_fasta ) - hairpin_bowtie = INDEX_HAIRPIN.out.index + hairpin_bowtie = INDEX_HAIRPIN.out.index.map{meta, it -> return [it]}.collect().first() ch_versions = ch_versions.mix(INDEX_HAIRPIN.out.versions) - BOWTIE_MAP_HAIRPIN ( ch_reads_hairpin, INDEX_HAIRPIN.out.index.map{meta, it -> return [it]} ) + BOWTIE_MAP_HAIRPIN ( ch_reads_hairpin, hairpin_bowtie ) ch_versions = ch_versions.mix(BOWTIE_MAP_HAIRPIN.out.versions) BAM_STATS_HAIRPIN ( BOWTIE_MAP_HAIRPIN.out.bam, FORMAT_HAIRPIN.out.formatted_fasta ) @@ -88,7 +90,7 @@ workflow MIRNA_QUANT { ch_reads_collapsed = SEQCLUSTER_COLLAPSE.out.fastq - BOWTIE_MAP_SEQCLUSTER ( ch_reads_collapsed, INDEX_HAIRPIN.out.index.map{meta, it -> return [it]} ) + BOWTIE_MAP_SEQCLUSTER ( ch_reads_collapsed, hairpin_bowtie ) ch_versions = ch_versions.mix(BOWTIE_MAP_SEQCLUSTER.out.versions) ch_mirtop_logs = Channel.empty() From 18c8e041f555383e98dba188593462a27fad3417 Mon Sep 17 00:00:00 2001 From: atrigila <18577080+atrigila@users.noreply.github.com> Date: Thu, 19 Sep 2024 20:17:31 +0000 Subject: [PATCH 3/5] update tests --- tests/test_contamination_tech_reps.nf.test.snap | 6 +++--- tests/test_mirgenedb.nf.test | 2 +- tests/test_mirgenedb.nf.test.snap | 16 ++++++++-------- tests/test_nextflex.nf.test.snap | 6 +++--- tests/test_skipfastp.nf.test.snap | 6 +++--- tests/test_umi.nf.test.snap | 6 +++--- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/tests/test_contamination_tech_reps.nf.test.snap b/tests/test_contamination_tech_reps.nf.test.snap index 044b7928..5ab7bf35 100644 --- a/tests/test_contamination_tech_reps.nf.test.snap +++ b/tests/test_contamination_tech_reps.nf.test.snap @@ -34,13 +34,13 @@ }, "software_versions": { "content": [ - "{BLAT_CDNA={blat=36}, BLAT_NCRNA={blat=36}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, CAT_FASTQ={cat=8.3}, FASTP={fastp=0.23.4}, FILTER_STATS={BusyBox=1.32.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, GAWK_CDNA={gawk=5.3.0}, GAWK_NCRNA={gawk=5.3.0}, INDEX_CDNA={bowtie2=2.4.5}, INDEX_HAIRPIN={bowtie=1.3.1}, INDEX_MATURE={bowtie=1.3.1}, INDEX_NCRNA={bowtie2=2.4.5}, INDEX_TRNA={bowtie2=2.4.5}, MAP_CDNA={bowtie2=2.4.5}, MAP_NCRNA={bowtie2=2.4.5}, MAP_TRNA={bowtie2=2.4.5}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, SEQKIT_GREP_CDNA={seqkit=2.8.0}, SEQKIT_GREP_NCRNA={seqkit=2.8.0}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BLAT_CDNA={blat=36}, BLAT_NCRNA={blat=36}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, CAT_FASTQ={cat=8.3}, FASTP={fastp=0.23.4}, FILTER_STATS={BusyBox=1.32.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, GAWK_CDNA={gawk=5.3.0}, GAWK_NCRNA={gawk=5.3.0}, INDEX_CDNA={bowtie2=2.5.2}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, INDEX_NCRNA={bowtie2=2.5.2}, INDEX_TRNA={bowtie2=2.5.2}, MAP_CDNA={bowtie2=2.4.5}, MAP_NCRNA={bowtie2=2.4.5}, MAP_TRNA={bowtie2=2.4.5}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, SEQKIT_GREP_CDNA={seqkit=2.8.0}, SEQKIT_GREP_NCRNA={seqkit=2.8.0}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-13T22:46:41.301985198" + "timestamp": "2024-09-19T19:02:52.291291541" }, "mirna_quant_bam": { "content": [ diff --git a/tests/test_mirgenedb.nf.test b/tests/test_mirgenedb.nf.test index 5c74ab2e..93bf9ae8 100644 --- a/tests/test_mirgenedb.nf.test +++ b/tests/test_mirgenedb.nf.test @@ -19,7 +19,7 @@ nextflow_pipeline { assertAll( { assert workflow.success }, { assert snapshot(UTILS.removeNextflowVersion("$outputDir")).match("software_versions") }, - { assert workflow.trace.succeeded().size() == 78 }, + { assert workflow.trace.succeeded().size() == 79 }, { assert snapshot( path("$outputDir/mirna_quant/bam/mature/Clone1_N1_mature.sorted.flagstat").exists(), diff --git a/tests/test_mirgenedb.nf.test.snap b/tests/test_mirgenedb.nf.test.snap index a83d2320..76eb65d3 100644 --- a/tests/test_mirgenedb.nf.test.snap +++ b/tests/test_mirgenedb.nf.test.snap @@ -1,10 +1,10 @@ { "genome_quant_bam": { "content": [ - "Clone9_N1_mature_hairpin_genome.sorted.stats:md5,26c8e55e56641f2d4387a37b099ff0c2", + "Clone9_N1_mature_hairpin_genome.sorted.stats:md5,921509048d1cb44420cf8c6e6c8d0b49", "Clone9_N1_mature_hairpin_genome.sorted.idxstats:md5,aa37c5da7c2b4505ce58c3a21f97121c", - "Clone1_N1_mature_hairpin_genome.sorted.stats:md5,03d3f6227829c80c0e29cb49df9b6a27", - "Control_N1_mature_hairpin_genome.sorted.stats:md5,6a53b78cc7e4ca2338c76095af080151", + "Clone1_N1_mature_hairpin_genome.sorted.stats:md5,2ee0052e61923ba4250901319dce2bb3", + "Control_N1_mature_hairpin_genome.sorted.stats:md5,1dd143f511b43a4972e1533766c6e15c", "Clone1_N1_mature_hairpin_genome.sorted.flagstat:md5,5bb521c495f1c450835299b1eb88dc84", "Clone9_N1_mature_hairpin_genome.sorted.flagstat:md5,6a8ad3be2ca0fa924fd32a04293d4ce4", "Clone1_N1_mature_hairpin_genome.sorted.idxstats:md5,d92f9eae7657418858e6d2b69436f74f", @@ -13,19 +13,19 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "23.10.0" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-30T20:30:51.089034552" + "timestamp": "2024-09-19T18:24:33.315499208" }, "software_versions": { "content": [ - "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.1}, INDEX_MATURE={bowtie=1.3.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-10T13:46:22.882190844" + "timestamp": "2024-09-19T18:24:33.252062081" }, "mirna_quant_bam": { "content": [ diff --git a/tests/test_nextflex.nf.test.snap b/tests/test_nextflex.nf.test.snap index 52417e6b..ffcf868d 100644 --- a/tests/test_nextflex.nf.test.snap +++ b/tests/test_nextflex.nf.test.snap @@ -34,13 +34,13 @@ }, "software_versions": { "content": [ - "{BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.1}, INDEX_MATURE={bowtie=1.3.1}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-13T22:28:10.896353531" + "timestamp": "2024-09-19T19:56:32.088274453" }, "mirna_quant_bam": { "content": [ diff --git a/tests/test_skipfastp.nf.test.snap b/tests/test_skipfastp.nf.test.snap index 23cee2db..ee4d4680 100644 --- a/tests/test_skipfastp.nf.test.snap +++ b/tests/test_skipfastp.nf.test.snap @@ -41,13 +41,13 @@ }, "software_versions": { "content": [ - "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTQC_RAW={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.1}, INDEX_MATURE={bowtie=1.3.1}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTQC_RAW={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-13T22:24:37.39903141" + "timestamp": "2024-09-19T20:03:31.119734675" }, "mirna_quant_bam": { "content": [ diff --git a/tests/test_umi.nf.test.snap b/tests/test_umi.nf.test.snap index eba77428..f9cd3584 100644 --- a/tests/test_umi.nf.test.snap +++ b/tests/test_umi.nf.test.snap @@ -41,13 +41,13 @@ }, "software_versions": { "content": [ - "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTP_LENGTH_FILTER={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.1}, INDEX_MATURE={bowtie=1.3.1}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, UMICOLLAPSE_FASTQ={umicollapse=1.0.0-1}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTP_LENGTH_FILTER={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, UMICOLLAPSE_FASTQ={umicollapse=1.0.0-1}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { - "nf-test": "0.8.4", + "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-13T22:21:28.19095018" + "timestamp": "2024-09-19T20:12:37.506078835" }, "mirna_quant_bam": { "content": [ From 7fd24dcc90fe8d61c893281f5dc0296bb5506660 Mon Sep 17 00:00:00 2001 From: atrigila <18577080+atrigila@users.noreply.github.com> Date: Thu, 19 Sep 2024 20:23:16 +0000 Subject: [PATCH 4/5] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 64ca3a6d..c42c96f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [[#430]](https://github.com/nf-core/smrnaseq/pull/430) - Emit a [warning if paired-end end data is used](https://github.com/nf-core/smrnaseq/issues/423) - pipeline handles SE data - [[#427]](https://github.com/nf-core/smrnaseq/pull/427) - Add [nf-core pigz uncompress](https://github.com/nf-core/smrnaseq/issues/422) - replace local `mirdeep_pigz` - [[#429]](https://github.com/nf-core/smrnaseq/pull/429) - Make [saving of intermediate files optional](https://github.com/nf-core/smrnaseq/issues/424) - Allows user to choose whether to save intermediate files or not. Replaces several params that referred to the same such as `params.save_aligned` and `params.save_aligned_mirna_quant`. +- [[#433]](https://github.com/nf-core/smrnaseq/pull/433) - Replace local instances of bowtie for nf-core [`bowtie2`](https://github.com/nf-core/smrnaseq/issues/434) and [`bowtie1`](https://github.com/nf-core/smrnaseq/issues/433) - Additionally adds a `bioawk` module that cleans fasta files. ## v2.3.1 - 2024-04-18 - Gray Zinc Dalmation Patch From 13930eaedc3d42ef027b03d51456272010996c56 Mon Sep 17 00:00:00 2001 From: atrigila <18577080+atrigila@users.noreply.github.com> Date: Fri, 20 Sep 2024 13:54:11 +0000 Subject: [PATCH 5/5] update tests --- tests/test_contamination_tech_reps.nf.test.snap | 4 ++-- tests/test_mirgenedb.nf.test.snap | 12 ++++++------ tests/test_nextflex.nf.test.snap | 4 ++-- tests/test_skipfastp.nf.test.snap | 4 ++-- tests/test_umi.nf.test.snap | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/test_contamination_tech_reps.nf.test.snap b/tests/test_contamination_tech_reps.nf.test.snap index 5ab7bf35..84b93867 100644 --- a/tests/test_contamination_tech_reps.nf.test.snap +++ b/tests/test_contamination_tech_reps.nf.test.snap @@ -34,13 +34,13 @@ }, "software_versions": { "content": [ - "{BLAT_CDNA={blat=36}, BLAT_NCRNA={blat=36}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, CAT_FASTQ={cat=8.3}, FASTP={fastp=0.23.4}, FILTER_STATS={BusyBox=1.32.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, GAWK_CDNA={gawk=5.3.0}, GAWK_NCRNA={gawk=5.3.0}, INDEX_CDNA={bowtie2=2.5.2}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, INDEX_NCRNA={bowtie2=2.5.2}, INDEX_TRNA={bowtie2=2.5.2}, MAP_CDNA={bowtie2=2.4.5}, MAP_NCRNA={bowtie2=2.4.5}, MAP_TRNA={bowtie2=2.4.5}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, SEQKIT_GREP_CDNA={seqkit=2.8.0}, SEQKIT_GREP_NCRNA={seqkit=2.8.0}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BLAT_CDNA={blat=36}, BLAT_NCRNA={blat=36}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, CAT_FASTQ={cat=8.3}, FASTP={fastp=0.23.4}, FILTER_STATS={BusyBox=1.32.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, GAWK_CDNA={gawk=5.3.0}, GAWK_NCRNA={gawk=5.3.0}, INDEX_CDNA={bowtie2=2.5.2}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, INDEX_NCRNA={bowtie2=2.5.2}, INDEX_TRNA={bowtie2=2.5.2}, MAP_CDNA={bowtie2=2.4.5}, MAP_NCRNA={bowtie2=2.4.5}, MAP_TRNA={bowtie2=2.4.5}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.1}, SAMTOOLS_FLAGSTAT={samtools=1.21}, SAMTOOLS_IDXSTATS={samtools=1.21}, SAMTOOLS_INDEX={samtools=1.21}, SAMTOOLS_SORT={samtools=1.21}, SAMTOOLS_STATS={samtools=1.21}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, SEQKIT_GREP_CDNA={seqkit=2.8.0}, SEQKIT_GREP_NCRNA={seqkit=2.8.0}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-19T19:02:52.291291541" + "timestamp": "2024-09-20T13:27:35.553235807" }, "mirna_quant_bam": { "content": [ diff --git a/tests/test_mirgenedb.nf.test.snap b/tests/test_mirgenedb.nf.test.snap index 1a073de6..b8ea7f91 100644 --- a/tests/test_mirgenedb.nf.test.snap +++ b/tests/test_mirgenedb.nf.test.snap @@ -1,10 +1,10 @@ { "genome_quant_bam": { "content": [ - "Clone9_N1_mature_hairpin_genome.sorted.stats:md5,921509048d1cb44420cf8c6e6c8d0b49", + "Clone9_N1_mature_hairpin_genome.sorted.stats:md5,201486e8c88b0dbb639776f9dacefe66", "Clone9_N1_mature_hairpin_genome.sorted.idxstats:md5,aa37c5da7c2b4505ce58c3a21f97121c", - "Clone1_N1_mature_hairpin_genome.sorted.stats:md5,2ee0052e61923ba4250901319dce2bb3", - "Control_N1_mature_hairpin_genome.sorted.stats:md5,1dd143f511b43a4972e1533766c6e15c", + "Clone1_N1_mature_hairpin_genome.sorted.stats:md5,5679af445f4628e0f4137f339319c950", + "Control_N1_mature_hairpin_genome.sorted.stats:md5,4da4f877f06083f616a0d76edd04ea22", "Clone1_N1_mature_hairpin_genome.sorted.flagstat:md5,5bb521c495f1c450835299b1eb88dc84", "Clone9_N1_mature_hairpin_genome.sorted.flagstat:md5,6a8ad3be2ca0fa924fd32a04293d4ce4", "Clone1_N1_mature_hairpin_genome.sorted.idxstats:md5,d92f9eae7657418858e6d2b69436f74f", @@ -15,17 +15,17 @@ "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-19T18:24:33.315499208" + "timestamp": "2024-09-20T13:36:32.067039888" }, "software_versions": { "content": [ - "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.1}, SAMTOOLS_FLAGSTAT={samtools=1.21}, SAMTOOLS_IDXSTATS={samtools=1.21}, SAMTOOLS_INDEX={samtools=1.21}, SAMTOOLS_SORT={samtools=1.21}, SAMTOOLS_STATS={samtools=1.21}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-19T18:24:33.252062081" + "timestamp": "2024-09-20T13:36:31.98986503" }, "mirna_quant_bam": { "content": [ diff --git a/tests/test_nextflex.nf.test.snap b/tests/test_nextflex.nf.test.snap index 63e7a361..7148520f 100644 --- a/tests/test_nextflex.nf.test.snap +++ b/tests/test_nextflex.nf.test.snap @@ -34,13 +34,13 @@ }, "software_versions": { "content": [ - "{BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.1}, SAMTOOLS_FLAGSTAT={samtools=1.21}, SAMTOOLS_IDXSTATS={samtools=1.21}, SAMTOOLS_INDEX={samtools=1.21}, SAMTOOLS_SORT={samtools=1.21}, SAMTOOLS_STATS={samtools=1.21}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-19T19:56:32.088274453" + "timestamp": "2024-09-20T13:40:20.532779636" }, "mirna_quant_bam": { "content": [ diff --git a/tests/test_skipfastp.nf.test.snap b/tests/test_skipfastp.nf.test.snap index 1cae9547..098f0e35 100644 --- a/tests/test_skipfastp.nf.test.snap +++ b/tests/test_skipfastp.nf.test.snap @@ -41,13 +41,13 @@ }, "software_versions": { "content": [ - "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTQC_RAW={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTQC_RAW={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.1}, SAMTOOLS_FLAGSTAT={samtools=1.21}, SAMTOOLS_IDXSTATS={samtools=1.21}, SAMTOOLS_INDEX={samtools=1.21}, SAMTOOLS_SORT={samtools=1.21}, SAMTOOLS_STATS={samtools=1.21}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-19T20:03:31.119734675" + "timestamp": "2024-09-20T13:44:34.328354483" }, "mirna_quant_bam": { "content": [ diff --git a/tests/test_umi.nf.test.snap b/tests/test_umi.nf.test.snap index b039be6e..2188d7b6 100644 --- a/tests/test_umi.nf.test.snap +++ b/tests/test_umi.nf.test.snap @@ -41,13 +41,13 @@ }, "software_versions": { "content": [ - "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTP_LENGTH_FILTER={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.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}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, UMICOLLAPSE_FASTQ={umicollapse=1.0.0-1}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" + "{BOWTIE_MAP_GENOME={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_HAIRPIN={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_MATURE={bowtie=1.3.1, samtools=1.14}, BOWTIE_MAP_SEQCLUSTER={bowtie=1.3.1, samtools=1.14}, FASTP={fastp=0.23.4}, FASTP_LENGTH_FILTER={fastp=0.23.4}, FASTQC_RAW={fastqc=0.12.1}, FASTQC_TRIM={fastqc=0.12.1}, FORMAT_HAIRPIN={fastx_toolkit=0.0.14}, FORMAT_MATURE={fastx_toolkit=0.0.14}, INDEX_HAIRPIN={bowtie=1.3.0}, INDEX_MATURE={bowtie=1.3.0}, MIRTOP_COUNTS={mirtop=0.4.25}, MIRTOP_EXPORT={mirtop=0.4.25}, MIRTOP_GFF={mirtop=0.4.25}, MIRTOP_STATS={mirtop=0.4.25}, MIRTRACE_QC={mirtrace=1.0.1}, PARSE_HAIRPIN={seqkit=2.6.1}, PARSE_MATURE={seqkit=2.6.1}, SAMTOOLS_FLAGSTAT={samtools=1.21}, SAMTOOLS_IDXSTATS={samtools=1.21}, SAMTOOLS_INDEX={samtools=1.21}, SAMTOOLS_SORT={samtools=1.21}, SAMTOOLS_STATS={samtools=1.21}, SEQCLUSTER_COLLAPSE={seqcluster=1.2.9}, TABLE_MERGE={r-base=3.6.2}, UMICOLLAPSE_FASTQ={umicollapse=1.0.0-1}, Workflow={nf-core/smrnaseq=v2.3.2dev}}" ], "meta": { "nf-test": "0.9.0", "nextflow": "24.04.4" }, - "timestamp": "2024-09-19T20:12:37.506078835" + "timestamp": "2024-09-20T13:50:10.366114108" }, "mirna_quant_bam": { "content": [