diff --git a/modules/nf-core/toulligqc/environment.yml b/modules/nf-core/toulligqc/environment.yml new file mode 100644 index 00000000000..cbc1b570b8f --- /dev/null +++ b/modules/nf-core/toulligqc/environment.yml @@ -0,0 +1,9 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: "toulligqc" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - "bioconda::toulligqc=2.5.4" diff --git a/modules/nf-core/toulligqc/main.nf b/modules/nf-core/toulligqc/main.nf new file mode 100644 index 00000000000..8cee1f7f8a0 --- /dev/null +++ b/modules/nf-core/toulligqc/main.nf @@ -0,0 +1,64 @@ +process TOULLIGQC { + label 'process_low' + tag "$meta.id" + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/toulligqc:2.5.4--pyhdfd78af_0': + 'biocontainers/toulligqc:2.5.4--pyhdfd78af_0' }" + + input: + tuple val(meta), path(seq_summary), path(fastq), path(bam) + + output: + tuple val(meta), path("*/*.data") , emit: report_data + path "*/*.html" , emit: report_html, optional: true + path "*/images/*.html" , emit: plots_html + path "*/images/plotly.min.js" , emit: plotly_js + + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + def seq_summary_input = seq_summary ? "--sequencing-summary-source ${seq_summary}" : "" + def fastq_input = fastq ? "--fastq ${fastq}" : "" + def bam_input = bam ? "--bam ${bam}" : "" + + """ + toulligqc \\ + ${seq_summary_input} \\ + ${fastq_input} \\ + ${bam_input} \\ + --output-directory ${prefix} \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + toulligqc: \$(toulligqc --version 2>&1) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + mkdir ${prefix} + mkdir ${prefix}/images + touch ${prefix}/report.data + touch ${prefix}/images/Correlation_between_read_length_and_PHRED_score.html + touch ${prefix}/images/Distribution_of_read_lengths.html + touch ${prefix}/images/PHRED_score_density_distribution.html + touch ${prefix}/images/Read_count_histogram.html + touch ${prefix}/images/plotly.min.js + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + toulligqc: \$(toulligqc --version 2>&1) + END_VERSIONS + """ +} diff --git a/modules/nf-core/toulligqc/meta.yml b/modules/nf-core/toulligqc/meta.yml new file mode 100644 index 00000000000..682a8ef3281 --- /dev/null +++ b/modules/nf-core/toulligqc/meta.yml @@ -0,0 +1,66 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "toulligqc" +description: "A post sequencing QC tool for Oxford Nanopore sequencers" +keywords: + - nanopore sequencing + - quality control + - genomics +tools: + - "toulligqc": + description: "A post sequencing QC tool for Oxford Nanopore sequencers" + homepage: https://github.com/GenomiqueENS/toulligQC + documentation: https://github.com/GenomiqueENS/toulligQC + tool_dev_url: https://github.com/GenomiqueENS/toulligQC + licence: ["CECILL-2.1"] + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - seq_summary: + type: file + description: Basecaller sequencing summary source + pattern: "*.txt" + - fastq: + type: file + description: FASTQ file (necessary if no sequencing summary file) + pattern: "*.{fq,fastq,fq.gz,fastq.gz}" + - bam: + type: file + description: BAM file (necessary if no sequencing summary file) + pattern: "*.bam" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - report_data: + type: file + description: Report data emitted from toulligqc + pattern: "*.data" + - report_html: + type: file + description: Report data in html format + pattern: "*.html" + - plots_html: + type: file + description: Plots emitted in html format + pattern: "*.html" + - plotly_js: + type: file + description: Plots emitted from toulligqc + pattern: "plotly.min.js" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@Salome-Brunon" +maintainers: + - "@Salome-Brunon" diff --git a/modules/nf-core/toulligqc/tests/main.nf.test b/modules/nf-core/toulligqc/tests/main.nf.test new file mode 100644 index 00000000000..4ca1e17dbdc --- /dev/null +++ b/modules/nf-core/toulligqc/tests/main.nf.test @@ -0,0 +1,105 @@ +nextflow_process { + + name "Test Process TOULLIGQC" + script "../main.nf" + process "TOULLIGQC" + + tag "modules" + tag "modules_nfcore" + tag "toulligqc" + + test("sarscov2 - nanopore sequencing_summary") { + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.test_data['sarscov2']['nanopore']['test2_sequencing_summary'], checkIfExists: true), + [], + [] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(file(process.out.report_data.get(0).get(1)).readLines()[11..74]).match() }, + { assert process.out.report_html[0] ==~ ".*/report.html"} + ) + } + + } + + test("sarscov2 - nanopore fastq") { + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + [], + file(params.test_data['sarscov2']['nanopore']['test_fastq_gz'], checkIfExists: true), + [] + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(file(process.out.report_data.get(0).get(1)).readLines()[11..67]).match() }, + { assert process.out.report_html[0] ==~ ".*/report.html"} + ) + } + + } + + test("sarscov2 - nanopore bam") { + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + [], + [], + file(params.test_data['sarscov2']['nanopore']['test_sorted_bam'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(file(process.out.report_data.get(0).get(1)).readLines()[11..74]).match() }, + { assert process.out.report_html[0] ==~ ".*/report.html"} + ) + } + + } + test("sarscov2 - naopore bam - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + [], + [], + file(params.test_data['sarscov2']['nanopore']['test_sorted_bam'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success } + ) + } + } +} \ No newline at end of file diff --git a/modules/nf-core/toulligqc/tests/main.nf.test.snap b/modules/nf-core/toulligqc/tests/main.nf.test.snap new file mode 100644 index 00000000000..cd1b1baf259 --- /dev/null +++ b/modules/nf-core/toulligqc/tests/main.nf.test.snap @@ -0,0 +1,208 @@ +{ + "sarscov2 - nanopore sequencing_summary": { + "content": [ + [ + "sequencing.telemetry.extractor.software.analysis=1d_basecalling", + "basecaller.sequencing.summary.1d.extractor.read.count=100", + "basecaller.sequencing.summary.1d.extractor.read.pass.count=100", + "basecaller.sequencing.summary.1d.extractor.read.fail.count=0", + "basecaller.sequencing.summary.1d.extractor.read.pass.ratio=1.0", + "basecaller.sequencing.summary.1d.extractor.read.fail.ratio=0.0", + "basecaller.sequencing.summary.1d.extractor.read.count.frequency=100", + "basecaller.sequencing.summary.1d.extractor.read.pass.frequency=100.0", + "basecaller.sequencing.summary.1d.extractor.read.fail.frequency=0.0", + "basecaller.sequencing.summary.1d.extractor.yield=38253", + "basecaller.sequencing.summary.1d.extractor.n50=365", + "basecaller.sequencing.summary.1d.extractor.l50=67", + "basecaller.sequencing.summary.1d.extractor.run.time=29006.4915", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.count=85.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.mean=1.1764705882352942", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.std=0.4412231534591759", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.min=1.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.25%=1.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.50%=1.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.75%=1.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.max=3.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.count=100.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.mean=382.53", + "basecaller.sequencing.summary.1d.extractor.all.read.length.std=219.3747982818722", + "basecaller.sequencing.summary.1d.extractor.all.read.length.min=228.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.25%=271.75", + "basecaller.sequencing.summary.1d.extractor.all.read.length.50%=305.5", + "basecaller.sequencing.summary.1d.extractor.all.read.length.75%=418.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.max=1664.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.mean=382.53", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.std=219.3747982818722", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.min=228.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.25%=271.75", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.50%=305.5", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.75%=418.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.max=1664.0", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.mean=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.std=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.min=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.25%=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.50%=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.75%=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.max=nan", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.mean=12.084663391113281", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.std=1.7714887857437134", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.min=7.7340922355651855", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.25%=11.089608192443848", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.50%=11.957954406738281", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.75%=13.238139390945435", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.max=17.272123336791992", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.mean=12.084663391113281", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.std=1.7714887857437134", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.min=7.7340922355651855", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.25%=11.089608192443848", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.50%=11.957954406738281", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.75%=13.238139390945435", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.max=17.272123336791992", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.mean=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.std=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.min=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.25%=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.50%=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.75%=nan", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.max=nan" + ] + ], + "timestamp": "2024-03-28T13:38:10.062528" + }, + "sarscov2 - nanopore bam": { + "content": [ + [ + "sequencing.telemetry.extractor.run.id=Unknown", + "sequencing.telemetry.extractor.sample.id=Unknown", + "sequencing.telemetry.extractor.model.file=Unknown", + "sequencing.telemetry.extractor.software.name=minimap2", + "sequencing.telemetry.extractor.software.version=2.17-r974-dirty", + "sequencing.telemetry.extractor.flowcell.id=Unknown", + "sequencing.telemetry.extractor.basecalling.date=Unknown", + "sequencing.telemetry.extractor.pass.threshold.qscore=9", + "basecaller.sequencing.summary.1d.extractor.read.count=100", + "basecaller.sequencing.summary.1d.extractor.read.pass.count=96", + "basecaller.sequencing.summary.1d.extractor.read.fail.count=4", + "basecaller.sequencing.summary.1d.extractor.read.pass.ratio=0.96", + "basecaller.sequencing.summary.1d.extractor.read.fail.ratio=0.04", + "basecaller.sequencing.summary.1d.extractor.read.count.frequency=100", + "basecaller.sequencing.summary.1d.extractor.read.pass.frequency=96.0", + "basecaller.sequencing.summary.1d.extractor.read.fail.frequency=4.0", + "basecaller.sequencing.summary.1d.extractor.yield=38253", + "basecaller.sequencing.summary.1d.extractor.n50=365", + "basecaller.sequencing.summary.1d.extractor.l50=67", + "basecaller.sequencing.summary.1d.extractor.run.time=99.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.count=1.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.mean=100.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.std=nan", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.min=100.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.25%=100.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.50%=100.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.75%=100.0", + "basecaller.sequencing.summary.1d.extractor.channel.occupancy.statistics.max=100.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.count=100.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.mean=382.53", + "basecaller.sequencing.summary.1d.extractor.all.read.length.std=219.37479828187222", + "basecaller.sequencing.summary.1d.extractor.all.read.length.min=228.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.25%=271.75", + "basecaller.sequencing.summary.1d.extractor.all.read.length.50%=305.5", + "basecaller.sequencing.summary.1d.extractor.all.read.length.75%=418.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.max=1664.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.mean=385.6145833333333", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.std=222.9568931568171", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.min=228.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.25%=272.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.50%=312.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.75%=418.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.max=1664.0", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.mean=308.5", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.std=79.87698875980074", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.min=261.0", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.25%=267.75", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.50%=272.5", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.75%=313.25", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.max=428.0", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.mean=12.82710075378418", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.std=1.9102991819381714", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.min=8.199999809265137", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.25%=11.702500104904175", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.50%=12.714999675750732", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.75%=14.082499980926514", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.max=18.110000610351562", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.mean=13.002917289733887", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.std=1.737709403038025", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.min=9.84000015258789", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.25%=11.90749979019165", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.50%=12.820000171661377", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.75%=14.09500002861023", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.max=18.110000610351562" + ] + ], + "timestamp": "2024-03-28T13:38:30.633176" + }, + "sarscov2 - nanopore fastq": { + "content": [ + [ + "sequencing.telemetry.extractor.run.id=Unknow", + "sequencing.telemetry.extractor.sample.id=Unknow", + "sequencing.telemetry.extractor.model.file=Unknow", + "basecaller.sequencing.summary.1d.extractor.read.count=100", + "basecaller.sequencing.summary.1d.extractor.read.pass.count=96", + "basecaller.sequencing.summary.1d.extractor.read.fail.count=4", + "basecaller.sequencing.summary.1d.extractor.read.pass.ratio=0.96", + "basecaller.sequencing.summary.1d.extractor.read.fail.ratio=0.04", + "basecaller.sequencing.summary.1d.extractor.read.count.frequency=100", + "basecaller.sequencing.summary.1d.extractor.read.pass.frequency=96.0", + "basecaller.sequencing.summary.1d.extractor.read.fail.frequency=4.0", + "basecaller.sequencing.summary.1d.extractor.yield=38253", + "basecaller.sequencing.summary.1d.extractor.n50=365", + "basecaller.sequencing.summary.1d.extractor.l50=67", + "basecaller.sequencing.summary.1d.extractor.all.read.length.count=100.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.mean=382.53", + "basecaller.sequencing.summary.1d.extractor.all.read.length.std=219.37479828187222", + "basecaller.sequencing.summary.1d.extractor.all.read.length.min=228.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.25%=271.75", + "basecaller.sequencing.summary.1d.extractor.all.read.length.50%=305.5", + "basecaller.sequencing.summary.1d.extractor.all.read.length.75%=418.0", + "basecaller.sequencing.summary.1d.extractor.all.read.length.max=1664.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.mean=385.6145833333333", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.std=222.9568931568171", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.min=228.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.25%=272.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.50%=312.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.75%=418.0", + "basecaller.sequencing.summary.1d.extractor.pass.reads.sequence.length.max=1664.0", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.mean=308.5", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.std=79.87698875980074", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.min=261.0", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.25%=267.75", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.50%=272.5", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.75%=313.25", + "basecaller.sequencing.summary.1d.extractor.fail.reads.sequence.length.max=428.0", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.mean=12.82710075378418", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.std=1.9102991819381714", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.min=8.199999809265137", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.25%=11.702500104904175", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.50%=12.714999675750732", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.75%=14.082499980926514", + "basecaller.sequencing.summary.1d.extractor.all.read.qscore.max=18.110000610351562", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.mean=13.002917289733887", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.std=1.737709403038025", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.min=9.84000015258789", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.25%=11.90749979019165", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.50%=12.820000171661377", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.75%=14.09500002861023", + "basecaller.sequencing.summary.1d.extractor.pass.reads.mean.qscore.max=18.110000610351562", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.mean=8.607500076293945", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.std=0.27219802141189575", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.min=8.199999809265137", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.25%=8.59000015258789", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.50%=8.735000133514404", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.75%=8.752500057220459", + "basecaller.sequencing.summary.1d.extractor.fail.reads.mean.qscore.max=8.760000228881836" + ] + ], + "timestamp": "2024-03-28T13:38:19.971372" + } +} \ No newline at end of file diff --git a/modules/nf-core/toulligqc/tests/tags.yml b/modules/nf-core/toulligqc/tests/tags.yml new file mode 100644 index 00000000000..8814a4d2b22 --- /dev/null +++ b/modules/nf-core/toulligqc/tests/tags.yml @@ -0,0 +1,2 @@ +toulligqc: + - "modules/nf-core/toulligqc/**"