From cdcbf006db6322151ade69e05b4be3a4518379bd Mon Sep 17 00:00:00 2001 From: zxBIB Schcolnicov Date: Wed, 28 Aug 2024 20:48:19 +0200 Subject: [PATCH 1/9] Updated modules and subworkflows --- CHANGELOG.md | 4 + modules.json | 94 ++++++++++---- modules/nf-core/bcl2fastq/tests/main.nf.test | 4 +- modules/nf-core/fastqc/main.nf | 5 +- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 8 +- modules/nf-core/multiqc/tests/main.nf.test | 2 + .../nf-core/multiqc/tests/main.nf.test.snap | 8 +- modules/nf-core/multiqc/tests/nextflow.config | 5 + subworkflows/nf-core/bcl_demultiplex/main.nf | 116 +++++++++--------- .../nf-core/utils_nextflow_pipeline/main.nf | 24 ++-- .../tests/nextflow.config | 2 +- .../nf-core/utils_nfcore_pipeline/main.nf | 45 ++++--- 13 files changed, 187 insertions(+), 132 deletions(-) create mode 100644 modules/nf-core/multiqc/tests/nextflow.config diff --git a/CHANGELOG.md b/CHANGELOG.md index 09d6d600..653b5572 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## 1.5.2dev (UNRELEASED) +### `Changed` + +- [#253](https://github.com/nf-core/demultiplex/pull/256) Updated all modules and subworkflows, and added new bclconvert test profile. + ## 1.5.1 ### `Fixed` diff --git a/modules.json b/modules.json index 8138d097..f8c271ed 100644 --- a/modules.json +++ b/modules.json @@ -8,77 +8,107 @@ "bases2fastq": { "branch": "master", "git_sha": "c651992bf8425fecefe14085ff486f42172cba77", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "bcl2fastq": { "branch": "master", - "git_sha": "22261833fced91665b986c6833e91a4a5cccb0a9", - "installed_by": ["bcl_demultiplex"] + "git_sha": "90b63cde0f838ca4da3a88a37a5309888cae97b9", + "installed_by": [ + "bcl_demultiplex" + ] }, "bclconvert": { "branch": "master", "git_sha": "22261833fced91665b986c6833e91a4a5cccb0a9", - "installed_by": ["bcl_demultiplex"] + "installed_by": [ + "bcl_demultiplex" + ] }, "cellranger/mkfastq": { "branch": "master", "git_sha": "61123e49c6034920eb6f312ad71e4815a7853257", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "checkqc": { "branch": "master", "git_sha": "337bc962d03c2e08a728c9bf731a2148e323e731", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "falco": { "branch": "master", "git_sha": "a236d2c2ec9e68db9b8501105d804acb359552b5", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "fastp": { "branch": "master", "git_sha": "1ceaa8ba4d0fd886dbca0e545815d905b7407de7", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "fastqc": { "branch": "master", - "git_sha": "46eca555142d6e597729fcb682adcc791796f514", - "installed_by": ["modules"] + "git_sha": "b49b8992e5271ce427f3a7cdb29628fc58400eb5", + "installed_by": [ + "modules" + ] }, "fqtk": { "branch": "master", "git_sha": "c60c14b285b89bdd0607e371417dadb80385ad6e", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "kraken2/kraken2": { "branch": "master", "git_sha": "a13d5d945742a60bbef6e5c177e81cda540f75dc", - "installed_by": ["fastq_contam_seqtk_kraken"] + "installed_by": [ + "fastq_contam_seqtk_kraken" + ] }, "md5sum": { "branch": "master", "git_sha": "1164836d4d3922ab937865b17086485f0f472748", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "multiqc": { "branch": "master", - "git_sha": "b80f5fd12ff7c43938f424dd76392a2704fa2396", - "installed_by": ["modules"] + "git_sha": "19ca321db5d8bd48923262c2eca6422359633491", + "installed_by": [ + "modules" + ] }, "seqtk/sample": { "branch": "master", "git_sha": "730f3aee80d5f8d0b5fc532202ac59361414d006", - "installed_by": ["fastq_contam_seqtk_kraken"] + "installed_by": [ + "fastq_contam_seqtk_kraken" + ] }, "sgdemux": { "branch": "master", "git_sha": "574074e6ea2497b53df1f226473a8c71524af0d0", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "untar": { "branch": "master", "git_sha": "4e5f4687318f24ba944a13609d3ea6ebd890737d", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] } } }, @@ -86,31 +116,41 @@ "nf-core": { "bcl_demultiplex": { "branch": "master", - "git_sha": "22261833fced91665b986c6833e91a4a5cccb0a9", - "installed_by": ["subworkflows"] + "git_sha": "a6e6bec1b1da613b89a6c0a3a46713f880cf5aca", + "installed_by": [ + "subworkflows" + ] }, "fastq_contam_seqtk_kraken": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "utils_nextflow_pipeline": { "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["subworkflows"] + "git_sha": "d20fb2a9cc3e2835e9d067d1046a63252eb17352", + "installed_by": [ + "subworkflows" + ] }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", - "installed_by": ["subworkflows"] + "git_sha": "2fdce49d30c0254f76bc0f13c55c17455c1251ab", + "installed_by": [ + "subworkflows" + ] }, "utils_nfvalidation_plugin": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] } } } } } -} +} \ No newline at end of file diff --git a/modules/nf-core/bcl2fastq/tests/main.nf.test b/modules/nf-core/bcl2fastq/tests/main.nf.test index ca03b972..d0e0b9a5 100644 --- a/modules/nf-core/bcl2fastq/tests/main.nf.test +++ b/modules/nf-core/bcl2fastq/tests/main.nf.test @@ -15,8 +15,8 @@ nextflow_process { """ input[0] = [ [ id: 'test', lane:1 ], - file(params.test_data['homo_sapiens']['illumina']['test_flowcell_samplesheet'], checkIfExists: true), - file(params.test_data['homo_sapiens']['illumina']['test_flowcell'], checkIfExists: true) + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bcl/flowcell_samplesheet.csv', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bcl/flowcell.tar.gz', checkIfExists: true) ] """ } diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index d79f1c86..d8989f48 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -26,7 +26,10 @@ process FASTQC { def rename_to = old_new_pairs*.join(' ').join(' ') def renamed_files = old_new_pairs.collect{ old_name, new_name -> new_name }.join(' ') - def memory_in_mb = MemoryUnit.of("${task.memory}").toUnit('MB') + // The total amount of allocated RAM by FastQC is equal to the number of threads defined (--threads) time the amount of RAM defined (--memory) + // https://github.com/s-andrews/FastQC/blob/1faeea0412093224d7f6a07f777fad60a5650795/fastqc#L211-L222 + // Dividing the task.memory by task.cpu allows to stick to requested amount of RAM in the label + def memory_in_mb = MemoryUnit.of("${task.memory}").toUnit('MB') / task.cpus // FastQC memory value allowed range (100 - 10000) def fastqc_memory = memory_in_mb > 10000 ? 10000 : (memory_in_mb < 100 ? 100 : memory_in_mb) diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index 2121492d..a31464c9 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.23 + - bioconda::multiqc=1.24.1 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index 459dfea5..ceaec139 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.23--pyhdfd78af_0' : - 'biocontainers/multiqc:1.23--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.24.1--pyhdfd78af_0' : + 'biocontainers/multiqc:1.24.1--pyhdfd78af_0' }" input: path multiqc_files, stageAs: "?/*" @@ -25,9 +25,10 @@ process MULTIQC { script: def args = task.ext.args ?: '' + def prefix = task.ext.prefix ? "--filename ${task.ext.prefix}.html" : '' def config = multiqc_config ? "--config $multiqc_config" : '' def extra_config = extra_multiqc_config ? "--config $extra_multiqc_config" : '' - def logo = multiqc_logo ? /--cl-config 'custom_logo: "${multiqc_logo}"'/ : '' + def logo = multiqc_logo ? "--cl-config 'custom_logo: \"${multiqc_logo}\"'" : '' def replace = replace_names ? "--replace-names ${replace_names}" : '' def samples = sample_names ? "--sample-names ${sample_names}" : '' """ @@ -35,6 +36,7 @@ process MULTIQC { --force \\ $args \\ $config \\ + $prefix \\ $extra_config \\ $logo \\ $replace \\ diff --git a/modules/nf-core/multiqc/tests/main.nf.test b/modules/nf-core/multiqc/tests/main.nf.test index 6aa27f4c..33316a7d 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test +++ b/modules/nf-core/multiqc/tests/main.nf.test @@ -8,6 +8,8 @@ nextflow_process { tag "modules_nfcore" tag "multiqc" + config "./nextflow.config" + test("sarscov2 single-end [fastqc]") { when { diff --git a/modules/nf-core/multiqc/tests/main.nf.test.snap b/modules/nf-core/multiqc/tests/main.nf.test.snap index 45e95e5d..83fa080c 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,7 +2,7 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,87904cd321df21fac35d18f0fc01bb19" + "versions.yml:md5,6eb13f3b11bbcbfc98ad3166420ff760" ] ], "meta": { @@ -17,7 +17,7 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,87904cd321df21fac35d18f0fc01bb19" + "versions.yml:md5,6eb13f3b11bbcbfc98ad3166420ff760" ] ], "meta": { @@ -29,7 +29,7 @@ "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,87904cd321df21fac35d18f0fc01bb19" + "versions.yml:md5,6eb13f3b11bbcbfc98ad3166420ff760" ] ], "meta": { @@ -38,4 +38,4 @@ }, "timestamp": "2024-07-10T11:26:56.709849369" } -} \ No newline at end of file +} diff --git a/modules/nf-core/multiqc/tests/nextflow.config b/modules/nf-core/multiqc/tests/nextflow.config new file mode 100644 index 00000000..c537a6a3 --- /dev/null +++ b/modules/nf-core/multiqc/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: 'MULTIQC' { + ext.prefix = null + } +} diff --git a/subworkflows/nf-core/bcl_demultiplex/main.nf b/subworkflows/nf-core/bcl_demultiplex/main.nf index 3816f310..129b2f1b 100644 --- a/subworkflows/nf-core/bcl_demultiplex/main.nf +++ b/subworkflows/nf-core/bcl_demultiplex/main.nf @@ -64,65 +64,67 @@ workflow BCL_DEMULTIPLEX { } // Generate meta for each fastq - ch_fastq_with_meta = ch_fastq - // reshapes the channel from a single emit of [meta, [fastq, fastq, fastq...]] - // to emits per fastq file like [meta, fastq] - .transpose() - .map { fc_meta, fastq -> - def meta = [:] - meta.id = fastq.getSimpleName().toString() - ~/_R[0-9]_001.*$/ - meta.samplename = fastq.getSimpleName().toString() - ~/_S[0-9]+.*$/ - meta.fcid = fc_meta.id - meta.lane = fc_meta.lane - // The buffered input stream allows reading directly from cloud storage - // It will not make a local copy of the file. - fastq.withInputStream { - InputStream gzipStream = new java.util.zip.GZIPInputStream(it) - Reader decoder = new InputStreamReader(gzipStream, 'ASCII') - BufferedReader buffered = new BufferedReader(decoder) - line = buffered.readLine() - buffered.close() - } - if ( line != null && line.startsWith('@') ) { - line = line.substring(1) - // expected format is like: - // xx:yy:FLOWCELLID:LANE:... (seven fields) - fields = line.split(':') - // CASAVA 1.8+ format, from https://support.illumina.com/help/BaseSpace_OLH_009008/Content/Source/Informatics/BS/FileFormat_FASTQ-files_swBS.htm - // "@::::::: :::" - sequencer_serial = fields[0] - run_nubmer = fields[1] - fcid = fields[2] - lane = fields[3] - index = fields[-1] =~ /[GATC+-]/ ? fields[-1] : "" - ID = [fcid, lane].join(".") - PU = [fcid, lane, index].findAll().join(".") - PL = "ILLUMINA" - SM = fastq.getSimpleName().toString() - ~/_S[0-9]+.*$/ - meta.readgroup = [ - "ID": ID, - "SM": SM, - "PL": PL, - "PU": PU - ] - meta.empty = false - } else { - println "No reads were found in FASTQ file: ${fastq}" - meta.readgroup = [:] - meta.empty = true - } - return [meta, fastq] + ch_fastq + // reshapes the channel from a single emit of [meta, [fastq, fastq, fastq...]] + // to emits per fastq file like [meta, fastq] + .transpose() + .map { fc_meta, fastq -> + def meta = [:] + meta.id = fastq.getSimpleName().toString() - ~/_R[0-9]_001.*$/ + meta.samplename = fastq.getSimpleName().toString() - ~/_S[0-9]+.*$/ + meta.fcid = fc_meta.id + meta.lane = fc_meta.lane + // The buffered input stream allows reading directly from cloud storage + // It will not make a local copy of the file. + def line = "" + fastq.withInputStream { fq -> + def gzipStream = new java.util.zip.GZIPInputStream(fq) + def decoder = new InputStreamReader(gzipStream, 'ASCII') + def buffered = new BufferedReader(decoder) + line = buffered.readLine() + buffered.close() } - // Group by the meta id so that we can find mate pairs if they exist - .groupTuple(by: [0]) - .map { meta, fastq -> - meta.single_end = fastq.size() == 1 - return [meta, fastq.flatten()] - } - .branch { - fastq : it[0].empty == false - empty_fastq : it[0].empty == true + if ( line != null && line.startsWith('@') ) { + line = line.substring(1) + // expected format is like: + // xx:yy:FLOWCELLID:LANE:... (seven fields) + fields = line.split(':') + // CASAVA 1.8+ format, from https://support.illumina.com/help/BaseSpace_OLH_009008/Content/Source/Informatics/BS/FileFormat_FASTQ-files_swBS.htm + // "@::::::: :::" + sequencer_serial = fields[0] + run_nubmer = fields[1] + fcid = fields[2] + lane = fields[3] + index = fields[-1] =~ /[GATC+-]/ ? fields[-1] : "" + ID = [fcid, lane].join(".") + PU = [fcid, lane, index].findAll().join(".") + PL = "ILLUMINA" + SM = fastq.getSimpleName().toString() - ~/_S[0-9]+.*$/ + meta.readgroup = [ + "ID": ID, + "SM": SM, + "PL": PL, + "PU": PU + ] + meta.empty = false + } else { + println "No reads were found in FASTQ file: ${fastq}" + meta.readgroup = [:] + meta.empty = true } + return [meta, fastq] + } + // Group by the meta id so that we can find mate pairs if they exist + .groupTuple(by: [0]) + .map { meta, fastq -> + meta.single_end = fastq.size() == 1 + return [meta, fastq.flatten()] + } + .branch { + fastq : it[0].empty == false + empty_fastq : it[0].empty == true + } + .set{ch_fastq_with_meta} emit: fastq = ch_fastq_with_meta.fastq diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf index ac31f28f..28e32b20 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nextflow_pipeline/main.nf @@ -2,10 +2,6 @@ // Subworkflow with functionality that may be useful for any Nextflow pipeline // -import org.yaml.snakeyaml.Yaml -import groovy.json.JsonOutput -import nextflow.extension.FilesEx - /* ======================================================================================== SUBWORKFLOW DEFINITION @@ -58,7 +54,7 @@ workflow UTILS_NEXTFLOW_PIPELINE { // Generate version string // def getWorkflowVersion() { - String version_string = "" + def version_string = "" as String if (workflow.manifest.version) { def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' version_string += "${prefix_v}${workflow.manifest.version}" @@ -79,10 +75,10 @@ def dumpParametersToJSON(outdir) { def timestamp = new java.util.Date().format( 'yyyy-MM-dd_HH-mm-ss') def filename = "params_${timestamp}.json" def temp_pf = new File(workflow.launchDir.toString(), ".${filename}") - def jsonStr = JsonOutput.toJson(params) - temp_pf.text = JsonOutput.prettyPrint(jsonStr) + def jsonStr = groovy.json.JsonOutput.toJson(params) + temp_pf.text = groovy.json.JsonOutput.prettyPrint(jsonStr) - FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") + nextflow.extension.FilesEx.copyTo(temp_pf.toPath(), "${outdir}/pipeline_info/params_${timestamp}.json") temp_pf.delete() } @@ -90,7 +86,7 @@ def dumpParametersToJSON(outdir) { // When running with -profile conda, warn if channels have not been set-up appropriately // def checkCondaChannels() { - Yaml parser = new Yaml() + def parser = new org.yaml.snakeyaml.Yaml() def channels = [] try { def config = parser.load("conda config --show channels".execute().text) @@ -102,14 +98,16 @@ def checkCondaChannels() { // Check that all channels are present // This channel list is ordered by required channel priority. - def required_channels_in_order = ['conda-forge', 'bioconda', 'defaults'] + def required_channels_in_order = ['conda-forge', 'bioconda'] def channels_missing = ((required_channels_in_order as Set) - (channels as Set)) as Boolean // Check that they are in the right order def channel_priority_violation = false - def n = required_channels_in_order.size() - for (int i = 0; i < n - 1; i++) { - channel_priority_violation |= !(channels.indexOf(required_channels_in_order[i]) < channels.indexOf(required_channels_in_order[i+1])) + + required_channels_in_order.eachWithIndex { channel, index -> + if (index < required_channels_in_order.size() - 1) { + channel_priority_violation |= !(channels.indexOf(channel) < channels.indexOf(required_channels_in_order[index+1])) + } } if (channels_missing | channel_priority_violation) { diff --git a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config index d0a926bf..a09572e5 100644 --- a/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config +++ b/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config @@ -3,7 +3,7 @@ manifest { author = """nf-core""" homePage = 'https://127.0.0.1' description = """Dummy pipeline""" - nextflowVersion = '!>=23.04.0' + nextflowVersion = '!>=23.04.0' version = '9.9.9' doi = 'https://doi.org/10.5281/zenodo.5070524' } diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index 14558c39..cbd8495b 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -2,9 +2,6 @@ // Subworkflow with utility functions specific to the nf-core pipeline template // -import org.yaml.snakeyaml.Yaml -import nextflow.extension.FilesEx - /* ======================================================================================== SUBWORKFLOW DEFINITION @@ -34,7 +31,7 @@ workflow UTILS_NFCORE_PIPELINE { // Warn if a -profile or Nextflow config has not been provided to run the pipeline // def checkConfigProvided() { - valid_config = true + def valid_config = true as Boolean if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + @@ -66,11 +63,13 @@ def checkProfileProvided(nextflow_cli_args) { // def workflowCitation() { def temp_doi_ref = "" - String[] manifest_doi = workflow.manifest.doi.tokenize(",") + def manifest_doi = workflow.manifest.doi.tokenize(",") // Using a loop to handle multiple DOIs // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers // Removing ` ` since the manifest.doi is a string and not a proper list - for (String doi_ref: manifest_doi) temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" + manifest_doi.each { doi_ref -> + temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" + } return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + "* The pipeline\n" + temp_doi_ref + "\n" + @@ -84,7 +83,7 @@ def workflowCitation() { // Generate workflow version string // def getWorkflowVersion() { - String version_string = "" + def version_string = "" as String if (workflow.manifest.version) { def prefix_v = workflow.manifest.version[0] != 'v' ? 'v' : '' version_string += "${prefix_v}${workflow.manifest.version}" @@ -102,8 +101,8 @@ def getWorkflowVersion() { // Get software versions for pipeline // def processVersionsFromYAML(yaml_file) { - Yaml yaml = new Yaml() - versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } + def yaml = new org.yaml.snakeyaml.Yaml() + def versions = yaml.load(yaml_file).collectEntries { k, v -> [ k.tokenize(':')[-1], v ] } return yaml.dumpAsMap(versions).trim() } @@ -124,7 +123,7 @@ def workflowVersionToYAML() { def softwareVersionsToYAML(ch_versions) { return ch_versions .unique() - .map { processVersionsFromYAML(it) } + .map { version -> processVersionsFromYAML(version) } .unique() .mix(Channel.of(workflowVersionToYAML())) } @@ -134,19 +133,19 @@ def softwareVersionsToYAML(ch_versions) { // def paramsSummaryMultiqc(summary_params) { def summary_section = '' - for (group in summary_params.keySet()) { + summary_params.keySet().each { group -> def group_params = summary_params.get(group) // This gets the parameters of that particular group if (group_params) { summary_section += "

$group

\n" summary_section += "
\n" - for (param in group_params.keySet()) { + group_params.keySet().sort().each { param -> summary_section += "
$param
${group_params.get(param) ?: 'N/A'}
\n" } summary_section += "
\n" } } - String yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" + def yaml_file_text = "id: '${workflow.manifest.name.replace('/','-')}-summary'\n" as String yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n" yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n" yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n" @@ -161,7 +160,7 @@ def paramsSummaryMultiqc(summary_params) { // nf-core logo // def nfCoreLogo(monochrome_logs=true) { - Map colors = logColours(monochrome_logs) + def colors = logColours(monochrome_logs) as Map String.format( """\n ${dashedLine(monochrome_logs)} @@ -180,7 +179,7 @@ def nfCoreLogo(monochrome_logs=true) { // Return dashed line // def dashedLine(monochrome_logs=true) { - Map colors = logColours(monochrome_logs) + def colors = logColours(monochrome_logs) as Map return "-${colors.dim}----------------------------------------------------${colors.reset}-" } @@ -188,7 +187,7 @@ def dashedLine(monochrome_logs=true) { // ANSII colours used for terminal logging // def logColours(monochrome_logs=true) { - Map colorcodes = [:] + def colorcodes = [:] as Map // Reset / Meta colorcodes['reset'] = monochrome_logs ? '' : "\033[0m" @@ -287,7 +286,7 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi } def summary = [:] - for (group in summary_params.keySet()) { + summary_params.keySet().sort().each { group -> summary << summary_params[group] } @@ -344,10 +343,10 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi def sendmail_html = sendmail_template.toString() // Send the HTML e-mail - Map colors = logColours(monochrome_logs) + def colors = logColours(monochrome_logs) as Map if (email_address) { try { - if (plaintext_email) { throw GroovyException('Send plaintext e-mail, not HTML') } + if (plaintext_email) { throw new org.codehaus.groovy.GroovyException('Send plaintext e-mail, not HTML') } // Try to send HTML e-mail using sendmail def sendmail_tf = new File(workflow.launchDir.toString(), ".sendmail_tmp.html") sendmail_tf.withWriter { w -> w << sendmail_html } @@ -364,13 +363,13 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi // Write summary e-mail HTML to a file def output_hf = new File(workflow.launchDir.toString(), ".pipeline_report.html") output_hf.withWriter { w -> w << email_html } - FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); + nextflow.extension.FilesEx.copyTo(output_hf.toPath(), "${outdir}/pipeline_info/pipeline_report.html"); output_hf.delete() // Write summary e-mail TXT to a file def output_tf = new File(workflow.launchDir.toString(), ".pipeline_report.txt") output_tf.withWriter { w -> w << email_txt } - FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); + nextflow.extension.FilesEx.copyTo(output_tf.toPath(), "${outdir}/pipeline_info/pipeline_report.txt"); output_tf.delete() } @@ -378,7 +377,7 @@ def completionEmail(summary_params, email, email_on_fail, plaintext_email, outdi // Print pipeline summary on completion // def completionSummary(monochrome_logs=true) { - Map colors = logColours(monochrome_logs) + def colors = logColours(monochrome_logs) as Map if (workflow.success) { if (workflow.stats.ignoredCount == 0) { log.info "-${colors.purple}[$workflow.manifest.name]${colors.green} Pipeline completed successfully${colors.reset}-" @@ -395,7 +394,7 @@ def completionSummary(monochrome_logs=true) { // def imNotification(summary_params, hook_url) { def summary = [:] - for (group in summary_params.keySet()) { + summary_params.keySet().sort().each { group -> summary << summary_params[group] } From 8c6f998f8bc71003b855f7cf0db885655a5cae1d Mon Sep 17 00:00:00 2001 From: nschcolnicov Date: Wed, 28 Aug 2024 19:48:16 +0000 Subject: [PATCH 2/9] pre-commit --- modules.json | 82 ++++++++++++++-------------------------------------- 1 file changed, 21 insertions(+), 61 deletions(-) diff --git a/modules.json b/modules.json index f8c271ed..9c303881 100644 --- a/modules.json +++ b/modules.json @@ -8,107 +8,77 @@ "bases2fastq": { "branch": "master", "git_sha": "c651992bf8425fecefe14085ff486f42172cba77", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "bcl2fastq": { "branch": "master", "git_sha": "90b63cde0f838ca4da3a88a37a5309888cae97b9", - "installed_by": [ - "bcl_demultiplex" - ] + "installed_by": ["bcl_demultiplex"] }, "bclconvert": { "branch": "master", "git_sha": "22261833fced91665b986c6833e91a4a5cccb0a9", - "installed_by": [ - "bcl_demultiplex" - ] + "installed_by": ["bcl_demultiplex"] }, "cellranger/mkfastq": { "branch": "master", "git_sha": "61123e49c6034920eb6f312ad71e4815a7853257", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "checkqc": { "branch": "master", "git_sha": "337bc962d03c2e08a728c9bf731a2148e323e731", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "falco": { "branch": "master", "git_sha": "a236d2c2ec9e68db9b8501105d804acb359552b5", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fastp": { "branch": "master", "git_sha": "1ceaa8ba4d0fd886dbca0e545815d905b7407de7", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fastqc": { "branch": "master", "git_sha": "b49b8992e5271ce427f3a7cdb29628fc58400eb5", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fqtk": { "branch": "master", "git_sha": "c60c14b285b89bdd0607e371417dadb80385ad6e", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "kraken2/kraken2": { "branch": "master", "git_sha": "a13d5d945742a60bbef6e5c177e81cda540f75dc", - "installed_by": [ - "fastq_contam_seqtk_kraken" - ] + "installed_by": ["fastq_contam_seqtk_kraken"] }, "md5sum": { "branch": "master", "git_sha": "1164836d4d3922ab937865b17086485f0f472748", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "multiqc": { "branch": "master", "git_sha": "19ca321db5d8bd48923262c2eca6422359633491", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "seqtk/sample": { "branch": "master", "git_sha": "730f3aee80d5f8d0b5fc532202ac59361414d006", - "installed_by": [ - "fastq_contam_seqtk_kraken" - ] + "installed_by": ["fastq_contam_seqtk_kraken"] }, "sgdemux": { "branch": "master", "git_sha": "574074e6ea2497b53df1f226473a8c71524af0d0", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "untar": { "branch": "master", "git_sha": "4e5f4687318f24ba944a13609d3ea6ebd890737d", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -117,40 +87,30 @@ "bcl_demultiplex": { "branch": "master", "git_sha": "a6e6bec1b1da613b89a6c0a3a46713f880cf5aca", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "fastq_contam_seqtk_kraken": { "branch": "master", "git_sha": "cfd937a668919d948f6fcbf4218e79de50c2f36f", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "d20fb2a9cc3e2835e9d067d1046a63252eb17352", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "2fdce49d30c0254f76bc0f13c55c17455c1251ab", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} From ee599fce3986143505d5e5ca58ff00967a081905 Mon Sep 17 00:00:00 2001 From: nschcolnicov Date: Thu, 29 Aug 2024 11:59:20 +0000 Subject: [PATCH 3/9] Added junitxml to nftest command --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6ae79d66..81269774 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -78,6 +78,7 @@ jobs: --changed-since HEAD^ \ --profile "+${{ matrix.profile }}" \ --filter pipeline + --junitxml=test.xml - name: Publish Test Report uses: mikepenz/action-junit-report@v3 From ad66840e2b8cd524b2c0f6bbc9fd1535c3f883e8 Mon Sep 17 00:00:00 2001 From: nschcolnicov Date: Thu, 29 Aug 2024 12:06:53 +0000 Subject: [PATCH 4/9] Fix citest --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 81269774..1ffa9360 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,7 +77,7 @@ jobs: --shard ${{ matrix.shard }}/${{ env.SHARDS }} \ --changed-since HEAD^ \ --profile "+${{ matrix.profile }}" \ - --filter pipeline + --filter pipeline \ --junitxml=test.xml - name: Publish Test Report @@ -85,3 +85,4 @@ jobs: if: always() # always run even if the previous step fails with: report_paths: test.xml + annotate_only: true From 3c57d6ebd731cd71b90085a521c5a6d3407e0a36 Mon Sep 17 00:00:00 2001 From: Alexander Peltzer Date: Tue, 17 Sep 2024 14:30:31 +0000 Subject: [PATCH 5/9] Updated all modules --- modules.json | 22 +++++++++---------- modules/nf-core/checkqc/environment.yml | 2 -- modules/nf-core/falco/environment.yml | 2 -- modules/nf-core/fastp/environment.yml | 2 -- modules/nf-core/fastqc/environment.yml | 2 -- modules/nf-core/fqtk/environment.yml | 2 -- .../nf-core/kraken2/kraken2/environment.yml | 2 -- modules/nf-core/md5sum/environment.yml | 2 -- modules/nf-core/multiqc/environment.yml | 4 +--- modules/nf-core/multiqc/main.nf | 4 ++-- .../nf-core/multiqc/tests/main.nf.test.snap | 6 ++--- modules/nf-core/seqtk/sample/environment.yml | 2 -- modules/nf-core/sgdemux/environment.yml | 2 -- modules/nf-core/untar/environment.yml | 2 -- 14 files changed, 17 insertions(+), 39 deletions(-) diff --git a/modules.json b/modules.json index 9c303881..4202ad46 100644 --- a/modules.json +++ b/modules.json @@ -27,57 +27,57 @@ }, "checkqc": { "branch": "master", - "git_sha": "337bc962d03c2e08a728c9bf731a2148e323e731", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["modules"] }, "falco": { "branch": "master", - "git_sha": "a236d2c2ec9e68db9b8501105d804acb359552b5", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["modules"] }, "fastp": { "branch": "master", - "git_sha": "1ceaa8ba4d0fd886dbca0e545815d905b7407de7", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["modules"] }, "fastqc": { "branch": "master", - "git_sha": "b49b8992e5271ce427f3a7cdb29628fc58400eb5", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["modules"] }, "fqtk": { "branch": "master", - "git_sha": "c60c14b285b89bdd0607e371417dadb80385ad6e", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["modules"] }, "kraken2/kraken2": { "branch": "master", - "git_sha": "a13d5d945742a60bbef6e5c177e81cda540f75dc", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["fastq_contam_seqtk_kraken"] }, "md5sum": { "branch": "master", - "git_sha": "1164836d4d3922ab937865b17086485f0f472748", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "19ca321db5d8bd48923262c2eca6422359633491", + "git_sha": "7c316cae26baf55e0add993bed2b0c9f7105c653", "installed_by": ["modules"] }, "seqtk/sample": { "branch": "master", - "git_sha": "730f3aee80d5f8d0b5fc532202ac59361414d006", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["fastq_contam_seqtk_kraken"] }, "sgdemux": { "branch": "master", - "git_sha": "574074e6ea2497b53df1f226473a8c71524af0d0", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["modules"] }, "untar": { "branch": "master", - "git_sha": "4e5f4687318f24ba944a13609d3ea6ebd890737d", + "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", "installed_by": ["modules"] } } diff --git a/modules/nf-core/checkqc/environment.yml b/modules/nf-core/checkqc/environment.yml index e60237d5..1a054130 100644 --- a/modules/nf-core/checkqc/environment.yml +++ b/modules/nf-core/checkqc/environment.yml @@ -1,8 +1,6 @@ -name: checkqc channels: - conda-forge - bioconda - - defaults dependencies: - python=3.8 - numpy=1.26 diff --git a/modules/nf-core/falco/environment.yml b/modules/nf-core/falco/environment.yml index eeedb5b7..c48809cc 100644 --- a/modules/nf-core/falco/environment.yml +++ b/modules/nf-core/falco/environment.yml @@ -1,7 +1,5 @@ -name: falco channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::falco=1.2.1 diff --git a/modules/nf-core/fastp/environment.yml b/modules/nf-core/fastp/environment.yml index 70389e66..26d4aca5 100644 --- a/modules/nf-core/fastp/environment.yml +++ b/modules/nf-core/fastp/environment.yml @@ -1,7 +1,5 @@ -name: fastp channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::fastp=0.23.4 diff --git a/modules/nf-core/fastqc/environment.yml b/modules/nf-core/fastqc/environment.yml index 1787b38a..691d4c76 100644 --- a/modules/nf-core/fastqc/environment.yml +++ b/modules/nf-core/fastqc/environment.yml @@ -1,7 +1,5 @@ -name: fastqc channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::fastqc=0.12.1 diff --git a/modules/nf-core/fqtk/environment.yml b/modules/nf-core/fqtk/environment.yml index 1ea15744..90897712 100644 --- a/modules/nf-core/fqtk/environment.yml +++ b/modules/nf-core/fqtk/environment.yml @@ -1,7 +1,5 @@ -name: fqtk channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::fqtk=0.2.1 diff --git a/modules/nf-core/kraken2/kraken2/environment.yml b/modules/nf-core/kraken2/kraken2/environment.yml index 0c067fee..ba776d31 100644 --- a/modules/nf-core/kraken2/kraken2/environment.yml +++ b/modules/nf-core/kraken2/kraken2/environment.yml @@ -1,8 +1,6 @@ -name: kraken2_kraken2 channels: - conda-forge - bioconda - - defaults dependencies: - "bioconda::kraken2=2.1.3" - "coreutils=9.4" diff --git a/modules/nf-core/md5sum/environment.yml b/modules/nf-core/md5sum/environment.yml index c196b013..c7eb9bd1 100644 --- a/modules/nf-core/md5sum/environment.yml +++ b/modules/nf-core/md5sum/environment.yml @@ -1,7 +1,5 @@ -name: md5sum channels: - conda-forge - bioconda - - defaults dependencies: - conda-forge::coreutils=8.30 diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index a31464c9..0fe12644 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -1,7 +1,5 @@ -name: multiqc channels: - conda-forge - bioconda - - defaults dependencies: - - bioconda::multiqc=1.24.1 + - bioconda::multiqc=1.25 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index ceaec139..b9ccebdb 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.24.1--pyhdfd78af_0' : - 'biocontainers/multiqc:1.24.1--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.25--pyhdfd78af_0' : + 'biocontainers/multiqc:1.25--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 83fa080c..b779e469 100644 --- a/modules/nf-core/multiqc/tests/main.nf.test.snap +++ b/modules/nf-core/multiqc/tests/main.nf.test.snap @@ -2,7 +2,7 @@ "multiqc_versions_single": { "content": [ [ - "versions.yml:md5,6eb13f3b11bbcbfc98ad3166420ff760" + "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" ] ], "meta": { @@ -17,7 +17,7 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,6eb13f3b11bbcbfc98ad3166420ff760" + "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" ] ], "meta": { @@ -29,7 +29,7 @@ "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,6eb13f3b11bbcbfc98ad3166420ff760" + "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" ] ], "meta": { diff --git a/modules/nf-core/seqtk/sample/environment.yml b/modules/nf-core/seqtk/sample/environment.yml index 3f856d31..693aa5c1 100644 --- a/modules/nf-core/seqtk/sample/environment.yml +++ b/modules/nf-core/seqtk/sample/environment.yml @@ -1,7 +1,5 @@ -name: seqtk_sample channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::seqtk=1.4 diff --git a/modules/nf-core/sgdemux/environment.yml b/modules/nf-core/sgdemux/environment.yml index 57eccdd2..ce09711a 100644 --- a/modules/nf-core/sgdemux/environment.yml +++ b/modules/nf-core/sgdemux/environment.yml @@ -1,7 +1,5 @@ -name: sgdemux channels: - conda-forge - bioconda - - defaults dependencies: - bioconda::sgdemux=1.1.1 diff --git a/modules/nf-core/untar/environment.yml b/modules/nf-core/untar/environment.yml index 4f498244..c7794856 100644 --- a/modules/nf-core/untar/environment.yml +++ b/modules/nf-core/untar/environment.yml @@ -1,8 +1,6 @@ -name: untar channels: - conda-forge - bioconda - - defaults dependencies: - conda-forge::grep=3.11 - conda-forge::sed=4.8 From e8584a1632d3cab7623ab54def1b0210ac406900 Mon Sep 17 00:00:00 2001 From: Alexander Peltzer Date: Tue, 17 Sep 2024 15:24:55 +0000 Subject: [PATCH 6/9] Update some tests --- tests/pipeline/bcl2fastq.nf.test.snap | 6 +++--- tests/pipeline/bclconvert.nf.test.snap | 6 +++--- tests/pipeline/test_pe.nf.test.snap | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/pipeline/bcl2fastq.nf.test.snap b/tests/pipeline/bcl2fastq.nf.test.snap index cc26e2de..ff91e6d9 100644 --- a/tests/pipeline/bcl2fastq.nf.test.snap +++ b/tests/pipeline/bcl2fastq.nf.test.snap @@ -72,9 +72,9 @@ }, "multiqc": { "content": [ - "bcl2fastq_lane_counts.txt:md5,eed04dae0bae4250ac5f4ab580e32b0b", - "fastp_filtered_reads_plot.txt:md5,fe76dc8c1650e83e16f547c1fe8a0767", - "bcl2fastq_sample_counts.txt:md5,6454d154d69ffa563878f5b7fd3d9879" + "bcl2fastq_lane_counts.txt:md5,9404ab530f43e442093337dd10c351c5", + "fastp_filtered_reads_plot.txt:md5,fa14a1941e109d4104c33db0e5fe20fc", + "bcl2fastq_sample_counts.txt:md5,93cb0cd1aee1b464f0e640e1c3d0c142" ], "meta": { "nf-test": "0.9.0", diff --git a/tests/pipeline/bclconvert.nf.test.snap b/tests/pipeline/bclconvert.nf.test.snap index 49c9e7ab..699313db 100644 --- a/tests/pipeline/bclconvert.nf.test.snap +++ b/tests/pipeline/bclconvert.nf.test.snap @@ -38,9 +38,9 @@ }, "multiqc": { "content": [ - "bclconvert_lane_counts.txt:md5,68de4c4513456af9fd15e90c7145596a", - "fastp_filtered_reads_plot.txt:md5,fe76dc8c1650e83e16f547c1fe8a0767", - "bclconvert_sample_counts_Counts_per_lane.txt:md5,f12a2fb8c83cfd6262fcb1ea6dada571" + "bclconvert_lane_counts.txt:md5,a75aa5ff803fde15392ae5cbf64b8246", + "fastp_filtered_reads_plot.txt:md5,fa14a1941e109d4104c33db0e5fe20fc", + "bclconvert_sample_counts_Counts_per_lane.txt:md5,d5b3368e0033e69d7f79148f0da7a8ee" ], "meta": { "nf-test": "0.8.4", diff --git a/tests/pipeline/test_pe.nf.test.snap b/tests/pipeline/test_pe.nf.test.snap index fe9ecd36..57e1e62a 100644 --- a/tests/pipeline/test_pe.nf.test.snap +++ b/tests/pipeline/test_pe.nf.test.snap @@ -76,9 +76,9 @@ }, "multiqc": { "content": [ - "bcl2fastq_lane_counts.txt:md5,617ee87ca15a85232d9fd58808453204", - "fastp_filtered_reads_plot.txt:md5,bc473fbbdae16865669a66d5c3180ca3", - "bcl2fastq_sample_counts.txt:md5,6454d154d69ffa563878f5b7fd3d9879" + "bcl2fastq_lane_counts.txt:md5,d6054e1ec3c2e8d33c3fdee5b250dfbc", + "fastp_filtered_reads_plot.txt:md5,136a1d755ba6e790227f80cfcb4c1d62", + "bcl2fastq_sample_counts.txt:md5,93cb0cd1aee1b464f0e640e1c3d0c142" ], "meta": { "nf-test": "0.9.0", From 51d7f0e43cd45d8ec8cccb950b3094fc86e87302 Mon Sep 17 00:00:00 2001 From: Alexander Peltzer Date: Tue, 24 Sep 2024 14:47:25 +0000 Subject: [PATCH 7/9] Update again --- modules.json | 30 ++--- modules/nf-core/bases2fastq/meta.yml | 127 ++++++++++++------ modules/nf-core/bcl2fastq/meta.yml | 115 ++++++++++------ modules/nf-core/bclconvert/meta.yml | 115 ++++++++++------ modules/nf-core/cellranger/mkfastq/meta.yml | 87 +++++++++--- modules/nf-core/checkqc/meta.yml | 57 ++++---- modules/nf-core/falco/meta.yml | 64 +++++---- modules/nf-core/fastp/meta.yml | 138 ++++++++++++-------- modules/nf-core/fastqc/meta.yml | 57 ++++---- modules/nf-core/fqtk/meta.yml | 80 +++++++----- modules/nf-core/kraken2/kraken2/meta.yml | 121 ++++++++++------- modules/nf-core/md5sum/meta.yml | 50 ++++--- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/meta.yml | 91 +++++++------ modules/nf-core/seqtk/sample/meta.yml | 54 ++++---- modules/nf-core/sgdemux/meta.yml | 123 ++++++++++------- modules/nf-core/untar/meta.yml | 43 +++--- 17 files changed, 837 insertions(+), 517 deletions(-) diff --git a/modules.json b/modules.json index 4202ad46..27ff9c7e 100644 --- a/modules.json +++ b/modules.json @@ -7,77 +7,77 @@ "nf-core": { "bases2fastq": { "branch": "master", - "git_sha": "c651992bf8425fecefe14085ff486f42172cba77", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "bcl2fastq": { "branch": "master", - "git_sha": "90b63cde0f838ca4da3a88a37a5309888cae97b9", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["bcl_demultiplex"] }, "bclconvert": { "branch": "master", - "git_sha": "22261833fced91665b986c6833e91a4a5cccb0a9", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["bcl_demultiplex"] }, "cellranger/mkfastq": { "branch": "master", - "git_sha": "61123e49c6034920eb6f312ad71e4815a7853257", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "checkqc": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "falco": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "fastp": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "fastqc": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "fqtk": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "kraken2/kraken2": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["fastq_contam_seqtk_kraken"] }, "md5sum": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "multiqc": { "branch": "master", - "git_sha": "7c316cae26baf55e0add993bed2b0c9f7105c653", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "seqtk/sample": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["fastq_contam_seqtk_kraken"] }, "sgdemux": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] }, "untar": { "branch": "master", - "git_sha": "06c8865e36741e05ad32ef70ab3fac127486af48", + "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", "installed_by": ["modules"] } } diff --git a/modules/nf-core/bases2fastq/meta.yml b/modules/nf-core/bases2fastq/meta.yml index 8de98e13..dff90c1f 100644 --- a/modules/nf-core/bases2fastq/meta.yml +++ b/modules/nf-core/bases2fastq/meta.yml @@ -6,61 +6,102 @@ keywords: - fastq tools: - "bases2fastq": - description: "Demultiplexes sequencing data and converts base calls into FASTQ files for secondary analysis" + description: "Demultiplexes sequencing data and converts base calls into FASTQ + files for secondary analysis" homepage: "https://go.elementbiosciences.com/bases2fastq-download" documentation: "https://www.elementbiosciences.com/resources/user-guides/workflow/bases2fastq" licence: ["http://go.elembio.link/eula"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - run_manifest: - type: file - description: RunManifest file - pattern: "*.{csv}" - - run_dir: - type: directory - description: "Input run directory containing optionally containing a RunManifest.json if run_manifest is not supplied" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - run_manifest: + type: file + description: RunManifest file + pattern: "*.{csv}" + - run_dir: + type: directory + description: "Input run directory containing optionally containing a RunManifest.json + if run_manifest is not supplied" 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" - sample_fastq: - type: file - description: Demultiplexed sample FASTQ files - pattern: "output/Samples/*/*_R*.fastq.gz" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/Samples/**/*_R*.fastq.gz: + type: file + description: Demultiplexed sample FASTQ files + pattern: "output/Samples/*/*_R*.fastq.gz" - sample_json: - type: file - description: Demultiplexed sample stats - pattern: "output/Samples/*/*.json" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/Samples/**/*_stats.json: + type: file + description: Demultiplexed sample stats + pattern: "output/Samples/*/*.json" - qc_report: - type: file - description: QC HTML report - pattern: "output/*.html" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/*.html: + type: file + description: QC HTML report + pattern: "output/*.html" - run_stats: - type: file - description: QC HTML report - pattern: "output/*.html" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/RunStats.json: + type: file + description: QC HTML report + pattern: "output/*.html" - generated_run_manifest: - type: file - description: Updated Run Manifest JSON from the run_manifest csv - pattern: "output/RunManifest.json" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/RunManifest.json: + type: file + description: Updated Run Manifest JSON from the run_manifest csv + pattern: "output/RunManifest.json" - metrics: - type: file - description: Sample metrics - pattern: "output/Metrics.csv" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/Metrics.csv: + type: file + description: Sample metrics + pattern: "output/Metrics.csv" - unassigned: - type: file - description: Unassigned Sequences - pattern: "output/UnassignedSequences.csv" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/UnassignedSequences.csv: + type: file + description: Unassigned Sequences + pattern: "output/UnassignedSequences.csv" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@edmundmiller" maintainers: diff --git a/modules/nf-core/bcl2fastq/meta.yml b/modules/nf-core/bcl2fastq/meta.yml index a8c8efd8..a30a33ef 100644 --- a/modules/nf-core/bcl2fastq/meta.yml +++ b/modules/nf-core/bcl2fastq/meta.yml @@ -10,54 +10,91 @@ tools: homepage: "https://support.illumina.com/sequencing/sequencing_software/bcl2fastq-conversion-software" documentation: "https://support.illumina.com/content/dam/illumina-support/documents/documentation/software_documentation/bcl2fastq/bcl2fastq2-v2-20-software-guide-15051736-03.pdf" licence: ["ILLUMINA"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - samplesheet: - type: file - description: "Input samplesheet" - pattern: "*.{csv}" - - run_dir: - type: file - description: | - Input run directory containing RunInfo.xml and BCL data - Could be a directory or a tar of the directory + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - samplesheet: + type: file + description: "Input samplesheet" + pattern: "*.{csv}" + - run_dir: + type: file + description: | + Input run directory containing RunInfo.xml and BCL data + Could be a directory or a tar of the directory output: - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - fastq: - type: file - description: Demultiplexed sample FASTQ files - pattern: "**_S*_L00?_R?_00?.fastq.gz" + - meta: + type: file + description: Demultiplexed sample FASTQ files + pattern: "**_S*_L00?_R?_00?.fastq.gz" + - output/**_S[1-9]*_R?_00?.fastq.gz: + type: file + description: Demultiplexed sample FASTQ files + pattern: "**_S*_L00?_R?_00?.fastq.gz" - fastq_idx: - type: file - description: Optional demultiplexed index FASTQ files - pattern: "**_S*_L00?_I?_00?.fastq.gz" + - meta: + type: file + description: Optional demultiplexed index FASTQ files + pattern: "**_S*_L00?_I?_00?.fastq.gz" + - output/**_S[1-9]*_I?_00?.fastq.gz: + type: file + description: Optional demultiplexed index FASTQ files + pattern: "**_S*_L00?_I?_00?.fastq.gz" - undetermined: - type: file - description: Optional undetermined sample FASTQ files - pattern: "Undetermined_S0_L00?_R?_00?.fastq.gz" + - meta: + type: file + description: Optional undetermined sample FASTQ files + pattern: "Undetermined_S0_L00?_R?_00?.fastq.gz" + - output/**Undetermined_S0*_R?_00?.fastq.gz: + type: file + description: Optional undetermined sample FASTQ files + pattern: "Undetermined_S0_L00?_R?_00?.fastq.gz" - undetermined_idx: - type: file - description: Optional undetermined index FASTQ files - pattern: "Undetermined_S0_L00?_I?_00?.fastq.gz" + - meta: + type: file + description: Optional undetermined index FASTQ files + pattern: "Undetermined_S0_L00?_I?_00?.fastq.gz" + - output/**Undetermined_S0*_I?_00?.fastq.gz: + type: file + description: Optional undetermined index FASTQ files + pattern: "Undetermined_S0_L00?_I?_00?.fastq.gz" - reports: - type: file - description: Demultiplexing Reports - pattern: "Reports/*" + - meta: + type: file + description: Demultiplexing Reports + pattern: "Reports/*" + - output/Reports: + type: file + description: Demultiplexing Reports + pattern: "Reports/*" - stats: - type: file - description: Statistics files - pattern: "Stats/*" + - meta: + type: file + description: Statistics files + pattern: "Stats/*" + - output/Stats: + type: file + description: Statistics files + pattern: "Stats/*" - interop: - type: file - description: Interop files - pattern: "*.{bin}" + - meta: + type: file + description: Interop files + pattern: "*.{bin}" + - InterOp/*.bin: + type: file + description: Interop files + pattern: "*.{bin}" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@matthdsm" maintainers: diff --git a/modules/nf-core/bclconvert/meta.yml b/modules/nf-core/bclconvert/meta.yml index c4acdb51..8687d7f6 100644 --- a/modules/nf-core/bclconvert/meta.yml +++ b/modules/nf-core/bclconvert/meta.yml @@ -10,54 +10,91 @@ tools: homepage: "https://support.illumina.com/sequencing/sequencing_software/bcl-convert.html" documentation: "https://support-docs.illumina.com/SW/BCL_Convert/Content/SW/FrontPages/BCL_Convert.htm" licence: ["ILLUMINA"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - samplesheet: - type: file - description: "Input samplesheet" - pattern: "*.{csv}" - - run_dir: - type: file - description: | - Input run directory containing RunInfo.xml and BCL data - Could be a directory or a tar of the directory + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - samplesheet: + type: file + description: "Input samplesheet" + pattern: "*.{csv}" + - run_dir: + type: file + description: | + Input run directory containing RunInfo.xml and BCL data + Could be a directory or a tar of the directory output: - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - fastq: - type: file - description: Demultiplexed sample FASTQ files - pattern: "**_S*_L00?_R?_00?.fastq.gz" + - meta: + type: file + description: Demultiplexed sample FASTQ files + pattern: "**_S*_L00?_R?_00?.fastq.gz" + - output/**_S[1-9]*_R?_00?.fastq.gz: + type: file + description: Demultiplexed sample FASTQ files + pattern: "**_S*_L00?_R?_00?.fastq.gz" - fastq_idx: - type: file - description: Optional demultiplexed index FASTQ files - pattern: "**_S*_L00?_I?_00?.fastq.gz" + - meta: + type: file + description: Optional demultiplexed index FASTQ files + pattern: "**_S*_L00?_I?_00?.fastq.gz" + - output/**_S[1-9]*_I?_00?.fastq.gz: + type: file + description: Optional demultiplexed index FASTQ files + pattern: "**_S*_L00?_I?_00?.fastq.gz" - undetermined: - type: file - description: Optional undetermined sample FASTQ files - pattern: "Undetermined_S0_L00?_R?_00?.fastq.gz" + - meta: + type: file + description: Optional undetermined sample FASTQ files + pattern: "Undetermined_S0_L00?_R?_00?.fastq.gz" + - output/**Undetermined_S0*_R?_00?.fastq.gz: + type: file + description: Optional undetermined sample FASTQ files + pattern: "Undetermined_S0_L00?_R?_00?.fastq.gz" - undetermined_idx: - type: file - description: Optional undetermined index FASTQ files - pattern: "Undetermined_S0_L00?_I?_00?.fastq.gz" + - meta: + type: file + description: Optional undetermined index FASTQ files + pattern: "Undetermined_S0_L00?_I?_00?.fastq.gz" + - output/**Undetermined_S0*_I?_00?.fastq.gz: + type: file + description: Optional undetermined index FASTQ files + pattern: "Undetermined_S0_L00?_I?_00?.fastq.gz" - reports: - type: file - description: Demultiplexing Reports - pattern: "Reports/*.{csv,xml}" + - meta: + type: file + description: Demultiplexing Reports + pattern: "Reports/*.{csv,xml}" + - output/Reports: + type: file + description: Demultiplexing Reports + pattern: "Reports/*.{csv,xml}" - logs: - type: file - description: Log files - pattern: "Logs/*.{log,txt}" + - meta: + type: file + description: Log files + pattern: "Logs/*.{log,txt}" + - output/Logs: + type: file + description: Log files + pattern: "Logs/*.{log,txt}" - interop: - type: file - description: Interop files - pattern: "*.{bin}" + - meta: + type: file + description: Interop files + pattern: "*.{bin}" + - '**/InterOp/*.bin", includeInputs: true': + type: file + description: Interop files + pattern: "*.{bin}" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@matthdsm" maintainers: diff --git a/modules/nf-core/cellranger/mkfastq/meta.yml b/modules/nf-core/cellranger/mkfastq/meta.yml index 0077b069..fa7af86b 100644 --- a/modules/nf-core/cellranger/mkfastq/meta.yml +++ b/modules/nf-core/cellranger/mkfastq/meta.yml @@ -1,5 +1,6 @@ name: cellranger_mkfastq -description: Module to create FASTQs needed by the 10x Genomics Cell Ranger tool. Uses the cellranger mkfastq command. +description: Module to create FASTQs needed by the 10x Genomics Cell Ranger tool. + Uses the cellranger mkfastq command. keywords: - reference - mkfastq @@ -8,29 +9,83 @@ keywords: - bcl2fastq tools: - cellranger: - description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process Chromium single-cell data to align reads, generate feature-barcode matrices, perform clustering and other secondary analysis, and more. + description: Cell Ranger by 10x Genomics is a set of analysis pipelines that process + Chromium single-cell data to align reads, generate feature-barcode matrices, + perform clustering and other secondary analysis, and more. homepage: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger documentation: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov tool_dev_url: https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ov licence: [10X Genomics EULA] + identifier: "" input: - - bcl: - type: file - description: Base call files - pattern: "*.bcl.bgzf" - - csv: - type: file - description: Sample sheet - pattern: "*.csv" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - csv: + type: file + description: Sample sheet + pattern: "*.csv" + - bcl: + type: file + description: Base call files + pattern: "*.bcl.bgzf" output: - fastq: - type: file - description: Unaligned FastQ files - pattern: "*.fastq.gz" + - meta: + type: file + description: Unaligned FastQ files + pattern: "*.fastq.gz" + - "*_outs/outs/fastq_path/**/*.fastq.gz": + type: file + description: Unaligned FastQ files + pattern: "*.fastq.gz" + - undetermined_fastq: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*_outs/outs/fastq_path/Undetermined*.fastq.gz": + type: file + description: Undetermined FastQ files + pattern: "Undetermined*.fastq.gz" + - reports: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*_outs/outs/fastq_path/Reports": + type: directory + description: Reports + pattern: "Reports" + - stats: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*_outs/outs/fastq_path/Stats": + type: directory + description: Stats + pattern: "Stats" + - interop: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*_outs/outs/interop_path/*.bin": + type: file + description: InterOp files + pattern: "*.bin" - versions: - type: file - description: File containing software version - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software version + pattern: "versions.yml" authors: - "@ggabernet" - "@edmundmiller" diff --git a/modules/nf-core/checkqc/meta.yml b/modules/nf-core/checkqc/meta.yml index 0c3d98ba..42d0017f 100644 --- a/modules/nf-core/checkqc/meta.yml +++ b/modules/nf-core/checkqc/meta.yml @@ -1,43 +1,50 @@ ---- # yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json name: "checkqc" -description: A simple program to parse Illumina NGS data and check it for quality criteria +description: A simple program to parse Illumina NGS data and check it for quality + criteria keywords: - QC - Illumina - genomics tools: - "checkqc": - description: "A simple program to parse Illumina NGS data and check it for quality criteria." + description: "A simple program to parse Illumina NGS data and check it for quality + criteria." homepage: "https://github.com/Molmed/checkQC" documentation: "http://checkqc.readthedocs.io/en/latest/" doi: "10.21105/joss.00556" licence: ["GPL v3"] + identifier: "" input: - - run_dir: - type: file - description: | - Illumina sequencing run directory - Can be directory or a compressed tar (tar.gz) of the directory - - checkqc_config: - type: file - description: CheckQC configuration file - pattern: "*.{yml,yaml}" - + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - run_dir: + type: file + description: | + Illumina sequencing run directory + Can be directory or a compressed tar (tar.gz) of the directory + - - checkqc_config: + type: file + description: CheckQC configuration file + pattern: "*.{yml,yaml}" output: - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - report: - type: file - description: CheckQC report in json format - pattern: "*checkqc_report.json" - - log: - type: file - description: CheckQC log in txt format - pattern: "*_log.txt" - + - meta: + type: file + description: CheckQC report in json format + pattern: "*checkqc_report.json" + - "*checkqc_report.json": + type: file + description: CheckQC report in json format + pattern: "*checkqc_report.json" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@matrulda" diff --git a/modules/nf-core/falco/meta.yml b/modules/nf-core/falco/meta.yml index 6201790c..b2405f42 100644 --- a/modules/nf-core/falco/meta.yml +++ b/modules/nf-core/falco/meta.yml @@ -7,43 +7,49 @@ keywords: - fastq tools: - fastqc: - description: "falco is a drop-in C++ implementation of FastQC to assess the quality of sequence reads." + description: "falco is a drop-in C++ implementation of FastQC to assess the quality + of sequence reads." homepage: "https://falco.readthedocs.io/" documentation: "https://falco.readthedocs.io/" licence: ["GPL v3"] + identifier: biotools:falco-rna input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - html: - type: file - description: FastQC like report - pattern: "*_{fastqc_report.html}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.html": + type: file + description: FastQC like report + pattern: "*_{fastqc_report.html}" - txt: - type: file - description: falco report data - pattern: "*_{data.txt}" - - txt: - type: file - description: falco summary file - pattern: "*_{summary.txt}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.txt": + type: file + description: falco report data + pattern: "*_{data.txt}" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@lucacozzuto" maintainers: diff --git a/modules/nf-core/fastp/meta.yml b/modules/nf-core/fastp/meta.yml index 8dfecc18..159404d0 100644 --- a/modules/nf-core/fastp/meta.yml +++ b/modules/nf-core/fastp/meta.yml @@ -11,66 +11,100 @@ tools: documentation: https://github.com/OpenGene/fastp doi: 10.1093/bioinformatics/bty560 licence: ["MIT"] + identifier: biotools:fastp input: - - meta: - type: map - description: | - Groovy Map containing sample information. Use 'single_end: true' to specify single ended or interleaved FASTQs. Use 'single_end: false' for paired-end reads. - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. If you wish to run interleaved paired-end data, supply as single-end data - but with `--interleaved_in` in your `modules.conf`'s `ext.args` for the module. - - adapter_fasta: - 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 a file ending in `*.merged.fastq.gz` + - - meta: + type: map + description: | + Groovy Map containing sample information. Use 'single_end: true' to specify single ended or interleaved FASTQs. Use 'single_end: false' for paired-end reads. + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. If you wish to run interleaved paired-end data, supply as single-end data + but with `--interleaved_in` in your `modules.conf`'s `ext.args` for the module. + - - adapter_fasta: + 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 a file ending in `*.merged.fastq.gz` output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - reads: - type: file - description: The trimmed/modified/unmerged fastq reads - pattern: "*fastp.fastq.gz" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.fastp.fastq.gz": + type: file + description: The trimmed/modified/unmerged fastq reads + pattern: "*fastp.fastq.gz" - json: - type: file - description: Results in JSON format - pattern: "*.json" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.json": + type: file + description: Results in JSON format + pattern: "*.json" - html: - type: file - description: Results in HTML format - pattern: "*.html" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.html": + type: file + description: Results in HTML format + pattern: "*.html" - log: - type: file - description: fastq log file - pattern: "*.log" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.log": + type: file + description: fastq log file + pattern: "*.log" - reads_fail: - type: file - description: Reads the failed the preprocessing - pattern: "*fail.fastq.gz" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.fail.fastq.gz": + type: file + description: Reads the failed the preprocessing + pattern: "*fail.fastq.gz" - reads_merged: - type: file - description: Reads that were successfully merged - pattern: "*.{merged.fastq.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.merged.fastq.gz": + type: file + description: Reads that were successfully merged + pattern: "*.{merged.fastq.gz}" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" - "@kevinmenden" diff --git a/modules/nf-core/fastqc/meta.yml b/modules/nf-core/fastqc/meta.yml index ee5507e0..4827da7a 100644 --- a/modules/nf-core/fastqc/meta.yml +++ b/modules/nf-core/fastqc/meta.yml @@ -16,35 +16,44 @@ tools: homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ licence: ["GPL-2.0-only"] + identifier: biotools:fastqc input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - html: - type: file - description: FastQC report - pattern: "*_{fastqc.html}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.html": + type: file + description: FastQC report + pattern: "*_{fastqc.html}" - zip: - type: file - description: FastQC report archive - pattern: "*_{fastqc.zip}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.zip": + type: file + description: FastQC report archive + pattern: "*_{fastqc.zip}" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" - "@grst" diff --git a/modules/nf-core/fqtk/meta.yml b/modules/nf-core/fqtk/meta.yml index 357b23ca..db8063e7 100644 --- a/modules/nf-core/fqtk/meta.yml +++ b/modules/nf-core/fqtk/meta.yml @@ -10,43 +10,59 @@ tools: homepage: "https://github.com/fulcrumgenomics/fqtk" documentation: "https://github.com/fulcrumgenomics/fqtk" licence: ["MIT"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - sample_sheet: - type: file - description: Tsv file, with two columns sample_id and barcode - pattern: "*.{tsv}" - - fastq_readstructure_pairs: - type: map - description: List of lists i.e. [[, , ],...] + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - sample_sheet: + type: file + description: Tsv file, with two columns sample_id and barcode + pattern: "*.{tsv}" + - fastq_readstructure_pairs: + type: map + description: List of lists i.e. [[, , ],...] 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" - sample_fastq: - type: file - description: Demultiplexed per-sample FASTQ files - pattern: "output/*R*.fastq.gz" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/*.fq.gz: + type: file + description: Demultiplexed per-sample FASTQ files + pattern: "output/*R*.fastq.gz" - metrics: - type: file - description: | - Demultiplexing summary stats; sample_id, barcode templates, frac_templates, ratio_to_mean, ratio_to_best - pattern: "output/demux-metrics.txt" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/demux-metrics.txt: + type: file + description: | + Demultiplexing summary stats; sample_id, barcode templates, frac_templates, ratio_to_mean, ratio_to_best + pattern: "output/demux-metrics.txt" - most_frequent_unmatched: - type: file - description: | - File containing unmatched fastq records - pattern: "output/unmatched*.fq.gz" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/unmatched*.fq.gz: + type: file + description: | + File containing unmatched fastq records + pattern: "output/unmatched*.fq.gz" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@nh13" - "@sam-white04" diff --git a/modules/nf-core/kraken2/kraken2/meta.yml b/modules/nf-core/kraken2/kraken2/meta.yml index 7909ffe7..86937646 100644 --- a/modules/nf-core/kraken2/kraken2/meta.yml +++ b/modules/nf-core/kraken2/kraken2/meta.yml @@ -13,63 +13,84 @@ tools: documentation: https://github.com/DerrickWood/kraken2/wiki/Manual doi: 10.1186/s13059-019-1891-0 licence: ["MIT"] + identifier: biotools:kraken2 input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. - - db: - type: directory - description: Kraken2 database - - save_output_fastqs: - type: string - description: | - If true, optional commands are added to save classified and unclassified reads - as fastq files - - save_reads_assignment: - type: string - description: | - If true, an optional command is added to save a file reporting the taxonomic - classification of each input read + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. + - - db: + type: directory + description: Kraken2 database + - - save_output_fastqs: + type: string + description: | + If true, optional commands are added to save classified and unclassified reads + as fastq files + - - save_reads_assignment: + type: string + description: | + If true, an optional command is added to save a file reporting the taxonomic + classification of each input read output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - classified_reads_fastq: - type: file - description: | - Reads classified as belonging to any of the taxa - on the Kraken2 database. - pattern: "*{fastq.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.classified{.,_}*": + type: file + description: | + Reads classified as belonging to any of the taxa + on the Kraken2 database. + pattern: "*{fastq.gz}" - unclassified_reads_fastq: - type: file - description: | - Reads not classified to any of the taxa - on the Kraken2 database. - pattern: "*{fastq.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.unclassified{.,_}*": + type: file + description: | + Reads not classified to any of the taxa + on the Kraken2 database. + pattern: "*{fastq.gz}" - classified_reads_assignment: - type: file - description: | - Kraken2 output file indicating the taxonomic assignment of - each input read + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*classifiedreads.txt": + type: file + description: | + Kraken2 output file indicating the taxonomic assignment of + each input read - report: - type: file - description: | - Kraken2 report containing stats about classified - and not classifed reads. - pattern: "*.{report.txt}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*report.txt": + type: file + description: | + Kraken2 report containing stats about classified + and not classifed reads. + pattern: "*.{report.txt}" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@joseespinosa" - "@drpatelh" diff --git a/modules/nf-core/md5sum/meta.yml b/modules/nf-core/md5sum/meta.yml index 1659ae70..363d763f 100644 --- a/modules/nf-core/md5sum/meta.yml +++ b/modules/nf-core/md5sum/meta.yml @@ -10,30 +10,38 @@ tools: homepage: "https://www.gnu.org" documentation: "https://man7.org/linux/man-pages/man1/md5sum.1.html" licence: ["GPL-3.0-or-later"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - files: - type: file - description: Any number of files. One md5sum file will be generated for each. - pattern: "*.*" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - files: + type: file + description: Any number of files. One md5sum file will be generated for each. + pattern: "*.*" + - - as_separate_files: + type: boolean + description: | + If true, each file will have its own md5sum file. If false, all files will be + checksummed into a single md5sum file. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - checksum: - type: file - description: File containing checksum - pattern: "*.md5" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.md5": + type: file + description: File containing checksum + pattern: "*.md5" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@matthdsm" maintainers: diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index 0fe12644..f1cd99b0 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.25 + - bioconda::multiqc=1.24.1 diff --git a/modules/nf-core/multiqc/meta.yml b/modules/nf-core/multiqc/meta.yml index 382c08cb..b16c1879 100644 --- a/modules/nf-core/multiqc/meta.yml +++ b/modules/nf-core/multiqc/meta.yml @@ -1,5 +1,6 @@ name: multiqc -description: Aggregate results from bioinformatics analyses across many samples into a single report +description: Aggregate results from bioinformatics analyses across many samples into + a single report keywords: - QC - bioinformatics tools @@ -12,53 +13,59 @@ tools: homepage: https://multiqc.info/ documentation: https://multiqc.info/docs/ licence: ["GPL-3.0-or-later"] + identifier: biotools:multiqc input: - - multiqc_files: - type: file - description: | - List of reports / files recognised by MultiQC, for example the html and zip output of FastQC - - multiqc_config: - type: file - description: Optional config yml for MultiQC - pattern: "*.{yml,yaml}" - - extra_multiqc_config: - type: file - description: Second optional config yml for MultiQC. Will override common sections in multiqc_config. - pattern: "*.{yml,yaml}" - - multiqc_logo: - type: file - description: Optional logo file for MultiQC - pattern: "*.{png}" - - replace_names: - type: file - description: | - Optional two-column sample renaming file. First column a set of - patterns, second column a set of corresponding replacements. Passed via - MultiQC's `--replace-names` option. - pattern: "*.{tsv}" - - sample_names: - type: file - description: | - Optional TSV file with headers, passed to the MultiQC --sample_names - argument. - pattern: "*.{tsv}" + - - multiqc_files: + type: file + description: | + List of reports / files recognised by MultiQC, for example the html and zip output of FastQC + - - multiqc_config: + type: file + description: Optional config yml for MultiQC + pattern: "*.{yml,yaml}" + - - extra_multiqc_config: + type: file + description: Second optional config yml for MultiQC. Will override common sections + in multiqc_config. + pattern: "*.{yml,yaml}" + - - multiqc_logo: + type: file + description: Optional logo file for MultiQC + pattern: "*.{png}" + - - replace_names: + type: file + description: | + Optional two-column sample renaming file. First column a set of + patterns, second column a set of corresponding replacements. Passed via + MultiQC's `--replace-names` option. + pattern: "*.{tsv}" + - - sample_names: + type: file + description: | + Optional TSV file with headers, passed to the MultiQC --sample_names + argument. + pattern: "*.{tsv}" output: - report: - type: file - description: MultiQC report file - pattern: "multiqc_report.html" + - "*multiqc_report.html": + type: file + description: MultiQC report file + pattern: "multiqc_report.html" - data: - type: directory - description: MultiQC data dir - pattern: "multiqc_data" + - "*_data": + type: directory + description: MultiQC data dir + pattern: "multiqc_data" - plots: - type: file - description: Plots created by MultiQC - pattern: "*_data" + - "*_plots": + type: file + description: Plots created by MultiQC + pattern: "*_data" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@abhi18av" - "@bunop" diff --git a/modules/nf-core/seqtk/sample/meta.yml b/modules/nf-core/seqtk/sample/meta.yml index 54a5c2bb..42f67d8f 100644 --- a/modules/nf-core/seqtk/sample/meta.yml +++ b/modules/nf-core/seqtk/sample/meta.yml @@ -6,38 +6,42 @@ keywords: - reads tools: - seqtk: - description: Seqtk is a fast and lightweight tool for processing sequences in the FASTA or FASTQ format. Seqtk sample command subsamples sequences. + description: Seqtk is a fast and lightweight tool for processing sequences in + the FASTA or FASTQ format. Seqtk sample command subsamples sequences. homepage: https://github.com/lh3/seqtk documentation: https://docs.csc.fi/apps/seqtk/ tool_dev_url: https://github.com/lh3/seqtk licence: ["MIT"] + identifier: biotools:seqtk input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: List of input FastQ files - pattern: "*.{fastq.gz}" - - sample_size: - type: integer - description: Number of reads to sample. + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: List of input FastQ files + pattern: "*.{fastq.gz}" + - sample_size: + type: integer + description: Number of reads to sample. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - reads: - type: file - description: Subsampled FastQ files - pattern: "*.{fastq.gz}" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - "*.fastq.gz": + type: file + description: Subsampled FastQ files + pattern: "*.{fastq.gz}" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@kaurravneet4123" - "@sidorov-si" diff --git a/modules/nf-core/sgdemux/meta.yml b/modules/nf-core/sgdemux/meta.yml index 1949348a..3dd52d75 100644 --- a/modules/nf-core/sgdemux/meta.yml +++ b/modules/nf-core/sgdemux/meta.yml @@ -6,61 +6,96 @@ keywords: - bgzip tools: - "sgdemux": - description: "Tool for demultiplexing sequencing data generated on Singular Genomics' sequencing instruments." + description: "Tool for demultiplexing sequencing data generated on Singular Genomics' + sequencing instruments." homepage: "https://github.com/Singular-Genomics/singular-demux" documentation: "https://github.com/Singular-Genomics/singular-demux#sgdemux" licence: ["For Singular G4™ Sequencing Platform only"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - sample_sheet: - type: file - description: sample_sheet file (either a Singular Genomics sample sheet, or a two column csv wih Sample_Barcode and Sample_ID) - pattern: "*.{csv}" - - fastqs_dir: - type: directory - description: "Input directory containing bgzipped (not gzip) FASTQ files" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - sample_sheet: + type: file + description: sample_sheet file (either a Singular Genomics sample sheet, or + a two column csv wih Sample_Barcode and Sample_ID) + pattern: "*.{csv}" + - fastqs_dir: + type: directory + description: "Input directory containing bgzipped (not gzip) FASTQ files" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" - sample_fastq: - type: file - description: Demultiplexed per-sample FASTQ files - pattern: "output/*_R*.fastq.gz" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/*_R*.fastq.gz: + type: file + description: Demultiplexed per-sample FASTQ files + pattern: "output/*_R*.fastq.gz" - metrics: - type: file - description: | - Demultiplexing summary stats; control_reads_omitted failing_reads_omitted, total_templates - pattern: "output/metrics.tsv" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/metrics.tsv: + type: file + description: | + Demultiplexing summary stats; control_reads_omitted failing_reads_omitted, total_templates + pattern: "output/metrics.tsv" - most_frequent_unmatched: - type: file - description: | - File containing approx. counts of barcodes that did not match the expected barcodes - pattern: "output/most_frequence_unmatched.tsv" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/most_frequent_unmatched.tsv: + type: file + description: | + File containing approx. counts of barcodes that did not match the expected barcodes + pattern: "output/most_frequence_unmatched.tsv" - per_project_metrics: - type: file - description: Summary metrics for samples in the same project - pattern: "output/per_project_metrics.tsv" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/per_project_metrics.tsv: + type: file + description: Summary metrics for samples in the same project + pattern: "output/per_project_metrics.tsv" - per_sample_metrics: - type: file - description: Summary metrics for each sample - pattern: "output/per_sample_metrics.tsv" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/per_sample_metrics.tsv: + type: file + description: Summary metrics for each sample + pattern: "output/per_sample_metrics.tsv" - sample_barcode_hop_metrics: - type: file - description: | - File output for dual-indexed runs with barcodes which are unexpected combinations of - expected barcodes e.g. expected barcodes = AA-TT/GG-CC and observed barcodes = AA-CC/GG-TT - pattern: "output/sample_barcode_hop_metrics/tsv" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - output/sample_barcode_hop_metrics.tsv: + type: file + description: | + File output for dual-indexed runs with barcodes which are unexpected combinations of + expected barcodes e.g. expected barcodes = AA-TT/GG-CC and observed barcodes = AA-CC/GG-TT + pattern: "output/sample_barcode_hop_metrics/tsv" + - versions: + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@nh13" - "@sam-white04" diff --git a/modules/nf-core/untar/meta.yml b/modules/nf-core/untar/meta.yml index a9a2110f..290346b3 100644 --- a/modules/nf-core/untar/meta.yml +++ b/modules/nf-core/untar/meta.yml @@ -10,30 +10,33 @@ tools: Extract tar.gz files. documentation: https://www.gnu.org/software/tar/manual/ licence: ["GPL-3.0-or-later"] + identifier: "" input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - archive: - type: file - description: File to be untar - pattern: "*.{tar}.{gz}" + - - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - archive: + type: file + description: File to be untar + pattern: "*.{tar}.{gz}" output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - untar: - type: directory - description: Directory containing contents of archive - pattern: "*/" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - $prefix: + type: directory + description: Directory containing contents of archive + pattern: "*/" - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - versions.yml: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - "@joseespinosa" - "@drpatelh" From c59b348af9284cc227c1fa3cf67f66d09accc024 Mon Sep 17 00:00:00 2001 From: nschcolnicov Date: Wed, 2 Oct 2024 21:12:35 +0000 Subject: [PATCH 8/9] Updated multiqc, mkfastq and snaps --- modules.json | 4 +-- modules/nf-core/cellranger/mkfastq/main.nf | 27 +++++-------------- .../mkfastq/tests/main.nf.test.snap | 14 +++++++--- modules/nf-core/multiqc/environment.yml | 2 +- modules/nf-core/multiqc/main.nf | 4 +-- .../nf-core/multiqc/tests/main.nf.test.snap | 26 +++++++++--------- tests/pipeline/bclconvert.nf.test.snap | 10 +++---- tests/pipeline/kraken.nf.test.snap | 18 ++++++------- 8 files changed, 48 insertions(+), 57 deletions(-) diff --git a/modules.json b/modules.json index 27ff9c7e..91bf80bf 100644 --- a/modules.json +++ b/modules.json @@ -22,7 +22,7 @@ }, "cellranger/mkfastq": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "a90a8863a3408e15d5a339b06413e57cf9ca9860", "installed_by": ["modules"] }, "checkqc": { @@ -62,7 +62,7 @@ }, "multiqc": { "branch": "master", - "git_sha": "666652151335353eef2fcd58880bcef5bc2928e1", + "git_sha": "b8d36829fa84b6e404364abff787e8b07f6d058c", "installed_by": ["modules"] }, "seqtk/sample": { diff --git a/modules/nf-core/cellranger/mkfastq/main.nf b/modules/nf-core/cellranger/mkfastq/main.nf index 06c15bbc..09480345 100644 --- a/modules/nf-core/cellranger/mkfastq/main.nf +++ b/modules/nf-core/cellranger/mkfastq/main.nf @@ -48,34 +48,19 @@ process CELLRANGER_MKFASTQ { } def prefix = task.ext.prefix ?: "${meta.id}" """ - mkdir -p "${prefix}_outs/outs/fastq_path/sample/files/" - # data with something to avoid breaking nf-test java I/O stream, fastq - cat <<-FAKE_FQ > ${prefix}_outs/outs/fastq_path/fake_file.fastq - @SEQ_ID - GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT - + - !''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65 - FAKE_FQ - gzip -n ${prefix}_outs/outs/fastq_path/fake_file.fastq - - # data with something to avoid breaking nf-test java I/O stream, fastq_undetermined - cat <<-FAKE_FQ > ${prefix}_outs/outs/fastq_path/sample/files/fake_file.fastq - @SEQ_ID - GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT - + - !''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65 - FAKE_FQ - gzip -n ${prefix}_outs/outs/fastq_path/sample/files/fake_file.fastq - # data for reports output channel mkdir -p "${prefix}_outs/outs/fastq_path/Reports" - # data for stats output channel mkdir -p "${prefix}_outs/outs/fastq_path/Stats" - # data for interops output channel mkdir -p "${prefix}_outs/outs/interop_path/" touch "${prefix}_outs/outs/interop_path/IndexMetricsOut.bin" + # data for fastq channels + mkdir -p "${prefix}_outs/outs/fastq_path/sample/files/" + touch "${prefix}_outs/outs/fastq_path/Undetermined_fake_file.fastq" + touch "${prefix}_outs/outs/fastq_path/sample/files/fake_file.fastq" + gzip "${prefix}_outs/outs/fastq_path/Undetermined_fake_file.fastq" + gzip "${prefix}_outs/outs/fastq_path/sample/files/fake_file.fastq" cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/nf-core/cellranger/mkfastq/tests/main.nf.test.snap b/modules/nf-core/cellranger/mkfastq/tests/main.nf.test.snap index b1224688..f2c1b325 100644 --- a/modules/nf-core/cellranger/mkfastq/tests/main.nf.test.snap +++ b/modules/nf-core/cellranger/mkfastq/tests/main.nf.test.snap @@ -54,11 +54,17 @@ "id": "test", "lane": 1 }, - "fake_file.fastq.gz:md5,8e16c1f4a441cbb3b7de374d2c924da7" + "fake_file.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" ] ], [ - + [ + { + "id": "test", + "lane": 1 + }, + "Undetermined_fake_file.fastq.gz:md5,d41d8cd98f00b204e9800998ecf8427e" + ] ], [ [ @@ -75,9 +81,9 @@ ], "meta": { "nf-test": "0.9.0", - "nextflow": "24.04.3" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-15T20:01:48.013075" + "timestamp": "2024-09-26T18:47:18.168033527" }, "cellranger - tiny - illumina": { "content": [ diff --git a/modules/nf-core/multiqc/environment.yml b/modules/nf-core/multiqc/environment.yml index f1cd99b0..6f5b867b 100644 --- a/modules/nf-core/multiqc/environment.yml +++ b/modules/nf-core/multiqc/environment.yml @@ -2,4 +2,4 @@ channels: - conda-forge - bioconda dependencies: - - bioconda::multiqc=1.24.1 + - bioconda::multiqc=1.25.1 diff --git a/modules/nf-core/multiqc/main.nf b/modules/nf-core/multiqc/main.nf index b9ccebdb..9724d2f3 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.25--pyhdfd78af_0' : - 'biocontainers/multiqc:1.25--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.25.1--pyhdfd78af_0' : + 'biocontainers/multiqc:1.25.1--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 b779e469..2fcbb5ff 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,8c8724363a5efe0c6f43ab34faa57efd" + "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T12:41:34.562023" + "timestamp": "2024-10-02T17:51:46.317523" }, "multiqc_stub": { "content": [ @@ -17,25 +17,25 @@ "multiqc_report.html", "multiqc_data", "multiqc_plots", - "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" + "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T11:27:11.933869532" + "timestamp": "2024-10-02T17:52:20.680978" }, "multiqc_versions_config": { "content": [ [ - "versions.yml:md5,8c8724363a5efe0c6f43ab34faa57efd" + "versions.yml:md5,41f391dcedce7f93ca188f3a3ffa0916" ] ], "meta": { - "nf-test": "0.8.4", - "nextflow": "24.04.2" + "nf-test": "0.9.0", + "nextflow": "24.04.4" }, - "timestamp": "2024-07-10T11:26:56.709849369" + "timestamp": "2024-10-02T17:52:09.185842" } -} +} \ No newline at end of file diff --git a/tests/pipeline/bclconvert.nf.test.snap b/tests/pipeline/bclconvert.nf.test.snap index 699313db..db48652e 100644 --- a/tests/pipeline/bclconvert.nf.test.snap +++ b/tests/pipeline/bclconvert.nf.test.snap @@ -38,14 +38,14 @@ }, "multiqc": { "content": [ - "bclconvert_lane_counts.txt:md5,a75aa5ff803fde15392ae5cbf64b8246", + "bclconvert_lane_counts.txt:md5,a327047d0d6c7de32eef9535bb159110", "fastp_filtered_reads_plot.txt:md5,fa14a1941e109d4104c33db0e5fe20fc", - "bclconvert_sample_counts_Counts_per_lane.txt:md5,d5b3368e0033e69d7f79148f0da7a8ee" + "bclconvert_sample_counts_Counts_per_lane.txt:md5,a7e57ab911ba2cf74ec7bd93b921036d" ], "meta": { "nf-test": "0.8.4", - "nextflow": "23.10.4" + "nextflow": "24.04.4" }, - "timestamp": "2024-08-01T14:51:11.574966834" + "timestamp": "2024-10-02T20:50:32.184940324" } -} +} \ No newline at end of file diff --git a/tests/pipeline/kraken.nf.test.snap b/tests/pipeline/kraken.nf.test.snap index acc440ac..7422a882 100644 --- a/tests/pipeline/kraken.nf.test.snap +++ b/tests/pipeline/kraken.nf.test.snap @@ -15,7 +15,7 @@ "laneBarcode.html:md5,2bbdae3ee57151eab520c966597d7438" ], [ - + ] ] ], @@ -36,7 +36,7 @@ "laneBarcode.html:md5,48842c23b9a2816aec540177df870968" ], [ - + ] ] ] @@ -73,15 +73,15 @@ }, "multiqc": { "content": [ - "bcl2fastq_lane_counts.txt:md5,eed04dae0bae4250ac5f4ab580e32b0b", - "fastp_filtered_reads_plot.txt:md5,fe76dc8c1650e83e16f547c1fe8a0767", - "bcl2fastq_sample_counts.txt:md5,6454d154d69ffa563878f5b7fd3d9879", - "kraken-top-n-plot.txt:md5,84f10e652a1e2b98f96ffbe1a8ffe114" + "bcl2fastq_lane_counts.txt:md5,9404ab530f43e442093337dd10c351c5", + "fastp_filtered_reads_plot.txt:md5,fa14a1941e109d4104c33db0e5fe20fc", + "bcl2fastq_sample_counts.txt:md5,93cb0cd1aee1b464f0e640e1c3d0c142", + "kraken-top-n-plot.txt:md5,add0b89a8b3d1729dac311870959b1e7" ], "meta": { - "nf-test": "0.9.0", + "nf-test": "0.8.4", "nextflow": "24.04.4" }, - "timestamp": "2024-08-09T17:17:23.014483899" + "timestamp": "2024-10-02T20:52:55.269657852" } -} +} \ No newline at end of file From b40ecc6ae0a7643f74c472cf58ced39b7db8361a Mon Sep 17 00:00:00 2001 From: nschcolnicov Date: Thu, 3 Oct 2024 12:20:01 +0000 Subject: [PATCH 9/9] Updated bclconvertmini --- tests/pipeline/bclconvert_mini.nf.test.snap | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/pipeline/bclconvert_mini.nf.test.snap b/tests/pipeline/bclconvert_mini.nf.test.snap index 0f520c83..3610aa10 100644 --- a/tests/pipeline/bclconvert_mini.nf.test.snap +++ b/tests/pipeline/bclconvert_mini.nf.test.snap @@ -63,21 +63,21 @@ "{BCLCONVERT={bclconvert=4.3.6}, FALCO={falco=1.2.1}, FASTP={fastp=0.23.4}, MD5SUM={md5sum=8.3}, Workflow={nf-core/demultiplex=v1.5.1}}" ], "meta": { - "nf-test": "0.9.0", + "nf-test": "0.8.4", "nextflow": "24.04.4" }, - "timestamp": "2024-09-30T15:27:18.472169" + "timestamp": "2024-10-03T12:19:24.67962222" }, "multiqc": { "content": [ - "bclconvert_lane_counts.txt:md5,7c8bdcf459b8900c88f3426a324a9368", - "fastp_filtered_reads_plot.txt:md5,181ce851d1ab86f434b12082e8513ec4", - "bclconvert_sample_counts_Counts_per_lane.txt:md5,76cf037883c6c8b71ac5fa181a41fec6" + "bclconvert_lane_counts.txt:md5,32e8acea6fd6ef76943100329be22fee", + "fastp_filtered_reads_plot.txt:md5,8ab004632691b04b665920977beb8924", + "bclconvert_sample_counts_Counts_per_lane.txt:md5,2eb58439a3eb1eee508bdce0ee340649" ], "meta": { - "nf-test": "0.9.0", + "nf-test": "0.8.4", "nextflow": "24.04.4" }, - "timestamp": "2024-09-30T15:27:18.49554" + "timestamp": "2024-10-03T12:19:24.749587693" } } \ No newline at end of file